SSL数据包格式 - OpenSSL?

时间:2017-12-07 12:48:56

标签: c++ ssl openssl

我使用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个字节。 Example data packet

在握手包中,我看到标题不同,长度位于不同的位置。 Example handshake packet

我的问题是:由于我无法在OpenSSL文档中找到这些信息,OpenSSL是否定义了用于描述数据和握手记录的常量'标题,以便我不必使用硬编码的数字访问它们,例如

int headerLenght = 13 // bytes
read(11) // discard
uint16 sslPacketLength = read(2)
...

0 个答案:

没有答案