pub struct DtlsContext { /* private fields */ }Expand description
OpenSSL DTLS server context for EST-coaps.
Wraps an openssl::ssl::SslContext configured with the server certificate,
private key, and trusted CA for optional client certificate verification.
RFC 9148 §5 requires DTLS for all EST-coaps exchanges. The server presents its certificate during the handshake and optionally requests a client certificate for mTLS-based enrollment authentication.
§Example
let cert_pem = std::fs::read("server.crt").unwrap();
let key_pem = std::fs::read("server.key").unwrap();
let ca_pem = std::fs::read("ca.crt").unwrap();
let ctx = DtlsContext::new(&cert_pem, &key_pem, &ca_pem).unwrap();Implementations§
Source§impl DtlsContext
impl DtlsContext
Sourcepub fn new(
cert_pem: &[u8],
key_pem: &[u8],
ca_pem: &[u8],
) -> Result<Self, CoapError>
pub fn new( cert_pem: &[u8], key_pem: &[u8], ca_pem: &[u8], ) -> Result<Self, CoapError>
Creates a new DTLS server context.
§Arguments
cert_pem- PEM-encoded server certificate.key_pem- PEM-encoded server private key.ca_pem- PEM-encoded CA certificate for verifying client certificates.
The context is configured to request (but not require) a client certificate
during the DTLS handshake. EST operations that need mTLS authentication
should check DtlsConnection::client_cert() after the handshake completes.
Sourcepub fn ssl_context(&self) -> &SslContext
pub fn ssl_context(&self) -> &SslContext
Returns a reference to the underlying SslContext.
Used by DtlsConnection to create per-peer SSL instances.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DtlsContext
impl RefUnwindSafe for DtlsContext
impl Send for DtlsContext
impl Sync for DtlsContext
impl Unpin for DtlsContext
impl UnsafeUnpin for DtlsContext
impl UnwindSafe for DtlsContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more