Allow email addresses with trailing numbers in domain ()

Domains such as .com09 are valid (see RFC1123)
This commit is contained in:
larabr 2023-05-15 16:21:51 +02:00 committed by GitHub
parent 1eb0b42387
commit 33c19542af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions
src
test/general

View File

@ -424,7 +424,7 @@ const util = {
if (!util.isString(data)) {
return false;
}
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}|xn--[a-zA-Z\-0-9]+)))$/;
const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+([a-zA-Z]{2,}[0-9]*|xn--[a-zA-Z\-0-9]+)))$/;
return re.test(data);
},

View File

@ -2367,6 +2367,19 @@ function versionSpecificTests() {
});
});
it('Generate key - single userID (special email format)', async function() {
const userID = { name: 'test', email: 'test1@com.com09', comment: '' };
const opt = { userIDs: userID };
const { privateKey: armoredKey } = await openpgp.generateKey(opt);
// test also serialisation and parsing
const key = await openpgp.readKey({ armoredKey });
expect(key.users.length).to.equal(1);
expect(key.users[0].userID.userID).to.equal('test <test1@com.com09>');
expect(key.users[0].userID.name).to.equal(userID.name);
expect(key.users[0].userID.email).to.equal(userID.email);
expect(key.users[0].userID.comment).to.equal(userID.comment);
});
it('Generate key - setting date to the past', function() {
const past = new Date(0);
const opt = {