For the complete documentation index, see llms.txt. This page is also available as Markdown.

Integração, Exemplos e Troubleshooting

Fluxo de Integração

Pré-requisitos

Antes de consumir os endpoints do módulo RSA, o integrador deve garantir os seguintes itens :

  • Credenciais Auth0: Client ID e Client Secret com escopo de acesso ao módulo RSA.

  • Identificador do Cliente: O seu client_id numérico.

  • Chave Simétrica Cadastrada: A chave (DES/AES/HMAC) a ser exportada deve estar previamente cadastrada via módulo Key Manager .

  • Chave Pública da Contraparte: Recebida em formato DER ASN.1 (codificada em hexadecimal) .

  • Acordo de Key Ceremony: Definição mútua sobre os parâmetros de padding (padModeId) e MGF (mgfHashFunction).

Fluxo Típico — Exportar uma ZMK para um Parceiro

Neste cenário, a instituição envia uma Zone Master Key (ZMK) para um parceiro adquirente de forma segura :

  1. Receber a chave pública RSA do parceiro (formato DER ASN.1 em hexadecimal) através de um canal seguro.

  2. Obter o token JWT de autenticação.

  3. Invocar o endpoint Import utilizando o publicKeyEncoding adequado à chave recebida. O retorno (retValue) será o Key Block Thales .

  4. Invocar o endpoint Export referenciando o keyId da ZMK, os parâmetros de padding acordados, e injetando o Key Block Thales no campo publicKey.

  5. Enviar a chave criptografada (o retValue do Export) para a contraparte através do canal acordado.

Aviso Arquitetural: O módulo PayShield RSA efetua apenas a EXPORTAÇÃO da chave. A operação inversa (decifragem da chave simétrica utilizando a chave privada RSA) ocorre no HSM da contraparte e está fora do escopo do Hop V4 .

Boas Práticas

  • OAEP por Padrão: Priorize sempre a utilização do padModeId = 2 (OAEP) combinado com mgfHashFunction = 6 (SHA-256). Utilize PKCS#1 v1.5 apenas em integrações legadas.

  • Não armazene o Key Block em Cache: O retorno do Import (Key Block) contém um MAC com timestamp implícito. Refaça a importação a cada nova operação; não armazene este bloco para uso futuro .

  • Auditoria: Registe nos logs de segurança os parâmetros da operação (client_id, keyId, padding, fingerprint SHA-256 da chave pública). NUNCA registe o retValue do Export, pois é o próprio material criptográfico .

  • Validação Prévia: Antes de chamar a API, valide o tamanho e a estrutura da chave pública recebida utilizando o OpenSSL.

  • Política de Retry: Efetue retry automático apenas em erros 500. Erros 400 (ex: 01, 02, 04, 83) indicam anomalias nos dados ou nos parâmetros e requerem correção antes de nova tentativa .


Exemplos Práticos

Preparação (Geração de Chaves via OpenSSL)

Para simular a contraparte em ambiente de testes :

Bash

Fluxo Completo via cURL

Bash

Snippet em Python

Python


Troubleshooting

Sintoma
Causa Provável
Solução

HTTP 400 (retCode 04 ou 50) no Import

Chave pública em formato errado (ex: PKCS#1 vs X.509).

Confirmar com a contraparte o formato e ajustar o parâmetro publicKeyEncoding.

HTTP 400 (retCode 83) no Export

O publicKey enviado é a chave DER bruta.

Enviar estritamente o Key Block Thales obtido no retorno do Import.

HTTP 400 (retCode 07) no Export

O padModeId está incorreto.

Utilizar apenas os valores 1 ou 2.

HTTP 400 (retCode 85 ou 86) no Export

O mgfHashFunction foi enviado de forma inválida.

OAEP exige função MGF explícita. O modo PKCS#1 v1.5 exige a omissão deste campo.

HTTP 400 (retCode 10 ou 47) no Export

Erro de paridade na chave simétrica ou algoritmo não licenciado no HSM.

Recadastrar a chave no módulo Key Manager ou acionar o suporte técnico para questões de licenciamento.

HTTP 404 no Export

keyId não cadastrado.

Confirmar a sintaxe e a existência do alias no Key Manager.

HTTP 400 (retCode D3) no Export

Violação dos critérios PCI HSM V3.

O algoritmo ou o tamanho da chave não cumprem os requisitos mínimos de segurança parametrizados.

Contraparte falha na decifragem

Divergência de parâmetros criptográficos.

Reverificar o acordo formal (Key Ceremony) em relação ao Padding e à Função Hash.


Apêndices

Apêndice A. Acordo de Key Ceremony (Itens Obrigatórios)

Qualquer troca de chaves via módulo RSA requer um alinhamento prévio:

Parâmetro
Descrição

Partes Envolvidas

Razão social, CNPJ e responsáveis de ambas as instituições.

Tipo de Chave e Finalidade

Ex: ZMK, ZPK, BDK (e o seu propósito específico).

Algoritmos Simétricos e Assimétricos

Ex: AES-256 (simétrica) e RSA 2048 / ECC P-256 (assimétrica).

Codificação (publicKeyEncoding)

Formato exato da chave DER ASN.1 (1, 2 ou 3).

Modo de Preenchimento e MGF

padModeId (PKCS#1 v1.5 ou OAEP) e a respetiva função hash (ex: SHA-256).

Canal e Validade

Canal de partilha e o ciclo de vida/rotação da chave partilhada.

Apêndice B. Identificação Visual de Formatos

Se o parceiro não especificar o formato da chave, o cabeçalho hexadecimal fornece indícios cruciais:

Início do Hexadecimal
Formato Provável
publicKeyEncoding Aplicável

3082...

DER ASN.1 SEQUENCE longo (X.509 SubjectPublicKeyInfo).

1 (RSA unsigned)

3081...

DER ASN.1 SEQUENCE médio (RSAPublicKey PKCS#1).

1 ou 2

04...

X9.62 ECC uncompressed point.

3 (ECC X9.62)

02... / 03...

X9.62 ECC compressed.

Não suportado

Apêndice C. Glossário Resumido

Sigla
Significado
Contexto

ASN.1 / DER

Abstract Syntax Notation One / Distinguished Encoding Rules

Padrão e codificação binária das estruturas de chaves públicas.

BDK / ZMK / ZPK

Base Derivation Key / Zone Master Key / Zone PIN Key

Chaves simétricas protegidas e geridas pelo ecossistema de pagamentos.

ECC / RSA

Elliptic Curve Cryptography / Rivest-Shamir-Adleman

Algoritmos de criptografia assimétrica.

Key Block

Bloco Seguro (Thales)

Estrutura que encapsula o material criptográfico juntamente com um MAC (integridade).

OAEP / MGF

Optimal Asymmetric Encryption Padding / Mask Generation Function

Esquemas modernos e avançados de preenchimento matemático para chaves RSA.

Last updated