Skip to content

Commit 48c82e1

Browse files
committed
Remove non-functional SSL 2 version code point
As per discussion in #1694, remove SSL 2 for now. SSL 2 is not actually implemented, and the version code point is wrong anyway. SSL 2 uses a version field of 0x0002, not 0x0200. This is confirmed not only in the original Netscape spec [1] and RFC draft of the time [2], but also in major implementations such as OpenSSL [3] and Wireshark [4]. More importantly, SSL 2 has a different record format, without version field, that is used for both SSL 2 proper, and SSL 2 compatible SSL 3 / TLS. For Packet++ to see a SSL 2 version field on the wire, it would first have to support the SSL 2 record format, and at least one of SSL 2 handshake messages, or SSL 2 compatible SSL 3 or later handshakes. [1] https://www-archive.mozilla.org/projects/security/pki/nss/ssl/draft02.html [2] https://datatracker.ietf.org/doc/html/draft-hickman-netscape-ssl-00 [3] https://github.com/openssl/openssl/blob/OpenSSL_0_9_6m/ssl/ssl2.h#L66-L71 [4] https://github.com/wireshark/wireshark/blob/release-4.4/epan/dissectors/packet-tls-utils.h#L266-L277
1 parent 3292f14 commit 48c82e1

File tree

2 files changed

+0
-5
lines changed

2 files changed

+0
-5
lines changed

Packet++/header/SSLCommon.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@ namespace pcpp
100100
/// SSL/TLS versions enum
101101
enum SSLVersionEnum
102102
{
103-
/// SSL 2.0
104-
SSL2 = 0x0200,
105103
/// SSL 3.0
106104
SSL3 = 0x0300,
107105
/// TLS 1.0

Packet++/src/SSLCommon.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ namespace pcpp
2323
return static_cast<SSLVersion::SSLVersionEnum>(m_SSLVersionValue);
2424
}
2525

26-
if (m_SSLVersionValue == 0x200)
27-
return SSLVersion::SSL2;
28-
2926
return SSLVersion::Unknown;
3027
}
3128

0 commit comments

Comments
 (0)