From 79a6be565b05e065c5acc43115e7ff7a13059be8 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Sun, 4 Jan 2015 08:02:49 -0500
Subject: [PATCH] Add a test for the bad key case of unauthorized ssh key
 checking.

---
 src/allmydata/test/test_auth.py | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/src/allmydata/test/test_auth.py b/src/allmydata/test/test_auth.py
index f7786b0e..52705788 100644
--- a/src/allmydata/test/test_auth.py
+++ b/src/allmydata/test/test_auth.py
@@ -48,3 +48,18 @@ class AccountFileCheckerKeyTests(unittest.TestCase):
             b"dennis", b"md5", None, None, None)
         avatarId = self.checker.requestAvatarId(key_credentials)
         return self.assertFailure(avatarId, error.UnauthorizedLogin)
+
+    def test_unrecognized_key(self):
+        """
+        AccountFileChecker.requestAvatarId returns a Deferred that fires with
+        UnauthorizedLogin if called with an SSHPrivateKey object with a public
+        key other than the one indicated in the account file for the indicated
+        user.
+        """
+        wrong_key_blob = b"""\
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAYQDJGMWlPXh2M3pYzTiamjcBIMqctt4VvLVW2QZgEFc86XhGjPXq5QAiRTKv9yVZJR9HW70CfBI7GHun8+v4Wb6aicWBoxgI3OB5NN+OUywdme2HSaif5yenFdQr0ME71Xs=
+"""
+        key_credentials = credentials.SSHPrivateKey(
+            b"carol", b"md5", wrong_key_blob, None, None)
+        avatarId = self.checker.requestAvatarId(key_credentials)
+        return self.assertFailure(avatarId, error.UnauthorizedLogin)
-- 
2.45.2