Amazon on tutvustanud aws-lc-rs krüptograafilist raamatukogu, mis on mõeldud kasutamiseks Rusti rakendustes ja on API-ühilduv ring Rust raamatukoguga. Projekti koodi levitatakse Apache 2.0 ja ISC litsentside all. Teek toetab Linuxi (x86, x86-64, aarch64) ja macOS (x86-64) platvorme.
Krüptooperatsioonide rakendamine aws-lc-rs-is põhineb AWS-LC teegil (AWS libcrypto), mis on kirjutatud C++ keeles ja põhineb omakorda BoringSSL projekti koodil (Google'i poolt hooldatav OpenSSL-i järg). Lisaks pakutakse välja kaks madala tasemega kastipaketti: aws-lc-sys (automaatselt genereeritud madala taseme sidumine AWS-LC kaudu) ja aws-lc-fips-sys (madala taseme sidumine FFI-l (välisfunktsiooni liides)), mis taastoodab AWS-LC API-d.
AWS-LC teek sisaldab SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH ja ECDSA algoritmide ametlikult kontrollitud teostusi, mis vastavad krüptosüsteemide nõuetele, mida saavad kasutada Ameerika Ühendriikide ja Kanada valitsusasutused. Rusti köite loomine on tingitud vajadusest omada FIPS-ühilduvaid krüptoteeke, mida saab kasutada Rusti projektides. Amazon otsustas aws-lc-rs teegis ühendada Ring API, mis on Rust programmeerijate seas tuttav ja levinud, ning kontrollis AWS-LC teegist pärit algoritmide teostusi, mis vastavad FIPS nõuetele.
AWS-LC teegi kasutamine alusena võimaldas kasutada ka kõiki Amazoni poolt välja töötatud spetsiifilisi optimeerimisi aws-lc-rs-is. Näiteks pakub AWS-LC valikuid ChaCha20-Poly1305 ja NIST P-256 algoritmidele, mis on eraldi optimeeritud ARM-protsessorite jaoks, samuti on tehtud olulisi optimeerimisi x86-süsteemide jaoks, et kiirendada ECDSA digitaalallkirjade töötlemist. TLS 1.2 ja 1.3 protokollide toimimise testimisel ületas aws-lc-rs teek jõudluse poolest märkimisväärselt rustlsi paketti, näidates nii ühenduse seadistamise aja lühenemist kui ka läbilaskevõime suurenemist (ECDSA testides enam kui kaks korda).
Allikas: opennet.ru