17 releases (9 breaking)
new 0.20.0 | May 5, 2025 |
---|---|
0.18.0 | Mar 12, 2025 |
0.15.0 | Dec 20, 2024 |
0.13.0-pre.1 | Oct 31, 2024 |
0.2.2 |
|
#398 in Database interfaces
32 downloads per month
Used in 2 crates
715KB
17K
SLoC
CipherStash Client SDK
Website | Docs | Discussions
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
To get started add the cipherstash-client
dependency to your Cargo.toml
[dependencies]
cipherstash-client = "0.12"
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() {
use cipherstash_client::WorkspaceId;
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 workspace_id = WorkspaceId::try_from("E4UMRN47WJNSMAKR").expect("Valid ID");
let access_key = client.create_access_key("Test Access Key", workspace_id)
.await
.expect("failed to create access key");
}
Dependencies
~26–44MB
~746K SLoC