summaryrefslogtreecommitdiff
path: root/kiki.hs
diff options
context:
space:
mode:
authorJoe Crayne <joe@jerkface.net>2019-07-11 22:17:09 -0400
committerJoe Crayne <joe@jerkface.net>2019-07-11 22:17:09 -0400
commit365bdcd8d9f4a08aaae35fc27722d268f4af9041 (patch)
treeacc5aa18e90eb7f90174ca172136e49198495fbd /kiki.hs
parenta2cfd42e569e2f8d0a7011573f72ba0876ae16e8 (diff)
WIP: verify command to verify clear-sign PGP signatures.
Diffstat (limited to 'kiki.hs')
-rw-r--r--kiki.hs19
1 files changed, 17 insertions, 2 deletions
diff --git a/kiki.hs b/kiki.hs
index cd0f516..b4512f3 100644
--- a/kiki.hs
+++ b/kiki.hs
@@ -1647,6 +1647,20 @@ kiki "tar" args = do
1647 ["-A":_] -> putStrLn "unimplemented." -- import tar file? 1647 ["-A":_] -> putStrLn "unimplemented." -- import tar file?
1648 _ -> kiki "tar" ["--help"] 1648 _ -> kiki "tar" ["--help"]
1649 1649
1650kiki "verify" args | "--help" `elem` args = do
1651 putStr . unlines $
1652 [ "kiki verify [--homedir HOMEDIR | --homeless] [[--keyring FILE] ...] FILE"
1653 ]
1654kiki "verify" argvals =
1655 let opts = [("--homedir",1),("--keyring",1),("--homeless",0)]
1656 in case runArgs (parseInvocation (fancy opts [] "") argvals)
1657 (verifyFile <$> flag "--homeless"
1658 <*> dashdashHomedir
1659 <*> args "--keyring"
1660 <*> param 0) of
1661 Left er -> hPutStrLn stderr $ usageErrorMessage er
1662 Right io -> io
1663
1650kiki cmd args = hPutStrLn stderr $ "I don't know how to "++cmd++"." 1664kiki cmd args = hPutStrLn stderr $ "I don't know how to "++cmd++"."
1651 1665
1652sshkeyname :: Packet -> [FilePath] 1666sshkeyname :: Packet -> [FilePath]
@@ -1709,7 +1723,7 @@ ipsecKeyNames (Hostnames _ onames _ _) = do
1709 1723
1710tarT :: ([[String]],Map.Map String [String]) -> IO () 1724tarT :: ([[String]],Map.Map String [String]) -> IO ()
1711tarT (sargs,margs) = do 1725tarT (sargs,margs) = do
1712 KikiResult rt report <- runKeyRing $ minimalOp $ parseCommonArgs margs 1726 KikiResult rt report <- runKeyRing $ minimalOp False $ parseCommonArgs margs
1713 case rt of 1727 case rt of
1714 KikiSuccess rt -> do 1728 KikiSuccess rt -> do
1715 let keyspec = concat . take 1 <$> Map.lookup "--secrets" margs 1729 let keyspec = concat . take 1 <$> Map.lookup "--secrets" margs
@@ -1720,7 +1734,7 @@ tarT (sargs,margs) = do
1720 1734
1721tarC :: ([[String]],Map.Map String [String]) -> IO () 1735tarC :: ([[String]],Map.Map String [String]) -> IO ()
1722tarC (sargs,margs) = do 1736tarC (sargs,margs) = do
1723 KikiResult rt report <- runKeyRing $ minimalOp $ parseCommonArgs margs 1737 KikiResult rt report <- runKeyRing $ minimalOp False $ parseCommonArgs margs
1724 case rt of 1738 case rt of
1725 KikiSuccess rt -> do 1739 KikiSuccess rt -> do
1726 CTime pubtime <- modificationTime <$> getFileStatus (rtPubring rt) 1740 CTime pubtime <- modificationTime <$> getFileStatus (rtPubring rt)
@@ -1813,6 +1827,7 @@ commands =
1813 , ( "rename", "Change the usage tag on a specified subkey" ) 1827 , ( "rename", "Change the usage tag on a specified subkey" )
1814 -- also repairs signature and adds missing cross-certification. 1828 -- also repairs signature and adds missing cross-certification.
1815 , ( "tar", "import or export system key files in tar format" ) 1829 , ( "tar", "import or export system key files in tar format" )
1830 , ( "verify", "Check a clear-sign pgp signature." )
1816 ] 1831 ]
1817 1832
1818main :: IO () 1833main :: IO ()