core_crypto/transaction_context/conversation/
external_sender.rs1use super::{Result, TransactionContext};
4use crate::{RecursiveError, prelude::MlsConversationConfiguration};
5
6impl TransactionContext {
7 pub async fn set_raw_external_senders(
9 &self,
10 cfg: &mut MlsConversationConfiguration,
11 external_senders: Vec<Vec<u8>>,
12 ) -> Result<()> {
13 let mls_provider = self.mls_provider().await?;
14 cfg.external_senders = external_senders
15 .into_iter()
16 .map(|key| {
17 MlsConversationConfiguration::parse_external_sender(&key).or_else(|_| {
18 MlsConversationConfiguration::legacy_external_sender(
19 key,
20 cfg.ciphersuite.signature_algorithm(),
21 &mls_provider,
22 )
23 })
24 })
25 .collect::<crate::mls::conversation::Result<_>>()
26 .map_err(RecursiveError::mls_conversation("setting external sender"))?;
27 Ok(())
28 }
29}