 +
 diff --git a/expected/pgp-sign.out b/expected/pgp-sign.out
 new file mode 100644
-index 0000000..0cd3cb7
+index 0000000..ca46a27
 --- /dev/null
 +++ b/expected/pgp-sign.out
-@@ -0,0 +1,321 @@
+@@ -0,0 +1,337 @@
 +--
 +-- PGP sign
 +--

+-- pgp_pub_signatures(data, key, psw)
+--
+CREATE FUNCTION pgp_pub_signatures(bytea, bytea, text)
+RETURNS TABLE (keyid text, digest text, pubkeyalgo text)
+AS 'MODULE_PATHNAME', 'pgp_pub_signatures_w'
+LANGUAGE C IMMUTABLE STRICT;
+
+--
+-- pgp_pub_signatures(data, key, psw, args)
+--
+CREATE FUNCTION pgp_pub_signatures(bytea, bytea, text, text)
+RETURNS TABLE (keyid text, digest text, pubkeyalgo text)
+AS 'MODULE_PATHNAME', 'pgp_pub_signatures_w'
+LANGUAGE C IMMUTABLE STRICT;
diff --git a/pgp-decrypt.c b/pgp-decrypt.c

+static int
+sigsubpkt_parser_next(struct SigSubPktParserState *pstate, struct SigSubPkt *subpkt)
+{
+	uint8	typ;
+	int		len;
+	int		res;
+
+	if (pstate->done || pstate->lr == NULL)
+		return PXE_BUG;
