BCRYPT_PQDSA_KEY_BLOB estrutura

Note

Algumas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui. As funcionalidades compostas descritas neste tópico estão disponíveis em versões pré-lançamento do Windows Insider Preview.

Essa estrutura é usada para importar e exportar chaves para algoritmos de assinatura digital pós-quântica (PQDSA). A estrutura BCRYPT_PQDSA_KEY_BLOB é usada como cabeçalho para um algoritmo de Assinatura Digital Post-Quântica (PQDSA) de chave pública (chave de encapsulamento codificada em bytes) ou BLOB de chave privada na memória.

Syntax

typedef struct _BCRYPT_PQDSA_KEY_BLOB {
  ULONG dwMagic;
  ULONG cbParameterSet;                                   // Byte size of parameterSet[]
  ULONG cbKey;                                            // Byte size of key[]
  // WCHAR parameterSet[cbParameterSet / sizeof(WCHAR)];  // Including \0 terminator
  // BYTE key[cbKey];                                     // Key material
} BCRYPT_PQDSA_KEY_BLOB, *PBCRYPT_PQDSA_KEY_BLOB;

Fields

dwMagic

O campo dwMagic é um valor de 4 bytes que indica o formato da chave utilizada. São definidos os seguintes valores:

Value Meaning
BCRYPT_MLDSA_PUBLIC_MAGIC0x4B505344 A estrutura representa uma chave pública.
BCRYPT_MLDSA_PRIVATE_MAGIC0x4B535344 A estrutura representa uma chave privada expandida.
BCRYPT_MLDSA_PRIVATE_SEED_MAGIC0x53535344 A estrutura representa uma semente privada.
BCRYPT_COMPOSITE_MLDSA_PUBLIC_MAGIC0x4B504D43 A estrutura representa uma chave pública.
BCRYPT_COMPOSITE_MLDSA_PRIVATE_MAGIC0x4B534D43 A estrutura representa uma chave privada.

cbParameterSet

O comprimento, em bytes, do buffer parameterSet diretamente após a estrutura. Esse buffer contém uma cadeia de caracteres Unicode terminada em nulo que identifica o conjunto de parâmetros da chave. Os seguintes valores são suportados atualmente:

parameterSet Meaning
BCRYPT_MLDSA_PARAMETER_SET_44L"44" ML-DSA-44, categoria de segurança 2.
BCRYPT_MLDSA_PARAMETER_SET_65L"65" ML-DSA-65, categoria de segurança 3.
BCRYPT_MLDSA_PARAMETER_SET_87L"87" ML-DSA-87, categoria de segurança 5.
BCRYPT_COMPOSITE_MLDSA_PARAMETER_SET_44_ECDSA_P256_SHA256L"44-ECDSA-P256-SHA256" ML-DSA-44 e ECDSA P256 compostos
BCRYPT_COMPOSITE_MLDSA_PARAMETER_SET_65_ECDSA_P256_SHA512L"65-ECDSA-P256-SHA512" ML-DSA-65 composto e ECDSA P256
BCRYPT_COMPOSITE_MLDSA_PARAMETER_SET_65_ECDSA_P384_SHA512L"65-ECDSA-P384-SHA512" ML-DSA-65 composto e ECDSA P384
BCRYPT_COMPOSITE_MLDSA_PARAMETER_SET_87_ECDSA_P384_SHA512L"87-ECDSA-P384-SHA512" ML-DSA-87 e ECDSA P384 compostos

cbKey

O comprimento, em bytes, da chave de buffer imediatamente após o parámetro Set. Esse tamanho é estático e depende do formato da chave e do conjunto de parâmetros em uso.

Remarks

Os consumidores de algoritmos de Assinatura Digital Pós-Quântica usarão o mesmo subconjunto da API BCrypt que os Algoritmos de Assinatura Digital existentes (não Pós-Quantum) suportados pelo CNG para executar as operações suportadas pelos algoritmos. São eles:

Requirements

Requirement Value
Cliente mínimo suportado Windows 11 24H2: Início do suporte para ML-DSA. [Apenas aplicações de ambiente de trabalho]
Servidor mínimo suportado Windows Server 2025: Início do suporte para ML-DSA. [Apenas aplicações de ambiente de trabalho]
Header bcrypt.h