GNU хамхуул 4.0

Нильс Мёллер

Доод түвшний криптографийн сан болох GNU Nettle-ийн шинэ томоохон хувилбарыг зарлаж байгаадаа баяртай байна. Энэхүү хувилбарт хэд хэдэн API өөрчлөлтүүд багтсан бөгөөд зарим нь нэлээд чухал бөгөөд хуучирсан функцуудыг хассан болно. Нэг онцлох шинэ боломж бол SLH-DSA гарын үсгийг (төлөв бус хэш дээр суурилсан дижитал гарын үсгийн алгоритм) дэмжих явдал юм.
Энэ бол томоохон шинэ хувилбар юм. Үүнд SLH-DSA-г дэмжих боломжтой. Nettle API-д хэд хэдэн өөрчлөлт хийгдсэн бөгөөд хуучирсан функцуудыг хассан. Нэмж дурдахад, ABI-г сайжруулж, API-г бараг өөрчлөөгүй. Тодруулбал, хэд хэдэн алгоритмын контекст бүтцийг багасгасан.

Өөрчлөлт:

  • Хэш алгоритмууд болох MAC болон AEAD-ийн _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 гэх мэт хуучин нэрсийг арагшаа нийцтэй байдлын хувьд урьдчилсан процессорын хуурамч нэр гэж тодорхойлдог.
  • base16_decode_update болон base64_decode_update функцүүдийн dst_length аргумент нь одоо оролт болон гаралтын аргумент болсон. Оролт болгон ашиглахад зорилтот буферийн хэмжээг агуулсан байх ёстой; хэрэв энэ хэмжээ хангалтгүй бол декодлох ажиллагаа амжилтгүй болно. Өмнө нь dst_length нь зөвхөн гаралтын аргумент байсан бөгөөд зорилтот буфер нь заасан src_length урттай аливаа оролтын утгад хангалттай том байхыг шаарддаг байсан.

Эх сурвалж: linux.org.ru

сэтгэгдэл нэмэх