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:
Obter o token JWT via Auth0.
Invocar o GenerateKey com keyName = "ZPK", keySizeType = "D" (DES double-length, padrão em PIN) e modeFlag = "0" .
Capturar o retValue (keyId) retornado e registá-lo na base de dados do cliente, associado a este contexto de uso.
Capturar o retMultiValue[0] (KCV) e registá-lo para fins de auditoria e reconciliação futura.
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:
Key Ceremony: Acordo prévio documentado com o parceiro para definir tipos de chave, tamanhos e esquema de troca.
Receber do parceiro a ZMK no formato Key Block Thales e o respetivo KCV.
Invocar o ImportZMK utilizando os dados do passo anterior. Registar o keyId retornado.
Receber do parceiro a ZPK (encriptada sob a ZMK partilhada).
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 .
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.
Importar a ZMK do parceiro via ImportZMK (se ainda não existir no banco).
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 .
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 .
Invocar o GenerateKey com modeFlag = "0" para criar a ZPK no banco.
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 .
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)