pub trait Scheme: DeserializeOwned + Serialize + Copy + Debug + PartialEq + Into<Self::Kind> {
type Kind: Scheme;
// Required methods
fn as_enum(self) -> SchemeKind;
fn hash_kind(&self) -> HashKind;
fn padding(&self) -> Option<OpensslPadding>;
fn public_from_der(self, der: &[u8]) -> Result<PKey<Public>>;
fn private_from_der(self, der: &[u8]) -> Result<PKey<Private>>;
fn generate(self) -> Result<AsymKeyPair<Self::Kind>>;
fn key_len(self) -> BitLen;
// Provided method
fn message_digest(&self) -> MessageDigest { ... }
}
Expand description
A Cryptographic Scheme. This is a common type for operations such as encrypting, decrypting, signing and verifying.