2 Commits

Author SHA1 Message Date
Simon Vareille
b752e7db3a Error codes more specifics 2020-06-15 11:51:16 +02:00
Simon Vareille
5c1ddb4e21 Do not display unverified uids as part of a key for hkp index and vindex output
This is not for security or privacy reasons, but to provide an accurate answer to a search request.
2020-06-14 18:03:24 +02:00
2 changed files with 6 additions and 4 deletions

View File

@@ -136,7 +136,9 @@ class HKP {
ctx.body = `info:${VERSION}:${COUNT}\npub:${fp}:${algo}:${key.keySize}:${created}::\n`;
for (const uid of key.userIds) {
ctx.body += `uid:${encodeURIComponent(`${uid.name} <${uid.email}>`)}:::\n`;
if(uid.verified) {
ctx.body += `uid:${encodeURIComponent(`${uid.name} <${uid.email}>`)}:::\n`;
}
}
}
}

View File

@@ -48,7 +48,7 @@ class PGP {
log.error('pgp', 'Failed to parse PGP key:\n%s', publicKeyArmored, error);
util.throw(500, 'Failed to parse PGP key');
} else if (!r.keys || r.keys.length !== 1 || !r.keys[0].primaryKey) {
util.throw(400, 'Invalid PGP key: only one key can be uploaded');
util.throw(501, 'Invalid PGP key: only one key can be uploaded');
}
// verify primary key
@@ -64,14 +64,14 @@ class PGP {
const keyId = primaryKey.getKeyId().toHex();
const fingerprint = primaryKey.getFingerprint();
if (!util.isKeyId(keyId) || !util.isFingerPrint(fingerprint)) {
util.throw(400, 'Invalid PGP key: only v4 keys are accepted');
util.throw(501, 'Invalid PGP key: only v4 keys are accepted');
}
// check for at least one valid user id
const {userIds, status} = await this.parseUserIds(key.users, primaryKey, verifyDate);
if (!userIds.length) {
if (status == 1) {
util.throw(400, 'Invalid PGP key: no user ID comes from a valid organisation');
util.throw(403, 'Invalid PGP key: no user ID comes from a valid organisation');
}
else {
util.throw(400, 'Invalid PGP key: invalid user IDs');