cosmiancryptocore   ![Build Status] ![Latest Version]

This crate implements crypto primitives which are used in many other Cosmian cryptographic resources:

The crate also defines CryptoCoreError, the error type, and a few traits.

Symmetric Crypto

This crate implements a Data Encapsulation Mechanism (DEM) based on the AES 256 GCM algorithm, as described in the ISO 2004. This implementation is 128-bits secure.

It uses the aes_gcm implementation of the AES GCM algorithm. This implementation make use of the AES instruction when available, which allows a high encryption speed.

Asymmetric Crypto

This crate implements a public and a private key objects based on Curve25519. This is the fastest elliptic curve known when implementing these objects. Its security level is also 128 bits.

It uses the Dalek implementation, which also offers an implementation of the Ristretto technique to construct a prime order group on the curve. This group is used to implement the public key.

Key Derivation Function (KDF)

This crate uses the hkdf implementation of the HKDF algorithm, along with the Sha256 implementation of the Rust standard library in order to implement a KDF.

Since Sha256 is 128-bits secure, this makes this KDF 128-bits secure too.

Random Number Generator (RNG)

This crate uses the implementation of the HC128 algorithm from the Rust standard library to construct our RNG. It is therefore 128-bits secure.

Building

The default feature schemes can all be built to a WASM target.