Função BCryptExportKey (bcrypt.h)
A função
Sintaxe
NTSTATUS BCryptExportKey(
[in] BCRYPT_KEY_HANDLE hKey,
[in] BCRYPT_KEY_HANDLE hExportKey,
[in] LPCWSTR pszBlobType,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Parâmetros
[in] hKey
O identificador da chave a ser exportada.
[in] hExportKey
O identificador da chave com a qual encapsular a chave exportada. Use esse parâmetro ao exportar BLOBs do tipo BCRYPT_AES_WRAP_KEY_BLOB; caso contrário, defina-o como NULL.
Windows Server 2008 e Windows Vista: Esse parâmetro não é usado e deve ser definido como NULL.
[in] pszBlobType
Uma cadeia de caracteres Unicode terminada em nulo que contém um identificador que especifica o tipo de BLOB a ser exportado. Esse pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
Exportar uma chave encapsulada de chave AES. O parâmetro hExportKey deve referenciar um ponteiro de BCRYPT_KEY_HANDLE válido para a chave de criptografia de chave e a chave representada pelo parâmetro hKey deve ter um múltiplo de 8 bytes de comprimento.
Windows Server 2008 e Windows Vista: não há suporte para esse tipo de BLOB. |
|
Exportar um par de chaves público/privado Diffie-Hellman . O buffer pbOutput |
|
Exportar uma chave pública Diffie-Hellman . O buffer pbOutput |
|
Exportar um par de chaves públicas/privadas da DSA. O buffer pbOutput Windows 8: começa o suporte para BCRYPT_DSA_KEY_BLOB_V2. |
|
Exportar uma chave pública DSA. O buffer pbOutput Windows 8: começa o suporte para BCRYPT_DSA_KEY_BLOB_V2. |
|
Exportar uma de criptografia de curva elíptica (ECC) chave privada. O buffer pbOutput |
|
Exportar uma chave pública ECC. O buffer pbOutput |
|
Exportar uma chave simétrica para um BLOB de dados. O buffer pbOutput |
|
Exporte uma chave simétrica em um formato específico para um único do provedor de serviços criptográficos (CSP). BLOBs opacos não são transferíveis e devem ser importados usando o mesmo CSP que gerou o BLOB. Os BLOBs opacos destinam-se apenas a serem usados para a transferência interprocessa de chaves e não são adequados para serem persistidos e lidos entre versões de um provedor. |
|
Exportar uma chave pública genérica de qualquer tipo. O tipo de chave neste BLOB é determinado pelo membro Magic da estrutura BCRYPT_KEY_BLOB. |
|
Exportar 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. |
|
Exportar um par de chaves pública/privada RSA completa. O buffer pbOutput |
|
Exportar um par de chaves pública/privada RSA. O buffer pbOutput |
|
Exportar uma chave pública RSA. O buffer pbOutput |
|
Exporte um de BLOB de chave privada da versão 3 do |
|
Exporte uma Diffie-Hellman de blo b de chave pública da versão 3 herdada que contém uma chave pública Diffie-Hellman que pode ser importada usando CryptoAPI. |
|
Exporte um par de chaves públicas/privadas DSA em um formulário que pode ser importado usando CryptoAPI. |
|
Exporte uma chave pública DSA em um formulário que pode ser importado usando CryptoAPI. |
|
Exporte uma chave privada DSA versão 2 em um formulário que pode ser importado usando CryptoAPI. |
|
Exporte um par de chaves pública/privada RSA em um formulário que pode ser importado usando CryptoAPI. |
|
Exporte uma chave pública RSA em um formulário que pode ser importado usando CryptoAPI. |
[out] pbOutput
O endereço de um buffer que recebe o BLOB de chave. O parâmetro cbOutput contém o tamanho desse buffer. Se esse parâmetro for NULL, essa função colocará o tamanho necessário, em bytes, no ULONG apontado pelo parâmetro pcbResult.
[in] cbOutput
Contém o tamanho, em bytes, do buffer de de
[out] pcbResult
Um ponteiro para um
[in] dwFlags
Um conjunto de sinalizadores que modificam o comportamento dessa função. Nenhum sinalizador é definido para essa função.
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, o seguinte.
Código de retorno | Descrição |
---|---|
|
A função foi bem-sucedida. |
|
O tamanho especificado pelo parâmetro cbOutput não é grande o suficiente para manter o texto criptografado. |
|
O identificador de chave no parâmetro hKey não é válido. |
|
Um ou mais parâmetros não são válidos. |
|
Não há suporte para o tipo BLOB especificado pelo provedor. |
Observações
Dependendo de quais modos de processador um provedor dá suporte, BCryptExportKey podem ser chamados 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
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 |