wolfSSL zielt auf Embedded-Systeme und FIPS-Umgebungen, und fast alles ist eine Option zur Kompilierzeit: Kurven, EdDSA-Varianten, deterministische Nonces, Post-Quanten-Algorithmen und PEM-Unterstützung kommen und gehen mit den Flags von ./configure. Die Fakten auf dieser Seite beschreiben das Paket von wolfSSL 5.9.4 aus Alpine 3.24.2, gebaut mit HAVE_ECC, HAVE_ED25519, HAVE_CURVE25519 und WOLFSSL_HAVE_MLKEM, aber ohne HAVE_ED448, HAVE_DILITHIUM, Koblitz- oder Brainpool-Kurven und ohne WOLFSSL_ECDSA_DETERMINISTIC_K. Ein eigener Build kann sich in jedem dieser Punkte unterscheiden.
wc_ecc_sign_hash signiert einen Digest, den du berechnet hast, und gibt DER zurück; wc_ecc_verify_hash_ex nimmt für rohe Signaturen r und s als Ganzzahlen entgegen. Die Prüfung liefert zwei Ausgaben: Der Rückgabecode der Funktion sagt, ob sie ausgeführt werden konnte, und das Argument int *res enthält das Prüfergebnis. Eine rohe 64-Byte-Signatur, an wc_ecc_verify_hash übergeben, lieferte -171 (ECC ASN1 bad key data, invalid input) mit dem Prüfergebnis 0; Code, der nur den Rückgabecode oder nur das Prüfergebnis auswertet, behandelt einen der beiden Fälle falsch. Das Beispiel gibt beides aus.
In diesem Build sind Nonces zufällig (deterministisches Signieren nach RFC 6979 braucht WOLFSSL_ECDSA_DETERMINISTIC_K), s wird nicht normalisiert, und High-S-Signaturen bestehen die Prüfung. Die verfügbaren Kurven reichten von P-224 bis P-521; secp256k1 und Brainpool fehlen, sofern sie nicht aktiviert werden. Ed25519 funktioniert, und mit ML-KEM-768 gelangen Kapselung und Entkapselung über wc_MlKemKey_*; ML-DSA (Dilithium) ist in diesem Build nicht enthalten.
Schlüssel werden als DER ausgetauscht: wc_EccPublicKeyToDer schreibt SPKI und wc_EccKeyToDer einen ECPrivateKey im SEC1-Format; die Umwandlung in PEM (wc_DerToPem) ist verfügbar, weil das Paket WOLFSSL_DER_TO_PEM setzt. Das Alpine-Paket deklariert seine Lizenz als GPL-3.0-only; kommerzielle Lizenzen verkauft wolfSSL Inc. separat. Vergleiche Kodierungen mit denen anderer Stacks im Konverter DER ⇄ Raw.