When setting up a Flow Wallet app on a new iOS device, Flow Wallet checks the user's Apple keychain to see if there are details of secure enclave IDs used to generate key pairs on other devices. If there are, Flow Wallet checks using the new device's secure enclave using each ID to get a public key, which it uses to lookup if there is an existing account. If there are existing accounts, Flow Wallet allows the user to select from them which ones they want available on their new device.
However, for some secure enclave IDs, the secure enclave on the new device is unable to derive a corresponding private key for the key pair. This is causing issues on existing apps where the user is able to select to use the corresponding account, but that device is unable to sign transactions because the secure enclave cannot derive the proper private key.
Instead, what Flow Wallet should do is:
IF - The user chooses a given account found from the public key corresponding to a secure enclave ID
Then, Flow Wallet must check if the device's secure enclave can derive the correct corresponding private key
IF - The device cannot derive the correct corresponding private key
Then, display some UI that asks the user if they have the device that has the SE with the corresponding private key. The UI must allow the user to select to restore the account from device linking, or otherwise restore the account from backup. Selecting either option must kickstart the existing process in-app for device linking or backup respectively.
Expected Outcomes
[ ] Flow Wallet supports importing accounts where the current device is unable to derive the corresponding private key for a given account.
Feature
When setting up a Flow Wallet app on a new iOS device, Flow Wallet checks the user's Apple keychain to see if there are details of secure enclave IDs used to generate key pairs on other devices. If there are, Flow Wallet checks using the new device's secure enclave using each ID to get a public key, which it uses to lookup if there is an existing account. If there are existing accounts, Flow Wallet allows the user to select from them which ones they want available on their new device.
However, for some secure enclave IDs, the secure enclave on the new device is unable to derive a corresponding private key for the key pair. This is causing issues on existing apps where the user is able to select to use the corresponding account, but that device is unable to sign transactions because the secure enclave cannot derive the proper private key.
Instead, what Flow Wallet should do is:
Expected Outcomes
Platforms