From 133b04ccbf83bab6406898b3906c0851d740fa67 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Sat, 29 Dec 2012 14:51:58 -0500 Subject: Fingerprint must always be 20 octets --- Data/OpenPGP.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Data/OpenPGP.hs b/Data/OpenPGP.hs index 98622a1..02b4a1a 100644 --- a/Data/OpenPGP.hs +++ b/Data/OpenPGP.hs @@ -158,6 +158,9 @@ assertProp f x = assert (f x) x pad :: Int -> String -> String pad l s = replicate (l - length s) '0' ++ s +padBS :: Int -> B.ByteString -> B.ByteString +padBS l s = B.replicate (fromIntegral l - B.length s) 0 `B.append` s + data Packet = AsymmetricSessionKeyPacket { version::Word8, @@ -964,7 +967,7 @@ put_signature_subpacket (RevocationKeyPacket sensitive kalgo fpr) = (B.concat [encode bitfield, encode kalgo, fprb], 12) where bitfield = 0x80 .|. (if sensitive then 0x40 else 0x0) :: Word8 - fprb = B.drop 2 $ encode (MPI fpri) + fprb = padBS 20 $ B.drop 2 $ encode (MPI fpri) fpri = fst $ head $ readHex fpr put_signature_subpacket (IssuerPacket keyid) = (encode (fst $ head $ readHex keyid :: Word64), 16) -- cgit v1.2.3