Ce document explique comment changer de fournisseur de chiffrement rustls par défaut dans Rust. Vous pouvez changer de fournisseur de services de chiffrement par défaut si votre application a des exigences spécifiques auxquelles notre fournisseur par défaut ne répond pas.
Les bibliothèques clientes Rust utilisent Rustls pour sécuriser la communication entre votre application et Google Cloud. Rustls peut utiliser différents fournisseurs pour les fonctions de chiffrement. Par défaut, les bibliothèques clientes activent le fournisseur aws-lc-rs. Les bibliothèques clientes l'utilisent par défaut, car elle est basée sur BoringSSL, une bibliothèque de cryptographie réputée implémentée par Google. Il s'agit également du seul fournisseur de cryptographie Rust certifié FIPS.
Toutefois, certaines applications peuvent avoir besoin d'utiliser un autre fournisseur. Ce guide vous explique comment désactiver le fournisseur par défaut et configurer le vôtre, en utilisant google-cloud-storage pour illustrer comment modifier les exigences pour Rust, avec ring comme fournisseur de chiffrement alternatif. Ce processus peut être personnalisé pour d'autres bibliothèques clientes. Consultez la documentation rustls pour connaître les autres fournisseurs.
Utiliser les bibliothèques clientes avec le fournisseur de chiffrement par défaut
Pour utiliser le fournisseur de chiffrement par défaut, ajoutez la bibliothèque cliente en tant que dépendance à votre fichier Cargo.toml :
[dependencies]
google-cloud-storage = { version = "1" }
Utiliser le fournisseur de services de cryptomonnaie par défaut avec les autres fonctionnalités par défaut désactivées
Certaines applications préfèrent désactiver toutes les fonctionnalités par défaut dans leurs dépendances, puis n'activer que celles qu'elles souhaitent utiliser. Par exemple, votre Cargo.toml peut indiquer :
[dependencies]
google-cloud-storage = { version = "1", default-features = false }
Pour n'activer que la fonctionnalité de fournisseur par défaut, utilisez :
[dependencies]
google-cloud-storage = { version = "1", default-features = false, features = ["default-rustls-provider"] }
Utiliser votre propre fournisseur de services de cryptomonnaie
Pour sélectionner votre propre fournisseur :
Ajoutez Rust en désactivant les fonctionnalités par défaut et en incluant les dépendances nécessaires pour votre fournisseur. Dans ce guide, nous utilisons
ring:Vous devez utiliser la même version de `rustls` que `google-cloud-storage`.[dependencies] google-cloud-storage = { version = "1", default-features = false } rustls = { version = "0.23", features = ["ring"] }Modifiez votre fonction
main()pour installer ce fournisseur :use rustls::crypto::{CryptoProvider, ring::default_provider}; #[tokio::main] async fn main() -> anyhow::Result<()> { // Install a default crypto provider. CryptoProvider::install_default(default_provider()) .map_err(|_| anyhow::anyhow!("default crypto provider already installed"))?; // ... ... ... Ok(()) }