From 516df397c2da80848ff57a30f15a4bf513eab2d0 Mon Sep 17 00:00:00 2001 From: Tankred Hase Date: Fri, 17 Jun 2016 19:56:33 +0200 Subject: [PATCH] Fix bug that prevented verification of multiple user ids --- src/service/public-key.js | 2 +- test/integration/public-key-test.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/service/public-key.js b/src/service/public-key.js index 9049bd5..64b45f8 100644 --- a/src/service/public-key.js +++ b/src/service/public-key.js @@ -138,7 +138,7 @@ class PublicKey { } // check if user ids of this key have already been verified in another key let verified = yield this.getVerified(key); - if (verified) { + if (verified && verified.keyId !== keyId) { util.throw(304, 'Key for this user already exists'); } // flag the user id as verified diff --git a/test/integration/public-key-test.js b/test/integration/public-key-test.js index 9b37ba4..18b8fe1 100644 --- a/test/integration/public-key-test.js +++ b/test/integration/public-key-test.js @@ -142,6 +142,21 @@ describe('Public Key Integration Tests', function() { expect(gotten.userIds[1].verified).to.be.false; expect(gotten.userIds[1].nonce).to.equal(mailsSent[0].params.nonce); }); + + it('should be able to verify multiple user ids', function *() { + yield publicKey.put({ publicKeyArmored, origin }); + expect(mailsSent.length).to.equal(4); + yield publicKey.verify(mailsSent[0].params); + yield publicKey.verify(mailsSent[1].params); + yield publicKey.verify(mailsSent[2].params); + yield publicKey.verify(mailsSent[3].params); + let gotten = yield mongo.get({ keyId:mailsSent[0].params.keyId }, DB_TYPE); + expect(gotten.userIds[0].verified).to.be.true; + expect(gotten.userIds[1].verified).to.be.true; + expect(gotten.userIds[2].verified).to.be.true; + expect(gotten.userIds[3].verified).to.be.true; + }); + }); describe('getVerified', () => {