O wolfSSL é voltado a sistemas embarcados e implantações FIPS, e quase tudo é uma opção de compilação: curvas, variantes de EdDSA, nonces determinísticos, algoritmos pós-quânticos e suporte a PEM entram e saem com flags do ./configure. Os fatos desta página descrevem o pacote do Alpine 3.24.2 do wolfSSL 5.9.4, compilado com HAVE_ECC, HAVE_ED25519, HAVE_CURVE25519 e WOLFSSL_HAVE_MLKEM, mas sem HAVE_ED448, HAVE_DILITHIUM, curvas Koblitz ou Brainpool, nem WOLFSSL_ECDSA_DETERMINISTIC_K. Um build personalizado pode ser diferente em cada um desses pontos.
wc_ecc_sign_hash assina um digest calculado por você e retorna DER; wc_ecc_verify_hash_ex recebe r e s como inteiros, para assinaturas brutas. A verificação tem duas saídas: o código de retorno da função diz se ela conseguiu ser executada, e o argumento int *res guarda o veredito. Uma assinatura bruta de 64 bytes passada a wc_ecc_verify_hash retornou -171 (ECC ASN1 bad key data, invalid input) com o veredito 0; quem confere só o código de retorno, ou só o veredito, trata errado um dos dois casos. O exemplo imprime os dois.
Neste build, os nonces são aleatórios (a assinatura determinística da RFC 6979 exige WOLFSSL_ECDSA_DETERMINISTIC_K), o s não é normalizado e assinaturas high-S passam na verificação. As curvas disponíveis iam da P-224 à P-521; secp256k1 e Brainpool ficam de fora, a menos que sejam habilitadas. O Ed25519 funciona, e o encapsulamento e o desencapsulamento com ML-KEM-768 funcionaram por meio de wc_MlKemKey_*; o ML-DSA (Dilithium) não está neste build.
As chaves circulam em DER: wc_EccPublicKeyToDer grava SPKI e wc_EccKeyToDer grava uma ECPrivateKey SEC1; a conversão para PEM (wc_DerToPem) está disponível porque o pacote define WOLFSSL_DER_TO_PEM. O pacote do Alpine declara a licença como GPL-3.0-only; licenças comerciais são vendidas à parte pela wolfSSL Inc. Compare as codificações com as de outras implementações usando o conversor DER ⇄ bruto.