Table of Contents

QUIC_KEYING_MATERIAL_CONFIG structure

The structure used to configure a call to ConnectionExportKeyingMaterial.

Note - This API is in preview. It should be considered unstable and can be subject to breaking changes.

Syntax

typedef struct QUIC_KEYING_MATERIAL_CONFIG {
    _Field_z_ const char* Label;
    uint32_t ContextLength;
    _Field_size_bytes_opt_(ContextLength) const uint8_t* Context;
    uint32_t OutputLength;
} QUIC_KEYING_MATERIAL_CONFIG;

Members

Label

A non-NULL, null-terminated ASCII string that disambiguates the exported keying material between different uses. Both peers must use the same label to derive the same material. See RFC 5705 for guidance on choosing a label.

ContextLength

The length, in bytes, of the buffer pointed to by Context. May be 0.

Context

An optional pointer to a ContextLength-byte context buffer that is mixed into the derivation, further scoping the exported material. May be NULL, in which case ContextLength must be 0.

OutputLength

The number of bytes of keying material to export. Must be non-zero. The Output buffer passed to ConnectionExportKeyingMaterial must be at least this large.

Remarks

Both peers of a connection derive identical keying material for the same Label and Context. Different labels or contexts produce independent, unrelated material.

See Also

ConnectionExportKeyingMaterial