NCryptSignHash con el proveedor de almacenamiento de claves (KSP) - AWS CloudHSM

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 pbHashValue que 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 pbSignature en bytes. La función ignora este parámetro si pbSignature es NULL.

pcbResult [salida]

Un puntero a una variable DWORD que almacena el número de bytes copiados en el búfer pbSignature.

Si pbSignature es 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 pPaddingInfo para que apunte a una estructura BCRYPT_PKCS1_PADDING_INFO.

BCRYPT_PAD_PSS

Usa el esquema de relleno de firma probabilística (PSS). Establezca el parámetro pPaddingInfo para que apunte a una estructura BCRYPT_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 hKey no es válido.

NTE_BAD_FLAGS

El parámetro dwFlags contiene un valor que no es válido.

NTE_BUFFER_TOO_SMALL

El parámetro pcbOutput es demasiado pequeño para los valores de retorno.

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.