Safe Haskell | Safe-Infered |
---|
It is suggested you use the 'crypto-api' class-based interface to access the MD5 algorithm. Either rely on type inference or provide an explicit type:
hashFileStrict = liftM hash' B.readFile hashFileLazyBS = liftM hash B.readFile
- data MD5Context
- data MD5Digest
- md5InitialContext :: MD5Context
- md5 :: ByteString -> MD5Digest
- md5Update :: MD5Context -> ByteString -> MD5Context
- md5Finalize :: MD5Context -> ByteString -> MD5Digest
- class (Serialize d, Eq d, Ord d) => Hash ctx d | d -> ctx, ctx -> d where
- outputLength :: Tagged d BitLength
- blockLength :: Tagged d BitLength
- initialCtx :: ctx
- updateCtx :: ctx -> ByteString -> ctx
- finalize :: ctx -> ByteString -> d
Types
data MD5Context Source
The type for final results.
After finalizing a context, using md5Finalize, a new type is returned to prevent 're-finalizing' the structure.
Static data
md5InitialContext :: MD5ContextSource
The initial context to use when calling md5Update for the first time
Functions
md5 :: ByteString -> MD5DigestSource
Processes a lazy ByteString and returns the md5 digest. This is probably what you want.
md5Update :: MD5Context -> ByteString -> MD5ContextSource
Alters the MD5Context with a partial digest of the data.
The input bytestring MUST be a multiple of the blockSize or bad things can happen (incorrect digest results)!
md5Finalize :: MD5Context -> ByteString -> MD5DigestSource
Closes an MD5 context, thus producing the digest.
Crypto-API interface
class (Serialize d, Eq d, Ord d) => Hash ctx d | d -> ctx, ctx -> d where
The Hash class is intended as the generic interface
targeted by maintainers of Haskell digest implementations.
Using this generic interface, higher level functions
such as hash
and hash'
provide a useful API
for comsumers of hash implementations.
Any instantiated implementation must handle unaligned data
:: ctx | An initial context, provided with the first call to |
:: ctx | |
-> ByteString | |
-> ctx | Used to update a context, repeatedly called until all data is exhausted
must operate correctly for imputs of |
:: ctx | |
-> ByteString | |
-> d | Finializing a context, plus any message data less than the block size, into a digest |