wolfSSL está pensado para sistemas embebidos y despliegues FIPS, y casi todo es una opción de compilación: las curvas, las variantes de EdDSA, los nonces deterministas, los algoritmos poscuánticos y la compatibilidad con PEM aparecen y desaparecen con las opciones de ./configure. Los datos de esta página describen el paquete de Alpine 3.24.2 de wolfSSL 5.9.4, compilado con HAVE_ECC, HAVE_ED25519, HAVE_CURVE25519 y WOLFSSL_HAVE_MLKEM, pero sin HAVE_ED448, sin HAVE_DILITHIUM, sin curvas Koblitz ni Brainpool y sin WOLFSSL_ECDSA_DETERMINISTIC_K. Una compilación personalizada puede diferir en cada uno de esos puntos.
wc_ecc_sign_hash firma un resumen que calculas tú y devuelve DER; wc_ecc_verify_hash_ex recibe r y s como enteros para las firmas en bruto. La verificación tiene dos salidas: el código de retorno de la función indica si pudo ejecutarse, y el argumento int *res contiene el veredicto. Una firma en bruto de 64 bytes pasada a wc_ecc_verify_hash devolvió -171 (ECC ASN1 bad key data, invalid input) con el veredicto 0; el código que comprueba solo el código de retorno, o solo el veredicto, gestiona mal uno de los dos casos. El ejemplo imprime ambos.
En esta compilación, los nonces son aleatorios (la firma determinista RFC 6979 necesita WOLFSSL_ECDSA_DETERMINISTIC_K), s no se normaliza y las firmas high-S se verifican. Las curvas disponibles iban de P-224 a P-521; secp256k1 y Brainpool no están salvo que se activen. Ed25519 funciona, y ML-KEM-768 completó la encapsulación y la desencapsulación mediante wc_MlKemKey_*; ML-DSA (Dilithium) no está en esta compilación.
Las claves se intercambian en DER: wc_EccPublicKeyToDer escribe SPKI y wc_EccKeyToDer escribe un ECPrivateKey SEC1; la conversión a PEM (wc_DerToPem) está disponible porque el paquete activa WOLFSSL_DER_TO_PEM. El paquete de Alpine declara su licencia como GPL-3.0-only; wolfSSL Inc. vende licencias comerciales por separado. Compara las codificaciones con las de otras pilas en el conversor DER ⇄ en bruto.