diff options
author | Stephen Paul Weber <singpolyma@singpolyma.net> | 2012-04-25 17:39:56 -0500 |
---|---|---|
committer | Stephen Paul Weber <singpolyma@singpolyma.net> | 2012-04-25 17:39:56 -0500 |
commit | f71c938026eeaff0ca110960fd78109cca3791ce (patch) | |
tree | 087843127b463677222ee691d6243ff5210c3047 /Data/OpenPGP.hs | |
parent | 662509025d33190a79c5e38987e6e77b0c572ff8 (diff) |
move find_key logit out of Crypto
Diffstat (limited to 'Data/OpenPGP.hs')
-rw-r--r-- | Data/OpenPGP.hs | 19 |
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 | 680 | find_key :: (Packet -> String) -> Message -> String -> Maybe Packet |
681 | find_key fpr (Message (x@(PublicKeyPacket {}):xs)) keyid = | ||
682 | find_key' fpr x xs keyid | ||
683 | find_key fpr (Message (x@(SecretKeyPacket {}):xs)) keyid = | ||
684 | find_key' fpr x xs keyid | ||
685 | find_key fpr (Message (_:xs)) keyid = | ||
686 | find_key fpr (Message xs) keyid | ||
687 | find_key _ _ _ = Nothing | ||
688 | |||
689 | find_key' :: (Packet -> String) -> Packet -> [Packet] -> String -> Maybe Packet | ||
690 | find_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 | ||
680 | signaturePacket :: Word8 -> Word8 -> KeyAlgorithm -> HashAlgorithm -> [SignatureSubpacket] -> [SignatureSubpacket] -> Word16 -> MPI -> Packet | 697 | signaturePacket :: Word8 -> Word8 -> KeyAlgorithm -> HashAlgorithm -> [SignatureSubpacket] -> [SignatureSubpacket] -> Word16 -> MPI -> Packet |
681 | signaturePacket version signature_type key_algorithm hash_algorithm hashed_subpackets unhashed_subpackets hash_head signature = | 698 | signaturePacket version signature_type key_algorithm hash_algorithm hashed_subpackets unhashed_subpackets hash_head signature = |
682 | let p = SignaturePacket { | 699 | let p = SignaturePacket { |