From fddfa5141f9926afc23e3ac971a4ef7224720a07 Mon Sep 17 00:00:00 2001 From: joe Date: Tue, 5 Nov 2013 16:33:44 -0500 Subject: Added ability to output non-default public keys from secring. --- kiki.hs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'kiki.hs') diff --git a/kiki.hs b/kiki.hs index c76a89a..33f8428 100644 --- a/kiki.hs +++ b/kiki.hs @@ -793,6 +793,15 @@ data KeySpec = KeyGrip String | KeyTag Packet String + +is40digitHex xs = ys == xs && length ys==40 + where + ys = filter ishex xs + ishex c | '0' <= c && c <= '9' = True + | 'A' <= c && c <= 'F' = True + | 'a' <= c && c <= 'f' = True + ishex c = False + main = do args <- cmdArgs $ modes [ List HOMEOPTION @@ -1092,7 +1101,11 @@ main = do flip (maybe (error "No working key?")) grip $ \grip -> do - let (pre, wk:subs) = seek_key (KeyGrip grip) sec + let topspec = case () of + _ | null top -> {- trace "using grip" $ -} KeyGrip grip + _ | is40digitHex top -> {- trace "using top" $ -} KeyGrip top + _ | otherwise -> todo + (pre, wk:subs) = seek_key topspec sec (xs,ys) = seek_key (KeyTag wk sub) subs when (not (null ys)) $ do let (xs',ys') = seek_key (KeyTag wk sub) (tail ys) @@ -1102,8 +1115,10 @@ main = do qq = Base64.encode (L.unpack der) split64 [] = [] split64 qq = as : split64 bs where (as,bs) = splitAt 64 qq + -- putStrLn $ "top = " ++ show top + -- putStrLn $ "wk = " ++ fingerprint wk + -- putStrLn $ fingerprint k {- - putStrLn $ fingerprint k putStrLn $ show rsa putStrLn $ show der -} -- cgit v1.2.3