1use rkyv::{Archive, Deserialize, Serialize};
4
5use crate::GuestResourceId;
6
7#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
9#[rkyv(bytecheck())]
10pub struct TlsServerBundle {
11 pub cert_chain_pem: Vec<u8>,
13 pub private_key_pem: Vec<u8>,
15 pub client_ca_pem: Option<Vec<u8>>,
17 pub alpn: Option<Vec<String>>,
19 pub require_client_auth: bool,
21}
22
23#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
25#[rkyv(bytecheck())]
26pub struct TlsClientBundle {
27 pub ca_bundle_pem: Option<Vec<u8>>,
29 pub client_cert_pem: Option<Vec<u8>>,
31 pub client_key_pem: Option<Vec<u8>>,
33 pub alpn: Option<Vec<String>>,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
39#[rkyv(bytecheck())]
40pub struct NetTlsServerConfig {
41 pub bundle: TlsServerBundle,
43}
44
45#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
47#[rkyv(bytecheck())]
48pub struct NetTlsClientConfig {
49 pub bundle: TlsClientBundle,
51}
52
53#[derive(Debug, Clone, PartialEq, Eq, Archive, Serialize, Deserialize)]
55#[rkyv(bytecheck())]
56pub struct NetTlsConfigReply {
57 pub handle: GuestResourceId,
59}