Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A função BCryptImportKeyPair
Sintaxe
NTSTATUS BCryptImportKeyPair(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[in] ULONG dwFlags
);
Parâmetros
[in] hAlgorithm
O identificador do provedor de algoritmo para importar a chave. Esse identificador é obtido chamando a função
[in, out] hImportKey
Esse parâmetro não é usado no momento e deve ser NULL.
[in] pszBlobType
Uma cadeia de caracteres Unicode terminada em nulo que contém um identificador que especifica o tipo de BLOB contido no buffer pbInput. Esse valor pode ser um dos seguintes:
| Valor | Significado |
|---|---|
| BCRYPT_DH_PRIVATE_BLOB | O BLOB é um BLOB Diffie-Hellman par de chaves pública/privada. O buffer de pbInput deve conter uma estrutura de BCRYPT_DH_KEY_BLOB imediatamente seguida pelos dados de chave. |
| BCRYPT_DH_PUBLIC_BLOB | O BLOB é um blob de chave pública Diffie-Hellman . O buffer de pbInput deve conter uma estrutura de BCRYPT_DH_KEY_BLOB imediatamente seguida pelos dados de chave. |
| BCRYPT_DSA_PRIVATE_BLOB | O BLOB é um BLOB de par de chaves pública/privada da DSA. O buffer pbInput Windows 8: O suporte para BCRYPT_DSA_KEY_BLOB_V2 começa. |
| BCRYPT_DSA_PUBLIC_BLOB | O BLOB é um BLOB de chave pública DSA. O buffer pbInput Windows 8: O suporte para BCRYPT_DSA_KEY_BLOB_V2 começa. |
| BCRYPT_ECCPRIVATE_BLOB | O BLOB é um de criptografia de curva elíptica (ECC) de chave privada. O buffer pbInput deve conter uma estrutura BCRYPT_ECCKEY_BLOB imediatamente seguida pelos dados de chave. |
| BCRYPT_ECCPUBLIC_BLOB | O BLOB é uma chave pública ECC. O buffer pbInput deve conter uma estrutura BCRYPT_ECCKEY_BLOB imediatamente seguida pelos dados de chave. |
| BCRYPT_MLKEM_PUBLIC_BLOB | O BLOB é um BLOB ML-KEM que fornece importação e exportação de chaves de encapsulamento de ML-KEM codificadas em bytes padrão por FIPS 203. O buffer pbInput deve conter uma estrutura de BCRYPT_MLKEM_KEY_BLOB contendo a chave de encapsulamento KEM codificada por bytes, BCRYPT_MLKEM_PUBLIC_MAGIC e ML-KEM conjunto de parâmetros. |
| BCRYPT_MLKEM_PRIVATE_BLOB | O BLOB é um BLOB ML-KEM que fornece importação e exportação de chaves de descapsulação de ML-KEM codificadas em bytes padrão por FIPS 203. O buffer pbInput deve conter uma estrutura de BCRYPT_MLKEM_KEY_BLOB que contenha a chave de descapsulação KEM codificada por bytes, BCRYPT_MLKEM_PRIVATE_MAGIC e ML-KEM conjunto de parâmetros. |
| BCRYPT_MLKEM_PRIVATE_SEED_BLOB | O BLOB é um BLOB ML-KEM que fornece importação e exportação de sementes ML-KEM por FIPS 203. O buffer pbInput deve conter uma estrutura de BCRYPT_MLKEM_KEY_BLOB que contenha a semente KEM, BCRYPT_MLKEM_SEED_MAGIC e ML-KEM conjunto de parâmetros. |
| BCRYPT_PQDSA_PUBLIC_BLOB | O BLOB é um BLOB ML-DSA, SLH-DSA, LMS ou XMSS que fornece importação e exportação de chaves públicas de assinatura digital PQ por FIPS 204 e 205. O buffer pbInput deve conter uma estrutura de BCRYPT_PQDSA_KEY_BLOB que contenha o material da chave, a magia pública e o conjunto de parâmetros PQ. |
| BCRYPT_PQDSA_PRIVATE_BLOB | O BLOB é um BLOB ML-DSA, SLH-DSA, LMS ou XMSS que fornece importação e exportação de chaves privadas de assinatura digital PQ por FIPS 204 e 205. O buffer pbInput deve conter uma estrutura de BCRYPT_PQDSA_KEY_BLOB que contenha o material da chave, a magia privada e o conjunto de parâmetros PQ. |
| BCRYPT_PQDSA_PRIVATE_SEED_BLOB | O BLOB é um BLOB ML-DSA, SLH-DSA, LMS ou XMSS que fornece importação e exportação de sementes privadas de assinatura digital PQ por FIPS 204 e 205. O buffer pbInput deve conter uma estrutura de BCRYPT_PQDSA_KEY_BLOB que contenha o valor da semente, a magia da semente privada e o conjunto de parâmetros PQ. |
| BCRYPT_PRIVATE_KEY_BLOB | O BLOB é uma chave privada genérica de qualquer tipo. A chave privada não contém necessariamente a chave pública. O tipo de chave neste BLOB é determinado pelo membro Magic da estrutura BCRYPT_KEY_BLOB. |
| BCRYPT_PUBLIC_KEY_BLOB | O BLOB é uma chave pública genérica de qualquer tipo. O tipo de chave neste BLOB é determinado pelo membro Magic da estrutura BCRYPT_KEY_BLOB. |
| BCRYPT_RSAPRIVATE_BLOB | O BLOB é um BLOB de par de chaves pública/privada RSA. O buffer de pbInput |
| BCRYPT_RSAPUBLIC_BLOB | O BLOB é um BLOB de chave pública RSA. O buffer de pbInput |
| LEGACY_DH_PUBLIC_BLOB | O BLOB é um BLOB de chave pública Diffie-Hellman que foi exportado usando cryptoAPI. O provedor primitivo da Microsoft não dá suporte à importação desse tipo de BLOB. |
| LEGACY_DH_PRIVATE_BLOB | O BLOB é um blob de chave privada da versão 3 do |
| LEGACY_DSA_PRIVATE_BLOB | O BLOB é um BLOB de par de chaves pública/privada da DSA que foi exportado usando CryptoAPI. |
| LEGACY_DSA_PUBLIC_BLOB | O BLOB é um BLOB de chave pública DSA que foi exportado usando CryptoAPI. O provedor primitivo da Microsoft não dá suporte à importação desse tipo de BLOB. |
| LEGACY_DSA_V2_PRIVATE_BLOB | O BLOB é uma chave privada DSA versão 2 em um formulário que pode ser importado usando CryptoAPI. |
| LEGACY_RSAPRIVATE_BLOB | O BLOB é um BLOB de par de chaves pública/privada RSA que foi exportado usando CryptoAPI. |
| LEGACY_RSAPUBLIC_BLOB | O BLOB é um BLOB de chave pública RSA que foi exportado usando CryptoAPI. O provedor primitivo da Microsoft não dá suporte à importação desse tipo de BLOB. |
[out] phKey
Um ponteiro para um BCRYPT_KEY_HANDLE que recebe o identificador da chave importada. Esse identificador é usado em funções subsequentes que exigem uma chave, como BCryptSignHash. Esse identificador deve ser liberado quando não for mais necessário, passando-o para a função BCryptDestroyKey
[in] pbInput
O endereço de um buffer que contém a chave BLOB importar. O parâmetro cbInput contém o tamanho desse buffer. O parâmetro pszBlobType especifica o tipo de blob de chave que esse buffer contém.
[in] cbInput
O tamanho, em bytes, do buffer de de
[in] dwFlags
Um conjunto de sinalizadores que modificam o comportamento dessa função. Isso pode ser zero ou o valor a seguir.
| Valor | Significado |
|---|---|
| BCRYPT_NO_KEY_VALIDATION | Opte por qualquer auto-teste fips aplicável. |
Valor de retorno
Retorna um código de status que indica o êxito ou a falha da função.
Os códigos de retorno possíveis incluem, mas não se limitam a:
| Código de retorno | Descrição |
|---|---|
| STATUS_SUCCESS | A função foi bem-sucedida. |
| STATUS_INVALID_BUFFER_SIZE | Se o buffer pbInput não for do tamanho correto para a combinação do conjunto de parâmetros ML-KEM associado ao hAlgorithm e para o tipo de blob que está sendo importado. |
| STATUS_INVALID_HANDLE | O identificador de algoritmo no parâmetro hAlgorithm |
| STATUS_INVALID_PARAMETER | Um ou mais parâmetros não são válidos. |
| STATUS_NOT_SUPPORTED | O provedor de algoritmo especificado pelo parâmetro |
Observações
Dependendo de quais modos de processador um provedor dá suporte, BCryptImportKeyPair pode ser chamado do modo de usuário ou do modo kernel. Os chamadores do modo kernel podem ser executados em PASSIVE_LEVELIRQL ou DISPATCH_LEVEL IRQL. Se o nível IRQL atual for
O chamador deve liberar hKey com BCryptDestroyKey quando a chave não estiver mais sendo usada.
Para chamar essa função no modo kernel, use Cng.lib, que faz parte do DDK (Driver Development Kit).
Windows Server 2008 e Windows Vista: Para chamar essa função no modo kernel, use Ksecdd.lib.
Requisitos
| Requisito | Valor |
|---|---|
| de cliente com suporte mínimo | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
| servidor com suporte mínimo | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
| da Plataforma de Destino |
Windows |
| cabeçalho | bcrypt.h |
| biblioteca | Bcrypt.lib |
| de DLL |
Bcrypt.dll |
Consulte também
BCryptExportKey