Enums Module

class mtf.network_port.tls.helpers.enums.TlsAttackerEnum

Base Enum class for TLS Attacker related enums.

load_enum()
class mtf.network_port.tls.helpers.enums.ProtocolVersion

Enum to represent ProtocolVersion with corresponding Java enum values.

SSL2
SSL3
TLS10
TLS11
TLS12
TLS13
TLS13_DRAFT14
TLS13_DRAFT15
TLS13_DRAFT16
TLS13_DRAFT17
TLS13_DRAFT18
TLS13_DRAFT19
TLS13_DRAFT20
TLS13_DRAFT21
TLS13_DRAFT22
TLS13_DRAFT23
TLS13_DRAFT24
TLS13_DRAFT25
TLS13_DRAFT26
TLS13_DRAFT27
TLS13_DRAFT28
DTLS10_DRAFT
DTLS10
DTLS12
GREASE_00
GREASE_01
GREASE_02
GREASE_03
GREASE_04
GREASE_05
GREASE_06
GREASE_07
GREASE_08
GREASE_09
GREASE_10
GREASE_11
GREASE_12
GREASE_13
GREASE_14
GREASE_15
class mtf.network_port.tls.helpers.enums.TokenBindingVersion

Enum to represent TokenBindingVersion with corresponding Java enum values.

DRAFT_1
DRAFT_2
DRAFT_3
DRAFT_4
DRAFT_5
DRAFT_6
DRAFT_7
DRAFT_8
DRAFT_9
DRAFT_10
DRAFT_11
DRAFT_12
DRAFT_13
DRAFT_14
DRAFT_15
DRAFT_16
DRAFT_17
DRAFT_18
class mtf.network_port.tls.helpers.enums.TokenBindingKeyParameters

Enum to represent TokenBindingKeyParameters with corresponding Java enum values.

RSA2048_PKCS1_5
RSA2048_PSS
ECDSAP256
class mtf.network_port.tls.helpers.enums.UserMappingExtensionHintType

Enum to represent UserMappingExtensionHintType with corresponding Java enum values.

UPN_DOMAIN_HINT
class mtf.network_port.tls.helpers.enums.AuthzDataFormat

Enum to represent AuthzDataFormat with corresponding Java enum values.

X509_ATTR_CERT
SAML_ASSERTION
X509_ATTR_CERT_URL
SAML_ASSERTION_URL
class mtf.network_port.tls.helpers.enums.SrtpProtectionProfile

Enum to represent SRTP protection profiles with their corresponding byte values.

SRTP_AES128_CM_HMAC_SHA1_80
SRTP_AES128_CM_HMAC_SHA1_32
SRTP_NULL_HMAC_SHA1_80
SRTP_NULL_HMAC_SHA1_32
SRTP_AEAD_AES_128_GCM
SRTP_AEAD_AES_256_GCM
DOUBLE_AEAD_AES_128_GCM_AEAD_AES_128_GCM
DOUBLE_AEAD_AES_256_GCM_AEAD_AES_256_GCM
SRTP_ARIA_128_CTR_HMAC_SHA1_80
SRTP_ARIA_128_CTR_HMAC_SHA1_32
SRTP_ARIA_256_CTR_HMAC_SHA1_80
SRTP_ARIA_256_CTR_HMAC_SHA1_32
SRTP_AEAD_ARIA_128_GCM
SRTP_AEAD_ARIA_256_GCM
class mtf.network_port.tls.helpers.enums.MaxFragmentLength

Enum to represent MaxFragmentLength with corresponding Java enum values.

TWO_9
TWO_10
TWO_11
TWO_12
class mtf.network_port.tls.helpers.enums.PskKeyExchangeMode

Enum to represent PskKeyExchangeMode with corresponding Java enum values.

PSK_KE
PSK_DHE_KE
class mtf.network_port.tls.helpers.enums.CertificateType

Enum to represent CertificateType with corresponding Java enum values.

X509
OPEN_PGP
RAW_PUBLIC_KEY
class mtf.network_port.tls.helpers.enums.HeartbeatMode

Enum to represent HeartbeatMode with corresponding Java enum values.

PEER_ALLOWED_TO_SEND
PEER_NOT_ALLOWED_TO_SEND
class mtf.network_port.tls.helpers.enums.SignatureAndHashAlgorithm

