ipsec_parser/
ikev2_debug.rs1use crate::ikev2::*;
2use crate::ikev2_transforms::*;
3use rusticata_macros::debug::HexSlice;
4use std::fmt;
5
6impl<'a> fmt::Debug for IkeV2RawTransform<'a> {
9 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
10 let (tf_type, tf_id) = match self.transform_type {
11 IkeTransformType::EncryptionAlgorithm => (
12 "EncryptionAlgorithm".to_string(),
13 format!("{:?}", self.transform_id),
14 ),
15 IkeTransformType::PseudoRandomFunction => (
16 "PseudoRandomFunction".to_string(),
17 format!("{:?}", self.transform_id),
18 ),
19 IkeTransformType::IntegrityAlgorithm => (
20 "IntegrityAlgorithm".to_string(),
21 format!("{:?}", self.transform_id),
22 ),
23 IkeTransformType::DiffieHellmanGroup => (
24 "DiffieHellmanGroup".to_string(),
25 format!("{:?}", self.transform_id),
26 ),
27 IkeTransformType::ExtendedSequenceNumbers => (
28 "ExtendedSequenceNumbers".to_string(),
29 format!("{:?}", self.transform_id),
30 ),
31 _ => (
32 format!("<Unknown transform type {}>", self.transform_type.0),
33 "".to_string(),
34 ),
35 };
36 fmt.debug_struct("IkeV2RawTransform")
37 .field("last", &self.last)
38 .field("reserved1", &self.reserved1)
39 .field("transform_length", &self.transform_length)
40 .field("transform_type", &tf_type)
41 .field("reserved2", &self.reserved2)
42 .field("transform_id", &tf_id)
43 .field("attributes", &self.attributes)
44 .finish()
45 }
46}
47
48impl<'a> fmt::Debug for NoncePayload<'a> {
51 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
52 fmt.debug_struct("NoncePayload")
53 .field("nonce_data", &HexSlice(self.nonce_data))
54 .finish()
55 }
56}
57
58impl<'a> fmt::Debug for NotifyPayload<'a> {
59 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
60 fmt.debug_struct("NotifyPayload")
61 .field("protocol_id", &self.protocol_id)
62 .field("spi_size", &self.spi_size)
63 .field("notify_type", &self.notify_type)
64 .field("spi", &self.spi)
65 .field("notify_data", &self.notify_data.map(HexSlice))
66 .finish()
67 }
68}