Função CryptGetKeyParam (wincrypt.h)
Sintaxe
BOOL CryptGetKeyParam(
[in] HCRYPTKEY hKey,
[in] DWORD dwParam,
[out] BYTE *pbData,
[in, out] DWORD *pdwDataLen,
[in] DWORD dwFlags
);
Parâmetros
[in] hKey
O identificador da chave que está sendo consultada.
[in] dwParam
Especifica o tipo de consulta que está sendo feita.
Para todos os tipos de chave, esse parâmetro pode conter um dos valores a seguir.
Valor | Significado |
---|---|
|
Recupere o algoritmo de chave. O parâmetro pbData é um ponteiro para um valor ALG_ID que recebe o identificador do algoritmo especificado quando a chave foi criada.
Quando AT_KEYEXCHANGE ou AT_SIGNATURE é especificado para o parâmetro Argel da função CryptGenKey , os identificadores de algoritmo usados para gerar a chave dependem do provedor usado. Para obter mais informações, consulte ALG_ID. |
|
Se uma chave de sessão for especificada pelo parâmetro hKey , recupere o comprimento do bloco da codificação da chave. O parâmetro pbData é um ponteiro para um valor DWORD que recebe o comprimento do bloco, em bits. Para criptografias de fluxo, esse valor é sempre zero.
Se um par de chaves pública/privada for especificado por hKey, recupere a granularidade de criptografia do par de chaves. O parâmetro pbData é um ponteiro para um valor DWORD que recebe a granularidade de criptografia, em bits. Por exemplo, o Provedor Criptográfico base da Microsoft gera pares de chaves RSA de 512 bits, portanto, um valor de 512 é retornado para essas chaves. Se o algoritmo de chave pública não der suporte à criptografia, o valor recuperado será indefinido. |
|
pbData é o endereço de um buffer que recebe o certificado X.509 que foi codificado usando Distinguished Encoding Rules (DER). A chave pública no certificado deve corresponder à assinatura correspondente ou à chave de troca. |
|
Este valor não é usado. |
|
Recupere o comprimento real da chave. O parâmetro pbData é um ponteiro para um valor DWORD que recebe o comprimento da chave, em bits. KP_KEYLEN pode ser usado para obter o comprimento de qualquer tipo de chave. Os CSPs ( provedores de serviços criptográficos ) da Microsoft retornam um comprimento de chave de 64 bits para CALG_DES, 128 bits para CALG_3DES_112 e 192 bits para CALG_3DES. Esses comprimentos são diferentes dos comprimentos retornados quando você está enumerando algoritmos com o valor dwParam da função CryptGetProvParam definida como PP_ENUMALGS. O comprimento retornado por essa chamada é o tamanho real da chave, incluindo os bits de paridade incluídos na chave.
Os CSPs da Microsoft que dão suporte ao CALG_CYLINK_MEKALG_ID retornam 64 bits para esse algoritmo. CALG_CYLINK_MEK é uma chave de 40 bits, mas tem paridade e bits de chave zero para tornar o comprimento da chave 64 bits. |
|
Recupere o valor de sal da chave. O parâmetro pbData é um ponteiro para uma matriz BYTE que recebe o valor de sal na forma little-endian . O tamanho do valor de sal varia dependendo do CSP e do algoritmo que está sendo usado. Os valores de sal não se aplicam a pares de chaves públicas/privadas. |
|
Recupere as permissões de chave. O parâmetro pbData é um ponteiro para um valor DWORD que recebe os sinalizadores de permissão para a chave.
Os identificadores de permissão a seguir estão definidos no momento. As permissões de chave podem ser zero ou uma combinação de um ou mais dos valores a seguir.
|
Se uma chave DSS ( Digital Signature Standard ) for especificada pelo parâmetro hKey , o valor dwParam também poderá ser definido como um dos valores a seguir.
Se uma chave de sessãode criptografia de bloco for especificada pelo parâmetro hKey, o valor dwParam também poderá ser definido como um dos valores a seguir.
Valor | Significado |
---|---|
|
Recupere o comprimento efetivo da chave de uma chave RC2. O parâmetro pbData é um ponteiro para um valor DWORD que recebe o comprimento efetivo da chave. |
|
Recupere o vetor de inicialização da chave. O parâmetro pbData é um ponteiro para uma matriz BYTE que recebe o vetor de inicialização. O tamanho dessa matriz é o tamanho do bloco, em bytes. Por exemplo, se o comprimento do bloco for de 64 bits, o vetor de inicialização consistirá em 8 bytes. |
|
Recupere o modo de preenchimento. O parâmetro pbData é um ponteiro para um valor DWORD que recebe um identificador numérico que identifica o método de preenchimento usado pela criptografia. Esse pode ser um dos valores a seguir.
|
|
Recupere o modo de criptografia. O parâmetro pbData é um ponteiro para um valor DWORD que recebe um identificador de modo de criptografia. Para obter mais informações sobre modos de criptografia, consulte Criptografia e descriptografia de dados.
Os seguintes identificadores do modo de criptografia estão definidos no momento.
|
|
Recupere o número de bits a serem alimentados novamente. O parâmetro pbData é um ponteiro para um valor DWORD que recebe o número de bits processados por ciclo quando os modos de criptografia OFB ou CFB são usados. |
Se um algoritmo Diffie-Hellman ou uma chave DSA ( Algoritmo de Assinatura Digital ) for especificado por hKey, o valor dwParam também poderá ser definido como o valor a seguir.
Valor | Significado |
---|---|
|
Verifica os parâmetros de um algoritmo de Diffie-Hellman ou chave DSA. O parâmetro pbData não é usado e o valor apontado por pdwDataLen recebe zero.
Essa função retornará um valor diferente de zero se os parâmetros de chave forem válidos ou zero caso contrário. |
|
Este valor não é usado.
Windows Vista, Windows Server 2003 e Windows XP: Recupere o valor do contrato secreto de uma chave de algoritmo Diffie-Hellman importada do tipo CALG_AGREEDKEY_ANY. O parâmetro pbData é o endereço de um buffer que recebe o valor do contrato secreto, no formato little-endian. Esse buffer deve ter o mesmo comprimento que a chave. O parâmetro dwFlags deve ser definido como 0xF42A19B6. Essa propriedade só pode ser recuperada por um thread em execução na conta do sistema local. Essa propriedade está disponível para uso nos sistemas operacionais listados acima. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. |
Se um certificado for especificado por hKey, o valor dwParam também poderá ser definido como o valor a seguir.
[out] pbData
Um ponteiro para um buffer que recebe os dados. A forma desses dados depende do valor de dwParam.
Se o tamanho desse buffer não for conhecido, o tamanho necessário poderá ser recuperado em tempo de execução passando NULL para esse parâmetro e definindo o valor apontado por pdwDataLen como zero. Essa função colocará o tamanho necessário do buffer, em bytes, no valor apontado por pdwDataLen. Para obter mais informações, consulte Recuperando dados de comprimento desconhecido.
[in, out] pdwDataLen
Um ponteiro para um valor DWORD que, na entrada, contém o tamanho, em bytes, do buffer apontado pelo parâmetro pbData . Quando a função retorna, o valor DWORD contém o número de bytes armazenados no buffer.
[in] dwFlags
Esse parâmetro é reservado para uso futuro e deve ser definido como zero.
Retornar valor
Se a função for bem-sucedida, a função retornará diferente de zero.
Se a função falhar, ela retornará zero. Para obter informações de erro estendidas, chame GetLastError.
Os códigos de erro precedidos por "NTE" são gerados pelo CSP específico que está sendo usado. Alguns códigos de erro possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
Um dos parâmetros especifica um identificador que não é válido. |
|
Um dos parâmetros contém um valor que não é válido. Geralmente, esse é um ponteiro que não é válido. |
|
Se o buffer especificado pelo parâmetro pbData não for grande o suficiente para manter os dados retornados, a função definirá o código ERROR_MORE_DATA e armazenará o tamanho do buffer necessário, em bytes, na variável apontada por pdwDataLen. |
|
O parâmetro dwFlags é diferente de zero. |
|
A chave especificada pelo parâmetro hKey não é válida. |
|
O parâmetro dwParam especifica um número de valor desconhecido. |
|
O contexto CSP especificado quando a chave foi criada não pode ser encontrado. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wincrypt.h |
Biblioteca | Advapi32.lib |
DLL | Advapi32.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