scapy.layers.tls.handshake_sslv2

SSLv2 handshake fields & logic.

class scapy.layers.tls.handshake_sslv2.SSLv2ClientCertificate(_pkt, /, *, msgtype=8, certtype=1, certlen=None, responselen=None, certdata=b'', responsedata=None)[源代码]

基类:_SSLv2Handshake

SSLv2 ClientCertificate.

aliastypes
build(*args, **kargs)[源代码]
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |    CERTTYPE   |            CERTLEN            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          RESPONSELEN          |            CERTDATA           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          RESPONSEDATA         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. SSLv2ClientCertificate                    
SSLv2ClientCertificate fields

msgtype

ByteEnumField

8

certtype

ByteEnumField

1

certlen

FieldLenField

None

responselen

FieldLenField

None

certdata

_SSLv2CertDataField

b''

responsedata

_TLSSignatureField

None

post_dissection_tls_session_update(msg_str)[源代码]
tls_session_update(msg_str)[源代码]
class scapy.layers.tls.handshake_sslv2.SSLv2ClientFinished(_pkt, /, *, msgtype=3, connection_id=b'')[源代码]

基类:_SSLv2Handshake

In order to parse a ClientFinished, the exact message string should be fed to the class. SSLv2 does not offer any other way to know the c_id length.

aliastypes
build(*args, **kargs)[源代码]
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |         CONNECTION ID         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. SSLv2ClientFinished                     
SSLv2ClientFinished fields

msgtype

ByteEnumField

3

connection_id

XStrField

b''

post_dissection(pkt)[源代码]
class scapy.layers.tls.handshake_sslv2.SSLv2ClientHello(_pkt, /, *, msgtype=1, version=2, cipherslen=None, sidlen=None, challengelen=None, sid=b'', ciphers=[458944], challenge=b'')[源代码]

基类:_SSLv2Handshake

SSLv2 ClientHello.

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |            VERSION            |   CIPHERSLEN  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             SIDLEN            |  CHALLENGELEN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |              SID              |    CIPHERS    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |           CHALLENGE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. SSLv2ClientHello                       
SSLv2ClientHello fields

msgtype

ByteEnumField

1

version

_TLSVersionField

2

cipherslen

FieldLenField

None

sidlen

FieldLenField

None

challengelen

FieldLenField

None

sid

XStrLenField

b''

ciphers

_SSLv2CipherSuitesField

[458944]

challenge

XStrLenField

b''

tls_session_update(msg_str)[源代码]
class scapy.layers.tls.handshake_sslv2.SSLv2ClientMasterKey(_pkt, /, *, msgtype=2, cipher=None, clearkeylen=None, encryptedkeylen=None, keyarglen=None, clearkey=b'', encryptedkey=b'', keyarg=b'')[源代码]

基类:_SSLv2Handshake

SSLv2 ClientMasterKey.

aliastypes
decryptedkey
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |             CIPHER            |  CLEARKEYLEN  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |        ENCRYPTEDKEYLEN        |   KEYARGLEN   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            CLEARKEY           |  ENCRYPTEDKEY |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |             KEYARG            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. SSLv2ClientMasterKey                     
SSLv2ClientMasterKey fields

msgtype

ByteEnumField

2

cipher

_SSLv2CipherSuiteField

None

clearkeylen

FieldLenField

None

encryptedkeylen

FieldLenField

None

keyarglen

FieldLenField

None

clearkey

XStrLenField

b''

encryptedkey

_SSLv2EncryptedKeyField

b''

keyarg

XStrLenField

b''

post_build(pkt, pay)[源代码]
pre_dissect(s)[源代码]
tls_session_update(msg_str)[源代码]
class scapy.layers.tls.handshake_sslv2.SSLv2Error(_pkt, /, *, msgtype=0, code=None)[源代码]

基类:_SSLv2Handshake

SSLv2 Error.

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |              CODE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. SSLv2Error                          
SSLv2Error fields

msgtype

ByteEnumField

0

code

ShortEnumField

None

class scapy.layers.tls.handshake_sslv2.SSLv2RequestCertificate(_pkt, /, *, msgtype=7, authtype=1, challenge=b'')[源代码]

基类:_SSLv2Handshake

In order to parse a RequestCertificate, the exact message string should be fed to the class. This is how SSLv2 defines the challenge length...

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |    AUTHTYPE   |           CHALLENGE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. SSLv2RequestCertificate                   
SSLv2RequestCertificate fields

msgtype

ByteEnumField

7

authtype

ByteEnumField

1

challenge

XStrField

b''

tls_session_update(msg_str)[源代码]
class scapy.layers.tls.handshake_sslv2.SSLv2ServerFinished(_pkt, /, *, msgtype=6, sid=b'')[源代码]

基类:_SSLv2Handshake

In order to parse a ServerFinished, the exact message string should be fed to the class. SSLv2 does not offer any other way to know the sid length.

aliastypes
build(*args, **kargs)[源代码]
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |              SID              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. SSLv2ServerFinished                     
SSLv2ServerFinished fields

msgtype

ByteEnumField

6

sid

XStrField

b''

post_dissection_tls_session_update(msg_str)[源代码]
class scapy.layers.tls.handshake_sslv2.SSLv2ServerHello(_pkt, /, *, msgtype=4, sid_hit=0, certtype=1, version=2, certlen=None, cipherslen=None, connection_idlen=None, cert=b'', ciphers=[], connection_id=b'')[源代码]

基类:_SSLv2Handshake

SSLv2 ServerHello.

aliastypes
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |    SID HIT    |    CERTTYPE   |    VERSION    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            CERTLEN            |   CIPHERSLEN  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |        CONNECTION IDLEN       |      CERT     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            CIPHERS            | CONNECTION ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                      Fig. SSLv2ServerHello                       
SSLv2ServerHello fields

msgtype

ByteEnumField

4

sid_hit

ByteField

0

certtype

ByteEnumField

1

version

_TLSVersionField

2

certlen

FieldLenField

None

cipherslen

FieldLenField

None

connection_idlen

FieldLenField

None

cert

_SSLv2CertDataField

b''

ciphers

_SSLv2CipherSuitesField

[]

connection_id

XStrLenField

b''

tls_session_update(msg_str)[源代码]

XXX Something should be done about the session ID here.

class scapy.layers.tls.handshake_sslv2.SSLv2ServerVerify(_pkt, /, *, msgtype=5, challenge=b'')[源代码]

基类:_SSLv2Handshake

In order to parse a ServerVerify, the exact message string should be fed to the class. This is how SSLv2 defines the challenge length...

aliastypes
build(*args, **kargs)[源代码]
fields_desc
Display RFC-like schema
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    MSGTYPE    |           CHALLENGE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. SSLv2ServerVerify                      
SSLv2ServerVerify fields

msgtype

ByteEnumField

5

challenge

XStrField

b''

post_dissection(pkt)[源代码]