Umbral implementation in Golang
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

goUmbral CircleCI

goUmbral is a Go implementation of David Nuñez's threshold proxy re-encryption scheme: Umbral. Implemented with OpenSSL, goUmbral is an open-source cryptography library based on the referential python library, pyUmbral.

goUmbral is still in major development and the API in considered unstable. It will be changing a lot.

Pre-Release Blogpost:

Quick Installation

OpenSSL is a required dependency. OpenSSL versions 1.1.0+ work but it is recommended to install OpenSSL version 1.1.1.

Install OpenSSL system wide or link to your local installation in the build.go file of umbral.

The NuCypher team uses Go for managing goUmbral's dependencies. The recommended installation procedure is as follows:

go get -u

Then just include the package at the top of your file:

import ""

Academic Whitepaper

The Umbral scheme academic whitepaper and cryptographic specifications are available on GitHub.

"Umbral: A Threshold Proxy Re-Encryption Scheme" by David Nuñez

Support & Contribute

OFAC Sanctions Disclaimer

By using this software, you hereby affirm you are not an individual or entity subject to economic sanctions administered by the U.S. Government or any other applicable authority, including but not limited to, sanctioned party lists administered by the U.S. Treasury Department’s Office of Foreign Assets Control (OFAC), the U.S. State Department, and the U.S. Commerce Department. You further affirm you are not located in, or ordinarily resident in, any country, territory or region subject to comprehensive economic sanctions administered by OFAC, which are subject to change but currently include Cuba, Iran, North Korea, Syria and the Crimea region.