From 93d823abb4f07795c355305e626477b83a169ce8 Mon Sep 17 00:00:00 2001 From: Patrick Brunschwig Date: Sat, 19 Aug 2017 18:32:02 +0200 Subject: [PATCH 1/4] Fix for issue 573: don't throw with unknown Armor Headers, but just with invalid ones --- src/encoding/armor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/encoding/armor.js b/src/encoding/armor.js index bc7abea4..7a077033 100644 --- a/src/encoding/armor.js +++ b/src/encoding/armor.js @@ -224,7 +224,7 @@ function splitHeaders(text) { */ function verifyHeaders(headers) { for (var i = 0; i < headers.length; i++) { - if (!/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(headers[i])) { + if (!/^[^: ]+: .+$/.test(headers[i])) { throw new Error('Improperly formatted armor header: ' + headers[i]); } } From 1e8bd4315b6016eadc7cae2af19fd9654895f885 Mon Sep 17 00:00:00 2001 From: Bart Butler Date: Sat, 19 Aug 2017 10:49:36 -0700 Subject: [PATCH 2/4] Update armor.js Small tweak --- src/encoding/armor.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/encoding/armor.js b/src/encoding/armor.js index 7a077033..47b58620 100644 --- a/src/encoding/armor.js +++ b/src/encoding/armor.js @@ -224,9 +224,12 @@ function splitHeaders(text) { */ function verifyHeaders(headers) { for (var i = 0; i < headers.length; i++) { - if (!/^[^: ]+: .+$/.test(headers[i])) { + if (!/^[^:\s]+: .+$/.test(headers[i])) { throw new Error('Improperly formatted armor header: ' + headers[i]); } + if (!/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(headers[i])) { + console.log('Unknown header: ' + headers[i]); + } } } From ad029f1929bce58c9b7d01e20813a11faacea407 Mon Sep 17 00:00:00 2001 From: Bart Butler Date: Sat, 19 Aug 2017 10:52:36 -0700 Subject: [PATCH 3/4] Update armor.js Only console.log if debug mode on --- src/encoding/armor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/encoding/armor.js b/src/encoding/armor.js index 47b58620..6c175393 100644 --- a/src/encoding/armor.js +++ b/src/encoding/armor.js @@ -227,7 +227,7 @@ function verifyHeaders(headers) { if (!/^[^:\s]+: .+$/.test(headers[i])) { throw new Error('Improperly formatted armor header: ' + headers[i]); } - if (!/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(headers[i])) { + if (config.debug && !/^(Version|Comment|MessageID|Hash|Charset): .+$/.test(headers[i])) { console.log('Unknown header: ' + headers[i]); } } From 79c8a83ceaf1ec3c673a35f294de3ddf1c380982 Mon Sep 17 00:00:00 2001 From: Patrick Brunschwig Date: Sat, 19 Aug 2017 22:07:36 +0200 Subject: [PATCH 4/4] fixed broken Testcase for improperly formatted Armor Header --- test/general/armor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/general/armor.js b/test/general/armor.js index 073c35a5..2644abea 100644 --- a/test/general/armor.js +++ b/test/general/armor.js @@ -104,7 +104,7 @@ describe("ASCII armor", function() { var msg = getArmor(['Hash:SHA256']); msg = openpgp.cleartext.readArmored.bind(null, msg); expect(msg).to.throw(Error, /Improperly formatted armor header/); - msg = getArmor(['