NCryptSignHash con el proveedor de almacenamiento de claves (KSP)
La función NCryptSignHash crea una firma de un valor hash.
Parámetros
-
hKey[entrada] -
El identificador de la clave que se va a usar para firmar el hash.
pPaddingInfo[entrada, opcional]-
Un puntero a una estructura que contiene información de relleno. El tipo de estructura depende del valor
dwFlags. Utilice este parámetro solo con claves asimétricas; establézcalo en NULL para otros tipos de claves. pbHashValue[entrada]-
Un puntero a un búfer que contiene el valor hash que se va a firmar. Especifique el tamaño del búfer mediante
cbHashValue. cbHashValue[entrada]-
El tamaño, en bytes, del búfer
pbHashValueque se va a firmar. pbSignature[salida]-
La dirección de un búfer para almacenar la firma. Especifique el tamaño del búfer mediante
cbSignature.Para determinar el tamaño de búfer requerido, establezca este parámetro en NULL. La función almacena el tamaño requerido (en bytes) en la ubicación a la que apunta
pcbResult. cbSignature[entrada]-
El tamaño del búfer
pbSignatureen bytes. La función ignora este parámetro sipbSignaturees NULL. pcbResult[salida]-
Un puntero a una variable DWORD que almacena el número de bytes copiados en el búfer
pbSignature.Si
pbSignaturees NULL, se almacena el tamaño de búfer requerido, en bytes. dwFlags[entrada]-
Indicadores para modificar el comportamiento de la función. Los indicadores permitidos dependen del tipo de clave. Use uno de los siguientes valores:
Valor Significado BCRYPT_PAD_PKCS1
Usa el esquema de relleno PKCS1. Establezca
pPaddingInfopara que apunte a una estructuraBCRYPT_PKCS1_PADDING_INFO.BCRYPT_PAD_PSS
Usa el esquema de relleno de firma probabilística (PSS). Establezca el parámetro
pPaddingInfopara que apunte a una estructuraBCRYPT_PSS_PADDING_INFO.NCRYPT_SILENT_FLAG
Este indicador no tiene efecto.
Valor de retorno
La función devuelve un código de estado para indicar si la operación se realizó correctamente o si se produjo un error.
Los códigos de retorno comunes incluyen:
| Código de retorno | Descripción |
|---|---|
|
ERROR_SUCCESS |
La operación se completó correctamente. |
|
NTE_INVALID_PARAMETER |
Uno o más parámetros no son válidos. |
|
NTE_FAIL |
La operación no se pudo completar. |
|
NTE_INVALID_HANDLE |
El identificador en |
|
NTE_BAD_FLAGS |
El parámetro |
|
NTE_BUFFER_TOO_SMALL |
El parámetro |
|
NTE_BAD_KEY_STATE |
El estado de la clave no es válido. |
|
NTE_INTERNAL_ERROR |
Se produjo un error interno al firmar el hash. |