HIP - Host Identity Protocol¶
pcapkit.protocols.internet.hip contains
HIP only,
which implements extractor for Host Identity
Protocol (HIP) [*], whose structure is described
as below:
Octets |
Bits |
Name |
Description |
|---|---|---|---|
0 |
0 |
|
Next Header |
1 |
8 |
|
Header Length |
2 |
16 |
|
Reserved ( |
2 |
17 |
|
Packet Type |
3 |
24 |
|
Version |
3 |
28 |
|
Reserved |
3 |
31 |
|
Reserved ( |
4 |
32 |
|
Checksum |
6 |
48 |
|
Controls |
8 |
64 |
|
Sender’s Host Identity Tag |
24 |
192 |
|
Receiver’s Host Identity Tag |
40 |
320 |
|
HIP Parameters |
- class pcapkit.protocols.internet.hip.HIP(file=None, length=None, **kwargs)[source]¶
Bases:
IPv6_Ext[HIP,HIP],Internet[HIP,HIP]This class implements Host Identity Protocol.
Double-inherited, per the convention set on #917: a header usable only as an extension header inherits
IPv6_Extalone, while one also usable as a standalone protocol namesInternetas well. HIP is both, on two independent grounds:RFC 7401 Section 5.1 states that “the HIP header is logically an IPv6 extension header”, and IANA lists protocol 139 in its IPv6 Extension Header Types registry (11 entries).
RFC 7401 Appendix C.2, “IPv4 HIP Packet (I1 Packet)”, works a checksum for an IPv4 header carrying
Next Header: 139withPayload Protocol: 59. HIP therefore travels directly as an IPv4 payload, as doAHandESP.
The second ground separates HIP from
MHand Shim6, which are protocols in their own right but cannot appear under IPv4: RFC 6275 Section 6.1.1 defines the Mobility Header checksum over a pseudo-header of IPv6 header fields with no IPv4 variant, and Mobile IPv4 carries its equivalent messages over UDP port 434 (RFC 5944) rather than as protocol 135.Internetis already reached transitively throughIPv6_Ext; naming it records the classification, so a reader can tell a deliberate standalone protocol from a header that merely inherits one.This class parses the following HIP parameters, which are registered in the
self.__parameter__attribute:Parameter Code
Parameter Parser
Changed in version 1.5.0:
Parameters dispatch through
__parameter__rather than by method name (#429).A parameter is padded to the record length RFC 7401 gives (#651), and
PUZZLE,SOLUTION,R1_COUNTERandLOCATOR_SETare sized as the RFCs give them (#608, #653 to #655, #672, #679).A rebuild reproduces the Header Length, a packet with no parameters, the
PUZZLElifetime, the reserved, padding and Locator flag bits, and the two fixed header bits (#1313, #1314, #1323, #1328, #1365, #1417, #1459).
- property payload: ProtocolBase | NoReturn¶
Payload of current instance.
- Raises:
UnsupportedCall – if the protocol is used as an IPv6 extension header
- Return type:
- property protocol: str | None | NoReturn¶
Name of next layer protocol (if any).
- Raises:
UnsupportedCall – if the protocol is used as an IPv6 extension header
- property protochain: ProtoChain | NoReturn¶
Protocol chain of current instance.
- Raises:
UnsupportedCall – if the protocol is used as an IPv6 extension header
- classmethod register_parameter(code, meth)[source]¶
Register a parameter parser.
- read(length=None, *, extension=False, **kwargs)[source]¶
Read Host Identity Protocol.
Structure of HIP header [RFC 5201][RFC 7401]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Header Length |0| Packet Type |Version| RES.|1| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Controls | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender's Host Identity Tag (HIT) | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Receiver's Host Identity Tag (HIT) | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / HIP Parameters / / / | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- make(next=<TransType.UDP: 17>, next_default=None, next_namespace=None, next_reversed=False, packet=<Packet.HIP_DATA: 32>, packet_default=None, packet_namespace=None, packet_reversed=False, packet_fixed=0, version=2, version_reserved=0, version_fixed=1, checksum=b'\\x00\\x00', controls_anonymous=False, controls_reserved=0, shit=0, rhit=0, parameters=None, payload=b'', **kwargs)[source]¶
Make (construct) packet data.
- Parameters:
next (
TransType|IntEnum|IntEnum|str|int) – Next header type.next_default (
int|None) – Default value for next header type.next_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – Namespace for next header type.next_reversed (
bool) – If the next header type is reversed.packet (
Packet|IntEnum|IntEnum|str|int) – HIP packet type.packet_default (
int|None) – Default value for HIP packet type.packet_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – Namespace for HIP packet type.packet_reversed (
bool) – If the HIP packet type is reversed.packet_fixed (
int) – The fixed leading bit of thePacket Typeoctet; RFC 7401 Section 5.1 prescribes0when sending.version (
int) – HIP version.version_reserved (
int) – The 3 reserved bits betweenVersionand the fixed low-order bit.version_fixed (
int) – The fixed low-order bit of theVersionoctet; RFC 7401 Section 5.1 prescribes1when sending.checksum (
bytes) – Checksum.controls_anonymous (
bool) – If the sender is anonymous.controls_reserved (
int) – The 15 reserved high-order bits ofControls.shit (
int) – Sender’s host identity tag (HIT).rhit (
int) – Receiver’s host identity tag (HIT).parameters (
list[Parameter|tuple[Parameter,dict[str,Any]] |bytes] |OrderedMultiDict[Parameter,Parameter] |None) – HIP parameters.payload (
bytes|ProtocolBase|Schema) – Payload.**kwargs (
Any) – Arbitrary keyword arguments.
- Return type:
- Returns:
Constructed packet data.
- _read_hip_param(length, *, version)[source]¶
Read HIP parameters.
- Parameters:
- Return type:
- Returns:
Extracted HIP parameters.
- Raises:
ProtocolError – if packet length threshold check failed
- _read_param_unassigned(schema, *, version, options)[source]¶
Read HIP unassigned parameters.
Structure of HIP unassigned parameters [RFC 5201][RFC 7401]:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type |C| Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Contents / / +-+-+-+-+-+-+-+-+ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
UnassignedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_esp_info(schema, *, version, options)[source]¶
Read HIP
ESP_INFOparameter.Structure of HIP
ESP_INFOparameter [RFC 7402]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | KEYMAT Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OLD SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NEW SPI | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
ESPInfoParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT12.
- _read_param_r1_counter(schema, *, version, options)[source]¶
Read HIP
R1_COUNTERparameter.Structure of HIP
R1_COUNTERparameter [RFC 5201][RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved, 4 bytes | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | R1 generation counter, 8 bytes | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
R1CounterParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT12, or the parameter is the HIPv1-only code128in a packet of another version.
- _read_param_locator_set(schema, *, version, options)[source]¶
Read HIP
LOCATOR_SETparameter.Structure of HIP
LOCATOR_SETparameter [RFC 8046]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Traffic Type | Locator Type | Locator Length | Reserved |P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Locator Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Locator | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Traffic Type | Locator Type | Locator Length | Reserved |P| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Locator Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Locator | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
LocatorSetParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If locator data is malformed.
- _read_param_puzzle(schema, *, version, options)[source]¶
Read HIP
PUZZLEparameter.Structure of HIP
PUZZLEparameter [RFC 5201][RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | #K, 1 byte | Lifetime | Opaque, 2 bytes | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Random #I, RHASH_len / 8 bytes | / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
PuzzleParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
versionis1andschema.lenis NOT12.
- _read_param_solution(schema, *, version, options)[source]¶
Read HIP
SOLUTIONparameter.Structure of HIP
SOLUTIONparameter [RFC 5201][RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | #K, 1 byte | Reserved | Opaque, 2 bytes | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Random #I, n bytes | / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Puzzle solution #J, RHASH_len / 8 bytes | / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
SolutionParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
versionis1andschema.lenis NOT20, or ifschema.len - 4is odd.
- _read_param_seq(schema, *, version, options)[source]¶
Read HIP
SEQparameter.Structure of HIP
SEQparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Update ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
SEQParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT4.
- _read_param_ack(schema, *, version, options)[source]¶
Read HIP
ACKparameter.Structure of HIP
ACKparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | peer Update ID 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / peer Update ID n | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
ACKParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT4modulo.
- _read_param_dh_group_list(schema, *, version, options)[source]¶
Read HIP
DH_GROUP_LISTparameter.Structure of HIP
DH_GROUP_LISTparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DH GROUP ID #1| DH GROUP ID #2| DH GROUP ID #3| DH GROUP ID #4| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DH GROUP ID #n| Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
DHGroupListParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – The parameter is NOT supported in HIPv1.
- _read_param_diffie_hellman(schema, *, version, options)[source]¶
Read HIP
DIFFIE_HELLMANparameter.Structure of HIP
DIFFIE_HELLMANparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group ID | Public Value Length | Public Value / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
DiffieHellmanParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_hip_transform(schema, *, version, options)[source]¶
Read HIP
HIP_TRANSFORMparameter.Structure of HIP
HIP_TRANSFORMparameter [RFC 5201]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Suite ID #1 | Suite ID #2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Suite ID #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPTransformParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If the parameter is used in a version other than HIPv1, or
schema.lenis NOT a2modulo.
- _read_param_hip_cipher(schema, *, version, options)[source]¶
Read HIP
HIP_CIPHERparameter.Structure of HIP
HIP_CIPHERparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cipher ID #1 | Cipher ID #2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Cipher ID #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPCipherParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If the parameter is used in HIPv1, or
schema.lenis NOT a2modulo.
- _read_param_nat_traversal_mode(schema, *, version, options)[source]¶
Read HIP
NAT_TRAVERSAL_MODEparameter.Structure of HIP
NAT_TRAVERSAL_MODEparameter [RFC 5770]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Mode ID #1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mode ID #2 | Mode ID #3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mode ID #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
NATTraversalModeParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT a2modulo.
- _read_param_transaction_pacing(schema, *, version, options)[source]¶
Read HIP
TRANSACTION_PACINGparameter.Structure of HIP
TRANSACTION_PACINGparameter [RFC 5770]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Min Ta | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
TransactionPacingParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT4.
- _read_param_encrypted(schema, *, version, options)[source]¶
Read HIP
ENCRYPTEDparameter.Structure of HIP
ENCRYPTEDparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IV / / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / / Encrypted data / / / / +-------------------------------+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
EncryptedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_host_id(schema, *, version, options)[source]¶
Read HIP
HOST_IDparameter.Structure of HIP
HOST_IDparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HI Length |DI-Type| DI Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Algorithm | Host Identity / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Domain Identifier / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HostIDParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_hit_suite_list(schema, *, version, options)[source]¶
Read HIP
HIT_SUITE_LISTparameter.Structure of HIP
HIT_SUITE_LISTparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID #1 | ID #2 | ID #3 | ID #4 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ID #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HITSuiteListParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – The parameter is NOT supported in HIPv1.
- _read_param_cert(schema, *, version, options)[source]¶
Read HIP
CERTparameter.Structure of HIP
CERTparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CERT group | CERT count | CERT ID | CERT type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Certificate / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
CertParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_notification(schema, *, version, options)[source]¶
Read HIP
NOTIFICATIONparameter.Structure of HIP
NOTIFICATIONparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Notify Message Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | / / Notification Data / / +---------------+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
NotificationParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_echo_request_signed(schema, *, version, options)[source]¶
Read HIP
ECHO_REQUEST_SIGNEDparameter.Structure of HIP
ECHO_REQUEST_SIGNEDparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque data (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
EchoRequestSignedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_reg_info(schema, *, version, options)[source]¶
Read HIP
REG_INFOparameter.Structure of HIP
REG_INFOparameter [RFC 8003]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Min Lifetime | Max Lifetime | Reg Type #1 | Reg Type #2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | ... | Reg Type #n | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Padding + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RegInfoParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_reg_request(schema, *, version, options)[source]¶
Read HIP
REG_REQUESTparameter.Structure of HIP
REG_REQUESTparameter [RFC 8003]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lifetime | Reg Type #1 | Reg Type #2 | Reg Type #3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | ... | Reg Type #n | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Padding + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RegRequestParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_reg_response(schema, *, version, options)[source]¶
Read HIP
REG_RESPONSEparameter.Structure of HIP
REG_RESPONSEparameter [RFC 8003]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lifetime | Reg Type #1 | Reg Type #2 | Reg Type #3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | ... | Reg Type #n | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Padding + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RegResponseParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_reg_failed(schema, *, version, options)[source]¶
Read HIP
REG_FAILEDparameter.Structure of HIP
REG_FAILEDparameter [RFC 8003]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Lifetime | Reg Type #1 | Reg Type #2 | Reg Type #3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... | ... | Reg Type #n | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Padding + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RegFailedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_reg_from(schema, *, version, options)[source]¶
Read HIP
REG_FROMparameter.Structure of HIP
REG_FROMparameter [RFC 5770]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | Protocol | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RegFromParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT20.
- _read_param_echo_response_signed(schema, *, version, options)[source]¶
Read HIP
ECHO_RESPONSE_SIGNEDparameter.Structure of HIP
ECHO_RESPONSE_SIGNEDparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque data (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
EchoResponseSignedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_transport_format_list(schema, *, version, options)[source]¶
Read HIP
TRANSPORT_FORMAT_LISTparameter.Structure of HIP
TRANSPORT_FORMAT_LISTparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TF type #1 | TF type #2 / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / TF type #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
TransportFormatListParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If the parameter is used in HIPv1, or
schema.lenis NOT2modulo.
- _read_param_esp_transform(schema, *, version, options)[source]¶
Read HIP
ESP_TRANSFORMparameter.Structure of HIP
ESP_TRANSFORMparameter [RFC 7402]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Suite ID #1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Suite ID #2 | Suite ID #3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Suite ID #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
ESPTransformParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT2modulo.
- _read_param_seq_data(schema, *, version, options)[source]¶
Read HIP
SEQ_DATAparameter.Structure of HIP
SEQ_DATAparameter [RFC 6078]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
SeqDataParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT4.
- _read_param_ack_data(schema, *, version, options)[source]¶
Read HIP
ACK_DATAparameter.Structure of HIP
ACK_DATAparameter [RFC 6078]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acked Sequence number / / / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
AckDataParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT4modulo.
- _read_param_payload_mic(schema, *, version, options)[source]¶
Read HIP
PAYLOAD_MICparameter.Structure of HIP
PAYLOAD_MICparameter [RFC 6078]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Next Header | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / MIC Value / / +-+-+-+-+-+-+-+-+ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
PayloadMICParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_transaction_id(schema, *, version, options)[source]¶
Read HIP
TRANSACTION_IDparameter.Structure of HIP
TRANSACTION_IDparameter [RFC 6078]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
TransactionIDParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_overlay_id(schema, *, version, options)[source]¶
Read HIP
OVERLAY_IDparameter.Structure of HIP
OVERLAY_IDparameter [RFC 6079]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identifier / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
OverlayIDParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_route_dst(schema, *, version, options)[source]¶
Read HIP
ROUTE_DSTparameter.Structure of HIP
ROUTE_DSTparameter [RFC 6028]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HIT #1 | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HIT #n | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RouteDstParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If the parameter is malformed.
- _read_param_hip_transport_mode(schema, *, version, options)[source]¶
Read HIP
HIP_TRANSPORT_MODEparameter.Structure of HIP
HIP_TRANSPORT_MODEparameter [RFC 6261]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | Mode ID #1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mode ID #2 | Mode ID #3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Mode ID #n | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPTransportModeParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT2modulo.
- _read_param_hip_mac(schema, *, version, options)[source]¶
Read HIP
HIP_MACparameter.Structure of HIP
HIP_MACparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC | / / / +-------------------------------+ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPMACParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_hip_mac_2(schema, *, version, options)[source]¶
Read HIP
HIP_MAC_2parameter.Structure of HIP
HIP_MAC_2parameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC | / / / +-------------------------------+ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPMAC2Parameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_hip_signature_2(schema, *, version, options)[source]¶
Read HIP
HIP_SIGNATURE_2parameter.Structure of HIP
HIP_SIGNATURE_2parameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIG alg | Signature / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPSignature2Parameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_hip_signature(schema, *, version, options)[source]¶
Read HIP
HIP_SIGNATUREparameter.Structure of HIP
HIP_SIGNATUREparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SIG alg | Signature / +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ / | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
HIPSignatureParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_echo_request_unsigned(schema, *, version, options)[source]¶
Read HIP
ECHO_REQUEST_UNSIGNEDparameter.Structure of HIP
ECHO_REQUEST_UNSIGNEDparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque data (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
EchoRequestUnsignedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_echo_response_unsigned(schema, *, version, options)[source]¶
Read HIP
ECHO_RESPONSE_UNSIGNEDparameter.Structure of HIP
ECHO_RESPONSE_UNSIGNEDparameter [RFC 7401]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Opaque data (variable length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
EchoResponseUnsignedParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_relay_from(schema, *, version, options)[source]¶
Read HIP
RELAY_FROMparameter.Structure of HIP
RELAY_FROMparameter [RFC 5770]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | Protocol | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RelayFromParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT20.
- _read_param_relay_to(schema, *, version, options)[source]¶
Read HIP
RELAY_TOparameter.Structure of HIP
RELAY_TOparameter [RFC 5770]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Port | Protocol | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RelayToParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT20.
- _read_param_overlay_ttl(schema, *, version, options)[source]¶
Read HIP
OVERLAY_TTLparameter.Structure of HIP
OVERLAY_TTLparameter [RFC 6079]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TTL | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
OverlayTTLParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT4.
- _read_param_route_via(schema, *, version, options)[source]¶
Read HIP
ROUTE_VIAparameter.Structure of HIP
ROUTE_VIAparameter [RFC 6028]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flags | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HIT #1 | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HIT #n | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RouteViaParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If the parameter is malformed.
- _read_param_from(schema, *, version, options)[source]¶
Read HIP
FROMparameter.Structure of HIP
FROMparameter [RFC 8004]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
FromParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT16.
- _read_param_rvs_hmac(schema, *, version, options)[source]¶
Read HIP
RVS_HMACparameter.Structure of HIP
RVS_HMACparameter [RFC 8004]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC | / / / +-------------------------------+ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RVSHMACParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _read_param_via_rvs(schema, *, version, options)[source]¶
Read HIP
VIA_RVSparameter.Structure of HIP
VIA_RVSparameter [RFC 8004]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
ViaRVSParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT16modulo.
- _read_param_relay_hmac(schema, version, options)[source]¶
Read HIP
RELAY_HMACparameter.Structure of HIP
RELAY_HMACparameter [RFC 5770]:0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | HMAC | / / / +-------------------------------+ | | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
RelayHMACParameter) – parsed parameter schemaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _make_param_unassigned(code, param=None, *, version, contents=b'', **kwargs)[source]¶
Make HIP unassigned parameter.
- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_esp_info(code, param=None, *, version, reserved=0, index=0, old_spi=0, new_spi=0, **kwargs)[source]¶
Make HIP
ESP_INFOparameter.- Parameters:
code (
Parameter) – parameter codeparam (
ESPInfoParameter|None) – parameter dataversion (
int) – HIP protocol versionreserved (
int) – reserved octets, zero when sent (RFC 7402 Section 5.1.1)index (
int) – KEYMAT indexold_spi (
int) – old SPInew_spi (
int) – new SPI**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_r1_counter(code, param=None, *, version, counter=0, reserved=b'\\x00\\x00\\x00\\x00', **kwargs)[source]¶
Make HIP
R1_COUNTERparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – If
codeis the HIPv1-only128andversionis NOT1.
- _make_param_locator_set(code, param=None, *, version, locator_set=None, **kwargs)[source]¶
Make HIP
LOCATOR_SETparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_puzzle(code, param=None, *, version, index=0, lifetime=0, lifetime_exponent=None, opaque=b'', random=0, rhash_len=None, **kwargs)[source]¶
Make HIP
PUZZLEparameter.- Parameters:
code (
Parameter) – parameter codeparam (
PuzzleParameter|None) – parameter dataversion (
int) – HIP protocol versionindex (
int) – #K indexlifetime (
timedelta|int) – lifetime, encoded to the nearest lowerLifetimeoctet; ignored whenlifetime_exponentis givenlifetime_exponent (
int|None) – theLifetimeoctet itself,valuein RFC 7401 Section 5.2.4’s2^(value - 32)secondsopaque (
bytes) – opaque datarandom (
int) – random #I valuerhash_len (
int|None) – on-wire width ofRandom #I, in bits; defaults to the widthparamwas parsed with, or to whatversionfixes, or torandom’s own bit length**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – If
lifetime_exponentdoes not fit one octet,lifetimecannot be encoded, or the width ofRandom #Iis invalid; see_make_puzzle_lifetimeand_make_puzzle_field_width.
- _make_param_solution(code, param=None, *, version, index=0, reserved=None, opaque=b'', random=0, solution=0, rhash_len=None, **kwargs)[source]¶
Make HIP
SOLUTIONparameter.- Parameters:
code (
Parameter) – parameter codeparam (
SolutionParameter|None) – parameter dataversion (
int) – HIP protocol versionindex (
int) – #K indexreserved (
int|None) – theReservedoctet, which RFC 7401 Section 5.2.5 requires to be “zero when sent”. Defaults to the octetparamarrived with, so that re-serialising reproduces it rather than rewriting it, and to that mandated zero otherwise. Pass it explicitly to override either – notably to write the conformant zero over a non-conformant one received from a peer, which is otherwise unreachable becauseSolutionParameteris immutableopaque (
bytes) – opaque datarandom (
int) – random #I valuesolution (
int) – solution #J valuerhash_len (
int|None) – on-wire width ofRandom #IandPuzzle solution #Jalike, in bits; defaults to the widthparamwas parsed with, or to whatversionfixes, or to the values’ own bit length**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – If the width of the two fields is invalid; see
_make_puzzle_field_width.
- _make_param_seq(code, param=None, *, version, update_id=0, **kwargs)[source]¶
Make HIP
SEQparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_ack(code, param=None, *, version, update_id=None, **kwargs)[source]¶
Make HIP
ACKparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_dh_group_list(code, param=None, *, version, groups=None, group_default=None, group_namespace=None, group_reversed=False, **kwargs)[source]¶
Make HIP
DH_GROUP_LISTparameter.- Parameters:
code (
Parameter) – parameter codeparam (
DHGroupListParameter|None) – parameter dataversion (
int) – HIP protocol versiongroups (
list[Group|IntEnum|IntEnum|str|int] |None) – list of group IDgroup_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – group ID namespacegroup_reversed (
bool) – reverse group ID namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – The parameter is NOT supported in HIPv1.
- _make_param_diffie_hellman(code, param=None, *, version, group=<Group.NIST_P_256: 7>, group_default=None, group_namespace=None, group_reversed=False, pub_val=0, **kwargs)[source]¶
Make HIP
DIFFIE_HELLMANparameter.- Parameters:
code (
Parameter) – parameter codeparam (
DiffieHellmanParameter|None) – parameter dataversion (
int) – HIP protocol versiongroup_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – group ID namespacegroup_reversed (
bool) – reverse group ID namespacepub_val (
int) – public value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_transform(code, param=None, *, version, suites=None, suite_default=None, suite_namespace=None, suite_reversed=False, **kwargs)[source]¶
Make HIP
HIP_TRANSFORMparameter.- Parameters:
code (
Parameter) – parameter codeparam (
HIPTransformParameter|None) – parameter dataversion (
int) – HIP protocol versionsuites (
list[Suite|IntEnum|IntEnum|str|int] |None) – list of suite IDsuite_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – suite ID namespacesuite_reversed (
bool) – reverse suite ID namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_cipher(code, param=None, *, version, ciphers=None, cipher_default=None, cipher_namespace=None, cipher_reversed=False, **kwargs)[source]¶
Make HIP
HIP_CIPHERparameter.- Parameters:
code (
Parameter) – parameter codeparam (
HIPCipherParameter|None) – parameter dataversion (
int) – HIP protocol versionciphers (
list[Cipher|IntEnum|IntEnum|str|int] |None) – list of cipher IDcipher_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – cipher ID namespacecipher_reversed (
bool) – reverse cipher ID namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – The parameter is NOT supported in HIPv1.
- _make_param_nat_traversal_mode(code, param=None, *, version, modes=None, mode_default=None, mode_namespace=None, mode_reversed=False, reserved=b'\\x00\\x00', **kwargs)[source]¶
Make HIP
NAT_TRAVERSAL_MODEparameter.- Parameters:
code (
Parameter) – parameter codeparam (
NATTraversalModeParameter|None) – parameter dataversion (
int) – HIP protocol versionmodes (
list[NATTraversal|IntEnum|IntEnum|str|int] |None) – list of mode IDmode_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – mode ID namespacemode_reversed (
bool) – reverse mode ID namespacereserved (
bytes) – the two reserved octets, truncated or zero-filled to 2 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_transaction_pacing(code, param=None, *, version, min_ta=0, **kwargs)[source]¶
Make HIP
TRANSACTION_PACINGparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_encrypted(code, param=None, *, version, cipher=<Cipher.NULL_ENCRYPT: 1>, cipher_default=None, cipher_namespace=None, cipher_reversed=False, iv=None, data=b'', reserved=b'\\x00\\x00\\x00\\x00', **kwargs)[source]¶
Make HIP
ENCRYPTEDparameter.- Parameters:
code (
Parameter) – parameter codeparam (
EncryptedParameter|None) – parameter dataversion (
int) – HIP protocol versioncipher_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – cipher ID namespacecipher_reversed (
bool) – reverse cipher ID namespaceiv (
bytes|None) – initialization vector (optional depending on cipher ID)data (
bytes) – encrypted datareserved (
bytes) – the four reserved octets, truncated or zero-filled to 4 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – If the cipher is
AES-128-CBCorAES-256-CBCandivis missing or NOT 16 octets.
- _make_param_host_id(code, param=None, *, version, hi=None, hi_curve=None, hi_pub_key=b'', hi_algorithm=<HIAlgorithm.NULL_ENCRYPT: 1>, hi_algorithm_default=None, hi_algorithm_namespace=None, hi_algorithm_reversed=False, di=b'', di_type=<DITypes.none_included: 0>, di_type_default=None, di_type_namespace=None, di_type_reversed=False, **kwargs)[source]¶
Make HIP
HOST_IDparameter.- Parameters:
code (
Parameter) – parameter codeparam (
HostIDParameter|None) – parameter dataversion (
int) – HIP protocol versionhi (
HostIdentity|bytes|HostIdentity|None) – host identityhi_curve (
ECDSACurve|ECDSALowCurve|EdDSACurve|None) – host identity curvehi_pub_key (
bytes) – host identity public keyhi_algorithm (
HIAlgorithm|IntEnum|IntEnum|str|int) – host identity algorithmhi_algorithm_default (
int|None) – default host identity algorithmhi_algorithm_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – host identity algorithm namespacehi_algorithm_reversed (
bool) – reverse host identity algorithm namespacedi (
bytes) – domain identifierdi_type (
DITypes|IntEnum|IntEnum|str|int) – domain identifier typedi_type_default (
int|None) – default domain identifier typedi_type_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – domain identifier type namespacedi_type_reversed (
bool) – reverse domain identifier type namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hit_suite_list(code, param=None, *, version, suites=None, suite_default=None, suite_namespace=None, suite_reversed=False, **kwargs)[source]¶
Make HIP
HIT_SUITE_LISTparameter.- Parameters:
code (
Parameter) – parameter codeparam (
HITSuiteListParameter|None) – parameter dataversion (
int) – HIP protocol versionsuites (
list[HITSuite|IntEnum|IntEnum|str|int] |None) – list of suitessuite_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – suite namespacesuite_reversed (
bool) – reverse suite namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – The parameter is NOT supported in HIPv1.
- _make_param_cert(code, param=None, *, version, cert_group=<Group.NIST_P_256: 7>, cert_group_default=None, cert_group_namespace=None, cert_group_reversed=False, cert_count=0, cert_id=0, cert_type=<Certificate.X_509_v3: 1>, cert_type_default=None, cert_type_namespace=None, cert_type_reversed=False, cert=b'', **kwargs)[source]¶
Make HIP
CERTparameter.- Parameters:
code (
Parameter) – parameter codeparam (
CertParameter|None) – parameter dataversion (
int) – HIP protocol versioncert_group (
Group|IntEnum|IntEnum|str|int) – certificate groupcert_group_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – certificate group namespacecert_group_reversed (
bool) – reverse certificate group namespacecert_count (
int) – certificate countcert_id (
int) – certificate IDcert_type (
Certificate|IntEnum|IntEnum|str|int) – certificate typecert_type_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – certificate type namespacecert_type_reversed (
bool) – reverse certificate type namespacecert (
bytes) – certificate data**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_notification(code, param=None, *, version, msg_type=<NotifyMessage.I2_ACKNOWLEDGEMENT: 16384>, msg_type_default=None, msg_type_namespace=None, msg_type_reversed=False, msg=b'', reserved=b'\\x00\\x00', **kwargs)[source]¶
Make HIP
NOTIFICATIONparameter.- Parameters:
code (
Parameter) – parameter codeparam (
NotificationParameter|None) – parameter dataversion (
int) – HIP protocol versionmsg_type (
NotifyMessage|IntEnum|IntEnum|str|int) – notification message typemsg_type_default (
int|None) – default notification message typemsg_type_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – notification message type namespacemsg_type_reversed (
bool) – reverse notification message type namespacemsg (
bytes) – notification messagereserved (
bytes) – the two reserved octets, truncated or zero-filled to 2 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_echo_request_signed(code, param=None, *, version, opaque=b'', **kwargs)[source]¶
Make HIP
ECHO_REQUEST_SIGNEDparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_reg_info(code, param=None, *, version, min_lifetime=0, max_lifetime=15, reg_info=None, reg_info_default=None, reg_info_namespace=None, reg_info_reversed=False, **kwargs)[source]¶
Make HIP
REG_INFOparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RegInfoParameter|None) – parameter dataversion (
int) – HIP protocol versionreg_info (
list[Registration|IntEnum|IntEnum|str|int] |None) – registration information listreg_info_default (
int|None) – default registration informationreg_info_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – registration information namespacereg_info_reversed (
bool) – reverse registration information namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_reg_request(code, param=None, *, version, lifetime=0, reg_request=None, reg_request_default=None, reg_request_namespace=None, reg_request_reversed=False, **kwargs)[source]¶
Make HIP
REG_REQUESTparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RegRequestParameter|None) – parameter dataversion (
int) – HIP protocol versionreg_request (
list[Registration|IntEnum|IntEnum|str|int] |None) – registration request listreg_request_default (
int|None) – default registration requestreg_request_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – registration request namespacereg_request_reversed (
bool) – reverse registration request namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_reg_response(code, param=None, *, version, lifetime=0, reg_response=None, reg_response_default=None, reg_response_namespace=None, reg_response_reversed=False, **kwargs)[source]¶
Make HIP
REG_RESPONSEparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RegResponseParameter|None) – parameter dataversion (
int) – HIP protocol versionreg_response (
list[Registration|IntEnum|IntEnum|str|int] |None) – registration response listreg_response_default (
int|None) – default registration responsereg_response_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – registration response namespacereg_response_reversed (
bool) – reverse registration response namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_reg_failed(code, param=None, *, version, lifetime=0, reg_failed=None, reg_failed_default=None, reg_failed_namespace=None, reg_failed_reversed=False, **kwargs)[source]¶
Make HIP
REG_FAILEDparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RegFailedParameter|None) – parameter dataversion (
int) – HIP protocol versionreg_failed (
list[RegistrationFailure|IntEnum|IntEnum|str|int] |None) – registration failure listreg_failed_default (
int|None) – default registration failurereg_failed_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – registration failure namespacereg_failed_reversed (
bool) – reverse registration failure namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_reg_from(code, param=None, *, version, port=0, protocol=<TransType.UDP: 17>, protocol_default=None, protocol_namespace=None, protocol_reversed=False, address='::', reserved=b'\\x00', **kwargs)[source]¶
Make HIP
REG_FROMparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RegFromParameter|None) – parameter dataversion (
int) – HIP protocol versionport (
int) – port numberprotocol (
TransType|IntEnum|IntEnum|str|int) – transport protocolprotocol_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – transport protocol namespaceprotocol_reversed (
bool) – reverse transport protocol namespaceaddress (
IPv6Address|str|int|bytes) – IPv6 addressreserved (
bytes) – the reserved octet, truncated or zero-filled to 1 octet**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_echo_response_signed(code, param=None, *, version, opaque=b'', **kwargs)[source]¶
Make HIP
ECHO_RESPONSE_SIGNEDparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_transport_format_list(code, param=None, *, version, formats=None, format_default=None, format_namespace=None, format_reversed=False, **kwargs)[source]¶
Make HIP
TRANSPORT_FORMAT_LISTparameter.- Parameters:
code (
Parameter) – parameter codeparam (
TransportFormatListParameter|None) – parameter dataversion (
int) – HIP protocol versionformats (
list[Parameter|IntEnum|IntEnum|str|int] |None) – transport format listformat_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – transport format namespaceformat_reversed (
bool) – reverse transport format namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- Raises:
ProtocolError – The parameter is NOT supported in HIPv1.
- _make_param_esp_transform(code, param=None, *, version, suites=None, suite_default=None, suite_namespace=None, suite_reversed=False, reserved=b'\\x00\\x00', **kwargs)[source]¶
Make HIP
ESP_TRANSFORMparameter.- Parameters:
code (
Parameter) – parameter codeparam (
ESPTransformParameter|None) – parameter dataversion (
int) – HIP protocol versionsuites (
list[ESPTransformSuite|IntEnum|IntEnum|str|int] |None) – ESP transform suite listsuite_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – ESP transform suite namespacesuite_reversed (
bool) – reverse ESP transform suite namespacereserved (
bytes) – the two reserved octets, truncated or zero-filled to 2 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_seq_data(code, param=None, *, version, seq=0, **kwargs)[source]¶
Make HIP
SEQ_DATAparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_ack_data(code, param=None, *, version, ack=None, **kwargs)[source]¶
Make HIP
ACK_DATAparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_payload_mic(code, param=None, *, version, next=<TransType.UDP: 17>, next_default=None, next_namespace=None, next_reversed=False, payload=b'', mic=b'', reserved=b'\\x00\\x00\\x00', **kwargs)[source]¶
Make HIP
PAYLOAD_MICparameter.- Parameters:
code (
Parameter) – parameter codeparam (
PayloadMICParameter|None) – parameter dataversion (
int) – HIP protocol versionnext (
TransType|IntEnum|IntEnum|str|int) – next protocolnext_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – next protocol namespacenext_reversed (
bool) – reverse next protocol namespacepayload (
bytes) – payload datamic (
bytes) – message integrity codereserved (
bytes) – the three reserved octets, truncated or zero-filled to 3 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_transaction_id(code, param=None, *, version, id=0, **kwargs)[source]¶
Make HIP
TRANSACTION_IDparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_overlay_id(code, param=None, *, version, id=0, **kwargs)[source]¶
Make HIP
OVERLAY_IDparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_route_dst(code, param=None, *, version, symmetric=False, must_follow=False, flags_reserved=0, hit=None, reserved=b'\\x00\\x00', **kwargs)[source]¶
Make HIP
ROUTE_DSTparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RouteDstParameter|None) – parameter dataversion (
int) – HIP protocol versionsymmetric (
bool) – symmetric flagmust_follow (
bool) – must-follow flagflags_reserved (
int) – the 14 reserved low-order bits ofFlagshit (
list[bytes|str|int|IPv6Address] |None) – list of HITsreserved (
bytes) – the two reserved octets, truncated or zero-filled to 2 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_transport_mode(code, param=None, *, version, port=0, modes=None, mode_default=None, mode_namespace=None, mode_reversed=False, **kwargs)[source]¶
Make HIP
HIP_TRANSPORT_MODEparameter.- Parameters:
code (
Parameter) – parameter codeparam (
HIPTransportModeParameter|None) – parameter dataversion (
int) – HIP protocol versionport (
int) – port numbermodes (
list[Transport|IntEnum|IntEnum|str|int] |None) – transport mode listmode_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – transport mode namespacemode_reversed (
bool) – reverse transport mode namespace**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_mac(code, param=None, *, version, hmac=b'', **kwargs)[source]¶
Make HIP
HIP_MACparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_mac_2(code, param=None, *, version, hmac=b'', **kwargs)[source]¶
Make HIP
HIP_MAC_2parameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_signature_2(code, param=None, *, version, algorithm=<HIAlgorithm.NULL_ENCRYPT: 1>, algorithm_default=None, algorithm_namespace=None, algorithm_reversed=False, signature=b'', **kwargs)[source]¶
Make HIP
HIP_SIGNATURE_2parameter.- Parameters:
code (
Parameter) – parameter codeparam (
HIPSignature2Parameter|None) – parameter dataversion (
int) – HIP protocol versionalgorithm (
HIAlgorithm|IntEnum|IntEnum|str|int) – signature algorithmalgorithm_default (
int|None) – default signature algorithmalgorithm_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – signature algorithm namespacealgorithm_reversed (
bool) – reverse signature algorithm namespacesignature (
bytes) – signature value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_hip_signature(code, param=None, *, version, algorithm=<HIAlgorithm.NULL_ENCRYPT: 1>, algorithm_default=None, algorithm_namespace=None, algorithm_reversed=False, signature=b'', **kwargs)[source]¶
Make HIP
HIP_SIGNATUREparameter.- Parameters:
code (
Parameter) – parameter codeparam (
HIPSignatureParameter|None) – parameter dataversion (
int) – HIP protocol versionalgorithm (
HIAlgorithm|IntEnum|IntEnum|str|int) – signature algorithmalgorithm_default (
int|None) – default signature algorithmalgorithm_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – signature algorithm namespacealgorithm_reversed (
bool) – reverse signature algorithm namespacesignature (
bytes) – signature value**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_echo_request_unsigned(code, param=None, *, version, opaque=b'', **kwargs)[source]¶
Make HIP
ECHO_REQUEST_UNSIGNEDparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_echo_response_unsigned(code, param=None, *, version, opaque=b'', **kwargs)[source]¶
Make HIP
ECHO_RESPONSE_UNSIGNEDparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_relay_from(code, param=None, *, version, port=0, protocol=<TransType.UDP: 17>, protocol_default=None, protocol_namespace=None, protocol_reversed=False, address='::', reserved=b'\\x00', **kwargs)[source]¶
Make HIP
RELAY_FROMparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RelayFromParameter|None) – parameter dataversion (
int) – HIP protocol versionport (
int) – port numberprotocol (
TransType|IntEnum|IntEnum|str|int) – transport protocolprotocol_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – transport protocol namespaceprotocol_reversed (
bool) – reverse transport protocol namespaceaddress (
IPv6Address|str|int|bytes) – relay addressreserved (
bytes) – the reserved octet, truncated or zero-filled to 1 octet**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_relay_to(code, param=None, *, version, port=0, protocol=<TransType.UDP: 17>, protocol_default=None, protocol_namespace=None, protocol_reversed=False, address='::', reserved=b'\\x00', **kwargs)[source]¶
Make HIP
RELAY_TOparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RelayToParameter|None) – parameter dataversion (
int) – HIP protocol versionport (
int) – port numberprotocol (
TransType|IntEnum|IntEnum|str|int) – transport protocolprotocol_namespace (
dict[str,int] |dict[int,str] |Type[IntEnum] |Type[IntEnum] |None) – transport protocol namespaceprotocol_reversed (
bool) – reverse transport protocol namespaceaddress (
IPv6Address|str|int|bytes) – relay addressreserved (
bytes) – the reserved octet, truncated or zero-filled to 1 octet**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_overlay_ttl(code, param=None, *, version, ttl=0, reserved=b'\\x00\\x00', **kwargs)[source]¶
Make HIP
OVERLAY_TTLparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_route_via(code, param=None, *, version, symmetric=False, must_follow=False, flags_reserved=0, hit=None, reserved=b'\\x00\\x00', **kwargs)[source]¶
Make HIP
ROUTE_VIAparameter.- Parameters:
code (
Parameter) – parameter codeparam (
RouteViaParameter|None) – parameter dataversion (
int) – HIP protocol versionsymmetric (
bool) – symmetric flagmust_follow (
bool) – must-follow flagflags_reserved (
int) – the 14 reserved low-order bits ofFlagshit (
list[bytes|str|int|IPv6Address] |None) – list of HITsreserved (
bytes) – the two reserved octets, truncated or zero-filled to 2 octets**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_from(code, param=None, *, version, address='::', **kwargs)[source]¶
Make HIP
FROMparameter.- Parameters:
code (
Parameter) – parameter codeparam (
FromParameter|None) – parameter dataversion (
int) – HIP protocol versionaddress (
IPv6Address|str|int|bytes) – relay address**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_rvs_hmac(code, param=None, *, version, hmac=b'', **kwargs)[source]¶
Make HIP
RVS_HMACparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_via_rvs(code, param=None, *, version, address=None, **kwargs)[source]¶
Make HIP
VIA_RVSparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_relay_hmac(code, param=None, *, version, hmac=b'', **kwargs)[source]¶
Make HIP
RELAY_HMACparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- __parameter__: DefaultDict[Parameter | int, str | tuple[Callable[[Parameter, int, OrderedMultiDict[Parameter, Parameter]], Parameter], Callable[[Parameter, Parameter | None, int, Any], Parameter]]]¶
DefaultDict[Enum_Parameter, str | tuple[ParameterParser, ParameterConstructor]]: Parameter code to method mapping, c.f.
_read_hip_param()and/or_make_hip_param(). Astrvalue names the methods_read_param_${name}and_make_param_${name}, falling back to_read_param_unassigned/_make_param_unassignedwhen they do not exist; any other value is a(parser, constructor)pair of callables.
- __post_init__(file=None, length=None, *, extension=False, **kwargs)[source]¶
Post initialisation hook.
- Overloads:
self, file (IO[bytes] | bytes), length (Optional[int]), extension (bool), kwargs (Any) → None
self, kwargs (Any) → None
- Parameters:
See also
For construction argument, please refer to
self.make.
Type Stubs¶
- class pcapkit.protocols.internet.hip.Locator[source]¶
Bases:
TypedDictLocator dictionary type.
- reserved: NotRequired[int]¶
Reserved bits of the flags octet.
- ip: IPv6Address | bytes | int | str¶
IP address.
- spi: NotRequired[int]¶
SPI.
Header Schemas¶
- class pcapkit.protocols.schema.internet.hip.HIP(*args: _VT, **kwargs: _VT)[source]¶
Bases:
SchemaHeader schema for HIP packet.
- pkt: PacketType = <BitField pkt>¶
Packet type.
- ver: VersionType = <BitField ver>¶
HIP version.
- control: ControlsType = <BitField control>¶
HIP controls.
- class pcapkit.protocols.schema.internet.hip.Parameter(dict_=None, **kwargs)[source]¶
Bases:
EnumSchema[Parameter]Base schema for HIP parameters.
- class pcapkit.protocols.schema.internet.hip.UnassignedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP unassigned parameters.
- class pcapkit.protocols.schema.internet.hip.ESPInfoParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ESP_INFOparameters.- reserved: int = <UInt16Field reserved>¶
Reserved, “zero when sent, ignored when received” (RFC 7402 Section 5.1.1). Read as a value rather than as padding, so that re-serialising a parsed parameter reproduces the octets it arrived with.
- class pcapkit.protocols.schema.internet.hip.R1CounterParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
R1_COUNTERparameters.Registered under both codes, not 129 alone. RFC 5201 Section 5.2.3 (HIPv1) and RFC 7401 Section 5.2.3 (HIPv2) give the identical 4 + 8 layout to code 128 (
R1_Counter) and code 129 (R1_COUNTER) – one parameter under two numbers, the difference being HIP’s own C-bit rather than an unrelated code – and the field list below is that layout exactly.__parameter__carries two hand-written entries – not a name-normalisation rule;R1_CounterandR1_COUNTERdiffer only in case, and each needs its own line – mapping both codes to the same_read_param_r1_counter, and_make_param_r1_counterbuilds this class for either code. The schema lookup this class’s owncode=feeds – consulted on the parse path byOptionField– would fall back toUnassignedParameterfor 128 if a single-codecode=registered 129 alone and left 128 unclaimed.- counter: int = <UInt64Field counter>¶
R1 counter.
Eight octets, not four. RFC 7401 Section 5.2.3 labels the field “R1 generation counter, 8 bytes” in its diagram and then says outright that the parameter “contains a 64-bit unsigned integer in network byte order”, so the width is stated twice and inferred from neither. RFC 5201 Section 5.2.3 gives the same 4 + 8 layout, so there is no version under which four octets is right, and both codes that reach this class –
R1_Counter(128, HIPv1) andR1_COUNTER(129) – are affected. With the fourreservedoctets the contents are 12 octets, which RFC 7401 Section 5.2.1’s arithmetic pads to a 16-octet record.
- class pcapkit.protocols.schema.internet.hip.LocatorSetParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
LOCATOR_SETparameters.- locators: list[Locator] = <ListField locators>¶
List of locators.
The
lengthcallback is the parameter’s ownLength, and that is correct on the unpacking path for the reasonLOCATOR_SET_LENgives – nothing has shadowedlenyet when this field is resolved, sincetypeandlenare the only fields ahead of it. What matters is the quantity it is handed: RFC 7401 Section 5.2.1’sLengthis a byte count, not the 4-octet units RFC 8046 Section 4 givesLocator Length, and_make_param_locator_set()writes it as one.Schema.unpackreads exactlyfield.lengthoctets off the stream and hands only those toListField.unpack, so aLengthin locator units would offer a set of n plain IPv6 locators4noctets of a24n-octet contents, parse one truncated locator and leave the rest of the record unconsumed. WithLengtha byte count the budget is the contents, and each locator bills the 8 +Locator Length* 4 octets it actually consumed.
- padding: bytes = <PaddingField padding>¶
Padding.
Not
parameter_padding_len(), which every other parameter in this module uses, butlocator_set_padding_len()– the same arithmetic read off a snapshot of this parameter’sLengthrather than offpkt['len']directly.LOCATOR_SET_LENdocuments why the direct read does not work here: the nestedLocatorschemas share this parameter’s packet context while they pack, and their ownlenoverwrites it beforepaddingis reached.The shadowed
lenis 4 for any IPv6 locator, so a padding read offpkt['len']directly would append exactly four octets whatever the locator count.
- class pcapkit.protocols.schema.internet.hip.Locator(*args: _VT, **kwargs: _VT)[source]¶
Bases:
SchemaHeader schema for HIP locators.
- flags: LocatorFlags = <BitField flags>¶
Reserved and flags.
- value: IPv6Address | LocatorData = <SwitchField value>¶
Locator value.
- class pcapkit.protocols.schema.internet.hip.LocatorData(*args: _VT, **kwargs: _VT)[source]¶
Bases:
SchemaHeader schema for HIP locator data.
- ip: IPv6Address = <IPv6AddressField ip>¶
Locator.
- class pcapkit.protocols.schema.internet.hip.PuzzleParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
PUZZLEparameters.
- class pcapkit.protocols.schema.internet.hip.SolutionParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
SOLUTIONparameters.- reserved: int = <UInt8Field reserved>¶
Reserved octet – “zero when sent, ignored when received” (RFC 7401 Section 5.2.5, and RFC 5201 Section 5.2.5 identically). This octet is not a lifetime: only
PUZZLEcarries one, at the same offset, and only RFC 7401 Section 5.2.4 defines the2^(value - 32)seconds encoding that goes in it.
- class pcapkit.protocols.schema.internet.hip.SEQParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
SEQparameters.
- class pcapkit.protocols.schema.internet.hip.ACKParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ACKparameters.
- class pcapkit.protocols.schema.internet.hip.DHGroupListParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
DH_GROUP_LISTparameters.
- class pcapkit.protocols.schema.internet.hip.DiffieHellmanParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
DIFFIE_HELLMANparameters.
- class pcapkit.protocols.schema.internet.hip.HIPTransformParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_TRANSFORMparameters.
- class pcapkit.protocols.schema.internet.hip.HIPCipherParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_CIPHERparameters.
- class pcapkit.protocols.schema.internet.hip.NATTraversalModeParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
NAT_TRAVERSAL_MODEparameters.- modes: list[NATTraversal] = <ListField modes>¶
NAT traversal modes.
- class pcapkit.protocols.schema.internet.hip.TransactionPacingParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
TRANSACTION_PACINGparameters.
- class pcapkit.protocols.schema.internet.hip.EncryptedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ENCRYPTEDparameters.- classmethod pre_unpack(packet)[source]¶
Prepare
packetdata for unpacking process.Notes
When
packetalready carries a resolvedcipher– as it does when this schema was built viaHIP._make_param_encrypted, which sets it as a plain attribute sopack()’s ownpacket.update(self.__dict__)carries it in here – that value is trusted over theHIP_CIPHERsibling lookup below, which a parameter packed on its own has nooptionslist for.
- cipher: Cipher¶
Cipher ID. Not a schema field – set as a plain attribute, either by
post_process()after unpacking, or byHIP._make_param_encryptedbefore packing – so it is documented here rather than accepted by__init__.
- class pcapkit.protocols.schema.internet.hip.HostIDParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HOST_IDparameters.- algorithm: HIAlgorithm = <EnumField algorithm>¶
Algorithm type.
- hi: bytes | HostIdentity = <SwitchField hi>¶
Host ID.
- class pcapkit.protocols.schema.internet.hip.HostIdentity(dict_=None, **kwargs)[source]¶
Bases:
EnumSchema[HIAlgorithm]Host identity schema.
- class pcapkit.protocols.schema.internet.hip.ECDSACurveHostIdentity(*args: _VT, **kwargs: _VT)[source]¶
Bases:
HostIdentityHost identity schema with ECDSA curve.
- curve: ECDSACurve = <EnumField curve>¶
Algorithm curve type.
- class pcapkit.protocols.schema.internet.hip.ECDSALowCurveHostIdentity(*args: _VT, **kwargs: _VT)[source]¶
Bases:
HostIdentityHost identity schema with ECDSA_LOW curve.
- curve: ECDSALowCurve = <EnumField curve>¶
Algorithm curve type.
- class pcapkit.protocols.schema.internet.hip.EdDSACurveHostIdentity(*args: _VT, **kwargs: _VT)[source]¶
Bases:
HostIdentityHost identity schema with EdDSA curve.
- curve: EdDSACurve = <EnumField curve>¶
Algorithm curve type.
- class pcapkit.protocols.schema.internet.hip.HITSuiteListParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIT_SUITE_LISTparameters.
- class pcapkit.protocols.schema.internet.hip.CertParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
CERTparameters.- cert_type: Certificate = <EnumField cert_type>¶
Certificate type.
- class pcapkit.protocols.schema.internet.hip.NotificationParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
NOTIFICATIONparameters.- msg_type: NotifyMessage = <EnumField msg_type>¶
Notify message type.
- class pcapkit.protocols.schema.internet.hip.EchoRequestSignedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ECHO_REQUEST_SIGNEDparameters.
- class pcapkit.protocols.schema.internet.hip.RegInfoParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
REG_INFOparameters.- reg_info: list[Registration] = <ListField reg_info>¶
Registration types.
- class pcapkit.protocols.schema.internet.hip.RegRequestParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
REG_REQUESTparameters.- reg_request: list[Registration] = <ListField reg_request>¶
Registration types.
- class pcapkit.protocols.schema.internet.hip.RegResponseParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
REG_RESPONSEparameters.- reg_response: list[Registration] = <ListField reg_response>¶
Registration types.
- class pcapkit.protocols.schema.internet.hip.RegFailedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
REG_FAILEDparameters.- reg_failed: list[RegistrationFailure] = <ListField reg_failed>¶
Registration types.
- class pcapkit.protocols.schema.internet.hip.RegFromParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
REG_FROMparameters.- address: IPv6Address = <IPv6AddressField address>¶
Address.
- class pcapkit.protocols.schema.internet.hip.EchoResponseSignedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ECHO_RESPONSE_SIGNEDparameters.
- class pcapkit.protocols.schema.internet.hip.TransportFormatListParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
TRANSPORT_FORMAT_LISTparameters.
- class pcapkit.protocols.schema.internet.hip.ESPTransformParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ESP_TRANSFORMparameters.- suites: list[ESPTransformSuite] = <ListField suites>¶
Suite IDs.
- class pcapkit.protocols.schema.internet.hip.SeqDataParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
SEQ_DATAparameters.
- class pcapkit.protocols.schema.internet.hip.AckDataParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ACK_DATAparameters.
- class pcapkit.protocols.schema.internet.hip.PayloadMICParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
PAYLOAD_MICparameters.
- class pcapkit.protocols.schema.internet.hip.TransactionIDParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
TRANSACTION_IDparameters.
- class pcapkit.protocols.schema.internet.hip.OverlayIDParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
OVERLAY_IDparameters.
- class pcapkit.protocols.schema.internet.hip.RouteDstParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ROUTE_DSTparameters.- flags: RouteFlags = <BitField flags>¶
Flags.
- hit: list[IPv6Address] = <ListField hit>¶
HIT addresses.
- class pcapkit.protocols.schema.internet.hip.HIPTransportModeParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_TRANSPORT_MODEparameters.
- class pcapkit.protocols.schema.internet.hip.HIPMACParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_MACparameters.
- class pcapkit.protocols.schema.internet.hip.HIPMAC2Parameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_MAC_2parameters.
- class pcapkit.protocols.schema.internet.hip.HIPSignature2Parameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_SIGNATURE_2parameters.- algorithm: HIAlgorithm = <EnumField algorithm>¶
Signature algorithm.
- class pcapkit.protocols.schema.internet.hip.HIPSignatureParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
HIP_SIGNATUREparameters.- algorithm: HIAlgorithm = <EnumField algorithm>¶
Signature algorithm.
- class pcapkit.protocols.schema.internet.hip.EchoRequestUnsignedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ECHO_REQUEST_UNSIGNEDparameters.
- class pcapkit.protocols.schema.internet.hip.EchoResponseUnsignedParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ECHO_RESPONSE_UNSIGNEDparameters.
- class pcapkit.protocols.schema.internet.hip.RelayFromParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
RELAY_FROMparameters.- address: IPv6Address = <IPv6AddressField address>¶
Address.
- class pcapkit.protocols.schema.internet.hip.RelayToParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
RELAY_TOparameters.- address: IPv6Address = <IPv6AddressField address>¶
Address.
- class pcapkit.protocols.schema.internet.hip.OverlayTTLParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
OVERLAY_TTLparameters.
- class pcapkit.protocols.schema.internet.hip.RouteViaParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ROUTE_VIAparameters.- flags: RouteFlags = <BitField flags>¶
Flags.
- hit: list[IPv6Address] = <ListField hit>¶
HIT addresses.
- class pcapkit.protocols.schema.internet.hip.FromParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
FROMparameters.- address: IPv6Address = <IPv6AddressField address>¶
Address.
- class pcapkit.protocols.schema.internet.hip.RVSHMACParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
RVS_HMACparameters.
- class pcapkit.protocols.schema.internet.hip.ViaRVSParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
VIA_RVSparameters.- address: list[IPv6Address] = <ListField address>¶
Address.
- class pcapkit.protocols.schema.internet.hip.RelayHMACParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
RELAY_HMACparameters.
Type Stubs¶
Auxiliary Functions¶
- pcapkit.protocols.schema.internet.hip.locator_value_selector(pkt)[source]¶
Selector function for
Locator.valuefield.- Parameters:
- Return type:
- Returns:
If
typeis0andlenis4, i.e. a 16-octet locator, returns anIPv6AddressFieldinstance.If
typeis1andlenis5, i.e. a 20-octet locator, returns aSchemaFieldwrappedLocatorDatainstance.
- Raises:
FieldValueError – For any other locator type and length.
- pcapkit.protocols.schema.internet.hip.host_id_hi_selector(pkt)[source]¶
Selector function for
HostIDParameter.hifield.- Parameters:
- Return type:
- Returns:
If
algorithmis7(ECDSA), returns aSchemaFieldwrappedECDSACurveHostIdentityinstance.If
algorithmis9(ECDSA_LOW), returns aSchemaFieldwrappedECDSALowCurveHostIdentityinstance.If
algorithmis13(EdDSA), returns aSchemaFieldwrappedEdDSACurveHostIdentityinstance.Otherwise, returns a
BytesFieldinstance ofhi_lenoctets.
- pcapkit.protocols.schema.internet.hip.registration_type_list_len(pkt)[source]¶
Return registration type list length.
Used by the
reg_request,reg_responseandreg_failedfields ofRegRequestParameter,RegResponseParameterandRegFailedParameterrespectively, each of which follows a singlelifetimeoctet with a list of registration type octets sized by the remainder of the parameter.- Parameters:
- Return type:
- Returns:
Registration type list length.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is too short to hold thelifetimeoctet already read, which would otherwise underflow the list length below zero.
- pcapkit.protocols.schema.internet.hip.reg_info_list_len(pkt)[source]¶
Return
REG_INFOregistration type list length.Used by the
reg_infofield ofRegInfoParameter, which follows a pair ofmin_lifetimeandmax_lifetimeoctets with a list of registration type octets sized by the remainder of the parameter.- Parameters:
- Return type:
- Returns:
Registration type list length.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is too short to hold themin_lifetimeandmax_lifetimeoctets already read, which would otherwise underflow the list length below zero.
- pcapkit.protocols.schema.internet.hip.two_octet_prefix_list_len(pkt)[source]¶
Return list length for a parameter with a two-octet prefix.
Used by the
modes,suitesandmodefields ofNATTraversalModeParameter,ESPTransformParameterandHIPTransportModeParameterrespectively, each of which follows a two-octetreservedorportfield with a list of items sized by the remainder of the parameter.TransportFormatListParameterlooks like a fourth call site – samepkt['len'] - 2expression – but is not: seetransport_format_list_len()for why it has no such prefix to subtract.- Parameters:
- Return type:
- Returns:
List length.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is too short to hold the two octets already read, which would otherwise underflow the list length below zero.
- pcapkit.protocols.schema.internet.hip.transport_format_list_len(pkt)[source]¶
Return
TRANSPORT_FORMAT_LISTtransport format list length.Used by the
formatsfield ofTransportFormatListParameter. Unliketwo_octet_prefix_list_len()’s three call sites, this parameter has noreservedorportfield betweenLengthand the list: RFC 7401 Section 5.2.11 definesLengthas literally “2x number of TF types” and places the list directly after it –| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TF type #1 | TF type #2 /
– so the list’s byte length is
Length, with nothing to subtract. Subtracting 2 anyway, as the three genuine two-octet-prefix sites do, would drop the trailing two octets of every non-empty list on parse, and reject the parameter’s own legitimate empty-list encoding (Length = 0,formats = []) as malformed.“2x number of TF types” also fixes each
TF typeentry’s own width at two octets – the same width the baseParameterclass uses for its owntypefield, since a TF type is a HIP parameter type number – which is whyformats’item_typeisEnumField(length=2, ...), the width of the items at all three oftwo_octet_prefix_list_len()’s call sites as well. This function only answers how many bytes the list occupies; getting that number right and the item width wrong – one octet instead of two – would still corrupt every non-empty list, just by reading twice as many entries as the wire holds instead of dropping octets.- Parameters:
- Return type:
- Returns:
Transport format list length.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is negative. This cannot happen from real wire bytes –lenis an unsigned 16-bit field – but a caller constructing the schema directly, bypassing_make_param_transport_format_list(), could still pass one; this keeps that path to the same floor-and-raise discipline astwo_octet_prefix_list_len().
- pcapkit.protocols.schema.internet.hip.encrypted_data_len(pkt)[source]¶
Return
ENCRYPTEDencrypted-data length.Used by the
datafield ofEncryptedParameter, which follows a four-octetreservedfield and a conditional sixteen-octetivwith the ciphertext, sized by the remainder of the parameter. RFC 7401 Section 5.2.18 puts all three insideLength–| Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IV | / / / Encrypted data /
– so both have to come off
Lengthto leave the data, and_make_param_encrypted()writeslen=4 + len(iv) + len(data)to match.- Parameters:
- Return type:
- Returns:
Encrypted data length.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is too short to hold thereservedoctets, and theivoctets where a cipher that carries one was resolved – which would otherwise underflow the data length below zero.
- pcapkit.protocols.schema.internet.hip.parameter_total_len(length)[source]¶
Return the total on-wire length of a HIP parameter.
RFC 7401 Section 5.2.1 states the arithmetic outright, so there is nothing here to infer from the diagram –
All of the encoded TLV parameters have a length (that includes the Type and Length fields), which is a multiple of 8 bytes. When needed, padding MUST be added to the end of the parameter so that the total length is a multiple of 8 bytes. Total Length = 11 + Length - (Length + 3) % 8;
– and this function is that formula, spelled the way the RFC spells it.
The distinction that matters is which quantity gets aligned.
Lengthis “Length of the Contents, in bytes, excluding Type, Length, and Padding”, and it is the total – contents plus the four octets ofTypeandLengthplus padding – that must land on a multiple of eight. Aligning the contents alone would put every parameter at4 (mod 8)for every possibleLength: never a multiple of eight and never the length the RFC gives. It is not even a consistent offset, because the two formulas disagree in both directions – atLength = 4(a wholeSEQ) the contents are already 8-aligned with the header, so the RFC requires no padding at all and aligning the contents would append four octets that must not be there; atLength = 8the contents are 8-aligned on their own, so aligning them would append nothing and leave the record four octets short.- Parameters:
length (
int) – The parameter’sLengthfield, i.e. its contents length in octets, excludingType,LengthandPadding.- Return type:
- Returns:
Total length of the parameter in octets, including
Type,Length,ContentsandPadding. Always a multiple of eight.- Raises:
FieldValueError – If
lengthis negative. This cannot happen from real wire bytes –lenis an unsigned 16-bit field – but a caller constructing a schema directly could still pass one, and the RFC formula is meaningless there: it would answer 8 forLength = -1, a “total” smaller than the four-octet header alone. Raising keeps this to the same floor-and-raise discipline astwo_octet_prefix_list_len().
- pcapkit.protocols.schema.internet.hip.parameter_padding_len(pkt)[source]¶
Return the number of padding octets a HIP parameter needs.
Used by the
paddingfield of every parameter schema in this module. The count is whateverparameter_total_len()leaves over once the four-octetTypeandLengthheader and theLengthoctets of contents are accounted for, which RFC 7401 Section 5.2.1 bounds at “0-7 bytes”.This is one function shared by every parameter rather than a lambda repeated per class, so the RFC’s arithmetic is stated in one place.
- Parameters:
- Return type:
- Returns:
Padding length in octets, between 0 and 7 inclusive.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is negative; seeparameter_total_len().
- pcapkit.protocols.schema.internet.hip.locator_set_len_callback(field, pkt)[source]¶
Snapshot
LOCATOR_SET’s ownLengthbefore its locators shadow it.Installed as the
callbackofLocatorSetParameter.locators, whichListField.__call__runs when the field is resolved against the packet – i.e. before any nestedLocatorhas been packed into it. SeeLOCATOR_SET_LENfor why the snapshot is needed at all.
- pcapkit.protocols.schema.internet.hip.locator_set_padding_len(pkt)[source]¶
Return the number of padding octets a
LOCATOR_SETparameter needs.The same arithmetic as
parameter_padding_len()– it defers to it rather than repeating it – but read off the snapshotlocator_set_len_callback()took, for the reasonLOCATOR_SET_LENgives.- Parameters:
- Return type:
- Returns:
Padding length in octets, between 0 and 7 inclusive.
- Raises:
FieldValueError – If the parameter’s
Lengthon the wire is negative; seeparameter_total_len().
- pcapkit.protocols.schema.internet.hip.LOCATOR_SET_LEN = '__locator_set_len__'¶
Packet-context key under which
LocatorSetParameterkeeps its ownLengthfor the benefit oflocator_set_padding_len().It exists because
LOCATOR_SETis the one parameter in this module whose contents are aListFieldof nested schemas, and a nested schema packed through one shares the enclosing packet context:Schema.packopens withpacket.update(self.__dict__), andLocatordeclares alenof its own. So by the timepaddingis evaluated – after the list, since fields are packed in declaration order –pkt['len']is the last locator’slen, not the parameter’s – 4 for any IPv6 locator, whatever the locator count.The shadowing is specific to the packing path.
Schema.unpackhands each fieldpacket.copy(), so nested writes do not propagate back andpkt['len']stays the parameter’s there. Snapshotting under a key no nested schema declares is what makes one callback correct on both paths rather than accidentally correct on one.
Data Models¶
- class pcapkit.protocols.data.internet.hip.HIP(*args: VT, **kwargs: VT)[source]¶
Bases:
ProtocolData model for HIP header.
Changed in version 1.5.0: New required fields
packet_fixed,reservedandversion_fixed(#1417, #1459).- packet_fixed: int¶
Fixed bit – the leading bit of the
Packet Typeoctet, sent as0and ignored on receipt (RFC 7401 Section 5.1), carried verbatim so that re-serialising reproduces it.
- reserved: int¶
Reserved bits – the three bits between
Versionand the fixed low-order bit, carried verbatim so that re-serialising reproduces them.
- version_fixed: int¶
Fixed bit – the low-order bit of the
Versionoctet, sent as1and ignored on receipt (RFC 7401 Section 5.1), carried verbatim so that re-serialising reproduces it.
- parameters: OrderedMultiInfo[Parameter, Parameter]¶
HIP parameters.
- class pcapkit.protocols.data.internet.hip.Control(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for HIP controls.
Changed in version 1.5.0: New required field
reserved(#1328).
- class pcapkit.protocols.data.internet.hip.Parameter(dict_=None, **kwargs)[source]¶
Bases:
DataData model for HIP parameter data.
- class pcapkit.protocols.data.internet.hip.UnassignedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for unassigned parameter.
- class pcapkit.protocols.data.internet.hip.ESPInfoParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ESP_INFOparameter.Changed in version 1.5.0: New required field
reserved(#1328).
- class pcapkit.protocols.data.internet.hip.R1CounterParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
R1_COUNTERparameter.Changed in version 1.5.0: New required field
reserved(#1223).
- class pcapkit.protocols.data.internet.hip.LocatorSetParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
LOCATOR_SETparameter.
- class pcapkit.protocols.data.internet.hip.Locator(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for HIP locator.
Changed in version 1.5.0: New required field
reserved(#1365).- reserved: int¶
Reserved bits – the 7 high-order bits of the flags octet, carried verbatim so that re-serialising reproduces them.
- locator: LocatorData | IPv6Address¶
Locator data.
- class pcapkit.protocols.data.internet.hip.LocatorData(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for HIP locator data.
- ip: IPv6Address¶
IP address.
- class pcapkit.protocols.data.internet.hip.PuzzleParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
PUZZLEparameter.- lifetime_exponent: int¶
The
Lifetimeoctet as it appears on the wire. RFC 7401 Section 5.2.4 defines the lifetime as2^(value - 32)seconds, and this isvalue. It is what re-serialising writes back, since most of the 256 octets have no exacttimedelta.
- lifetime: timedelta | None¶
Lifetime, derived from
lifetime_exponenttotimedelta’s microsecond resolution, so octets below12read astimedelta(0).Nonefor octets of79and above, whose duration exceedsdatetime.timedelta.max.
- rhash_len: int¶
On-wire width of
random, in bits –RHASH_lenin RFC 7401 Section 2.3 terms, which RFC 7401 Section 5.2.4 makes the exact width ofRandom #I. Declared rather than recomputed fromint.bit_length(), which cannot see a leading zero octet: without it a parameter read withLength = 12re-serialised asLength = 5. See #653.
- class pcapkit.protocols.data.internet.hip.SolutionParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
SOLUTIONparameter.Changed in version 1.5.0: New required field
rhash_len(#653).- reserved: int¶
Reserved octet – “zero when sent, ignored when received” (RFC 7401 Section 5.2.5, and RFC 5201 Section 5.2.5 identically). Carried verbatim rather than interpreted, so that re-serialising a parsed parameter reproduces the octet it arrived with. It is not a
Lifetime: onlyPUZZLEhas one (RFC 7401 Section 5.2.4), and reading it as one would leave the conformant0x00impossible to re-serialise. See #654.
- rhash_len: int¶
On-wire width of
randomand ofsolution– which are equal and eachRHASH_len / 8octets – in bits.RHASH_lenin RFC 7401 Section 2.3 terms; RFC 7401 Section 5.2.5 makes it the exact width of both fields. Declared rather than recomputed fromint.bit_length(), which cannot see a leading zero octet: without it a parameter read withLength = 20re-serialised asLength = 6. See #653.
- class pcapkit.protocols.data.internet.hip.SEQParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
SEQparameter.
- class pcapkit.protocols.data.internet.hip.ACKParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ACKparameter.
- class pcapkit.protocols.data.internet.hip.DHGroupListParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
DH_GROUP_LISTparameter.
- class pcapkit.protocols.data.internet.hip.DiffieHellmanParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
DIFFIE_HELLMANparameter.
- class pcapkit.protocols.data.internet.hip.HIPTransformParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_TRANSFORMparameter.
- class pcapkit.protocols.data.internet.hip.HIPCipherParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_CIPHERparameter.
- class pcapkit.protocols.data.internet.hip.NATTraversalModeParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
NAT_TRAVERSAL_MODEparameter.Changed in version 1.5.0: New required field
reserved(#1223).- mode_id: tuple[NATTraversal, ...]¶
Mode IDs
- class pcapkit.protocols.data.internet.hip.TransactionPacingParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
TRANSACTION_PACINGparameter.
- class pcapkit.protocols.data.internet.hip.EncryptedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ENCRYPTEDparameter.Changed in version 1.5.0: New required field
reserved(#1223).
- class pcapkit.protocols.data.internet.hip.HostIDParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HOST_IDparameter.- algorithm: HIAlgorithm¶
Algorithm type.
- hi: HostIdentity | bytes¶
Host identity.
- class pcapkit.protocols.data.internet.hip.HostIdentity(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for host identity.
- curve: ECDSACurve | ECDSALowCurve | EdDSACurve¶
Curve type.
- class pcapkit.protocols.data.internet.hip.HITSuiteListParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIT_SUITE_LISTparameter.
- class pcapkit.protocols.data.internet.hip.CertParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
CERTparameter.- cert_type: Certificate¶
Certificate type.
- class pcapkit.protocols.data.internet.hip.NotificationParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
NOTIFICATIONparameter.Changed in version 1.5.0: New required field
reserved(#1223).- msg_type: NotifyMessage¶
Notify message type.
- class pcapkit.protocols.data.internet.hip.EchoRequestSignedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ECHO_REQUEST_SIGNEDparameter.
- class pcapkit.protocols.data.internet.hip.RegInfoParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
REG_INFOparameter.- reg_type: tuple[Registration, ...]¶
Registration type.
- class pcapkit.protocols.data.internet.hip.Lifetime(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for registration lifetime.
- class pcapkit.protocols.data.internet.hip.RegRequestParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
REG_REQUESTparameter.- reg_type: tuple[Registration, ...]¶
Registration type.
- class pcapkit.protocols.data.internet.hip.RegResponseParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
REG_RESPONSEparameter.- reg_type: tuple[Registration, ...]¶
Registration type.
- class pcapkit.protocols.data.internet.hip.RegFailedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
REG_FAILEDparameter.- reg_type: tuple[RegistrationFailure, ...]¶
Registration failure type.
- class pcapkit.protocols.data.internet.hip.RegFromParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
REG_FROMparameter.Changed in version 1.5.0: New required field
reserved(#1223).- address: IPv6Address¶
Address.
- class pcapkit.protocols.data.internet.hip.EchoResponseSignedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ECHO_RESPONSE_SIGNEDparameter.
- class pcapkit.protocols.data.internet.hip.TransportFormatListParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
TRANSPORT_FORMAT_LISTparameter.
- class pcapkit.protocols.data.internet.hip.ESPTransformParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ESP_TRANSFORMparameter.Changed in version 1.5.0: New required field
reserved(#1223).- suite_id: tuple[ESPTransformSuite, ...]¶
ESP transform.
- class pcapkit.protocols.data.internet.hip.SeqDataParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
SEQ_DATAparameter.
- class pcapkit.protocols.data.internet.hip.AckDataParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ACK_DATAparameter.
- class pcapkit.protocols.data.internet.hip.PayloadMICParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
PAYLOAD_MICparameter.Changed in version 1.5.0: New required field
reserved(#1223).
- class pcapkit.protocols.data.internet.hip.TransactionIDParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
TRANSACTION_IDparameter.
- class pcapkit.protocols.data.internet.hip.OverlayIDParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
OVERLAY_IDparameter.
- class pcapkit.protocols.data.internet.hip.RouteDstParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ROUTE_DSTparameter.Changed in version 1.5.0: New required field
reserved(#1223).- hit: tuple[IPv6Address, ...]¶
Destination address.
- class pcapkit.protocols.data.internet.hip.Flags(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for the flags in HIP
ROUTE_DSTandROUTE_VIAparameters.Changed in version 1.5.0: New required field
reserved(#1417).
- class pcapkit.protocols.data.internet.hip.HIPTransportModeParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_TRANSPORT_MODEparameter.
- class pcapkit.protocols.data.internet.hip.HIPMACParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_MACparameter.
- class pcapkit.protocols.data.internet.hip.HIPMAC2Parameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_MAC_2parameter.
- class pcapkit.protocols.data.internet.hip.HIPSignature2Parameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_SIGNATURE_2parameter.- algorithm: HIAlgorithm¶
Signature algorithm.
- class pcapkit.protocols.data.internet.hip.HIPSignatureParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
HIP_SIGNATUREparameter.- algorithm: HIAlgorithm¶
Signature algorithm.
- class pcapkit.protocols.data.internet.hip.EchoRequestUnsignedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ECHO_REQUEST_UNSIGNEDparameter.
- class pcapkit.protocols.data.internet.hip.EchoResponseUnsignedParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ECHO_RESPONSE_UNSIGNEDparameter.
- class pcapkit.protocols.data.internet.hip.RelayFromParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
RELAY_FROMparameter.Changed in version 1.5.0: New required field
reserved(#1223).- address: IPv6Address¶
Address.
- class pcapkit.protocols.data.internet.hip.RelayToParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
RELAY_TOparameter.Changed in version 1.5.0: New required field
reserved(#1223).- address: IPv6Address¶
Address.
- class pcapkit.protocols.data.internet.hip.OverlayTTLParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
OVERLAY_TTLparameter.Changed in version 1.5.0: New required field
reserved(#1223).
- class pcapkit.protocols.data.internet.hip.RouteViaParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ROUTE_VIAparameter.Changed in version 1.5.0: New required field
reserved(#1223).- hit: tuple[IPv6Address, ...]¶
HIT addresses.
- class pcapkit.protocols.data.internet.hip.FromParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
FROMparameter.- address: IPv6Address¶
HIT address.
- class pcapkit.protocols.data.internet.hip.RVSHMACParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
RVS_HMACparameter.
- class pcapkit.protocols.data.internet.hip.ViaRVSParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
VIA_RVSparameter.- address: tuple[IPv6Address, ...]¶
Addresses.
- class pcapkit.protocols.data.internet.hip.RelayHMACParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
RELAY_HMACparameter.
Footnotes