我使用OpenSSL建立安全连接。我想检查enctypted数据包的标头,以便在实际解密之前访问数据包的长度。 我使用DTLSv1_method(),我看到记录的标准描述(根据https://tools.ietf.org/html/rfc4347)应该是:
struct {
ContentType type;
ProtocolVersion version;
uint16 epoch; // New field
uint48 sequence_number; // New field
uint16 length;
select (CipherSpec.cipher_type) {
case block: GenericBlockCipher;
} fragment;
} DTLSCiphertext;
因此,在图片中的示例包中,我能够寻址标题(青色)并访问长度(红色),在这种情况下是48个字节。
在握手包中,我看到标题不同,长度位于不同的位置。
我的问题是:由于我无法在OpenSSL文档中找到这些信息,OpenSSL是否定义了用于描述数据和握手记录的常量'标题,以便我不必使用硬编码的数字访问它们,例如
int headerLenght = 13 // bytes
read(11) // discard
uint16 sslPacketLength = read(2)
...