diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.1.3.0
+
+- Update to newer GHC version.
+- Switch from TravisCI to GitHub Actions.
+
 ## 0.1.2.0
 
 - Add Rails3 support.
diff --git a/rails-session.cabal b/rails-session.cabal
--- a/rails-session.cabal
+++ b/rails-session.cabal
@@ -1,5 +1,5 @@
 name:                rails-session
-version:             0.1.2.0
+version:             0.1.3.0
 synopsis:            Decrypt Ruby on Rails sessions in Haskell
 description:         Please see README.md
 homepage:            http://github.com/iconnect/rails-session#readme
@@ -32,7 +32,7 @@
                      , string-conv       >= 0.1
                      , vector            >= 0.10.12.3
                      , bytestring
-                     , base16-bytestring
+                     , base16-bytestring >= 1.0.1.0
                      , containers
   if impl(ghc < 8.0)
      build-depends: semigroups
@@ -46,6 +46,7 @@
   build-depends:       base
                      , bytestring
                      , filepath
+                     , hspec
                      , semigroups
                      , rails-session
                      , ruby-marshal
diff --git a/src/Web/Rails3/Session.hs b/src/Web/Rails3/Session.hs
--- a/src/Web/Rails3/Session.hs
+++ b/src/Web/Rails3/Session.hs
@@ -94,9 +94,10 @@
   >>= Marshal.decodeEither
   where
     extractChecksum :: Either String (Digest SHA1)
-    extractChecksum = maybeToEither
-                      "[Rails3 Cookie] Illegal checksum in cookie. Wasn't able to extract a valid HMAC checksum out of it."
-                      (Hash.digestFromByteString $ fst $ (B16.decode hexChecksum))
+    extractChecksum = do
+      decoded <- B16.decode hexChecksum
+      maybeToEither "[Rails3 Cookie] Illegal checksum in cookie. Wasn't able to extract a valid HMAC checksum out of it."
+                    (Hash.digestFromByteString decoded)
 
     compareChecksum :: Digest SHA1 -> Either String ByteString
     compareChecksum checksum = if (computedChecksum == checksum) then (Right $ B64.decodeLenient b64) else (Left "[Rails3 Cookie] Checksum doesn't match")
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -9,7 +9,8 @@
 import           Data.Vector (fromList)
 import           System.IO.Unsafe (unsafePerformIO)
 import           Test.Tasty (defaultMain, testGroup)
-import           Test.Tasty.Hspec (describe, it, shouldBe, shouldSatisfy, testSpec, Spec)
+import           Test.Tasty.Hspec (testSpec)
+import           Test.Hspec (describe, it, shouldBe, shouldSatisfy, Spec)
 import           Web.Rails.Session
 import qualified Web.Rails3.Session as R3
 import qualified Data.List.NonEmpty as NE