Enum to represent Signature and Hash Algorithm with corresponding Java enum values.

ANONYMOUS_NONE
ANONYMOUS_MD5
ANONYMOUS_SHA1
ANONYMOUS_SHA224
ANONYMOUS_SHA256
ANONYMOUS_SHA384
ANONYMOUS_SHA512
RSA_NONE
RSA_MD5
RSA_SHA1
RSA_SHA224
RSA_SHA256
RSA_SHA384
RSA_SHA512
DSA_NONE
DSA_MD5
DSA_SHA1
DSA_SHA224
DSA_SHA256
DSA_SHA384
DSA_SHA512
ECDSA_NONE
ECDSA_MD5
ECDSA_SHA1
ECDSA_SHA224
ECDSA_SHA256
ECDSA_SHA384
ECDSA_SHA512
SM2_SM3
ED25519
ED448
RSA_PSS_RSAE_SHA256
RSA_PSS_RSAE_SHA384
RSA_PSS_RSAE_SHA512
RSA_PSS_PSS_SHA256
RSA_PSS_PSS_SHA384
RSA_PSS_PSS_SHA512
GOSTR34102001_GOSTR3411
GOSTR34102012_256_GOSTR34112012_256
GOSTR34102012_512_GOSTR34112012_512
ECDSA_BRAINPOOL_P256R1_TLS13_SHA256
ECDSA_BRAINPOOL_P384R1_TLS13_SHA384
ECDSA_BRAINPOOL_P512R1_TLS13_SHA512
GREASE_00
GREASE_01
GREASE_02
GREASE_03
GREASE_04
GREASE_05
GREASE_06
GREASE_07
GREASE_08
GREASE_09
GREASE_10
GREASE_11
GREASE_12
GREASE_13
GREASE_14
GREASE_15
class mtf.network_port.tls.helpers.enums.ECPointFormat

Enum to represent ECPointFormat with corresponding Java enum values.

UNCOMPRESSED
ANSIX962_COMPRESSED_PRIME
ANSIX962_COMPRESSED_CHAR2
class mtf.network_port.tls.helpers.enums.NamedGroup

Enum to represent NamedGroup with corresponding Java enum values.

Each NamedGroup enum member contains: - byte_value: A byte representation of the group. - group_name: The name of the group as a string. - group_size: The size of the group, if applicable.

This enum interacts with the de.rub.nds.tlsattacker.core.constants.NamedGroup Java enum via JPype and can dynamically load the Java enum value corresponding to the Python enum member.

SECT163K1
SECT163R1
SECT163R2
SECT193R1
SECT193R2
SECT233K1
SECT233R1
SECT239K1
SECT283K1
SECT283R1
SECT409K1
SECT409R1
SECT571K1
SECT571R1
SECP160K1
SECP160R1
SECP160R2
SECP192K1
SECP192R1
SECP224K1
SECP224R1
SECP256K1
SECP256R1
SECP384R1
SECP521R1
BRAINPOOLP256R1
BRAINPOOLP384R1
BRAINPOOLP512R1
ECDH_X25519
ECDH_X448
CURVE_SM2
FFDHE2048
FFDHE3072
FFDHE4096
FFDHE6144
FFDHE8192
EXPLICIT_PRIME
EXPLICIT_CHAR2
GREASE_00
GREASE_01
GREASE_02
GREASE_03
GREASE_04
GREASE_05
GREASE_06
GREASE_07
GREASE_08
GREASE_09
GREASE_10
GREASE_11
GREASE_12
GREASE_13
GREASE_14
GREASE_15
__init__(byte_value, group_name, group_size)

Initializes a NamedGroup enum member.

Parameters:

  • byte_value: Byte representation of the group.

  • group_name: String name of the group.

  • group_size: Size of the group (or None for GREASE values).

class mtf.network_port.tls.helpers.enums.TlsMessage

Enum representing various TLS message types used in the TLS handshake process.

Each enum member corresponds to a fully qualified Java class name that represents a specific type of TLS message. These message types can be dynamically loaded and processed using jpype in the TlsAttacker framework.

Enum Members:

HELLO_VERIFY_REQUESTstr

Represents the HelloVerifyRequestMessage used in DTLS handshakes to verify the client’s IP address.

