SignatureKit

Introdução

Assinatura nativa de Effect para TypeScript — A1 primeiro, uma fronteira Signatures, formatos XML/PDF ao redor e UI de navegador na borda da app.

SignatureKit mantém o poder de assinatura atrás de um serviço Effect. Comece com certificado A1 / PKCS#12; reutilize a mesma fronteira no Node, no navegador, em XML-DSig e em PDF/PAdES. Provedores remotos continuam como APIs próprias, sem virar um gateway universal falso.

Escolha o caminho

O contrato

signature-kit.ts
import { a1SignaturesLayer } from "@signature-kit/a1/signer"
import { signatures } from "@signature-kit/core/signatures"
import { Effect, Redacted } from "effect"

export const program = Effect.gen(function* () {
  const identity = yield* signatures.inspect()
  const artifact = yield* signatures.sign({ content, algorithm: "rsa-sha256" })

  return { identity, artifact }
}).pipe(
  Effect.provide(
    a1SignaturesLayer({
      pfx,
      password: Redacted.make("certificate-password"),
    }),
  ),
)

Esse programa não sabe onde a chave vive. A1 no navegador, A1 no servidor e módulos de formato fornecem ou consomem o mesmo serviço Signatures.

O que importa

  • A1 primeiro. O signer local principal é PKCS#12 (.pfx / .p12) com segredo em Redacted.
  • PDF no navegador pertence ao formato. @signature-kit/pdf cuida de bytes, estado de posicionamento e assinatura PDF A1 no navegador; a UI da app só assina esse estado e fornece a1SignaturesLayer na fronteira da ação.
  • Formatos fazem o trabalho de documento. XML-DSig e PDF/PAdES mutam documentos ao redor de signatures.sign; adapters de signer não cuidam de XML ou layout de PDF.
  • Falhas são valores. Erros recuperáveis são SignatureKitError tipados no canal de erro do Effect, não exceções lançadas.

Aprofunde

npm install @signature-kit/core @signature-kit/a1

Verificações locais não são validade jurídica

verifyXml, verifyPdf e signatures.verify confirmam a criptografia contra a chave presente no documento — não a validade jurídica. Verifique com sua própria cadeia de confiança e política ICP-Brasil antes de tratar um documento assinado como válido.

Nesta página