diff options
author | Joey Hess <joeyh@joeyh.name> | 2016-08-17 17:29:11 -0400 |
---|---|---|
committer | Joey Hess <joeyh@joeyh.name> | 2016-08-17 17:29:46 -0400 |
commit | c394b41a2ffb7e987864fa64fd583017c717703b (patch) | |
tree | 9aaaf9467badba9baeed3b634a1155be1ee833a0 /keysafe.hs | |
parent | b66b497244ab2a094bec5c3a678f448f23c8404d (diff) | |
download | keysafe-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.hs | 24 |
1 files changed, 11 insertions, 13 deletions
@@ -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." |