diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-10-06 15:37:12 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-10-06 16:10:18 -0400 |
commit | f17abaa8ec3654ab4973641e2f551fe5b7088671 (patch) | |
tree | 5e0a692a0c21187b2cdfca5a35fea5575faa5f22 /Gpg.hs | |
parent | eeda326eb9aa34ff325bc9d2d97f5cb42f3958b5 (diff) | |
download | keysafe-f17abaa8ec3654ab4973641e2f551fe5b7088671.tar.gz |
Gpg keyid bugs
Fix bugs with entry of gpg keyid in the keysafe.log. Gpg.anyKey was being
used in writing the log, which made the log contain gpg keys with an empty
keyid.
Fix bug in --autostart that caused the full gpg keyid to be
used in the name, so restores would only work when --gpgkeyid was
specifid.
Added a Distinguisher data type rather than the Gpg.anyKey hack.
This commit was sponsored by Thom May on Patreon.
Diffstat (limited to 'Gpg.hs')
-rw-r--r-- | Gpg.hs | 13 |
1 files changed, 6 insertions, 7 deletions
@@ -21,20 +21,19 @@ import qualified Data.Text as T -- -- If there is only one gpg secret key, -- the choice is obvious. Otherwise prompt the user with a list. -getKeyToBackup :: UI -> IO SecretKey +getKeyToBackup :: UI -> IO (SecretKeySource, SecretKey) getKeyToBackup ui = go =<< listSecretKeys where go [] = do showError ui "You have no gpg secret keys to back up." error "Aborting on no gpg secret keys." - go [(_, kid)] = getSecretKey kid - go l = maybe (error "Canceled") getSecretKey + go [(_, kid)] = mkret kid + go l = maybe (error "Canceled") mkret =<< promptKeyId ui "Pick gpg secret key" "Pick gpg secret key to back up:" l - --- | Use when the gpg keyid will not be known at restore time. -anyKey :: SecretKeySource -anyKey = GpgKey (KeyId "") + mkret kid = do + sk <- getSecretKey kid + return (GpgKey kid, sk) listSecretKeys :: IO [(Name, KeyId)] listSecretKeys = map mk . parse . lines <$> readProcess "gpg" |