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 (ΠΎΠ³ΡΠ°Π½ΠΎΠΊ Π½Π° OpenSSL ΡΡΠΎ Π³ΠΎ ΠΎΠ΄ΡΠΆΡΠ²Π° Google). ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π°Ρ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π·Π° Π³Π°ΡΠ±Π° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ: aws-lc-sys (Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ Π²ΡΡΠΊΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΏΡΠ΅ΠΊΡ AWS-LC) ΠΈ aws-lc-fips-sys (Π²ΡΠ·ΡΠ²Π°ΡΠ° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° FFI (ΡΡΡΠ°Π½ΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ) ), ΡΠ΅ΠΏΡΠΎΠ΄ΡΡΠΈΡΠ°ΡΡΠΈ Π³ΠΎ AWS-LC API.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° 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 Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π³ΠΎ Π½Π°Π΄ΠΌΠΈΠ½Π° ΠΏΠ°ΠΊΠ΅ΡΠΎΡ rustls Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΡΡΠΈ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΡΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° Π²ΡΡΠΊΠ°ΡΠ° ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠ½Π°ΡΠ° ΠΌΠΎΡ (ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΠ΄ Π΄Π²Π°ΠΏΠ°ΡΠΈ Π²ΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΈΡΠ΅ ECDSA).
ΠΠ·Π²ΠΎΡ: opennet.ru