diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,20 @@
 # Changelog
 
+## 0.4.3 (2020-11-19)
+
+* general maintenance and removal of bitrot.
+* Pin protolude to 0.3.x to prevent further breakage due to changes in
+  protolude.
+
 ## 0.4.2 (2018-01-22)
 
-Minor release to allow docs to be generated on Hackage.
+* Minor release to allow docs to be generated on Hackage.
 
 ## 0.4.1 (2018-01-17)
 
-* Fixed potential security issue in `Ed25519` (see https://github.com/jml/haskell-spake2/pull/16),
-  present since initial release. Please update as soon as possible.
+* Fixed potential security issue in Ed25519 (see
+  https://github.com/jml/haskell-spake2/pull/16), present since
+  initial release. Please update as soon as possible.
 
 ## 0.4.0 (2017-11-22)
 
diff --git a/cmd/interop-entrypoint/Main.hs b/cmd/interop-entrypoint/Main.hs
--- a/cmd/interop-entrypoint/Main.hs
+++ b/cmd/interop-entrypoint/Main.hs
@@ -16,10 +16,12 @@
 
 module Main (main) where
 
-import Protolude hiding (group)
+import Protolude hiding (group, toS)
+import Protolude.Conv (toS)
 
 import Crypto.Hash (SHA256(..))
 import Data.ByteArray.Encoding (convertFromBase, convertToBase, Base(Base16))
+import Data.String (String)
 import Options.Applicative
 import System.IO (hFlush, hGetLine)
 
@@ -35,7 +37,6 @@
   )
 import Crypto.Spake2.Group (AbelianGroup, Group(..))
 import Crypto.Spake2.Groups (Ed25519(..))
-import Data.String (String)
 
 
 data Config = Config Side Password deriving (Eq, Ord)
@@ -54,8 +55,7 @@
         "B" -> pure SideB
         "Symmetric" -> pure Symmetric
         unknown -> throwError $ "Unrecognized side: " <> unknown
-    passwordParser = makePassword . toS @String @ByteString <$> str
-
+    passwordParser = makePassword . toS @String <$> str
 
 -- | Terminate the test with a failure, printing a message to stderr.
 abort :: HasCallStack => Text -> IO ()
diff --git a/spake2.cabal b/spake2.cabal
--- a/spake2.cabal
+++ b/spake2.cabal
@@ -1,34 +1,32 @@
--- This file has been generated from package.yaml by hpack version 0.20.0.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.34.2.
 --
 -- see: https://github.com/sol/hpack
---
--- hash: 3c5a1b2b5e9f86ca9de664d071fbc303d2580244cbb701bd6e4094434a0711ee
 
 name:           spake2
-version:        0.4.2
+version:        0.4.3
 synopsis:       Implementation of the SPAKE2 Password-Authenticated Key Exchange algorithm
 description:    This library implements the SPAKE2 password-authenticated key exchange
                 ("PAKE") algorithm. This allows two parties, who share a weak password, to
                 safely derive a strong shared secret (and therefore build an
                 encrypted+authenticated channel).
 category:       Crypto
-homepage:       https://github.com/jml/haskell-spake2#readme
-bug-reports:    https://github.com/jml/haskell-spake2/issues
-maintainer:     Jonathan M. Lange <jml@mumak.net>
+homepage:       https://github.com/LeastAuthority/haskell-spake2#readme
+bug-reports:    https://github.com/LeastAuthority/haskell-spake2/issues
+author:         Jonathan M. Lange <jml@mumak.net>
+maintainer:     Least Authority TFA GmbH
 license:        Apache
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
-
 extra-source-files:
     CHANGELOG.md
-
 data-files:
     tests/python/spake2_exchange.py
 
 source-repository head
   type: git
-  location: https://github.com/jml/haskell-spake2
+  location: https://github.com/LeastAuthority/haskell-spake2
 
 library
   hs-source-dirs:
@@ -40,7 +38,7 @@
     , bytestring
     , cryptonite
     , memory
-    , protolude >=0.2
+    , protolude >=0.3 && <0.4
   exposed-modules:
       Crypto.Spake2
       Crypto.Spake2.Group
@@ -55,6 +53,8 @@
 
 executable haskell-spake2-interop-entrypoint
   main-is: Main.hs
+  other-modules:
+      Paths_spake2
   hs-source-dirs:
       cmd/interop-entrypoint
   default-extensions: NoImplicitPrelude OverloadedStrings
@@ -64,10 +64,8 @@
     , cryptonite
     , memory
     , optparse-applicative
-    , protolude >=0.2
+    , protolude >=0.3 && <0.4
     , spake2
-  other-modules:
-      Paths_spake2
   default-language: Haskell2010
 
 test-suite tasty
@@ -85,7 +83,7 @@
     , cryptonite
     , memory
     , process
-    , protolude >=0.2
+    , protolude >=0.3 && <0.4
     , spake2
     , tasty
     , tasty-hspec
diff --git a/tests/Integration.hs b/tests/Integration.hs
--- a/tests/Integration.hs
+++ b/tests/Integration.hs
@@ -1,6 +1,7 @@
 module Integration (tests) where
 
-import Protolude hiding (stdin, stdout)
+import Protolude hiding (stdin, stdout, toS)
+import Protolude.Conv (toS)
 
 import Crypto.Hash (SHA256(..))
 import Data.ByteArray.Encoding (convertFromBase, convertToBase, Base(Base16))
