use rkyv::{Archive, Deserialize, Serialize};
use crate::GuestResourceId;
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct TlsServerBundle {
pub cert_chain_pem: Vec<u8>,
pub private_key_pem: Vec<u8>,
pub client_ca_pem: Option<Vec<u8>>,
pub alpn: Option<Vec<String>>,
pub require_client_auth: bool,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct TlsClientBundle {
pub ca_bundle_pem: Option<Vec<u8>>,
pub client_cert_pem: Option<Vec<u8>>,
pub client_key_pem: Option<Vec<u8>>,
pub alpn: Option<Vec<String>>,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct NetTlsServerConfig {
pub bundle: TlsServerBundle,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct NetTlsClientConfig {
pub bundle: TlsClientBundle,
}
#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
#[rkyv(bytecheck())]
pub struct NetTlsConfigReply {
pub handle: GuestResourceId,
}