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

hip.next

Next Header

1

8

hip.length

Header Length

2

16

Reserved (\x00)

2

17

hip.type

Packet Type

3

24

hip.version

Version

3

28

Reserved

3

31

Reserved (\x01)

4

32

hip.chksum

Checksum

6

48

hip.control

Controls

8

64

hip.shit

Sender’s Host Identity Tag

24

192

hip.rhit

Receiver’s Host Identity Tag

40

320

hip.parameters

HIP Parameters


class pcapkit.protocols.internet.hip.HIP(file=None, length=None, **kwargs)[source]

Bases: pcapkit.protocols.internet.internet.Internet

This class implements Host Identity Protocol.

classmethod __index__()[source]

Numeral registry index of the protocol.

Returns

Numeral registry index of the protocol in IANA.

Return type

pcapkit.const.reg.transtype.TransType

__length_hint__()[source]

Return an estimated length for the object.

Return type

Literal[40]

__post_init__(file, length=None, *, extension=False, **kwargs)[source]

Post initialisation hook.

Parameters
  • file (io.BytesIO) – Source packet stream.

  • length (Optional[int]) – Length of packet data.

Keyword Arguments
  • extension (bool) – If the protocol is used as an IPv6 extension header.

  • **kwargs – Arbitrary keyword arguments.

See also

For construction argument, please refer to make().

_read_hip_para(length, *, version)[source]

Read HIP parameters.

Parameters

length (int) – length of parameters

Keyword Arguments

version (Litreal[1, 2]) – HIP version

Returns

extracted HIP parameters

Return type

Tuple[Tuple[pcapkit.const.hip.parameter.Parameter], DataType_Parameter]

Raises

ProtocolError – if packet length threshold check failed

_read_para_ack(code, cbit, clen, *, desc, length, version)[source]

Read HIP ACK parameter.

Structure of HIP ACK parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_ACK

Raises

ProtocolError – If clen is NOT 4 modulo.

_read_para_ack_data(code, cbit, clen, *, desc, length, version)[source]

Read HIP ACK_DATA parameter.

Structure of HIP ACK_DATA parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_ACK_Data

Raises

ProtocolError – If clen is NOT 4 modulo.

_read_para_cert(code, cbit, clen, *, desc, length, version)[source]

Read HIP CERT parameter.

Structure of HIP CERT parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Cert

_read_para_dh_group_list(code, cbit, clen, *, desc, length, version)[source]

Read HIP DH_GROUP_LIST parameter.

Structure of HIP DH_GROUP_LIST parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_DH_Group_List

_read_para_diffie_hellman(code, cbit, clen, *, desc, length, version)[source]

Read HIP DIFFIE_HELLMAN parameter.

Structure of HIP DIFFIE_HELLMAN parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Diffie_Hellman

_read_para_echo_request_signed(code, cbit, clen, *, desc, length, version)[source]

Read HIP ECHO_REQUEST_SIGNED parameter.

Structure of HIP ECHO_REQUEST_SIGNED parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Echo_Request_Signed

_read_para_echo_request_unsigned(code, cbit, clen, *, desc, length, version)[source]

Read HIP ECHO_REQUEST_UNSIGNED parameter.

Structure of HIP ECHO_REQUEST_UNSIGNED parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Echo_Request_Unsigned

_read_para_echo_response_signed(code, cbit, clen, *, desc, length, version)[source]

Read HIP ECHO_RESPONSE_SIGNED parameter.

Structure of HIP ECHO_RESPONSE_SIGNED parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Echo_Response_Signed

_read_para_echo_response_unsigned(code, cbit, clen, *, desc, length, version)[source]

Read HIP ECHO_RESPONSE_UNSIGNED parameter.

Structure of HIP ECHO_RESPONSE_UNSIGNED parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Echo_Response_Unsigned

_read_para_encrypted(code, cbit, clen, *, desc, length, version)[source]

Read HIP ENCRYPTED parameter.

Structure of HIP ENCRYPTED parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Encrypted

_read_para_esp_info(code, cbit, clen, *, desc, length, version)[source]

Read HIP ESP_INFO parameter.

Structure of HIP ESP_INFO parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_ESP_Info

Raises

ProtocolError – If clen is NOT 12.

_read_para_esp_transform(code, cbit, clen, *, desc, length, version)[source]

Read HIP ESP_TRANSFORM parameter.

Structure of HIP ESP_TRANSFORM parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Transform_Format_List

Raises

ProtocolError – If clen is NOT 2 modulo.

_read_para_from(code, cbit, clen, *, desc, length, version)[source]

Read HIP FROM parameter.

Structure of HIP FROM parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_From

Raises

ProtocolError – If clen is NOT 16.

