diff --git a/Dust.cabal b/Dust.cabal
--- a/Dust.cabal
+++ b/Dust.cabal
@@ -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
diff --git a/tests/TestCrypto.hs b/tests/TestCrypto.hs
deleted file mode 100644
--- a/tests/TestCrypto.hs
+++ /dev/null
@@ -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
-       ]
-   ]
