Função BCryptImportKey (bcrypt.h)
A função BCryptImportKey
Sintaxe
NTSTATUS BCryptImportKey(
[in] BCRYPT_ALG_HANDLE hAlgorithm,
[in, optional] BCRYPT_KEY_HANDLE hImportKey,
[in] LPCWSTR pszBlobType,
[out] BCRYPT_KEY_HANDLE *phKey,
[out, optional] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[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, optional] hImportKey
O identificador da chave de criptografia de chave necessária para desembrulhar o BLOB de chave no parâmetro pbInput
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 contido no buffer pbInput. Esse pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
Importe uma chave simétrica de um BLOB de chave encapsulada com chave AES. O parâmetro hImportKey deve referenciar um ponteiro de BCRYPT_KEY_HANDLE válido para a chave de criptografia de chave.
Windows Server 2008 e Windows Vista: não há suporte para esse tipo de BLOB. |
|
Importe uma chave simétrica de um BLOB de dados. O parâmetro pbInput é um ponteiro para uma estrutura de BCRYPT_KEY_DATA_BLOB_HEADER imediatamente seguida pelo BLOB de chave. |
|
Importe um BLOB de chave simétrica em um formato específico para um único CSP. BLOBs opacos não são transferíveis e devem ser importados usando o mesmo CSP que gerou o BLOB. 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. |
[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 BCryptEncrypt. Esse identificador deve ser liberado quando não for mais necessário, passando-o para a função BCryptDestroyKey
[out, optional] pbKeyObject
Um ponteiro para um buffer que recebe o objeto de chave importado. O parâmetro cbKeyObject
Essa memória só pode ser liberada depois que o phKey identificador de chave for destruído.
[in] cbKeyObject
O tamanho, em bytes, do buffer de pbKeyObject
[in] pbInput
O endereço de um buffer que contém o BLOB de chave a ser importado. 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. Nenhum sinalizador está definido no momento, portanto, esse parâmetro deve ser zero.
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 do objeto de chave especificado pelo parâmetro cbKeyObject não é grande o suficiente para manter o objeto de chave. |
|
O identificador de algoritmo no parâmetro hAlgorithm |
|
Um ou mais parâmetros não são válidos. |
|
O provedor de algoritmo especificado pelo parâmetro |
Observações
Dependendo de quais modos de processador um provedor dá suporte, BCryptImportKey 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 |
Consulte também
BCryptExportKey