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/signatures"
import { Effect, Redacted } from "effect"

export const signWithA1 = (content: Uint8Array, pfx: Uint8Array, password: string) =>
  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(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/signatures @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.

Como está este guia?

Nesta página