diff --git a/lakers-python/src/ead_authz/server.rs b/lakers-python/src/ead_authz/server.rs index 5f4cb289..627530d2 100644 --- a/lakers-python/src/ead_authz/server.rs +++ b/lakers-python/src/ead_authz/server.rs @@ -1,6 +1,6 @@ use lakers::*; use lakers_crypto::default_crypto; -use pyo3::prelude::*; +use pyo3::{prelude::*, types::PyBytes}; #[pyclass(name = "AuthzEnrollmentServer")] pub struct PyAuthzEnrollmentServer { @@ -24,13 +24,13 @@ impl PyAuthzEnrollmentServer { } } - fn handle_voucher_request(&self, vreq: Vec) -> PyResult> { + fn handle_voucher_request<'a>(&self, py: Python<'a>, vreq: Vec) -> PyResult<&'a PyBytes> { let vreq = EdhocMessageBuffer::new_from_slice(vreq.as_slice()).unwrap(); match self .server .handle_voucher_request(&mut default_crypto(), &vreq) { - Ok(voucher_response) => Ok(Vec::from(voucher_response.as_slice())), + Ok(voucher_response) => Ok(PyBytes::new(py, voucher_response.as_slice())), Err(error) => Err(error.into()), } } diff --git a/lakers-python/test/test_ead_authz.py b/lakers-python/test/test_ead_authz.py index 3c654b38..5ae585da 100644 --- a/lakers-python/test/test_ead_authz.py +++ b/lakers-python/test/test_ead_authz.py @@ -21,7 +21,7 @@ def test_authenticator_and_server(): ead_1 = lakers.EADItem(1, True, EAD_1_VALUE) loc_w, voucher_request = authenticator.process_ead_1(ead_1, MESSAGE_1_WITH_EAD) voucher_response = enrollment_server.handle_voucher_request(voucher_request) - assert bytes(voucher_response) == VOUCHER_RESPONSE + assert type(voucher_response) == bytes ead_2 = authenticator.prepare_ead_2(voucher_response) assert ead_2.label() == 1