Coverage Report

Created: 2023-01-17 06:15

/src/PcapPlusPlus/Packet++/src/SSLCommon.cpp
Line
Count
Source (jump to first uncovered line)
1
#define LOG_MODULE PacketLogModuleSSLLayer
2
3
#include "SSLCommon.h"
4
5
namespace pcpp
6
{
7
8
// -------------------------
9
// SSLVersion methods
10
// -------------------------
11
12
SSLVersion::SSLVersionEnum SSLVersion::asEnum(bool countTlsDraftsAs1_3)
13
19.6k
{
14
19.6k
  if (m_SSLVersionValue >= 0x0300 && m_SSLVersionValue <= 0x0304)
15
14.1k
    return static_cast<SSLVersion::SSLVersionEnum>(m_SSLVersionValue);
16
17
5.49k
  if ((m_SSLVersionValue >= 0x7f0e && m_SSLVersionValue <= 0x7f1c) || m_SSLVersionValue == 0xfb17 || m_SSLVersionValue == 0xfb1a)
18
4.19k
  {
19
4.19k
    if (countTlsDraftsAs1_3)
20
4.19k
      return SSLVersion::TLS1_3;
21
0
    else
22
0
      return static_cast<SSLVersion::SSLVersionEnum>(m_SSLVersionValue);
23
4.19k
  }
24
25
1.30k
  if (m_SSLVersionValue == 0x200)
26
48
    return SSLVersion::SSL2;
27
28
1.25k
  return SSLVersion::Unknown;
29
1.30k
}
30
31
32
std::string SSLVersion::toString(bool countTlsDraftsAs1_3)
33
0
{
34
0
  SSLVersionEnum enumValue = asEnum(countTlsDraftsAs1_3);
35
36
0
  switch (enumValue)
37
0
  {
38
0
  case SSLVersion::TLS1_3:
39
0
    return "TLS 1.3";
40
0
  case SSLVersion::TLS1_2:
41
0
    return "TLS 1.2";
42
0
  case SSLVersion::TLS1_1:
43
0
    return "TLS 1.1";
44
0
  case SSLVersion::TLS1_0:
45
0
    return "TLS 1.0";
46
0
  case SSLVersion::SSL3:
47
0
    return "SSL 3.0";
48
0
  case SSLVersion::TLS1_3_D28:
49
0
    return "TLS 1.3 (draft 28)";
50
0
  case SSLVersion::TLS1_3_D27:
51
0
    return "TLS 1.3 (draft 27)";
52
0
  case SSLVersion::TLS1_3_D26:
53
0
    return "TLS 1.3 (draft 26)";
54
0
  case SSLVersion::TLS1_3_D25:
55
0
    return "TLS 1.3 (draft 25)";
56
0
  case SSLVersion::TLS1_3_D24:
57
0
    return "TLS 1.3 (draft 24)";
58
0
  case SSLVersion::TLS1_3_D23:
59
0
    return "TLS 1.3 (draft 23)";
60
0
  case SSLVersion::TLS1_3_D22:
61
0
    return "TLS 1.3 (draft 22)";
62
0
  case SSLVersion::TLS1_3_D21:
63
0
    return "TLS 1.3 (draft 21)";
64
0
  case SSLVersion::TLS1_3_D20:
65
0
    return "TLS 1.3 (draft 20)";
66
0
  case SSLVersion::TLS1_3_D19:
67
0
    return "TLS 1.3 (draft 19)";
68
0
  case SSLVersion::TLS1_3_D18:
69
0
    return "TLS 1.3 (draft 18)";
70
0
  case SSLVersion::TLS1_3_D17:
71
0
    return "TLS 1.3 (draft 17)";
72
0
  case SSLVersion::TLS1_3_D16:
73
0
    return "TLS 1.3 (draft 16)";
74
0
  case SSLVersion::TLS1_3_D15:
75
0
    return "TLS 1.3 (draft 15)";
76
0
  case SSLVersion::TLS1_3_D14:
77
0
    return "TLS 1.3 (draft 14)";
78
0
  case SSLVersion::TLS1_3_FBD23:
79
0
    return "TLS 1.3 (Facebook draft 23)";
80
0
  case SSLVersion::TLS1_3_FBD26:
81
0
    return "TLS 1.3 (Facebook draft 26)";
82
0
  case SSLVersion::Unknown:
83
0
    return "Unknown";
84
0
  case SSLVersion::SSL2:
85
0
    return "SSL 2.0";
86
0
  default:
87
0
    return "Unknown";
88
0
  }
89
0
}
90
91
92
} // namespace pcpp