

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Operaciones de API compatibles Proveedor de almacenamiento de claves (KSP) para AWS CloudHSM Client SDK 5
<a name="ksp-library-apis"></a>

Los parámetros del KSP están definidos por el KSP de Microsoft. Consulte la [documentación de Microsoft](https://learn.microsoft.com/en-us/windows/win32/api/ncrypt/) para obtener más información.

El proveedor de almacenamiento de claves (KSP) admite las siguientes operaciones de la API de KSP para el SDK 5 AWS CloudHSM del cliente.
+ [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md)
+ [NCryptOpenKey](ksp-library-apis-open-key.md)
+ [NCryptCreatePersistedKey](ksp-library-apis-create-persisted-key.md)
+ [NCryptGetProperty](ksp-library-apis-get-property.md)
+ [NCryptSetProperty](ksp-library-apis-set-property.md)
+ [NCryptFinalizeKey](ksp-library-apis-finalize-key.md)
+ [NCryptDeleteKey](ksp-library-apis-delete-key.md)
+ [NCryptFreeObject](ksp-library-apis-free-object.md)
+ [NCryptFreeBuffer](ksp-library-apis-free-buffer.md)
+ [NCryptIsAlgSupported](ksp-library-apis-is-alg-supported.md)
+ [NCryptEnumAlgorithms](ksp-library-apis-enum-algorithms.md)
+ [NCryptEnumKeys](ksp-library-apis-enum-keys.md)
+ [NCryptExportKey](ksp-library-apis-export-key.md)
+ [NCryptSignHash](ksp-library-apis-sign-hash.md)
+ [NCryptVerifySignature](ksp-library-apis-verify-signature.md)

# NCryptOpenStorageProvider funciona con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-open-provider"></a>

La función `NCryptOpenStorageProvider` carga e inicializa el proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-open-provider-parameters"></a>

 `phProvider` [salida]   
Un puntero a una variable `NCRYPT_PROV_HANDLE` que almacena el identificador del proveedor.

 `pszProviderName` [entrada]   
Un puntero a una cadena Unicode terminada en nulo que identifica el proveedor de almacenamiento de claves. El proveedor de almacenamiento de claves (KSP) de AWS CloudHSM admite los siguientes valores:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-open-provider.html)
Los valores son literales de cadena de caracteres anchos, como lo indica la L antes del literal.

`dwFlags` [entrada]  
Indicadores que modifican el comportamiento de la función. No se ha definido ningún indicador para esta función.

## Valor de retorno
<a name="ksp-library-apis-open-provider-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 

# NCryptOpenKey con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-open-key"></a>

La función `NCryptOpenKey` abre una clave que existe en el proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-open-key-parameters"></a>

 `hProvider` [entrada]   
El identificador de KSP que contiene la clave. Use [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) para obtener el identificador.

 `phKey` [salida]   
Un puntero a una variable `NCRYPT_KEY_HANDLE` que almacena el identificador de la clave.

`pszKeyName` [entrada]  
Un puntero a una cadena Unicode terminada en nulo que contiene el nombre de la clave.

`dwLegacyKeySpec` [entrada, sin usar]  
AWS CloudHSM El proveedor de almacenamiento de claves (KSP) no usa este parámetro.

`dwFlags` [entrada]  
Indicadores que modifican el comportamiento de la función. No se ha definido ningún indicador para esta función.

## Valor de retorno
<a name="ksp-library-apis-open-key-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hProvider` no es válido.  | 
|  NTE\$1BAD\$1KEYSET  |  El nombre de clave proporcionado no devolvió un resultado único.  | 

# NCryptCreatePersistedKey con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-create-persisted-key"></a>

La función `NCryptCreatePersistedKey` crea una nueva clave y la almacena en el proveedor de almacenamiento de claves (KSP). Puede usar la función [`NCryptSetProperty`](ksp-library-apis-set-property.md) para establecer sus propiedades después de la creación. Debe llamar a [`NCryptFinalizeKey`](ksp-library-apis-finalize-key.md) antes de poder usar la clave.

