wolfSSL 面向嵌入式系统和 FIPS 部署,几乎一切都是编译期选项:曲线、EdDSA 变体、确定性 nonce、后量子算法和 PEM 支持,都随 ./configure 标志而启用或消失。本页的事实基于 Alpine 3.24.2 中 wolfSSL 5.9.4 的软件包,构建时启用了 HAVE_ECC、HAVE_ED25519、HAVE_CURVE25519 和 WOLFSSL_HAVE_MLKEM,但没有启用 HAVE_ED448、HAVE_DILITHIUM、Koblitz 或 Brainpool 曲线,也没有启用 WOLFSSL_ECDSA_DETERMINISTIC_K。自定义构建在其中每一项上都可能不同。
wc_ecc_sign_hash 对你计算好的摘要签名并返回 DER;对于原始签名,wc_ecc_verify_hash_ex 以整数形式接收 r 和 s。验证有两个输出:函数的返回码表示它能否运行,int *res 参数则保存验证结论。把 64 字节的原始签名传给 wc_ecc_verify_hash,返回 -171(ECC ASN1 bad key data, invalid input),结论为 0;只检查返回码或只检查结论的代码,都会错误处理两种情况之一。示例会同时打印两者。
在这个构建中,nonce 是随机的(RFC 6979 确定性签名需要 WOLFSSL_ECDSA_DETERMINISTIC_K),s 没有经过规范化,high-S 签名也能验证通过。支持的曲线从 P-224 到 P-521;除非启用,否则没有 secp256k1 和 Brainpool。Ed25519 可用,ML-KEM-768 通过 wc_MlKemKey_* 完成了封装和解封装;这个构建中没有 ML-DSA(Dilithium)。
密钥以 DER 形式传递:wc_EccPublicKeyToDer 写出 SPKI,wc_EccKeyToDer 写出 SEC1 ECPrivateKey;由于该软件包设置了 WOLFSSL_DER_TO_PEM,也可以转换为 PEM(wc_DerToPem)。Alpine 软件包声明的许可证为 GPL-3.0-only;商业许可证由 wolfSSL Inc. 另行出售。可以用 DER ⇄ 原始格式转换器对照其他协议栈检查编码。