Source code for pcapkit.const.tls.extension_type
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,consider-using-f-string
"""TLS/DTLS ExtensionType Values
===================================
.. module:: pcapkit.const.tls.extension_type
This module contains the constant enumeration for **TLS/DTLS ExtensionType Values**,
which is automatically generated from :class:`pcapkit.vendor.tls.extension_type.ExtensionType`.
"""
from typing import TYPE_CHECKING
from aenum import IntEnum
from pcapkit.corekit.enum import EnumRegistry
from pcapkit.utilities.exceptions import EnumValueError
if TYPE_CHECKING:
from typing import Any
__all__ = ['ExtensionType']
[docs]
class ExtensionType(EnumRegistry, IntEnum):
"""[ExtensionType] TLS/DTLS ExtensionType Values"""
#: server_name [:rfc:`6066`][:rfc:`9261`]
server_name = 0
#: max_fragment_length [:rfc:`6066`][:rfc:`8449`]
max_fragment_length = 1
#: client_certificate_url [:rfc:`6066`]
client_certificate_url = 2
#: trusted_ca_keys [:rfc:`6066`]
trusted_ca_keys = 3
#: truncated_hmac [:rfc:`6066`][IESG Action 2018-08-16][:rfc:`9847`][Tag Size
#: Does Matter: Attacks and Proofs for the TLS Record Protocol]
truncated_hmac = 4
#: status_request [:rfc:`6066`][:rfc:`9846`]
status_request = 5
#: user_mapping [:rfc:`4681`]
user_mapping = 6
#: client_authz [:rfc:`5878`]
client_authz = 7
#: server_authz [:rfc:`5878`]
server_authz = 8
#: cert_type [:rfc:`6091`]
cert_type = 9
#: supported_groups [:rfc:`8422`][:rfc:`7919`][:rfc:`9846`]
supported_groups = 10
#: ec_point_formats [:rfc:`8422`]
ec_point_formats = 11
#: srp [:rfc:`5054`]
srp = 12
#: signature_algorithms [:rfc:`9846`]
signature_algorithms = 13
#: use_srtp [:rfc:`5764`]
use_srtp = 14
#: heartbeat [:rfc:`6520`]
heartbeat = 15
#: application_layer_protocol_negotiation [:rfc:`7301`]
application_layer_protocol_negotiation = 16
#: status_request_v2 [:rfc:`6961`]
status_request_v2 = 17
#: signed_certificate_timestamp [:rfc:`6962`]
signed_certificate_timestamp = 18
#: client_certificate_type [:rfc:`7250`]
client_certificate_type = 19
#: server_certificate_type [:rfc:`7250`]
server_certificate_type = 20
#: padding [:rfc:`7685`]
padding = 21
#: encrypt_then_mac [:rfc:`7366`]
encrypt_then_mac = 22
#: extended_main_secret [:rfc:`7627`][:rfc:`9846`]
extended_main_secret = 23
#: token_binding [:rfc:`8472`]
token_binding = 24
#: cached_info [:rfc:`7924`][:rfc:`9846`]
cached_info = 25
#: tls_lts [draft-gutmann-tls-lts-11]
tls_lts = 26
#: compress_certificate [:rfc:`8879`]
compress_certificate = 27
#: record_size_limit [:rfc:`8449`]
record_size_limit = 28
#: pwd_protect [:rfc:`8492`]
pwd_protect = 29
#: pwd_clear [:rfc:`8492`]
pwd_clear = 30
#: password_salt [:rfc:`8492`]
password_salt = 31
#: ticket_pinning [:rfc:`8672`]
ticket_pinning = 32
#: tls_cert_with_extern_psk [:rfc:`9973`]
tls_cert_with_extern_psk = 33
#: delegated_credential [:rfc:`9345`]
delegated_credential = 34
#: session_ticket [:rfc:`5077`][:rfc:`8447`]
session_ticket = 35
#: TLMSP [ETSI TS 103 523-2]
TLMSP = 36
#: TLMSP_proxying [ETSI TS 103 523-2]
TLMSP_proxying = 37
#: TLMSP_delegate [ETSI TS 103 523-2]
TLMSP_delegate = 38
#: supported_ekt_ciphers [:rfc:`8870`]
supported_ekt_ciphers = 39
#: Reserved [:rfc:`9847`][tls-reg-review mailing list]
Reserved_40 = 40
#: pre_shared_key [:rfc:`9846`]
pre_shared_key = 41
#: early_data [:rfc:`9846`]
early_data = 42
#: supported_versions [:rfc:`9846`]
supported_versions = 43
#: cookie [:rfc:`9846`]
cookie = 44
#: psk_key_exchange_modes [:rfc:`9846`]
psk_key_exchange_modes = 45
#: Reserved [:rfc:`9847`][tls-reg-review mailing list]
Reserved_46 = 46
#: certificate_authorities [:rfc:`9846`]
certificate_authorities = 47
#: oid_filters [:rfc:`9846`]
oid_filters = 48
#: post_handshake_auth [:rfc:`9846`]
post_handshake_auth = 49
#: signature_algorithms_cert [:rfc:`9846`]
signature_algorithms_cert = 50
#: key_share [:rfc:`9846`][RFC Errata 5483]
key_share = 51
#: transparency_info [:rfc:`9162`]
transparency_info = 52
#: connection_id (deprecated) [:rfc:`9146`][:rfc:`9847`]
connection_id_deprecated = 53
#: connection_id [:rfc:`9146`]
connection_id = 54
#: external_id_hash [:rfc:`8844`]
external_id_hash = 55
#: external_session_id [:rfc:`8844`]
external_session_id = 56
#: quic_transport_parameters [:rfc:`9001`]
quic_transport_parameters = 57
#: ticket_request [:rfc:`9149`]
ticket_request = 58
#: dnssec_chain [:rfc:`9102`][RFC Errata 6860]
dnssec_chain = 59
#: sequence_number_encryption_algorithms
#: [draft-pismenny-tls-dtls-plaintext-sequence-number-01]
sequence_number_encryption_algorithms = 60
#: rrc [:rfc:`9853`]
rrc = 61
#: tls_flags [draft-ietf-tls-tlsflags-14]
tls_flags = 62
#: Reserved [:rfc:`8701`]
Reserved_2570 = 2570
#: Reserved [:rfc:`8701`]
Reserved_6682 = 6682
#: Reserved [:rfc:`8701`]
Reserved_10794 = 10794
#: Reserved [:rfc:`8701`]
Reserved_14906 = 14906
#: Reserved [:rfc:`8701`]
Reserved_19018 = 19018
#: Reserved [:rfc:`8701`]
Reserved_23130 = 23130
#: Reserved [:rfc:`8701`]
Reserved_27242 = 27242
#: Reserved [:rfc:`8701`]
Reserved_31354 = 31354
#: Reserved [:rfc:`8701`]
Reserved_35466 = 35466
#: Reserved [:rfc:`8701`]
Reserved_39578 = 39578
#: Reserved [:rfc:`8701`]
Reserved_43690 = 43690
#: Reserved [:rfc:`8701`]
Reserved_47802 = 47802
#: Reserved [:rfc:`8701`]
Reserved_51914 = 51914
#: Reserved [:rfc:`8701`]
Reserved_56026 = 56026
#: Reserved [:rfc:`8701`]
Reserved_60138 = 60138
#: Reserved [:rfc:`8701`]
Reserved_64250 = 64250
#: ech_outer_extensions [:rfc:`9849`] -- Only appears in inner CH.
ech_outer_extensions = 64768
#: encrypted_client_hello [:rfc:`9849`]
encrypted_client_hello = 65037
#: Reserved for Private Use [:rfc:`9846`]
Reserved_for_Private_Use = 65280
#: renegotiation_info [:rfc:`5746`]
renegotiation_info = 65281
[docs]
@classmethod
def _validate_value(cls, value: 'Any') -> 'None':
"""Reject ``value`` unless it passes the range check :meth:`_missing_` makes.
Overrides :meth:`~pcapkit.corekit.enum.EnumLookup._validate_value`
with that check and the message it raises, so
:meth:`~pcapkit.corekit.enum.EnumRegistry.register` refuses exactly the
values :meth:`~pcapkit.corekit.enum.EnumLookup.get` refuses, in the
same words (:issue:`1816`).
Args:
value: Value about to be looked up or minted.
Raises:
EnumValueError: If ``value`` fails that check. A
:exc:`ValueError`, so an ``except ValueError`` caller is
unaffected.
"""
if not (isinstance(value, int) and 0 <= value <= 65535):
raise EnumValueError('%r is not a valid %s' % (value, cls.__name__))
[docs]
@classmethod
def _missing_(cls, value: 'int') -> 'ExtensionType':
"""Lookup function used when value is not found.
Args:
value: Value to get enum item.
"""
if not (isinstance(value, int) and 0 <= value <= 65535):
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
if 63 <= value <= 2569:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 2571 <= value <= 6681:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 6683 <= value <= 10793:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 10795 <= value <= 14905:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 14907 <= value <= 19017:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 19019 <= value <= 23129:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 23131 <= value <= 27241:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 27243 <= value <= 31353:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 31355 <= value <= 35465:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 35467 <= value <= 39577:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 39579 <= value <= 43689:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 43691 <= value <= 47801:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 47803 <= value <= 51913:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 51915 <= value <= 56025:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 56027 <= value <= 60137:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 60139 <= value <= 64249:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 64251 <= value <= 64767:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 64769 <= value <= 65036:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 65038 <= value <= 65279:
#: Unassigned
return cls._unregistered_member(value, 'Unassigned')
if 65282 <= value <= 65535:
#: Reserved for Private Use [:rfc:`9846`]
return cls._unregistered_member(value, 'Reserved_for_Private_Use')
return super()._missing_(value)