Skip to main content

aura_agent/runtime/effects/
noise.rs

1//! Noise Effects Implementation for Runtime
2//!
3//! Delegates to the stateless `aura_effects::noise::RealNoiseHandler`.
4
5use crate::runtime::AuraEffectSystem;
6use async_trait::async_trait;
7use aura_core::effects::noise::{
8    HandshakeState, NoiseEffects, NoiseError, NoiseParams, TransportState,
9};
10use aura_effects::noise::RealNoiseHandler;
11
12#[async_trait]
13impl NoiseEffects for AuraEffectSystem {
14    async fn create_handshake_state(
15        &self,
16        params: NoiseParams,
17    ) -> Result<HandshakeState, NoiseError> {
18        RealNoiseHandler::new().create_handshake_state(params).await
19    }
20
21    async fn write_message(
22        &self,
23        state: HandshakeState,
24        payload: &[u8],
25    ) -> Result<(Vec<u8>, HandshakeState), NoiseError> {
26        RealNoiseHandler::new().write_message(state, payload).await
27    }
28
29    async fn read_message(
30        &self,
31        state: HandshakeState,
32        message: &[u8],
33    ) -> Result<(Vec<u8>, HandshakeState), NoiseError> {
34        RealNoiseHandler::new().read_message(state, message).await
35    }
36
37    async fn into_transport_mode(
38        &self,
39        state: HandshakeState,
40    ) -> Result<TransportState, NoiseError> {
41        RealNoiseHandler::new().into_transport_mode(state).await
42    }
43
44    async fn encrypt_transport_message(
45        &self,
46        state: &mut TransportState,
47        payload: &[u8],
48    ) -> Result<Vec<u8>, NoiseError> {
49        RealNoiseHandler::new()
50            .encrypt_transport_message(state, payload)
51            .await
52    }
53
54    async fn decrypt_transport_message(
55        &self,
56        state: &mut TransportState,
57        message: &[u8],
58    ) -> Result<Vec<u8>, NoiseError> {
59        RealNoiseHandler::new()
60            .decrypt_transport_message(state, message)
61            .await
62    }
63}