# @cybercore/signer-sdk SDK oficial em JavaScript para integração de aplicações web com o agente desktop **CyberCore Signer** via protocolo **CCSP/1**. Permite que sistemas web executem assinaturas digitais ICP-Brasil padrão **A1** (.pfx/.p12) e **A3** (Tokens USB e Smart Cards) instalados localmente na máquina do usuário, mantendo as chaves privadas e o PIN sob proteção estrita do hardware. --- ## 🚀 Instalação e Uso Rápido ### 1. Inclusão Direta no HTML (ES Module) ```html ``` --- ## 📚 Métodos da API | Método | Retorno | Descrição | |---|---|---| | `isInstalled(timeoutMs)` | `Promise` | Verifica se o CyberCore Signer está ativo na porta local `21325`. | | `getStatus()` | `Promise` | Retorna status de prontidão, versão e sistema operacional. | | `getVersion()` | `Promise` | Retorna versões do agente e do protocolo CCSP. | | `getCapabilities()` | `Promise` | Retorna algoritmos suportados (`SHA256withRSA`, etc.) e tipos de certificados. | | `connect()` | `Promise` | Realiza o handshake de autorização da aplicação web com o usuário. | | `getCertificates()` | `Promise` | Retorna a lista de certificados A1 e A3 disponíveis na máquina. | | `sign(options)` | `Promise` | Solicita a assinatura digital de um digest ou documento. | | `verify(options)` | `Promise` | Validação criptográfica da integridade da assinatura. | --- ## 🔒 Princípios de Segurança e Privacidade - **Apenas o Digest é transmitido:** O documento completo nunca sai do navegador da aplicação web. O SDK calcula o hash SHA-256 localmente antes de invocar o agente. - **Isolamento Total:** A comunicação ocorre exclusivamente via loopback em `127.0.0.1:21325`. - **Autorização Prévia:** Aplicações web desconhecidas devem ser autorizadas visualmente pelo usuário na tela do CyberCore Signer antes de listar certificados. - **PIN Protegido:** O PIN do token A3 nunca trafega pela web e nunca é enviado a nenhum servidor remoto.