1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use nom::number::streaming::be_u16; /// Diffie-Hellman parameters, defined in [RFC5246] section 7.4.3 #[derive(PartialEq)] pub struct ServerDHParams<'a> { /// The prime modulus used for the Diffie-Hellman operation. pub dh_p: &'a [u8], /// The generator used for the Diffie-Hellman operation. pub dh_g: &'a [u8], /// The server's Diffie-Hellman public value (g^X mod p). pub dh_ys: &'a [u8], } named! {pub parse_dh_params<ServerDHParams>, do_parse!( p: length_data!(be_u16) >> g: length_data!(be_u16) >> ys: length_data!(be_u16) >> ( ServerDHParams{ dh_p: p, dh_g: g, dh_ys: ys, }) ) }