Crate cipherstash_client
Expand description
§CipherStash SDK
The CipherStash SDK is the main way of interacting with CipherStash services. It includes clients for talking to ZeroKMS, CipherStash Token Service (CTS) and the services used to power Audit.
It also contains all the indexing and encryption logic used in CipherStash products.
§Getting Started
§Creating a ZeroKMS Client
Use the ZeroKMSConfig
to create a new ZeroKMS
client. With this you can:
- Manage datasets, config and clients
- Encrypt and decrypt data
use cipherstash_client::ZeroKMSConfig;
#[tokio::main]
async fn main() {
let client = ZeroKMSConfig::builder()
.with_env()
.build()
.expect("failed to build config")
.create_client();
let dataset = client.create_dataset("users", "A dataset used to encrypt my users' information")
.await
.expect("failed to create dataset");
}
§Creating a CTS Client
Use the CtsConfig
struct to create a new CTSClient
. With this you can:
- Manage access keys and identity tokens
use cipherstash_client::{ CtsConfig, ConsoleConfig, CTSClient };
#[tokio::main]
async fn main() {
let console_config = ConsoleConfig::builder()
.with_env()
.build()
.expect("failed to build config");
let cts_config = CtsConfig::builder()
.with_env()
.build()
.expect("failed to build config");
let client = CTSClient::new(cts_config.base_url(), console_config.credentials());
let access_key = client.create_access_key("Test Access Key", "WORKSPACE-A")
.await
.expect("failed to create access key");
}
Re-exports§
pub use zero_kms::vitur_client;
pub use config::ConsoleConfig;
pub use config::CtsConfig;
pub use config::ZeroKMSConfig;
pub use cts_client::CTSClient;
pub use zero_kms::ZeroKMS;
pub use zerokms_protocol::cipherstash_config as schema;
Modules§
- Module for structs used to configure various internal service clients.
- Module for interacting with the CipherStash Console API.
- Module for credential providers for various internal services.
- Module for the CipherStash Token Service client library
- Module for CipherStash encryption schemes and indexers
- Module for interacting with the CipherStash Logging and Audit API.
- Module for the client library for managing customer hosted resources
- Module with a reusable reqwest client with built in retry logic
- Module for interacting with the ZeroKMS API and encrypting and decrypting data