From 30a9a7735ce2dd4f25c92c6beeb5ae927c01958d Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 6 Aug 2012 10:49:21 -0500 Subject: Cleaner fingerprint material extractor --- Data/OpenPGP.hs | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'Data') diff --git a/Data/OpenPGP.hs b/Data/OpenPGP.hs index 23e2bbb..70bd29a 100644 --- a/Data/OpenPGP.hs +++ b/Data/OpenPGP.hs @@ -628,28 +628,16 @@ parse_packet tag = fmap (UnsupportedPacket tag) getRemainingByteString -- | Helper method for fingerprints and such fingerprint_material :: Packet -> [B.ByteString] -fingerprint_material (PublicKeyPacket {version = 4, - timestamp = timestamp, - key_algorithm = algorithm, - key = key}) = +fingerprint_material p | version p == 4 = [ B.singleton 0x99, encode (6 + fromIntegral (B.length material) :: Word16), - B.singleton 4, encode timestamp, encode algorithm, + B.singleton 4, encode (timestamp p), encode (key_algorithm p), material ] where - material = - B.concat $ map (encode . (key !)) (public_key_fields algorithm) --- Proxy to make SecretKeyPacket work -fingerprint_material (SecretKeyPacket {version = 4, - timestamp = timestamp, - key_algorithm = algorithm, - key = key}) = - fingerprint_material PublicKeyPacket {version = 4, - timestamp = timestamp, - key_algorithm = algorithm, - key = key, is_subkey = False} + material = B.concat $ map (encode . (key p !)) + (public_key_fields $ key_algorithm p) fingerprint_material p | version p `elem` [2, 3] = [n, e] where n = B.drop 2 (encode (key p ! 'n')) -- cgit v1.2.3