packages feed

DRBG 0.5.4 → 0.5.5

raw patch · 2 files changed

+19/−13 lines, 2 filesdep ~cerealdep ~mtlPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: cereal, mtl

API changes (from Hackage documentation)

- Crypto.Random.DRBG: instance (CryptoRandomGen a, CryptoRandomGen b) => CryptoRandomGen (GenAutoReseed a b)
- Crypto.Random.DRBG: instance (CryptoRandomGen a, CryptoRandomGen b) => CryptoRandomGen (GenXor a b)
- Crypto.Random.DRBG: instance BlockCipher x => CryptoRandomGen (CtrDRBGWith x)
- Crypto.Random.DRBG: instance CryptoRandomGen HashDRBG
- Crypto.Random.DRBG: instance CryptoRandomGen HmacDRBG
- Crypto.Random.DRBG: instance CryptoRandomGen g => CryptoRandomGen (GenBuffered g)
- Crypto.Random.DRBG: instance SeedLength SHA1
- Crypto.Random.DRBG: instance SeedLength SHA224
- Crypto.Random.DRBG: instance SeedLength SHA256
- Crypto.Random.DRBG: instance SeedLength SHA384
- Crypto.Random.DRBG: instance SeedLength SHA512
- Crypto.Random.DRBG.CTR: instance Serialize a => Serialize (State a)
+ Crypto.Random.DRBG: instance (Crypto.Random.CryptoRandomGen a, Crypto.Random.CryptoRandomGen b) => Crypto.Random.CryptoRandomGen (Crypto.Random.DRBG.GenAutoReseed a b)
+ Crypto.Random.DRBG: instance (Crypto.Random.CryptoRandomGen a, Crypto.Random.CryptoRandomGen b) => Crypto.Random.CryptoRandomGen (Crypto.Random.DRBG.GenXor a b)
+ Crypto.Random.DRBG: instance Crypto.Classes.BlockCipher x => Crypto.Random.CryptoRandomGen (Crypto.Random.DRBG.CtrDRBGWith x)
+ Crypto.Random.DRBG: instance Crypto.Random.CryptoRandomGen Crypto.Random.DRBG.HashDRBG
+ Crypto.Random.DRBG: instance Crypto.Random.CryptoRandomGen Crypto.Random.DRBG.HmacDRBG
+ Crypto.Random.DRBG: instance Crypto.Random.CryptoRandomGen g => Crypto.Random.CryptoRandomGen (Crypto.Random.DRBG.GenBuffered g)
+ Crypto.Random.DRBG: instance Crypto.Random.DRBG.Hash.SeedLength Crypto.Hash.CryptoAPI.SHA1
+ Crypto.Random.DRBG: instance Crypto.Random.DRBG.Hash.SeedLength Crypto.Hash.CryptoAPI.SHA224
+ Crypto.Random.DRBG: instance Crypto.Random.DRBG.Hash.SeedLength Crypto.Hash.CryptoAPI.SHA256
+ Crypto.Random.DRBG: instance Crypto.Random.DRBG.Hash.SeedLength Crypto.Hash.CryptoAPI.SHA384
+ Crypto.Random.DRBG: instance Crypto.Random.DRBG.Hash.SeedLength Crypto.Hash.CryptoAPI.SHA512
+ Crypto.Random.DRBG.CTR: instance Data.Serialize.Serialize a => Data.Serialize.Serialize (Crypto.Random.DRBG.CTR.State a)
- Crypto.Random.DRBG.HMAC: generate :: Hash c d => State d -> BitLength -> AdditionalInput -> Maybe (RandomBits, State d)
+ Crypto.Random.DRBG.HMAC: generate :: (Hash c d) => State d -> BitLength -> AdditionalInput -> Maybe (RandomBits, State d)
- Crypto.Random.DRBG.HMAC: instantiate :: Hash c d => Entropy -> Nonce -> PersonalizationString -> State d
+ Crypto.Random.DRBG.HMAC: instantiate :: (Hash c d) => Entropy -> Nonce -> PersonalizationString -> State d
- Crypto.Random.DRBG.HMAC: reseed :: Hash c d => State d -> Entropy -> AdditionalInput -> State d
+ Crypto.Random.DRBG.HMAC: reseed :: (Hash c d) => State d -> Entropy -> AdditionalInput -> State d

Files

Crypto/Random/DRBG/HMAC.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE BangPatterns #-}+{-# OPTIONS_GHC -Wall     #-} module Crypto.Random.DRBG.HMAC         ( State, counter         , reseedInterval@@ -8,14 +9,10 @@  import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as L-import Data.Serialize (encode, Serialize(..))-import Data.Serialize.Put-import Data.Serialize.Builder (toByteString) import Data.Tagged (proxy) import Data.Word (Word64) import Crypto.Classes import Crypto.HMAC-import Crypto.Types import Crypto.Random.DRBG.Types  type Key = B.ByteString@@ -34,14 +31,15 @@ asProxyTypeOf = const  reseedInterval :: Word64-reseedInterval = 2^48+reseedInterval = 2^(48::Int) +fc :: B.ByteString -> L.ByteString fc = L.fromChunks . \s -> [s]  update :: (Hash c d) => State d -> L.ByteString -> State d update st input = st { value = newV , key = newK }   where-  hm k = hmac (MacKey k)+  hm x = hmac (MacKey x)   k    = key st   v    = value st   k'   = encode $ (hm k (L.concat [fc v, L.singleton 0, input]) `asProxyTypeOf` st)
DRBG.cabal view
@@ -1,5 +1,5 @@ name:           DRBG-version:        0.5.4+version:        0.5.5 license:        BSD3 license-file:   LICENSE author:         Thomas DuBuisson <thomas.dubuisson@gmail.com>@@ -10,8 +10,8 @@ category:       Cryptography stability:      stable build-type:     Simple-cabal-version:  >= 1.8-tested-with:    GHC == 6.10.1+cabal-version:  >= 1.10+tested-with:    GHC == 7.10.2 Data-Files: Test/HMAC_DRBG.txt Test/Hash_DRBG.txt Test/CTR_DRBG.txt Test/Dual_EC_DRBG.txt CHANGELOG extra-source-files:   Test/HMAC_DRBG.txt Test/Hash_DRBG.txt Test/CTR_DRBG.txt Test/Dual_EC_DRBG.txt@@ -21,10 +21,18 @@   default: False  Library-  Build-Depends: base >= 4.0 && < 5, cereal >= 0.2,-                 bytestring, prettyclass, tagged >= 0.7,-                 crypto-api >= 0.13, cryptohash-cryptoapi >= 0.1,-                 parallel, mtl >= 2.0, cipher-aes128 >= 0.6, entropy+  default-language: Haskell2010+  Build-Depends:   base >= 4.0 && < 5+                 , cereal >= 0.5 && < 0.6+                 , bytestring+                 , prettyclass+                 , tagged >= 0.7+                 , crypto-api >= 0.13+                 , cryptohash-cryptoapi >= 0.1+                 , parallel+                 , mtl >= 2.0 && < 2.3+                 , cipher-aes128 >= 0.6+                 , entropy   ghc-options: -O2   hs-source-dirs:   exposed-modules: Crypto.Random.DRBG.Hash,