Concordium / concordium-reference-wallet-ios

Reference wallet for the Concordium blockchain
Apache License 2.0
11 stars 10 forks source link

Automatic synchronization between two phones does not include decryption key #78

Closed concordium-cl closed 2 years ago

concordium-cl commented 2 years ago

Bug Description The user created an account on his old phone, and afterwards he used a new phone and automatically synchronized the data to the new phone. It's unclear if backup and restore from iCloud or the Quick Start functionality to sync two phones directly was used. Now the user cannot send GTU or shield GTU from the account on his new phone. It seems the app cannot decrypt its own keys on the new phone.

ios_error

Expected Result Synchronization via iCloud & Quick Start includes all keys.

Actual Result Synchronization does not backup all keys.

Versions

concordium-cl commented 2 years ago

Related internal support case

concordium-cl commented 2 years ago

Attribute kSecAttrAccessibleWhenUnlockedThisDeviceOnly (see documentation) when saving items to keychain is used. Items with this attribute do not migrate to a new device. Attribute must be changed to one that allows for migration, e.g. kSecAttrAccessibleWhenUnlocked (see documentation)

concordium-cl commented 2 years ago

From discussion with Mjølner:

Note: It should be added to documentation (new backup info page) that passcode is needed for restoring on new phone (https://github.com/Concordium/concordium.github.io/issues/301).

jens-concordium commented 2 years ago

@concordium-cl - How did we decide to proceed with this? I can't really test it.

concordium-cl commented 2 years ago

@jens-concordium - I suggest to leave it as is. We cannot really test it and it is not our official recommendation but just the last straw.

jens-concordium commented 2 years ago

@concordium-cl Ah, yeah that was it. I guess we can just remove the issue from the board, as we can't technically verify it?

kristiyandobrev commented 2 years ago

Not sure if I mentioned it earlier but the way to verify is unfortunately only on a production build 😶