Introduction

This library contains a very thin Python wrapper for the Zenroom crypto virtual machine that has been developed as part of the DECODE project.

What is DECODE?

DECODE is a European Commission funded project exploring and piloting new technologies that give people more control over how they store, manage and use personal data generated online. We will test the technology we develop in two pilot sites and will explore the social benefits of widespread open data commons.

What is Zenroom?

Zenroom is a brand new virtual machine for fast cryptographic operations on Elliptic Curves. The Zenroom VM has no external dependencies, includes a cutting edge selection of C99 libraries and builds a small executable ready to run on: desktop, embedded, mobile, cloud and browsers (webassembly). It also compiles unikernel (without Linux).

It provides an execution environment for a domain specific language of cryptographic primitives using a dialect of Lua. The aim of this is to provide an environment which makes it very easy to write safe encryption logic, in the form of a Lua script. This script can then be passed into the Zenroom VM for execution.

For more details of the DSL please see the Zenroom API documentation.

What is this library?

This library simply provides a very thin wrapper around the core Zenroom crypto virtual machine, that aims to make its functionality slightly easier to use from Python code.

License

This library has currently been released under the GNU AGPL 3.0 License. This is a strong, free copyleft license published by the Free Software Foundation in 2007, which is based on the GNU General Public License.

Installation

The package has been published to PyPi, so should be installable via the following command:

$ pip install zenroom

Limitations

The library includes a static binary containing the Zenroom virtual machine, compiled for Linux (amd64) systems. As such this library will only work within this restricted environment.