From 60f9591a217e07da45b6f16769a9b65a18301754 Mon Sep 17 00:00:00 2001 From: joe Date: Fri, 18 Apr 2014 00:35:30 -0400 Subject: export secret keys as pem files --- kiki.hs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'kiki.hs') diff --git a/kiki.hs b/kiki.hs index c29076a..42b1d98 100644 --- a/kiki.hs +++ b/kiki.hs @@ -1232,8 +1232,8 @@ main = do let keypairs = catMaybes keypairs0 btcpairs = catMaybes btcpairs0 - {- putStrLn $ "keypairs = "++show keypairs + {- putStrLn $ "publics = "++show publics putStrLn $ "keyrings = "++show keyrings -} @@ -1324,19 +1324,25 @@ main = do return db' let homespec = join . take 1 <$> Map.lookup "--homedir" margs + passfd = fmap (FileDesc . read) passphrase_fd + pems = flip map keypairs + $ \(usage,path,cmd) -> + let cmd' = guard (not $ null cmd) >> return cmd + in (ArgFile path, (MutableRef cmd', PEMFile usage)) kikiOp = KeyRingData - { kFiles = Map.fromList - [ ( HomeSec, (ConstRef, KeyRingFile (FileDesc 8)) ) - , ( HomePub, (ConstRef, KeyRingFile (FileDesc 8)) ) + { kFiles = Map.fromList $ + [ ( HomeSec, (MutableRef Nothing, KeyRingFile passfd) ) + , ( HomePub, (MutableRef Nothing, KeyRingFile Nothing) ) ] + ++ pems , kImports = Map.empty , homeSpec = homespec } - rt <- runKeyRing kikiOp + KikiResult rt report <- runKeyRing kikiOp case rt of - KikiResult (KikiSuccess rt) _ -> do -- interpret --show-* commands. + KikiSuccess rt -> do -- interpret --show-* commands. let grip = rtGrip rt let shspec = Map.fromList [("--show-wk", const $ show_wk (rtSecring rt) grip) ,("--show-all",const $ show_all) @@ -1349,7 +1355,9 @@ main = do shargs = mapMaybe (\(x:xs) -> (,xs) <$> Map.lookup x shspec) sargs forM_ shargs $ \(cmd,args) -> cmd args (rtKeyDB rt) + e -> putStrLn $ show (fmap (const ()) e) + putStrLn $ show report return() where -- cgit v1.2.3