

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Mecanismos compatíveis com o AWS CloudHSM Client SDK 3
<a name="pkcs11-v3-mechanisms"></a>

A biblioteca PKCS \#11 oferece suporte aos seguintes algoritmos para o AWS CloudHSM Client SDK 3:
+ **Criptografia e descriptografia** — AES-CBC, AES-CTR, AES-ECB, AES-GCM, -CBC, -ECB, RSA-OAEP e RSA-PKCS DES3 DES3
+ **Assinar e verificar**: RSA, HMAC e ECDSA; com e sem hash
+ **Hash/digest** — SHA1,, SHA224, e SHA256 SHA384 SHA512
+ **Encapsulamento de chave**: AES Key Wrap[4](#pkcs11-v3-mech4), AES-GCM, RSA-AES e RSA-OAEP
+ **Derivação de chave** — ECDH, [5](#pkcs11-v3-mech5) SP800-108 CTR KDF

## A tabela de funções do mecanismo da biblioteca PKCS \#11
<a name="pkcs11-v3-mech-function"></a>

A biblioteca PKCS \#11 é compatível com a versão 2.40 da especificação PKCS \#11. Para invocar um recurso de criptografia usando o PKCS\#11, chame uma função com um determinado mecanismo. A tabela a seguir resume as combinações de funções e mecanismos suportados pelo AWS CloudHSM.

**Interpretar a tabela da função do mecanismo PKCS \#11 compatível**  
Uma marca ✔ indica que AWS CloudHSM suporta o mecanismo da função. Não oferecemos suporte a todas as funções possíveis listadas na especificação do PKCS \#11. Uma marca ✖ indica que ainda AWS CloudHSM não suporta o mecanismo para a função dada, mesmo que o padrão PKCS \#11 o permita. Células vazias indicam que o PKCS \#11 padrão não oferece suporte ao mecanismo para a função determinada.


**Mecanismos e funções do PKCS \#11 compatíveis**  

<table>
<thead>
  <tr><th>Mecanismo</th><th colspan="7">Funções</th><th></th></tr>
</thead>
<tbody>
  <tr><td> </td><td>**Gerar chave** ou **par de chave**</td><td>**Assinar e verificar**</td><td>**SR e VR**</td><td>**Resumo**</td><td>**Criptografar e descriptografar**</td><td>**Derivar chave**</td><td>**Embrulhe e 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 a observação [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 a observação [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 a observação [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 a observação [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 a observação [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>


**Anotações do mecanismo**
+ [1] somente operações de uma única parte.
+ [2] O mecanismo é funcionalmente idêntico ao mecanismo `CKM_RSA_PKCS_KEY_PAIR_GEN`, mas oferece garantias mais fortes para a geração `p` e `q`.
+ [3.1] AWS CloudHSM aborda o hashing de forma diferente com base no SDK do cliente. Para o Client SDK 3, onde fazemos o hashing depende do tamanho dos dados e se você está usando operações de uma ou várias partes.

  **Operações em uma única parte no Client SDK 3**

  A tabela 3.1 lista o tamanho máximo do conjunto de dados para cada mecanismo do Client SDK 3. O hash inteiro é computado dentro do HSM. Não há suporte para tamanhos de dados maiores que 16 KB.  
**Tabela 3.1: tamanho máximo do conjunto de dados para operações em uma única parte**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **Client SDK 3 de operações em várias partes**

  Suporta tamanhos de dados superiores a 16 KB, mas o tamanho dos dados determina onde o hash ocorre. Buffers de dados com menos de 16 KB são codificados dentro do HSM. Buffers entre 16 KB e o tamanho máximo de dados do seu sistema são codificados localmente no software. *Lembre-se*: as funções de hash não exigem segredos criptográficos, então é possível computá-las com segurança fora do HSM.
+ [3.2] AWS CloudHSM aborda o hashing de forma diferente com base no SDK do cliente. Para o Client SDK 3, onde fazemos o hashing depende do tamanho dos dados e se você está usando operações de uma ou várias partes.

  **Client SDK 3 de operações em uma única parte**

  A tabela 3.2 lista o tamanho máximo do conjunto de dados para cada mecanismo do Client SDK 3. Não há suporte para tamanhos de dados maiores que 16 KB.  
**Tabela 3.2: Tamanho máximo do conjunto de dados para operações em uma única parte**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)

  **Client SDK 3 de operações em várias partes**

  Suporta tamanhos de dados superiores a 16 KB, mas o tamanho dos dados determina onde o hash ocorre. Buffers de dados com menos de 16 KB são codificados dentro do HSM. Buffers entre 16 KB e o tamanho máximo de dados do seu sistema são codificados localmente no software. *Lembre-se*: as funções de hash não exigem segredos criptográficos, então é possível computá-las com segurança fora do HSM.
+ [3.3] Ao trabalhar com dados usando qualquer um dos mecanismos a seguir, se o buffer de dados exceder o tamanho máximo de dados, a operação resultará em um erro. Para esses mecanismos, todo o processamento de dados deve ocorrer dentro do HSM. A tabela a seguir lista o tamanho máximo de dados definido para cada mecanismo:  
**Tabela 3.3: Tamanho máximo do conjunto de dados**    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/cloudhsm/latest/userguide/pkcs11-v3-mechanisms.html)
+ [4] Ao executar a criptografia AES-GCM, o HSM não aceitará dados do vetor de inicialização (IV) do aplicativo. Você deve usar um IV gerado por ele. O IV de 12 bytes fornecido pelo HSM é gravado na referência da memória apontada pelo elemento pIV da estrutura de parâmetros `CK_GCM_PARAMS` que você fornece. Para que não haja confusão para o usuário, o SDK do PKCS \#11 na versão 1.1.1 e posterior, garante que o pIV aponte para um buffer zerado quando a criptografia AES-GCM é inicializada.
+ [5] **Somente o Client SDK 3**. O mecanismo está implementado para oferecer suporte a casos de descarregamento de SSL/TLS e é executado somente parcialmente no HSM. Antes de usar esse mecanismo, consulte "Problema: a derivação de chaves ECDH é executada apenas parcialmente no HSM" em [Problemas conhecidos da biblioteca PKCS \#11 para AWS CloudHSMProblemas conhecidos da biblioteca do PKCS\#11](ki-pkcs11-sdk.md). `CKM_ECDH1_DERIVE` não é compatível com a curva secp521r1 (P-521).
+ [6] Os seguintes `CK_MECHANISM_TYPE` e `CK_RSA_PKCS_MGF_TYPE` são compatíveis como `CK_RSA_PKCS_OAEP_PARAMS` para `CKM_RSA_PKCS_OAEP`:
  + `CKM_SHA_1` usando `CKG_MGF1_SHA1`
  + `CKM_SHA224` usando `CKG_MGF1_SHA224`
  + `CKM_SHA256` usando `CKG_MGF1_SHA256`
  + `CKM_SHA384` usando `CKM_MGF1_SHA384`
  + `CKM_SHA512` usando `CKM_MGF1_SHA512`
+ [7.1] Mecanismo definido pelo fornecedor. Para usar os mecanismos definidos pelo fornecedor do CloudHSM, os aplicativos PKCS \#11 devem incluir `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` durante a compilação. 

  `CKM_CLOUDHSM_AES_GCM`: Este mecanismo proprietário é uma alternativa programaticamente mais segura para o padrão `CKM_AES_GCM`. Ele antecede o IV gerado pelo HSM para o texto cifrado em vez de escrevê-lo de volta na estrutura `CK_GCM_PARAMS` fornecida durante a inicialização da cifra. Você pode usar esse mecanismo com as funções `C_Encrypt`, `C_WrapKey`, `C_Decrypt`, e `C_UnwrapKey`. Ao usar esse mecanismo, a variável pIV no struct `CK_GCM_PARAMS` deve ser definida como `NULL`. Ao usar este mecanismo com `C_Decrypt` e `C_UnwrapKey`, espera-se que o IV seja precedido pelo texto cifrado que está sendo desencapsulado.

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: Encapsulamento de chaves AES com preenchimento PKCS \#5

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: Encapsulamento de chaves AES com preenchimento de zeros

  Para obter opções adicionais de empacotamento de chaves AES, consulte [Empacotamento de chaves AES](manage-aes-key-wrapping.md). 
+ [8] De acordo com a orientação do NIST, isso não é permitido em clusters no modo FIPS após 2023. Para clusters no modo não FIPS, isso ainda é permitido após 2023. Para mais detalhes, consulte [Conformidade com o FIPS 140: suspensão do mecanismo de 2024](compliance-dep-notif.md#compliance-dep-notif-1).