diff options
| author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2023-04-29 15:19:52 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-29 09:19:52 -0400 |
| commit | ac939ffb493667d00cb5d3f8233234df45f8770c (patch) | |
| tree | cc07b212c55f0fb517047150d72b8ca2175ba9eb /src | |
| parent | a703aaa14576ddd9d07fa0af6abd76b331f54625 (diff) | |
| download | cryptography-ac939ffb493667d00cb5d3f8233234df45f8770c.tar.gz | |
move ASN1DHParams to cryptography_x509::common (#8844)
Diffstat (limited to 'src')
| -rw-r--r-- | src/rust/cryptography-x509/src/common.rs | 7 | ||||
| -rw-r--r-- | src/rust/src/backend/dh.rs | 12 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/rust/cryptography-x509/src/common.rs b/src/rust/cryptography-x509/src/common.rs index edae5d4a4..122b37b6a 100644 --- a/src/rust/cryptography-x509/src/common.rs +++ b/src/rust/cryptography-x509/src/common.rs @@ -123,6 +123,13 @@ pub struct DssSignature<'a> { pub s: asn1::BigUint<'a>, } +#[derive(asn1::Asn1Read, asn1::Asn1Write)] +pub struct DHParams<'a> { + pub p: asn1::BigUint<'a>, + pub g: asn1::BigUint<'a>, + pub q: Option<asn1::BigUint<'a>>, +} + #[cfg(test)] mod tests { use super::{Asn1ReadableOrWritable, RawTlv}; diff --git a/src/rust/src/backend/dh.rs b/src/rust/src/backend/dh.rs index 33e94f1c2..2daff9dcb 100644 --- a/src/rust/src/backend/dh.rs +++ b/src/rust/src/backend/dh.rs @@ -6,6 +6,7 @@ use crate::asn1::encode_der_data; use crate::backend::utils; use crate::error::{CryptographyError, CryptographyResult}; use crate::x509; +use cryptography_x509::common; use foreign_types_shared::ForeignTypeRef; const MIN_MODULUS_SIZE: u32 = 512; @@ -62,16 +63,9 @@ fn public_key_from_ptr(ptr: usize) -> DHPublicKey { } } -#[derive(asn1::Asn1Read, asn1::Asn1Write)] -struct ASN1DHParams<'a> { - p: asn1::BigUint<'a>, - g: asn1::BigUint<'a>, - q: Option<asn1::BigUint<'a>>, -} - #[pyo3::prelude::pyfunction] fn from_der_parameters(data: &[u8]) -> CryptographyResult<DHParameters> { - let asn1_params = asn1::parse_single::<ASN1DHParams<'_>>(data)?; + let asn1_params = asn1::parse_single::<common::DHParams<'_>>(data)?; let p = openssl::bn::BigNum::from_slice(asn1_params.p.as_bytes())?; let q = asn1_params @@ -407,7 +401,7 @@ impl DHParameters { .map(utils::bn_to_big_endian_bytes) .transpose()?; let g_bytes = utils::bn_to_big_endian_bytes(self.dh.generator())?; - let asn1dh_params = ASN1DHParams { + let asn1dh_params = common::DHParams { p: asn1::BigUint::new(&p_bytes).unwrap(), q: q_bytes.as_ref().map(|q| asn1::BigUint::new(q).unwrap()), g: asn1::BigUint::new(&g_bytes).unwrap(), |
