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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! IPsec Encapsulating Security Payload (ESP, RFC 4303) AST definitions.
//!
//! Defines the confidentiality, data origin authentication, connectionless integrity, and anti-replay
//! encapsulation specified in RFC 4303 over IP protocol `50` (`0x32`). An ESP wire packet starts with
//! a 32-bit Security Parameters Index (`SPI`, default `0x1000`) and a 32-bit Sequence Number (`SEQ`,
//! default `1`), followed by an explicit Initialization Vector (`IV`, default 8 zeroed bytes), the
//! encrypted payload data, padding bytes, an 8-bit `Pad Length` (`0`), an 8-bit `Next Header` protocol
//! identifier (`NEXT_HEADER`, default `59` No Next Header), and a trailing Integrity Check Value (`ICV`,
//! default 12-byte HMAC-SHA1-96 digest). Both `IPSEC` and `ESP` keywords map to [`IpsecSpec`].
//!
//! Canonical `.fasm` syntax:
//! `a -> b [IPSEC | ESP] [SPI <u32>] [SEQ <u32>] [IV "<hex>"] [ICV "<hex>"] [NEXT_HEADER <u8>] [PAYLOAD "<str>" | HEXPAYLOAD "<hex>"]`
use Vec;
use PhantomData;
/// IPsec Encapsulating Security Payload (RFC 4303) specification over IP protocol `50`.
///
/// Syntax mapping: `IPSEC [SPI <u32>] [SEQ <u32>] [IV "<hex>"] [ICV "<hex>"] [NEXT_HEADER <u8>]`
/// Type alias for RFC 4303 Encapsulating Security Payload (`ESP`) specification.
///
/// Syntax mapping: `ESP [SPI <u32>] [SEQ <u32>] [IV "<hex>"] [ICV "<hex>"] [NEXT_HEADER <u8>]`
pub type EspSpec<'a> = ;