packages feed

curve25519 0.2.6 → 0.2.7

raw patch · 2 files changed

+38/−16 lines, 2 filesdep −DRBGdep ~HUnitdep ~QuickCheckdep ~basePVP ok

version bump matches the API change (PVP)

Dependencies removed: DRBG

Dependency ranges changed: HUnit, QuickCheck, base, tagged, test-framework, test-framework-hunit, test-framework-quickcheck2

API changes (from Hackage documentation)

Files

Test.hs view
@@ -1,9 +1,10 @@ import Control.Monad(replicateM)-import Crypto.Random(CryptoRandomGen, genSeedLength, newGen)-import Crypto.Random.DRBG(HashDRBG)+import Crypto.Random(CryptoRandomGen(..), GenError(..), ReseedInfo(..), genSeedLength, newGen) import Crypto.Types(ByteLength)+import Data.ByteString(ByteString) import qualified Data.ByteString as BS-import Data.Tagged(Tagged, unTagged)+import Data.Tagged(Tagged(..), unTagged)+import Data.Word(Word64) import Test.Framework import Test.Framework.Providers.HUnit(testCase) import Test.Framework.Providers.QuickCheck2(testProperty)@@ -16,15 +17,31 @@ data KeyPair = KP PrivateKey PublicKey   deriving (Show) +data FakeRandom = FakeRandom ByteString++randomBufferSize :: Word64+randomBufferSize = 512++instance CryptoRandomGen FakeRandom where+  newGen = Right . FakeRandom+  genSeedLength = Tagged (fromIntegral randomBufferSize)+  genBytes len (FakeRandom bs)+    | BS.length bs < len = Left RequestedTooManyBytes+    | (retval, rest) <- BS.splitAt len bs = Right (retval, FakeRandom rest)+  reseedInfo (FakeRandom bs) = InXBytes (fromIntegral (BS.length bs))+  reseedPeriod _ = InXBytes randomBufferSize+  genBytesWithEntropy len rest (FakeRandom bs) =  genBytes len (FakeRandom (BS.append bs rest))+  reseed new (FakeRandom old) = Right (FakeRandom (old `BS.append` new))+ instance Arbitrary KeyPair where   arbitrary =-    do let taggedSeedLen = genSeedLength :: Tagged HashDRBG ByteLength+    do let taggedSeedLen = genSeedLength :: Tagged FakeRandom ByteLength            seedLen       = unTagged taggedSeedLen        seedBS <- BS.pack `fmap` replicateM seedLen arbitrary        case newGen seedBS of          Left _ -> arbitrary          Right g ->-           case generateKeyPair (g :: HashDRBG) of+           case generateKeyPair (g :: FakeRandom) of              Left _ -> arbitrary              Right (priv, pub, _) -> return (KP priv pub) 
curve25519.cabal view
@@ -1,8 +1,11 @@ name:                curve25519-version:             0.2.6+version:             0.2.7 synopsis:            Fast implementations of the curve25519 elliptic curve primitives. description:         Haskell bindings and extensions to the curve25519-donna-                     codebase.+                     codebase. This module is a pretty straightforward implementation+                     of the basic cryptographic routines you'd want from a project that+                     uses curve25519: key generation, and key agreement. For further+                     functionality, you'll want to look elsewhere. homepage:            http://github.com/acw/curve25519 license:             BSD3 license-file:        LICENSE@@ -11,13 +14,16 @@ category:            Math build-type:          Simple cabal-version:       >=1.10+tested-with:         GHC==9.2.1, GHC==9.0.1,+                     GHC==8.10.7, GHC==8.8.4, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2,+                     GHC==7.10.3, GHC==7.8.4, GHC==7.6.3  library   default-language:    Haskell2010   exposed-modules:     Crypto.Curve25519,                        Crypto.Curve25519.Exceptions,                        Crypto.Curve25519.Pure-  build-depends:       base       >= 4.6  && < 4.16,+  build-depends:       base       >= 4.6  && < 4.20,                        bytestring >= 0.10 && < 0.12,                        crypto-api >= 0.10 && < 0.14   hs-source-dirs:      src@@ -34,15 +40,14 @@   c-sources:           upstream-c/test-curve25519.c   build-depends:       base,                        bytestring,-                       crypto-api,                        curve25519,-                       DRBG                       >= 0.5     && < 0.7,-                       HUnit                      >= 1.2.5.2 && < 1.7,-                       QuickCheck                 >= 2.4     && < 2.15,-                       tagged                     >= 0.7     && < 0.9,-                       test-framework             >= 0.2     && < 1.0.0,-                       test-framework-hunit       >= 0.3     && < 0.5,-                       test-framework-quickcheck2 >= 0.3     && < 0.5+                       crypto-api,+                       HUnit,+                       QuickCheck,+                       tagged,+                       test-framework,+                       test-framework-hunit,+                       test-framework-quickcheck2  source-repository head   type:                git