Use \n instead of \r\n for EOL when armoring (#1183)
This commit is contained in:
parent
4efeac3ad1
commit
c34dede6de
|
@ -103,15 +103,15 @@ function getType(text) {
|
||||||
function addheader(customComment) {
|
function addheader(customComment) {
|
||||||
let result = "";
|
let result = "";
|
||||||
if (config.showVersion) {
|
if (config.showVersion) {
|
||||||
result += "Version: " + config.versionString + '\r\n';
|
result += "Version: " + config.versionString + '\n';
|
||||||
}
|
}
|
||||||
if (config.showComment) {
|
if (config.showComment) {
|
||||||
result += "Comment: " + config.commentString + '\r\n';
|
result += "Comment: " + config.commentString + '\n';
|
||||||
}
|
}
|
||||||
if (customComment) {
|
if (customComment) {
|
||||||
result += "Comment: " + customComment + '\r\n';
|
result += "Comment: " + customComment + '\n';
|
||||||
}
|
}
|
||||||
result += '\r\n';
|
result += '\n';
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +331,7 @@ export function unarmor(input) {
|
||||||
});
|
});
|
||||||
const writer = stream.getWriter(writable);
|
const writer = stream.getWriter(writable);
|
||||||
try {
|
try {
|
||||||
const checksumVerifiedString = (await checksumVerified).replace('\r\n', '');
|
const checksumVerifiedString = (await checksumVerified).replace('\n', '');
|
||||||
if (checksum !== checksumVerifiedString && (checksum || config.checksumRequired)) {
|
if (checksum !== checksumVerifiedString && (checksum || config.checksumRequired)) {
|
||||||
throw new Error("Ascii armor integrity check on message failed: '" + checksum + "' should be '" +
|
throw new Error("Ascii armor integrity check on message failed: '" + checksum + "' should be '" +
|
||||||
checksumVerifiedString + "'");
|
checksumVerifiedString + "'");
|
||||||
|
@ -371,56 +371,56 @@ export function armor(messagetype, body, partindex, parttotal, customComment) {
|
||||||
const result = [];
|
const result = [];
|
||||||
switch (messagetype) {
|
switch (messagetype) {
|
||||||
case enums.armor.multipartSection:
|
case enums.armor.multipartSection:
|
||||||
result.push("-----BEGIN PGP MESSAGE, PART " + partindex + "/" + parttotal + "-----\r\n");
|
result.push("-----BEGIN PGP MESSAGE, PART " + partindex + "/" + parttotal + "-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP MESSAGE, PART " + partindex + "/" + parttotal + "-----\r\n");
|
result.push("-----END PGP MESSAGE, PART " + partindex + "/" + parttotal + "-----\n");
|
||||||
break;
|
break;
|
||||||
case enums.armor.multipartLast:
|
case enums.armor.multipartLast:
|
||||||
result.push("-----BEGIN PGP MESSAGE, PART " + partindex + "-----\r\n");
|
result.push("-----BEGIN PGP MESSAGE, PART " + partindex + "-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP MESSAGE, PART " + partindex + "-----\r\n");
|
result.push("-----END PGP MESSAGE, PART " + partindex + "-----\n");
|
||||||
break;
|
break;
|
||||||
case enums.armor.signed:
|
case enums.armor.signed:
|
||||||
result.push("\r\n-----BEGIN PGP SIGNED MESSAGE-----\r\n");
|
result.push("\n-----BEGIN PGP SIGNED MESSAGE-----\n");
|
||||||
result.push("Hash: " + hash + "\r\n\r\n");
|
result.push("Hash: " + hash + "\n\n");
|
||||||
result.push(text.replace(/^-/mg, "- -"));
|
result.push(text.replace(/^-/mg, "- -"));
|
||||||
result.push("\r\n-----BEGIN PGP SIGNATURE-----\r\n");
|
result.push("\n-----BEGIN PGP SIGNATURE-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP SIGNATURE-----\r\n");
|
result.push("-----END PGP SIGNATURE-----\n");
|
||||||
break;
|
break;
|
||||||
case enums.armor.message:
|
case enums.armor.message:
|
||||||
result.push("-----BEGIN PGP MESSAGE-----\r\n");
|
result.push("-----BEGIN PGP MESSAGE-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP MESSAGE-----\r\n");
|
result.push("-----END PGP MESSAGE-----\n");
|
||||||
break;
|
break;
|
||||||
case enums.armor.publicKey:
|
case enums.armor.publicKey:
|
||||||
result.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\r\n");
|
result.push("-----BEGIN PGP PUBLIC KEY BLOCK-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP PUBLIC KEY BLOCK-----\r\n");
|
result.push("-----END PGP PUBLIC KEY BLOCK-----\n");
|
||||||
break;
|
break;
|
||||||
case enums.armor.privateKey:
|
case enums.armor.privateKey:
|
||||||
result.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\r\n");
|
result.push("-----BEGIN PGP PRIVATE KEY BLOCK-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP PRIVATE KEY BLOCK-----\r\n");
|
result.push("-----END PGP PRIVATE KEY BLOCK-----\n");
|
||||||
break;
|
break;
|
||||||
case enums.armor.signature:
|
case enums.armor.signature:
|
||||||
result.push("-----BEGIN PGP SIGNATURE-----\r\n");
|
result.push("-----BEGIN PGP SIGNATURE-----\n");
|
||||||
result.push(addheader(customComment));
|
result.push(addheader(customComment));
|
||||||
result.push(base64.encode(body));
|
result.push(base64.encode(body));
|
||||||
result.push("=", getCheckSum(bodyClone));
|
result.push("=", getCheckSum(bodyClone));
|
||||||
result.push("-----END PGP SIGNATURE-----\r\n");
|
result.push("-----END PGP SIGNATURE-----\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,11 +52,11 @@ export function encode(data) {
|
||||||
const encoded = encodeChunk(buf.subarray(0, bytes));
|
const encoded = encodeChunk(buf.subarray(0, bytes));
|
||||||
for (let i = 0; i < lines; i++) {
|
for (let i = 0; i < lines; i++) {
|
||||||
r.push(encoded.substr(i * 60, 60));
|
r.push(encoded.substr(i * 60, 60));
|
||||||
r.push('\r\n');
|
r.push('\n');
|
||||||
}
|
}
|
||||||
buf = buf.subarray(bytes);
|
buf = buf.subarray(bytes);
|
||||||
return r.join('');
|
return r.join('');
|
||||||
}, () => (buf.length ? encodeChunk(buf) + '\r\n' : ''));
|
}, () => (buf.length ? encodeChunk(buf) + '\n' : ''));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -381,11 +381,11 @@ NJCB6+LWtabSoVIjNVgKwyKqyTLaESNwC2ogZwkdE8qPGiDFEHo4Gg9zuRof
|
||||||
const armor = await openpgp.stream.readToEnd(openpgp.armor(type, data));
|
const armor = await openpgp.stream.readToEnd(openpgp.armor(type, data));
|
||||||
expect(
|
expect(
|
||||||
armor
|
armor
|
||||||
.replace(/^(Version|Comment): .*$\r\n/mg, '')
|
.replace(/^(Version|Comment): .*$\n/mg, '')
|
||||||
).to.equal(
|
).to.equal(
|
||||||
pubKey
|
pubKey
|
||||||
.replace('\n=', '=')
|
.replace('\n=', '=')
|
||||||
.replace(/\n/g, '\r\n')
|
.replace(/\n\r/g, '\n')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -3110,7 +3110,7 @@ module.exports = () => describe('Key', function() {
|
||||||
await packetlist.read(input.data, { SignaturePacket: openpgp.SignaturePacket });
|
await packetlist.read(input.data, { SignaturePacket: openpgp.SignaturePacket });
|
||||||
const armored = openpgp.armor(openpgp.enums.armor.publicKey, packetlist.write());
|
const armored = openpgp.armor(openpgp.enums.armor.publicKey, packetlist.write());
|
||||||
|
|
||||||
expect(revocationCertificate.replace(/^Comment: .*$\r\n/mg, '')).to.equal(armored.replace(/^Comment: .*$\r\n/mg, ''));
|
expect(revocationCertificate.replace(/^Comment: .*$\n/mg, '')).to.equal(armored.replace(/^Comment: .*$\n/mg, ''));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('getRevocationCertificate() should have an appropriate comment', async function() {
|
it('getRevocationCertificate() should have an appropriate comment', async function() {
|
||||||
|
|
|
@ -894,7 +894,7 @@ hUhMKMuiM3pRwdIyDOItkUWQmjEEw7/XmhgInkXsCw==
|
||||||
const priv_key_gnupg_ext = await openpgp.readArmoredKey(flowcrypt_stripped_key);
|
const priv_key_gnupg_ext = await openpgp.readArmoredKey(flowcrypt_stripped_key);
|
||||||
await priv_key_gnupg_ext.decrypt('FlowCrypt');
|
await priv_key_gnupg_ext.decrypt('FlowCrypt');
|
||||||
const sig = await openpgp.sign({ message: openpgp.Message.fromText('test'), privateKeys: [priv_key_gnupg_ext], date: new Date('2018-12-17T03:24:00') });
|
const sig = await openpgp.sign({ message: openpgp.Message.fromText('test'), privateKeys: [priv_key_gnupg_ext], date: new Date('2018-12-17T03:24:00') });
|
||||||
expect(sig).to.match(/-----END PGP MESSAGE-----\r\n$/);
|
expect(sig).to.match(/-----END PGP MESSAGE-----\n$/);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Supports non-human-readable notations', async function() {
|
it('Supports non-human-readable notations', async function() {
|
||||||
|
|
|
@ -196,7 +196,7 @@ function tests() {
|
||||||
passwords: ['test'],
|
passwords: ['test'],
|
||||||
});
|
});
|
||||||
const reader = openpgp.stream.getReader(encrypted);
|
const reader = openpgp.stream.getReader(encrypted);
|
||||||
expect(await reader.peekBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\r\n/);
|
expect(await reader.peekBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\n/);
|
||||||
dataArrived();
|
dataArrived();
|
||||||
reader.releaseLock();
|
reader.releaseLock();
|
||||||
const msgAsciiArmored = await openpgp.stream.readToEnd(encrypted);
|
const msgAsciiArmored = await openpgp.stream.readToEnd(encrypted);
|
||||||
|
@ -215,7 +215,7 @@ function tests() {
|
||||||
passwords: ['test'],
|
passwords: ['test'],
|
||||||
});
|
});
|
||||||
const reader = openpgp.stream.getReader(encrypted);
|
const reader = openpgp.stream.getReader(encrypted);
|
||||||
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\r\n/);
|
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\n/);
|
||||||
dataArrived();
|
dataArrived();
|
||||||
reader.releaseLock();
|
reader.releaseLock();
|
||||||
await openpgp.stream.cancel(encrypted);
|
await openpgp.stream.cancel(encrypted);
|
||||||
|
@ -228,7 +228,7 @@ function tests() {
|
||||||
privateKeys: privKey
|
privateKeys: privKey
|
||||||
});
|
});
|
||||||
const reader = openpgp.stream.getReader(signed);
|
const reader = openpgp.stream.getReader(signed);
|
||||||
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\r\n/);
|
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\n/);
|
||||||
dataArrived();
|
dataArrived();
|
||||||
reader.releaseLock();
|
reader.releaseLock();
|
||||||
await openpgp.stream.cancel(signed);
|
await openpgp.stream.cancel(signed);
|
||||||
|
@ -658,7 +658,7 @@ function tests() {
|
||||||
expect(openpgp.stream.isStream(encrypted)).to.equal(expectedType);
|
expect(openpgp.stream.isStream(encrypted)).to.equal(expectedType);
|
||||||
|
|
||||||
const reader = openpgp.stream.getReader(encrypted);
|
const reader = openpgp.stream.getReader(encrypted);
|
||||||
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\r\n/);
|
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\n/);
|
||||||
dataArrived();
|
dataArrived();
|
||||||
await new Promise(resolve => setTimeout(resolve, 3000));
|
await new Promise(resolve => setTimeout(resolve, 3000));
|
||||||
expect(i).to.be.lessThan(expectedType === 'web' ? 50 : 100);
|
expect(i).to.be.lessThan(expectedType === 'web' ? 50 : 100);
|
||||||
|
@ -672,7 +672,7 @@ function tests() {
|
||||||
expect(openpgp.stream.isStream(signed)).to.equal(expectedType);
|
expect(openpgp.stream.isStream(signed)).to.equal(expectedType);
|
||||||
|
|
||||||
const reader = openpgp.stream.getReader(signed);
|
const reader = openpgp.stream.getReader(signed);
|
||||||
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\r\n/);
|
expect(await reader.readBytes(1024)).to.match(/^-----BEGIN PGP MESSAGE-----\n/);
|
||||||
dataArrived();
|
dataArrived();
|
||||||
await new Promise(resolve => setTimeout(resolve, 3000));
|
await new Promise(resolve => setTimeout(resolve, 3000));
|
||||||
expect(i).to.be.lessThan(expectedType === 'web' ? 50 : 100);
|
expect(i).to.be.lessThan(expectedType === 'web' ? 50 : 100);
|
||||||
|
@ -860,7 +860,7 @@ function tests() {
|
||||||
});
|
});
|
||||||
expect(openpgp.stream.isStream(signed)).to.equal(expectedType);
|
expect(openpgp.stream.isStream(signed)).to.equal(expectedType);
|
||||||
const reader = openpgp.stream.getReader(signed);
|
const reader = openpgp.stream.getReader(signed);
|
||||||
expect((await reader.readBytes(31)).toString('utf8')).to.equal('-----BEGIN PGP SIGNATURE-----\r\n');
|
expect((await reader.readBytes(30)).toString('utf8')).to.equal('-----BEGIN PGP SIGNATURE-----\n');
|
||||||
dataArrived();
|
dataArrived();
|
||||||
await new Promise(resolve => setTimeout(resolve, 3000));
|
await new Promise(resolve => setTimeout(resolve, 3000));
|
||||||
expect(i).to.be.greaterThan(100);
|
expect(i).to.be.greaterThan(100);
|
||||||
|
@ -874,7 +874,7 @@ function tests() {
|
||||||
});
|
});
|
||||||
expect(openpgp.stream.isStream(signed)).to.equal(expectedType);
|
expect(openpgp.stream.isStream(signed)).to.equal(expectedType);
|
||||||
const reader = openpgp.stream.getReader(signed);
|
const reader = openpgp.stream.getReader(signed);
|
||||||
expect((await reader.readBytes(31)).toString('utf8')).to.equal('-----BEGIN PGP SIGNATURE-----\r\n');
|
expect((await reader.readBytes(30)).toString('utf8')).to.equal('-----BEGIN PGP SIGNATURE-----\n');
|
||||||
dataArrived();
|
dataArrived();
|
||||||
reader.releaseLock();
|
reader.releaseLock();
|
||||||
await openpgp.stream.cancel(signed, new Error('canceled by test'));
|
await openpgp.stream.cancel(signed, new Error('canceled by test'));
|
||||||
|
|
Loading…
Reference in New Issue
Block a user