summaryrefslogtreecommitdiff
path: root/Data
diff options
context:
space:
mode:
authorStephen Paul Weber <singpolyma@singpolyma.net>2012-04-25 17:39:56 -0500
committerStephen Paul Weber <singpolyma@singpolyma.net>2012-04-25 17:39:56 -0500
commitf71c938026eeaff0ca110960fd78109cca3791ce (patch)
tree087843127b463677222ee691d6243ff5210c3047 /Data
parent662509025d33190a79c5e38987e6e77b0c572ff8 (diff)
move find_key logit out of Crypto
Diffstat (limited to 'Data')
-rw-r--r--Data/OpenPGP.hs19
1 files changed, 18 insertions, 1 deletions
diff --git a/Data/OpenPGP.hs b/Data/OpenPGP.hs
index 7d421dc..99f241b 100644
--- a/Data/OpenPGP.hs
+++ b/Data/OpenPGP.hs
@@ -47,6 +47,7 @@ module Data.OpenPGP (
47 KeyAlgorithm(..), 47 KeyAlgorithm(..),
48 CompressionAlgorithm(..), 48 CompressionAlgorithm(..),
49 MPI(..), 49 MPI(..),
50 find_key,
50 fingerprint_material, 51 fingerprint_material,
51 signatures_and_data, 52 signatures_and_data,
52 signature_issuer, 53 signature_issuer,
@@ -676,7 +677,23 @@ encode_s2k_count iterations
676 | count < 32 = (count, c) 677 | count < 32 = (count, c)
677 | otherwise = encode_s2k_count' (count `shiftR` 1) (c+1) 678 | otherwise = encode_s2k_count' (count `shiftR` 1) (c+1)
678 679
679-- SignaturePacket smart constructor 680find_key :: (Packet -> String) -> Message -> String -> Maybe Packet
681find_key fpr (Message (x@(PublicKeyPacket {}):xs)) keyid =
682 find_key' fpr x xs keyid
683find_key fpr (Message (x@(SecretKeyPacket {}):xs)) keyid =
684 find_key' fpr x xs keyid
685find_key fpr (Message (_:xs)) keyid =
686 find_key fpr (Message xs) keyid
687find_key _ _ _ = Nothing
688
689find_key' :: (Packet -> String) -> Packet -> [Packet] -> String -> Maybe Packet
690find_key' fpr x xs keyid
691 | thisid == keyid = Just x
692 | otherwise = find_key fpr (Message xs) keyid
693 where
694 thisid = reverse $ take (length keyid) (reverse (fpr x))
695
696-- | SignaturePacket smart constructor
680signaturePacket :: Word8 -> Word8 -> KeyAlgorithm -> HashAlgorithm -> [SignatureSubpacket] -> [SignatureSubpacket] -> Word16 -> MPI -> Packet 697signaturePacket :: Word8 -> Word8 -> KeyAlgorithm -> HashAlgorithm -> [SignatureSubpacket] -> [SignatureSubpacket] -> Word16 -> MPI -> Packet
681signaturePacket version signature_type key_algorithm hash_algorithm hashed_subpackets unhashed_subpackets hash_head signature = 698signaturePacket version signature_type key_algorithm hash_algorithm hashed_subpackets unhashed_subpackets hash_head signature =
682 let p = SignaturePacket { 699 let p = SignaturePacket {