summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2023-04-29 15:19:52 +0200
committerGitHub <noreply@github.com>2023-04-29 09:19:52 -0400
commitac939ffb493667d00cb5d3f8233234df45f8770c (patch)
treecc07b212c55f0fb517047150d72b8ca2175ba9eb /src
parenta703aaa14576ddd9d07fa0af6abd76b331f54625 (diff)
downloadcryptography-ac939ffb493667d00cb5d3f8233234df45f8770c.tar.gz
move ASN1DHParams to cryptography_x509::common (#8844)
Diffstat (limited to 'src')
-rw-r--r--src/rust/cryptography-x509/src/common.rs7
-rw-r--r--src/rust/src/backend/dh.rs12
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(),