diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2019-01-02 14:43:28 +0100 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2019-01-02 14:43:28 +0100 |
commit | 723a7718ad0d89e138bbb0f7f7f8500d773c827f (patch) | |
tree | 82efde6afb3d9b81a04355e1ac1027c0abedc406 /openpgp/src/crypto | |
parent | 52835dff9d19939c819659e67e7726bccca57d22 (diff) |
openpgp: Move Signer trait to crypto.
Diffstat (limited to 'openpgp/src/crypto')
-rw-r--r-- | openpgp/src/crypto/asymmetric.rs | 17 | ||||
-rw-r--r-- | openpgp/src/crypto/mod.rs | 3 |
2 files changed, 20 insertions, 0 deletions
diff --git a/openpgp/src/crypto/asymmetric.rs b/openpgp/src/crypto/asymmetric.rs new file mode 100644 index 00000000..9a497f9a --- /dev/null +++ b/openpgp/src/crypto/asymmetric.rs @@ -0,0 +1,17 @@ +//! Asymmetric crypto operations. + +use packet::Key; +use crypto::mpis; +use constants::HashAlgorithm; + +use Result; + +/// Creates a signature. +pub trait Signer { + /// Returns a reference to the public key. + fn public(&self) -> &Key; + + /// Creates a signature over the `digest` produced by `hash_algo`. + fn sign(&mut self, hash_algo: HashAlgorithm, digest: &[u8]) + -> Result<mpis::Signature>; +} diff --git a/openpgp/src/crypto/mod.rs b/openpgp/src/crypto/mod.rs index d3deb2e1..300a5aeb 100644 --- a/openpgp/src/crypto/mod.rs +++ b/openpgp/src/crypto/mod.rs @@ -13,12 +13,15 @@ use constants::HashAlgorithm; use Result; pub(crate) mod aead; +mod asymmetric; pub(crate) mod ecdh; mod hash; pub mod mpis; pub mod s2k; pub(crate) mod symmetric; +pub use self::asymmetric::Signer; + /// Holds a session key. /// /// The session key is cleared when dropped. |