92         static bool isSSHPort(uint16_t portSrc, uint16_t portDst)
 
   94             return portSrc == 22 || portDst == 22;
 
  115             : 
Layer(data, dataLen, prevLayer, packet, 
SSH)
 
  161             : 
SSHLayer(data, dataLen, prevLayer, packet)
 
  245 #pragma pack(push, 1) 
  249             uint32_t packetLength;
 
  250             uint8_t paddingLength;
 
  254         static_assert(
sizeof(
ssh_message_base) == 6, 
"ssh_message_base size is not 6 bytes");
 
  261             : 
SSHLayer(data, dataLen, prevLayer, packet)
 
  264         ssh_message_base* getMsgBaseHeader()
 const 
  266             return reinterpret_cast<ssh_message_base*
>(m_Data);
 
  301             return getFieldValue(0);
 
  308             return getFieldValue(1);
 
  315             return getFieldValue(2);
 
  322             return getFieldValue(3);
 
  329             return getFieldValue(4);
 
  336             return getFieldValue(5);
 
  343             return getFieldValue(6);
 
  350             return getFieldValue(7);
 
  357             return getFieldValue(8);
 
  365             return getFieldValue(9);
 
  374         size_t m_FieldOffsets[11];
 
  375         bool m_OffsetsInitialized;
 
  377         void parseMessageAndInitOffsets();
 
  379         std::string getFieldValue(
int fieldOffsetIndex);
 
  395             : 
SSHLayer(data, dataLen, prevLayer, packet)
 
Definition: SSHLayer.h:390
size_t getHeaderLen() const override
Definition: SSHLayer.h:401
SSHEncryptedMessage(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: SSHLayer.h:394
std::string toString() const override
Definition: SSHLayer.h:186
size_t getHeaderLen() const override
std::string toString() const override
size_t getPaddingLength() const
std::string getMessageTypeStr() const
SSHHandshakeMessageType
An enum that represents SSH non-encrypted message types.
Definition: SSHLayer.h:190
@ SSH_MSG_KEX_DH_INIT
Diffie-Hellman Key Exchange Init message.
Definition: SSHLayer.h:196
@ SSH_MSG_UNKNOWN
Unknown message.
Definition: SSHLayer.h:206
@ SSH_MSG_KEX_DH_GEX_REPLY
"Diffie-Hellman Group Exchange Reply message
Definition: SSHLayer.h:202
@ SSH_MSG_KEX_DH_GEX_REQUEST
Diffie-Hellman Group Exchange Request message.
Definition: SSHLayer.h:204
@ SSH_MSG_NEW_KEYS
New Keys message.
Definition: SSHLayer.h:194
@ SSH_MSG_KEX_INIT
Key Exchange Init message.
Definition: SSHLayer.h:192
@ SSH_MSG_KEX_DH_REPLY
message
Definition: SSHLayer.h:198
@ SSH_MSG_KEX_DH_GEX_INIT
Diffie-Hellman Group Exchange Init message.
Definition: SSHLayer.h:200
uint8_t * getSSHHandshakeMessage() const
SSHHandshakeMessageType getMessageType() const
static SSHHandshakeMessage * tryParse(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
size_t getSSHHandshakeMessageLength() const
Definition: SSHLayer.h:130
size_t getHeaderLen() const override
Definition: SSHLayer.h:148
std::string getIdentificationMessage()
std::string toString() const override
static SSHIdentificationMessage * tryParse(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: SSHLayer.h:275
std::string getCompressionAlgorithmsClientToServer()
Definition: SSHLayer.h:341
std::string getCookieAsHexStream()
std::string getKeyExchangeAlgorithms()
Definition: SSHLayer.h:299
std::string getEncryptionAlgorithmsClientToServer()
Definition: SSHLayer.h:313
std::string getServerHostKeyAlgorithms()
Definition: SSHLayer.h:306
std::string getLanguagesClientToServer()
Definition: SSHLayer.h:355
std::string getCompressionAlgorithmsServerToClient()
Definition: SSHLayer.h:348
std::string getMacAlgorithmsClientToServer()
Definition: SSHLayer.h:327
std::string getMacAlgorithmsServerToClient()
Definition: SSHLayer.h:334
bool isFirstKexPacketFollows()
std::string getLanguagesServerToClient()
Definition: SSHLayer.h:363
std::string getEncryptionAlgorithmsServerToClient()
Definition: SSHLayer.h:320
SSHKeyExchangeInitMessage(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
Definition: SSHLayer.h:74
void computeCalculateFields() override
Does nothing for this layer.
Definition: SSHLayer.h:104
static SSHLayer * createSSHMessage(uint8_t *data, size_t dataLen, Layer *prevLayer, Packet *packet)
OsiModelLayer getOsiModelLayer() const override
Definition: SSHLayer.h:107
void parseNextLayer() override
static bool isSSHPort(uint16_t portSrc, uint16_t portDst)
Definition: SSHLayer.h:92
The main namespace for the PcapPlusPlus lib.
OsiModelLayer
An enum representing OSI model layers.
Definition: ProtocolType.h:225
@ OsiModelApplicationLayer
Application layer (layer 7)
Definition: ProtocolType.h:239
const ProtocolType SSH
SSH version 2 protocol.
Definition: ProtocolType.h:146
An internal struct representing the SSH handshake message header.
Definition: SSHLayer.h:248