newhope: Library implementing the NewHope cryptographic key-exchange protocol

[ apache, cryptography, library, program ] [ Propose Tags ]

This is a Haskell implementation of the NewHope key exchange protocol. It has been made via examination of the official NewHope project's public domain C reference code and the author is not affiliated with that team or with NIST. For further details please see the package README.


[Skip to Readme]
Versions [faq] 0.1.0.0
Change log ChangeLog.md
Dependencies AES (==0.2.*), base (>=4.7 && <5), bytestring (==0.10.*), containers (>=0.5 && <0.7), deepseq (==1.4.*), mtl (==2.2.*), system-fileio (>=0.3 && <90.4), system-filepath (==0.4.*), tasty-quickcheck (==0.10.*), text (==1.2.*), vector (==0.12.*) [details]
License Apache-2.0
Copyright © 2019 Jeremy Bornstein
Author Jeremy Bornstein
Maintainer jeremy@bornstein.org
Revised Revision 1 made by jeremy at Sun Mar 24 13:49:44 UTC 2019
Category Library, Cryptography
Home page https://github.com/unprolix/newhope#README.md
Bug tracker https://github.com/unprolix/newhope/issues
Source repo head: git clone https://github.com/unprolix/newhope
Uploaded by jeremy at Sat Mar 23 16:50:39 UTC 2019
Distributions NixOS:0.1.0.0
Executables speed, PQCgenKAT
Downloads 134 total (30 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-03-23 [all 1 reports]

Modules

[Index] [Quick Jump]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


Readme for newhope-0.1.0.0

[back to package description]

This is a Haskell implementation of the NewHope key exchange protocol. It has been made via examination of the official NewHope project's public domain C reference code and the author is not affiliated with that team or with NIST.

This codebase has not yet been reviewed by anyone other than the author. Until such time as it has been competently reviewed, please consider it as a draft implementation only, and do not rely on it for actual securtiy in practice. Judged by comparison with the reference library, it does produce correct results but could contain subtle (or obvious!) flaws. In addition, it has not been optimized for performance and at this stage is probably quite a bit slower than the reference C implementation on any given platform.

This project uses the Haskell build manager "stack" to produceː

  • Crypto.NewHope, a library intended for general use.

  • PQCgenKAT -- a binary which generates KAT (Known Answer Test) files in the format required by the NIST PQC project. Invoke this binary with the single argument "all" to generate all of the KAT files.

  • speed -- a binary which runs performance tests of some of the NewHope functionality. These tests correspond to largely equivalent tests in the reference NewHope C code.

In addition, the project contains a fair number of automatically-evaluated tests that cover a large swath of the important functionality implemented, including that tested by the "test" binaries built by the reference C source, and including comparison between the KAT output that we produce and that produced by the reference C implementation. To run the tests and view the results, execute stack test at a command line.

लोकाः समस्ताः सुखिनोभवंतु

Patches, comments, and discussion are welcome. The most appropriate place for these for the time being is probably the Github repository.