## Parameters
<a name="ksp-library-apis-create-persisted-key-parameters"></a>

 `hProvider` [entrada]   
El identificador del proveedor de almacenamiento de claves donde se creará la clave. Use [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) para obtener este identificador.

 `phKey` [salida]   
La dirección de una variable `NCRYPT_KEY_HANDLE` que almacena el identificador de la clave. 

 `pszAlgId` [entrada]   
Un puntero a una cadena Unicode terminada en nulo que especifica el identificador del algoritmo criptográfico para crear la clave.  
AWS CloudHSM El proveedor de almacenamiento de claves (KSP) admite los siguientes algoritmos:     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

`pszKeyName` [entrada, opcional]  
Un puntero a una cadena Unicode terminada en nulo que contiene el nombre de la clave. Si este parámetro es NULL, esta función creará una clave efímera que no se conserva.

`dwLegacyKeySpec` [entrada, sin usar]  
AWS CloudHSM El proveedor de almacenamiento de claves (KSP) no usa este parámetro.

`dwFlags` [entrada]  
Indicadores para modificar el comportamiento de la función. Use cero o uno o más de los siguientes valores:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-create-persisted-key.html)

## Valor de retorno
<a name="ksp-library-apis-create-persisted-key-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La función se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `pszAlgId` contiene un valor que no se admite.  | 
|  NTE\$1EXISTS  |  Ya existe una clave con el nombre especificado y la operación no usó ` NCRYPT_OVERWRITE_KEY_FLAG`.  | 

# NCryptGetProperty con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-get-property"></a>

La función `NCryptGetProperty` recupera valores de propiedades de un objeto de almacenamiento de claves.

## Parameters
<a name="ksp-library-apis-create-get-property-parameters"></a>

 `hObject` [entrada]   
 El identificador del objeto cuya propiedad desea recuperar. Puede usar:  
+ Un identificador de proveedor (`NCRYPT_PROV_HANDLE`)
+ Un identificador de clave (`NCRYPT_KEY_HANDLE`)

 `pszProperty ` [entrada]   
Un puntero a una cadena Unicode terminada en nulo que contiene el nombre de la propiedad que se va a recuperar.   
Cuando se utiliza`NCRYPT_PROV_HANDLE`, el proveedor de almacenamiento de AWS CloudHSM claves (KSP) admite los siguientes identificadores de KSP:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
Cuando se utiliza`NCRYPT_KEY_HANDLE`, el proveedor de almacenamiento de AWS CloudHSM claves (KSP) admite los siguientes identificadores de KSP:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
Los valores son literales de cadena de caracteres anchos, como lo indica la L antes del literal.

 `pbOutput` [salida]   
La dirección de un búfer para almacenar el valor de la propiedad. Especifique el tamaño del búfer mediante `cbOutput`.  
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`.

 `cbOutput` [entrada]   
 El tamaño del búfer `pbOutput` en bytes.

`pcbResult` [salida]  
Un puntero a una variable DWORD que almacena el número de bytes copiados en el búfer `pbOutput`.  
Si `pbOutput` es NULL, se almacena el tamaño requerido (en bytes).

`dwFlags` [entrada]  
Indicadores para modificar el comportamiento de la función. Puede usar cero o:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)
Cuando pszProperty es `NCRYPT_SECURITY_DESCR_PROPERTY`, use uno o una combinación de los siguientes valores:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-get-property.html)

## Valor de retorno
<a name="ksp-library-apis-get-property-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `pszAlgId` contiene un valor que no se admite.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hObject` no es válido.  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  El parámetro `cbOutput` es demasiado pequeño para los valores de retorno.  | 

# NCryptSetProperty con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-set-property"></a>

La función `NCryptSetProperty` establece valores de propiedades para un objeto de almacenamiento de claves.

## Parameters
<a name="ksp-library-apis-create-set-property-parameters"></a>

 `hObject` [entrada]   
 El identificador del objeto cuya propiedad desea establecer. Puede usar:  
+ Un identificador de proveedor (`NCRYPT_PROV_HANDLE`)
+ Un identificador de clave (`NCRYPT_KEY_HANDLE`)

 `pszProperty ` [entrada]   
