Files
cybercore-signer/docs/development-mode.md
T

90 lines
3.5 KiB
Markdown

# Modo de Desenvolvimento e Homologação
> **Diretrizes para Execução Local com Argumento `--dev`, Testes e Criação de Certificados A1 de Homologação**
O **CyberCore Signer** opera exclusivamente com certificados digitais e provedores criptográficos reais (arquivos `.pfx`/`.p12`, Windows-MY e tokens físicos PKCS#11). Em cumprimento às normas de integridade do projeto, **não existem mocks ou certificados artificiais no runtime de produção**.
---
## 1. Ativação do Modo de Desenvolvimento
Para iniciar o agente em ambiente de homologação e desenvolvimento com logs estendidos de auditoria e detalhamento de operações de rede, utilize o argumento de linha de comando `--dev`:
```bash
# Executando via script Linux / macOS:
./run.sh --dev
# Executando no Windows:
run.bat --dev
# Ou diretamente pelo JAR compilado:
java -jar modules/cybercore-app/target/cybercore-signer.jar --dev
```
Ao ser iniciado com esta flag, o agente imprime no terminal o banner de diagnóstico:
```
=========================================================
CYBERCORE SIGNER — MODO DE DESENVOLVIMENTO ATIVADO (--dev)
Logs detalhados ativos. Operação com certificados reais JCA/JCE.
Servidor local CCSP/1 pronto em: http://127.0.0.1:21325
=========================================================
```
---
## 2. Geração de Certificados A1 de Teste com OpenSSL
Para desenvolvedores e testadores que precisam simular fluxos completos de assinatura digital (PAdES, XAdES, login digital) sem utilizar um certificado ICP-Brasil real de produção, é possível gerar um certificado digital de teste no formato `.pfx` protegido por senha utilizando o utilitário **OpenSSL**:
### Passo 1: Gerar a Chave Privada RSA (2048 bits)
```bash
openssl genrsa -out teste_signer.key 2048
```
### Passo 2: Gerar o Certificado X.509 Autoassinado
```bash
openssl req -new -x509 -key teste_signer.key -out teste_signer.crt -days 365 \
-subj "/C=BR/O=ICP-Brasil Teste/OU=Desenvolvimento CyberCore/CN=DESENVOLVEDOR TESTE:12345678900"
```
### Passo 3: Exportar o Certificado e Chave no Contêiner PKCS#12 (`.pfx`)
```bash
openssl pkcs12 -export -out certificado_teste.pfx \
-inkey teste_signer.key -in teste_signer.crt \
-name "DESENVOLVEDOR TESTE:12345678900" \
-passout pass:123456
```
### Passo 4: Importar no CyberCore Signer
1. Abra o CyberCore Signer.
2. Na tela principal, clique em **"Importar A1 (.pfx/.p12)"**.
3. Selecione o arquivo `certificado_teste.pfx` gerado e informe a senha `123456`.
4. O certificado aparecerá instantaneamente como disponível no Dashboard e poderá ser utilizado para todos os testes do SDK e CCSP/1.
---
## 3. Execução da Suíte de Testes Automatizados
O repositório do CyberCore Signer conta com suíte abrangente de testes unitários, testes de concorrência e testes de arquitetura (ArchUnit):
```bash
# Executar todos os testes unitários do projeto:
./mvnw test
# Executar testes específicos do protocolo CCSP/1:
./mvnw test -Dtest=CcspServerTest
# Executar testes de concorrência e trava FIFO (signLock):
./mvnw test -Dtest=CcspConcurrencyTest
# Executar testes de conformidade arquitetural (garante desacoplamento de UI no core):
./mvnw test -Dtest=ArchitectureTest
```
---
## 4. Garantia de Operação Real
1. **Assinaturas Autênticas:** Mesmo ao utilizar um certificado autoassinado de teste, os bytes da assinatura são calculados matematicamente pelos algoritmos reais do JCA/JCE (`SHA256withRSA`).
2. **Sem Falsos Positivos:** O comportamento do agente é 100% idêntico entre o ambiente de teste e o ambiente de produção com tokens físicos A3.