CHANGE_CIPHER_SPECstr

Represents the ChangeCipherSpecMessage, indicating that the sender is ready to begin using new cryptographic parameters.

CERTIFICATE_REQUESTstr

Represents the CertificateRequestMessage, sent by the server to request the client’s certificate.

SERVER_HELLO_DONEstr

Represents the ServerHelloDoneMessage, indicating the server has finished its part of the handshake.

SERVER_KEY_EXCHANGEstr

Represents the ServerKeyExchangeMessage, used to provide the server’s key-exchange parameters.

RSA_CLIENT_KEY_EXCHANGE: str

Class path for the RSAClientKeyExchangeMessage, which is used by the client in an RSA-based key exchange process.

RSA_SERVER_KEY_EXCHANGE: str

Class path for the RSAServerKeyExchangeMessage, which is used by the server in an RSA-based key exchange process.

FINISHED_MESSAGEstr

Represents the FinishedMessage, indicating the completion of the handshake process.

ALERTstr

Represents the AlertMessage, used to signal errors or important notifications in the TLS session.

SERVER_HELLOstr

Represents the ServerHelloMessage, sent by the server to confirm selected handshake parameters.

CLIENT_HELLOstr

Represents the ClientHelloMessage, sent by the client to initiate the TLS handshake with proposed parameters.

CLIENT_KEY_EXCHANGEstr

Represents the ClientKeyExchangeMessage, used to securely exchange key material between the client and server.

CERTIFICATEstr

Represents the CertificateMessage, used to send the sender’s public key to the recipient for authentication.

HELLO_VERIFY_REQUEST
CHANGE_CIPHER_SPEC
CERTIFICATE_REQUEST
CERTIFICATE_VERIFY
SERVER_HELLO_DONE
SERVER_KEY_EXCHANGE
RSA_CLIENT_KEY_EXCHANGE
RSA_SERVER_KEY_EXCHANGE
FINISHED_MESSAGE
ALERT
SERVER_HELLO
CLIENT_HELLO
CLIENT_KEY_EXCHANGE
CERTIFICATE
CERTIFICATE_STATUS
EncryptedExtensionsMessage
ApplicationMessage
ResetConnectionAction
RenegotiationAction
NewSessionTicketMessage
HELLO_REQUEST
class mtf.network_port.tls.helpers.enums.TlsExtensionType

Enum representing the different types of TLS extensions.

TLS extensions are used in the TLS handshake to negotiate various parameters between the client and server. Each extension type corresponds to a specific functionality that can be negotiated or enabled during the handshake.

Attributes:

SERVER_NAME (int): Server Name Indication (SNI) extension, value 0.

MAX_FRAGMENT_LENGTH (int): Maximum Fragment Length extension, value 1.

CLIENT_CERTIFICATE_URL (int): Client Certificate URL extension, value 2.

TRUSTED_CA_KEYS (int): Trusted CA Keys extension, value 3.

TRUNCATED_HMAC (int): Truncated HMAC extension, value 4.

STATUS_REQUEST (int): Certificate Status Request extension, value 5.

USER_MAPPING (int): User Mapping extension, value 6.

CLIENT_AUTHZ (int): Client Authorization extension, value 7.

SERVER_AUTHZ (int): Server Authorization extension, value 8.

CERT_TYPE (int): Certificate Type extension, value 9.

SUPPORTED_GROUPS (int): Supported Elliptic Curves extension, value 10.

EC_POINT_FORMATS (int): Supported EC Point Formats extension, value 11.

SRP (int): Secure Remote Password (SRP) extension, value 12.

SIGNATURE_ALGORITHMS (int): Signature Algorithms extension, value 13.

USE_SRTP (int): Use SRTP extension, value 14.

HEARTBEAT (int): Heartbeat extension, value 15.

ALPN (int): Application-Layer Protocol Negotiation (ALPN) extension, value 16.

STATUS_REQUEST_V2 (int): Status Request Version 2 extension, value 17.

SIGNED_CERTIFICATE_TIMESTAMP (int): Signed Certificate Timestamp extension, value 18.

CLIENT_CERT_TYPE (int): Client Certificate Type extension, value 19.

SERVER_CERT_TYPE (int): Server Certificate Type extension, value 20.

