Νιλς Μέλερ
Είμαι στην ευχάριστη θέση να ανακοινώσω μια σημαντική νέα έκδοση του GNU Nettle, μιας βιβλιοθήκης κρυπτογράφησης χαμηλού επιπέδου. Αυτή η έκδοση περιλαμβάνει αρκετές αλλαγές στο API, μερικές από τις οποίες είναι αρκετά σημαντικές, καθώς και την αφαίρεση παρωχημένων συναρτήσεων. Ένα αξιοσημείωτο νέο χαρακτηριστικό είναι η υποστήριξη για υπογραφές SLH-DSA (ένας αλγόριθμος ψηφιακής υπογραφής χωρίς κατάσταση που βασίζεται σε hash).
Αυτή είναι μια σημαντική νέα έκδοση. Περιλαμβάνει υποστήριξη για SLH-DSA. Έχουν γίνει αρκετές αλλαγές στο Nettle API και έχουν αφαιρεθεί παρωχημένες λειτουργίες. Επιπλέον, το ABI έχει βελτιωθεί, αφήνοντας το API σε μεγάλο βαθμό αμετάβλητο. Συγκεκριμένα, οι δομές περιβάλλοντος για αρκετούς αλγόριθμους έχουν μειωθεί.
Αλλαγές:
- Οι συναρτήσεις _digest των αλγορίθμων κατακερματισμού, MAC και AEAD, δεν δέχονται πλέον το επιθυμητό μέγεθος digest ως όρισμα. Αντίθετα, επιστρέφουν πάντα ένα digest πλήρους μεγέθους. Ο τύπος nettle_hash_digest_func έχει αλλάξει ανάλογα.
- Οι συναρτήσεις για την επεξεργασία πλήρων μηνυμάτων χρησιμοποιώντας CCM AES δέχονται πλέον ένα σταθερό περιβάλλον κρυπτογράφησης ως πρώτο όρισμα. Για παράδειγμα, το πρώτο όρισμα της συνάρτησης ccm_aes128_encrypt_message είναι πλέον η σταθερή δομή aes128_ctx*. Προηγουμένως, αυτή ήταν η δομή ccm_aes128_ctx*, η οποία αγνοούσε τα πάντα εκτός από το υποκείμενο περιβάλλον κρυπτογράφησης.
- Οι συναρτήσεις SHA3 χρησιμοποιούν πλέον την ίδια δομή sha3_ctx για όλες τις παραλλαγές κατακερματισμού, καθώς και την ίδια συνάρτηση sha3_init. Τα παλιά ονόματα, όπως sha3_256_ctx και sha3_256_init, ορίζονται ως ψευδώνυμα προεπεξεργαστή για συμβατότητα με παλαιότερες εκδόσεις.
- Το όρισμα dst_length των συναρτήσεων base16_decode_update και base64_decode_update είναι πλέον όρισμα εισόδου και εξόδου. Όταν χρησιμοποιείται ως είσοδος, πρέπει να περιέχει το μέγεθος του buffer προορισμού. Η αποκωδικοποίηση θα αποτύχει εάν αυτό το μέγεθος δεν επαρκεί. Προηγουμένως, το dst_length ήταν μόνο ένα όρισμα εξόδου, απαιτώντας το buffer προορισμού να είναι αρκετά μεγάλο για οποιαδήποτε τιμή εισόδου του καθορισμένου μήκους src_length.
Πηγή: linux.org.ru
