diff --git a/cropty.cabal b/cropty.cabal
--- a/cropty.cabal
+++ b/cropty.cabal
@@ -1,7 +1,7 @@
 cabal-version:       2.4
 
 name:                cropty
-version:             0.3.0.1
+version:             0.3.0.2
 synopsis:            Encryption and decryption
 description:         Encryption and decryption.
 homepage:            https://github.com/SamuelSchlesinger/cropty
diff --git a/src/Cropty.hs b/src/Cropty.hs
--- a/src/Cropty.hs
+++ b/src/Cropty.hs
@@ -63,6 +63,7 @@
 import qualified Crypto.PubKey.RSA.Types (Error (..))
 import Crypto.Error (CryptoError (..))
 import Control.Exception (Exception, throwIO)
+import Data.Function (on)
 import qualified Crypto.Cipher.AES as AES
 import qualified Crypto.Cipher.Types as Cipher
 import qualified Crypto.Error as Error
@@ -307,7 +308,19 @@
   , signedEncoded :: ByteString
   , signature :: Signature
   , signedBy :: PublicKey
-  } deriving (Eq, Ord, Show, Read, Generic)
+  } deriving (Show, Read, Generic)
+
+instance Eq (Signed a) where
+  s == s' =
+       ((==) `on` signature) s s'
+    && ((==) `on` signedEncoded) s s'
+    && ((==) `on` signedBy) s s'
+
+instance Ord (Signed a) where
+  compare s s' =
+       (compare `on` signature) s s'
+    <> (compare `on` signedEncoded) s s'
+    <> (compare `on` signedBy) s s'
 
 instance Binary a => Binary (Signed a) where
   put s = do
