Este documento descreve como mudar o provedor de criptografia rustls padrão em
Rust. Talvez você queira mudar o provedor de criptografia padrão
se o aplicativo tiver requisitos específicos que não são atendidos pelo padrão.
As bibliotecas de cliente Rust usam Rustls para proteger a comunicação entre seu aplicativo e Google Cloud. O Rustls pode usar diferentes provedores para funções criptográficas. Por padrão, as bibliotecas cliente ativam o provedor aws-lc-rs. As bibliotecas de cliente usam isso como padrão porque se baseia no BoringSSL, uma biblioteca de criptografia bem avaliada implementada pelo Google, e é o único provedor de criptografia Rust certificado pelo FIPS.
No entanto, alguns aplicativos podem precisar usar um provedor diferente. Este guia
mostra como desativar o provedor padrão e configurar o seu próprio, usando
google-cloud-storage para ilustrar como mudar os requisitos do
Rust, com ring como um provedor de criptografia alternativo. Esse processo pode ser personalizado para outras bibliotecas de cliente. Consulte a documentação do rustls para outros provedores.
Usar as bibliotecas de cliente com o provedor de criptografia padrão
Para usar o provedor de criptografia padrão, adicione a biblioteca de cliente como uma dependência ao
arquivo Cargo.toml:
[dependencies]
google-cloud-storage = { version = "1" }
Usar o provedor de criptografia padrão com outros recursos padrão desativados
Alguns aplicativos preferem desativar todos os recursos padrão nas
dependências e ativar apenas os recursos que querem usar. Por exemplo, seu Cargo.toml pode dizer:
[dependencies]
google-cloud-storage = { version = "1", default-features = false }
Para ativar apenas o recurso de provedor padrão, use:
[dependencies]
google-cloud-storage = { version = "1", default-features = false, features = ["default-rustls-provider"] }
Usar seu próprio provedor de criptografia
Para selecionar seu próprio provedor:
Adicione o Rust com os recursos padrão desativados e inclua as dependências necessárias para seu provedor. Neste guia, usamos
ring:Você precisa usar a mesma versão de "rustls" e "google-cloud-storage".[dependencies] google-cloud-storage = { version = "1", default-features = false } rustls = { version = "0.23", features = ["ring"] }Mude a função
main()para instalar este provedor: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(()) }