remove excess compression testing, fix cleartext signing with multiple keys test
This commit is contained in:
parent
c8adaff826
commit
7e1731f2bb
|
@ -617,13 +617,12 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
withCompression(function (modifyCompressionEncryptOptions, verifyCompressionDecrypted) {
|
|
||||||
it('roundtrip workflow: encrypt, decryptSessionKeys, decrypt with pgp key pair', function () {
|
it('roundtrip workflow: encrypt, decryptSessionKeys, decrypt with pgp key pair', function () {
|
||||||
let msgAsciiArmored;
|
let msgAsciiArmored;
|
||||||
return openpgp.encrypt(modifyCompressionEncryptOptions({
|
return openpgp.encrypt({
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
})).then(function (encrypted) {
|
}).then(function (encrypted) {
|
||||||
msgAsciiArmored = encrypted.data;
|
msgAsciiArmored = encrypted.data;
|
||||||
return openpgp.decryptSessionKeys({
|
return openpgp.decryptSessionKeys({
|
||||||
message: openpgp.message.readArmored(msgAsciiArmored),
|
message: openpgp.message.readArmored(msgAsciiArmored),
|
||||||
|
@ -638,16 +637,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('roundtrip workflow: encrypt, decryptSessionKeys, decrypt with password', function () {
|
it('roundtrip workflow: encrypt, decryptSessionKeys, decrypt with password', function () {
|
||||||
let msgAsciiArmored;
|
let msgAsciiArmored;
|
||||||
return openpgp.encrypt(modifyCompressionEncryptOptions({
|
return openpgp.encrypt({
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
passwords: password1
|
passwords: password1
|
||||||
})).then(function (encrypted) {
|
}).then(function (encrypted) {
|
||||||
msgAsciiArmored = encrypted.data;
|
msgAsciiArmored = encrypted.data;
|
||||||
return openpgp.decryptSessionKeys({
|
return openpgp.decryptSessionKeys({
|
||||||
message: openpgp.message.readArmored(msgAsciiArmored),
|
message: openpgp.message.readArmored(msgAsciiArmored),
|
||||||
|
@ -662,16 +660,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
|
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('roundtrip workflow: encrypt with multiple passwords, decryptSessionKeys, decrypt with multiple passwords', function () {
|
it('roundtrip workflow: encrypt with multiple passwords, decryptSessionKeys, decrypt with multiple passwords', function () {
|
||||||
let msgAsciiArmored;
|
let msgAsciiArmored;
|
||||||
return openpgp.encrypt(modifyCompressionEncryptOptions({
|
return openpgp.encrypt({
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
passwords: [password1, password2]
|
passwords: [password1, password2]
|
||||||
})).then(function (encrypted) {
|
}).then(function (encrypted) {
|
||||||
msgAsciiArmored = encrypted.data;
|
msgAsciiArmored = encrypted.data;
|
||||||
return openpgp.decryptSessionKeys({
|
return openpgp.decryptSessionKeys({
|
||||||
message: openpgp.message.readArmored(msgAsciiArmored),
|
message: openpgp.message.readArmored(msgAsciiArmored),
|
||||||
|
@ -686,16 +683,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
|
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('roundtrip workflow: encrypt twice with one password, decryptSessionKeys, only one session key', function () {
|
it('roundtrip workflow: encrypt twice with one password, decryptSessionKeys, only one session key', function () {
|
||||||
let msgAsciiArmored;
|
let msgAsciiArmored;
|
||||||
return openpgp.encrypt(modifyCompressionEncryptOptions({
|
return openpgp.encrypt({
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
passwords: [password1, password1]
|
passwords: [password1, password1]
|
||||||
})).then(function (encrypted) {
|
}).then(function (encrypted) {
|
||||||
msgAsciiArmored = encrypted.data;
|
msgAsciiArmored = encrypted.data;
|
||||||
return openpgp.decryptSessionKeys({
|
return openpgp.decryptSessionKeys({
|
||||||
message: openpgp.message.readArmored(msgAsciiArmored),
|
message: openpgp.message.readArmored(msgAsciiArmored),
|
||||||
|
@ -709,8 +705,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -733,12 +727,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
privateKey.keys[0].verifyPrimaryUser().then(() => done());
|
privateKey.keys[0].verifyPrimaryUser().then(() => done());
|
||||||
});
|
});
|
||||||
|
|
||||||
withCompression(function (modifyCompressionEncryptOptions, verifyCompressionDecrypted) {
|
|
||||||
it('should encrypt then decrypt', function () {
|
it('should encrypt then decrypt', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
};
|
};
|
||||||
|
@ -750,15 +743,14 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures).to.exist;
|
expect(decrypted.signatures).to.exist;
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt then decrypt', function () {
|
it('should encrypt then decrypt', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
};
|
};
|
||||||
|
@ -770,7 +762,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures).to.exist;
|
expect(decrypted.signatures).to.exist;
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -778,10 +769,10 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
const privKeyDE = openpgp.key.readArmored(priv_key_de).keys[0];
|
const privKeyDE = openpgp.key.readArmored(priv_key_de).keys[0];
|
||||||
privKeyDE.decrypt(passphrase);
|
privKeyDE.decrypt(passphrase);
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: [privKeyDE, privateKey.keys[0]]
|
privateKeys: [privKeyDE, privateKey.keys[0]]
|
||||||
};
|
};
|
||||||
|
@ -793,16 +784,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures).to.exist;
|
expect(decrypted.signatures).to.exist;
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt then decrypt with wildcard', function () {
|
it('should encrypt then decrypt with wildcard', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
wildcard: true
|
wildcard: true
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
};
|
};
|
||||||
|
@ -814,7 +804,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures).to.exist;
|
expect(decrypted.signatures).to.exist;
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -822,11 +811,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
const privKeyDE = openpgp.key.readArmored(priv_key_de).keys[0];
|
const privKeyDE = openpgp.key.readArmored(priv_key_de).keys[0];
|
||||||
privKeyDE.decrypt(passphrase);
|
privKeyDE.decrypt(passphrase);
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
wildcard: true
|
wildcard: true
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: [privKeyDE, privateKey.keys[0]]
|
privateKeys: [privKeyDE, privateKey.keys[0]]
|
||||||
};
|
};
|
||||||
|
@ -838,16 +827,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures).to.exist;
|
expect(decrypted.signatures).to.exist;
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt then decrypt using returned session key', function () {
|
it('should encrypt then decrypt using returned session key', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
returnSessionKey: true
|
returnSessionKey: true
|
||||||
});
|
};
|
||||||
|
|
||||||
return openpgp.encrypt(encOpt).then(function (encrypted) {
|
return openpgp.encrypt(encOpt).then(function (encrypted) {
|
||||||
expect(encrypted.data).to.match(/^-----BEGIN PGP MESSAGE/);
|
expect(encrypted.data).to.match(/^-----BEGIN PGP MESSAGE/);
|
||||||
|
@ -860,7 +848,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures).to.exist;
|
expect(decrypted.signatures).to.exist;
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -869,11 +856,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
data: openpgp.crypto.generateSessionKey('aes256'),
|
data: openpgp.crypto.generateSessionKey('aes256'),
|
||||||
algorithm: 'aes256'
|
algorithm: 'aes256'
|
||||||
};
|
};
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
sessionKey: sessionKey,
|
sessionKey: sessionKey,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
sessionKeys: sessionKey
|
sessionKeys: sessionKey
|
||||||
};
|
};
|
||||||
|
@ -883,7 +870,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
return openpgp.decrypt(decOpt);
|
return openpgp.decrypt(decOpt);
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -892,11 +878,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
data: openpgp.crypto.generateSessionKey('aes128'),
|
data: openpgp.crypto.generateSessionKey('aes128'),
|
||||||
algorithm: 'aes128'
|
algorithm: 'aes128'
|
||||||
};
|
};
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
sessionKeys: sessionKey,
|
sessionKeys: sessionKey,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0]
|
privateKeys: privateKey.keys[0]
|
||||||
};
|
};
|
||||||
|
@ -906,16 +892,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
return openpgp.decrypt(decOpt);
|
return openpgp.decrypt(decOpt);
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt/sign and decrypt/verify', function () {
|
it('should encrypt/sign and decrypt/verify', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
|
@ -928,16 +913,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.true;
|
expect(decrypted.signatures[0].valid).to.be.true;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt/sign and decrypt/verify with null string input', function () {
|
it('should encrypt/sign and decrypt/verify with null string input', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: '',
|
data: '',
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
|
@ -950,17 +934,16 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.true;
|
expect(decrypted.signatures[0].valid).to.be.true;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt/sign and decrypt/verify with detached signatures', function () {
|
it('should encrypt/sign and decrypt/verify with detached signatures', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys,
|
privateKeys: privateKey.keys,
|
||||||
detached: true
|
detached: true
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
|
@ -974,7 +957,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.true;
|
expect(decrypted.signatures[0].valid).to.be.true;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -985,11 +967,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
detached: true
|
detached: true
|
||||||
};
|
};
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
detached: true
|
detached: true
|
||||||
});
|
};
|
||||||
|
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
|
@ -1008,7 +990,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.true;
|
expect(decrypted.signatures[0].valid).to.be.true;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1024,11 +1005,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
detached: true
|
detached: true
|
||||||
};
|
};
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys[0]
|
privateKeys: privateKey.keys[0]
|
||||||
});
|
};
|
||||||
|
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
|
@ -1047,7 +1028,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
expect(decrypted.signatures[1].valid).to.be.true;
|
expect(decrypted.signatures[1].valid).to.be.true;
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
return privKeyDE.verifyPrimaryUser().then(() => {
|
return privKeyDE.verifyPrimaryUser().then(() => {
|
||||||
expect(decrypted.signatures[1].keyid.toHex()).to.equal(privKeyDE.getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[1].keyid.toHex()).to.equal(privKeyDE.getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[1].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[1].signature.packets.length).to.equal(1);
|
||||||
|
@ -1062,11 +1042,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
detached: true
|
detached: true
|
||||||
};
|
};
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
detached: true
|
detached: true
|
||||||
});
|
};
|
||||||
|
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
|
@ -1085,7 +1065,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.null;
|
expect(decrypted.signatures[0].valid).to.be.null;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1096,10 +1075,10 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
detached: true
|
detached: true
|
||||||
};
|
};
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys
|
publicKeys: publicKey.keys
|
||||||
});
|
};
|
||||||
|
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
|
@ -1117,16 +1096,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.null;
|
expect(decrypted.signatures[0].valid).to.be.null;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fail to verify decrypted data with wrong public pgp key', function () {
|
it('should fail to verify decrypted data with wrong public pgp key', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
publicKeys: openpgp.key.readArmored(wrong_pubkey).keys
|
publicKeys: openpgp.key.readArmored(wrong_pubkey).keys
|
||||||
|
@ -1139,16 +1117,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.null;
|
expect(decrypted.signatures[0].valid).to.be.null;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fail to verify decrypted null string with wrong public pgp key', function () {
|
it('should fail to verify decrypted null string with wrong public pgp key', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: '',
|
data: '',
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
publicKeys: openpgp.key.readArmored(wrong_pubkey).keys
|
publicKeys: openpgp.key.readArmored(wrong_pubkey).keys
|
||||||
|
@ -1161,16 +1138,15 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.null;
|
expect(decrypted.signatures[0].valid).to.be.null;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should successfully decrypt signed message without public keys to verify', function () {
|
it('should successfully decrypt signed message without public keys to verify', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys
|
privateKeys: privateKey.keys
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0]
|
privateKeys: privateKey.keys[0]
|
||||||
};
|
};
|
||||||
|
@ -1182,17 +1158,16 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.null;
|
expect(decrypted.signatures[0].valid).to.be.null;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should fail to verify decrypted data with wrong public pgp key with detached signatures', function () {
|
it('should fail to verify decrypted data with wrong public pgp key with detached signatures', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: privateKey.keys,
|
privateKeys: privateKey.keys,
|
||||||
detached: true
|
detached: true
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
publicKeys: openpgp.key.readArmored(wrong_pubkey).keys
|
publicKeys: openpgp.key.readArmored(wrong_pubkey).keys
|
||||||
|
@ -1206,7 +1181,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].valid).to.be.null;
|
expect(decrypted.signatures[0].valid).to.be.null;
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1216,11 +1190,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
|
|
||||||
const pubKeyDE = openpgp.key.readArmored(pub_key_de).keys[0];
|
const pubKeyDE = openpgp.key.readArmored(pub_key_de).keys[0];
|
||||||
|
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
publicKeys: publicKey.keys,
|
publicKeys: publicKey.keys,
|
||||||
privateKeys: [privateKey.keys[0], privKeyDE]
|
privateKeys: [privateKey.keys[0], privKeyDE]
|
||||||
});
|
};
|
||||||
|
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
privateKeys: privateKey.keys[0],
|
privateKeys: privateKey.keys[0],
|
||||||
|
@ -1236,7 +1210,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[0].signature.packets.length).to.equal(1);
|
||||||
expect(decrypted.signatures[1].valid).to.be.true;
|
expect(decrypted.signatures[1].valid).to.be.true;
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
return privKeyDE.verifyPrimaryUser().then(() => {
|
return privKeyDE.verifyPrimaryUser().then(() => {
|
||||||
expect(decrypted.signatures[1].keyid.toHex()).to.equal(privKeyDE.getSigningKeyPacket().getKeyId().toHex());
|
expect(decrypted.signatures[1].keyid.toHex()).to.equal(privKeyDE.getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(decrypted.signatures[1].signature.packets.length).to.equal(1);
|
expect(decrypted.signatures[1].signature.packets.length).to.equal(1);
|
||||||
|
@ -1285,10 +1258,12 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
expect(verified.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
expect(verified.signatures[0].keyid.toHex()).to.equal(privateKey.keys[0].getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(verified.signatures[0].signature.packets.length).to.equal(1);
|
expect(verified.signatures[0].signature.packets.length).to.equal(1);
|
||||||
expect(verified.signatures[1].valid).to.be.true;
|
expect(verified.signatures[1].valid).to.be.true;
|
||||||
|
return privKeyDE.verifyPrimaryUser().then(() => {
|
||||||
expect(verified.signatures[1].keyid.toHex()).to.equal(privKeyDE.getSigningKeyPacket().getKeyId().toHex());
|
expect(verified.signatures[1].keyid.toHex()).to.equal(privKeyDE.getSigningKeyPacket().getKeyId().toHex());
|
||||||
expect(verified.signatures[1].signature.packets.length).to.equal(1);
|
expect(verified.signatures[1].signature.packets.length).to.equal(1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should sign and verify cleartext data with detached signatures', function () {
|
it('should sign and verify cleartext data with detached signatures', function () {
|
||||||
const signOpt = {
|
const signOpt = {
|
||||||
|
@ -1393,19 +1368,18 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe('ELG / DSA encrypt, decrypt, sign, verify', function() {
|
describe('ELG / DSA encrypt, decrypt, sign, verify', function() {
|
||||||
withCompression(function (modifyCompressionEncryptOptions, verifyCompressionDecrypted) {
|
|
||||||
it('round trip test', function () {
|
it('round trip test', function () {
|
||||||
const pubKeyDE = openpgp.key.readArmored(pub_key_de).keys[0];
|
const pubKeyDE = openpgp.key.readArmored(pub_key_de).keys[0];
|
||||||
const privKeyDE = openpgp.key.readArmored(priv_key_de).keys[0];
|
const privKeyDE = openpgp.key.readArmored(priv_key_de).keys[0];
|
||||||
privKeyDE.decrypt(passphrase);
|
privKeyDE.decrypt(passphrase);
|
||||||
return openpgp.encrypt(modifyCompressionEncryptOptions({
|
return openpgp.encrypt({
|
||||||
publicKeys: pubKeyDE,
|
publicKeys: pubKeyDE,
|
||||||
privateKeys: privKeyDE,
|
privateKeys: privKeyDE,
|
||||||
data: plaintext
|
data: plaintext
|
||||||
})).then(function (encrypted) {
|
}).then(function (encrypted) {
|
||||||
return openpgp.decrypt({
|
return openpgp.decrypt({
|
||||||
privateKeys: privKeyDE,
|
privateKeys: privKeyDE,
|
||||||
publicKeys: pubKeyDE,
|
publicKeys: pubKeyDE,
|
||||||
|
@ -1422,7 +1396,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
describe("3DES decrypt", function() {
|
describe("3DES decrypt", function() {
|
||||||
const pgp_msg =
|
const pgp_msg =
|
||||||
|
@ -1489,12 +1462,12 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('AES encrypt, decrypt', function() {
|
describe('AES encrypt, decrypt', function() {
|
||||||
withCompression(function (modifyCompressionEncryptOptions, verifyCompressionDecrypted) {
|
|
||||||
it('should encrypt and decrypt with one password', function () {
|
it('should encrypt and decrypt with one password', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
passwords: password1
|
passwords: password1
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
passwords: password1
|
passwords: password1
|
||||||
};
|
};
|
||||||
|
@ -1504,15 +1477,14 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt and decrypt with two passwords', function () {
|
it('should encrypt and decrypt with two passwords', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
passwords: [password1, password2]
|
passwords: [password1, password2]
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
passwords: password2
|
passwords: password2
|
||||||
};
|
};
|
||||||
|
@ -1522,7 +1494,6 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -1539,11 +1510,11 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt and decrypt with password and not ascii armor', function () {
|
it('should encrypt and decrypt with password and not ascii armor', function () {
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: plaintext,
|
data: plaintext,
|
||||||
passwords: password1,
|
passwords: password1,
|
||||||
armor: false
|
armor: false
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
passwords: password1
|
passwords: password1
|
||||||
};
|
};
|
||||||
|
@ -1553,17 +1524,16 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
}).then(function (decrypted) {
|
}).then(function (decrypted) {
|
||||||
expect(decrypted.data).to.equal(plaintext);
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should encrypt and decrypt with binary data and transferable objects', function () {
|
it('should encrypt and decrypt with binary data and transferable objects', function () {
|
||||||
openpgp.config.zero_copy = true; // activate transferable objects
|
openpgp.config.zero_copy = true; // activate transferable objects
|
||||||
const encOpt = modifyCompressionEncryptOptions({
|
const encOpt = {
|
||||||
data: new Uint8Array([0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01]),
|
data: new Uint8Array([0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01]),
|
||||||
passwords: password1,
|
passwords: password1,
|
||||||
armor: false
|
armor: false
|
||||||
});
|
};
|
||||||
const decOpt = {
|
const decOpt = {
|
||||||
passwords: password1,
|
passwords: password1,
|
||||||
format: 'binary'
|
format: 'binary'
|
||||||
|
@ -1577,6 +1547,26 @@ describe('OpenPGP.js public api tests', function() {
|
||||||
}
|
}
|
||||||
expect(decrypted.data).to.deep.equal(new Uint8Array([0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01]));
|
expect(decrypted.data).to.deep.equal(new Uint8Array([0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01]));
|
||||||
expect(decrypted.signatures.length).to.equal(0);
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Encrypt, decrypt with compression', function() {
|
||||||
|
withCompression(function (modifyCompressionEncryptOptions, verifyCompressionDecrypted) {
|
||||||
|
it('should encrypt and decrypt with one password', function () {
|
||||||
|
const encOpt = modifyCompressionEncryptOptions({
|
||||||
|
data: plaintext,
|
||||||
|
passwords: password1
|
||||||
|
});
|
||||||
|
const decOpt = {
|
||||||
|
passwords: password1
|
||||||
|
};
|
||||||
|
return openpgp.encrypt(encOpt).then(function (encrypted) {
|
||||||
|
decOpt.message = openpgp.message.readArmored(encrypted.data);
|
||||||
|
return openpgp.decrypt(decOpt);
|
||||||
|
}).then(function (decrypted) {
|
||||||
|
expect(decrypted.data).to.equal(plaintext);
|
||||||
|
expect(decrypted.signatures.length).to.equal(0);
|
||||||
verifyCompressionDecrypted(decrypted);
|
verifyCompressionDecrypted(decrypted);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue
Block a user