Raaz is a cryptographic library which provides the state of the artcryptographic primitives via a high-level, type safe interface. Thedefault interface provided to the user is through the top levelmodule Raaz. Rather than bothering the user with low-level detailslike the selection of primitives or entropy sources, this top levelmodule only talks about the desired cryptographic operation (whetherit is message digest or message encryption etc). A standaloneapplication that needs cryptography should stick to using this toplevel interface.
Sometimes the selection of primitives is not in our hands --- we mayneed to interface with other programs written in other languages orusing other libraries. For such situation, raaz exposes a primitivespecific interface. As an example raaz exposes theRaaz.Digest.Sha256 module that gives the same interface as that ofRaaz.Digest but uses sha256 as the underlying cryptographic hash.
Use plain memset for wiping memory. The problem withits use is that agressive compilers often optimise it out. Raazuses platform specific functions designed specifically to avoidthis and hence enabling this flag is STRONGLY DISCOURAGED. Useit only if your platform does not support such a call.
Raaz is a cryptographic library in Haskell that provide a high leveland safe access to a lot of cryptographic operations. The library canbe used for standalone cryptographic applications as well as forimplementing other network protocols. Some of the features that areunique to raaz are the following
The recommended way to install raaz is through cabal-install version3.0 or above. We also need a version of GHC that supports backpack(for details on which version of GHC is supported, refer to ourCI-builds).
Unless required by applicable law or agreed to in writing, softwaredistributed under these Licenses is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express orimplied. For the exact terms and conditions see the accompanyingLICENSE file.