diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## Version 1.7.0
+
+* Major version up because "crypton" is used instead of "cryptonite"
+
 ## Version 1.6.0
 
 - Major version up because of disabling SSL3
diff --git a/Network/TLS/Handshake/Common13.hs b/Network/TLS/Handshake/Common13.hs
--- a/Network/TLS/Handshake/Common13.hs
+++ b/Network/TLS/Handshake/Common13.hs
@@ -47,31 +47,31 @@
 
 import qualified Data.ByteArray as BA
 import qualified Data.ByteString as B
-import Data.Hourglass
+import Data.UnixTime
+import Foreign.C.Types (CTime(..))
+import Network.TLS.Cipher
 import Network.TLS.Compression
 import Network.TLS.Context.Internal
-import Network.TLS.Cipher
 import Network.TLS.Crypto
 import qualified Network.TLS.Crypto.IES as IES
 import Network.TLS.Extension
 import Network.TLS.Handshake.Certificate (extractCAname)
-import Network.TLS.Handshake.Process (processHandshake13)
 import Network.TLS.Handshake.Common (unexpected)
 import Network.TLS.Handshake.Key
+import Network.TLS.Handshake.Process (processHandshake13)
+import Network.TLS.Handshake.Signature
 import Network.TLS.Handshake.State
 import Network.TLS.Handshake.State13
-import Network.TLS.Handshake.Signature
+import Network.TLS.IO
 import Network.TLS.Imports
 import Network.TLS.KeySchedule
 import Network.TLS.MAC
 import Network.TLS.Parameters
-import Network.TLS.IO
 import Network.TLS.State
 import Network.TLS.Struct
 import Network.TLS.Struct13
 import Network.TLS.Types
 import Network.TLS.Wire
-import Time.System
 
 import Control.Concurrent.MVar
 import Control.Monad.State.Strict
@@ -302,14 +302,14 @@
     isAlive = isAgeValid age tinfo
 
 getCurrentTimeFromBase :: IO Millisecond
-getCurrentTimeFromBase = millisecondsFromBase <$> timeCurrentP
+getCurrentTimeFromBase = millisecondsFromBase <$> getUnixTime
 
-millisecondsFromBase :: ElapsedP -> Millisecond
-millisecondsFromBase d = fromIntegral ms
+millisecondsFromBase :: UnixTime -> Millisecond
+millisecondsFromBase (UnixTime (CTime s) us) =
+    fromIntegral ((s - base) * 1000) + fromIntegral (us `div` 1000)
   where
-    ElapsedP (Elapsed (Seconds s)) (NanoSeconds ns) = d - timeConvert base
-    ms = s * 1000 + ns `div` 1000000
-    base = Date 2017 January 1
+    base = 1483228800
+    -- UnixTime (CTime base) _= parseUnixTimeGMT webDateFormat "Sun, 01 Jan 2017 00:00:00 GMT"
 
 ----------------------------------------------------------------
 
diff --git a/Network/TLS/Types.hs b/Network/TLS/Types.hs
--- a/Network/TLS/Types.hs
+++ b/Network/TLS/Types.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE EmptyDataDecls #-}
 -- |
 -- Module      : Network.TLS.Types
@@ -35,10 +36,16 @@
     , MasterSecret(..)
     ) where
 
+#ifdef INCLUDE_NETWORK
+import Network.Socket (HostName)
+#endif
+
 import Network.TLS.Imports
 import Network.TLS.Crypto.Types (Group)
 
+#ifndef INCLUDE_NETWORK
 type HostName    = String
+#endif
 type Second      = Word32
 type Millisecond = Word64
 
