diff --git a/src/lib.rs b/src/lib.rs index 127a9ab..656b94b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -40,9 +40,17 @@ fn decrypt_ige(cipher: &[u8], key: &[u8], iv: &[u8]) -> PyResult> { Python::with_gil(|py| Ok(PyBytes::new(py, &plain).into())) } +/// Factorizes the pair of primes ``pq`` into ``(p, q)``. +#[pyfunction] +#[pyo3(text_signature = "(pq)")] +fn factorize_pq_pair(pq: u64) -> (u64, u64) { + grammers_crypto::factorize::factorize(pq) +} + #[pymodule] fn cryptg(_py: Python<'_>, m: &PyModule) -> PyResult<()> { m.add_wrapped(wrap_pyfunction!(encrypt_ige))?; m.add_wrapped(wrap_pyfunction!(decrypt_ige))?; + m.add_wrapped(wrap_pyfunction!(factorize_pq_pair))?; Ok(()) }