

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.

# Mecanismos compatibles con el SDK 3 AWS CloudHSM del cliente
<a name="pkcs11-v3-mechanisms"></a>

La biblioteca PKCS \#11 admite los siguientes algoritmos para el SDK de AWS CloudHSM cliente 3:
+ **Cifrado y descifrado**: AES-CBC, AES-CTR, AES-ECB, AES-GCM, -CBC, -ECB, RSA-OAEP y RSA-PKCS DES3 DES3
+ **Firma y verificación**: RSA, HMAC y ECDSA; con y sin hash
+ ** SHA1 SHA256 SHA384Hash/Digest SHA224 —,,, y** SHA512
+ **Encapsulación de claves**: encapsulación de claves AES,[4](#pkcs11-v3-mech4) AES-GCM, RSA-AES y RSA-OAEP
+ **Derivación de claves**: ECDH, -108 CTR KDF [5](#pkcs11-v3-mech5) SP800

## Tabla de mecanismos y funciones de la biblioteca PKCS \#11
<a name="pkcs11-v3-mech-function"></a>

La biblioteca PKCS \#11 es compatible con la versión 2.40 de la especificación PKCS \#11. Para invocar una característica criptográfica con PKCS \#11, llame a una función con un mecanismo determinado. En la siguiente tabla, se resumen las combinaciones de funciones y mecanismos admitidos por AWS CloudHSM.

**Interpretación de la tabla de mecanismos y funciones compatibles con PKCS \#11**  
La marca ✔ indica que es AWS CloudHSM compatible con el mecanismo de la función. No se admiten todas las funciones posibles que se muestran en la especificación de PKCS \#11. La marca ✖ indica que aún AWS CloudHSM no es compatible con el mecanismo para la función en cuestión, aunque el estándar PKCS \#11 lo permita. Las celdas vacías indican que el estándar de PKCS \#11 no admite el mecanismo para esa función.


**Mecanismos y funciones compatibles con la biblioteca PKCS \#11**  

<table>
<thead>
  <tr><th>Mecanismo</th><th colspan="7">Funciones</th><th></th></tr>
</thead>
<tbody>
  <tr><td> </td><td>**Generar claves** o **pares de claves**</td><td>**Firmar y verificar**</td><td>**SR y VR**</td><td>**Resumir**</td><td>**Cifrar o descifrar**</td><td>**Derivar clave**</td><td>**Envolver y UnWrap**</td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS_KEY_PAIR_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_X9_31_KEY_PAIR_GEN`</td><td>**✔**[2](#pkcs11-v3-mech2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_X_509`</td><td> </td><td>**✔**</td><td> </td><td> </td><td>**✔**</td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS`**consulte la nota [8](#pkcs11-v3-mech8)**</td><td> </td><td>✔[1](#pkcs11-v3-mech1)</td><td>✖</td><td> </td><td>✔[1](#pkcs11-v3-mech1)</td><td> </td><td>✔[1](#pkcs11-v3-mech1)</td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS_OAEP`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[1](#pkcs11-v3-mech1)</td><td> </td><td>**✔**[6](#pkcs11-v3-mech6)</td><td></td></tr>
  <tr><td>`CKM_SHA1_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384_RSA_PKCS`</td><td> </td><td>**✔**[2](#pkcs11-v3-mech2),[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512_RSA_PKCS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_PKCS_PSS`</td><td> </td><td>**✔**[1](#pkcs11-v3-mech1)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA1_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384_RSA_PKCS_PSS`</td><td> </td><td>**✔**[2](#pkcs11-v3-mech2),[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512_RSA_PKCS_PSS`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_EC_KEY_PAIR_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA`</td><td> </td><td>**✔**[1](#pkcs11-v3-mech1)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA1`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA224`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA256`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA384`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDSA_SHA512`</td><td> </td><td>**✔**[3.2](#pkcs11-v3-mech3-2)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_ECDH1_DERIVE`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[5](#pkcs11-v3-mech5)</td><td> </td><td></td></tr>
  <tr><td>`CKM_SP800_108_COUNTER_KDF`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td></td></tr>
  <tr><td>`CKM_GENERIC_SECRET_KEY_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_AES_KEY_GEN`</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_AES_ECB`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_CTR`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_CBC`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_CBC_PAD`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_DES3_KEY_GEN`**consulte la nota [8](#pkcs11-v3-mech8)**</td><td>**✔**</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_DES3_CBC`**consulte la nota [8](#pkcs11-v3-mech8)**</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_DES3_CBC_PAD`**consulte la nota [8](#pkcs11-v3-mech8)**</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_DES3_ECB`**consulte la nota [8](#pkcs11-v3-mech8)**</td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td> </td><td>✖</td><td></td></tr>
  <tr><td>`CKM_AES_GCM`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3), [4](#pkcs11-v3-mech4) </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_GCM`</td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_SHA_1`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA_1_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA224_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA256_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA384_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512`</td><td> </td><td> </td><td> </td><td>**✔**[3.1](#pkcs11-v3-mech3-1)</td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_SHA512_HMAC`</td><td> </td><td>**✔**[3.3](#pkcs11-v3-mech3-3)</td><td> </td><td> </td><td> </td><td> </td><td> </td><td></td></tr>
  <tr><td>`CKM_RSA_AES_KEY_WRAP`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td></td></tr>
  <tr><td>`CKM_AES_KEY_WRAP`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td></td></tr>
  <tr><td>`CKM_AES_KEY_WRAP_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
  <tr><td>`CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td>**✔**[7.1](#pkcs11-v3-mech7-1)</td><td></td></tr>
</tbody>
</table>


**Notas del mecanismo**
+ [1] Únicamente para operaciones de una sola parte.
+ [2] Este mecanismo es funcionalmente idéntico al mecanismo `CKM_RSA_PKCS_KEY_PAIR_GEN`, pero ofrece más garantías en la generación de `p` y `q`.
+ [3.1] AWS CloudHSM aborda el hash de forma diferente en función del SDK del cliente. En el caso de SDK 3 de cliente, el hashing depende del tamaño de los datos y de si se utilizan operaciones de una o varias partes.

  **Operaciones de una sola parte en SDK 3 de cliente**

  En la tabla 3.1 se muestra el tamaño máximo del conjunto de datos para cada mecanismo de SDK 3 de cliente. El hash completo se calcula dentro del HSM. No admite tamaños de datos superiores a 16 KB.  
**Tabla 3.1, tamaño máximo del conjunto de datos para operaciones de una sola parte**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **Operaciones de varias partes en SDK 3 de cliente**

  Admite tamaños de datos superiores a 16 KB, pero el tamaño de los datos determina el lugar del hashing. Los búferes de datos de menos de 16 KB se codifican con un hash dentro del HSM. Los búferes de entre 16 KB y el tamaño máximo de datos de su sistema se codifican localmente en el software. *Recuerde*: Las funciones de hash no requieren de secretos criptográficos, por lo que puede calcularlas de forma segura fuera del HSM.
+ [3.2] AWS CloudHSM aborda el hash de forma diferente en función del SDK del cliente. En el caso de SDK 3 de cliente, el hashing depende del tamaño de los datos y de si se utilizan operaciones de una o varias partes.

  **Operaciones de una sola parte en SDK 3 de cliente**

  En la tabla 3.2 se muestra el tamaño máximo del conjunto de datos para cada mecanismo de SDK 3 de cliente. No admite tamaños de datos superiores a 16 KB.  
**Tabla 3.2, tamaño máximo del conjunto de datos para operaciones de una sola parte**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **Operaciones de varias partes en SDK 3 de cliente**

  Admite tamaños de datos superiores a 16 KB, pero el tamaño de los datos determina el lugar del hashing. Los búferes de datos de menos de 16 KB se codifican con un hash dentro del HSM. Los búferes de entre 16 KB y el tamaño máximo de datos de su sistema se codifican localmente en el software. *Recuerde*: Las funciones de hash no requieren de secretos criptográficos, por lo que puede calcularlas de forma segura fuera del HSM.
+ [3.3] Cuando se opera con datos mediante cualquiera de los mecanismos siguientes, si el búfer de datos supera el tamaño máximo de datos, la operación produce un error. Para estos mecanismos, todo el procesamiento de los datos debe realizarse dentro del HSM. En la tabla siguiente, se muestra el tamaño máximo de datos establecido para cada mecanismo:  
**Tabla 3.3, tamaño máximo del conjunto de datos**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)
+ [4] Al realizar el cifrado AES-GCM, el HSM no acepta los datos del vector de inicialización (IV) de la aplicación. Debe utilizar un vector de inicialización generado. El IV de 12 bytes proporcionado por el HSM se escribe en la referencia de memoria a la que apunta el elemento pIV de la estructura de parámetros `CK_GCM_PARAMS` especificada por el usuario. Para asegurarse de no generar confusión en el usuario, el SDK de PKCS\#11 versión 1.1.1 y posteriores obliga a que el elemento pIV apunte a un búfer puesto a cero cuando se inicializa el cifrado AES-GCM.
+ [5] **Solo SDK 3 de cliente**. Este mecanismo se implementa para admitir casos de descarga de SSL/TLS y solo se ejecuta parcialmente en el HSM. Antes de usar este mecanismo, consulte «Issue: ECDH key derivation is executed only partially within the HSM» en [Problemas conocidos de la biblioteca PKCS \#11 de AWS CloudHSMProblemas conocidos de la biblioteca PKCS \#11](ki-pkcs11-sdk.md).`CKM_ECDH1_DERIVE` no admite la curva secp521r1 (P-521).
+ [6] Los siguientes `CK_MECHANISM_TYPE` y `CK_RSA_PKCS_MGF_TYPE` se admiten como `CK_RSA_PKCS_OAEP_PARAMS` para `CKM_RSA_PKCS_OAEP`:
  + `CKM_SHA_1` con `CKG_MGF1_SHA1`
  + `CKM_SHA224` con `CKG_MGF1_SHA224`
  + `CKM_SHA256` con `CKG_MGF1_SHA256`
  + `CKM_SHA384` con `CKM_MGF1_SHA384`
  + `CKM_SHA512` con `CKM_MGF1_SHA512`
+ [7.1] Mecanismo definido por el proveedor. Para poder utilizar los mecanismos definidos por el proveedor de CloudHSM, las aplicaciones PKCS\#11 deben incluir `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` durante la compilación. 

  `CKM_CLOUDHSM_AES_GCM`: este mecanismo exclusivo es una alternativa programáticamente segura del estándar `CKM_AES_GCM`. Antepone el IV generado por el HSM al texto cifrado en lugar de volver a escribirlo en la estructura `CK_GCM_PARAMS` que se proporciona durante la inicialización del cifrado. Puede utilizar este mecanismo con las funciones `C_Encrypt`, `C_WrapKey`, `C_Decrypt` y `C_UnwrapKey`. Cuando se utiliza este mecanismo, la variable pIV de la estructura `CK_GCM_PARAMS` debe establecerse en `NULL`. Cuando se utiliza este mecanismo con `C_Decrypt` y `C_UnwrapKey`, se espera que el IV se anteponga al texto cifrado que se está desencapsulando.

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: encapsulamiento de claves AES con relleno PKCS \#5

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: encapsulamiento de claves AES con relleno de ceros

  Para obtener más opciones de encapsulamiento de claves AES, consulte [Encapsulamiento de claves con AES](manage-aes-key-wrapping.md). 
+ [8] De acuerdo con las directrices del NIST, esto no se permite en los clústeres en modo FIPS después de 2023. En el caso de los clústeres en modo no FIPS, seguirá siendo posible después de 2023. Para obtener más información, consulte [Cumplimiento de la normativa FIPS 140: anulación de mecanismo 2024](compliance-dep-notif.md#compliance-dep-notif-1).