Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Note
Certaines informations concernent un produit de préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici. Les fonctionnalités composites décrites dans cette rubrique sont disponibles dans les versions préliminaires du Windows Insider Preview.
La structure BCRYPT_MLKEM_KEY_BLOB est utilisée comme en-tête pour une clé publique ML-KEM (clé d’encapsulation codée en octets) ou blob de clé privée en mémoire.
Syntax
typedef struct _BCRYPT_MLKEM_KEY_BLOB {
ULONG dwMagic;
ULONG cbParameterSet; // Byte size of parameterSet[]
ULONG cbKey; // Byte size of key[]
// WCHAR parameterSet[cbParameterSet / sizeof(WCHAR)]; // Including \0-terminated
// BYTE key[cbKey]; // Key material
} BCRYPT_MLKEM_KEY_BLOB, *PBCRYPT_MLKEM_KEY_BLOB;
typedef struct _BCRYPT_COMPOSITE_MLKEM_KEY_BLOB {
ULONG dwMagic;
ULONG cbParameterSet; // Byte size of parameterSet[]
ULONG cbKey; // Byte size of key[]
// WCHAR parameterSet[cbParameterSet / sizeof(WCHAR)]; // Including \0-terminated
// BYTE key[cbKey]; // Key material
} BCRYPT_COMPOSITE_MLKEM_KEY_BLOB, *PBCRYPT_COMPOSITE_MLKEM_KEY_BLOB;
Fields
dwMagic
Le champ dwMagic est une valeur de 4 octets qui indique le format de la clé utilisée. Les valeurs suivantes sont définies :
| Value | Meaning |
|---|---|
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D |
La structure représente une clé publique. |
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D |
La structure représente une clé privée développée. |
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D |
La structure représente une valeur initiale privée. |
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 |
La structure représente une clé publique. |
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 |
La structure représente une clé privée. |
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 |
La structure représente une valeur initiale privée. Référence : IRTF |
cbParameterSet
Longueur, en octets, du parameterSet de mémoire tampon directement après le struct. Cette mémoire tampon contient une chaîne Unicode terminée par null qui identifie le jeu de paramètres de la clé. Les valeurs suivantes sont actuellement prises en charge :
| parameterSet | Meaning |
|---|---|
BCRYPT_MLKEM_PARAMETER_SET_512L"512" |
ML-KEM-512, catégorie de sécurité 1. |
BCRYPT_MLKEM_PARAMETER_SET_768L"768" |
ML-KEM-768, catégorie de sécurité 3. |
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" |
ML-KEM-1024, catégorie de sécurité 5. |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" |
ML-KEM-768 composite et ECDH P256 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" |
ML-KEM-768 composite et courbe25519 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" |
COMPOSITE ML-KEM-1024 et ECDH P384 |
cbKey
Longueur, en octets, de la clé de mémoire tampon directement après parameterSet. Cette taille est statique et dépend du format de clé et du jeu de paramètres en cours d’utilisation.
Remarks
BCRYPT_MLKEM_PRIVATE_BLOB (également alias en tant que BCRYPT_MLKEM_DECAPSULATION_BLOB) prend en charge l’importation et l’exportation de clés de décapsulation ML-KEM codées en octets standard par FIPS 203. L’objet blob a une valeur BCRYPT_MLKEM_PRIVATE_MAGICdwMagic et le champ clé contient la clé encodée par octets.
BCRYPT_MLKEM_PUBLIC_BLOB (également alias comme BCRYPT_MLKEM_ENCAPSULATION_BLOB) prend en charge l’importation et l’exportation de clés d’encapsulation codées en octets standard ML-KEM par FIPS 203. L’objet blob a une valeur BCRYPT_MLKEM_PUBLIC_MAGICdwMagic et le champ clé contient la clé encodée par octets.
BCRYPT_MLKEM_PRIVATE_SEED_BLOB prend en charge l’importation et l’exportation de graines ML-KEM. L’objet blob a une valeur BCRYPT_MLKEM_PRIVATE_SEED_MAGICdwMagic et le champ de clé contient la valeur initiale KEM (définie comme concaténation de 64 octets par d || zFIPS 203), donc cbKey est toujours toujours64.
Les tailles d’octets des clés codées en octets sont disponibles dans le tableau 8 de la section 8 FIPS 203 . De nombreux appelants peuvent plutôt interroger dynamiquement les tailles d’objets blob requises à l’aide de BCryptExportKey avec NULLpbOutput.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB prend en charge l’importation et l’exportation de clés privées codées en octets standardML-KEM par ml-KEM composite PQ. L’objet blob a une valeur BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGICdwMagic et le champ clé contient la clé encodée par octets.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB prend en charge l’importation et l’exportation de clés publiquesML-KEM codées en octets standard par ML-KEM composite PQ. L’objet blob a une valeur BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGICdwMagic et le champ clé contient la clé encodée par octets.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB prend en charge l’importation et l’exportation de graines compositesML-KEM. L’objet blob a une valeur BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGICdwMagic et le champ de clé contient le composite IRTF de 32 octets-ML-KEM valeur initiale par keMs hybrides CFRG Béton, donc cbKey est actuellement toujours.32
Requirements
| Requirement | Value |
|---|---|
| Client minimum requis | Windows 11 24H2 : Prise en charge de ML-KEM commence. [Applications de bureau uniquement] |
| Serveur minimal pris en charge | Windows Server 2025 : Prise en charge de ML-KEM commence. [Applications de bureau uniquement] |
| Header | bcrypt.h |