packages feed

RSA 1.0.4 → 1.0.5

raw patch · 2 files changed

+56/−29 lines, 2 filesdep +test-frameworkdep +test-framework-quickcheckdep +test-framework-quickcheck2dep ~SHAdep ~basedep ~pureMD5PVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: test-framework, test-framework-quickcheck, test-framework-quickcheck2

Dependency ranges changed: SHA, base, pureMD5

API changes (from Hackage documentation)

- Codec.Crypto.RSA: ha_MD5 :: HashInfo
- Codec.Crypto.RSA: instance Binary PrivateKey
- Codec.Crypto.RSA: instance Binary PublicKey

Files

RSA.cabal view
@@ -1,6 +1,6 @@ name:       RSA category:   Cryptography, Codec-version:    1.0.4+version:    1.0.5 license:    BSD3 license-file: LICENSE author:     Adam Wick <awick@galois.com>@@ -29,15 +29,27 @@  Flag QuickCheck1   Description: Whether this is QuickCheck 1 or not+  Default:     False +Flag OldBase+  Description: Whether or not to use base 3 (default: no)+  Default: False+ Library- build-depends: base >= 3 && < 5, bytestring, SHA, random- GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans + build-depends: bytestring, random+ GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans+ if flag(OldBase)+   build-depends: base >= 3 && < 4, SHA < 1.4.1+ else+   build-depends: base >= 4 && < 5, SHA  if flag(UseBinary)    build-depends: binary    CPP-Options: -DUSE_BINARY  if flag(IncludeMD5) && flag(UseBinary)-   build-depends: pureMD5+   if flag(OldBase)+      build-depends: pureMD5 < 1.1+   else+      build-depends: pureMD5    CPP-Options: -DINCLUDE_MD5  exposed-modules: Codec.Crypto.RSA  extensions: CPP, BangPatterns, ScopedTypeVariables@@ -46,12 +58,16 @@   if flag(SkipTests)     Buildable: False   else-    build-depends: base >= 3 && < 5, bytestring, SHA >= 1.0.1+    if flag(OldBase)+      build-depends: base >= 3 && < 4, SHA < 1.4.1+    else+      build-depends: base >= 4 && < 5, SHA+    build-depends: bytestring, test-framework >= 0.3 && < 0.4   if flag(QuickCheck1)-    build-depends: QuickCheck < 2+    build-depends: QuickCheck < 2, test-framework-quickcheck >= 0.2.6 && < 0.3     CPP-Options:   -DQUICKCHECK1   else-    build-depends: QuickCheck >= 2 && < 3+    build-depends: QuickCheck >= 2 && < 3, test-framework-quickcheck2 >= 0.2.7 && < 0.3   GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans    CPP-Options: -DRSA_TEST   Main-Is: Test.hs
Test.hs view
@@ -4,10 +4,16 @@ import qualified Data.ByteString.Lazy as BS import Data.Digest.Pure.SHA import Data.Word-import System.IO import System.Random import Test.QuickCheck +import Test.Framework (defaultMain, testGroup, Test)+#ifdef QUICKCHECK1+import Test.Framework.Providers.QuickCheck (testProperty)+#else+import Test.Framework.Providers.QuickCheck2 (testProperty)+#endif+ -- --------------------------------------------------------------------------  data KeyPair     = KP1K PublicKey PrivateKey@@ -208,31 +214,36 @@  -- -------------------------------------------------------------------------- -run_test :: Testable a => String -> a -> IO ()-run_test n t = putStr ("  " ++ n ++ " ... ") >> hFlush stdout >> quickCheck t- main :: IO () main = do-  g <- getStdGen   putStrLn "\nWARNING WARNING WARNING"   putStrLn "This test suite takes a very long time to run. If you're in a "   putStrLn "hurry, Control-C is your friend."-  putStrLn "WARNING WARNING WARNING"-  putStrLn "\nTesting basic helper functions"-  run_test "prop_chunkify_works"         prop_chunkify_works-  run_test "prop_mod_exp_works"          prop_mod_exp_works-  run_test "prop_mod_inv_works"          prop_mod_inv_works-  putStrLn "\nTesting RSA core functions"-  run_test "prop_i2o2i_identity"         prop_i2o2i_identity-  run_test "prop_o2i2o_identity"         prop_o2i2o_identity-  run_test "prop_ep_dp_identity"         prop_ep_dp_identity-  run_test "prop_sp_vp_identity"         prop_sp_vp_identity-  putStrLn "\nTesting fixed-width RSA padding functions:"-  run_test "prop_oaep_inverts"           prop_oaep_inverts-  run_test "prop_pkcs_inverts"         $ prop_pkcs_inverts         g-  run_test "prop_sign_works"             prop_sign_works-  putStrLn "\nTesting top-level functions work:"-  run_test "prop_encrypt_inverts"      $ prop_encrypt_inverts      g-  run_test "prop_encrypt_plus_inverts" $ prop_encrypt_plus_inverts g+  putStrLn "WARNING WARNING WARNING\n" +  g <- getStdGen+  defaultMain $ tests g +tests :: StdGen -> [Test]+tests g = [+  testGroup "Testing basic helper functions" [+     testProperty "prop_chunkify_works"         prop_chunkify_works,+     testProperty "prop_mod_exp_works"          prop_mod_exp_works,+     testProperty "prop_mod_inv_works"          prop_mod_inv_works+     ],+  testGroup "Testing RSA core functions" [+    testProperty "prop_i2o2i_identity"         prop_i2o2i_identity,+    testProperty "prop_o2i2o_identity"         prop_o2i2o_identity,+    testProperty "prop_ep_dp_identity"         prop_ep_dp_identity,+    testProperty "prop_sp_vp_identity"         prop_sp_vp_identity+    ],+  testGroup "Testing fixed-width RSA padding functions" [+    testProperty "prop_oaep_inverts"           prop_oaep_inverts,+    testProperty "prop_pkcs_inverts"         $ prop_pkcs_inverts g,+    testProperty "prop_sign_works"             prop_sign_works+    ],+  testGroup "Testing top-level functions" [+    testProperty "prop_encrypt_inverts"      $ prop_encrypt_inverts      g,+    testProperty "prop_encrypt_plus_inverts" $ prop_encrypt_plus_inverts g+    ]+  ]