A libsodium oferece um conjunto pequeno e opinativo de primitivas por trás de funções difíceis de usar errado; ela vem embutida no PHP, é usada por muitos bindings de linguagens e está integrada a aplicativos de mensagens. As assinaturas são apenas Ed25519: os cabeçalhos da 1.0.22 (verificados no pacote do Alpine 3.24.2) não declaram nenhuma função ECDSA, então qualquer coisa que use ES256 ou secp256k1 precisa de outra biblioteca.
A assinatura Ed25519 é determinística, como a RFC 8032 especifica — duas assinaturas da mesma mensagem foram idênticas —, e as funções crypto_sign_*_ph implementam o Ed25519ph, cujas assinaturas não são intercambiáveis com as do Ed25519 simples: no teste, o verificador simples rejeitou uma delas. A chave secreta tem 64 bytes, a semente de 32 bytes seguida da chave pública, enquanto a maioria das outras bibliotecas armazena só a semente; crypto_sign_ed25519_sk_to_seed e crypto_sign_seed_keypair convertem entre as duas formas, como mostra o exemplo.
A verificação é estrita onde outras implementações divergem. Uma assinatura com S substituído por S + L — o mesmo valor módulo a ordem do grupo, proibido pela RFC 8032 — foi rejeitada, assim como uma assinatura verificada com o ponto identidade, de ordem pequena, como chave pública. Bibliotecas que aceitam essas entradas divergem da libsodium em casos-limite, o que importa para sistemas de consenso, que precisam concordar sobre a validade. crypto_sign_verify_detached não recebe o comprimento da assinatura e lê exatamente 64 bytes; por isso, verifique o comprimento antes de chamá-la.
Na 1.0.22, o suporte pós-quântico se limita ao encapsulamento de chave: crypto_kem_mlkem768_* (chaves públicas de 1184 bytes, textos cifrados de 1088 bytes) e o híbrido X-Wing (crypto_kem_xwing_*, 1216 e 1120 bytes), que também é o que as funções genéricas crypto_kem_* usam por padrão. Não há ML-DSA nem outra assinatura pós-quântica. As chaves são sempre bytes brutos — chaves públicas e sementes de 32 bytes —, sem suporte a PEM, DER nem JWK. Compare os tamanhos de KEM no playground de KEM pós-quântico.