mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
Convert src/backend/cmac.rs to new pyo3 APIs (#10702)
This commit is contained in:
parent
98e6fd4072
commit
166d21a8c6
2 changed files with 10 additions and 7 deletions
|
|
@ -7,7 +7,7 @@ use crate::backend::hashes::already_finalized_error;
|
|||
use crate::buf::CffiBuf;
|
||||
use crate::error::{CryptographyError, CryptographyResult};
|
||||
use crate::{exceptions, types};
|
||||
use pyo3::prelude::PyAnyMethods;
|
||||
use pyo3::prelude::{PyAnyMethods, PyBytesMethods, PyModuleMethods};
|
||||
|
||||
#[pyo3::prelude::pyclass(
|
||||
module = "cryptography.hazmat.bindings._rust.openssl.cmac",
|
||||
|
|
@ -74,14 +74,15 @@ impl Cmac {
|
|||
fn finalize<'p>(
|
||||
&mut self,
|
||||
py: pyo3::Python<'p>,
|
||||
) -> CryptographyResult<&'p pyo3::types::PyBytes> {
|
||||
) -> CryptographyResult<pyo3::Bound<'p, pyo3::types::PyBytes>> {
|
||||
let data = self.get_mut_ctx()?.finish()?;
|
||||
self.ctx = None;
|
||||
Ok(pyo3::types::PyBytes::new(py, &data))
|
||||
Ok(pyo3::types::PyBytes::new_bound(py, &data))
|
||||
}
|
||||
|
||||
fn verify(&mut self, py: pyo3::Python<'_>, signature: &[u8]) -> CryptographyResult<()> {
|
||||
let actual = self.finalize(py)?.as_bytes();
|
||||
let actual = self.finalize(py)?;
|
||||
let actual = actual.as_bytes();
|
||||
if actual.len() != signature.len() || !openssl::memcmp::eq(actual, signature) {
|
||||
return Err(CryptographyError::from(
|
||||
exceptions::InvalidSignature::new_err("Signature did not match digest."),
|
||||
|
|
@ -98,8 +99,10 @@ impl Cmac {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn create_module(py: pyo3::Python<'_>) -> pyo3::PyResult<&pyo3::prelude::PyModule> {
|
||||
let m = pyo3::prelude::PyModule::new(py, "cmac")?;
|
||||
pub(crate) fn create_module(
|
||||
py: pyo3::Python<'_>,
|
||||
) -> pyo3::PyResult<pyo3::Bound<'_, pyo3::prelude::PyModule>> {
|
||||
let m = pyo3::prelude::PyModule::new_bound(py, "cmac")?;
|
||||
|
||||
m.add_class::<Cmac>()?;
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ pub(crate) mod x448;
|
|||
pub(crate) fn add_to_module(module: &pyo3::prelude::PyModule) -> pyo3::PyResult<()> {
|
||||
module.add_submodule(aead::create_module(module.py())?.into_gil_ref())?;
|
||||
module.add_submodule(ciphers::create_module(module.py())?.into_gil_ref())?;
|
||||
module.add_submodule(cmac::create_module(module.py())?)?;
|
||||
module.add_submodule(cmac::create_module(module.py())?.into_gil_ref())?;
|
||||
module.add_submodule(dh::create_module(module.py())?.into_gil_ref())?;
|
||||
module.add_submodule(dsa::create_module(module.py())?)?;
|
||||
module.add_submodule(ec::create_module(module.py())?)?;
|
||||
|
|
|
|||
Loading…
Reference in a new issue