Un puntero a una cadena Unicode terminada en nulo que contiene el nombre de la propiedad que se va a recuperar.   
Cuando se utiliza`NCRYPT_PROV_HANDLE`, el proveedor de almacenamiento de AWS CloudHSM claves (KSP) admite los siguientes identificadores de KSP:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
Cuando se utiliza`NCRYPT_KEY_HANDLE`, el proveedor de almacenamiento de AWS CloudHSM claves (KSP) admite los siguientes identificadores de KSP:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-set-property.html)
Los valores son literales de cadena de caracteres anchos, como lo indica la L antes del literal.

 `pbInput` [entrada]   
 La dirección de un búfer que contiene el nuevo valor de la propiedad. `cbInput` contiene el tamaño del búfer. 

 `cbInput` [entrada]   
 El tamaño del búfer `pbInput` en bytes. 

`dwFlags` [entrada]  
Indicadores que modifican el comportamiento de la función. No se ha definido ningún indicador para esta función.

## Valor de retorno
<a name="ksp-library-apis-set-property-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `pszProperty` contiene un valor que no se admite.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hObject` no es válido.  | 
|  NTE\$1BAD\$1DATA  |  Los datos a los que apuntan `pbInput` y `cbInput` no son válidos.  | 

# NCryptFinalizeKey con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-finalize-key"></a>

La función `NCryptFinalizeKey` completa una clave de KSP. Para poder usar la clave, primero debe llamar a esta función.

## Parameters
<a name="ksp-library-apis-finalize-key-parameters"></a>

 `hKey` [entrada]   
 El identificador de la clave que se va a completar. Obtenga este identificador llamando a la [NCryptCreatePersistedKey](ksp-library-apis-create-persisted-key.md)función.

`dwFlags` [entrada]  
Indicadores para modificar el comportamiento de la función. Puede usar cero o estos valores:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-finalize-key.html)

## Valor de retorno
<a name="ksp-library-apis-finalize-key-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hKey` no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `dwFlags` contiene un valor que no se admite.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 

# NCryptDeleteKey con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-delete-key"></a>

La función `NCryptDeleteKey` elimina una clave de KSP del proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-delete-key-parameters"></a>

 `hKey` [entrada]   
 El identificador de la clave que se va a eliminar. 

`dwFlags` [entrada]  
Indicadores para modificar el comportamiento de la función. Puede usar cero o más de los siguientes valores:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-delete-key.html)

## Valor de retorno
<a name="ksp-library-apis-delete-key-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La función se realizó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hKey` no es válido.  | 
|  NTE\$1INTERNAL\$1ERROR  |  Se produjo un error interno al eliminar la clave.  | 

# NCryptFreeObject con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-free-object"></a>

La función `NCryptFreeObject` libera un identificador de proveedor o de clave del proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-free-object-parameters"></a>

 `hObject` [entrada]   
 El identificador del objeto que se va a liberar. Puede usar:  
+ Un identificador de proveedor (`NCRYPT_PROV_HANDLE`)
+ Un identificador de clave (`NCRYPT_KEY_HANDLE`)

## Valor de retorno
<a name="ksp-library-apis-free-object-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hObject` no es válido.  | 

# NCryptFreeBuffer con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-free-buffer"></a>

La función `NCryptFreeBuffer` libera un bloque de memoria que fue asignado por el proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-free-buffer-parameters"></a>

 `pvInput` [entrada]   
 La dirección de la memoria que se va a liberar. 

## Valor de retorno
<a name="ksp-library-apis-free-buffer-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 

# NCryptIsAlgSupported con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-is-alg-supported"></a>

NCryptIsAlgSupported la función determina si el proveedor de almacenamiento de claves (KSP) admite un algoritmo criptográfico específico.

