Safe Haskell | None |
---|---|
Language | Haskell2010 |
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
Synopsis
- data MD5Context
- data MD5Digest
- md5InitialContext :: MD5Context
- md5 :: ByteString -> MD5Digest
- md5Update :: MD5Context -> ByteString -> MD5Context
- md5Finalize :: MD5Context -> ByteString -> MD5Digest
- md5DigestBytes :: MD5Digest -> ByteString
- 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
- hash :: ByteString -> d
- hash' :: ByteString -> d
Types
data MD5Context Source #
The type for final results.
Instances
Binary MD5Context Source # | |
Defined in Data.Digest.Pure.MD5 | |
Serialize MD5Context Source # | |
Defined in Data.Digest.Pure.MD5 put :: Putter MD5Context # get :: Get MD5Context # | |
Hash MD5Context MD5Digest Source # | |
Defined in Data.Digest.Pure.MD5 outputLength :: Tagged MD5Digest BitLength # blockLength :: Tagged MD5Digest BitLength # updateCtx :: MD5Context -> ByteString -> MD5Context # finalize :: MD5Context -> ByteString -> MD5Digest # hash :: ByteString -> MD5Digest # hash' :: ByteString -> MD5Digest # |
After finalizing a context, using md5Finalize, a new type is returned to prevent 're-finalizing' the structure.
Instances
Eq MD5Digest Source # | |
Ord MD5Digest Source # | |
Defined in Data.Digest.Pure.MD5 | |
Show MD5Digest Source # | |
Binary MD5Digest Source # | |
Serialize MD5Digest Source # | |
Hash MD5Context MD5Digest Source # | |
Defined in Data.Digest.Pure.MD5 outputLength :: Tagged MD5Digest BitLength # blockLength :: Tagged MD5Digest BitLength # updateCtx :: MD5Context -> ByteString -> MD5Context # finalize :: MD5Context -> ByteString -> MD5Digest # hash :: ByteString -> MD5Digest # hash' :: ByteString -> MD5Digest # |
Static data
md5InitialContext :: MD5Context Source #
The initial context to use when calling md5Update for the first time
Functions
md5 :: ByteString -> MD5Digest Source #
Processes a lazy ByteString and returns the md5 digest.
This is probably what you want. You can use show
to produce the standard hex
representation.
md5Update :: MD5Context -> ByteString -> MD5Context Source #
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 -> MD5Digest Source #
Closes an MD5 context, thus producing the digest.
md5DigestBytes :: MD5Digest -> ByteString Source #
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.
Minimum complete definition: outputLength
, blockLength
, initialCtx
,
updateCtx
, and finalize
.
:: 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 |
hash :: ByteString -> d #
Hash a lazy ByteString, creating a digest
hash' :: ByteString -> d #
Hash a strict ByteString, creating a digest
Instances
Hash MD5Context MD5Digest Source # | |
Defined in Data.Digest.Pure.MD5 outputLength :: Tagged MD5Digest BitLength # blockLength :: Tagged MD5Digest BitLength # updateCtx :: MD5Context -> ByteString -> MD5Context # finalize :: MD5Context -> ByteString -> MD5Digest # hash :: ByteString -> MD5Digest # hash' :: ByteString -> MD5Digest # |