From f0bf1e979dea7daf2c33280419fbc2cd000bbf2b Mon Sep 17 00:00:00 2001 From: occheung Date: Wed, 18 Nov 2020 17:38:23 +0800 Subject: [PATCH] handshake: support client cert request --- src/tls_packet.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/tls_packet.rs b/src/tls_packet.rs index 9a37455..c172e26 100644 --- a/src/tls_packet.rs +++ b/src/tls_packet.rs @@ -216,6 +216,17 @@ impl<'a, 'b> HandshakeRepr<'a> { Err(()) } } + + pub(crate) fn get_cert_request_extensions(&self) -> Result<&Vec, ()> { + if self.msg_type != HandshakeType::CertificateRequest { + return Err(()) + }; + if let HandshakeData::CertificateRequest(req) = &self.handshake_data { + Ok(&req.extensions) + } else { + Err(()) + } + } } #[derive(Debug, PartialEq, Eq, Clone, Copy, IntoPrimitive, TryFromPrimitive)] @@ -620,6 +631,10 @@ pub enum SignatureScheme { rsa_pss_pss_sha256 = 0x0809, rsa_pss_pss_sha384 = 0x080a, rsa_pss_pss_sha512 = 0x080b, + + /* Bad value */ + #[num_enum(default)] + illegal = 0xFFFF, } #[derive(Debug, Clone)]