moves encryption/decryption logic into MasterKey #5636
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
adds encrypt and decrypt methods to the MasterKey class to encapsulate the logic for encrypting and decrypting arbitrary blobs
updates wallet encryption to use MasterKey for account encryption and decryption
changes MasterKey interface to isolate key derivation to encrypt and decrypt methods, so that clients interact with the XChaCha20Poly1305 key only through the MasterKey interface
allows decrypting account data in migrations independent of the Account and EncryptedAccount models
Closes IFL-3141
Testing Plan
masterKey.test.ts
Documentation
Does this change require any updates to the Iron Fish Docs (ex. the RPC API
Reference)? If yes, link a
related documentation pull request for the website.
Breaking Change
Is this a breaking change? If yes, add notes below on why this is breaking and label it with
breaking-change-rpc
orbreaking-change-sdk
.