diff --git a/Codec/Encryption/OpenPGP/Serialize.hs b/Codec/Encryption/OpenPGP/Serialize.hs
--- a/Codec/Encryption/OpenPGP/Serialize.hs
+++ b/Codec/Encryption/OpenPGP/Serialize.hs
@@ -1,5 +1,5 @@
 -- Serialize.hs: OpenPGP (RFC4880) serialization (using cereal)
--- Copyright © 2012-2020  Clint Adams
+-- Copyright © 2012-2025  Clint Adams
 -- This software is released under the terms of the Expat license.
 -- (See the LICENSE file).
 module Codec.Encryption.OpenPGP.Serialize
@@ -307,8 +307,10 @@
         hash <- getLazyByteString (l - 3)
         return $ SigSubPacket crit (SignatureTarget pka ha hash)
       | pt == 32 = do
-        sp <- get :: Get SignaturePayload
-        return $ SigSubPacket crit (EmbeddedSignature sp)
+        spbs <- getLazyByteString (l - 1)
+        case runGetOrFail get spbs of
+            Left (_, _, e) -> fail ("embedded signature subpacket " ++ e)
+            Right (_, _, sp) -> return $ SigSubPacket crit (EmbeddedSignature sp)
       | pt == 33 = do
         kv <- getWord8
         fp <-
diff --git a/Codec/Encryption/OpenPGP/Types/Internal/Base.hs b/Codec/Encryption/OpenPGP/Types/Internal/Base.hs
--- a/Codec/Encryption/OpenPGP/Types/Internal/Base.hs
+++ b/Codec/Encryption/OpenPGP/Types/Internal/Base.hs
@@ -363,6 +363,7 @@
   pretty = pretty . take 40 . bsToHexUpper . unTOF
 
 #if MIN_VERSION_aeson(2,0,0)
+key :: String -> AK.Key
 key = AK.fromText . T.pack
 #else
 key = T.pack
diff --git a/Codec/Encryption/OpenPGP/Types/Internal/Pkt.hs b/Codec/Encryption/OpenPGP/Types/Internal/Pkt.hs
--- a/Codec/Encryption/OpenPGP/Types/Internal/Pkt.hs
+++ b/Codec/Encryption/OpenPGP/Types/Internal/Pkt.hs
@@ -30,6 +30,7 @@
 import Data.Ord (comparing)
 import Data.Text (Text)
 import qualified Data.Text as T
+import Data.Time.Clock (UTCTime)
 import Data.Typeable (Typeable)
 import Data.Word (Word8)
 import Prettyprinter (Pretty(..), (<+>))
@@ -224,4 +225,14 @@
     , _verificationSignature :: SignaturePayload
     }
 
+data SOPVVerification =
+  SOPVVerification
+    { _sopvvDateStamp :: UTCTime
+    , _sopvvFingerprint :: TwentyOctetFingerprint
+    , _sopvvPrimaryFingerprint :: TwentyOctetFingerprint
+    , _sopvvMode :: String
+    , _sopvvDescription :: String
+    }
+
 $(makeLenses ''Verification)
+$(makeLenses ''SOPVVerification)
diff --git a/Codec/Encryption/OpenPGP/Types/Internal/PrettyUtils.hs b/Codec/Encryption/OpenPGP/Types/Internal/PrettyUtils.hs
--- a/Codec/Encryption/OpenPGP/Types/Internal/PrettyUtils.hs
+++ b/Codec/Encryption/OpenPGP/Types/Internal/PrettyUtils.hs
@@ -4,11 +4,13 @@
 -- (See the LICENSE file).
 module Codec.Encryption.OpenPGP.Types.Internal.PrettyUtils where
 
+import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as BL
 import Data.Text.Encoding (decodeUtf8With)
 import Data.Text.Encoding.Error (lenientDecode)
 import Prettyprinter (Doc, Pretty(..))
 
+prettyBS :: B.ByteString -> Doc ann
 prettyBS = pretty . decodeUtf8With lenientDecode
 
 prettyLBS :: BL.ByteString -> Doc ann
diff --git a/Codec/Encryption/OpenPGP/Version.hs b/Codec/Encryption/OpenPGP/Version.hs
new file mode 100644
--- /dev/null
+++ b/Codec/Encryption/OpenPGP/Version.hs
@@ -0,0 +1,13 @@
+-- Version.hs: static hOpenPGP version string
+-- Copyright © 2024  Clint Adams
+-- This software is released under the terms of the Expat license.
+-- (See the LICENSE file).
+module Codec.Encryption.OpenPGP.Version
+  ( version
+  ) where
+
+import Data.Version (showVersion)
+import qualified Paths_hOpenPGP as Paths
+
+version :: String
+version = showVersion Paths.version
diff --git a/hOpenPGP.cabal b/hOpenPGP.cabal
--- a/hOpenPGP.cabal
+++ b/hOpenPGP.cabal
@@ -1,6 +1,6 @@
 Cabal-version:       3.4
 Name:                hOpenPGP
-Version:             2.10.0
+Version:             2.10.1
 Synopsis:            native Haskell implementation of OpenPGP (RFC4880)
 Description:         native Haskell implementation of OpenPGP (RFC4880), plus Camellia (RFC5581), plus ECC (RFC6637)
 Homepage:            https://salsa.debian.org/clint/hOpenPGP
@@ -8,7 +8,7 @@
 License-file:        LICENSE
 Author:              Clint Adams
 Maintainer:          Clint Adams <clint@debian.org>
-Copyright:           2012-2024  Clint Adams
+Copyright:           2012-2025  Clint Adams
 Category:            Codec, Data
 Build-type:          Simple
 Extra-source-files: tests/suite.hs
@@ -228,6 +228,8 @@
                      , Codec.Encryption.OpenPGP.Types.Internal.TK
                      , Codec.Encryption.OpenPGP.BlockCipher
                      , Codec.Encryption.OpenPGP.SerializeForSigs
+                     , Paths_hOpenPGP
+  autogen-modules:     Paths_hOpenPGP
 
 Library
   import: deps, internalmods
@@ -245,6 +247,7 @@
                      , Codec.Encryption.OpenPGP.Serialize
                      , Codec.Encryption.OpenPGP.Signatures
                      , Codec.Encryption.OpenPGP.SignatureQualities
+                     , Codec.Encryption.OpenPGP.Version
                      , Data.Conduit.OpenPGP.Compression
                      , Data.Conduit.OpenPGP.Decrypt
                      , Data.Conduit.OpenPGP.Filter
@@ -285,4 +288,4 @@
 source-repository this
   type:     git
   location: https://salsa.debian.org/clint/hOpenPGP.git
-  tag:      v2.10.0
+  tag:      v2.10.1
