Amazon ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° aws-lc-rs, ΠΊΠΎΡΡΠΎ Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² Rust ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΅ API-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠ° Ρ ring Rust Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡΠ΅ Apache 2.0 ΠΈ ISC. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Linux (x86, x86-64, aarch64) ΠΈ macOS (x86-64) ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ.
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² aws-lc-rs ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° AWS-LC (AWS libcrypto), Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° C++ ΠΈ Π½Π° ΡΠ²ΠΎΠΉ ΡΠ΅Π΄ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° ΠΊΠΎΠ΄ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° BoringSSL (ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½ ΠΎΡ Google ΡΠ°Π·ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ Π½Π° OpenSSL). ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠ° Π·Π° ΠΊΠ°ΡΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ: aws-lc-sys (Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΏΡΠ΅Π· AWS-LC) ΠΈ aws-lc-fips-sys (ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° FFI (ΡΡΠΆΠ΄ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ) ), Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΉΠΊΠΈ API Π½Π° AWS-LC.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° AWS-LC Π²ΠΊΠ»ΡΡΠ²Π° ΡΠΎΡΠΌΠ°Π»Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH ΠΈ ECDSA, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΠ²Π΅Π½ΠΈ Π°Π³Π΅Π½ΡΠΈΠΈ Π² Π‘ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠ΅ ΡΠ°ΡΠΈ ΠΈ ΠΠ°Π½Π°Π΄Π°. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Rust ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° FIPS-ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Rust. Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° aws-lc-rs Amazon ΡΠ΅ΡΠΈ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Ring API, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ·Π½Π°Ρ ΠΈ ΡΠ΅ΡΡΠΎ ΡΡΠ΅ΡΠ°Π½ ΡΡΠ΅Π΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈΡΠ΅ Π½Π° Rust, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° AWS-LC, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π½Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° FIPS.
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° AWS-LC ΠΊΠ°ΡΠΎ ΠΎΡΠ½ΠΎΠ²Π° ΡΡΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ ΠΎΡ Amazon Π² aws-lc-rs. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, AWS-LC ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΎΠΏΡΠΈΠΈ Π·Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈΡΠ΅ ChaCha20-Poly1305 ΠΈ NIST P-256, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π·Π° ARM ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ, ΠΈ ΡΠ° Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π° x86 ΡΠΈΡΡΠ΅ΠΌΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΡΡΠΊΠΎΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ECDSA. ΠΡΠΈ ΡΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ TLS 1.2 ΠΈ 1.3 Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° aws-lc-rs Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°Π΄ΠΌΠΈΠ½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° rustl ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΠΉΠΊΠΈ ΠΊΠ°ΠΊΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ (ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π²Π° ΠΏΡΡΠΈ Π² ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ECDSA).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru