Skip to content

Commit c7aab25

Browse files
committed
tls: Add missing converters to vector type attributes
1 parent 97f79f3 commit c7aab25

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

cryptoparser/tls/extension.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,10 @@ def get_param(cls):
407407

408408
@attr.s
409409
class TlsExtensionECPointFormats(TlsExtensionParsed):
410-
point_formats = attr.ib(validator=attr.validators.instance_of(TlsECPointFormatVector))
410+
point_formats = attr.ib(
411+
converter=TlsECPointFormatVector,
412+
validator=attr.validators.instance_of(TlsECPointFormatVector)
413+
)
411414

412415
@classmethod
413416
def get_extension_type(cls):
@@ -635,7 +638,10 @@ def get_param(cls):
635638

636639
@attr.s
637640
class TlsExtensionEllipticCurves(TlsExtensionParsed):
638-
elliptic_curves = attr.ib(validator=attr.validators.instance_of(TlsEllipticCurveVector))
641+
elliptic_curves = attr.ib(
642+
converter=TlsEllipticCurveVector,
643+
validator=attr.validators.instance_of(TlsEllipticCurveVector)
644+
)
639645

640646
@classmethod
641647
def get_extension_type(cls):
@@ -935,7 +941,10 @@ def get_param(cls):
935941

936942
@attr.s
937943
class TlsExtensionSignatureAlgorithms(TlsExtensionParsed):
938-
hash_and_signature_algorithms = attr.ib(validator=attr.validators.instance_of(TlsSignatureAndHashAlgorithmVector))
944+
hash_and_signature_algorithms = attr.ib(
945+
converter=TlsSignatureAndHashAlgorithmVector,
946+
validator=attr.validators.instance_of(TlsSignatureAndHashAlgorithmVector)
947+
)
939948

940949
@classmethod
941950
def get_extension_type(cls):

cryptoparser/tls/subprotocol.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,10 @@ def get_param(cls):
421421

422422
@attr.s # pylint: disable=too-many-instance-attributes
423423
class TlsHandshakeClientHello(TlsHandshakeHello):
424-
cipher_suites = attr.ib(converter=TlsCipherSuiteVector)
424+
cipher_suites = attr.ib(
425+
converter=TlsCipherSuiteVector,
426+
validator=attr.validators.instance_of(TlsCipherSuiteVector)
427+
)
425428
protocol_version = attr.ib(
426429
default=TlsProtocolVersionFinal(TlsVersion.TLS1_2),
427430
validator=attr.validators.instance_of((TlsProtocolVersionBase, SslProtocolVersion)),
@@ -438,7 +441,11 @@ class TlsHandshakeClientHello(TlsHandshakeHello):
438441
default=TlsCompressionMethodVector([TlsCompressionMethod.NULL, ]),
439442
validator=attr.validators.instance_of(TlsCompressionMethodVector),
440443
)
441-
extensions = attr.ib(default=TlsExtensions(()), validator=attr.validators.instance_of(TlsExtensions))
444+
extensions = attr.ib(
445+
default=TlsExtensions(()),
446+
converter=TlsExtensions,
447+
validator=attr.validators.instance_of(TlsExtensions)
448+
)
442449
fallback_scsv = attr.ib(default=False, validator=attr.validators.instance_of(bool))
443450
empty_renegotiation_info_scsv = attr.ib(default=True, validator=attr.validators.instance_of(bool))
444451

@@ -559,7 +566,11 @@ class TlsHandshakeServerHello(TlsHandshakeHello):
559566
validator=attr.validators.in_(TlsCompressionMethod),
560567
)
561568
cipher_suite = attr.ib(default=None, validator=attr.validators.in_(TlsCipherSuite))
562-
extensions = attr.ib(default=None, validator=attr.validators.instance_of(TlsExtensions))
569+
extensions = attr.ib(
570+
default=TlsExtensions([]),
571+
converter=TlsExtensions,
572+
validator=attr.validators.instance_of(TlsExtensions)
573+
)
563574

564575
@classmethod
565576
def get_handshake_type(cls):

0 commit comments

Comments
 (0)