

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 la biblioteca PKCS \$111 del AWS CloudHSM Client SDK 5
<a name="pkcs11-mechanisms"></a>

La biblioteca PKCS \$111 es compatible con la versión 2.40 de la especificación PKCS \$111. Para invocar una característica criptográfica con PKCS \$111, llame a una función con un mecanismo determinado. En las siguientes secciones se resumen las combinaciones de funciones y mecanismos compatibles con el AWS CloudHSM Client SDK 5. 

La biblioteca PKCS \$111 admite los siguientes algoritmos:
+ **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,[1](#mech1) AES-GCM, RSA-AES y RSA-OAEP
+ **Derivación de claves**: SP800 -108 Counter KDF y ECDH con KDF (los algoritmos KDF compatibles son X9.63 con,,,,) SHA1 SHA224 SHA256 SHA384 SHA512

**Topics**
+ [Generación de funciones de claves y pares de claves](#pkcs11-mech-function-genkey)
+ [Firma y comprobación de las funciones](#pkcs11-mech-function-signverify)
+ [Funciones de recuperación de firma y recuperación de verificación](#pkcs11-mech-function-sr-vr)
+ [Funciones Digest](#pkcs11-mech-function-digest)
+ [Funciones de cifrado y descifrado](#pkcs11-mech-function-enc-dec)
+ [Derivación de funciones de claves](#pkcs11-mech-function-derive-key)
+ [Funciones de encapsulado y desencapsulado](#pkcs11-mech-function-wrap-unwrap)
+ [Tamaño máximo de datos para cada mecanismo](#pkcs11-mech-max)
+ [Notas del mecanismo](#pkcs11-mech-annotations)

## Generación de funciones de claves y pares de claves
<a name="pkcs11-mech-function-genkey"></a>

La biblioteca de AWS CloudHSM software de la biblioteca PKCS \$111 permite utilizar los siguientes mecanismos para las funciones de generación de claves y pares de claves.
+ `CKM_RSA_PKCS_KEY_PAIR_GEN`
+ `CKM_RSA_X9_31_KEY_PAIR_GEN`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`.
+ `CKM_EC_KEY_PAIR_GEN`
+ `CKM_GENERIC_SECRET_KEY_GEN`
+ `CKM_AES_KEY_GEN`
+ `CKM_DES3_KEY_GEN` próximo cambio en la nota a pie de página [5](#mech5).

## Firma y comprobación de las funciones
<a name="pkcs11-mech-function-signverify"></a>

La biblioteca de AWS CloudHSM software de la biblioteca PKCS \$111 le permite utilizar los siguientes mecanismos para las funciones de firma y verificación. Con SDK 5 de cliente, los datos se codifican localmente en el software. Esto significa que no hay límite en cuanto al tamaño de los datos que el SDK puede codificar.

Con SDK 5 de cliente, el hash de RSA y ECDSA se realiza de forma local, por lo que no hay límite de datos. Con HMAC hay límite de datos. Consulte la nota a pie de página [2](#mech2) para obtener más información.

**RSA**
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` Únicamente para operaciones de una sola parte.
+ `CKM_RSA_PKCS_PSS` Únicamente para operaciones de una sola parte.
+ `CKM_SHA1_RSA_PKCS`
+ `CKM_SHA224_RSA_PKCS`
+ `CKM_SHA256_RSA_PKCS`
+ `CKM_SHA384_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA1_RSA_PKCS_PSS`
+ `CKM_SHA224_RSA_PKCS_PSS`
+ `CKM_SHA256_RSA_PKCS_PSS`
+ `CKM_SHA384_RSA_PKCS_PSS`
+ `CKM_SHA512_RSA_PKCS_PSS`

**ECDSA**
+ `CKM_ECDSA` Únicamente para operaciones de una sola parte.
+ `CKM_ECDSA_SHA1`
+ `CKM_ECDSA_SHA224`
+ `CKM_ECDSA_SHA256`
+ `CKM_ECDSA_SHA384`
+ `CKM_ECDSA_SHA512`

**HMAC**
+ `CKM_SHA_1_HMAC`[2](#mech2)
+ `CKM_SHA224_HMAC`[2](#mech2)
+ `CKM_SHA256_HMAC`[2](#mech2)
+ `CKM_SHA384_HMAC`[2](#mech2)
+ `CKM_SHA512_HMAC`[2](#mech2)

**CMAC**
+ `CKM_AES_CMAC`

## Funciones de recuperación de firma y recuperación de verificación
<a name="pkcs11-mech-function-sr-vr"></a>

SDK 5 de cliente no ofrece funciones de recuperación de firma y recuperación de verificación.

## Funciones Digest
<a name="pkcs11-mech-function-digest"></a>

La biblioteca de AWS CloudHSM software de la biblioteca PKCS \$111 permite utilizar los siguientes mecanismos para las funciones de resumen. Con SDK 5 de cliente, los datos se codifican localmente en el software. Esto significa que no hay límite en cuanto al tamaño de los datos que el SDK puede codificar.
+ `CKM_SHA_1`
+ `CKM_SHA224`
+ `CKM_SHA256`
+ `CKM_SHA384`
+ `CKM_SHA512`

## Funciones de cifrado y descifrado
<a name="pkcs11-mech-function-enc-dec"></a>

La biblioteca de AWS CloudHSM software de la biblioteca PKCS \$111 le permite utilizar los siguientes mecanismos para las funciones de cifrado y descifrado.
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` Únicamente para operaciones de una sola parte Próximo cambio en la nota a pie de página [5](#mech5).
+ `CKM_RSA_PKCS_OAEP` Únicamente para operaciones de una sola parte.
+ `CKM_AES_ECB`
+ `CKM_AES_CTR`
+ `CKM_AES_CBC`
+ `CKM_AES_CBC_PAD`
+ `CKM_DES3_CBC` próximo cambio en la nota a pie de página [5](#mech5).
+ `CKM_DES3_ECB` próximo cambio en la nota a pie de página [5](#mech5).
+ `CKM_DES3_CBC_PAD` próximo cambio en la nota a pie de página [5](#mech5).
+  `CKM_AES_GCM` [1](#mech1), [2](#mech2)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)

## Derivación de funciones de claves
<a name="pkcs11-mech-function-derive-key"></a>

La biblioteca de AWS CloudHSM software de la biblioteca PKCS \$111 admite los siguientes mecanismos de derivación de claves:
+ `CKM_SP800_108_COUNTER_KDF`
+ `CKM_ECDH1_DERIVE`: admite la derivación de claves ECDH con los siguientes tipos de KDF definidos por el proveedor [6](#kdf6):
  + `CKD_CLOUDHSM_X963_SHA1_KDF`- X9.63 KDF con SHA1 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA224_KDF`- X9.63 KDF con SHA224 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA256_KDF`- X9.63 KDF con SHA256 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA384_KDF`- X9.63 KDF con SHA384 [7](#kdf7)
  + `CKD_CLOUDHSM_X963_SHA512_KDF`- X9.63 KDF con SHA512 [7](#kdf7)

## Funciones de encapsulado y desencapsulado
<a name="pkcs11-mech-function-wrap-unwrap"></a>

La biblioteca de AWS CloudHSM software de la biblioteca PKCS \$111 permite utilizar los siguientes mecanismos para las funciones Wrap y Unwrap.

Para obtener más opciones de encapsulamiento de claves AES, consulte [Encapsulamiento de claves con AES](manage-aes-key-wrapping.md). 
+ `CKM_RSA_PKCS` Únicamente para operaciones de una sola parte. Próximo cambio en la nota a pie de página [5](#mech5).
+ `CKM_RSA_PKCS_OAEP`[4](#mech4)
+ `CKM_AES_GCM`[1](#mech1), [3](#mech3)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)
+ `CKM_RSA_AES_KEY_WRAP`
+ `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`[3](#mech3)

## Tamaño máximo de datos para cada mecanismo
<a name="pkcs11-mech-max"></a>

En la tabla siguiente, se muestra el tamaño máximo de datos establecido para cada mecanismo:


**Tamaño máximo de datos**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cloudhsm/latest/userguide/pkcs11-mechanisms.html)

## Notas del mecanismo
<a name="pkcs11-mech-annotations"></a>
+ [1] 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\$111 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.
+ [2] 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. Para obtener más información sobre los tamaños máximos de conjuntos de datos para cada mecanismo, consulte [Tamaño máximo de datos para cada mecanismo](#pkcs11-mech-max).
+ [3] mecanismo definido por el proveedor. Para poder utilizar los mecanismos definidos por el proveedor de CloudHSM, las aplicaciones PKCS\$111 deben incluir `/opt/cloudhsm/include/pkcs11/pkcs11t.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 \$15

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`:Encapsulamiento de claves AES con relleno de ceros
+ [4] 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`
+ [5] 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).
+ [6] Tipos definidos por el proveedor. Para usar tipos definidos por el proveedor de CloudHSM, las aplicaciones PKCS \$111 deben incluir `cloudhsm_pkcs11_vendor_defs.h` durante la compilación. Esto se encuentra en `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` para plataformas basadas en Linux y en `C:\Program Files\Amazon\CloudHSM\include\pkcs11\cloudhsm_pkcs11_vendor_defs.h` para plataformas basadas en Windows.
+ [7] Las funciones de derivación de claves (KDFs) se especifican en la [publicación especial 800-56A, revisión 3 del NIST](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf).