Skip to content
This repository has been archived by the owner on Jul 25, 2019. It is now read-only.

Latest commit

 

History

History
50 lines (36 loc) · 1.44 KB

README.md

File metadata and controls

50 lines (36 loc) · 1.44 KB

gimli

CircleCI

A Java implementation of the Gimli cryptographic permutation and hash algorithm:

Gimli is a 384-bit permutation designed to achieve high security with high performance across a broad range of platforms, including 64-bit Intel/AMD server CPUs, 64-bit and 32-bit ARM smartphone CPUs, 32-bit ARM microcontrollers, 8-bit AVR microcontrollers, FPGAs, ASICs without side-channel protection, and ASICs with side-channel protection.

In conforms to the test vectors produced by the reference C implementation. N.B: The test vectors for the hash algorithm are incorrect and this implementation conforms to the corrected test vectors.

Add to your project

<dependency>
  <groupId>com.codahale</groupId>
  <artifactId>gimli</artifactId>
  <version>0.1.3</version>
</dependency>

Note: module name for Java 9+ is com.codahale.gimli.

Use the thing

import com.codahale.gimli.Gimli;
import java.util.Arrays;

class Example {
  public void main(String... args) {
    final int[] state = new int[12]; // the input is 12 32-bit integers
    Gimli.permute(state);
    System.out.println(Arrays.toString(state));
  }
}

License

Copyright © 2017 Coda Hale

Distributed under the Apache License 2.0.