NCryptSignHash com Provedor de armazenamento de chaves (KSP) - AWS CloudHSM

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 se pbSignature for NULL.

pcbResult [out]

Um ponteiro para uma variável DWORD que armazena o número de bytes copiados para o buffer pbSignature.

Se pbSignature for 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 pPaddingInfo para apontar para uma estrutura BCRYPT_PKCS1_PADDING_INFO.

BCRYPT_PAD_PSS

Usa o esquema de preenchimento do Probabilistic Signature Scheme (PSS). Defina o parâmetro pPaddingInfo para apontar para uma estrutura BCRYPT_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 hKey não é válido.

NTE_BAD_FLAGS

O parâmetro dwFlags contém um valor inválido.

NTE_BUFFER_TOO_SMALL

O parâmetro pcbOutput é muito pequeno para valores de retorno.

NTE_BAD_KEY_STATE

O estado da chave não é válido.

NTE_INTERNAL_ERROR

Ocorreu um erro interno ao assinar o hash.