这个项目能做什么
Crypto Service 是一个 TypeScript 密码学工具包,以 pnpm monorepo 中的 18 个协同包形式分发。核心库(@sebastienrousseau/crypto-lib)提供 50 多种算法,涵盖对称 AEAD(AES-128/256-GCM、AES-GCM-SIV、XChaCha20-Poly1305)、签名(Ed25519、Ed448、ECDSA P-256/P-384、Schnorr BIP-340)、密钥交换与 KEM(X25519、X448、ECDH、符合 FIPS 203 的 ML-KEM-512/768/1024、混合 KEM)、后量子签名(符合 FIPS 204 的 ML-DSA-44/65/87、符合 FIPS 205 的 SLH-DSA SHA-2/SHAKE、FN-DSA-512/1024)、HPKE(RFC 9180)、哈希函数(SHA-2、SHA-3、BLAKE2b、BLAKE3)、KDF(HKDF、PBKDF2、scrypt、Argon2id/i/d)、HMAC/KMAC、OpenPGP 密钥生成与操作,以及包括 PQXDH、双棘轮、PAKE、Shamir 阈值共享和 PASETO v4 在内的协议。
该生态系统包括一个 Fastify REST 微服务(crypto-server),具备 OpenAPI/Swagger 模式、OpenTelemetry 追踪、Prometheus 指标以及可配置的 API 密钥/JWT 认证;一个交互式终端 CLI(crypto-cli);一个类型化 SDK 客户端;Express 和 Fastify 请求加密/解密中间件;用于客户端密码学的 React hooks(useEncryption、useKeypair)和 Vue 3 composables;用于透明数据库字段级加密的 Prisma 和 TypeORM 扩展;面向 Cloudflare Workers、Vercel Edge 和 Deno 的边缘运行时适配器;一个带有 AWS 和本地提供者的 KMS 接口;以及通过 Model Context Protocol 服务器(crypto-mcp)为 Claude 和 Cursor 等代理提供的 AI/IDE 工具,外加一个用于实时密码学诊断和 PEM linting 的 Language Server Protocol 服务器(crypto-lsp)。此外还包括一个 CycloneDX 1.6 / SPDX 3.0 密码学物料清单生成器(crypto-cbom)和一个对比基准测试套件。
项目记录的重要限制:没有任何模块通过 FIPS 140-3 验证。后量子算法来自 @noble/post-quantum,该库尚未经过独立审计,也不保证恒定时间执行。密钥清零能力有限,因为 JavaScript 字符串和垃圾回收缓冲区无法被可靠擦除。只有四个包以较旧版本(0.0.1–0.0.3)发布到 npm;仓库版本为 v0.0.6,大多数包仅通过 pnpm workspace 以源码形式提供。面向 GCP、Azure 和 Vault 的 KMS 提供者只是存根,且没有 PKCS#11 绑定。未发布任何基准测试数据。
要求 Node.js >= 22 和 pnpm >= 9。Docker 镜像发布到 GHCR。CI 强制要求各包达到 100% 的行覆盖率和函数覆盖率。采用 Apache-2.0 OR MIT 双重许可。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。