pub struct Dh<T>(/* private fields */);
Implementations§
Source§impl Dh<Params>
impl Dh<Params>
pub fn from_params( p: BigNum, g: BigNum, q: BigNum, ) -> Result<Dh<Params>, ErrorStack>
Sourcepub fn from_pqg(
prime_p: BigNum,
prime_q: Option<BigNum>,
generator: BigNum,
) -> Result<Dh<Params>, ErrorStack>
pub fn from_pqg( prime_p: BigNum, prime_q: Option<BigNum>, generator: BigNum, ) -> Result<Dh<Params>, ErrorStack>
Creates a DH instance based upon the given primes and generator params.
This corresponds to DH_set0_pqg
.
Sourcepub fn set_public_key(self, pub_key: BigNum) -> Result<Dh<Public>, ErrorStack>
pub fn set_public_key(self, pub_key: BigNum) -> Result<Dh<Public>, ErrorStack>
Sets the public key on the DH object.
Sourcepub fn set_private_key(
self,
priv_key: BigNum,
) -> Result<Dh<Private>, ErrorStack>
pub fn set_private_key( self, priv_key: BigNum, ) -> Result<Dh<Private>, ErrorStack>
Sets the private key on the DH object and recomputes the public key.
Sourcepub fn set_key(
self,
pub_key: BigNum,
priv_key: BigNum,
) -> Result<Dh<Private>, ErrorStack>
pub fn set_key( self, pub_key: BigNum, priv_key: BigNum, ) -> Result<Dh<Private>, ErrorStack>
Sets the public and private keys on the DH object.
Sourcepub fn generate_params(
prime_len: u32,
generator: u32,
) -> Result<Dh<Params>, ErrorStack>
pub fn generate_params( prime_len: u32, generator: u32, ) -> Result<Dh<Params>, ErrorStack>
Generates DH params based on the given prime_len
and a fixed generator
value.
This corresponds to DH_generate_parameters_ex
.
Sourcepub fn generate_key(self) -> Result<Dh<Private>, ErrorStack>
pub fn generate_key(self) -> Result<Dh<Private>, ErrorStack>
Generates a public and a private key based on the DH params.
This corresponds to DH_generate_key
.
Sourcepub fn params_from_pem(pem: &[u8]) -> Result<Dh<Params>, ErrorStack>
pub fn params_from_pem(pem: &[u8]) -> Result<Dh<Params>, ErrorStack>
Deserializes a PEM-encoded PKCS#3 DHpararameters structure.
The input should have a header of -----BEGIN DH PARAMETERS-----
.
This corresponds to PEM_read_bio_DHparams
.
Sourcepub fn params_from_der(der: &[u8]) -> Result<Dh<Params>, ErrorStack>
pub fn params_from_der(der: &[u8]) -> Result<Dh<Params>, ErrorStack>
Deserializes a DER-encoded PKCS#3 DHparameters structure.
This corresponds to d2i_DHparams
.
Sourcepub fn get_1024_160() -> Result<Dh<Params>, ErrorStack>
pub fn get_1024_160() -> Result<Dh<Params>, ErrorStack>
Requires OpenSSL 1.0.2 or newer.
This corresponds to DH_get_1024_160
.
Sourcepub fn get_2048_224() -> Result<Dh<Params>, ErrorStack>
pub fn get_2048_224() -> Result<Dh<Params>, ErrorStack>
Requires OpenSSL 1.0.2 or newer.
This corresponds to DH_get_2048_224
.
Sourcepub fn get_2048_256() -> Result<Dh<Params>, ErrorStack>
pub fn get_2048_256() -> Result<Dh<Params>, ErrorStack>
Requires OpenSSL 1.0.2 or newer.
This corresponds to DH_get_2048_256
.
Source§impl<T> Dh<T>where
T: HasParams,
impl<T> Dh<T>where
T: HasParams,
Sourcepub fn prime_p(&self) -> &BigNumRef
pub fn prime_p(&self) -> &BigNumRef
Returns the prime p
from the DH instance.
This corresponds to DH_get0_pqg
.
Sourcepub fn prime_q(&self) -> Option<&BigNumRef>
pub fn prime_q(&self) -> Option<&BigNumRef>
Returns the prime q
from the DH instance.
This corresponds to DH_get0_pqg
.
Sourcepub fn generator(&self) -> &BigNumRef
pub fn generator(&self) -> &BigNumRef
Returns the generator from the DH instance.
This corresponds to DH_get0_pqg
.
Methods from Deref<Target = DhRef<T>>§
Sourcepub fn params_to_pem(&self) -> Result<Vec<u8>, ErrorStack>
pub fn params_to_pem(&self) -> Result<Vec<u8>, ErrorStack>
Serializes the parameters into a PEM-encoded PKCS#3 DHparameter structure.
The output will have a header of -----BEGIN DH PARAMETERS-----
.
This corresponds to PEM_write_bio_DHparams
.
Sourcepub fn params_to_der(&self) -> Result<Vec<u8>, ErrorStack>
pub fn params_to_der(&self) -> Result<Vec<u8>, ErrorStack>
Serializes the parameters into a DER-encoded PKCS#3 DHparameter structure.
This corresponds to i2d_DHparams
.
Sourcepub fn check_key(&self) -> Result<bool, ErrorStack>
pub fn check_key(&self) -> Result<bool, ErrorStack>
Validates DH parameters for correctness
This corresponds to DH_check_key
.
Sourcepub fn public_key(&self) -> &BigNumRef
pub fn public_key(&self) -> &BigNumRef
Returns the public key from the DH instance.
This corresponds to DH_get0_key
.
Sourcepub fn compute_key(&self, public_key: &BigNumRef) -> Result<Vec<u8>, ErrorStack>
pub fn compute_key(&self, public_key: &BigNumRef) -> Result<Vec<u8>, ErrorStack>
Computes a shared secret from the own private key and the given public_key
.
This corresponds to DH_compute_key
.
Sourcepub fn private_key(&self) -> &BigNumRef
pub fn private_key(&self) -> &BigNumRef
Returns the private key from the DH instance.
This corresponds to DH_get0_key
.
Trait Implementations§
Source§impl<T> ForeignType for Dh<T>
impl<T> ForeignType for Dh<T>
impl<T> Send for Dh<T>
impl<T> Sync for Dh<T>
Auto Trait Implementations§
impl<T> Freeze for Dh<T>
impl<T> RefUnwindSafe for Dh<T>where
T: RefUnwindSafe,
impl<T> Unpin for Dh<T>where
T: Unpin,
impl<T> UnwindSafe for Dh<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes