summaryrefslogtreecommitdiff
path: root/lib/Kiki.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Kiki.hs')
-rw-r--r--lib/Kiki.hs22
1 files changed, 14 insertions, 8 deletions
diff --git a/lib/Kiki.hs b/lib/Kiki.hs
index 64dc2bd..258892f 100644
--- a/lib/Kiki.hs
+++ b/lib/Kiki.hs
@@ -49,6 +49,7 @@ import DotLock
49import GnuPGAgent (Query (..)) 49import GnuPGAgent (Query (..))
50import KeyRing hiding (pemFromPacket) 50import KeyRing hiding (pemFromPacket)
51import KeyDB 51import KeyDB
52import KeyRing.BuildKeyDB (gpgipv6addr, Hostnames, allNames)
52 53
53withAgent :: [PassphraseSpec] -> [PassphraseSpec] 54withAgent :: [PassphraseSpec] -> [PassphraseSpec]
54withAgent [] = [PassphraseAgent] 55withAgent [] = [PassphraseAgent]
@@ -448,9 +449,6 @@ generateHostsFile fw rt = do
448 KikiResult _ report <- runKeyRing op 449 KikiResult _ report <- runKeyRing op
449 outputReport report 450 outputReport report
450 451
451allNames :: Hostnames -> [Char8.ByteString]
452allNames (Hostnames _ ns os cs) = ns ++ os ++ (maybe [] return cs)
453
454getSshKnownHosts :: Peer -> Char8.ByteString 452getSshKnownHosts :: Peer -> Char8.ByteString
455getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs 453getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs
456 where 454 where
@@ -496,7 +494,7 @@ installIpsecConf fw MyIdentity{myGpgAddress} cs = do
496getMyIdentity :: KeyRingRuntime -> Maybe MyIdentity 494getMyIdentity :: KeyRingRuntime -> Maybe MyIdentity
497getMyIdentity rt = do 495getMyIdentity rt = do
498 wk <- rtWorkingKey rt 496 wk <- rtWorkingKey rt
499 Hostnames wkaddr _ _ _ <- getHostnames <$> lookupKeyData (keykey wk) (rtKeyDB rt) 497 wkaddr <- gpgipv6addr . getHostnames <$> lookupKeyData (keykey wk) (rtKeyDB rt)
500 return $ MyIdentity wkaddr (show $ fingerprint wk) 498 return $ MyIdentity wkaddr (show $ fingerprint wk)
501 499
502refreshCache :: KeyRingRuntime -> Maybe FilePath -> IO () 500refreshCache :: KeyRingRuntime -> Maybe FilePath -> IO ()
@@ -734,16 +732,24 @@ verifyFile isHomeless cap keyrings filename = do
734 Right sigs -> do 732 Right sigs -> do
735 let over = DataSignature lit sigs 733 let over = DataSignature lit sigs
736 lit = LiteralDataPacket 734 lit = LiteralDataPacket
737 { format = error "format" :: Char 735 { format = error "format" :: Char -- TODO
738 , filename = filename 736 , filename = filename
739 , timestamp = error "timestamp" :: Word32 737 , timestamp = error "timestamp" :: Word32 -- TODO
740 , content = bs 738 , content = txt
741 } 739 }
742 -- TODO: Remove this take 1 after optimizing 'candidateSignerKeys' 740 -- TODO: Remove this take 1 after optimizing 'candidateSignerKeys'
743 tentativeTake1 xs = take 1 xs 741 tentativeTake1 xs = take 1 xs
744 keys = concatMap (candidateSignerKeys (rtKeyDB rt)) $ tentativeTake1 sigs 742 keys = concatMap (candidateSignerKeys (rtKeyDB rt)) $ tentativeTake1 sigs
745 good = verify (Message keys) over 743 good = verify (Message keys) over
746 putStrLn $ "verifyFile: " ++ show (length $ signatures_over good) 744 putStrLn $ unwords
745 [ "verifyFile:"
746 , show (length $ signatures_over good)
747 , "good of"
748 , show (length $ signatures_over over)
749 , "signatures."
750 ]
751 -- when (null (signatures_over good)) $ do
752 -- L.putStrLn txt
747 rs -> do 753 rs -> do
748 hPutStrLn stderr $ show rs 754 hPutStrLn stderr $ show rs
749 _ -> do 755 _ -> do