From 38d96a0d42ad0b8515b495e93de9f4f9d6fa48e5 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 13 Jul 2019 01:38:07 -0400 Subject: put all the names into ssh known hosts --- lib/Kiki.hs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/Kiki.hs b/lib/Kiki.hs index 80f79b3..9832ef9 100644 --- a/lib/Kiki.hs +++ b/lib/Kiki.hs @@ -336,7 +336,7 @@ importAndRefresh root cmn cipher = do data Peer = Peer - { peerContactName :: UidHostname + { peerContactName :: () , peerHostnames :: Hostnames , addr :: SockAddr , kd :: KeyData @@ -458,6 +458,9 @@ generateHostsFile fw rt = do KikiResult _ report <- runKeyRing op outputReport report +allNames :: Hostnames -> [Char8.ByteString] +allNames (Hostnames _ ns os cs) = ns ++ os ++ (maybe [] return cs) + getSshKnownHosts :: Peer -> Char8.ByteString getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs where @@ -465,7 +468,9 @@ getSshKnownHosts peer@Peer{kd} = Char8.unlines taggedblobs sshs :: [Packet] sshs = sortOn (Down . timestamp) $ getSubkeys CrossSigned their_master (keySubKeys $ kd) "ssh-server" blobs = mapMaybe sshblobFromPacketL sshs - taggedblobs = map ((coerce (peerContactName peer) <> " ") <>) blobs + taggedblobs = do + n <- allNames $ peerHostnames peer + map ((coerce n <> " ") <>) blobs data MyIdentity = MyIdentity { myGpgAddress :: SockAddr, @@ -558,7 +563,7 @@ chooseOneName _ = Nothing listPeers :: KeyRingRuntime -> [Peer] listPeers rt = map conv . filter notme . mapMaybe namedContact . Map.elems . byKeyKey . rtKeyDB $ rt where - conv = \(a,b,c,d) -> Peer a b c d + conv = \(a,b,c,d) -> Peer () b c d kk = keykey (fromJust $ rtWorkingKey rt) notme (_,_,_,kd) = keykey (keyPacket kd) /= kk namedContact kd = do -- cgit v1.2.3