You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
1.1 KiB

  1. /*
  2. package cryptostore maintains everything needed for doing public-key signing and
  3. key management in software, based on the go-crypto library from tendermint.
  4. It is flexible, and allows the user to provide a key generation algorithm
  5. (currently Ed25519 or Secp256k1), an encoder to passphrase-encrypt our keys
  6. when storing them (currently SecretBox from NaCl), and a method to persist
  7. the keys (currently FileStorage like ssh, or MemStorage for tests).
  8. It should be relatively simple to write your own implementation of these
  9. interfaces to match your specific security requirements.
  10. Note that the private keys are never exposed outside the package, and the
  11. interface of Manager could be implemented by an HSM in the future for
  12. enhanced security. It would require a completely different implementation
  13. however.
  14. This Manager aims to implement Signer and KeyManager interfaces, along
  15. with some extensions to allow importing/exporting keys and updating the
  16. passphrase.
  17. Encoder and Generator implementations are currently in this package,
  18. keys.Storage implementations exist as subpackages of
  19. keys/storage
  20. */
  21. package cryptostore