Dokumen ini menjelaskan cara mengganti penyedia kripto rustls default di
Rust. Anda mungkin ingin mengganti penyedia kripto default
jika aplikasi Anda memiliki persyaratan khusus yang tidak dipenuhi oleh default kami.
Library klien Rust menggunakan Rustls untuk mengamankan komunikasi antara aplikasi Anda dan Google Cloud. Rustls dapat menggunakan penyedia yang berbeda untuk fungsi kriptografi. Secara default, library klien mengaktifkan penyedia aws-lc-rs. Library klien menggunakan ini sebagai default karena didasarkan pada BoringSSL, library kripto yang sangat dihargai yang diimplementasikan oleh Google, dan merupakan satu-satunya penyedia kripto Rust yang disertifikasi FIPS.
Namun, beberapa aplikasi mungkin perlu menggunakan penyedia yang berbeda. Panduan ini menunjukkan cara menonaktifkan penyedia default dan mengonfigurasi penyedia Anda sendiri, menggunakan
google-cloud-storage untuk mengilustrasikan cara mengubah persyaratan untuk
Rust, dengan ring sebagai penyedia kripto alternatif. Proses ini dapat disesuaikan untuk library klien lainnya. Lihat dokumentasi rustls
untuk penyedia tambahan.
Menggunakan library klien dengan penyedia kripto default
Untuk menggunakan penyedia kripto default, tambahkan library klien sebagai dependensi ke
file Cargo.toml Anda:
[dependencies]
google-cloud-storage = { version = "1" }
Menggunakan penyedia kripto default dengan fitur default lainnya yang dinonaktifkan
Beberapa aplikasi lebih memilih untuk menonaktifkan semua fitur default dalam dependensinya, lalu hanya mengaktifkan fitur yang ingin mereka gunakan. Misalnya,
Cargo.toml Anda mungkin berbunyi:
[dependencies]
google-cloud-storage = { version = "1", default-features = false }
Untuk mengaktifkan fitur penyedia default saja, gunakan:
[dependencies]
google-cloud-storage = { version = "1", default-features = false, features = ["default-rustls-provider"] }
Menggunakan penyedia kripto Anda sendiri
Untuk memilih penyedia Anda sendiri:
Tambahkan Rust dengan fitur default yang dinonaktifkan dan sertakan dependensi yang diperlukan untuk penyedia Anda. Dalam panduan ini, kita menggunakan
ring:Anda harus menggunakan versi `rustls` yang sama dengan `google-cloud-storage`.[dependencies] google-cloud-storage = { version = "1", default-features = false } rustls = { version = "0.23", features = ["ring"] }Ubah fungsi
main()Anda untuk menginstal penyedia ini: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(()) }