## Parameters
<a name="ksp-library-apis-is-alg-supported-parameters"></a>

 `hProvider` [entrada]   
 El identificador del proveedor de almacenamiento de claves. Use [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) para obtener el identificador. 

 `pszAlgId` [entrada]   
 Un puntero a una cadena Unicode terminada en nulo que contiene el identificador del algoritmo criptográfico para crear la clave. El proveedor de almacenamiento de claves (KSP) de AWS CloudHSM admite los siguientes algoritmos:     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

`dwFlags` [entrada]  
Indicadores que modifican el comportamiento de la función. Puede ser cero o el siguiente valor:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-is-alg-supported.html)

## Valor de retorno
<a name="ksp-library-apis-is-alg-supported-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `pszAlgId` contiene un valor que no se admite.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hProvider` no es válido.  | 

# NCryptEnumAlgorithms con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-enum-algorithms"></a>

La función `NCryptEnumAlgorithms` recupera los nombres de los algoritmos que admite el proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-enum-algorithms-parameters"></a>

 `hProvider` [entrada]   
 El identificador del proveedor de almacenamiento de claves para el cual se van a enumerar los algoritmos. Use la función [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) para obtener este identificador. 

 `dwAlgOperations` [entrada]   
Un conjunto de valores que especifican qué clases de algoritmos se van a enumerar. Puede usar cero para enumerar todos los algoritmos, o combinar uno o más de los siguientes valores:     
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

`pdwAlgCount` [salida]  
La dirección de un DWORD que almacena el número de elementos en la matriz `ppAlgList`.

`ppAlgList` [salida]  
La dirección de un puntero a una estructura `NCryptAlgorithmName` que almacena una matriz de nombres de algoritmos registrados. El parámetro `pdwAlgCount` indica el número de elementos de esta matriz.

`dwFlags` [entrada]  
Indicadores para modificar el comportamiento de la función. Use cero o el siguiente valor:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-enum-algorithms.html)

## Valor de retorno
<a name="ksp-library-apis-open-key-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `dwAlgOperations` contiene un valor que no se admite.  | 

# NCryptEnumKeys con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-enum-keys"></a>

NCryptEnumKeys La función muestra las claves almacenadas en el proveedor de almacenamiento de claves (KSP).

## Parameters
<a name="ksp-library-apis-enum-keys-parameters"></a>

 `hProvider` [entrada]   
El identificador del proveedor de almacenamiento de claves. Use [`NCryptOpenStorageProvider`](ksp-library-apis-open-provider.md) para obtener este identificador. 

 `pszScope` [entrada, sin usar]   
 Establezca este parámetro en NULL.

 `ppKeyName` [salida]   
La dirección de un puntero a una estructura `NCryptKeyName` que almacena el nombre de la clave. Para liberar esta memoria después de usarla, llame a `NCryptFreeBuffer`. 

`ppEnumState` [entrada, salida]  
Una dirección de puntero VOID que realiza el seguimiento del progreso de la enumeración. El proveedor de almacenamiento de claves usa esta información internamente para administrar la secuencia de enumeración. Para iniciar una nueva enumeración desde el principio, establezca este puntero en NULL.  
Para liberar esta memoria después de completar la enumeración, pase este puntero a `NCryptFreeBuffer`.

`dwFlags` [entrada]  
Indicadores para modificar el comportamiento de la función. Esta función no tiene indicadores.

## Valor de retorno
<a name="ksp-library-apis-enum-keys-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hProvider` no es válido.  | 
|  NTE\$1NO\$1MORE\$1ITEMS  |  La enumeración ha listado todas las claves disponibles.  | 

# NCryptExportKey con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-export-key"></a>

La función `NCryptExportKey` exporta una clave de KSP a la memoria BLOB. Esta función solo admite la exportación de claves públicas.

## Parameters
<a name="ksp-library-apis-export-key-parameters"></a>

 `hKey` [entrada]  
El identificador de la clave que se va a exportar.

 `hExportKey` [entrada, sin usar]  
 AWS CloudHSM El proveedor de almacenamiento de claves (KSP) no usa este parámetro. 

`pszBlobType` [entrada]  
Cadena Unicode terminada en cero que especifica el tipo que se va a exportar. BLOB AWS CloudHSM El proveedor de almacenamiento de claves (KSP) admite los siguientes valores:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

