Amazon presentou aws-lc-rs, unha biblioteca criptográfica deseñada para o seu uso en aplicacións Rust e compatible a nivel de API coa biblioteca de anel Rust. O código do proxecto distribúese baixo licenzas Apache 2.0 e ISC. A biblioteca admite o traballo en plataformas Linux (x86, x86-64, aarch64) e macOS (x86-64).
A implementación de operacións criptográficas en aws-lc-rs baséase na biblioteca AWS-LC (AWS libcrypto), escrita en C++ e, á súa vez, baseada en código do proxecto BoringSSL (un fork de OpenSSL compatible con Google). Ademais, propóñense dous paquetes de caixas de baixo nivel: aws-lc-sys (envoltorios de baixo nivel xerados automaticamente sobre AWS-LC) e aws-lc-fips-sys (envoltorios de baixo nivel baseados en FFI (Foreign Function Interface)). , reproducindo a API de AWS-LC.
A biblioteca AWS-LC inclúe implementacións formalmente verificadas dos algoritmos SHA-2, HMAC, AES-GCM, AES-KWP, HKDF, ECDH e ECDSA que cumpren os requisitos dos sistemas criptográficos que poden ser utilizados polas axencias gobernamentais dos Estados Unidos e Canadá. A creación dun marco para a linguaxe Rust foi impulsada pola necesidade de bibliotecas criptográficas compatibles con FIPS que puidesen usarse nos proxectos Rust. Na biblioteca aws-lc-rs, Amazon decidiu combinar a familiar e estendida API de Ring entre os programadores de Rust e as implementacións verificadas de algoritmos da biblioteca AWS-LC que cumpren cos requisitos de FIPS.
Usar a biblioteca AWS-LC como base tamén permitiu utilizar todas as optimizacións específicas desenvolvidas por Amazon en aws-lc-rs. Por exemplo, AWS-LC ofrece variantes dos algoritmos ChaCha20-Poly1305 e NIST P-256 que se optimizan por separado para procesadores ARM, así como optimizacións significativas para sistemas x86 que aceleran o procesamento de sinaturas dixitais ECDSA. Ao probar os protocolos TLS 1.2 e 1.3, a biblioteca aws-lc-rs superou significativamente o paquete rustls, demostrando tanto unha redución no tempo de configuración da conexión como un aumento do rendemento (máis que dobrado nas probas ECDSA).
Fonte: opennet.ru