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 と異なり、不正な入力は単なる検証失敗として扱われます。EVP_DigestVerify は生の r‖s 署名にも 3 バイトのデータにも 0 を返したため、形式の問題が現れるのはエラーキューだけです。エンコーディングは DER ⇄ 生形式の変換ツールで確認してください。
曲線は意図的に P-224、P-256、P-384、P-521 に限定されており(EC_GROUP_new_by_curve_name(NID_secp256k1) は NULL を返しました)、EdDSA で動作するのは Ed25519 だけです。EVP_PKEY_ED448 は互換性のために定義されていますが、EVP 経由での Ed448 鍵の生成は失敗しました。OpenSSL から BoringSSL に移行するコードは secp256k1、Brainpool、Ed448 を失いますが、コンパイルエラーにはならないため、そのアルゴリズムを要求するまで気付けません。
ポスト量子暗号への対応は充実しており、EVP ではなく個別の型付き API として提供されます。MLKEM768_* と MLKEM1024_*、MLDSA65_* と関連するサイズのもの、SLHDSA_SHA2_128S_* があり、チェックではいずれも一通り動作しました。ssl.h では X25519MLKEM768 ハイブリッド TLS グループ(0x11EC)も定義されています。サンプルでは ML-KEM-768 と ML-DSA-65 を直接使っています。お使いのブラウザーが何をネゴシエートするかは、ブラウザーのポスト量子チェックで確認できます。