cipherstash-client

Crates.iocipherstash-client
lib.rscipherstash-client
version0.13.0-pre.1
sourcesrc
created_at2022-05-12 00:53:14.805975
updated_at2024-10-31 10:41:05.722837
descriptionThe official CipherStash SDK
homepagehttps://cipherstash.com
repositoryhttps://github.com/cipherstash/cipherstash
max_upload_size
id584949
size600,928
Dan Draper (coderdan)

documentation

https://docs.rs/cipherstash-client

README

CipherStash Client SDK

Crates.io Version docs.rs Built by CipherStash

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() {
  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");
}
Commit count: 0

cargo fmt