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

Modularize keystore functionality #1

Merged
6 commits merged into from Jun 17, 2022
Merged

Modularize keystore functionality #1

6 commits merged into from Jun 17, 2022

Conversation

ghost
Copy link

@ghost ghost commented Jun 17, 2022

This PR lays the groundwork to allow different ways to store/retrieve/use cryptographic keys, mostly aimed at allowing to use ledger devices for these.

This is done by splitting the functionality of the Keys structure (now renamed InMemoryKeys) into different traits and then having the dependant structures (LightWallet and LightClient) act in accordance with these traits (this part is still not fleshed out completely).

For this purpose, the Keystore and InsecureKeystore traits were made, with the latter representing access to private data.

In addition, the Builder trait was also made to abstract over the different type of builders available, which differ in their HSM-compatibility.

This is just the groundwork and the API is not stable, that means in the future changes are expected, for example the bound on the TxProver will change to allow for HSM-compatibility.

adityapk00 and others added 6 commits March 15, 2022 14:22
refactor(keys): rename `Keys` to `InMemoryKeys`
refactor(keys): impl above traits for `InMemoryKeys`
refactor(lightwallet): split methods between generic over keystore and
`InMemoryKeys` specific
style: formatting
feat(builder): impl `Builder` for zcash-primitive's Builder
feat(keystore): obtain associated builder for certain keystore
refactor: use new `Builder` trait
@ghost ghost merged commit 0803231 into master Jun 17, 2022
@ghost ghost deleted the keystore branch September 29, 2022 11:25
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants