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

Integração e Exemplos Práticos

Integração e Exemplos Práticos

Para garantir uma implementação segura e fluida, esta secção detalha os três fluxos operacionais mais comuns na gestão de chaves criptográficas com parceiros, acompanhados de snippets de código nas linguagens mais utilizadas.

Cenários de Integração (Fluxos)

Cenário 1: Onboarding Interno (Gerar Nova Chave)

Este é o cenário mais simples. O cliente integrador necessita de gerar uma nova chave para uso estritamente interno (ex.: uma ZPK que será usada no módulo PayShield PIN para validar PIN blocks recebidos do front-end) .

Sequência:

  1. Obter o token JWT via Auth0.

  2. Invocar o GenerateKey com keyName = "ZPK", keySizeType = "D" (DES double-length, padrão em PIN) e modeFlag = "0" .

  3. Capturar o retValue (keyId) retornado e registá-lo na base de dados do cliente, associado a este contexto de uso.

  4. Capturar o retMultiValue[0] (KCV) e registá-lo para fins de auditoria e reconciliação futura.

  5. A partir deste momento, o keyId pode ser consumido em chamadas aos restantes módulos da Hop V4.


Cenário 2: Receção de Chave de Parceiro

Cenário típico de integração: o cliente necessita de receber uma chave ZPK gerada por um adquirente parceiro. Esta chave é enviada encriptada sob uma ZMK que ambas as partes partilham .

Sequência:

  1. Key Ceremony: Acordo prévio documentado com o parceiro para definir tipos de chave, tamanhos e esquema de troca.

  2. Receber do parceiro a ZMK no formato Key Block Thales e o respetivo KCV.

  3. Invocar o ImportZMK utilizando os dados do passo anterior. Registar o keyId retornado.

  4. Receber do parceiro a ZPK (encriptada sob a ZMK partilhada).

  5. Invocar o ImportKey passando a chave encriptada (key_under_ZMK_to_import) e o alias da ZMK (ZMK_keyId). Registar o novo keyId da ZPK .

  6. Validação Crítica: Comparar o KCV retornado no retMultiValue[0] com o KCV informado pelo parceiro. Têm de coincidir obrigatoriamente; caso contrário, aborte a operação e investigue .


Cenário 3: Envio de Chave para Parceiro

Cenário inverso: o cliente necessita de enviar uma ZPK para um parceiro. Existem duas abordagens possíveis .

Abordagem A: Geração com Exportação Simultânea Ideal quando já se sabe de antemão qual o parceiro que vai receber a chave.

  1. Importar a ZMK do parceiro via ImportZMK (se ainda não existir no banco).

  2. Invocar o GenerateKey com modeFlag = "1", apontando para a ZMK do parceiro no campo zmk_TMK_keyId. A API gera a chave e, na mesma chamada, devolve a chave já encriptada sob a ZMK de destino .

  3. Enviar o resultado e o KCV para o parceiro através do canal seguro acordado.

Abordagem B: Geração e Exportação Separadas Ideal quando a ZPK é criada para uso interno primeiro, ou precisa de ser distribuída a múltiplos parceiros .

  1. Invocar o GenerateKey com modeFlag = "0" para criar a ZPK no banco.

  2. Para cada parceiro destino: invocar o ExportKey utilizando o keyId da ZPK e a ZMK_keyId do parceiro em questão. Recomenda-se selecionar "TR31" no export_scheme .

  3. Enviar o retMultiValue[0] resultante a cada parceiro, acompanhado do KCV correspondente.


Exemplos de Código (Snippets)

cURL — Gerar uma ZEK Efémera (GenerateKey)

Bash

Python — Pipeline de Onboarding de Parceiro

Este script demonstra a importação da ZMK e, de seguida, a importação da ZPK protegida por ela.

Python

Node.js — Geração com Exportação Simultânea (modeFlag = 1)

JavaScript

Last updated