Coverage Report

Created: 2025-11-24 07:12

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/PcapPlusPlus/Packet++/src/SSLCommon.cpp
Line
Count
Source
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
197k
  {
14
197k
    if (m_SSLVersionValue >= 0x0300 && m_SSLVersionValue <= 0x0304)
15
197k
      return static_cast<SSLVersion::SSLVersionEnum>(m_SSLVersionValue);
16
17
267
    if ((m_SSLVersionValue >= 0x7f0e && m_SSLVersionValue <= 0x7f1c) || m_SSLVersionValue == 0xfb17 ||
18
267
        m_SSLVersionValue == 0xfb1a)
19
0
    {
20
0
      if (countTlsDraftsAs1_3)
21
0
        return SSLVersion::TLS1_3;
22
0
      else
23
0
        return static_cast<SSLVersion::SSLVersionEnum>(m_SSLVersionValue);
24
0
    }
25
26
267
    return SSLVersion::Unknown;
27
267
  }
28
29
  std::string SSLVersion::toString(bool countTlsDraftsAs1_3)
30
48.0k
  {
31
48.0k
    SSLVersionEnum enumValue = asEnum(countTlsDraftsAs1_3);
32
33
48.0k
    switch (enumValue)
34
48.0k
    {
35
546
    case SSLVersion::TLS1_3:
36
546
      return "TLS 1.3";
37
37.9k
    case SSLVersion::TLS1_2:
38
37.9k
      return "TLS 1.2";
39
378
    case SSLVersion::TLS1_1:
40
378
      return "TLS 1.1";
41
8.87k
    case SSLVersion::TLS1_0:
42
8.87k
      return "TLS 1.0";
43
302
    case SSLVersion::SSL3:
44
302
      return "SSL 3.0";
45
0
    case SSLVersion::TLS1_3_D28:
46
0
      return "TLS 1.3 (draft 28)";
47
0
    case SSLVersion::TLS1_3_D27:
48
0
      return "TLS 1.3 (draft 27)";
49
0
    case SSLVersion::TLS1_3_D26:
50
0
      return "TLS 1.3 (draft 26)";
51
0
    case SSLVersion::TLS1_3_D25:
52
0
      return "TLS 1.3 (draft 25)";
53
0
    case SSLVersion::TLS1_3_D24:
54
0
      return "TLS 1.3 (draft 24)";
55
0
    case SSLVersion::TLS1_3_D23:
56
0
      return "TLS 1.3 (draft 23)";
57
0
    case SSLVersion::TLS1_3_D22:
58
0
      return "TLS 1.3 (draft 22)";
59
0
    case SSLVersion::TLS1_3_D21:
60
0
      return "TLS 1.3 (draft 21)";
61
0
    case SSLVersion::TLS1_3_D20:
62
0
      return "TLS 1.3 (draft 20)";
63
0
    case SSLVersion::TLS1_3_D19:
64
0
      return "TLS 1.3 (draft 19)";
65
0
    case SSLVersion::TLS1_3_D18:
66
0
      return "TLS 1.3 (draft 18)";
67
0
    case SSLVersion::TLS1_3_D17:
68
0
      return "TLS 1.3 (draft 17)";
69
0
    case SSLVersion::TLS1_3_D16:
70
0
      return "TLS 1.3 (draft 16)";
71
0
    case SSLVersion::TLS1_3_D15:
72
0
      return "TLS 1.3 (draft 15)";
73
0
    case SSLVersion::TLS1_3_D14:
74
0
      return "TLS 1.3 (draft 14)";
75
0
    case SSLVersion::TLS1_3_FBD23:
76
0
      return "TLS 1.3 (Facebook draft 23)";
77
0
    case SSLVersion::TLS1_3_FBD26:
78
0
      return "TLS 1.3 (Facebook draft 26)";
79
0
    case SSLVersion::Unknown:
80
0
      return "Unknown";
81
0
    default:
82
0
      return "Unknown";
83
48.0k
    }
84
48.0k
  }
85
86
}  // namespace pcpp