From 0aebedadd392e495ffc8f7c2fa74d712f16c2d7d Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 4 May 2017 14:02:37 -0400 Subject: include gpg public key export in GpgSigned This makes debug-me not rely on the gpg keyservers at all. Before, it was only working when the user had the developer's public key already. I thought that --verify would download from --keyserver, but seems not. This is a protocol breaking change! Luckily done before any release, so ok. ProtocolBuffers renumbered. This commit was sponsored by Denis Dzyubenko on Patreon. --- Role/Developer.hs | 8 +++++--- Role/User.hs | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'Role') diff --git a/Role/Developer.hs b/Role/Developer.hs index 2cc6c1c..2cdf917 100644 --- a/Role/Developer.hs +++ b/Role/Developer.hs @@ -230,7 +230,9 @@ authUser spk ichan ochan devstate logger = do atomically $ writeTMChan ichan msg logger $ Developer msg waitresp $ case spk of - GpgSigned pk _ -> pk + -- Don't bother verifying the user's gpg public key; + -- normally users send UnSigned. + GpgSigned pk _ _ -> pk UnSigned pk -> pk where waitresp pk = do @@ -291,7 +293,7 @@ getServerMessage ochan devstate ts = do -- When other developers connect, learn their SessionKeys. process (Developer msg@(ControlMessage (Control (SessionKey spk) _))) = do let sigverifier = mkSigVerifier $ case spk of - GpgSigned pk _ -> pk + GpgSigned pk _ _ -> pk UnSigned pk -> pk if verifySigned sigverifier msg then do @@ -421,7 +423,7 @@ processSessionStart sk ochan logger dsv = do sigverifier <- case sessionmsg of User (ControlMessage c@(Control (SessionKey spk) _)) -> do let pk = case spk of - GpgSigned k _ -> k + GpgSigned k _ _ -> k UnSigned k -> k let sv = mkSigVerifier pk if verifySigned sv c diff --git a/Role/User.hs b/Role/User.hs index 49e9edf..6c6fb39 100644 --- a/Role/User.hs +++ b/Role/User.hs @@ -250,7 +250,7 @@ getDeveloperMessage' (MissingHashes wiremsg) ochan us now = do case msg of ControlMessage (Control (SessionKey spk) _) -> do let sigverifier = mkSigVerifier $ case spk of - GpgSigned pk _ -> pk + GpgSigned pk _ _ -> pk UnSigned pk -> pk if verifySigned sigverifier msg then return (InputMessage msg) -- cgit v1.2.3