Open fully encrypted wallets #747

pull achow101 wants to merge 15 commits into bitcoin-core:master from achow101:gui-fully-encrypted-wallets changing 28 files +954 −74
  1. achow101 commented at 9:21 pm on July 24, 2023: member
    Allows users to open wallets with encrypted databases (https://github.com/bitcoin/bitcoin/pull/28142) from the GUI.
  2. crypter: Separate setting IV from setting key a783e5cc2e
  3. crypter: Make sure IV is set too 2c3d81fa6c
  4. walletdb: Add EncryptedDatabase and its batch and cursor classes
    EncryptedDatabase is a WalletDatabase that encrypts the records before
    writing them to an underlying WalletDatabase. This encryption occurs
    transparently to the higher level application logic so the wallet does
    not need to be concerned about whether the data it is writing is
    encrypted.
    
    In order to work with prefix matching and cursor iteration in an order
    that we are expecting, EncryptedDatabase maintains a map of the
    unencrypted record keys to the encrypted record keys. When given the
    plaintext record key to pull up, it can retrieve the encrypted record
    key and then retrieve the encrypted record from the underlying database.
    a203061dc0
  5. walletdb: Add WalletBatch::Read overload for DataStream
    It's useful to be able to just read a record without the batch doing any
    sort of deserialization. The new overload of Read will just place the
    record's value into the provided DataStream.
    037e6f08ad
  6. walletdb: Use a different SQLite application id for encrypted db
    EncrytpedDB wallets will use sqlite but with a different application id.
    This provides downgrade protection in addition to easy identification of
    encrypted dbs. The application id will be the network magic XOR'd with
    0x36932d47 (randomly generated value).
    29cbbbcd4c
  7. walletdb: Have MakeDatabase also create encrypted dbs 2568277658
  8. wallet, rpc: Be able to create and load wallets with encrypted dbs 4c7df1f96a
  9. wallet: Skip loading on start of wallets with encrypted databases
    Wallets with encrypted databases need the user to provide their database
    passphrase which cannot be done on start, so skip any such wallets on
    startup.
    0a38dc84ab
  10. test: Add functional test for wallets with encrypted db d97c315f6d
  11. gui: Allow AskPassphraseDialog without WalletModel
    Sometimes we just need the dialog without an attached wallet.
    854ab2e8b2
  12. interfaces: Allow opening and detecting wallets with encrypted db a85e428c62
  13. gui: Be able to open wallets with encrypted dbs a6212f95a9
  14. gui: Allow AskPassphraseDialog to have customized warning text
    The warning text that appears above the passphrase inputs may need to be
    customized depending on the context in which the passphrase is being
    entered, so let the caller optionally set it.
    5506eeaf32
  15. interfaces: Allow creating a wallet with encrypted database 33cceb9106
  16. gui: Add option to create a wallet with encrypted database 93fe316ff0
  17. DrahtBot commented at 9:21 pm on July 24, 2023: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Reviews

    See the guideline for information on the review process. A summary of reviews will appear here.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  18. DrahtBot cross-referenced this on Jul 24, 2023 from issue Add menu option to migrate a wallet by achow101
  19. DrahtBot added the label CI failed on Jul 24, 2023
  20. DrahtBot cross-referenced this on Jul 25, 2023 from issue wallet: Have the wallet store the key for automatically generated descriptors by achow101
  21. DrahtBot cross-referenced this on Jul 25, 2023 from issue wallet: Implement independent BDB parser by achow101
  22. DrahtBot cross-referenced this on Jul 25, 2023 from issue wallet: Migrate legacy wallets to descriptor wallets without requiring BDB by achow101
  23. DrahtBot cross-referenced this on Jul 25, 2023 from issue Add util::ResultPtr class by ryanofsky
  24. DrahtBot cross-referenced this on Jul 25, 2023 from issue wallet: rpc to add automatically generated descriptors by achow101
  25. DrahtBot cross-referenced this on Jul 25, 2023 from issue refactor: Use util::Result class for wallet loading by ryanofsky
  26. DrahtBot cross-referenced this on Jul 25, 2023 from issue rpc: add path to gethdkey by Sjors
  27. DrahtBot cross-referenced this on Jul 25, 2023 from issue tests: Run both descriptor and legacy tests within a single test invocation by achow101
  28. DrahtBot cross-referenced this on Aug 2, 2023 from issue Silent Payments: receiving by josibake
  29. DrahtBot cross-referenced this on Aug 3, 2023 from issue Silent Payments: send and receive by josibake
  30. DrahtBot cross-referenced this on Aug 5, 2023 from issue wallet: Allow users to create a wallet that encrypts all database records by achow101
  31. hebasto renamed this:
    gui: Open fully encrypted wallets
    Open fully encrypted wallets
    on Aug 29, 2023
  32. hebasto added the label Wallet on Aug 29, 2023
  33. DrahtBot cross-referenced this on Sep 11, 2023 from issue wallet: Receive silent payment transactions by achow101
  34. DrahtBot cross-referenced this on Sep 12, 2023 from issue kernel: Remove protocol.h/netaddress.h/compat.h from kernel headers by TheCharlatan
  35. DrahtBot added the label Needs rebase on Sep 14, 2023
  36. DrahtBot commented at 10:33 am on September 14, 2023: contributor

    🐙 This pull request conflicts with the target branch and needs rebase.

  37. hebasto commented at 6:22 pm on September 22, 2023: member

    Allows users to open wallets with encrypted databases (bitcoin/bitcoin#28142) from the GUI.

    While the base PR is still under reviewing, maybe convert this one to a draft?

  38. achow101 marked this as a draft on Sep 23, 2023
  39. DrahtBot commented at 0:57 am on December 22, 2023: contributor

    There hasn’t been much activity lately and the patch still needs rebase. What is the status here?

    • Is it still relevant? ➡️ Please solve the conflicts to make it ready for review and to ensure the CI passes.
    • Is it no longer relevant? ➡️ Please close.
    • Did the author lose interest or time to work on this? ➡️ Please close it and mark it ‘Up for grabs’ with the label, so that it can be picked up in the future.
  40. achow101 closed this on Jan 8, 2024


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/gui. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-31 23:20 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me