PcapPlusPlus  21.05+
pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint Struct Reference

#include <SSLHandshake.h>

Public Member Functions

std::string toString ()
std::string toMD5 ()
std::pair< std::string, std::string > toStringAndMD5 ()

Public Attributes

uint16_t tlsVersion
std::vector< uint16_t > cipherSuites
std::vector< uint16_t > extensions
std::vector< uint16_t > supportedGroups
std::vector< uint8_t > ecPointFormats

Detailed Description

A struct that contains all the elements needed for creating a Client Hello TLS fingerprinting: TLS version, a list of Cipher Suite IDs, a list of Extensions IDs, a list of support groups and a list of EC point formats. You can read more about this in SSLClientHelloMessage::generateTLSFingerprint(). This struct contains methods to extract the TLS fingerprint itself: toString() and toMD5()

Member Function Documentation

◆ toMD5()

std::string pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::toMD5 ( )
An MD5 hash of the string generated by toString()

◆ toString()

std::string pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::toString ( )
A string representing the TLS fingerprint, for example: 771,4866-4867-4865-255,0-11-10-35-22-23-13-43-45-51,29-23-30-25-24,0-1-2

This string has the following format: TLSVersion,CipherSuiteIDs,ExtensionIDs,SupportedGroups,ECPointFormats

The extension IDs, supported groups and EC point formats are each separated by a "-". If the message doesn't include the "supported groups" or "EC point formats" extensions, they will be replaced by an empty string for example: 771,4866-4867-4865-255,0-11-10-35-22-23-13-43-45-51,,

◆ toStringAndMD5()

std::pair<std::string, std::string> pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::toStringAndMD5 ( )
A pair of the string and MD5 hash (string is first, MD5 is second). If you want both this method is more efficient than calling toString() and toMD5() separately

Member Data Documentation

◆ cipherSuites

std::vector<uint16_t> pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::cipherSuites

A list of Cipher Suite IDs

◆ ecPointFormats

std::vector<uint8_t> pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::ecPointFormats

A list of EC point formats taken from the "EC point formats" TLS extension (if exist in the message)

◆ extensions

std::vector<uint16_t> pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::extensions

A list of extension IDs

◆ supportedGroups

std::vector<uint16_t> pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::supportedGroups

A list of Suppotred Groups taken from the "supported groups" TLS extension (if exist in the message)

◆ tlsVersion

uint16_t pcpp::SSLClientHelloMessage::ClientHelloTLSFingerprint::tlsVersion

TLS version