Skip to content

Commit

Permalink
Do not include checksum values in error messages when armor integrity…
Browse files Browse the repository at this point in the history
… check fails (#1428)
  • Loading branch information
larabr committed Oct 21, 2021
1 parent 88b1380 commit cfeef41
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 13 deletions.
3 changes: 1 addition & 2 deletions src/encoding/armor.js
Expand Up @@ -328,8 +328,7 @@ export function unarmor(input, config = defaultConfig) {
try {
const checksumVerifiedString = (await checksumVerified).replace('\n', '');
if (checksum !== checksumVerifiedString && (checksum || config.checksumRequired)) {
throw new Error("Ascii armor integrity check on message failed: '" + checksum + "' should be '" +
checksumVerifiedString + "'");
throw new Error('Ascii armor integrity check failed');
}
await writer.ready;
await writer.close();
Expand Down
12 changes: 6 additions & 6 deletions test/general/armor.js
Expand Up @@ -170,11 +170,11 @@ module.exports = () => describe('ASCII armor', function() {
].join('\n');

// try with default config
await expect(openpgp.readKey({ armoredKey: privKey })).to.be.rejectedWith(/Ascii armor integrity check on message failed/);
await expect(openpgp.readKey({ armoredKey: privKey })).to.be.rejectedWith(/Ascii armor integrity check failed/);

// try opposite config
openpgp.config.checksumRequired = !openpgp.config.checksumRequired;
await expect(openpgp.readKey({ armoredKey: privKey })).to.be.rejectedWith(/Ascii armor integrity check on message failed/);
await expect(openpgp.readKey({ armoredKey: privKey })).to.be.rejectedWith(/Ascii armor integrity check failed/);

// back to default
openpgp.config.checksumRequired = !openpgp.config.checksumRequired;
Expand Down Expand Up @@ -234,15 +234,15 @@ module.exports = () => describe('ASCII armor', function() {

// try with default config
if (openpgp.config.checksumRequired) {
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSum })).to.be.rejectedWith(/Ascii armor integrity check on message failed/);
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSum })).to.be.rejectedWith(/Ascii armor integrity check failed/);
} else {
await openpgp.readKey({ armoredKey: privKeyNoCheckSum });
}

// try opposite config
openpgp.config.checksumRequired = !openpgp.config.checksumRequired;
if (openpgp.config.checksumRequired) {
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSum })).to.be.rejectedWith(/Ascii armor integrity check on message failed/);
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSum })).to.be.rejectedWith(/Ascii armor integrity check failed/);
} else {
await openpgp.readKey({ armoredKey: privKeyNoCheckSum });
}
Expand Down Expand Up @@ -274,15 +274,15 @@ module.exports = () => describe('ASCII armor', function() {

// try with default config
if (openpgp.config.checksumRequired) {
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSumWithTrailingNewline })).to.be.rejectedWith(/Ascii armor integrity check on message failed/);
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSumWithTrailingNewline })).to.be.rejectedWith(/Ascii armor integrity check failed/);
} else {
await openpgp.readKey({ armoredKey: privKeyNoCheckSumWithTrailingNewline });
}

// try opposite config
openpgp.config.checksumRequired = !openpgp.config.checksumRequired;
if (openpgp.config.checksumRequired) {
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSumWithTrailingNewline })).to.be.rejectedWith(/Ascii armor integrity check on message failed/);
await expect(openpgp.readKey({ armoredKey: privKeyNoCheckSumWithTrailingNewline })).to.be.rejectedWith(/Ascii armor integrity check failed/);
} else {
await openpgp.readKey({ armoredKey: privKeyNoCheckSumWithTrailingNewline });
}
Expand Down
4 changes: 2 additions & 2 deletions test/general/openpgp.js
Expand Up @@ -2795,15 +2795,15 @@ aOU=
stepReached = 2;
await stream.readToEnd(decrypted);
} catch (e) {
expect(e.message).to.match(/Ascii armor integrity check on message failed/);
expect(e.message).to.match(/Ascii armor integrity check failed/);
expect(stepReached).to.equal(
j === 0 ? 0 :
(openpgp.config.aeadChunkSizeByte === 0 && (j === 2 || util.detectNode() || util.getHardwareConcurrency() < 8)) || (!openpgp.config.aeadProtect && openpgp.config.allowUnauthenticatedStream) ? 2 :
1
);
return;
}
throw new Error(`Expected "Ascii armor integrity check on message failed" error in subtest ${i}.${j}`);
throw new Error(`Expected "Ascii armor integrity check failed" error in subtest ${i}.${j}`);
}));
}));
}
Expand Down
6 changes: 3 additions & 3 deletions test/general/streaming.js
Expand Up @@ -479,7 +479,7 @@ function tests() {
const reader = stream.getReader(decrypted.data);
expect(await reader.peekBytes(1024)).not.to.deep.equal(plaintext[0]);
dataArrived();
await expect(reader.readToEnd()).to.be.rejectedWith('Ascii armor integrity check on message failed');
await expect(reader.readToEnd()).to.be.rejectedWith('Ascii armor integrity check failed');
expect(decrypted.signatures).to.exist.and.have.length(1);
} finally {
openpgp.config.allowUnauthenticatedStream = allowUnauthenticatedStreamValue;
Expand Down Expand Up @@ -515,7 +515,7 @@ function tests() {
const reader = stream.getReader(decrypted.data);
expect(await reader.peekBytes(1024)).not.to.deep.equal(plaintext[0]);
dataArrived();
await expect(reader.readToEnd()).to.be.rejectedWith('Ascii armor integrity check on message failed');
await expect(reader.readToEnd()).to.be.rejectedWith('Ascii armor integrity check failed');
expect(decrypted.signatures).to.exist.and.have.length(1);
await expect(decrypted.signatures[0].verified).to.be.eventually.rejectedWith(/Could not find signing key/);
} finally {
Expand Down Expand Up @@ -549,7 +549,7 @@ function tests() {
const reader = stream.getReader(verified.data);
expect(await reader.peekBytes(1024)).not.to.deep.equal(plaintext[0]);
dataArrived();
await expect(reader.readToEnd()).to.be.rejectedWith('Ascii armor integrity check on message failed');
await expect(reader.readToEnd()).to.be.rejectedWith('Ascii armor integrity check failed');
expect(verified.signatures).to.exist.and.have.length(1);
});

Expand Down

0 comments on commit cfeef41

Please sign in to comment.