MCJL - Milagro Crypto Java Library

Master Branch Master Build Status Master Coverage Status

Description

MCJL - Milagro Crypto Java Library

  • MCJL is a standards compliant JavaScript cryptographic library with no external dependencies except for the random seed source.

  • MCJL is a refactor of the Java code of AMCL. For a detailed explanation about this library please read: AMCL.pdf.

  • MCJL supports the standards for RSA, ECDH, ECIES, ECDSA and M-PIN, AES-GCM encryption/decryption, SHA256, SHA384, SHA512 and SHA3 hash functions and a cryptographically secure random number generator. Furthermore we recently added New Hope, a post-quantum key exchange.

This library is created from the Java code in this directory ACML project. The config64.py script has been run in this AMCL directory and all the curves and RSA security level were selected for a 64-bit build; the output Java files from this process are used in this project. If you require a smaller JAR file please follow the instructions in the AMCL project.

Software Dependencies

In order to build this library, the following packages are required:

Setup

This library is avaiable on Maven Central.

Replace VERSION below with required version.

To use MCJL with Maven project, use:

<dependency>
  <groupId>org.miracl.milagro.amcl</groupId>
  <artifactId>milagro-crypto-java</artifactId>
  <version>VERSION</version>
</dependency>

For Gradle project:

dependencies {
   compile 'org.miracl.milagro.amcl:milagro-crypto-java:VERSION'
}

Fill the gradle.properties file if you want to upload on Maven Central.

MCJL needs Java 8.

Local Installation

Use this command to compile library and install it as artifact to local Maven repository.

./gradlew clean build publishToMavenLocal --stacktrace --info

Contributions

Contributions are very welcome. Please make pull requests to the develop branch. You can run this command to build and test the code.

./gradlew build