Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for HWKeyCrypter and Biometric Authentication #18

Open
wants to merge 2 commits into
base: bitcoinj_update
Choose a base branch
from

Conversation

oliveraemmer
Copy link

@oliveraemmer oliveraemmer commented Apr 10, 2024

Currently the keys in the wallet can be encrypted using a spending pin. With this PR we propose a new encryption type which leverages the Android KeyStore and Biometric Authentication to encrypt the keys. It is not a replacement of the spending pin but an addition.

image

This change requires additional changes in bitcoinj. The files in wallet/libs/ are built from the proposal_keycrypterfactory_new_encryptiontype branch.

With Android Studio 2022.3.1 Patch 2 this current settings should build without additional changes

Change log:

  • Add new HWKeyCrypter
  • Add new CryptActivity which runs while the Biometric Prompt is executed
  • Implement and set KeyCrypterFactory on WalletProtobufSerializer
  • Add radio buttons in EncryptKeyDialogFragment to chose between spending pin and hardware encryption
  • Remove encryption if hardware encryption is used before creating a backup (After decryption, the backup password can still be set, so the backup is still encrypted)

Co-authored-by: Sebastian Nicol <sebastian.r.nicol@gmail.com>
Co-authored-by: Oliver Aemmer <oliver.aemmer@protonmail.ch>
…le attack vector.

Co-authored-by: Sebastian Nicol <sebastian.r.nicol@gmail.com>
Co-authored-by: Oliver Aemmer <oliver.aemmer@protonmail.ch>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant