Skip to content

Commit eb6df1c

Browse files
committed
prepare v2.0.0
1 parent 7934adc commit eb6df1c

File tree

4 files changed

+64
-39
lines changed

4 files changed

+64
-39
lines changed

README.rst

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,19 @@ decryption (RSA\_WITH\_\*), fuzzing and security scanning
1818
(*Renegotiation, Heartbleed, Poodle, Logjam/Freak, DROWN, various Buffer
1919
overflows, ...*).
2020

21+
Compatibility
22+
-------------
23+
24+
**!! v2.x breaks backwards compatibility to v1.2.x branch due to major interface refactoring introduced with tls1_3 support !!**
25+
26+
see `Release Notes <https://github.com/tintinweb/scapy-ssl_tls/releases>`_
27+
28+
2129
Features
2230
--------
2331

2432
- Protocol Support
33+
- TLS 1.3 draft 18
2534
- TLS 1.2
2635
- TLS 1.1
2736
- TLS 1.0
@@ -75,6 +84,8 @@ Option 3: manual installation
7584
+ "mgcp", "mobileip", "netbios", "netflow", "ntp", "ppp", "radius", "rip", "rtp","ssl_tls",
7685
"sebek", "skinny", "smb", "snmp", "tftp", "x509", "bluetooth", "dhcp6", "llmnr", "sctp", "vrrp" ]
7786

87+
88+
7889
verify installation:
7990
''''''''''''''''''''
8091

@@ -101,7 +112,6 @@ Troubleshooting
101112

102113
**Q:** ``sessionctx_sniffer.py`` does not seem to detect ``SSL/TLS`` or
103114
does not show any sniffed ``SSL/TLS`` sessions.
104-
105115
**A:** This is problem caused by the import magic in
106116
``sessionctx_sniffer.py`` where the example might mix up imports from
107117
the projects directory with the ones installed with ``pip`` or via
@@ -110,14 +120,11 @@ the projects directory with the ones installed with ``pip`` or via
110120
scapy-ssl\_tls to use it directly from the project directory, or remove
111121
the ``from scapy_ssl_tls.ssl_tls import *`` import lines from the
112122
example.
113-
114123
**Note:** This has been addressed with ``>=v1.2.3`` where the
115124
system-wide import has preference.
116125

117-
118126
**Q:** ``sessionctx_sniffer.py`` does not seem to dissect large
119127
``SSL/TLS`` records properly.
120-
121128
**A:** In order to fully reconstruct *sniffed* ``SSL/TLS`` records one
122129
needs to ``defragment`` the sniffed IP packets and ``reassemble`` them
123130
to TCP segments. Since TCP Stream reassembly is not an easy task

scapy_ssl_tls/ssl_tls.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -336,16 +336,16 @@ def __init__(self, entries):
336336
}
337337
TLSTypeBoolean = EnumStruct(TLS_TYPE_BOOLEAN)
338338

339-
TLS_EC_POINT_FORMATS = registry.EC_POINT_FORMAT_REGISTRY
339+
TLS_EC_POINT_FORMATS = registry.TLS_EC_POINT_FORMAT_REGISTRY
340340
TLSEcPointFormat = EnumStruct(TLS_EC_POINT_FORMATS)
341341
# Fix inconsistency in casing
342342
TLSECPointFormat = TLSEcPointFormat
343343
DEFAULT_EC_POINT_FORMAT_LIST = [TLSECPointFormat.UNCOMPRESSED]
344344

345-
TLS_EC_CURVE_TYPES = registry.EC_CURVE_TYPE_REGISTRY
345+
TLS_EC_CURVE_TYPES = registry.TLS_EC_CURVE_TYPE_REGISTRY
346346
TLSECCurveTypes = EnumStruct(TLS_EC_CURVE_TYPES)
347347

