pub trait SecretKey<KG: KeGroup>: Clone + Sized {
type Error;
type Len: ArrayLength<u8>;
fn diffie_hellman(
&self,
pk: PublicKey<KG>
) -> Result<GenericArray<u8, KG::PkLen>, InternalError<Self::Error>>;
fn public_key(&self) -> Result<PublicKey<KG>, InternalError<Self::Error>>;
fn serialize(&self) -> GenericArray<u8, Self::Len>;
fn deserialize(input: &[u8]) -> Result<Self, InternalError<Self::Error>>;
}
Expand description
A trait specifying the requirements for a private key container
Required Associated Types
sourcetype Len: ArrayLength<u8>
type Len: ArrayLength<u8>
Serialization size in bytes.
Required Methods
sourcefn diffie_hellman(
&self,
pk: PublicKey<KG>
) -> Result<GenericArray<u8, KG::PkLen>, InternalError<Self::Error>>
fn diffie_hellman(
&self,
pk: PublicKey<KG>
) -> Result<GenericArray<u8, KG::PkLen>, InternalError<Self::Error>>
Diffie-Hellman key exchange implementation
sourcefn public_key(&self) -> Result<PublicKey<KG>, InternalError<Self::Error>>
fn public_key(&self) -> Result<PublicKey<KG>, InternalError<Self::Error>>
Returns public key from private key
sourcefn serialize(&self) -> GenericArray<u8, Self::Len>
fn serialize(&self) -> GenericArray<u8, Self::Len>
Serialization into bytes
sourcefn deserialize(input: &[u8]) -> Result<Self, InternalError<Self::Error>>
fn deserialize(input: &[u8]) -> Result<Self, InternalError<Self::Error>>
Deserialization from bytes