Skip to content

Repository files navigation

Krypto

This repository contains libraries to facilitate cross-language cryptographic messaging between Kolide products.

Project Layout

This project has a variety of languages all stored in a big pile.

  1. It's a gem!
  2. It's a go module!

Enjoy!

Setup

MacOS

To run tests or lint on MacOS, you will need Go, brew, and openssl@v3:

brew install openssl@3
export CGO_CFLAGS="-I$(brew --prefix openssl)/include"
export CGO_LDFLAGS="-L$(brew --prefix openssl)/lib"

Additional steps are required to successfully run the secure enclave tests, see documentation here.

FAQ

1. But Why?

We work with various languages, and while they support many cryptography functions, finding the common set functions has a fair bit of trial and error. These libraries hardcode those settings, and build additional tools over them.

In isolation, NaCl (or libsodium) would be a good approach. But that's not an easy library to bring into our ecosystem at this time.

2. Why a dedicated repo?

Unlike many of our libraries, this is in a dedicated repository.

This was chosen to make it easier to isolate the parts that are cross language compatible, and thus must update in tandem. There is a set of cross language tests in cross_language_tests/ designed to check this. (They are go tests, and can be run as go test ./cross_language_tests/)

Thanks and References

This wouldn't be possible without the work of various people. As code, blog posts, and stackoverflow posts.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages