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]¶
-
This class implements Host Identity Protocol.
This class currently supports parsing of the following HIP parameters, which are registered in the
self.__parameter__attribute:Parameter Code
Parameter Parser
- 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
- 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, version=2, checksum=b'\\x00\\x00', controls_anonymous=False, 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.version (
int) – HIP version.checksum (
bytes) – Checksum.controls_anonymous (
bool) – If the sender is anonymous.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 schamaversion (
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 schamaversion (
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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
schema.lenis NOT12or the parameter is NOT used in HIPv1.
- _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 schamaversion (
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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – The parameter is ONLY supported in HIPv1.
- _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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – The parameter is ONLY supported in HIPv1.
- _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 schamaversion (
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 schamaversion (
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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _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 schamaversion (
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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – The parameter is ONLY supported in HIPv1.
- _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 schamaversion (
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_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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- _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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
int) – HIP protocol versionoptions (
OrderedMultiDict[Parameter,Parameter]) – parsed HIP parameters
- Return type:
- Returns:
Parsed parameter data.
- Raises:
ProtocolError – If
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TTL | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
OverlayTTLParameter) – parsed parameter schamaversion (
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 schamaversion (
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 schamaversion (
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 schamaversion (
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 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ . . . . . . +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Address | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Parameters:
schema (
ViaRVSParameter) – parsed parameter schamaversion (
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 schamaversion (
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, index=0, old_spi=0, new_spi=0, **kwargs)[source]¶
Make HIP
ESP_INFOparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _make_param_r1_counter(code, param=None, *, version, counter=0, **kwargs)[source]¶
Make HIP
R1_COUNTERparameter.- Parameters:
- Return type:
- Returns:
HIP parameter schema.
- _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, 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 indexopaque (
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.
- _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 becauseData_SolutionParameteris 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.
- _make_param_seq(code, param=None, *, version, update_id=0, **kwargs)[source]¶
Make HIP
SEQparameter.- Parameters:
code (
Parameter) – parameter codeparam (
SEQParameter|None) – parameter dataversion (
int) – HIP protocol versionupdate_id (
int) – update ID
- 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.
- _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.
- _make_param_nat_traversal_mode(code, param=None, *, version, modes=None, mode_default=None, mode_namespace=None, mode_reversed=False, **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 namespace**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'', **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 data
- Return type:
- Returns:
HIP parameter schema.
- _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
- Return type:
- Returns:
HIP parameter schema.
- _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'', **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 message**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
- 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
- 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='::', **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 address**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.
- _make_param_esp_transform(code, param=None, *, version, suites=None, suite_default=None, suite_namespace=None, suite_reversed=False, **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 namespace**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'', **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 code**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, hit=None, **kwargs)[source]¶
Make HIP
ROUTE_DSTparameter.- Parameters:
- 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:
code (
Parameter) – parameter codeparam (
EchoRequestUnsignedParameter|None) – parameter dataversion (
int) – HIP protocol version
- 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='::', **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 address
- 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='::', **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 address**kwargs (
Any) – arbitrary keyword arguments
- Return type:
- Returns:
HIP parameter schema.
- _make_param_overlay_ttl(code, param=None, *, version, ttl=0, **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, hit=None, **kwargs)[source]¶
Make HIP
ROUTE_VIAparameter.- Parameters:
- 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(). Method names are expected to be referred to the class by_read_param_${name}and/or_make_param_${name}, and if such name not found, the value should then be a method that can parse the parameter by itself.
- __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¶
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 unsigned parameters.
- class pcapkit.protocols.schema.internet.hip.ESPInfoParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for HIP
ESP_INFOparameters.
- 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, since #696 widenedcounterto eight octets.__parameter__already carries two hand-written entries – not a name-normalisation rule;R1_CounterandR1_COUNTERdiffer only in case, and each needed its own line – mapping both codes to the same_read_param_r1_counter, and_make_param_r1_counteralready built this class for 128; it was only the schema lookup this class’s owncode=feeds – consulted on the parse path byOptionField– that fell back toUnassignedParameterfor 128, since a single-codecode=registered 129 alone and left 128 unclaimed. See #690.- 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. It was aUInt32Fielduntil #672: the parameter declared the correctlen=12and packed 12 octets in total where RFC 7401 Section 5.2.1’s arithmetic makes the record 16, leaving it four short at4 (mod 8). Measured before the fix, atcounter=1:00 80 00 0c 00 00 00 00 00 00 00 01for code 128 and the same twelve octets under00 81for code 129.
- 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 was wrong until #679 is the quantity it was being handed:_make_param_locator_set()wroteLengthassum(Locator.len), in the 4-octet units RFC 8046 Section 4 givesLocator Length, where RFC 7401 Section 5.2.1’sLengthis a byte count.Schema.unpackreads exactlyfield.lengthoctets off the stream and hands only those toListField.unpack, so a set of n plain IPv6 locators offered4noctets of a24n-octet contents: measured onf0999858e, n = 2 and n = 5 both parsed one truncated locator and left the rest of the record unconsumed, withSchemaWarningfor the negative remainder and a repack that did not match the octets read. WithLengtha byte count the budget is the contents, each locator bills the 8 +Locator Length* 4 octets it actually consumed, and the count comes out exact.
- 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.This is the site #651 deliberately left alone and #664 documented as an exclusion, because two defects in this parameter cancelled at the shape its tests sampled and correcting either alone made the wire output worse. The shadowed
lenis 4 for any IPv6 locator, so the old expression appended exactly four octets whatever the locator count; and the wrongLengthunit above made the declaredLength4nwhere the contents were24n.4 + 24n + 4is24n + 8, and since24nis a multiple of eight the RFC total for a byte-countLengthof24nis11 + 24n - 3, the same24n + 8. Hence 32, 56 and 128 octets at n = 1, 2, 5 – conformant, by two wrongs.That cancellation was never general, which is why the pair had to move together rather than one at a time. It needs every locator to be 24 octets and there to be at least one, and measured on
f0999858ethe shapes that break it were non-conformant before this fix: an empty set packed 4 octets where RFC 7401 Section 5.2.1 wants 8, one SPI-bearing locator packed 35, two packed 63, and a mixed plain-and-SPI pair packed 59 or 60 depending on order. Afterwards all seven shapes are the RFC’s own total: 8, 32, 56, 128, 32, 64, 56 and 56 respectively, with the three plain figures unchanged.
- 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. See #654.
- 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
TRANSFORMparameters.
- class pcapkit.protocols.schema.internet.hip.HIPCipherParameter(*args: _VT, **kwargs: _VT)[source]¶
Bases:
ParameterHeader schema for 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. See #556.
- 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__. See #556.
- 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
kindis0andsizeis16, returns anIPv6AddressFieldinstance.If
kindis1andsizeis20, returns aSchemaFieldwrappedLocatorDatainstance.
- 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.
- 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.TransportFormatListParameterlooked 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 a since-corrected revision of this module once did, mirroring the three genuine two-octet-prefix sites) silently dropped the trailing two octets of every non-empty list on parse, and rejected 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, ...), matchingHIPTransportModeParameter’smoderather than the one-octet items oftwo_octet_prefix_list_len()’s other two call sites. This function only answers how many bytes the list occupies; getting that number right and the item width wrong (as a still-earlier revision did, at one octet) still corrupts 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.This subtracted the
ivbut not thereserved, so the field claimed four octets more than the parameter holds: on unpack it read four octets of the next parameter intodata, and on pack it zero-extended the ciphertext by four. That was recorded as the second half ofhip-parameter/ENCRYPTEDin the round-trip suite’s expected-failure table, and left alone – because while the padding rule was also four octets out (#651), the two errors cancelled at some residues ofLengthand not others. Measured by packing through the public maker at every residue, the old record total agreed with RFC 7401 Section 5.2.1 atLength % 8in{0, 5, 6, 7}and was eight octets over at{1, 2, 3, 4}– soLength = 8, which the unit suite happened to use, is one of the four where the module emitted RFC-conformantENCRYPTEDoctets while getting both halves wrong.Fixing the padding without fixing this would therefore have regressed
ENCRYPTED, from right-by-accident at four of the eight residues to four octets too long at all eight: with only the padding corrected the total becomes8 + Length + padagainst a correct4 + Length + pad, which is a uniform four-octet surplus with no residue left where it cancels. So the two go together.- 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 instead, as every padding site in this module and inpcapkit.protocols.internet.hipdid before #651, puts 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 appends four octets that must not be there; atLength = 8the contents are 8-aligned on their own, so aligning them appends nothing and the record is left 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 because it was previously the latter – 46 copies of the same wrong expression here and 49 of its counterpart in
pcapkit.protocols.internet.hip, which is 95 places for the arithmetic to be wrong in and one place too few to state the RFC’s reason for it.- 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. That is 4 for any IPv6 locator whatever the locator count, which is how the pre-#679 padding expression came to append exactly four octets to everyLOCATOR_SETregardless of size.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.
- parameters: OrderedMultiDict[Parameter, Parameter]¶
HIP parameters.
- class pcapkit.protocols.data.internet.hip.Control(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for HIP controls.
- 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.
- class pcapkit.protocols.data.internet.hip.R1CounterParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
R1_COUNTERparameter.
- 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.
- 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.- 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.- 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 used to be read as a
PUZZLELifetime, which only RFC 7401 Section 5.2.4 defines, and the conformant0x00then could not be re-serialised at all. 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.- 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.
- 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
HIST_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.- 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.- 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.- 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.
- 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 mode HIP
OVERLAY_IDparameter.
- class pcapkit.protocols.data.internet.hip.RouteDstParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ROUTE_DSTparameter.- hit: tuple[IPv6Address, ...]¶
Destination address.
- class pcapkit.protocols.data.internet.hip.Flags(*args: VT, **kwargs: VT)[source]¶
Bases:
DataData model for flags in HIP
HIP_PARAMETER_FLAGSparameter.
- 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.- address: IPv6Address¶
Address.
- class pcapkit.protocols.data.internet.hip.RelayToParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
RELAY_TOparameter.- address: IPv6Address¶
Address.
- class pcapkit.protocols.data.internet.hip.OverlayTTLParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
OVERLAY_TTLparameter.
- class pcapkit.protocols.data.internet.hip.RouteViaParameter(*args: VT, **kwargs: VT)[source]¶
Bases:
ParameterData model for HIP
ROUTE_VIAparameter.- 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