Skip to content

The Python API library to Cosmian Cloudproof Encryption

License

Notifications You must be signed in to change notification settings

Cosmian/cloudproof_python

Repository files navigation

Cloudproof Python Library

PyPI version Build status

The library provides a Python API to the Cloudproof Encryption product of the Cosmian Ubiquitous Encryption platform.

Licensing

The library is available under a dual licensing scheme Affero GPL/v3 and commercial. See LICENSE.md for details.

Cryptographic primitives

The library is based on:

  • Covercrypt algorithm which allows creating ciphertexts for a set of attributes and issuing user keys with access policies over these attributes. Covercrypt offers Post-Quantum resistance.

  • Findex which is a cryptographic protocol designed to securely make search queries on an untrusted cloud server. Thanks to its encrypted indexes, large databases can

Getting started

This library requires Python >= 3.7.

To install the current release:

pip install cloudproof_py

Code examples are available in ./examples to get you started. Please check the online documentation for more details on using the CloudProof APIs.

Demo

An interactive CLI demo combining policy-based encryption with searchable keywords.

Users data from ./examples/cli_demo/data.json are encrypted using Covercrypt and indexed via Findex.

Try the demo:

examples/cli_demo/run_demo.sh

Building and testing

To build from source:

scripts/build.sh

To build and run the tests:

scripts/build.sh -t

With PyO3 packages from package.cosmian.com:

scripts/build.sh -it

Note: edit scripts/ci_install_pyo3_builds.sh with the right build name.

To build the documentation:

scripts/build.sh -d

The generated documentation will be in ./docs/_build/html.

Versions Correspondence

This library depends on Covercrypt and Findex.

This table shows the minimum version correspondence between the various components.

cloudproof_py Covercrypt Findex KMS
>=4.2.0 13.0.0 6.0.0 4.10.0
>=4.1.0 12.0.0 5.0.0 4.5.0
>=4.0.2 11.0.0 4.0.1 4.4.3
>=4.0.1 11.0.0 4.0.1 4.4.2
>=4.0.0 11.0.0 4.0.0,4.0.1 4.3.3
>=3.0.0 11.0.0 3.0.0 4.3.3
>=2.0.0 10.0.0 2.0.1,2.1.0 4.2.0
>=1.0.0 8.0.1 2.0.0 -