hopenssl-2.2.1: FFI Bindings to OpenSSL's EVP Digest Interface

Maintainersimons@cryp.to
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell98

OpenSSL.EVP.Digest.Algorithm

Description

Low-level bindings to OpenSSL's EVP interface. Most users do not need this code. Check out OpenSSL.Digest for a more comfortable interface.

Synopsis

Documentation

newtype Algorithm Source #

An opaque handle into OpenSSL's collection of message digest algorithms. Use digestByName to look up any of the available algorithms by name. For the sake of convenience, Algorithm is an instance of IsString so that the compiler can transparently map String literals to algorithms via fromString if the XOverloadedStrings extension is enabled.

>>> fromString "sha256" == digestByName "sha256"
True

Constructors

Algorithm (Ptr ()) 

digestByName :: String -> Algorithm Source #

Look up a digest algorithm engine by name. Algorithms usually offered by OpenSSL are "md2", "md5", "sha1", "mdc2", "ripemd160", "blake2b512", "blake2s256", "sha224", "sha256", "sha384", and "sha512", but the exact set may vary between platforms. Throws UnknownAlgorithm if the requested algorithm is not known.

digestByName' :: String -> Maybe Algorithm Source #

Variant of digestByName that signals failure by evaluating to Nothing rather than failing.

>>> digestByName' "sha256" == Just (digestByName "sha256")
True
>>> digestByName' "Guess what?" :: Maybe Algorithm
Nothing

digestSize :: Algorithm -> Int Source #

Return the size of the digest in bytes that the given algorithm will produce.

>>> digestSize (digestByName "sha256")
32

maxDigestSize :: Int Source #

The largest possible digest size of any of the algorithms supported by this library will generate. So if you want to store a digest without bothering to retrieve the appropriate size with digestSize first, allocate a buffer of that size.

digestBlockSize :: Algorithm -> Int Source #

Return the block size the the given algorithm operates with.

>>> digestBlockSize (digestByName "sha256")
64