LibreSSL 保留了大家熟悉的 OpenSSL libcrypto/libssl API 和命令行,同时删除了遗留代码,并新增了自己的 libtls。macOS 把一个较旧的 LibreSSL 用作系统密码库:在 macOS 27.0.1 上,/usr/bin/openssl version 输出 LibreSSL 3.3.6,ssh -V 显示的也是这个库。本页的事实基于 Alpine 3.24.2 的软件包 LibreSSL 4.3.1 检查得出(上游当时已发布 4.3.3),该软件包把命令安装为 libressl——除非添加兼容包,否则调用 openssl 的脚本会在那里失败。
ECDSA 的行为与 OpenSSL 的默认设置一致:DER 签名、随机 nonce、不做 low-S 规范化,验证时接受 high-S。与 OpenSSL 3.2+ 不同,它没有确定性的 RFC 6979 选项。对于原始 r‖s 签名,EVP_DigestVerify 返回 -1,命令行输出 Error Verifying Data,而针对其他数据的有效签名则输出 Verification Failure——注意它们的大小写与 OpenSSL 的消息不同,这会让用 grep 匹配确切文本的脚本失效。
曲线涵盖 P-224 到 P-521、secp256k1 和 Brainpool r1 曲线;Ed25519 通过 EVP_PKEY_ED25519 使用,完全没有 Ed448。密钥文件与 OpenSSL 互通:公钥使用 SPKI 和证书,私钥使用 PKCS#8(未加密和加密)和 SEC1;ecparam -genkey 写出的是 SEC1 EC PRIVATE KEY,因此当其他工具需要 PKCS#8 时,要像示例那样用 pkcs8 -topk8 转换。
后量子支持并不完整:ML-KEM-768 和 ML-KEM-1024 通过 LibreSSL 自己在 <openssl/mlkem.h> 中提供的 MLKEM_* 函数使用,而不是通过 EVP 或命令行;ML-DSA 则根本不存在(Algorithm ML-DSA-65 not found)。可以在后量子 KEM 工具中比较这些算法;如需 ML-DSA 签名,应使用 OpenSSL 3.5 或更高版本。