348-
TLS_SUPPORTED_GROUPS = registry.SUPPORTED_GROUPS_REGISTRY
348+
TLS_SUPPORTED_GROUPS = registry.TLS_SUPPORTED_GROUPS_REGISTRY
349349
TLS_SUPPORTED_GROUPS.update({256: "ffdhe2048",
350350
257: "ffdhe3072",
351351
258: "ffdhe4096",

scapy_ssl_tls/ssl_tls_registry.py

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: UTF-8 -*-
22
# Generator: fetch_iana_tls_registry.py
3-
# date: 2016-09-28
3+
# date: 2018-02-12
44
# sources: https://www.iana.org/assignments/tls-parameters/tls-parameters.xml
55
# WARNING! THIS FILE IS AUTOGENERATED, DO NOT EDIT!
66

@@ -16,7 +16,7 @@
1616
0x40: 'ecdsa_sign',
1717
0x41: 'rsa_fixed_ecdh',
1818
0x42: 'ecdsa_fixed_ecdh',
19-
}
19+
}
2020
TLS_CIPHER_SUITE_REGISTRY = {
2121
0x0000: 'NULL_WITH_NULL_NULL',
2222
0x0001: 'RSA_WITH_NULL_MD5',
@@ -337,21 +337,31 @@
337337
0xc0ad: 'ECDHE_ECDSA_WITH_AES_256_CCM',
338338
0xc0ae: 'ECDHE_ECDSA_WITH_AES_128_CCM_8',
339339
0xc0af: 'ECDHE_ECDSA_WITH_AES_256_CCM_8',
340+
0xc0b0: 'ECCPWD_WITH_AES_128_GCM_SHA256',
341+
0xc0b1: 'ECCPWD_WITH_AES_256_GCM_SHA384',
342+
0xc0b2: 'ECCPWD_WITH_AES_128_CCM_SHA256',
343+
0xc0b3: 'ECCPWD_WITH_AES_256_CCM_SHA384',
340344
0xcca8: 'ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
341345
0xcca9: 'ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256',
342346
0xccaa: 'DHE_RSA_WITH_CHACHA20_POLY1305_SHA256',
343347
0xccab: 'PSK_WITH_CHACHA20_POLY1305_SHA256',
344348
0xccac: 'ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256',
345349
0xccad: 'DHE_PSK_WITH_CHACHA20_POLY1305_SHA256',
346350
0xccae: 'RSA_PSK_WITH_CHACHA20_POLY1305_SHA256',
347-
}
351+
0xd000: 'Unassigned',
352+
0xd001: 'ECDHE_PSK_WITH_AES_128_GCM_SHA256',
353+
0xd002: 'ECDHE_PSK_WITH_AES_256_GCM_SHA384',
354+
0xd003: 'ECDHE_PSK_WITH_AES_128_CCM_8_SHA256',
355+
0xd004: 'Unassigned',
356+
0xd005: 'ECDHE_PSK_WITH_AES_128_CCM_SHA256',
357+
}
348358
TLS_CONTENTTYPE_REGISTRY = {
349359
0x14: 'change_cipher_spec',
350360
0x15: 'alert',
351361
0x16: 'handshake',
352362
0x17: 'application_data',
353363
0x18: 'heartbeat',
354-
}
364+
}
355365
TLS_ALERT_REGISTRY = {
356366
0x00: 'close_notify',
357367
0x0a: 'unexpected_message',
@@ -384,7 +394,7 @@
384394
0x71: 'bad_certificate_status_response',
385395
0x72: 'bad_certificate_hash_value',
386396
0x73: 'unknown_psk_identity',
387-
}
397+
}
388398
TLS_HANDSHAKETYPE_REGISTRY = {
389399
0x00: 'hello_request',
390400
0x01: 'client_hello',
@@ -401,8 +411,8 @@
401411
0x15: 'certificate_url',
402412
0x16: 'certificate_status',
403413
0x17: 'supplemental_data',
404-
}
405-
SUPPORTED_GROUPS_REGISTRY = {
414+
}
415+
TLS_SUPPORTED_GROUPS_REGISTRY = {
406416
0x00: 'Unassigned',
407417
0x01: 'sect163k1',
408418
0x02: 'sect163r1',
@@ -437,36 +447,38 @@
437447
0x1a: 'brainpoolP256r1',
438448
0x1b: 'brainpoolP384r1',
439449
0x1c: 'brainpoolP512r1',
440-
0x1d: 'ecdh_x25519',
441-
0x1e: 'ecdh_x448',
450+
0x1d: 'x25519',
451+
0x1e: 'x448',
442452
0xff00: 'Unassigned',
443453
0xff01: 'arbitrary_explicit_prime_curves',
444454
0xff02: 'arbitrary_explicit_char2_curves',
445-
}
446-
EC_POINT_FORMAT_REGISTRY = {
455+
}
456+
TLS_EC_POINT_FORMAT_REGISTRY = {
447457
0x00: 'uncompressed',
448458
0x01: 'ansiX962_compressed_prime',
449459
0x02: 'ansiX962_compressed_char2',
450-
}
451-
EC_CURVE_TYPE_REGISTRY = {
460+
}
461+
TLS_EC_CURVE_TYPE_REGISTRY = {
452462
0x00: 'Unassigned',
453463
0x01: 'explicit_prime',
454464
0x02: 'explicit_char2',
455465
0x03: 'named_curve',
456-
}
466+
}
457467
TLS_SUPPLEMENTAL_DATA_FORMATS = {
458468
0x00: 'user_mapping_data',
459469
0x4002: 'authz_data',
460-
}
470+
}
461471
TLS_USERMAPPINGTYPE_VALUES = {
462472
0x40: 'upn_domain_hint',
463-
}
473+
}
464474
TLS_SIGNATUREALGORITHM_REGISTRY = {
465475
0x00: 'anonymous',
466476
0x01: 'rsa',
467477
0x02: 'dsa',
468478
0x03: 'ecdsa',
469-
}
479+
0x07: 'ed25519',
480+
0x08: 'ed448',
481+
}
470482
TLS_HASHALGORITHM_REGISTRY = {
471483
0x00: 'none',
472484
0x01: 'md5',
@@ -475,7 +487,9 @@
475487
0x04: 'sha256',
476488
0x05: 'sha384',
477489
0x06: 'sha512',
478-
}
490+
0x07: 'Unassigned',
491+
0x08: 'Intrinsic',
492+
}
479493
# Skipping: AttributeError("'NoneType' object has no attribute 'text'",)
480494
# Skipping: AttributeError("'NoneType' object has no attribute 'text'",)
481495
# Skipping: AttributeError("'NoneType' object has no attribute 'text'",)
@@ -493,7 +507,7 @@
493507
# Skipping: AttributeError("'NoneType' object has no attribute 'text'",)
494508
# Skipping: AttributeError("'NoneType' object has no attribute 'text'",)
495509
TLS_EXPORTER_LABEL_REGISTRY = {
496-
}
510+
}
497511
TLS_AUTHORIZATION_DATA_FORMATS = {
498512
0x00: 'x509_attr_cert',
499513
0x01: 'saml_assertion',
@@ -502,31 +516,31 @@
502516
0x40: 'keynote_assertion_list',
503517
0x41: 'keynote_assertion_list_url',
504518
0x42: 'dtcp_authorization',
505-
}
519+
}
506520
HEARTBEAT_MESSAGE_TYPES = {
507521
0x00: 'Reserved',
508522
0x01: 'heartbeat_request',
509523
0x02: 'heartbeat_response',
510524
0xff: 'Reserved',
511-
}
525+
}
512526
HEARTBEAT_MODES = {
513527
0x00: 'Reserved',
514528
0x01: 'peer_allowed_to_send',
515529
0x02: 'peer_not_allowed_to_send',
516530
0xff: 'Reserved',
517-
}
531+
}
518532
# Generator: fetch_iana_tls_registry.py
519-
# date: 2016-09-28
533+
# date: 2018-02-12
520534
# sources: https://www.iana.org/assignments/comp-meth-ids/comp-meth-ids.xml
521535
# WARNING! THIS FILE IS AUTOGENERATED, DO NOT EDIT!
522536

