Função BCryptImportKey (bcrypt.h)
A função BCryptImportKey importa uma chave simétrica de um BLOB de chave. A função BCryptImportKeyPair é usada para importar um par de chaves pública/privada.
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 algoritmos para importar a chave. Esse identificador é obtido chamando a função BCryptOpenAlgorithmProvider .
[in, optional] hImportKey
O identificador da chave de criptografia de chave necessária para desencapsular 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 por 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. |
|
Importar uma chave simétrica de um BLOB de dados. O parâmetro pbInput é um ponteiro para uma estrutura 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 transferência entre processos 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 contém o tamanho desse buffer. O tamanho necessário desse buffer pode ser obtido chamando a função BCryptGetProperty para obter a propriedade BCRYPT_OBJECT_LENGTH . Isso fornecerá o tamanho do objeto de chave para o algoritmo especificado.
Essa memória só poderá ser liberada depois que o identificador de chave phKey for destruído.
[in] cbKeyObject
O tamanho, em bytes, do buffer 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 chave BLOB que esse buffer contém.
[in] cbInput
O tamanho, em bytes, do buffer pbInput .
[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.
Retornar valor
Retorna um código 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 não é válido. |
|
Um ou mais dos parâmetros não são válidos. |
|
O provedor de algoritmo especificado pelo parâmetro hAlgorithm não dá suporte ao tipo BLOB especificado pelo parâmetro pszBlobType . |
Comentários
Dependendo de quais modos de processador um provedor dá suporte, BCryptImportKey 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 DISPATCH_LEVEL, o identificador fornecido no parâmetro hAlgorithm deverá ter sido aberto usando o sinalizador BCRYPT_PROV_DISPATCH e quaisquer ponteiros passados para a função BCryptImportKey deverão se referir à memória nãopagada (ou bloqueada).
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 |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | bcrypt.h |
Biblioteca | Bcrypt.lib |
DLL | Bcrypt.dll |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de