本文說明如何在 Rust 中切換預設 rustls 加密供應商。如果應用程式有特定需求,而預設供應商無法滿足,您可能需要切換預設加密供應商。
Rust 用戶端程式庫使用 Rustls,確保應用程式與 Google Cloud之間的通訊安全。Rustls 可針對密碼編譯函式使用不同供應商。根據預設,用戶端程式庫會啟用 aws-lc-rs 提供者。用戶端程式庫會將此做為預設值,因為這是以 BoringSSL 為基礎,而 BoringSSL 是 Google 實作的知名加密程式庫,也是唯一通過 FIPS 認證的 Rust 加密供應商。
不過,部分應用程式可能需要使用其他供應商。本指南說明如何停用預設供應商並設定自己的供應商,並以 google-cloud-storage 為例,說明如何使用 ring 做為替代加密供應商,變更 Rust 的需求。您可以為其他用戶端程式庫自訂這個程序。如需其他供應商,請參閱 rustls 說明文件。
使用用戶端程式庫和預設加密服務供應商
如要使用預設加密服務供應商,請將用戶端程式庫新增為 Cargo.toml 檔案的依附元件:
[dependencies]
google-cloud-storage = { version = "1" }
使用預設加密貨幣供應商,並停用其他預設功能
部分應用程式偏好停用依附元件中的所有預設功能,然後只啟用想使用的功能。舉例來說,您的 Cargo.toml 可能會顯示:
[dependencies]
google-cloud-storage = { version = "1", default-features = false }
如要只啟用預設供應商功能,請使用:
[dependencies]
google-cloud-storage = { version = "1", default-features = false, features = ["default-rustls-provider"] }
使用自己的加密編譯供應商
如要選取自己的供應商,請按照下列步驟操作:
新增 Rust,並停用預設功能,然後加入供應商所需的任何依附元件。在本指南中,我們使用
ring:您必須使用與 `google-cloud-storage` 相同的 `rustls` 版本。[dependencies] google-cloud-storage = { version = "1", default-features = false } rustls = { version = "0.23", features = ["ring"] }變更
main()函式,安裝這個供應商: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(()) }