PADDING (int): Padding extension, value 21.

ENCRYPT_THEN_MAC (int): Encrypt-Then-MAC extension, value 22.

EXTENDED_MASTER_SECRET (int): Extended Master Secret extension, value 23.

TOKEN_BINDING (int): Token Binding extension, value 24.

CACHED_INFO (int): Cached Info extension, value 25.

TLS_LTS (int): TLS_LTS extension, value 26.

COMPRESS_CERTIFICATE (int): Compress Certificate extension, value 27.

RECORD_SIZE_LIMIT (int): Record Size Limit extension, value 28.

PWD_PROTECT (int): Password Protect extension, value 29.

PWD_CLEAR (int): Password Clear extension, value 30.

PASSWORD_SALT (int): Password Salt extension, value 31.

TICKET_PINNING (int): TICKET_PINNING extension, value 32.

TLS_CERT_WITH_EXTERN_PSK (int): TLS_CERT_WITH_EXTERN_PSK extension, value 33.

DELEGATED_CREDENTIAL (int): DELEGATED_CREDENTIAL extension, value 34.

SESSION_TICKET (int): Session Ticket extension, value 35.

TLMSP (int): TLMSP extension, value 36.

TLMSP_PROXYING (int): TLMSP_PROXYING extension, value 37.

TLMSP_DELEGATE (int): TLMSP_DELEGATE extension, value 38.

SUPPORTED_EKT_CIPHERS (int): SUPPORTED_EKT_CIPHERS extension, value 39.

EXTENDED_RANDOM (int): Extended Random extension, value 40.

PSK_IDENTITY (int): Pre-Shared Key Identity extension, value 41.

EARLY_DATA (int): Early Data extension, value 42.

SUPPORTED_VERSIONS (int): Supported Versions extension, value 43.

COOKIE (int): Cookie extension, value 44.

PSK_KEY_EXCHANGE_MODES (int): PSK Key Exchange Modes extension, value 45.

RESERVED (int): Reserved extension, value 46.

CERTIFICATE_AUTHORITIES (int): Certificate Authorities extension, value 47.

OID_FILTERS (int): OID Filters extension, value 48.

POST_HANDSHAKE_AUTH (int): Post-Handshake Authentication extension, value 49.

SIGNATURE_ALGORITHMS_CERT (int): Signature Algorithms for Certificates extension, value 50.

KEY_SHARE (int): Key Share extension, value 51.

TRANSPARENCY_INFO (int): Certificate Transparency extension, value 52.

CONNECTION_ID_DEPRECATED (int): Deprecated Connection ID extension, value 53.

CONNECTION_ID (int): Connection ID extension, value 54.

EXTERNAL_ID_HASH (int): External ID Hash extension, value 55.

EXTERNAL_SESSION_ID (int): External Session ID extension, value 56.

QUIC_TRANSPORT_PARAMETERS (int): QUIC Transport Parameters extension, value 57.

TICKET_REQUEST (int): Ticket Request extension, value 58.

DNSSEC_CHAIN (int): DNSSEC Chain extension, value 59.

SEQUENCE_NUMBER_ENCRYPTION_ALGORITHMS (int): SEQUENCE_NUMBER_ENCRYPTION_ALGORITHMS extension, value 60.

RRC (int): RRC extension, value 61.

TLS_FLAGS (int): TLS Flags extension, value 62.

NPN (int): Next Protocol Negotiation (NPN) extension, value 13172.

RENEGOTIATION_INFO (int): Renegotiation Info extension, value 65281.

ENCRYPTED_SERVER_NAME_INDICATION (int): Encrypted Server Name Indication extension, value 65486.

ENCRYPTED_CLIENT_HELLO (int): Encrypted Client Hello extension, value 65037.

ECH_OUTER_EXTENSIONS (int): ECH Outer Extensions extension, value 64768.

PRIVATE_USE (int): Private Use extension, value 65280.

