Niels Möller
Z radością ogłaszam nową dużą wersję GNU Nettle, niskopoziomowej biblioteki funkcji kryptograficznych. Ta wersja zawiera wiele zmian w API, z których niektóre są dość istotne, a także usunięcie przestarzałych funkcji. Jedną z widocznych nowych funkcji jest wsparcie dla podpisów SLH-DSA (algorytmu podpisu cyfrowego opartego na haszowaniu bez stanu).
To nowa duża wersja. Zawiera wsparcie dla SLH-DSA. Wprowadzono kilka zmian w API Nettle, a także usunięto przestarzałe funkcje. Dodatkowo, poprawiono ABI, w wyniku czego API pozostało praktycznie niezmienione, a szczególnie zmniejszono struktury kontekstu dla kilku algorytmów…
Zmiany:
- W funkcjach _digest algorytmów haszujących, MAC i AEAD nie przyjmują już jako argumentu pożądanego rozmiaru hashu, zamiast tego zawsze zwracają hash pełnego rozmiaru. W związku z tym zmieniono również typ nettle_hash_digest_func.
- Funkcje przetwarzające pełne wiadomości z wykorzystaniem CCM AES teraz przyjmują jako pierwszy argument stały kontekst szyfrowania. Na przykład, pierwszym argumentem funkcji ccm_aes128_encrypt_message jest teraz stała struktura aes128_ctx*. Wcześniej była to struktura ccm_aes128_ctx*, w której ignorowano wszystko, poza podstawowym kontekstem szyfrowania.
- Funkcje SHA3 teraz używają tej samej struktury sha3_ctx dla wszystkich wariantów hash, a także tej samej funkcji sha3_init. Stare nazwy, takie jak sha3_256_ctx i sha3_256_init, są zdefiniowane jako aliasy preprocesora w celu zachowania zgodności wstecznej.
- Argument dst_length funkcji base16_decode_update i base64_decode_update jest teraz zarówno argumentem wejściowym, jak i wyjściowym. Na wejściu musi zawierać rozmiar docelowego bufora, dekodowanie zakończy się niepowodzeniem, jeśli ten rozmiar jest zbyt mały. Wcześniej dst_length był tylko argumentem wyjściowym i wymagał, aby bufor docelowy był wystarczająco duży dla dowolnej wartości wejściowej o zadanej długości src_length.
Źródło: linux.org.ru
