Niels ΠΓΆller
Π Π°Π΄Π²Π°ΠΌ ΡΠ΅ Π΄Π° ΠΎΠ±ΡΠ²Ρ Π·Π° Π½ΠΎΠ²ΠΎΡΠΎ Π³ΠΎΠ»ΡΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° GNU Nettle, Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. Π’ΠΎΠ²Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² API, Π½ΡΠΊΠΎΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ° Π΄ΠΎΡΡΠ° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ, ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΌΠ° Π΅Π΄Π½Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠ° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ: ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° SLH-DSA ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ (Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΡΠΈΡΡΠΎΠ² ΠΏΠΎΠ΄ΠΏΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°Ρ ΡΠ΅ Π½Π° Ρ Π΅ΡΠΈΡΠ°Π½Π΅ Π±Π΅Π· Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ).
Π’ΠΎΠ²Π° Π΅ Π½ΠΎΠ²ΠΎ Π³ΠΎΠ»ΡΠΌΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. Π’ΠΎ Π²ΠΊΠ»ΡΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° SLH-DSA. ΠΠ°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² API Π½Π° Nettle, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ABI Π΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½, ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ API ΠΎΡΡΠ°Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½, ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡΠΈ Π·Π° ΡΠ΅Π΄ΠΈΡΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ Π±ΡΡ Π° Π½Π°ΠΌΠ°Π»Π΅Π½ΠΈ...
ΠΡΠΎΠΌΠ΅Π½ΠΈ:
- Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ _digest Π½Π° Ρ Π΅Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅, MAC ΠΈ AEAD Π²Π΅ΡΠ΅ Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ ΠΆΠ΅Π»Π°Π½ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ° ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ½ΠΎ ΠΈΠ·Π΄Π°Π²Π°Ρ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡ Ρ ΠΏΡΠ»Π΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, ΡΠΈΠΏΡΡ 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 ΡΠ΅Π³Π° Π΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ ΠΎΠ΄Π΅Π½ ΠΈ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ. ΠΠ° Π²Ρ ΠΎΠ΄Π° ΡΠΎΠΉ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΡΠ΅Π»Π΅Π²ΠΈΡ Π±ΡΡΠ΅Ρ, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠΈ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π°ΠΊΠΎ ΡΠΎΠ·ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½. ΠΠΎ-ΡΠ°Π½ΠΎ dst_length Π±Π΅ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ, Π° ΡΠ΅Π»Π΅Π²ΠΈΡΡ Π±ΡΡΠ΅Ρ ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π³ΠΎΠ»ΡΠΌ Π·Π° Π²ΡΡΠΊΠΎ Π²Ρ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π΄ΡΠ»ΠΆΠΈΠ½Π° src_length.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru
