summaryrefslogtreecommitdiffhomepage
path: root/keysafe.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-08-19 16:53:55 -0400
committerJoey Hess <joeyh@joeyh.name>2016-08-19 16:53:55 -0400
commit6b3253bfabeb2e170c8dada9f5c22718d23e018a (patch)
tree295d07e62bfdf548ead905d91141d6a59137dd57 /keysafe.hs
parentf37b78acc2ba8272d8181f636eac6eb123c59013 (diff)
downloadkeysafe-6b3253bfabeb2e170c8dada9f5c22718d23e018a.tar.gz
avoid displaying messages while progress bar is displayed
Diffstat (limited to 'keysafe.hs')
-rw-r--r--keysafe.hs18
1 files changed, 11 insertions, 7 deletions
diff --git a/keysafe.hs b/keysafe.hs
index 7ec211f..9ebbd75 100644
--- a/keysafe.hs
+++ b/keysafe.hs
@@ -197,23 +197,27 @@ restore storagelocations ui possibletunables secretkeydest = do
<> castCost (getDecryptionCost candidatekeys)
case combineShares tunables [shares] of
Left e -> showError ui e
- Right esk -> withProgress ui "Decrypting"
- (decryptdesc cost) $ \setpercent ->
- go tunables [shares] sis setpercent $
- tryDecrypt candidatekeys esk
+ Right esk -> do
+ final <- withProgress ui "Decrypting"
+ (decryptdesc cost) $ \setpercent ->
+ go tunables [shares] sis setpercent $
+ tryDecrypt candidatekeys esk
+ final
where
go tunables firstshares sis setpercent r = case r of
- DecryptFailed -> showError ui "Decryption failed! Unknown why it would fail at this point."
+ DecryptFailed -> return $
+ showError ui "Decryption failed! Unknown why it would fail at this point."
DecryptSuccess secretkey -> do
_ <- setpercent 100
writeSecretKey secretkeydest secretkey
- showInfo ui "Success" "Your secret key successfully restored!"
+ return $
+ showInfo ui "Success" "Your secret key successfully restored!"
DecryptIncomplete kek -> do
-- Download shares for another chunk.
(nextshares, sis') <- retrieveShares storagelocations sis (return ())
let shares = firstshares ++ [nextshares]
case combineShares tunables shares of
- Left e -> showError ui e
+ Left e -> return $ showError ui e
Right esk ->
go tunables shares sis' setpercent $
decrypt kek esk