raaz: The raaz cryptographic library.

[ codec, library, program, raaz ] [ Propose Tags ]

Raaz is a cryptographic library for Haskell. The library is designed with a special emphasis on using the type system of Haskell to eliminate a large set of vulnerabilities like buffer overflows, timing attacks etc. It also strives to achieve this safety with no compromise on performance.


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
opt-native

Use optimisation for the platform on which it is being built. Do not enable this when cross compiling as it can break the implementation. Also tested only with gcc.

Disabled
vector128

Make use of vector instructions with size being 128. Do not enable this unless you have reasons to. It is better to use opt-native and opt-vectorise and let gcc have a go at the portable implementation

Disabled
vector256

Make use of gcc vector instructions with size being 256. Do not enable this unless you have reasons to. It is better to use opt-native and opt-vectorise and let gcc have a go at the portable implementation.

Disabled
vector512

Make use of gcc vector instructions with size being 512.

Disabled
avx2

Support avx2 optimisations. Warning: enable only if you are sure of support.

Disabled
linux-getrandom

Use the getrandom for system entropy instead of devurandom. Available only on linux kernel > 3.17.

Disabled
liquidhaskell

Use liquid haskell form verifying properties. Only for developers.

Disabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.0.1, 0.0.2, 0.1.0, 0.1.1, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9 (info)
Change log CHANGELOG.md
Dependencies base (>=4.6 && <4.11), bytestring (>=0.9 && <0.11), deepseq (>=1.1 && <1.5), optparse-applicative (>=0.10.0), raaz, transformers, vector (>=0.7.1 && <0.13) [details]
License BSD-3-Clause
Author Piyush P Kurur
Maintainer ppk@cse.iitk.ac.in
Category Codec, Raaz
Home page http://github.com/raaz-crypto/raaz
Bug tracker https://github.com/raaz-crypto/raaz/issues
Source repo head: git clone https://github.com/raaz-crypto/raaz
Uploaded by PiyushKurur at 2017-08-25T03:32:05Z
Distributions Debian:0.2.1, NixOS:0.3.9
Executables raaz
Downloads 5384 total (44 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-08-25 [all 1 reports]

Readme for raaz-0.2.0

[back to package description]

Raaz: A secure cryptographic library

Build Staus Build Windows In Progress Stackage LTS Stackage Nightly Hackage Hackage Dependencies

This is the repository of raaz, a Haskell library that implements some standard cryptographic primitives. This library is the basis on which we plan to build a cryptographic framework in Haskell. For example, there are plans to implement some common cryptographic protocols like ssh. Thus applications that require cryptographic security, in particular secure networking applications can be built out of this.

Raaz is also an attempt to provide better security guarantees by making use of Haskell's strong typing. Besides, we put a lot of emphasis on better API design and good documentation which, we believe, makes the usage of the library secure.

The word Raaz (राज़) stands for secret in Hindi.

Hacking and Discussion

For details please refer to our wiki.

Releasing and reviewing.

The repository also contains the file Releasing.md which contains checklist for releasing a new version of the library. Any crypto library should undergo through review by multiple people. In the file Reviewing.md, we collect some common pitfalls to look for while reviewing the code. It is good to actively look for some of the problems suggested there but of course one should also look for other problems.