Niels Möller
Je suis heureux d'annoncer la nouvelle grande version de GNU Nettle, une bibliothèque de fonctions cryptographiques de bas niveau. Cette version comprend plusieurs modifications de l'API, dont certaines sont assez significatives, ainsi que la suppression de fonctions obsolètes. Il y a une nouvelle fonctionnalité notable : le support des signatures SLH-DSA (un algorithme de signature numérique basé sur un hachage sans état).
Il s'agit d'une nouvelle grande version. Elle inclut le support de SLH-DSA. Plusieurs modifications ont été apportées à l'API Nettle et des fonctions obsolètes ont été supprimées. De plus, l'ABI a été amélioré, ce qui fait que l'API est restée pratiquement inchangée, en particulier, les structures de contexte pour certains algorithmes ont été réduites…
Modifications :
- Dans les fonctions _digest des algorithmes de hachage, de MAC et d'AEAD, le paramètre pour la taille du hachage souhaitée n'est plus pris en compte ; à la place, elles renvoient toujours un hachage de taille complète. En conséquence, le type nettle_hash_digest_func a également été modifié.
- Les fonctions pour le traitement des messages complets en utilisant CCM AES prennent désormais comme premier argument un contexte de chiffrement constant. Par exemple, le premier argument de la fonction ccm_aes128_encrypt_message est maintenant une structure constante aes128_ctx*. Auparavant, c'était une structure ccm_aes128_ctx*, qui ignorait tout sauf le contexte de chiffrement de base.
- Les fonctions SHA3 utilisent désormais la même structure sha3_ctx pour toutes les variantes de hachage, ainsi que la même fonction sha3_init. Les anciens noms, tels que sha3_256_ctx et sha3_256_init, sont définis comme des alias de préprocesseur pour assurer la compatibilité ascendante.
- L'argument dst_length des fonctions base16_decode_update et base64_decode_update est désormais à la fois un argument d'entrée et de sortie. En entrée, il doit contenir la taille du tampon cible, le décodage échouera si cette taille est insuffisante. Auparavant, dst_length n'était qu'un argument de sortie, et il fallait que le tampon cible soit suffisamment grand pour toute valeur d'entrée de longueur src_length donnée.
Source : linux.org.ru
