Niels Möller
Sono felice di annunciare il nuovo grande rilascio di GNU Nettle, una libreria a basso livello per funzioni crittografiche. Questo rilascio include diverse modifiche all'API, alcune delle quali piuttosto significative, oltre alla rimozione di funzioni obsolete. C'è una nuova funzionalità notevole: il supporto per le firme SLH-DSA (algoritmo di firma digitale basato su hashing senza stato).
Si tratta di un nuovo grande rilascio. Include il supporto per SLH-DSA. Sono state apportate diverse modifiche all'API di Nettle e sono state rimosse funzioni obsolete. Inoltre, è stato migliorato l'ABI, il che significa che l'API è rimasta praticamente invariata, in particolare le strutture di contesto per diversi algoritmi sono state ridotte…
Novità:
- Nelle funzioni _digest degli algoritmi di hashing, MAC e AEAD non accettano più come argomento la dimensione desiderata del digest, bensì restituiscono sempre un digest di dimensione completa. Di conseguenza, è stata modificata anche la tipologia di nettle_hash_digest_func.
- Le funzioni per l'elaborazione dei messaggi completi utilizzando CCM AES ora accettano come primo argomento un contesto di crittografia costante. Ad esempio, il primo argomento della funzione ccm_aes128_encrypt_message è ora una struttura costante aes128_ctx*. In precedenza, si trattava di una struttura ccm_aes128_ctx*, in cui veniva ignorato tutto tranne il contesto di crittografia di base.
- Ora le funzioni SHA3 utilizzano la stessa struttura sha3_ctx per tutte le varianti di hash, oltre alla stessa funzione sha3_init. I vecchi nomi, come sha3_256_ctx e sha3_256_init, sono definiti come alias del preprocessore per garantire la compatibilità retroattiva.
- L'argomento dst_length delle funzioni base16_decode_update e base64_decode_update è ora sia un argomento di input che di output. In ingresso, deve contenere la dimensione del buffer di destinazione; la decodifica fallirà se questa dimensione non è sufficiente. In precedenza, dst_length era solo un argomento di output, e si richiedeva che il buffer di destinazione fosse sufficientemente grande per qualsiasi valore di input di lunghezza src_length specificata.
Fonte: linux.org.ru
