From aceaab7b2f98188b269edf3ebd5223fbf7cdc2e9 Mon Sep 17 00:00:00 2001 From: joe Date: Sat, 9 Nov 2013 20:17:28 -0500 Subject: Ability to output master keys. --- kiki.hs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/kiki.hs b/kiki.hs index 0fd24f4..ccb2510 100644 --- a/kiki.hs +++ b/kiki.hs @@ -1296,15 +1296,22 @@ main = do Message allpkts = m let topspec = case () of - _ | null top -> {- trace "using grip" $ -} KeyGrip grip - _ | is40digitHex top -> {- trace "using top" $ -} KeyGrip top + _ | null top && (subtyp=="fp" || (null subtyp && is40digitHex sub)) + -> KeyGrip sub + _ | null top -> KeyGrip grip + _ | toptyp=="fp" || (null toptyp && is40digitHex top) + -> {- trace "using top" $ -} KeyGrip top _ | otherwise -> todo (pre, wksubs) = seek_key topspec allpkts if null wksubs then error ("No match for "++spec) else do let wk:subs = wksubs - (xs,ys) = seek_key (KeyTag wk sub) subs + (_,ys) = case subtyp of + "t" -> seek_key (KeyTag wk sub) subs + "fp" | top=="" -> ([],wk:subs) + "" | top=="" && is40digitHex sub -> ([],wk:subs) + "" -> seek_key (KeyTag wk sub) subs when (not (null ys)) $ do - let (xs',ys') = seek_key (KeyTag wk sub) (tail ys) + let (_,ys') = seek_key (KeyTag wk sub) (tail ys) -- ambiguity check k = head ys rsa = fromJust $ rsaKeyFromPacket k der = encodeASN1 DER (toASN1 rsa []) -- cgit v1.2.3