diff --git a/tls.cabal b/tls.cabal
--- a/tls.cabal
+++ b/tls.cabal
@@ -1,189 +1,202 @@
-Name:                tls
-Version:             1.6.0
-Description:
-   Native Haskell TLS and SSL protocol implementation for server and client.
-   .
-   This provides a high-level implementation of a sensitive security protocol,
-   eliminating a common set of security issues through the use of the advanced
-   type system, high level constructions and common Haskell features.
-   .
-   Currently implement the TLS1.0, TLS1.1, TLS1.2 and TLS 1.3 protocol,
-   and support RSA and Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges,
-   and many extensions.
-   .
-   Some debug tools linked with tls, are available through the
-   <http://hackage.haskell.org/package/tls-debug/>.
-License:             BSD3
-License-file:        LICENSE
-Copyright:           Vincent Hanquez <vincent@snarc.org>
-Author:              Vincent Hanquez <vincent@snarc.org>
-Maintainer:          Kazu Yamamoto <kazu@iij.ad.jp>
-Synopsis:            TLS/SSL protocol native implementation (Server and Client)
-Build-Type:          Simple
-Category:            Network
-stability:           experimental
-Cabal-Version:       >=1.10
-Homepage:            http://github.com/vincenthz/hs-tls
-extra-source-files:  Tests/*.hs
-                     CHANGELOG.md
+cabal-version:      >=1.10
+name:               tls
+version:            1.7.0
+license:            BSD3
+license-file:       LICENSE
+copyright:          Vincent Hanquez <vincent@snarc.org>
+maintainer:         Kazu Yamamoto <kazu@iij.ad.jp>
+author:             Vincent Hanquez <vincent@snarc.org>
+stability:          experimental
+homepage:           http://github.com/vincenthz/hs-tls
+synopsis:           TLS/SSL protocol native implementation (Server and Client)
+description:
+    Native Haskell TLS and SSL protocol implementation for server and client.
+    .
+    This provides a high-level implementation of a sensitive security protocol,
+    eliminating a common set of security issues through the use of the advanced
+    type system, high level constructions and common Haskell features.
+    .
+    Currently implement the TLS1.0, TLS1.1, TLS1.2 and TLS 1.3 protocol,
+    and support RSA and Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges,
+    and many extensions.
+    .
+    Some debug tools linked with tls, are available through the
+    <http://hackage.haskell.org/package/tls-debug/>.
 
-Flag compat
-  Description:       Accept SSLv2 client hello for beginning SSLv3 / TLS handshake
-  Default:           True
+category:           Network
+build-type:         Simple
+extra-source-files:
+    Tests/*.hs
+    CHANGELOG.md
 
-Flag network
-  Description:       Use the base network library
-  Default:           True
+source-repository head
+    type:     git
+    location: https://github.com/vincenthz/hs-tls
+    subdir:   core
 
-Flag hans
-  Description:       Use the Haskell Network Stack (HaNS)
-  Default:           False
+flag compat
+    description:
+        Accept SSLv2 client hello for beginning SSLv3 / TLS handshake
 
-Library
-  Default-Language:  Haskell2010
-  Build-Depends:     base >= 4.9 && < 5
-                   , mtl >= 2.2.1
-                   , transformers
-                   , cereal >= 0.5.3
-                   , bytestring
-                   , data-default-class
-                   -- crypto related
-                   , memory >= 0.14.6
-                   , cryptonite >= 0.27
-                   -- certificate related
-                   , asn1-types >= 0.2.0
-                   , asn1-encoding
-                   , x509 >= 1.7.5
-                   , x509-store >= 1.6
-                   , x509-validation >= 1.6.5
-                   , async >= 2.0
-                   , hourglass
-  if flag(network)
-    Build-Depends:   network >= 2.4.0.0
-    cpp-options:     -DINCLUDE_NETWORK
-  if flag(hans)
-    Build-Depends:   hans
-    cpp-options:     -DINCLUDE_HANS
-  Exposed-modules:   Network.TLS
-                     Network.TLS.Cipher
-                     Network.TLS.Compression
-                     Network.TLS.Internal
-                     Network.TLS.Extra
-                     Network.TLS.Extra.Cipher
-                     Network.TLS.Extra.FFDHE
-                     Network.TLS.QUIC
-  other-modules:     Network.TLS.Cap
-                     Network.TLS.Struct
-                     Network.TLS.Struct13
-                     Network.TLS.Core
-                     Network.TLS.Context
-                     Network.TLS.Context.Internal
-                     Network.TLS.Credentials
-                     Network.TLS.Backend
-                     Network.TLS.Crypto
-                     Network.TLS.Crypto.DH
-                     Network.TLS.Crypto.IES
-                     Network.TLS.Crypto.Types
-                     Network.TLS.ErrT
-                     Network.TLS.Extension
-                     Network.TLS.Handshake
-                     Network.TLS.Handshake.Certificate
-                     Network.TLS.Handshake.Client
-                     Network.TLS.Handshake.Common
-                     Network.TLS.Handshake.Common13
-                     Network.TLS.Handshake.Control
-                     Network.TLS.Handshake.Key
-                     Network.TLS.Handshake.Process
-                     Network.TLS.Handshake.Random
-                     Network.TLS.Handshake.Server
-                     Network.TLS.Handshake.Signature
-                     Network.TLS.Handshake.State
-                     Network.TLS.Handshake.State13
-                     Network.TLS.Hooks
-                     Network.TLS.IO
-                     Network.TLS.Imports
-                     Network.TLS.KeySchedule
-                     Network.TLS.MAC
-                     Network.TLS.Measurement
-                     Network.TLS.Packet
-                     Network.TLS.Packet13
-                     Network.TLS.Parameters
-                     Network.TLS.PostHandshake
-                     Network.TLS.Record
-                     Network.TLS.Record.Disengage
-                     Network.TLS.Record.Engage
-                     Network.TLS.Record.Layer
-                     Network.TLS.Record.Reading
-                     Network.TLS.Record.Writing
-                     Network.TLS.Record.State
-                     Network.TLS.Record.Types
-                     Network.TLS.RNG
-                     Network.TLS.State
-                     Network.TLS.Session
-                     Network.TLS.Sending
-                     Network.TLS.Receiving
-                     Network.TLS.Util
-                     Network.TLS.Util.ASN1
-                     Network.TLS.Util.Serialization
-                     Network.TLS.Types
-                     Network.TLS.Wire
-                     Network.TLS.X509
-  ghc-options:       -Wall
-  if flag(compat)
-    cpp-options:     -DSSLV2_COMPATIBLE
+flag network
+    description: Use the base network library
 
-Test-Suite test-tls
-  Default-Language:  Haskell2010
-  type:              exitcode-stdio-1.0
-  hs-source-dirs:    Tests
-  Main-is:           Tests.hs
-  other-modules:     Certificate
-                     Ciphers
-                     Connection
-                     Marshalling
-                     PipeChan
-                     PubKey
-  Build-Depends:     base >= 3 && < 5
-                   , async >= 2.0
-                   , data-default-class
-                   , tasty
-                   , tasty-quickcheck
-                   , tls
-                   , QuickCheck
-                   , cryptonite
-                   , bytestring
-                   , asn1-types
-                   , x509
-                   , x509-validation
-                   , hourglass
-  ghc-options:       -Wall -fno-warn-unused-imports
+flag hans
+    description: Use the Haskell Network Stack (HaNS)
+    default:     False
 
-Benchmark bench-tls
-  Default-Language:  Haskell2010
-  hs-source-dirs:    Benchmarks Tests
-  Main-Is:           Benchmarks.hs
-  type:              exitcode-stdio-1.0
-  other-modules:     Certificate
-                     Connection
-                     PipeChan
-                     PubKey
-  Build-depends:     base >= 4 && < 5
-                   , tls
-                   , x509
-                   , x509-validation
-                   , data-default-class
-                   , cryptonite
-                   , gauge
-                   , bytestring
-                   , asn1-types
-                   , async >= 2.0
-                   , hourglass
-                   , QuickCheck >= 2
-                   , tasty-quickcheck
-                   , tls
-  ghc-options:       -Wall -fno-warn-unused-imports
+library
+    exposed-modules:
+        Network.TLS
+        Network.TLS.Cipher
+        Network.TLS.Compression
+        Network.TLS.Internal
+        Network.TLS.Extra
+        Network.TLS.Extra.Cipher
+        Network.TLS.Extra.FFDHE
+        Network.TLS.QUIC
 
-source-repository head
-  type: git
-  location: https://github.com/vincenthz/hs-tls
-  subdir: core
+    other-modules:
+        Network.TLS.Cap
+        Network.TLS.Struct
+        Network.TLS.Struct13
+        Network.TLS.Core
+        Network.TLS.Context
+        Network.TLS.Context.Internal
+        Network.TLS.Credentials
+        Network.TLS.Backend
+        Network.TLS.Crypto
+        Network.TLS.Crypto.DH
+        Network.TLS.Crypto.IES
+        Network.TLS.Crypto.Types
+        Network.TLS.ErrT
+        Network.TLS.Extension
+        Network.TLS.Handshake
+        Network.TLS.Handshake.Certificate
+        Network.TLS.Handshake.Client
+        Network.TLS.Handshake.Common
+        Network.TLS.Handshake.Common13
+        Network.TLS.Handshake.Control
+        Network.TLS.Handshake.Key
+        Network.TLS.Handshake.Process
+        Network.TLS.Handshake.Random
+        Network.TLS.Handshake.Server
+        Network.TLS.Handshake.Signature
+        Network.TLS.Handshake.State
+        Network.TLS.Handshake.State13
+        Network.TLS.Hooks
+        Network.TLS.IO
+        Network.TLS.Imports
+        Network.TLS.KeySchedule
+        Network.TLS.MAC
+        Network.TLS.Measurement
+        Network.TLS.Packet
+        Network.TLS.Packet13
+        Network.TLS.Parameters
+        Network.TLS.PostHandshake
+        Network.TLS.Record
+        Network.TLS.Record.Disengage
+        Network.TLS.Record.Engage
+        Network.TLS.Record.Layer
+        Network.TLS.Record.Reading
+        Network.TLS.Record.Writing
+        Network.TLS.Record.State
+        Network.TLS.Record.Types
+        Network.TLS.RNG
+        Network.TLS.State
+        Network.TLS.Session
+        Network.TLS.Sending
+        Network.TLS.Receiving
+        Network.TLS.Util
+        Network.TLS.Util.ASN1
+        Network.TLS.Util.Serialization
+        Network.TLS.Types
+        Network.TLS.Wire
+        Network.TLS.X509
+
+    default-language: Haskell2010
+    ghc-options:      -Wall
+    build-depends:
+        base >=4.9 && <5,
+        mtl >=2.2.1,
+        transformers,
+        cereal >=0.5.3,
+        bytestring,
+        data-default-class,
+        memory >=0.14.6,
+        crypton,
+        asn1-types >=0.2.0,
+        asn1-encoding,
+        crypton-x509 >=1.7.5,
+        crypton-x509-store >=1.6,
+        crypton-x509-validation >=1.6.5,
+        async >=2.0,
+        unix-time
+
+    if flag(network)
+        cpp-options:   -DINCLUDE_NETWORK
+        build-depends: network >=2.4.0.0
+
+    if flag(hans)
+        cpp-options:   -DINCLUDE_HANS
+        build-depends: hans
+
+    if flag(compat)
+        cpp-options: -DSSLV2_COMPATIBLE
+
+test-suite test-tls
+    type:             exitcode-stdio-1.0
+    main-is:          Tests.hs
+    hs-source-dirs:   Tests
+    other-modules:
+        Certificate
+        Ciphers
+        Connection
+        Marshalling
+        PipeChan
+        PubKey
+
+    default-language: Haskell2010
+    ghc-options:      -Wall -fno-warn-unused-imports
+    build-depends:
+        base >=3 && <5,
+        async >=2.0,
+        data-default-class,
+        tasty,
+        tasty-quickcheck,
+        tls,
+        QuickCheck,
+        crypton,
+        bytestring,
+        asn1-types,
+        crypton-x509,
+        crypton-x509-validation,
+        hourglass
+
+benchmark bench-tls
+    type:             exitcode-stdio-1.0
+    main-is:          Benchmarks.hs
+    hs-source-dirs:   Benchmarks Tests
+    other-modules:
+        Certificate
+        Connection
+        PipeChan
+        PubKey
+
+    default-language: Haskell2010
+    ghc-options:      -Wall -fno-warn-unused-imports
+    build-depends:
+        base >=4 && <5,
+        tls,
+        crypton-x509,
+        crypton-x509-validation,
+        data-default-class,
+        crypton,
+        gauge,
+        bytestring,
+        asn1-types,
+        async >=2.0,
+        hourglass,
+        QuickCheck >=2,
+        tasty-quickcheck,
+        tls