SERVER_NAME
MAX_FRAGMENT_LENGTH
CLIENT_CERTIFICATE_URL
TRUSTED_CA_KEYS
TRUNCATED_HMAC
STATUS_REQUEST
USER_MAPPING
CLIENT_AUTHZ
SERVER_AUTHZ
CERT_TYPE
SUPPORTED_GROUPS
EC_POINT_FORMATS
SRP
SIGNATURE_ALGORITHMS
USE_SRTP
HEARTBEAT
ALPN
STATUS_REQUEST_V2
SIGNED_CERTIFICATE_TIMESTAMP
CLIENT_CERT_TYPE
SERVER_CERT_TYPE
PADDING
ENCRYPT_THEN_MAC
EXTENDED_MASTER_SECRET
TOKEN_BINDING
CACHED_INFO
TLS_LTS
COMPRESS_CERTIFICATE
RECORD_SIZE_LIMIT
PWD_PROTECT
PWD_CLEAR
PASSWORD_SALT
TICKET_PINNING
TLS_CERT_WITH_EXTERN_PSK
DELEGATED_CREDENTIAL
SESSION_TICKET
TLMSP
TLMSP_PROXYING
TLMSP_DELEGATE
SUPPORTED_EKT_CIPHERS
EXTENDED_RANDOM
PSK_IDENTITY
EARLY_DATA
SUPPORTED_VERSIONS
COOKIE
PSK_KEY_EXCHANGE_MODES
RESERVED
CERTIFICATE_AUTHORITIES
OID_FILTERS
POST_HANDSHAKE_AUTH
SIGNATURE_ALGORITHMS_CERT
KEY_SHARE
TRANSPARENCY_INFO
CONNECTION_ID_DEPRECATED
CONNECTION_ID
EXTERNAL_ID_HASH
EXTERNAL_SESSION_ID
QUIC_TRANSPORT_PARAMETERS
TICKET_REQUEST
DNSSEC_CHAIN
SEQUENCE_NUMBER_ENCRYPTION_ALGORITHMS
RRC
TLS_FLAGS
NPN
RENEGOTIATION_INFO
ENCRYPTED_SERVER_NAME_INDICATION
ENCRYPTED_CLIENT_HELLO
ECH_OUTER_EXTENSIONS
PRIVATE_USE
class mtf.network_port.tls.helpers.enums.HandshakeType

Enum representing different handshake message types in the TLS protocol. Each type corresponds to a specific handshake step in the protocol.

CLIENT_HELLO
SERVER_HELLO
SESSION_TICKET
ENCRYPTED_EXTENSIONS
CLIENT_KEY_EXCHANGE
CERTIFICATE
SERVER_KEY_EXCHANGE
CERTIFICATE_REQUEST
SERVER_HELLO_DONE
CERTIFICATE_VERIFY
FINISHED
class mtf.network_port.tls.helpers.enums.ContentType

Enum representing different content types in the TLS protocol. These values indicate the type of message being exchanged.

HANDSHAKE
CHANGE_CIPHER_SPEC
ALERT
RECORD_HEADER
class mtf.network_port.tls.helpers.enums.CheckValue

Enum representing various check values used in the TLS protocol. These values help in verifying the integrity and correctness of messages.

FINISHED
CHANGE_CIPHER_SPEC
class mtf.network_port.tls.helpers.enums.PositionXorValue

Enum that sets the initial value to apply an XOR modification on Record Layer

INITIALITATION_VECTOR
ENCRYPTED_DATA
class mtf.network_port.tls.helpers.enums.Offset

Represents byte offsets for different TLS versions.

Attributes:

TLS1_2_CERT (int): Offset value for certificates in TLS 1.2.

TLS1_3_CERT (int): Offset value for certificates in TLS 1.3.

HANDSHAKE_HEADER (int): Offset for handshake header.

HANDSHAKE_TYPE (int): Offset for handshake type.

PSK_IDENTITY (int): Offset for Pre-Shared Key (PSK) identity.

CERTIFICATE_REQUEST_LENGTH (int): Offset for certificate request length field.

LENGTH_FIELD (int): Offset for the length field in messages.

DATA_POSITION (int): Offset for the data position in the message.

SIGNATURE_ALGORITHM (int): Offset for the signature algorithm in certificates.

SIGNATURE (int): Offset for the signature field in certificates.

TLS1_2_CERT
TLS1_3_CERT
HANDSHAKE_HEADER
HANDSHAKE_TYPE
PSK_IDENTITY
CERTIFICATE_REQUEST_LENGTH
LENGTH_FIELD
DATA_POSITION
SIGNATURE_ALGORITHM
SIGNATURE