packages feed

Dust 2.3.0 → 2.3.1

raw patch · 2 files changed

+1/−127 lines, 2 filesdep −cryptohashdep −skeindep ~base

Dependencies removed: cryptohash, skein

Dependency ranges changed: base

Files

Dust.cabal view
@@ -1,5 +1,5 @@ Name:                Dust-Version:             2.3.0+Version:             2.3.1 Description:         Dust is a polymorphic protocol engine designed to circumvent Internet filtering based on protocol identification Synopsis:            Polymorphic protocol engine Category:            Network@@ -27,9 +27,7 @@     containers,     directory,     split,-    skein,     crypto-api,-    cryptohash,     threefish   Extensions:     ForeignFunctionInterface@@ -57,26 +55,6 @@       Dust.Model.Port       Dust.Model.Packet       Dust.Network.DustServer--test-suite crypto-  type: exitcode-stdio-1.0-  main-is: TestCrypto.hs-  ghc-options: -w -threaded -rtsopts -with-rtsopts=-N-  hs-source-dirs: tests--  build-depends:-    base,-    Dust,-    HUnit >= 1.2,-    test-framework       >= 0.6,-    test-framework-hunit >= 0.2,-    test-framework-quickcheck2,---    test-framework-th,-    bytestring,-    threefish,-    cereal,-    ghc-prim,-    QuickCheck  test-suite core   type: exitcode-stdio-1.0
− tests/TestCrypto.hs
@@ -1,104 +0,0 @@-{-# OPTIONS_GHC -fno-warn-missing-signatures #-}-{-# LANGUAGE TemplateHaskell #-}--module Main where--import Test.Framework.Providers.HUnit-import Test.Framework.Providers.QuickCheck2-import Test.Framework-import Test.HUnit hiding (test)-import Test.QuickCheck-import Test.QuickCheck.Gen--import Data.ByteString as B (ByteString, length)-import Data.ByteString.Char8 (pack, useAsCString, packCString)--import Dust.Crypto.DustCipher-import qualified Dust.Crypto.ECDH as ECDH-import qualified Dust.Crypto.ECDSA as ECDSA-import Dust.Crypto.Keys--gen_privkeys :: Gen String-gen_privkeys =-  let e = elements ['\00'..'\FF']-  in vectorOf 32 e--prop_ECDH_pubkey_size :: Property-prop_ECDH_pubkey_size =-  forAll gen_privkeys $ \privBytes ->-    let priv = PrivateKey $ pack privBytes-        (PublicKey pub)  = ECDH.createPublic priv-    in B.length pub == 32--prop_ECDSA_pubkey_size :: Property-prop_ECDSA_pubkey_size =-  forAll gen_privkeys $ \privBytes ->-    let priv = PrivateKey $ pack privBytes-        (PublicKey pub)  = ECDSA.createPublic priv-    in B.length pub == 32--case_ECDH_keypair_save_load = do-    let input = (pack "1234567890123457890123456789012")-    let keypair1 = ECDH.createKeypair input-    saveKeypair keypair1--    keypair2 <- loadKeypair--    keypair1 @?= keypair2--case_ECDH_createShared = do-    let entropy1 = (pack "1234567890123457890123456789012")-    let private1 = ECDH.createPrivate entropy1-    let public1 = ECDH.createPublic private1--    let entropy2 = (pack "2109876543210987543210987654321")-    let private2 = ECDH.createPrivate entropy2-    let public2 = ECDH.createPublic private2--    let shared1 = ECDH.createShared private1 public2-    let shared2 = ECDH.createShared private2 public1--    shared1 @?= shared2--case_ECDH_createKeypair = do-    let input = (pack "1234567890123457890123456789012")-    let keys = ECDH.createKeypair input-    let Keypair public private = keys-    publicBytes public @?= pack "\164x}\156n\177\164\240\187F\163\202\232}\221\207/x\ETX\178\SOH\208\238\213q\138%\137\159\253+{"-    privateBytes private @?= pack "023456789012345789012345678901r"--case_ECDH_createPublic = do-    let input = (pack "1234567890123457890123456789012")-    let private = ECDH.createPrivate input-    let public = ECDH.createPublic private-    publicBytes public @?= pack "\164x}\156n\177\164\240\187F\163\202\232}\221\207/x\ETX\178\SOH\208\238\213q\138%\137\159\253+{"--case_ECDH_createPrivate = do-    let input = (pack "1234567890123457890123456789012")-    let output = ECDH.createPrivate input-    privateBytes output @?= pack "023456789012345789012345678901r"--case_encrypt_decrypt = let key = EncryptionKey (pack "1234567890123456")-                           iv = IV (pack "1234567890123456")--                           plain1 = Plaintext (pack "majestic")-                           cipher = encrypt key iv plain1-                           plain2 = decrypt key iv cipher--                       in plain1 @?= plain2--main :: IO ()-main =- defaultMain [-     testGroup "ECDH25519" [ -         testCase "ECDH_createPrivate" case_ECDH_createPrivate,-         testCase "ECDH_createPublic" case_ECDH_createPublic,-         testCase "ECDH_createKeypair" case_ECDH_createKeypair,-         testCase "ECDH_createShared" case_ECDH_createShared,-         testCase "ECDH_keypair_save_load" case_ECDH_keypair_save_load,-         testCase "encrypt_decrypt" case_encrypt_decrypt,-        -         testProperty "ECDH_pubkey_size" prop_ECDH_pubkey_size,-         testProperty "ECDSA_pubkey_size" prop_ECDSA_pubkey_size-       ]-   ]