diff options
Diffstat (limited to 'lib/Kiki.hs')
-rw-r--r-- | lib/Kiki.hs | 22 |
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 | |||
49 | import GnuPGAgent (Query (..)) | 49 | import GnuPGAgent (Query (..)) |
50 | import KeyRing hiding (pemFromPacket) | 50 | import KeyRing hiding (pemFromPacket) |
51 | import KeyDB | 51 | import KeyDB |
52 | import KeyRing.BuildKeyDB (gpgipv6addr, Hostnames, allNames) | ||
52 | 53 | ||
53 | withAgent :: [PassphraseSpec] -> [PassphraseSpec] | 54 | withAgent :: [PassphraseSpec] -> [PassphraseSpec] |
54 | withAgent [] = [PassphraseAgent] | 55 | withAgent [] = [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 | ||
451 | allNames :: Hostnames -> [Char8.ByteString] | ||
452 | allNames (Hostnames _ ns os cs) = ns ++ os ++ (maybe [] return cs) | ||
453 | |||
454 | getSshKnownHosts :: Peer -> Char8.ByteString | 452 | getSshKnownHosts :: Peer -> Char8.ByteString |
455 | getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs | 453 | getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs |
456 | where | 454 | where |
@@ -496,7 +494,7 @@ installIpsecConf fw MyIdentity{myGpgAddress} cs = do | |||
496 | getMyIdentity :: KeyRingRuntime -> Maybe MyIdentity | 494 | getMyIdentity :: KeyRingRuntime -> Maybe MyIdentity |
497 | getMyIdentity rt = do | 495 | getMyIdentity 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 | ||
502 | refreshCache :: KeyRingRuntime -> Maybe FilePath -> IO () | 500 | refreshCache :: 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 |