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::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_bytes!(be_u16) >> g: length_bytes!(be_u16) >> ys: length_bytes!(be_u16) >> ( ServerDHParams{ dh_p: p, dh_g: g, dh_ys: ys, }) ) );