use std::sync::Arc;
use mpc_tls::Config;
use tlsn_common::config::ProtocolConfig;
use tlsn_core::{connection::ServerName, CryptoProvider};
#[derive(Debug, Clone, derive_builder::Builder)]
pub struct ProverConfig {
#[builder(setter(into))]
server_name: ServerName,
protocol_config: ProtocolConfig,
#[builder(default = "true")]
defer_decryption_from_start: bool,
#[builder(default, setter(into))]
crypto_provider: Arc<CryptoProvider>,
}
impl ProverConfig {
pub fn builder() -> ProverConfigBuilder {
ProverConfigBuilder::default()
}
pub fn server_name(&self) -> &ServerName {
&self.server_name
}
pub fn crypto_provider(&self) -> &CryptoProvider {
&self.crypto_provider
}
pub fn protocol_config(&self) -> &ProtocolConfig {
&self.protocol_config
}
pub fn defer_decryption_from_start(&self) -> bool {
self.defer_decryption_from_start
}
pub(crate) fn build_mpc_tls_config(&self) -> Config {
Config::builder()
.defer_decryption(self.defer_decryption_from_start)
.max_sent(self.protocol_config.max_sent_data())
.max_recv_online(self.protocol_config.max_recv_data_online())
.build()
.unwrap()
}
}