summaryrefslogtreecommitdiffhomepage
path: root/Gpg.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-08-17 15:52:08 -0400
committerJoey Hess <joeyh@joeyh.name>2016-08-17 15:52:08 -0400
commit19e3dc5541a74fe1c323c629bdf214b8690640e5 (patch)
treed4c16b9bb027887e9b7ea323997d30e00ba9ebdb /Gpg.hs
parented8d1ed03c3520ccd4b3c775817bef122457f224 (diff)
downloadkeysafe-19e3dc5541a74fe1c323c629bdf214b8690640e5.tar.gz
save restored secret key to gpg or file
Diffstat (limited to 'Gpg.hs')
-rw-r--r--Gpg.hs12
1 files changed, 12 insertions, 0 deletions
diff --git a/Gpg.hs b/Gpg.hs
index cbb7991..f8651e3 100644
--- a/Gpg.hs
+++ b/Gpg.hs
@@ -55,3 +55,15 @@ getSecretKey (KeyId kid) = do
_ -> error "gpg --export-secret-key failed"
where
ps = ["--batch", "--export-secret-key", BU8.toString kid]
+
+writeSecretKey :: SecretKey -> IO ()
+writeSecretKey (SecretKey b) = do
+ (Just hin, _, _, ph) <- createProcess (proc "gpg" ps)
+ { std_in = CreatePipe }
+ B.hPut hin b
+ exitcode <- waitForProcess ph
+ case exitcode of
+ ExitSuccess -> return ()
+ _ -> error "gpg --import failed"
+ where
+ ps = ["--batch", "--import"]