summaryrefslogtreecommitdiffhomepage
path: root/keysafe.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-08-17 17:29:11 -0400
committerJoey Hess <joeyh@joeyh.name>2016-08-17 17:29:46 -0400
commitc394b41a2ffb7e987864fa64fd583017c717703b (patch)
tree9aaaf9467badba9baeed3b634a1155be1ee833a0 /keysafe.hs
parentb66b497244ab2a094bec5c3a678f448f23c8404d (diff)
downloadkeysafe-c394b41a2ffb7e987864fa64fd583017c717703b.tar.gz
allow configuring N and M
User has to remember they did this and use the same configuration on restore.
Diffstat (limited to 'keysafe.hs')
-rw-r--r--keysafe.hs24
1 files changed, 11 insertions, 13 deletions
diff --git a/keysafe.hs b/keysafe.hs
index 3551cb4..bb6d766 100644
--- a/keysafe.hs
+++ b/keysafe.hs
@@ -35,16 +35,17 @@ main :: IO ()
main = do
cmdline <- CmdLine.get
ui <- selectUI (CmdLine.gui cmdline)
- tunables <- if CmdLine.testMode cmdline
+ let mkt = CmdLine.customizeShardParams cmdline
+ (tunables, possibletunables) <- if CmdLine.testMode cmdline
then do
showInfo ui "Test mode"
"Keysafe is running in test mode. This is not secure, and should not be used with real secret keys!"
- return testModeTunables
- else return defaultTunables
- dispatch cmdline ui tunables
+ return (mkt testModeTunables, [mkt testModeTunables])
+ else return (mkt defaultTunables, map (mkt . snd) knownTunings)
+ dispatch cmdline ui tunables possibletunables
-dispatch :: CmdLine.CmdLine -> UI -> Tunables -> IO ()
-dispatch cmdline ui tunables = do
+dispatch :: CmdLine.CmdLine -> UI -> Tunables -> [Tunables] -> IO ()
+dispatch cmdline ui tunables possibletunables = do
mode <- CmdLine.selectMode cmdline
go mode (CmdLine.secretkeysource cmdline)
where
@@ -53,12 +54,12 @@ dispatch cmdline ui tunables = do
backup storage ui tunables secretkeysource
=<< getSecretKey secretkeysource
go CmdLine.Restore (Just secretkeydest) =
- restore storage ui (CmdLine.testMode cmdline) secretkeydest
+ restore storage ui possibletunables secretkeydest
go CmdLine.Backup Nothing =
backup storage ui tunables Gpg.anyKey
=<< Gpg.getKeyToBackup ui
go CmdLine.Restore Nothing =
- restore storage ui (CmdLine.testMode cmdline) Gpg.anyKey
+ restore storage ui possibletunables Gpg.anyKey
go CmdLine.Benchmark _ =
benchmarkTunables tunables
@@ -143,8 +144,8 @@ backup storage ui tunables secretkeysource secretkey = do
, "Please wait..."
]
-restore :: Storage -> UI -> Bool -> SecretKeySource -> IO ()
-restore storage ui testmode secretkeydest = do
+restore :: Storage -> UI -> [Tunables] -> SecretKeySource -> IO ()
+restore storage ui possibletunables secretkeydest = do
username <- userName
name <- fromMaybe (error "Aborting on no name")
<$> promptName ui "Enter name"
@@ -169,9 +170,6 @@ restore storage ui testmode secretkeydest = do
writeSecretKey secretkeydest secretkey
showInfo ui "Success" "Your secret key successfully restored!"
where
- possibletunables
- | testmode = [testModeTunables]
- | otherwise = map snd knownTunings
namedesc = unlines
[ "When you backed up your secret key, you entered a name and a password."
, "Now it's time to remember what you entered back then."