BoringSSL 是 Google 维护的 OpenSSL 分支,用于 Chrome 和 Android;aws-lc-rs 底层的 AWS-LC 库又是它的分支,ring 则复用了它的汇编代码。它没有发布版本,也不承诺 API 稳定性——使用方需要锁定某个提交。本页的事实是从源代码构建提交 b50cad27ee80(2026年10月19日)后检查得出的。
ECDSA 沿用 OpenSSL 的惯例:DER 签名、随机 nonce、不做 low-S 规范化,验证时接受 high-S;ECDSA_sign 对你自行计算的摘要签名。与 OpenSSL 不同,格式错误的输入只会表现为验证失败——对于原始 r‖s 签名和 3 字节的数据块,EVP_DigestVerify 都返回 0,因此格式问题只会体现在错误队列中。可以用 DER ⇄ 原始格式转换器检查编码。
曲线刻意只保留 P-224、P-256、P-384 和 P-521——EC_GROUP_new_by_curve_name(NID_secp256k1) 返回 NULL——而 Ed25519 是唯一可用的 EdDSA 变体:为了兼容定义了 EVP_PKEY_ED448,但通过 EVP 生成 Ed448 密钥失败。从 OpenSSL 迁移到 BoringSSL 的代码会失去 secp256k1、Brainpool 和 Ed448,而且在真正请求这些算法之前不会出现任何编译错误。
后量子支持很全面,并且以独立的强类型 API 提供,而不是通过 EVP:MLKEM768_* 和 MLKEM1024_*、MLDSA65_* 及相关规格,以及 SLHDSA_SHA2_128S_*,它们在检查中均完成了往返测试;ssl.h 还定义了 X25519MLKEM768 混合 TLS 组(0x11EC)。示例直接使用 ML-KEM-768 和 ML-DSA-65。可以用浏览器后量子检测查看你的浏览器协商的是什么。