

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á.

# Provedor estático de materiais
<a name="static-provider"></a>

**nota**  
Nossa biblioteca de criptografia do lado do cliente foi [renomeada como SDK de criptografia de banco de dados da AWS](DDBEC-rename.md). O tópico a seguir fornece informações sobre as versões 1.*x*—2.*x* do DynamoDB Encryption Client para Java e versões 1.*x*—3*x* do DynamoDB Encryption Client para Python. Para obter mais informações, consulte [SDK de criptografia de banco de dados da AWS para obter suporte à versão do DynamoDB](legacy-dynamodb-encryption-client.md#legacy-support).

O *Static Materials Provider* (Static CMP) é um [provedor de materiais criptográficos](DDBEC-legacy-concepts.md#concept-material-provider) (CMP) muito simples, destinado a testes, proof-of-concept demonstrações e compatibilidade antiga.

Para usar o CMP estático para criptografar um item de tabela, forneça uma chave de criptografia simétrica do [Advanced Encryption Standard](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) (AES) e uma chave de assinatura ou um par de chaves. Você deve fornecer as mesmas chaves para descriptografar o item criptografado. O CMP estático não realiza operações de criptografia. Em vez disso, ele transmite inalteradas as chaves de criptografia que você fornece ao criptografador do item. O criptografador do item criptografa os itens diretamente na chave de criptografia. Depois, ele usa a chave de assinatura diretamente para assiná-los. 

Como o CMP estático não gera nenhum material exclusivo de criptografia, todos os itens da tabela que você processa são criptografados com a mesma chave de criptografia e assinados pela mesma chave de assinatura. Ao usar a mesma chave para criptografar os valores de atributos em diversos itens ou a mesma chave ou par de chaves para assinar todos os itens, você corre o risco de ultrapassar os limites de criptografia das chaves. 

**nota**  
O [Provedor estático assimétrico](https://aws.github.io/aws-dynamodb-encryption-java/com/amazonaws/services/dynamodbv2/datamodeling/encryption/providers/AsymmetricStaticProvider.html) na biblioteca Java não é um provedor estático. Ele apenas oferece construtores alternativos para o [CMP encapsulado](wrapped-provider.md). Ele é seguro para fins de produção, mas você deve usar o CMP encapsulado diretamente sempre que possível.

O Static CMP é um dos vários [fornecedores de materiais criptográficos](DDBEC-legacy-concepts.md#concept-material-provider) (CMPs) compatíveis com o DynamoDB Encryption Client. Para obter informações sobre o outro CMPs, consulte[Provedor de materiais de criptografia](crypto-materials-providers.md).

**Para ver um código de exemplo, consulte:**
+ Java: [SymmetricEncryptedItem](https://github.com/aws/aws-dynamodb-encryption-java/blob/master/examples/src/main/java/com/amazonaws/examples/SymmetricEncryptedItem.java)

**Topics**
+ [Como usar](#static-cmp-how-to-use)
+ [Como funciona](#static-cmp-how-it-works)

## Como usar
<a name="static-cmp-how-to-use"></a>

Para criar um provedor estático, forneça uma chave de criptografia ou um par de chaves e uma chave de assinatura ou um par de chaves. É necessário fornecer material de chave para criptografar e descriptografar os itens de tabela.

------
#### [ Java ]

```
// To encrypt
SecretKey cek = ...;        // Encryption key
SecretKey macKey =  ...;    // Signing key
EncryptionMaterialsProvider provider = new SymmetricStaticProvider(cek, macKey);

// To decrypt
SecretKey cek = ...;        // Encryption key
SecretKey macKey =  ...;    // Verification key
EncryptionMaterialsProvider provider = new SymmetricStaticProvider(cek, macKey);
```

------
#### [ Python ]

```
# You can provide encryption materials, decryption materials, or both
encrypt_keys = EncryptionMaterials(
    encryption_key = ...,
    signing_key = ...
)

decrypt_keys = DecryptionMaterials(
    decryption_key = ...,
    verification_key = ...
)

static_cmp = StaticCryptographicMaterialsProvider(
    encryption_materials=encrypt_keys
    decryption_materials=decrypt_keys
)
```

------

## Como funciona
<a name="static-cmp-how-it-works"></a>

O provedor estático transmite as chaves de criptografia e assinatura que você fornece ao criptografador do item, onde elas são usadas diretamente para criptografar e assinar os itens da tabela. As mesmas chaves são usadas para todos os itens, a menos que você forneça chaves diferentes para cada um deles.

![\[A entrada, o processamento e a saída do Provedor estático de materiais no DynamoDB Encryption Client.\]](http://docs.aws.amazon.com/pt_br/database-encryption-sdk/latest/devguide/images/staticCMP.png)


### Obter materiais de criptografia
<a name="static-cmp-get-encryption-materials"></a>

Esta seção descreve em detalhes as entradas, as saídas e o processamento do provedor estático de materiais (CMP estático) quando ele recebe uma solicitação de materiais de criptografia.

**Entrada** (do aplicativo)
+ Chave de criptografia - deve ser uma chave simétrica, como uma chave do [Advanced Encryption Standard](https://tools.ietf.org/html/rfc3394.html) (AES). 
+ Chave de assinatura - Pode ser uma chave simétrica ou um par de chaves assimétrico. 

**Entrada** (do criptografador de itens)
+ [Contexto de criptografia do DynamoDB](concepts.md#encryption-context)

**Saída** (para o criptografador de itens)
+ A chave de criptografia transmitida como entrada.
+ A chave de assinatura transmitida como entrada.
+ Descrição real do material: a [descrição solicitada do material](DDBEC-legacy-concepts.md#legacy-material-description), se houver, inalterada.

### Obter materiais de descriptografia
<a name="static-cmp-get-decryption-materials"></a>

Esta seção descreve em detalhes as entradas, as saídas e o processamento do provedor estático de materiais (CMP estático) quando ele recebe uma solicitação de materiais de descriptografia.

Embora ela inclua métodos separados para obter materiais de criptografia e de descriptografia, o comportamento é o mesmo. 

**Entrada** (do aplicativo)
+ Chave de criptografia - deve ser uma chave simétrica, como uma chave do [Advanced Encryption Standard](https://tools.ietf.org/html/rfc3394.html) (AES). 
+ Chave de assinatura - Pode ser uma chave simétrica ou um par de chaves assimétrico. 

**Entrada** (do criptografador de itens)
+ [Contexto de criptografia do DynamoDB](concepts.md#encryption-context) (não usado)

**Saída** (para o criptografador de itens)
+ A chave de criptografia transmitida como entrada.
+ A chave de assinatura transmitida como entrada.