五个核心工具,同一仓库(Lennonhaha/fibemate-tools,Apache-2.0)。另有 2 个演示页,见下方「附加演示」。
它们不实现任何密码学算法,只做一件事:把「看起来对」变成「可复核」。
扫描代码库,产出符合 OWASP CycloneDX 1.7 的 CBOM:算法、模式、曲线、密钥长度按官方 schema 校验,而不是按自己的解析器「能吃回去」。
npx cbom-tools scan --dir ./project --out cbom.json --spec 1.7(旧版可用 --spec 1.6)
v0.2.7 起:cbom-scan --dir <path> 路径不存在或不是目录时返回退出码 2;旧版输出空 BOM 并退出 0。
把文档里的声明和制品里的数字对上:逐条抽 claim,找到候选证据就判 verified,对不上就 drift。漂移即红,可作 CI 门禁(--fail-on drift)。
只做值级比对。它不校验字节完整性——那需要摘要 + 时间戳,见 scripts/claim-evidence/verify-evidence.cjs。
扫描 JS/TS 代码里 AI 容易编出来的写法:声称常数时间却按秘密分支、用数组下标索引秘密、调用不存在的加密 API。
输出 needs-human-review,不宣判漏洞。样本测试全过,已在真实代码上验证过误报。
拿两份同一算法的实现比对派生路径与 KAT 输出:悄悄改了一处常量、少了一个域分隔字节,就红。
npm i -g fibemate-xdiff
把「某个密码学 API 在哪个 commit 引入、何时变更、影响了哪些文件」变成可查询的时间轴。
基于 git log -S/-G 的真实历史,不靠记忆。CI 用自建临时仓库跑,零外部依赖。
多轮覆写销毁密钥材料,每轮记录覆写前后的非零字节计数与指纹,落盘成证据链供人工复核。
用 zeroize 而非 fill(0)(防止编译器把覆写优化掉)。Lean 模板是骨架,诚实标注「非完整证明」。
把「某算法在某 commit 下被纳入账本」串成可复现的 RFC 3161 时间戳链(hash 用 RFC 8785 风格键排序)。
浏览器内 Web Crypto 重算 SHA-256,零外部依赖。3 个演示 block 来自测试 fixture,非生产测量。