/cryptid-native

Native foundation of the CryptID.js Identity-based Encryption library.

Primary LanguageCApache License 2.0Apache-2.0

CryptID

Build Native Build WASI Coverage Status Total alerts Language grade: C/C++ License

Cross-platform Identity-based Cryptography and Attribute-based Cryptography solution.

CryptID.native

Cross-platform C implementation of the Boneh-Franklin Identity-based Encryption system as described in RFC 5091, the Hess Identity-based Signature protocol described in Hess-IBS and the BSW Ciphertext-Policy Attribute-based Encryption described in BSW CP-ABE.

CryptID.native provides the foundation of CryptID.js which is a WebAssembly library mainly targeting browsers.

If you're new to CryptID and Identity-based Encryption, then make sure to check out the CryptID Getting Started guide.

Building CryptID.native

Dependencies

CryptID requires the following components to be present:

  • gcc 5+,
  • Node.js v8+,
  • GMP 6+.
    • Please note, that GMP-LAWL is not capable of integrating with CryptID.native in a stable manner yet. Thus, the use of the vanilla GMP library is advised.

Creating a Static Library

A static library can be created using the following command:

./task.sh build

The resulting library (libcryptid.a) will be placed in the build directory.

Example

The example codes for every feature of the library is located in the examples directory.

License

CryptID.native is licensed under the Apache License 2.0.

Licenses of dependencies:

Acknowledgements

This work is partially supported by the construction EFOP-3.6.3-VEKOP-16-2017-00002. The project is supported by the European Union, co-financed by the European Social Fund and by the 2018-1.2.1-NKP-2018-00004 Security Enhancing Technologies for the Internet of Things project.

CryptID CryptID