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

[Keybase] Implement an encrypted wrapper for private keys akin to ArmoredJson from V0 #184

Closed
15 tasks
deblasis opened this issue Aug 29, 2022 · 1 comment
Closed
15 tasks
Labels
utility Utility specific changes

Comments

@deblasis
Copy link
Contributor

_DELETE_ME: Please make sure to update the Assigness, Labels, Projects, Milestone before submitting the issue_
_DELETE_ME: Please make sure to add labels for the purpose (e.g. persistence) and priority (e.g. low) of this PR_

Objective

Implement a secure wrapper around private keys.

Origin Document

For increased security, we are going to need something like ArmoredJson from v0 to protecting Private keys coming out of a keybase and providing a way of importing new private keys into the keybase.

This issue is dependent on #150 but I believe it's still possible to work on this in parallel by developing the core functionality for encryption/decryption for initial use with the Utility CLI (#112) where, for now, the privatekeys come into play in the form of a clear-text JSON file.
We just have to remember (via TODOs and/or GH issues) that ultimately the keybase should be interfaced with this as well.

Goals

  • Determine if the V0 ArmoredJson implementation could be used in V1 as well and if not, propose alternatives with pros/cons comparisons
  • Define interfaces and methods to provide access to the underlying private keys given an address and a passphrase
  • Define interfaces and methods to allow importing of private keys into the keybase
  • Use these new interfaces/methods to access private keys where needed (a good place to start is the CLI, starting from the Utility commands tracked in [Utility] Local Proof of Stake CLI #112 )
  • Create import functionality for private keys
  • Create export functionality for private keys

Deliverable

Non-goals / Non-deliverables

General issue deliverables

  • Update the appropriate CHANGELOG
  • Update any relevant READMEs (local and/or global)
  • Update any relevant global documentation & references
  • If applicable, update the source code tree explanation
  • If applicable, add or update a state, sequence or flowchart diagram using mermaid

[Optional] Testing Methodology

  • Task specific tests: make ...
  • All tests: make test_all
  • LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md
  • Write tests that ensure encryption and decryption work as expected, including KO cases (eg: wrong passphrase)

Creator: @deblasis
Co-Owners: @Olshansk, @andrewnguyen22

@deblasis deblasis added the utility Utility specific changes label Aug 29, 2022
@Olshansk
Copy link
Member

@h5law completed this as part of the key base work.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
utility Utility specific changes
Projects
None yet
Development

No branches or pull requests

2 participants