@hackage raaz0.3.9

Fast and type safe cryptography.

Raaz: A secure cryptographic library

Apache-2.0 OR BSD-3-Clause Hackage Hackage Dependencies

Raaz is a cryptographic library in Haskell that provide a high level and safe access to a lot of cryptographic operations. The library can be used for standalone cryptographic applications as well as for implementing other network protocols. Some of the features that are unique to raaz are the following

  1. Pervasive use of types for better safety.
  2. Default choice of primitives and implementations are safe.
  3. Mechanism to have multiple implementations for any given cryptographic primitives. An advanced user who has an in-depth knowledge of the platform should be able to plugin the desired implementation.
  4. Strong emphasis on API design with through documentation.

Building

The recommended way to install raaz is through cabal-install version 3.0 or above. We also need a version of GHC that supports backpack (for details on which version of GHC is supported, refer to our CI-builds).

cabal build
cabal test
cabal install

Online documentation

About the name

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

Copyright 2012 Piyush P Kurur

The library is licensed under

You may not use this software except in compliance with one of the above Licenses (at your option).

SPDX-License-Identifier: (Apache-2.0 OR BSD-3-Clause)

Unless required by applicable law or agreed to in writing, software distributed under these Licenses is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. For the exact terms and conditions see the accompanying LICENSE file.

  • Installation

  • Dependencies (130)

  • Dependents (1)

    @hackage/keysafe
  • Package Flags

      linux-getrandom
       (on by default)

      Use the getrandom for system entropy instead of devurandom. Enabled by default but disable this when building for kernel < 3.17.

      native
       (off by default)

      Compile for native architecture. Often this enables a lot of platform specific optimisation which lead to better performance. Do not enable this when packaging though. Also tested only with gcc

      wipe-memset
       (off by default)

      Use plain memset for wiping memory. The problem with its use is that agressive compilers often optimise it out. Raaz uses platform specific functions designed specifically to avoid this and hence enabling this flag is STRONGLY DISCOURAGED. Use it only if your platform does not support such a call.