summaryrefslogtreecommitdiffhomepage
path: root/Role
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2017-05-04 14:02:37 -0400
committerJoey Hess <joeyh@joeyh.name>2017-05-04 14:02:37 -0400
commit0aebedadd392e495ffc8f7c2fa74d712f16c2d7d (patch)
tree8f6af2ccc4e9bc4526ea8b8bf09bdfda327d9fdb /Role
parent2cd4c53ece2d935b044c65802824810eb712b1c2 (diff)
downloaddebug-me-0aebedadd392e495ffc8f7c2fa74d712f16c2d7d.tar.gz
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.
Diffstat (limited to 'Role')
-rw-r--r--Role/Developer.hs8
-rw-r--r--Role/User.hs2
2 files changed, 6 insertions, 4 deletions
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)