`pParameterList` [entrada, sin usar]  
AWS CloudHSM El proveedor de almacenamiento de claves (KSP) no usa este parámetro.

`pbOutput` [salida, opcional]  
La dirección de un búfer para almacenar el BLOB de la clave. Especifique el tamaño del búfer mediante `cbOutput`. Si se establece en NULL, la función almacena el tamaño requerido (en bytes) en el DWORD al que apunta `pcbResult`.

`cbOutput` [entrada]  
El tamaño del búfer `pbOutput` en bytes.

`pcbResult` [salida]  
La dirección de una variable DWORD que almacena el número de bytes copiados en el búfer `pbOutput`. Si `pbOutput` es NULL, la función almacena el tamaño de búfer requerido, en bytes.

`dwFlags` [entrada]  
Indicadores que modifican el funcionamiento de la función. Puede usar cero o lo siguiente:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-export-key.html)

## Valor de retorno
<a name="ksp-library-apis-export-key-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hProvider` no es válido.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  El estado de la clave no es válido.  | 
|  NTE\$1NOT\$1SUPPORTED  |  El parámetro `pszBlobType` o `dwFlags` contiene un valor que no es compatible.  | 
|  STATUS\$1INTERNAL\$1ERROR  |  Se produjo un error interno durante la operación.  | 

# NCryptSignHash con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-sign-hash"></a>

La función `NCryptSignHash` crea una firma de un valor hash.

## Parameters
<a name="ksp-library-apis-sign-hash-parameters"></a>

 `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:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-sign-hash.html)

## Valor de retorno
<a name="ksp-library-apis-sign-hash-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hKey` no es válido.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1BUFFER\$1TOO\$1SMALL  |  El parámetro `pcbOutput` es demasiado pequeño para los valores de retorno.  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  El estado de la clave no es válido.  | 
|  NTE\$1INTERNAL\$1ERROR  |  Se produjo un error interno al firmar el hash.  | 

# NCryptVerifySignature con el proveedor de almacenamiento de claves (KSP)
<a name="ksp-library-apis-verify-signature"></a>

La función `NCryptVerifySignature` confirma si una firma coincide con un hash especificado.

## Parameters
<a name="ksp-library-apis-verify-signature-parameters"></a>

 `hKey` [entrada]   
 El identificador de la clave que se va a usar para descifrar la firma. Debe usar la parte de clave pública del par de claves que se utilizó para firmar los datos con [`NCryptSignHash`](ksp-library-apis-sign-hash.md). 

`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 del búfer `pbHashValue` en bytes.

`pbSignature` [salida]  
La dirección de un búfer que contiene el hash firmado de los datos. Utilice [`NCryptSignHash`](ksp-library-apis-sign-hash.md) para crear esta firma. Especifique el tamaño del búfer mediante `cbSignature`.

`cbSignature` [entrada]  
El tamaño del búfer `pbSignature` en bytes. Utilice [`NCryptSignHash`](ksp-library-apis-sign-hash.md) para crear la firma.

`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:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/ksp-library-apis-verify-signature.html)

## Valor de retorno
<a name="ksp-library-apis-verify-signature-return-value"></a>

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 | Description (Descripción) | 
| --- | --- | 
|  ERROR\$1SUCCESS  |  La operación se completó correctamente.  | 
|  NTE\$1INVALID\$1PARAMETER  |  Uno o más parámetros no son válidos.  | 
|  NTE\$1FAIL  |  La operación no se pudo completar.  | 
|  NTE\$1INVALID\$1HANDLE  |  El identificador en `hKey` no es válido.  | 
|  NTE\$1BAD\$1FLAGS  |  El parámetro `dwFlags` contiene un valor que no es válido.  | 
|  NTE\$1BAD\$1SIGNATURE  |  La firma no se verificó.  | 
|  NTE\$1BAD\$1KEY\$1STATE  |  El estado de la clave no es válido.  | 
|  NTE\$1INTERNAL\$1ERROR  |  Se produjo un error interno al tratar de verificar la firma.  | 