From 6a5cfd39cc3c43757c072285e87a89639a09b8f1 Mon Sep 17 00:00:00 2001
From: David Crawshaw <crawshaw@tailscale.com>
Date: Tue, 6 Oct 2020 14:02:33 -0400
Subject: [PATCH] control/controlclient: some extra debug info in errors

Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
---
 control/controlclient/direct.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/control/controlclient/direct.go b/control/controlclient/direct.go
index 5a86f1f2d..ac9b04474 100644
--- a/control/controlclient/direct.go
+++ b/control/controlclient/direct.go
@@ -389,7 +389,7 @@ func (c *Direct) doLogin(ctx context.Context, t *oauth2.Token, flags LoginFlags,
 	}
 	resp := tailcfg.RegisterResponse{}
 	if err := decode(res, &resp, &serverKey, &c.machinePrivKey); err != nil {
-		c.logf("error decoding RegisterReq: %v", err)
+		c.logf("error decoding RegisterResponse with server key %s and machine key %s: %v", serverKey, c.machinePrivKey.Public(), err)
 		return regen, url, fmt.Errorf("register request: %v", err)
 	}
 	// Log without PII:
@@ -789,7 +789,7 @@ func decryptMsg(msg []byte, serverKey *wgcfg.Key, mkey *wgcfg.PrivateKey) ([]byt
 	pub, pri := (*[32]byte)(serverKey), (*[32]byte)(mkey)
 	decrypted, ok := box.Open(nil, msg, &nonce, pub, pri)
 	if !ok {
-		return nil, fmt.Errorf("cannot decrypt response")
+		return nil, fmt.Errorf("cannot decrypt response (len %d + nonce %d = %d)", len(msg), len(nonce), len(msg)+len(nonce))
 	}
 	return decrypted, nil
 }