_read_para_hip_cipher(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_CIPHER parameter.

Structure of HIP HIP_CIPHER parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Cipher

Raises

ProtocolError – If clen is NOT a 2 modulo.

_read_para_hip_mac(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_MAC parameter.

Structure of HIP HIP_MAC parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_HMAC

_read_para_hip_mac_2(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_MAC_2 parameter.

Structure of HIP HIP_MAC_2 parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_HMAC_2

_read_para_hip_signature(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_SIGNATURE parameter.

Structure of HIP HIP_SIGNATURE parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Signature

_read_para_hip_signature_2(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_SIGNATURE_2 parameter.

Structure of HIP HIP_SIGNATURE_2 parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Signature_2

_read_para_hip_transform(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_TRANSFORM parameter.

Structure of HIP HIP_TRANSFORM parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Transform

Raises

ProtocolError – The parameter is ONLY supported in HIPv1.

_read_para_hip_transport_mode(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIP_TRANSPORT_MODE parameter.

Structure of HIP HIP_TRANSPORT_MODE parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Transport_Mode

Raises

ProtocolError – If clen is NOT 2 modulo.

_read_para_hit_suite_list(code, cbit, clen, *, desc, length, version)[source]

Read HIP HIT_SUITE_LIST parameter.

Structure of HIP HIT_SUITE_LIST parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_HIT_Suite_List

_read_para_host_id(code, cbit, clen, *, desc, length, version)[source]

Read HIP HOST_ID parameter.

Structure of HIP HOST_ID parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Host_ID

_read_para_locator_set(code, cbit, clen, *, desc, length, version)[source]

Read HIP LOCATOR_SET parameter.

Structure of HIP LOCATOR_SET parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Locator_Set

Raises

ProtocolError – If locator data is malformed.

_read_para_nat_traversal_mode(code, cbit, clen, *, desc, length, version)[source]

Read HIP NAT_TRAVERSAL_MODE parameter.

Structure of HIP NAT_TRAVERSAL_MODE parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_NET_Traversal_Mode

Raises

ProtocolError – If clen is NOT a 2 modulo.

_read_para_notification(code, cbit, clen, *, desc, length, version)[source]

Read HIP NOTIFICATION parameter.

Structure of HIP NOTIFICATION parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Notification

Raises

ProtocolError – Unregistered notify message type.

_read_para_overlay_id(code, cbit, clen, *, desc, length, version)[source]

Read HIP OVERLAY_ID parameter.

Structure of HIP OVERLAY_ID parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Overlay_ID

_read_para_overlay_ttl(code, cbit, clen, *, desc, length, version)[source]

Read HIP OVERLAY_TTL parameter.

Structure of HIP OVERLAY_TTL parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Relay_To

Raises

ProtocolError – If clen is NOT 4.

_read_para_payload_mic(code, cbit, clen, *, desc, length, version)[source]

Read HIP PAYLOAD_MIC parameter.

Structure of HIP PAYLOAD_MIC parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Payload_MIC

_read_para_puzzle(code, cbit, clen, *, desc, length, version)[source]

Read HIP PUZZLE parameter.

Structure of HIP PUZZLE parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Puzzle

Raises

ProtocolError – The parameter is ONLY supported in HIPv1.

_read_para_r1_counter(code, cbit, clen, *, desc, length, version)[source]

Read HIP R1_COUNTER parameter.

Structure of HIP R1_COUNTER parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_R1_Counter

Raises

ProtocolError – If clen is NOT 12 or the parameter is NOT used in HIPv1.

_read_para_reg_failed(code, cbit, clen, *, desc, length, version)[source]

Read HIP REG_FAILED parameter.

Structure of HIP REG_FAILED parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Reg_Failed

Raises

ProtocolError – If the registration type is invalid.

_read_para_reg_from(code, cbit, clen, *, desc, length, version)[source]

Read HIP REG_FROM parameter.

Structure of HIP REG_FROM parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Reg_From

Raises

ProtocolError – If clen is NOT 20.

_read_para_reg_info(code, cbit, clen, *, desc, length, version)[source]

Read HIP REG_INFO parameter.

Structure of HIP REG_INFO parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Reg_Info

Raises

ProtocolError – If the registration type is invalid.

_read_para_reg_request(code, cbit, clen, *, desc, length, version)[source]

Read HIP REG_REQUEST parameter.

Structure of HIP REG_REQUEST parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Reg_Request

Raises

ProtocolError – If the registration type is invalid.

_read_para_reg_response(code, cbit, clen, *, desc, length, version)[source]

Read HIP REG_RESPONSE parameter.

Structure of HIP REG_RESPONSE parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Reg_Response

Raises

ProtocolError – If the registration type is invalid.

_read_para_relay_from(code, cbit, clen, *, desc, length, version)[source]

Read HIP RELAY_FROM parameter.

Structure of HIP RELAY_FROM parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Relay_From

Raises

ProtocolError – If clen is NOT 20.

_read_para_relay_hmac(code, cbit, clen, *, desc, length, version)[source]

Read HIP RELAY_HMAC parameter.

Structure of HIP RELAY_HMAC parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Relay_HMAC

_read_para_relay_to(code, cbit, clen, *, desc, length, version)[source]

Read HIP RELAY_TO parameter.

Structure of HIP RELAY_TO parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Relay_To

Raises

ProtocolError – If clen is NOT 20.

_read_para_route_dst(code, cbit, clen, *, desc, length, version)[source]

Read HIP ROUTE_DST parameter.

Structure of HIP ROUTE_DST parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Route_Dst

Raises

ProtocolError – If the parameter is malformed.

_read_para_route_via(code, cbit, clen, *, desc, length, version)[source]

Read HIP ROUTE_VIA parameter.

Structure of HIP ROUTE_VIA parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Route_Via

Raises

ProtocolError – If the parameter is malformed.

_read_para_rvs_hmac(code, cbit, clen, *, desc, length, version)[source]

Read HIP RVS_HMAC parameter.

Structure of HIP RVS_HMAC parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_RVS_HMAC

_read_para_seq(code, cbit, clen, *, desc, length, version)[source]

Read HIP SEQ parameter.

Structure of HIP SEQ parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_SEQ

Raises

ProtocolError – If clen is NOT 4.

_read_para_seq_data(code, cbit, clen, *, desc, length, version)[source]

Read HIP SEQ_DATA parameter.

Structure of HIP SEQ_DATA parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_SEQ_Data

Raises

ProtocolError – If clen is NOT 4.

_read_para_solution(code, cbit, clen, *, desc, length, version)[source]

Read HIP SOLUTION parameter.

Structure of HIP SOLUTION parameter [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, n bytes                       |
/                                                               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            Puzzle solution #J, RHASH_len / 8 bytes            |
/                                                               /
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Parameters
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Solution

Raises

ProtocolError – The parameter is ONLY supported in HIPv1.

_read_para_transaction_id(code, cbit, clen, *, desc, length, version)[source]

Read HIP TRANSACTION_ID parameter.

Structure of HIP TRANSACTION_ID parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Transaction_ID

_read_para_transaction_pacing(code, cbit, clen, *, desc, length, version)[source]

Read HIP TRANSACTION_PACING parameter.

Structure of HIP TRANSACTION_PACING parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Transaction_Pacing

Raises

ProtocolError – If clen is NOT 4.

_read_para_transport_format_list(code, cbit, clen, *, desc, length, version)[source]

Read HIP TRANSPORT_FORMAT_LIST parameter.

Structure of HIP TRANSPORT_FORMAT_LIST parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Transform_Format_List

Raises

ProtocolError – If clen is NOT 2 modulo.

_read_para_unassigned(code, cbit, clen, *, desc, length, version)[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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Unassigned

_read_para_via_rvs(code, cbit, clen, *, desc, length, version)[source]

Read HIP VIA_RVS parameter.

Structure of HIP VIA_RVS parameter [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
  • code (int) – parameter code

  • cbit (bool) – critical bit

  • clen (int) – length of contents

Keyword Arguments
Returns

Parsed parameter data.

Return type

DataType_Param_Route_Via

Raises

ProtocolError – If clen is NOT 16 modulo.

make(**kwargs)[source]

Make (construct) packet data.

Keyword Arguments

**kwargs – Arbitrary keyword arguments.

Returns

Constructed packet data.

Return type

bytes

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                         /
/                                                               /
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Parameters

length (Optional[int]) – Length of packet data.

Keyword Arguments
  • extension (bool) – If the packet is used as an IPv6 extension header.

  • **kwargs – Arbitrary keyword arguments.

Returns

Parsed packet data.

Return type

DataType_HIP

Raises

ProtocolError – If the packet is malformed.

property alias

Acronym of corresponding protocol.

Return type

str

property length

Header length of current protocol.

Return type

int

property name

Name of current protocol.

Return type

Literal[‘Host Identity Protocol’, ‘Host Identity Protocol Version 2’]

property payload

Payload of current instance.

Raises

UnsupportedCall – if the protocol is used as an IPv6 extension header

Return type

pcapkit.protocols.protocol.Protocol

property protocol

Name of next layer protocol.

Return type

pcapkit.const.reg.transtype.TransType

Data Structure

Important

Following classes are only for documentation purpose. They do NOT exist in the pcapkit module.

class pcapkit.protocols.internet.hip.DataType_HIP
Bases

TypedDict

HIP header [RFC 5201][RFC 7401].

next: pcapkit.const.reg.transtype.TransType

Next header.

length: int

Header length.

type: pcapkit.const.hip.packet.Packet

Packet type.

version: Literal[1, 2]

Version.

chksum: bytes

Checksum.

control: DataType_Control

Controls.

shit: int

Sender’s host identity tag.

rhit: int

Receiver’s host identity tag.

parameters: Optional[Tuple[pcapkit.const.hip.parameter.Parameter]]

HIP parameters.

class pcapkit.protocols.internet.hip.DataType_Control
Bases

TypedDict

HIP controls.

anonymous: bool

Anonymous.

class pcapkit.protocols.internet.hip.DataType_Parameter
Bases

TypedDict

HIP parameters.

type: pcapkit.const.hip.parameter.Parameter

Parameter type.

critical: bool

Critical bit.

length: int

Length of contents.

HIP Unassigned Parameters

For HIP unassigned parameters as described in RFC 5201 and RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

para.type

Parameter Type

1

15

para.critical

Critical Bit

2

16

para.length

Length of Contents

4

32

para.contents

Contents Padding


class pcapkit.protocols.internet.hip.DataType_Param_Unassigned
Bases

DataType_Parameter

Structure of HIP unassigned parameters [RFC 5201][RFC 7401].

contents: bytes

Contents.

HIP ESP_INFO Parameter

For HIP ESP_INFO parameter as described in RFC 7402, its structure is described as below:

Octets

Bits

Name

Description

0

0

esp_info.type

Parameter Type

1

15

esp_info.critical

Critical Bit

2

16

esp_info.length

Length of Contents

4

32

Reserved

6

48

esp_info.index

KEYMAT Index

8

64

esp_info.old_spi

OLD SPI

12

96

esp_info.new_spi

NEW SPI


class pcapkit.protocols.internet.hip.DataType_Param_ESP_Info
Bases

DataType_Parameter

Structure of HIP ESP_INFO parameter [RFC 7402].

index: int

KEYMAT index.

old_spi: int

Old SPI.

new_spi: int

New SPI.

HIP R1_COUNTER Parameter

For HIP R1_COUNTER parameter as described in RFC 5201 and RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

ri_counter.type

Parameter Type

1

15

ri_counter.critical

Critical Bit

2

16

ri_counter.length

Length of Contents

4

32

Reserved

8

64

ri_counter.count

Generation of Valid Puzzles


class pcapkit.protocols.internet.hip.DataType_Param_R1_Counter
Bases

DataType_Parameter

Structure of HIP R1_COUNTER parameter [RFC 5201][RFC 7401].

count: int

Generation of valid puzzles.

HIP LOCATOR_SET Parameter

For HIP LOCATOR_SET parameter as described in RFC 8046, its structure is described as below:

Octets

Bits

Name

Description

0

0

locator_set.type

Parameter Type

1

15

locator_set.critical

Critical Bit

2

16

locator_set.length

Length of Contents

?

?

4

32

locator.traffic

Traffic Type

5

40

locator.type

Locator Type

6

48

locator.length

Locator Length

7

56

Reserved

7

63

locator.preferred

Preferred Locator

8

64

locator.lifetime

Locator Lifetime

12

96

locator.object

Locator

?

?


class pcapkit.protocols.internet.hip.DataType_Param_Locator_Set
Bases

DataType_Parameter

Structure of HIP LOCATOR_SET parameter [RFC 8046].

locator: Tuple[DataType_Locator]

Locator set.

class pcapkit.protocols.internet.hip.DataType_Locator
Bases

TypedDict

Locator.

traffic: int

Traffic type.

type: int

Locator type.

length: int

Locator length.

preferred: int

Preferred length.

lifetime: int

Locator lifetime.

object: DataType_Locator_Dict

Locator.

class pcapkit.protocols.internet.hip.DataType_Locator_Dict
Bases

TypedDict

Locator type 2.

spi: int

SPI.

ip: ipaddress.IPv4Address

HIP PUZZLE Parameter

For HIP PUZZLE parameter as described in RFC 5201 and RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

puzzle.type

Parameter Type

1

15

puzzle.critical

Critical Bit

2

16

puzzle.length

Length of Contents

4

32

puzzle.number

Number of Verified Bits

5

40

puzzle.lifetime

Lifetime

6

48

puzzle.opaque

Opaque

8

64

puzzle.random

Random Number


class pcapkit.protocols.internet.hip.DataType_Param_Puzzle
Bases

DataType_Parameter

Structure of HIP PUZZLE parameter [RFC 5201][RFC 7401].

number: int

Number of verified bits.

lifetime: int

Lifetime.

opaque: bytes

Opaque.

random: int

Random number.

HIP SOLUTION Parameter

For HIP SOLUTION parameter as described in RFC 5201 and RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

solution.type

Parameter Type

1

15

solution.critical

Critical Bit

2

16

solution.length

Length of Contents

4

32

solution.number

Number of Verified Bits

5

40

solution.lifetime

Lifetime

6

48

solution.opaque

Opaque

8

64

solution.random

Random Number

?

?

solution.solution

Puzzle Solution


class pcapkit.protocols.internet.hip.DataType_Param_Solution
Bases

DataType_Parameter

Structure of HIP SOLUTION parameter [RFC 5201][RFC 7401].

number: number

Number of verified bits.

lifetime: int

Lifetime.

opaque: bytes

Opaque.

random: int

Random number.

solution: int

Puzzle solution.

HIP SEQ Parameter

For HIP SEQ parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

seq.type

Parameter Type

1

15

seq.critical

Critical Bit

2

16

seq.length

Length of Contents

4

32

seq.id

Update ID


class pcapkit.protocols.internet.hip.DataType_Param_SEQ
Bases

DataType_Parameter

Structure of HIP SEQ parameter [RFC 7401].

id: int

Update ID.

HIP ACK Parameter

For HIP ACK parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

ack.type

Parameter Type

1

15

ack.critical

Critical Bit

2

16

ack.length

Length of Contents

4

32

ack.id

Peer Update ID


class pcapkit.protocols.internet.hip.DataType_Param_ACK
Bases

DataType_Parameter

id: Tuple[int]

Array of peer update IDs.

HIP DH_GROUP_LIST Parameter

For HIP DH_GROUP_LIST parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

dh_group_list.type

Parameter Type

1

15

dh_group_list.critical

Critical Bit

2

16

dh_group_list.length

Length of Contents

4

32

dh_group_list.id

DH GROUP ID


class pcapkit.protocols.internet.hip.DataType_Param_DH_Group_List
Bases

DataType_Parameter

Structure of HIP DH_GROUP_LIST parameter [RFC 7401].

id: Tuple[pcapkit.const.hip.group.Group]

Array of DH group IDs.

HIP DEFFIE_HELLMAN Parameter

For HIP DEFFIE_HELLMAN parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

diffie_hellman.type

Parameter Type

1

15

diffie_hellman.critical

Critical Bit

2

16

diffie_hellman.length

Length of Contents

4

32

diffie_hellman.id

Group ID

5

40

diffie_hellman.pub_len

Public Value Length

6

48

diffie_hellman.pub_val

Public Value

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Deffie_Hellman
Bases

DataType_Parameter

Structure of HIP DEFFIE_HELLMAN parameter [RFC 7401].

id: pcapkit.const.hip.group.Group

Group ID.

pub_len: int

Public value length.

pub_val: bytes

Public value.

HIP HIP_TRANSFORM Parameter

For HIP HIP_TRANSFORM parameter as described in RFC 5201, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_transform.type

Parameter Type

1

15

hip_transform.critical

Critical Bit

2

16

hip_transform.length

Length of Contents

4

32

hip_transform.id

Group ID

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Transform
Bases

DataType_Parameter

Structure of HIP HIP_TRANSFORM parameter [RFC 5201].

id: Tuple[pcapkit.const.hip.suite.Suite]

Array of group IDs.

HIP HIP_CIPHER Parameter

For HIP HIP_CIPHER parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_cipher.type

Parameter Type

1

15

hip_cipher.critical

Critical Bit

2

16

hip_cipher.length

Length of Contents

4

32

hip_cipher.id

Cipher ID

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Cipher
Bases

DataType_Parameter

Structure of HIP HIP_CIPHER parameter [RFC 7401].

id: Tuple[pcapkit.const.hip.cipher.Cipher]

Array of cipher IDs.

HIP NAT_TRAVERSAL_MODE Parameter

For HIP NAT_TRAVERSAL_MODE parameter as described in RFC 5770, its structure is described as below:

Octets

Bits

Name

Description

0

0

nat_traversal_mode.type

Parameter Type

1

15

nat_traversal_mode.critical

Critical Bit

2

16

nat_traversal_mode.length

Length of Contents

4

32

Reserved

6

48

nat_traversal_mode.id

Mode ID

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_NET_Traversal_Mode
Bases

DataType_Parameter

Structure of HIP NAT_TRAVERSAL_MODE parameter [RFC 5770].

id: Tuple[pcapkit.const.hip.nat_traversal.NETTraversal]

Array of mode IDs.

HIP TRANSACTION_PACING Parameter

For HIP TRANSACTION_PACING parameter as described in RFC 5770, its structure is described as below:

Octets

Bits

Name

Description

0

0

transaction_pacing.type

Parameter Type

1

15

transaction_pacing.critical

Critical Bit

2

16

transaction_pacing.length

Length of Contents

4

32

transaction_pacing.min_ta

Min Ta


class pcapkit.protocols.internet.hip.DataType_Param_Transaction_Pacing
Bases

DataType_Parameter

Structure of HIP TRANSACTION_PACING parameter [RFC 5770].

min_ta: int

Min Ta.

HIP ENCRYPTED Parameter

For HIP ENCRYPTED parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

encrypted.type

Parameter Type

1

15

encrypted.critical

Critical Bit

2

16

encrypted.length

Length of Contents

4

32

Reserved

8

48

encrypted.iv

Initialization Vector

?

?

encrypted.data

Encrypted data

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Encrypted
Bases

DataType_Parameter

Structure of HIP ENCRYPTED parameter [RFC 7401].

raw: bytes

Raw content data.

HIP HOST_ID Parameter

For HIP HOST_ID parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

host_id.type

Parameter Type

1

15

host_id.critical

Critical Bit

2

16

host_id.length

Length of Contents

4

32

host_id.id_len

Host Identity Length

6

48

host_id.di_type

Domain Identifier Type

6

52

host_id.di_len

Domain Identifier Length

8

64

host_id.algorithm

Algorithm

10

80

host_id.host_id

Host Identity

?

?

host_id.domain_id

Domain Identifier

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Host_ID
Bases

DataType_Parameter

Structure of HIP HOST_ID parameter [RFC 7401].

id_len: int

Host identity length.

di_type: pcapkit.const.hip.di_type.DIType

Domain identifier type.

di_len: int

Domain identifier length.

algorithm: pcapkit.const.hip.hi_algorithm.HIAlgorithm

Algorithm.

host_id: Union[bytes, DataType_Host_ID_ECDSA_Curve, DataType_Host_ID_ECDSA_LOW_Curve]

Host identity.

domain_id: bytes

Domain identifier.

class pcapkit.protocols.internet.hip.DataType_Host_ID_ECDSA_Curve
Bases

TypedDict

Host identity data.

curve: pcapkit.const.hip.ecdsa_curve.ECDSACurve

ECDSA curve.

pubkey: bytes

Public key.

class pcapkit.protocols.internet.hip.DataType_Host_ID_ECDSA_LOW_Curve
Bases

TypedDict

Host identity data.

curve: pcapkit.const.hip.ecdsa_low_curve.ECDSALowCurve

ECDSA_Low curve.

pubkey: bytes

Public key.

HIP HIT_SUITE_LIST Parameter

For HIP HIT_SUITE_LIST parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

hit_suite_list.type

Parameter Type

1

15

hit_suite_list.critical

Critical Bit

2

16

hit_suite_list.length

Length of Contents

4

32

hit_suite_list.id

HIT Suite ID

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_HIT_Suite_List
Bases

DataType_Parameter

Structure of HIP HIT_SUITE_LIST parameter [RFC 7401].

id: Tuple[pcapkit.const.hip.hit_suite.HITSuite]

Array of HIT suite IDs.

HIP CERT Parameter

For HIP CERT parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

cert.type

Parameter Type

1

15

cert.critical

Critical Bit

2

16

cert.length

Length of Contents

4

32

cert.group

CERT Group

5

40

cert.count

CERT Count

6

48

cert.id

CERT ID

7

56

cert.cert_type

CERT Type

8

64

cert.certificate

Certificate

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Cert
Bases

DataType_Parameter

Structure of HIP CERT parameter [RFC 7401].

group: pcapkit.const.hip.group.Group

CERT group.

count: int

CERT count.

id: int

CERT ID.

cert_type: pcapkit.const.hip.certificate.Certificate
certificate: bytes

Certificate.

HIP NOTIFICATION Parameter

For HIP NOTIFICATION parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

notification.type

Parameter Type

1

15

notification.critical

Critical Bit

2

16

notification.length

Length of Contents

4

32

Reserved

6

48

notification.msg_type

Notify Message Type

8

64

notification.data

Notification Data

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Notification
Bases

DataType_Parameter

Structure of HIP NOTIFICATION parameter [RFC 7401].

msg_type: pcapkit.const.hip.notify_message.NotifyMessage

Notify message type.

data: bytes

Notification data.

HIP ECHO_REQUEST_SIGNED Parameter

For HIP ECHO_REQUEST_SIGNED parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

echo_request_signed.type

Parameter Type

1

15

echo_request_signed.critical

Critical Bit

2

16

echo_request_signed.length

Length of Contents

4

32

echo_request_signed.data

Opaque Data


class pcapkit.protocols.internet.hip.DataType_Param_Echo_Request_Signed
Bases

DataType_Parameter

Structure of HIP ECHO_REQUEST_SIGNED parameter [RFC 7401].

data: bytes

Opaque data.

HIP REG_INFO Parameter

For HIP REG_INFO parameter as described in RFC 8003, its structure is described as below:

Octets

Bits

Name

Description

0

0

reg_info.type

Parameter Type

1

15

reg_info.critical

Critical Bit

2

16

reg_info.length

Length of Contents

4

32

reg_info.lifetime

Lifetime

4

32

reg_info.lifetime.min

Min Lifetime

5

40

reg_info.lifetime.max

Max Lifetime

6

48

reg_info.reg_type

Reg Type

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Reg_Info
Bases

DataType_Parameter

Structure of HIP REG_INFO parameter [RFC 8003].

lifetime: DataType_Lifetime

Lifetime.

reg_type: Tuple[pcapkit.const.hip.registration.Registration]

Array of registration type.

class pcapkit.protocols.internet.hip.DataType_Lifetime
Bases

NamedTuple

Lifetime.

min: int

Minimum lifetime.

maz: int

Maximum lifetime.

HIP REG_REQUEST Parameter

For HIP REG_REQUEST parameter as described in RFC 8003, its structure is described as below:

Octets

Bits

Name

Description

0

0

reg_request.type

Parameter Type

1

15

reg_request.critical

Critical Bit

2

16

reg_request.length

Length of Contents

4

32

reg_request.lifetime

Lifetime

4

32

reg_request.lifetime.min

Min Lifetime

5

40

reg_request.lifetime.max

Max Lifetime

6

48

reg_request.reg_type

Reg Type

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Reg_Request
Bases

DataType_Parameter

Structure of HIP REG_REQUEST parameter [RFC 8003].

lifetime: DataType_Lifetime

Lifetime.

reg_type: Tuple[pcapkit.const.hip.registration.Registration]

Array of registration type.

HIP REG_RESPONSE Parameter

For HIP REG_RESPONSE parameter as described in RFC 8003, its structure is described as below:

Octets

Bits

Name

Description

0

0

reg_response.type

Parameter Type

1

15

reg_response.critical

Critical Bit

2

16

reg_response.length

Length of Contents

4

32

reg_response.lifetime

Lifetime

4

32

reg_response.lifetime.min

Min Lifetime

5

40

reg_response.lifetime.max

Max Lifetime

6

48

reg_response.reg_type

Reg Type

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Reg_Response
Bases

DataType_Parameter

Structure of HIP REG_RESPONSE parameter [RFC 8003].

lifetime: DataType_Lifetime

Lifetime.

reg_type: Tuple[pcapkit.const.hip.registration.Registration]

Array of registration type.

HIP REG_FAILED Parameter

For HIP REG_FAILED parameter as described in RFC 8003, its structure is described as below:

Octets

Bits

Name

Description

0

0

reg_failed.type

Parameter Type

1

15

reg_failed.critical

Critical Bit

2

16

reg_failed.length

Length of Contents

4

32

reg_failed.lifetime

Lifetime

4

32

reg_failed.lifetime.min

Min Lifetime

5

40

reg_failed.lifetime.max

Max Lifetime

6

48

reg_failed.reg_type

Reg Type

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Reg_Failed
Bases

DataType_Parameter

Structure of HIP REG_FAILED parameter [RFC 8003].

lifetime: DataType_Lifetime

Lifetime.

reg_type: Tuple[pcapkit.const.hip.registration.Registration]

Array of registration type.

HIP REG_FROM Parameter

For HIP REG_FROM parameter as described in RFC 5770, its structure is described as below:

Octets

Bits

Name

Description

0

0

reg_from.type

Parameter Type

1

15

reg_from.critical

Critical Bit

2

16

reg_from.length

Length of Contents

4

32

reg_from.port

Port

6

48

reg_from.protocol

Protocol

7

56

Reserved

8

64

reg_from.ip

Address (IPv6)


class pcapkit.protocols.internet.hip.DataType_Param_Reg_From
Bases

DataType_Parameter

Structure of HIP REG_FROM parameter [RFC 5770].

port: int

Port.

protocol: pcapkit.const.reg.transtype.TransType

Protocol.

ip: ipaddress.IPv6Address

IPv6 address.

HIP ECHO_RESPONSE_SIGNED Parameter

For HIP ECHO_RESPONSE_SIGNED parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

echo_response_signed.type

Parameter Type

1

15

echo_response_signed.critical

Critical Bit

2

16

echo_response_signed.length

Length of Contents

4

32

echo_response_signed.data

Opaque Data


class pcapkit.protocols.internet.hip.DataType_Param_Echo_Response_Signed
Bases

DataType_Parameter

Structure of HIP ECHO_RESPONSE_SIGNED parameter [RFC 7401].

data: bytes

Opaque data.

HIP TRANSPORT_FORMAT_LIST Parameter

For HIP TRANSPORT_FORMAT_LIST parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

transport_format_list.type

Parameter Type

1

15

transport_format_list.critical

Critical Bit

2

16

transport_format_list.length

Length of Contents

4

32

transport_format_list.tf_type

TF Type

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Transform_Format_List
Bases

DataType_Parameter

Structure of HIP TRANSPORT_FORMAT_LIST parameter [RFC 7401].

tf_type: Tuple[int]

Array of TF types.

HIP ESP_TRANSFORM Parameter

For HIP ESP_TRANSFORM parameter as described in RFC 7402, its structure is described as below:

Octets

Bits

Name

Description

0

0

esp_transform.type

Parameter Type

1

15

esp_transform.critical

Critical Bit

2

16

esp_transform.length

Length of Contents

4

32

Reserved

6

48

esp_transform.id

Suite ID

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_ESP_Transform
Bases

DataType_Parameter

Structure of HIP ESP_TRANSFORM parameter [RFC 7402].

id: Tuple[pcapkit.const.hip.esp_transform_suite.ESPTransformSuite]

Array of suite IDs.

HIP SEQ_DATA Parameter

For HIP SEQ_DATA parameter as described in RFC 6078, its structure is described as below:

Octets

Bits

Name

Description

0

0

seq_data.type

Parameter Type

1

15

seq_data.critical

Critical Bit

2

16

seq_data.length

Length of Contents

4

32

seq_data.seq

Sequence number


class pcapkit.protocols.internet.hip.DataType_Param_SEQ_Data
Bases

DataType_Parameter

Structure of HIP SEQ_DATA parameter [RFC 6078].

seq: int

Sequence number.

HIP ACK_DATA Parameter

For HIP ACK_DATA parameter as described in RFC 6078, its structure is described as below:

Octets

Bits

Name

Description

0

0

ack_data.type

Parameter Type

1

15

ack_data.critical

Critical Bit

2

16

ack_data.length

Length of Contents

4

32

ack_data.ack

Acked Sequence number


class pcapkit.protocols.internet.hip.DataType_Param_ACK_Data
Bases

DataType_Parameter

Structure of HIP ACK_DATA parameter [RFC 6078].

ack: Tuple[int]

Array of ACKed sequence number.

HIP PAYLOAD_MIC Parameter

For HIP PAYLOAD_MIC parameter as described in RFC 6078, its structure is described as below:

Octets

Bits

Name

Description

0

0

payload_mic.type

Parameter Type

1

15

payload_mic.critical

Critical Bit

2

16

payload_mic.length

Length of Contents

4

32

payload_mic.next

Next Header

5

40

Reserved

8

64

payload_mic.data

Payload Data

12

96

payload_mic.value

MIC Value

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Payload_MIC
Bases

DataType_Parameter

Structure of HIP PAYLOAD_MIC parameter [RFC 6078].

next: pcapkit.const.reg.transtype.TransType

Next header.

data: bytes

Payload data.

value: bytes

MIC value.

HIP TRANSACTION_ID Parameter

For HIP TRANSACTION_ID parameter as described in RFC 6078, its structure is described as below:

Octets

Bits

Name

Description

0

0

transaction_id.type

Parameter Type

1

15

transaction_id.critical

Critical Bit

2

16

transaction_id.length

Length of Contents

4

32

transaction_id.id

Identifier


class pcapkit.protocols.internet.hip.DataType_Param_Transaction_ID
Bases

DataType_Parameter

Structure of HIP TRANSACTION_ID parameter [RFC 6078].

id: int

Identifier.

HIP OVERLAY_ID Parameter

For HIP OVERLAY_ID parameter as described in RFC 6079, its structure is described as below:

Octets

Bits

Name

Description

0

0

overlay_id.type

Parameter Type

1

15

overlay_id.critical

Critical Bit

2

16

overlay_id.length

Length of Contents

4

32

overlay_id.id

Identifier


class pcapkit.protocols.internet.hip.DataType_Param_Overlay_ID
Bases

DataType_Parameter

Structure of HIP OVERLAT_ID parameter [RFC 6079].

id: int

Identifier.

HIP ROUTE_DST Parameter

For HIP ROUTE_DST parameter as described in RFC 6079, its structure is described as below:

Octets

Bits

Name

Description

0

0

route_dst.type

Parameter Type

1

15

route_dst.critical

Critical Bit

2

16

route_dst.length

Length of Contents

4

32

route_dst.flags

Flags

4

32

route_dst.flags.symmetric

SYMMETRIC [RFC 6028]

4

33

route_dst.flags.must_follow

MUST_FOLLOW [RFC 6028]

6

48

Reserved

8

64

route_dst.ip

HIT

?

?


class pcapkit.protocols.internet.hip.DataType_Param_Route_Dst
Bases

DataType_Parameter

Structure of HIP ROUTE_DST parameter [RFC 6028].

flags: DataType_Flags

Flags.

ip: Tuple[ipaddress.IPv6Address]

Array of HIT addresses.

class pcapkit.protocols.internet.hip.DataType_Flags
Bases

TypedDict

Flags.

symmetric: bool

SYMMETRIC flag [RFC 6028].

must_follow: bool

MUST_FOLLOW flag [RFC 6028].

HIP HIP_TRANSPORT_MODE Parameter

For HIP HIP_TRANSPORT_MODE parameter as described in RFC 6261, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_transport_mode.type

Parameter Type

1

15

hip_transport_mode.critical

Critical Bit

2

16

hip_transport_mode.length

Length of Contents

4

32

hip_transport_mode.port

Port

6

48

hip_transport_mode.id

Mode ID

?

?

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Transport_Mode
Bases

DataType_Parameter

Structure of HIP HIP_TRANSPORT_MODE parameter [RFC 6261].

port: int

Port.

id: Tuple[pcapkit.const.hip.transport.Transport]

Array of transport mode IDs.

HIP HIP_MAC Parameter

For HIP HIP_MAC parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_mac.type

Parameter Type

1

15

hip_mac.critical

Critical Bit

2

16

hip_mac.length

Length of Contents

4

32

hip_mac.hmac

HMAC

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_HMAC
Bases

DataType_Parameter

Structure of HIP HIP_MAC parameter [RFC 7401].

hmac: bytes

HMAC.

HIP HIP_MAC_2 Parameter

For HIP HIP_MAC_2 parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_mac_2.type

Parameter Type

1

15

hip_mac_2.critical

Critical Bit

2

16

hip_mac_2.length

Length of Contents

4

32

hip_mac_2.hmac

HMAC

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_HMAC_2
Bases

DataType_Parameter

Structure of HIP HIP_MAC_2 parameter [RFC 7401].

hmac: bytes

HMAC.

HIP HIP_SIGNATURE_2 Parameter

For HIP HIP_SIGNATURE_2 parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_signature_2.type

Parameter Type

1

15

hip_signature_2.critical

Critical Bit

2

16

hip_signature_2.length

Length of Contents

4

32

hip_signature_2.algorithm

SIG Algorithm

6

48

hip_signature_2.signature

Signature

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Signature_2
Bases

DataType_Parameter

Structure of HIP HIP_SIGNATURE_2 parameter [RFC 7401].

algorithm: pcapkit.const.hip.hi_algorithm.HIAlgorithm

SIG algorithm.

signature: bytes

Signature.

HIP HIP_SIGNATURE Parameter

For HIP HIP_SIGNATURE parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

hip_signature.type

Parameter Type

1

15

hip_signature.critical

Critical Bit

2

16

hip_signature.length

Length of Contents

4

32

hip_signature.algorithm

SIG Algorithm

6

48

hip_signature.signature

Signature

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Signature
Bases

DataType_Parameter

Structure of HIP HIP_SIGNATURE parameter [RFC 7401].

algorithm: pcapkit.const.hip.hi_algorithm.HIAlgorithm

SIG algorithm.

signature: bytes

Signature.

HIP ECHO_REQUEST_UNSIGNED Parameter

For HIP ECHO_REQUEST_UNSIGNED parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

echo_request_unsigned.type

Parameter Type

1

15

echo_request_unsigned.critical

Critical Bit

2

16

echo_request_unsigned.length

Length of Contents

4

32

echo_request_unsigned.data

Opaque Data


class pcapkit.protocols.internet.hip.DataType_Param_Echo_Request_Unsigned
Bases

DataType_Parameter

Structure of HIP ECHO_REQUEST_UNSIGNED parameter [RFC 7401].

data: bytes

Opaque data.

HIP ECHO_RESPONSE_UNSIGNED Parameter

For HIP ECHO_RESPONSE_UNSIGNED parameter as described in RFC 7401, its structure is described as below:

Octets

Bits

Name

Description

0

0

echo_response_unsigned.type

Parameter Type

1

15

echo_response_unsigned.critical

Critical Bit

2

16

echo_response_unsigned.length

Length of Contents

4

32

echo_response_unsigned.data

Opaque Data


class pcapkit.protocols.internet.hip.DataType_Param_Echo_Response_Unsigned
Bases

DataType_Parameter

Structure of HIP ECHO_RESPONSE_UNSIGNED parameter [RFC 7401].

data: bytes

Opaque data.

HIP RELAY_FROM Parameter

For HIP RELAY_FROM parameter as described in RFC 5770, its structure is described as below:

Octets

Bits

Name

Description

0

0

relay_from.type

Parameter Type

1

15

relay_from.critical

Critical Bit

2

16

relay_from.length

Length of Contents

4

32

relay_from.port

Port

6

48

relay_from.protocol

Protocol

7

56

Reserved

8

64

relay_from.ip

Address (IPv6)


class pcapkit.protocols.internet.hip.DataType_Param_Relay_From
Bases

DataType_Parameter

Structure of HIP RELAY_FROM parameter [RFC 5770].

port: int

Port.

protocol: pcapkit.const.reg.transtype.TransType

Protocol.

ip: ipaddress.IPv6Address

IPv6 address.

HIP RELAY_TO Parameter

For HIP RELAY_TO parameter as described in RFC 5770, its structure is described as below:

Octets

Bits

Name

Description

0

0

relay_to.type

Parameter Type

1

15

relay_to.critical

Critical Bit

2

16

relay_to.length

Length of Contents

4

32

relay_to.port

Port

6

48

relay_to.protocol

Protocol

7

56

Reserved

8

64

relay_to.ip

Address (IPv6)


class pcapkit.protocols.internet.hip.DataType_Param_Relay_To
Bases

DataType_Parameter

Structure of HIP RELAY_TO parameter [RFC 5770].

port: in

Port.

protocol: pcapkit.const.reg.transtype.TransType

Protocol.

ip: ipaddress.IPv6Address

IPv6 address.

HIP OVERLAY_TTL Parameter

For HIP OVERLAY_TTL parameter as described in RFC 6078, its structure is described as below:

Octets

Bits

Name

Description

0

0

overlay_ttl.type

Parameter Type

1

15

overlay_ttl.critical

Critical Bit

2

16

overlay_ttl.length

Length of Contents

4

32

overlay_ttl.ttl

TTL

6

48

Reserved


class pcapkit.protocols.internet.hip.DataType_Param_Overlay_TTL
Bases

DataType_Parameter

ttl: int

TTL.

HIP ROUTE_VIA Parameter

For HIP ROUTE_VIA parameter as described in RFC 6028, its structure is described as below:

Octets

Bits

Name

Description

0

0

route_via.type

Parameter Type

1

15

route_via.critical

Critical Bit

2

16

route_via.length

Length of Contents

4

32

route_via.flags

Flags

4

32

route_via.flags.symmetric

SYMMETRIC [RFC 6028]

4

33

route_via.flags.must_follow

MUST_FOLLOW [RFC 6028]

6

48

Reserved

8

64

route_dst.ip

HIT

?

?


class pcapkit.protocols.internet.hip.DataType_Param_Route_Via
Bases

DataType_Parameter

Structure of HIP ROUTE_VIA parameter [RFC 6028].

flags: DataType_Flags

Flags.

ip: Tuple[ipaddress.IPv6Address]

Array of HITs.

HIP FROM Parameter

For HIP FROM parameter as described in RFC 8004, its structure is described as below:

Octets

Bits

Name

Description

0

0

from.type

Parameter Type

1

15

from.critical

Critical Bit

2

16

from.length

Length of Contents

4

32

from.ip

Address


class pcapkit.protocols.internet.hip.DataType_Param_From
Bases

DataType_Parameter

Structure of HIP FROM parameter [RFC 8004].

ip: ipaddress.IPv6Address

IPv6 address.

HIP RVS_HMAC Parameter

For HIP RVS_HMAC parameter as described in RFC 8004, its structure is described as below:

Octets

Bits

Name

Description

0

0

rvs_hmac.type

Parameter Type

1

15

rvs_hmac.critical

Critical Bit

2

16

rvs_hmac.length

Length of Contents

4

32

rvs_hmac.hmac

HMAC

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_RVS_HMAC
Bases

DataType_Parameter

Structure of HIP RVS_HMAC parameter [RFC 8004].

hmac: bytes

HMAC.

HIP VIA_RVS Parameter

For HIP VIA_RVS parameter as described in RFC 6028, its structure is described as below:

Octets

Bits

Name

Description

0

0

via_rvs.type

Parameter Type

1

15

via_rvs.critical

Critical Bit

2

16

via_rvs.length

Length of Contents

4

32

via_rvs.ip

Address

?

?


class pcapkit.protocols.internet.hip.DataType_Param_Via_RVS
Bases

DataType_Parameter

Structure of HIP VIA_RVS parameter [RFC 6028].

ip: Tuple[ipaddress.IPv6]

Array of IPv6 addresses.

HIP RELAY_HMAC Parameter

For HIP RELAY_HMAC parameter as described in RFC 5770, its structure is described as below:

Octets

Bits

Name

Description

0

0

relay_hmac.type

Parameter Type

1

15

relay_hmac.critical

Critical Bit

2

16

relay_hmac.length

Length of Contents

4

32

relay_hmac.hmac

HMAC

?

?

Padding


class pcapkit.protocols.internet.hip.DataType_Param_Relay_HMAC
Bases

DataType_Parameter

hmac: bytes

HMAC.


*

https://en.wikipedia.org/wiki/Host_Identity_Protocol