aws-lc-rs expone AWS-LC —el fork de BoringSSL de Amazon— a través de una API inspirada en la de ring, de modo que la mayor parte del código de ring compila tras cambiar el nombre del crate. Es el proveedor criptográfico predeterminado de rustls y la opción de los servicios en Rust que necesitan validación FIPS 140-3 (la característica fips) o algoritmos poscuánticos. La biblioteca C se compila al compilar el crate; la comprobación compiló la 1.18.2 con las características predeterminadas en la imagen rust estándar.
Las codificaciones de firma funcionan exactamente igual que en ring: las constantes *_FIXED producen y aceptan r‖s en bruto de 64 bytes, y las constantes *_ASN1, DER; una firma en bruto falló con la constante de verificación ASN1. Los nonces son aleatorios, s no se normaliza y la verificación acepta s en cualquiera de las dos mitades. Además de las curvas P-256 y P-384 de ring, firma y verifica en P-521 y secp256k1, con variantes SHA-2 y SHA-3.
Los algoritmos poscuánticos forman parte de la API estable en la 1.18.2 —la comprobación se compiló sin la característica unstable—: ML-KEM-512, ML-KEM-768 y ML-KEM-1024 en aws_lc_rs::kem, y ML-DSA-44, ML-DSA-65 y ML-DSA-87 en aws_lc_rs::signature, que es lo que usa el ejemplo. Los tamaños que imprime —una clave pública de 1952 bytes y una firma de 3309 bytes para ML-DSA-65, y un texto cifrado de 1088 bytes para ML-KEM-768— son lo que tienen que transportar los certificados, los tokens y los handshakes; la herramienta de firmas poscuánticas y la herramienta de KEM los comparan con los de los algoritmos clásicos.
La carga de claves es más amplia que en ring: las claves ECDSA se cargan desde PKCS#8, DER SEC1 (RFC 5915) y un escalar en bruto junto con su clave pública, y las claves públicas, desde DER SPKI y puntos SEC1, comprimidos o no. A diferencia de ring, Ed25519KeyPair::from_pkcs8 aceptó la forma PKCS#8 v1 de 48 bytes que escribe OpenSSL.
Usa el conversor DER ⇄ en bruto cuando sospeches de una discrepancia entre FIXED y ASN1, y el generador de configuración TLS para los ajustes del intercambio de claves híbrido poscuántico.