523537
TLS_COMPRESSION_METHOD_IDENTIFIERS = {
524538
0x00: 'NULL',
525539
0x01: 'DEFLATE',
526540
0x40: 'LZS',
527-
}
541+
}
528542
# Generator: fetch_iana_tls_registry.py
529-
# date: 2016-09-28
543+
# date: 2018-02-12
530544
# sources: https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xml
531545
# WARNING! THIS FILE IS AUTOGENERATED, DO NOT EDIT!
532546

@@ -559,32 +573,36 @@
559573
0x19: 'cached_info',
560574
0x23: 'SessionTicket_TLS',
561575
0xff01: 'renegotiation_info',
562-
}
576+
}
563577
TLS_CERTIFICATE_TYPES = {
564578
0x00: 'X_509',
565579
0x01: 'OpenPGP',
566580
0x02: 'Raw_Public_Key',
567-
}
581+
}
568582
TLS_CERTIFICATE_STATUS_TYPES = {
569583
0x00: 'Reserved',
570584
0x01: 'ocsp',
571585
0x02: 'ocsp_multi',
572-
}
586+
}
573587
APPLICATION_LAYER_PROTOCOL_NEGOTIATION_PROTOCOL_IDS = {
574588
'c-webrtc': 'Confidential_WebRTC_Media_and_Data',
589+
'coap': 'CoAP',
575590
'ftp': 'FTP',
576591
'h2': 'HTTP_2_over_TLS',
577592
'h2c': 'HTTP_2_over_TCP',
578593
'http/1.1': 'HTTP_1_1',
594+
'imap': 'IMAP',
595+
'managesieve': 'ManageSieve',
596+
'pop3': 'POP3',
579597
'spdy/1': 'SPDY_1',
580598
'spdy/2': 'SPDY_2',
581599
'spdy/3': 'SPDY_3',
582600
'stun.nat-discovery': 'NAT_discovery_using_Session_Traversal_Utilities_for_NAT',
583601
'stun.turn': 'Traversal_Using_Relays_around_NAT',
584602
'webrtc': 'WebRTC_Media_and_Data',
585-
}
603+
}
586604
TLS_CACHEDINFORMATIONTYPE_VALUES = {
587605
0x00: 'Reserved',
588606
0x01: 'cert',
589607
0x02: 'cert_req',
590-
}
608+
}

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def read(fname):
140140

141141
setup(
142142
name="scapy-ssl_tls",
143-
version="1.3.0",
143+
version="2.0.0",
144144
packages=["scapy_ssl_tls"],
145145
author="tintinweb",
146146
author_email="[email protected]",
@@ -149,7 +149,7 @@ def read(fname):
149149
license="GPLv2",
150150
keywords=["scapy", "ssl", "tls", "layer", "network", "dissect", "packets", "decrypt"],
151151
url="https://github.com/tintinweb/scapy-ssl_tls/",
152-
download_url="https://github.com/tintinweb/scapy-ssl_tls/tarball/v1.3.0",
152+
download_url="https://github.com/tintinweb/scapy-ssl_tls/tarball/v2.0.0",
153153
# generate rst from .md: pandoc --from=markdown --to=rst README.md -o README.rst (fix diff section and footer)
154154
long_description=read("README.rst") if os.path.isfile("README.rst") else read("README.md"),
155155
install_requires=os_install_requires(),

0 commit comments

Comments
 (0)