All Projects → minio → Kes

minio / Kes

Licence: agpl-3.0
KES is a simple, stateless and distributed key-management system

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Kes

Age
A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
Stars: ✭ 9,409 (+5500.6%)
Mutual labels:  modern, encryption, secure-by-default
Easycrypt
Android cryptography library with SecureRandom patches.
Stars: ✭ 102 (-39.29%)
Mutual labels:  cryptography, encryption
0fc
Anonymous web chat server, built on top of Themis/WebThemis
Stars: ✭ 98 (-41.67%)
Mutual labels:  cryptography, encryption
Open Crypto
🔑 Hashing (BCrypt, SHA2, HMAC), encryption (AES), public-key (RSA), and random data generation.
Stars: ✭ 115 (-31.55%)
Mutual labels:  cryptography, encryption
Cryptr
A simple shell utility for encrypting and decrypting files using OpenSSL.
Stars: ✭ 81 (-51.79%)
Mutual labels:  cryptography, encryption
Themis
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Stars: ✭ 1,232 (+633.33%)
Mutual labels:  cryptography, encryption
Gitpass
Open Source Your Password (Mismanagement)!
Stars: ✭ 113 (-32.74%)
Mutual labels:  cryptography, encryption
Seal Demo
Demos, Examples, Tutorials for using Microsoft SEAL library.
Stars: ✭ 63 (-62.5%)
Mutual labels:  cryptography, encryption
Chest
Bash glue to encrypt and hide files
Stars: ✭ 123 (-26.79%)
Mutual labels:  cryptography, encryption
Noise
.NET Standard 1.3 implementation of the Noise Protocol Framework (revision 33 of the spec)
Stars: ✭ 124 (-26.19%)
Mutual labels:  cryptography, encryption
Demo Twilio Backend Nodejs
A sample backend that demonstrates how to generate a Virgil JWT and Twilio token used for authentication with the Virgil and Twilio services
Stars: ✭ 128 (-23.81%)
Mutual labels:  cryptography, encryption
Webcrypto
W3C Web Cryptography API for Node.js
Stars: ✭ 79 (-52.98%)
Mutual labels:  cryptography, encryption
Simon speck ciphers
Implementations of the Simon and Speck Block Ciphers
Stars: ✭ 74 (-55.95%)
Mutual labels:  cryptography, encryption
Wg Install
Wireguard road warrior installer for Ubuntu, Debian, CentOS and Fedora
Stars: ✭ 99 (-41.07%)
Mutual labels:  encryption, secure-by-default
Lazysodium Android
An Android implementation of the Libsodium cryptography library. For the lazy dev.
Stars: ✭ 69 (-58.93%)
Mutual labels:  cryptography, encryption
Cryfs
Cryptographic filesystem for the cloud
Stars: ✭ 1,560 (+828.57%)
Mutual labels:  cryptography, encryption
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+1180.36%)
Mutual labels:  cryptography, encryption
Wolfssl
wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Stars: ✭ 1,098 (+553.57%)
Mutual labels:  cryptography, encryption
Fhe Toolkit Linux
IBM Fully Homomorphic Encryption Toolkit For Linux. This toolkit is a Linux based Docker container that demonstrates computing on encrypted data without decrypting it! The toolkit ships with two demos including a fully encrypted Machine Learning inference with a Neural Network and a Privacy-Preserving key-value search.
Stars: ✭ 1,123 (+568.45%)
Mutual labels:  cryptography, encryption
Cryptogotchas
A collection of common (interesting) cryptographic mistakes.
Stars: ✭ 118 (-29.76%)
Mutual labels:  cryptography, encryption

KES

Go Reference build license

KES is a stateless and distributed key-management system for high-performance applications. We built KES as the bridge between modern applications - running as containers on Kubernetes - and centralized KMS solutions. Therefore, KES has been designed to be simple, scalable and secure by default. It has just a few knobs to tweak instead of a complex configuration and does not require a deep understanding of secure key-management or cryptography.

Architecture

KES

Install

Binary Releases

OS ARCH Binary
Linux amd64 linux-amd64
Linux arm64 linux-arm64
Linux ppc64le linux-ppc64le
Linux s390x linux-s390x
Apple M1 arm64 darwin-arm64
Apple amd64 darwin-amd64
Windows amd64 windows-amd64

You can also verify the binary with minisign by downloading the corresponding .minisig signature file. Then run:

minisign -Vm kes-<OS>-<ARCH> -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav

Docker

Pull the latest release via:

docker pull minio/kes

Build from source

GO111MODULE=on go get github.com/minio/kes/cmd/kes

You will need a working Go environment. Therefore, please follow How to install Go. Minimum version required is go1.14

Getting Started

We run a public KES server instance at https://play.min.io:7373 for you to experiment with. Just follow the steps below to get a first impression of how easy it is to use KES as a client. All you need is cURL.

If you instead want to run a KES server locally as your first steps then checkout our Getting Started Guide.

1. Fetch the root identity

As an initial step, you will need to download the "private" key and certificate to authenticate to the KES server as the root identity.

curl -sSL --tlsv1.2 \
   -O 'https://raw.githubusercontent.com/minio/kes/master/root.key' \
   -O 'https://raw.githubusercontent.com/minio/kes/master/root.cert'

2. Create a new master key

Then, you can create a new master key named e.g. my-key.

curl -sSL --tlsv1.3 --http2 \
    --key root.key \
    --cert root.cert \
    -X POST 'https://play.min.io:7373/v1/key/create/my-key'

Note that creating a new key will fail with key does already exist if it already exist.

3. Generate a new data encryption key (DEK)

Now, you can use that master key to derive a new data encryption key.

curl -sSL --tlsv1.3 --http2 \
    --key root.key \
    --cert root.cert \
    --data '{}' \
    -X POST 'https://play.min.io:7373/v1/key/generate/my-key'

You will get a plaintext and a ciphertext data key. The ciphertext data key is the encrypted version of the plaintext key. Your application would use the plaintext key to e.g. encrypt some application data but only remember the ciphertext key version.

4. Use the KES CLI client

For more sophisticated tasks, like managing policies or audit log tracing, you may want to use the KES CLI. Therefore, point your CLI to our KES instance:

export KES_SERVER=https://play.min.io:7373
export KES_CLIENT_KEY=root.key
export KES_CLIENT_CERT=root.cert

Then run a KES CLI command. For example:

kes key list

If you want to learn more about KES checkout our documentation.

License

Use of KES is governed by the AGPLv3 license that can be found in the LICENSE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].