NCryptSignHash com Provedor de armazenamento de chaves (KSP)
A função NCryptSignHash cria uma assinatura de um valor de hash.
Parâmetros
-
hKey[in] -
O identificador da chave a ser usada para assinar o hash.
pPaddingInfo[in, optional]-
Um ponteiro para uma estrutura contendo informações de preenchimento. O tipo de estrutura depende do valor de
dwFlags. Use esse parâmetro somente com chaves assimétricas; defina como NULL para outros tipos de chave. pbHashValue[in]-
Um ponteiro para um buffer contendo o valor de hash a ser assinado. Especifique o tamanho do buffer usando
cbHashValue. cbHashValue[in]-
O tamanho em bytes do buffer atual de
pbHashValue. pbSignature[out]-
O endereço de um buffer para armazenar a assinatura. Especifique o tamanho do buffer usando
cbSignature.Para determinar o tamanho do buffer necessário, defina esse parâmetro como NULL. A função armazena o tamanho necessário (em bytes) no local apontado por
pcbResult. cbSignature[in]-
O tamanho em bytes do buffer
pbSignature. A função ignora esse parâmetro sepbSignaturefor NULL. pcbResult[out]-
Um ponteiro para uma variável DWORD que armazena o número de bytes copiados para o buffer
pbSignature.Se
pbSignaturefor NULL, isso armazenará o tamanho necessário, em bytes. dwFlags[in]-
Sinalizadores para modificar o comportamento da função. Os sinalizadores permitidos dependem do seu tipo de chave. Use um destes valores:
Valor Significado BCRYPT_PAD_PKCS1
Usa o esquema de preenchimento PKCS1. Defina
pPaddingInfopara apontar para uma estruturaBCRYPT_PKCS1_PADDING_INFO.BCRYPT_PAD_PSS
Usa o esquema de preenchimento do Probabilistic Signature Scheme (PSS). Defina o parâmetro
pPaddingInfopara apontar para uma estruturaBCRYPT_PSS_PADDING_INFO.NCRYPT_SILENT_FLAG
Esse sinalizador não tem efeito.
Valor de retorno
A função retorna um código de status para indicar êxito ou falha.
Os códigos de retorno comuns incluem:
| Código de retorno | Descrição |
|---|---|
|
ERROR_SUCCESS |
A operação foi concluída com êxito. |
|
NTE_INVALID_PARAMETER |
Um ou mais parâmetros não são válidos. |
|
NTE_FAIL |
A operação não foi concluída. |
|
NTE_INVALID_HANDLE |
O identificador em |
|
NTE_BAD_FLAGS |
O parâmetro |
|
NTE_BUFFER_TOO_SMALL |
O parâmetro |
|
NTE_BAD_KEY_STATE |
O estado da chave não é válido. |
|
NTE_INTERNAL_ERROR |
Ocorreu um erro interno ao assinar o hash. |