Skip to content

JI-0/rainbow-go

 
 

Repository files navigation

Rainbow-go PQC

This is a simple bindings project for implementation of Rainbow PQC into Go/Golang.

Instructions

  1. Run the bash script with bash build.sh. This will generate all the *.so libraries for all the implementations. (NOTE: you may generate only a specific library by passing in the desired implementation and version of rainbow).

  2. Chenge the main package to use the desired implementation and version.

  3. Add the folder to your project as a subfolder.

Functions

The bindings are very simple and only have 3 functions:

  • func GenerateKeys(publicKey, privateKey string)
  • func Sign(privateKey, msg string) []byte
  • func Verify(publicKey string, sig []byte, msg string) bool

Original

This folder contains the digital content of the proposal

***** RAINBOW *****,

submitted to the NIST Post - Quantum Standardization Process

by

Jintai Ding, Ming-Shing Chen, Matthias Kannwischer, Jean Jacques Patarin, Albrecht Petzoldt, Dieter Schmidt and Bo-Yin Yang.

This folder contains the subfolders

Supporting_Documentation KAT Reference_Implementation Optimized_Implementation Alternative_Implementation


Supporting Documentation This folder contains the file Rainbow_Documentation.pdf, containing the algorithm specification, implementation details, performance data, security analysis as well as advantages and limitations of our scheme.

KAT This folder contains the Known Answer Test values of our implementation. More information on the content of this folder as well as an explanation how to generate the KATs, can be found in KAT/README.txt.

Reference_Implementation This folder contains the c-code of our Reference implementation of Rainbow. More information on the content of this folder as well as an explanation how to use the code can be found in Reference_Implementation/README.txt.

Optimized_Implementation This folder contains the c-code of our implementations of Rainbow optimized for amd64 architecture. More information on the content of the folder and how to use the code can be found in Optimized_Implementation/amd64/README.txt.


Alternative_Implementation This folder contains the c-code of our implementations of Rainbow optimized for avx2 and ssse3 instructions. More information on the content of the folder and how to use the code can be found in Alternative_Implementation/avx2/README.txt.

About

Rainbow signature system (PQC) for Go/Golang

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 99.8%
  • Other 0.2%