raaz-0.2.1: The raaz cryptographic library.

Safe HaskellNone
LanguageHaskell2010

Raaz.Hash.Sha1

Contents

Description

Deprecated: SHA1 is broken. This module is here only for transition.

This module exposes combinators to compute the SHA1 hash and the associated HMAC for some common types.

Synopsis

The broken SHA1 cryptographic hash.

We already have a collision for SHA1: https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html

While it does not yet rule out SHA1 for some specific tasks, there is no reason for its continual usage. This module is present only to facilitate the transition to a better hash. Use it assuming no security guarantees. Raaz will not try to optimise the implementations given here and will remove this module at some point of time. So do not rely on this for your software.

data SHA1 Source #

The cryptographic hash SHA1.

Instances
Eq SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

(==) :: SHA1 -> SHA1 -> Bool #

(/=) :: SHA1 -> SHA1 -> Bool #

Show SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

showsPrec :: Int -> SHA1 -> ShowS #

show :: SHA1 -> String #

showList :: [SHA1] -> ShowS #

IsString SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

fromString :: String -> SHA1 #

Storable SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

sizeOf :: SHA1 -> Int #

alignment :: SHA1 -> Int #

peekElemOff :: Ptr SHA1 -> Int -> IO SHA1 #

pokeElemOff :: Ptr SHA1 -> Int -> SHA1 -> IO () #

peekByteOff :: Ptr b -> Int -> IO SHA1 #

pokeByteOff :: Ptr b -> Int -> SHA1 -> IO () #

peek :: Ptr SHA1 -> IO SHA1 #

poke :: Ptr SHA1 -> SHA1 -> IO () #

Equality SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

eq :: SHA1 -> SHA1 -> Result Source #

EndianStore SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

store :: Ptr SHA1 -> SHA1 -> IO () Source #

load :: Ptr SHA1 -> IO SHA1 Source #

adjustEndian :: Ptr SHA1 -> Int -> IO () Source #

Encodable SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Recommendation SHA1 Source #

Recommended implementation for SHA1.

Instance details

Defined in Raaz.Hash.Sha1.Recommendation

Primitive SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Associated Types

type Implementation SHA1 :: Type Source #

Hash SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Initialisable (HashMemory SHA1) () Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

Methods

initialise :: () -> MT (HashMemory SHA1) () Source #

type Implementation SHA1 Source # 
Instance details

Defined in Raaz.Hash.Sha1.Internal

sha1 :: PureByteSource src => src -> SHA1 Source #

Compute the sha1 hash of an instance of PureByteSource. Use this for computing the sha1 hash of a strict or lazy byte string.

sha1File :: FilePath -> IO SHA1 Source #

Compute the sha1 hash of a file.

sha1Source :: ByteSource src => src -> IO SHA1 Source #

Compute the sha1 hash of a general byte source.

HMAC computation using SHA1

hmacSha1 :: PureByteSource src => Key (HMAC SHA1) -> src -> HMAC SHA1 Source #

Compute the message authentication code using hmac-sha1.

hmacSha1File :: Key (HMAC SHA1) -> FilePath -> IO (HMAC SHA1) Source #

Compute the message authentication code for a file.

hmacSha1Source :: ByteSource src => Key (HMAC SHA1) -> src -> IO (HMAC SHA1) Source #

Compute the message authetication code for a generic byte source.