Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A função NCryptSignHash cria uma assinatura de um valor de hash.
Sintaxe
SECURITY_STATUS NCryptSignHash(
[in] NCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PBYTE pbHashValue,
[in] DWORD cbHashValue,
[out] PBYTE pbSignature,
[in] DWORD cbSignature,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Parâmetros
[in] hKey
O identificador da chave a ser usada para assinar o hash.
[in, optional] pPaddingInfo
Um ponteiro para uma estrutura que contém informações de preenchimento. O tipo real de estrutura a que esse parâmetro aponta depende do valor do parâmetro dwFlags . Esse parâmetro é usado apenas com chaves assimétricas e deve ser NULL de outra forma.
[in] pbHashValue
Um ponteiro para um buffer que contém o valor de hash a ser assinado. O parâmetro cbInput contém o tamanho desse buffer.
[in] cbHashValue
O número de bytes no buffer pbHashValue a ser assinado.
[out] pbSignature
O endereço de um buffer para receber a assinatura produzida por essa função. O parâmetro cbSignature contém o tamanho desse buffer.
Se esse parâmetro for NULL, essa função calculará o tamanho necessário para a assinatura e retornará o tamanho no local apontado pelo parâmetro pcbResult .
[in] cbSignature
O tamanho, em bytes, do buffer pbSignature . Esse parâmetro será ignorado se o parâmetro pbSignature for NULL.
[out] pcbResult
Um ponteiro para uma variável DWORD que recebe o número de bytes copiados para o buffer pbSignature .
Se pbSignature for NULL, isso receberá o tamanho, em bytes, necessário para a assinatura.
[in] dwFlags
Sinalizadores que modificam o comportamento da função. O conjunto permitido de sinalizadores depende do tipo de chave especificado pelo parâmetro hKey .
Se a chave for uma chave simétrica, esse parâmetro não será usado e deverá ser definido como zero.
Se a chave for uma chave assimétrica, esse poderá ser um dos seguintes valores:
| Valor | Significado |
|---|---|
| BCRYPT_PAD_PKCS1 | Use o esquema de preenchimento PKCS1. O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_PKCS1_PADDING_INFO . |
| BCRYPT_PAD_PQDSA | Use o esquema de preenchimento PQ para ML-DSA ou SLH-DSA. O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_PQDSA_PADDING_INFO . Nota: Isso deve ser definido se estiver usando uma variante de ML-DSA pré-hash. |
| BCRYPT_PAD_PSS | Use o esquema de preenchimento PSS (Probabilistic Signature Scheme). O parâmetro pPaddingInfo é um ponteiro para uma estrutura BCRYPT_PSS_PADDING_INFO . |
| NCRYPT_SILENT_FLAG | Solicita que o KSP (provedor de serviços de chave) não exiba nenhuma interface do usuário. Se o provedor precisar exibir a interface do usuário para operar, a chamada falhará e o KSP deverá definir o código de erro NTE_SILENT_CONTEXT como o último erro. |
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:
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. |
|
A chave representada pelo parâmetro hKey não dá suporte à assinatura. |
|
O parâmetro dwFlags contém um valor que não é válido. |
|
O parâmetro hKey não é válido. |
|
Um ou mais parâmetros não são válidos. |
|
Ocorreu uma falha de alocação de memória. |
Observações
Um serviço não deve chamar essa função de sua Função StartService. Se um serviço chamar essa função de sua função StartService , um deadlock poderá ocorrer e o serviço poderá parar de responder.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo suportado | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
| Servidor mínimo compatível | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
| da Plataforma de Destino | Windows |
| cabeçalho | ncrypt.h |
| Biblioteca | Ncrypt.lib |
| de DLL | Ncrypt.dll |