Standardkryptoanbieter wechseln

In diesem Dokument wird beschrieben, wie Sie den standardmäßigen rustls-Kryptoanbieter in Rust ändern. Möglicherweise möchten Sie den standardmäßigen Kryptografieanbieter wechseln, wenn Ihre Anwendung bestimmte Anforderungen hat, die von unserem Standard nicht erfüllt werden.

Die Rust-Clientbibliotheken verwenden Rustls, um die Kommunikation zwischen Ihrer Anwendung und Google Cloudzu sichern. Rustls kann verschiedene Anbieter für kryptografische Funktionen verwenden. Standardmäßig aktivieren die Clientbibliotheken den Anbieter aws-lc-rs. Die Clientbibliotheken verwenden diese als Standard, da sie auf BoringSSL basiert, einer angesehenen Kryptografiebibliothek, die von Google implementiert wurde. Außerdem ist sie der einzige Rust-Kryptografieanbieter, der FIPS-zertifiziert ist.

Trotzdem müssen einige Anwendungen möglicherweise einen anderen Anbieter verwenden. In diesem Leitfaden wird beschrieben, wie Sie den Standardanbieter deaktivieren und einen eigenen konfigurieren. Dabei wird anhand von google-cloud-storage veranschaulicht, wie Sie die Anforderungen für Rust ändern. ring wird als alternativer Kryptoanbieter verwendet. Dieser Prozess kann für andere Clientbibliotheken angepasst werden. Weitere Anbieter finden Sie in der rustls-Dokumentation.

Clientbibliotheken mit dem Standard-Kryptoanbieter verwenden

Wenn Sie den Standard-Krypto-Anbieter verwenden möchten, fügen Sie die Clientbibliothek als Abhängigkeit in Ihre Cargo.toml-Datei ein:

[dependencies]
google-cloud-storage = { version = "1" }

Standardmäßigen Kryptoanbieter verwenden, während andere Standardfunktionen deaktiviert sind

Bei einigen Anwendungen werden alle Standardfunktionen in den Abhängigkeiten deaktiviert und dann nur die Funktionen aktiviert, die verwendet werden sollen. Beispiel: Ihre Cargo.toml könnte so aussehen:

[dependencies]
google-cloud-storage = { version = "1", default-features = false }

So aktivieren Sie nur die Funktion „Standardanbieter“:

[dependencies]
google-cloud-storage = { version = "1", default-features = false, features = ["default-rustls-provider"] }

Eigenen Kryptoanbieter verwenden

So wählen Sie Ihren eigenen Anbieter aus:

  1. Fügen Sie Rust hinzu, wobei die Standardfunktionen deaktiviert sind, und fügen Sie alle für Ihren Anbieter erforderlichen Abhängigkeiten hinzu. In diesem Leitfaden verwenden wir ring:

    Sie müssen dieselbe Version von `rustls` wie `google-cloud-storage` verwenden.
    [dependencies]
    google-cloud-storage = { version = "1", default-features = false }
    rustls               = { version = "0.23", features = ["ring"] }
    
  2. Ändern Sie die main()-Funktion, um diesen Anbieter zu installieren:

    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(())
    }