# Digital Signature

O **Digital Signature** assina e verifica mensagens com base em chaves públicas e privadas.

## Parâmetros

Dê uma olhada nos parâmetros de configuração do componente. Parâmetros suportados por [expressões *Double Braces*](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Account</strong></td><td>Use este parâmetro para definir a conta a ser usada pelo conector.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Operation</strong></td><td>Tipos de operação do componente (<em>Sign Fields, Sign Payload</em> ou <em>Verify</em>).</td><td><em>Sign Fields</em></td><td><em>String</em></td></tr><tr><td><strong>Charset</strong></td><td>Nome da codificação que faz a leitura do valor.</td><td>UTF-8</td><td><em>String</em></td></tr><tr><td><strong>Hash Algorithm</strong></td><td>Algoritmo a ser utilizado para assinar/verificar os dados (ex.: SHA256WithRSA).</td><td>SHA256WithRSA</td><td><em>String</em></td></tr><tr><td><strong>Public Key Algorithm</strong></td><td>Tipo do algoritmo de chave pública (ex.: RSA). Este campo fica disponível apenas quando <em>Verify</em> estiver selecionado no parâmetro <strong>Operation</strong>.</td><td>RSA</td><td><em>String</em></td></tr><tr><td><strong>Hash</strong> <code>(DB)</code></td><td>Base do tipo base64 ou hex a ser verificada em relação ao <em>payload</em>. Este campo fica disponível apenas quando <em>Verify</em> estiver selecionado no parâmetro <strong>Operation</strong>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Sign Fields</strong></td><td>Campos a serem assinados/verificados (devem ser separados por vírgula). Este campo fica disponível apenas quando <em>Sign Fields</em> estiver selecionado no parâmetro <strong>Operation</strong>.</td><td>parameter</td><td><em>String</em></td></tr><tr><td><strong>Hash in Hexadecimal</strong></td><td>Se a opção estiver ativada, o valor a ser verificado ou assinado deve ser fornecido no formato hex; do contrário, será assinada ou verificada como base64.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>Payload</strong> <code>(DB)</code></td><td>Definido através de um valor único ou <em>Double Braces.</em> Este campo fica disponível apenas quando <em>Sign Payload</em> ou <em>Verify</em> estiverem selecionados no parâmetro <strong>Operation</strong>.</td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Fail On Error</strong></td><td>Se a opção estiver habilitada, a execução do <em>pipeline</em> com erro será interrompida; do contrário, a execução do <em>pipeline</em> continua, mas o resultado vai mostrar um valor falso para a propriedade "<em>success</em>".</td><td><em>False</em></td><td>Booleano</td></tr></tbody></table>

{% hint style="info" %}
**Importante:** para assinar, você precisa configurar uma *account* PRIVATE\_KEY ou enviar a propriedade da chave via *body*. Para verificar, você precisa configurar uma *account* PUBLIC\_KEY ou enviar a propriedade da chave via *body*.
{% endhint %}

## *Digital Signature* em Ação <a href="#digital-signature-em-ao" id="digital-signature-em-ao"></a>

### Operação *Sign Fields* <a href="#operao-sign-fields" id="operao-sign-fields"></a>

1\. Na sua paleta de componentes, selecione o ***Digital Signature***.

2\. Abra as configurações do componente.

3\. No campo ***Operation***, selecione *Sign Fields*.

4\. Insira as seguintes especificações nos campos indicados:

* ***Sign Fields*****:** parameter
* ***Hash Algorithm*****:** SHA256WithRSA

5\. Mantenha as opções ***Hash in Hexadecimal*** e ***Fail On Error*** ativadas.

6\. Clique em Confirmar.

7\. Faça o *deploy* do *pipeline*.

8\. O *pipeline* vai receber um *payload* como este:

```
{"parameter": "Test for encryption"}
```

9\. O resultado do teste executado vai aparecer conforme demonstrado abaixo:

```
{
"parameter": "....032281762E01B6C50C1DE825A2FD5A177CCFD5C1DB54E88ADD188A0B80311E672EDE5F8B......"
}
```

### Operação *Sign Payload* <a href="#operao-sign-payload" id="operao-sign-payload"></a>

1\. Na sua paleta de componentes, selecione o ***Digital Signature***.

2\. Abra as configurações do componente.

3\. No campo ***Operation***, selecione *Sign Payload*.

4\. Insira as seguintes especificações nos campos indicados:

* ***Payload*****:** \[{ \\"result\\": \\"{{ message.$.parameter }}\\"}]
* ***Hash Algorithm*****:** SHA256WithRSA

5\. Mantenha as opções ***Hash in Hexadecimal*** e ***Fail On Error*** ativadas.

6\. Clique em Confirmar.

7\. Faça o *deploy* do *pipeline*.

8\. O resultado do teste executado vai aparecer conforme demonstrado abaixo:

```
{
"result": "....032281762E01B6C50C1DE825A2FD5A177CCFD5C1DB54E88ADD188A0B80311E672EDE5F8B......"
}
```

### Operação *Verify* <a href="#operao-verify" id="operao-verify"></a>

1\. Na sua paleta de componentes, selecione o ***Digital Signature***.

2\. Abra as configurações do componente.

3\. No campo ***Operation***, selecione *Verify*.

4\. Insira as seguintes especificações nos campos indicados:

* ***Sign Fields:*** {{ message.$.signed }}
* ***Parameter*****:** {{ message.$.rawData }}
* ***Hash Algorithm*****:** SHA256WithRSA
* ***Public Key Algorithm*****:** RSA

5\. Mantenha as opções ***Hash in Hexadecimal*** e ***Fail On Error*** ativadas.

6\. Clique em Confirmar.

7\. Faça o *deploy* do *pipeline*.

8\. O *pipeline* vai receber um *payload* como este:

```
{
"rawData": "Test for encryption",
"signed": "...032281762E01B6C50C1DE825A2FD5A177CCFD5C1DB54E...."
}
```

\
9\. O resultado do teste executado vai aparecer conforme demonstrado abaixo:

```
{
"success": true
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/security/digital-signature.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
