Skip to content

Commit

Permalink
migrate dh, dsa, and ec to declarative (#11247)
Browse files Browse the repository at this point in the history
  • Loading branch information
reaperhulk committed Jul 10, 2024
1 parent c2cde15 commit 6f09c97
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 51 deletions.
25 changes: 8 additions & 17 deletions src/rust/src/backend/dh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use crate::asn1::encode_der_data;
use crate::backend::utils;
use crate::error::{CryptographyError, CryptographyResult};
use crate::{types, x509};
use pyo3::types::{PyAnyMethods, PyModuleMethods};
use pyo3::types::PyAnyMethods;

const MIN_MODULUS_SIZE: u32 = 512;

Expand Down Expand Up @@ -554,20 +554,11 @@ impl DHParameterNumbers {
}
}

pub(crate) fn create_module(
py: pyo3::Python<'_>,
) -> pyo3::PyResult<pyo3::Bound<'_, pyo3::types::PyModule>> {
let m = pyo3::types::PyModule::new_bound(py, "dh")?;
m.add_function(pyo3::wrap_pyfunction_bound!(generate_parameters, &m)?)?;
m.add_function(pyo3::wrap_pyfunction_bound!(from_der_parameters, &m)?)?;
m.add_function(pyo3::wrap_pyfunction_bound!(from_pem_parameters, &m)?)?;

m.add_class::<DHPrivateKey>()?;
m.add_class::<DHPublicKey>()?;
m.add_class::<DHParameters>()?;
m.add_class::<DHPrivateNumbers>()?;
m.add_class::<DHPublicNumbers>()?;
m.add_class::<DHParameterNumbers>()?;

Ok(m)
#[pyo3::pymodule]
pub(crate) mod dh {
#[pymodule_export]
use super::{
from_der_parameters, from_pem_parameters, generate_parameters, DHParameterNumbers,
DHParameters, DHPrivateKey, DHPrivateNumbers, DHPublicKey, DHPublicNumbers,
};
}
22 changes: 7 additions & 15 deletions src/rust/src/backend/dsa.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ use crate::buf::CffiBuf;
use crate::error::{CryptographyError, CryptographyResult};
use crate::exceptions;
use pyo3::types::PyAnyMethods;
use pyo3::types::PyModuleMethods;

#[pyo3::pyclass(
frozen,
Expand Down Expand Up @@ -499,18 +498,11 @@ impl DsaParameterNumbers {
}
}

pub(crate) fn create_module(
py: pyo3::Python<'_>,
) -> pyo3::PyResult<pyo3::Bound<'_, pyo3::types::PyModule>> {
let m = pyo3::types::PyModule::new_bound(py, "dsa")?;
m.add_function(pyo3::wrap_pyfunction_bound!(generate_parameters, &m)?)?;

m.add_class::<DsaPrivateKey>()?;
m.add_class::<DsaPublicKey>()?;
m.add_class::<DsaParameters>()?;
m.add_class::<DsaPrivateNumbers>()?;
m.add_class::<DsaPublicNumbers>()?;
m.add_class::<DsaParameterNumbers>()?;

Ok(m)
#[pyo3::pymodule]
pub(crate) mod dsa {
#[pymodule_export]
use super::{
generate_parameters, DsaParameterNumbers, DsaParameters, DsaPrivateKey, DsaPrivateNumbers,
DsaPublicKey, DsaPublicNumbers,
};
}
24 changes: 8 additions & 16 deletions src/rust/src/backend/ec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};

use pyo3::types::{PyAnyMethods, PyDictMethods, PyModuleMethods};
use pyo3::types::{PyAnyMethods, PyDictMethods};

use crate::backend::utils;
use crate::buf::CffiBuf;
Expand Down Expand Up @@ -670,19 +670,11 @@ impl EllipticCurvePublicNumbers {
}
}

pub(crate) fn create_module(
py: pyo3::Python<'_>,
) -> pyo3::PyResult<pyo3::Bound<'_, pyo3::types::PyModule>> {
let m = pyo3::types::PyModule::new_bound(py, "ec")?;
m.add_function(pyo3::wrap_pyfunction_bound!(curve_supported, &m)?)?;
m.add_function(pyo3::wrap_pyfunction_bound!(generate_private_key, &m)?)?;
m.add_function(pyo3::wrap_pyfunction_bound!(derive_private_key, &m)?)?;
m.add_function(pyo3::wrap_pyfunction_bound!(from_public_bytes, &m)?)?;

m.add_class::<ECPrivateKey>()?;
m.add_class::<ECPublicKey>()?;
m.add_class::<EllipticCurvePrivateNumbers>()?;
m.add_class::<EllipticCurvePublicNumbers>()?;

Ok(m)
#[pyo3::pymodule]
pub(crate) mod ec {
#[pymodule_export]
use super::{
curve_supported, derive_private_key, from_public_bytes, generate_private_key, ECPrivateKey,
ECPublicKey, EllipticCurvePrivateNumbers, EllipticCurvePublicNumbers,
};
}
3 changes: 0 additions & 3 deletions src/rust/src/backend/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ pub(crate) fn add_to_module(module: &pyo3::Bound<'_, pyo3::types::PyModule>) ->
module.add_submodule(&aead::create_module(module.py())?)?;
module.add_submodule(&ciphers::create_module(module.py())?)?;
module.add_submodule(&cmac::create_module(module.py())?)?;
module.add_submodule(&dh::create_module(module.py())?)?;
module.add_submodule(&dsa::create_module(module.py())?)?;
module.add_submodule(&ec::create_module(module.py())?)?;

module.add_submodule(&rsa::create_module(module.py())?)?;

Expand Down
6 changes: 6 additions & 0 deletions src/rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,12 @@ mod _rust {
#[pymodule_export]
use super::super::{is_fips_enabled, openssl_version, openssl_version_text};
#[pymodule_export]
use crate::backend::dh::dh;
#[pymodule_export]
use crate::backend::dsa::dsa;
#[pymodule_export]
use crate::backend::ec::ec;
#[pymodule_export]
use crate::backend::ed25519::ed25519;
#[cfg(all(not(CRYPTOGRAPHY_IS_LIBRESSL), not(CRYPTOGRAPHY_IS_BORINGSSL)))]
#[pymodule_export]
Expand Down

0 comments on commit 6f09c97

Please sign in to comment.