ytls_traits/
t_parser.rs

1//! ytls Parser traits
2
3//----------------------------------------------------------
4// Record Parsing
5//----------------------------------------------------------
6
7pub trait ServerApRecordProcessor {}
8
9pub trait ServerWrappedRecordProcessor {
10    type ServerCertificateHandler: ServerCertificateProcessor;
11    type ServerCertificateVerifyHandler: ServerCertificateVerifyProcessor;
12    type ServerFinishedHandler: ServerFinishedProcessor;
13    fn server_certificate(&mut self) -> &mut Self::ServerCertificateHandler;
14    fn server_certificate_verify(&mut self) -> &mut Self::ServerCertificateVerifyHandler;
15    fn server_finished(&mut self) -> &mut Self::ServerFinishedHandler;
16}
17
18pub trait ServerFinishedProcessor {
19    fn handle_server_finished(&mut self, _hash_finished: &[u8]) -> ();
20}
21
22pub trait ServerCertificateProcessor {
23    fn handle_server_certificate(&mut self, _cert_data: &[u8], _ext_data: &[u8]) -> ();
24}
25
26pub trait ServerCertificateVerifyProcessor {
27    fn handle_server_certificate_verify(&mut self, _alg: [u8; 2], _signature: &[u8]) -> ();
28}
29
30pub trait ServerRecordProcessor {
31    type ServerHelloHandler: ServerHelloProcessor;
32    fn server_hello(&mut self) -> &mut Self::ServerHelloHandler;
33}
34
35pub trait ServerHelloProcessor {
36    fn handle_server_random(&mut self, _sr: &[u8; 32]) -> ();
37    fn handle_session_id(&mut self, _ses_id: &[u8]) -> ();
38    fn handle_selected_cipher_suite(&mut self, _cipher_suite: [u8; 2]) -> ();
39    fn handle_extension(&mut self, _ext_id: u16, _ext_data: &[u8]) -> ();
40}
41
42pub trait ClientHelloProcessor {
43    fn handle_extension(&mut self, _ext_id: u16, _ext_data: &[u8]) -> ();
44    fn handle_cipher_suite(&mut self, _cs: &[u8; 2]) -> ();
45    fn handle_client_random(&mut self, _cr: &[u8; 32]) -> ();
46    fn handle_session_id(&mut self, _ses_id: &[u8]) -> ();
47}