|
|
|
@ -3,6 +3,7 @@ let {describe, it, before, beforeEach}= require('mocha');
|
|
|
|
|
let chai = require('chai').use(require('chai-as-promised'));
|
|
|
|
|
chai.should();
|
|
|
|
|
let expect = chai.expect;
|
|
|
|
|
let assert = chai.assert;
|
|
|
|
|
|
|
|
|
|
let pEpAdapter = require ( '../../chrome/content/modules/pEpAdapter');
|
|
|
|
|
let pEpServer = require ( '../../chrome/content/modules/pEpServer');
|
|
|
|
@ -106,38 +107,87 @@ describe('Encrypte Feature', () => {
|
|
|
|
|
let from, to, subject, body, pEpMode;
|
|
|
|
|
//from = {user_id: 1, username: "Fromer", address: "from@test.com", fingerprint: "fp_from"};
|
|
|
|
|
//to = [{user_id: 99, username: "Toer", address: "to@test.com", fingerprint: "fp_to"}];
|
|
|
|
|
from = "from@test.com";
|
|
|
|
|
to = "to@test.com";
|
|
|
|
|
from = "cfg@pep.security";
|
|
|
|
|
to = "cfg@pep.security";
|
|
|
|
|
subject = "subject";
|
|
|
|
|
body = "Not Encrypted Message";
|
|
|
|
|
let server = new pEpServer(log, core, os, env, path, connectionInfo, XhrQueue, files, utils);
|
|
|
|
|
let adapter = new pEpAdapter(console.log, server);
|
|
|
|
|
result = adapter.encrypt(subject, body, from, to);
|
|
|
|
|
result = adapter.encrypt(subject, body, from, [to]);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should resolve into an encrypted mail', () => {
|
|
|
|
|
return result.should.become({});
|
|
|
|
|
return result.should.be.fulfilled;
|
|
|
|
|
return result.should.become({
|
|
|
|
|
"attachments": [
|
|
|
|
|
{
|
|
|
|
|
"mime_type": "application/pgp-encrypted",
|
|
|
|
|
"size": 10,
|
|
|
|
|
"value": "VmVyc2lvbjogMQ==",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"filename": "file://msg.asc",
|
|
|
|
|
"mime_type": "application/octet-stream",
|
|
|
|
|
"size": 3413,
|
|
|
|
|
"value": "LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tCgpoUUVNQXgwcGFGQ3JmWVFVQVFmOUhMeEM5TkphTDJjMTViYis1RDk1TWlHYnZKZE9ZQUpQWlJMTzJlVWFrZUZtCm9VNndtWW5zS1k0cGhOOU9tbG11VXNjVEdOQlI4dHlrem91bE9ObEVZYlFrZjgzL0IxaFF4dVM5Y0s1b0dXRjYKMCsrMVBsR29HY2g0RUFoRFU5Wlh4NHlMNmY4cW5WTHJtOXRlU2tNVmNNREpsOThzTUplNkIvTGxqNUY3d3FpdQpVUzFxZ01sb25pNzdaSEtSVWpCVEM2M2JhOFF3VkdlV1JpRVVVSTZtS05ySFI2Ri9TRnlGemUraHkwZTV0bXd5CnROWmtGVURDbGgwTmZ1NmVZUnZCTy9LdWpTTmgxRGI0Ny84SGNqUlh6UzJUMlhsbXA0dGJoZXFORjdabnBXcUsKNVQxdFNlL3krdGFHbHhnWnBtVjRQZ0Y0UUkvYnJOOUhsRnkxeW1ZcXRkTHJBUURrWUFWWTBUODBQTHROdXZvMgo0enNEcENYTVl5dUtMQXdGNS9VTUdkVFpFdXJaV3FJZy8yVDhvVDVpOFBoM0RUbnd3blJ3RkQ1bkhRNHVmdlZGCjFBYThRN2Zrc1pBbzViVWZjV0IvZUpWanU5ejBhek92YTlnNXJXS2o0UGZ2REV3ZWJaWnFWL09IZEhINWJXcDIKOHk0Q1kyalhsVDhCdDlnek4zdVIxRXZ1T2lEOEFDZVpYU3JsWjYrcTJ0L0VmQWgrZExuSnAwVjltNGNaTzJkagpqbEdhc3lOcVFJN2wzMlBFQ1BNOW10S2prK3pQbVdVQTkrOXdXbXlWQmpvb0lsMUNUUjNuNW8wR1M3aE5FYlZvClRDT1FnLzYySEVoQ2NOMzFYRDJXSjB6ZGVSMDlsRlFJcm9leVFjSXpFUGdRSWRlQzlLc0JEakN6UUp1QU9sV0MKUmdIK044eEc2K1lhbTM3V2ZUVFBTMFFyMmFuVWdJdHNLVFNrYUpPd1ZMQWFQRUtZeTdNek5zVEw3WGxReUVLNgpIY2xSTHo5OXhwbmI4SzRGQWgzL0drdU51MjM3ZURwQUJ4RkZ6TDl3MEZ4L1Y4VXM2MVZGMlo4Ym9FZ0tmYlROClo1MEJDb3ZhWkZSM3lpR2luVHBJLzM4eVpjc2JHU0NQK2lzNnJLOEdGYndWQXplNmxFRW9oSXRzMlU2ZWhwaXQKQnpUY25SZkV6bnQxcmRzUnd1Lytxb3lkVUhUdDJKeWZ3Rm5xb0NOZnFSc2k3N0NYbEdPSDBvY21LMW5maG85RApTWXo4TWxSMmh2aGxZM0N4bmorOHRIZUhzUk5ZdUdIM2I4cTR4NlA0OFBGdWpXZE1SZW10YS9ETlRjaitlQzRVClZ1ZXNiVlFwUEljZ1JwdGdhd3p5SHJhNE9zM05GOUY4VmlOM2FzM3NqOTliVUhXTER3ejRxZ21FT3UzZ09GMnIKWFBrUWNWbzg0S0ZqNVZMUGpxNG1Wb1NqV3pBcGVJWHhkRlY2TWxubTB4Nm53V1hKRVRiUjMwYmVGdkUvK0NLbQpieXVUNk5yRWVOY1lEV3p1Vm40Q1FuZWV2bzllU0NKelhUVEx6bFNRa3JyakpQbTA5eVc4SHRrZzEwemdQRnc2CkpjSGYvcjROMHQrVmZuSDZMYzdTcTJxTzFnRmx5bm40YTd3dVR0bzFjKzhnZDliUEk4ZVdVaHB2WjRMSzM1aXAKV0xUNG9mOU54SWdVSWlJLzN6dHE1NXRrdEJualBtYUwrTThoMk5PTFFVOEJmTGdHd3JXeU43TGNQT2xDdU5POAp5YzhKMkNTYWdsOEZLWGZVSWZOTnB2eHgyNVVGRDNnNHQ4OFJDdDRPbXdDV2E0Rk05bmp1S295SVcrY1ErbzU2Cm9QaWlGcVRRSmNFTHlaNi9RdkcwS2Jpa0Z5Q2FZMjllb2pjS1N5aVg1VklrYi9BVHhUZldZR0RUY0FPNU5tZXQKMWNmdzcyM0w3RitmYjJZL0VoRmtITEdjdGJCa3ZRRjdrM3NkMitucUVLS1RhZFJsb1VzMEM2TFZnL2d6aGZPWAp3Y0NBSmdhdENDMkJldDRod2oxZ0R4UmU0SFl0MlFscFpmN1lYbVdIUlMyYlNFd1BrVnpWdlhmMWU5V0hiSzNGClRlakhuRFQ2TnRrQXZNVmt5YkxIaXByam5xY1pWcE5EcExNZWZGZktZSVlJK3J6T1FLbWtaOUxTTTVRVFdIV0IKRytVdmhFR3BOeE9SVlFpRHVoSFFXUU5FSFgrWTc4WmU5SEtVNElaVVp6L043M25iL0NDcjNYZk1oRk5aTDNLTwp5OGh5UlhhQnd5Q1BkanFhNmJWK1lKL1FLZDV5cU50UENEanhsZElteGZseTc3dmVvQnJBenJuQkJ2RWZ5MkJ1CmxucXd6MXB0b0c5YkIxbDNlYmxBL29IQkwzSnQ2enlFV3RTdVRXcTJVQk9MMVJXdnByd0FZdW5FeVVTamJ5TGEKejAzaXY5OFI3MUdZRXRRdHprdjBhcWtCRUFmRVhQdUVTZFZrZDBNK0JNN0ZmMWhiK204YzB6VSs0YThRRG5IbQpsTU9neGNkdmZVUjd0QXo1NDhUQTdtb2s3SEVDZ3pxOWEzN29PTkVxSDBhK3VOM3VBNWFReURiOCtJVXphUUJZClp4K1pDMUhPM2d4bmE4YVZWME51Uis0N1MyNUlVZjRNeVBjbGJKWWFXSUFBNjF4d1dhMzVzN1NKNklscnp5OUUKdWlqY21KSHRLSXhNdjdCUWhjNHM4cC9wVUZEUlREK015dmxlUHJHZU9aY2s4cjY3NWRUOTA4L3N0MWM0anF5TQp3MWVzNXBsRFFCaHgyWXcxSWhsK0YrZDNUUkFzY0QzTzVMc0paYlVkNHpuUXdVUGlYRWtyditDN1dwYlUrQnk5Ck9TeWJ3NzBlM0VmZGg5OVhRM2x4UFRaR0p2M3dCM1hydHRRWksxK1lrc3ArUWtOanBZdmdtWkRrUXRuU09YNHYKbWtROXlTUExoNlQxUkVoVnRqWEljaldzVnlLa1V1RnB3aEhPaUVKWXQ4ZDJrbXhEV25FWUhGc2VSOEpjWU40VworcGgzT2xKZGg4enFqb0pOZjR4cUJjRkJpbVpoRWhSNmNibUl6OUVITHRvMERraExPbXRCZWtlbmJrQnFZc2FJCjZzWGlqMlBlcUk5cGJNcUJHTWVqWmkwUEJQdXNDMzRZdkFhWG1tUU5jajJycGNkN1FaTlUxSFl2ZEdXMmVLV1UKT3laZDM0M3BjbTZQK2pNbVVpMGN1bTFBZ2pVSjAzT00yVjZFaG5ubHJLZ3BjUDc5RStHa093VG8rdWtiOW9IagpHWTYxaktyaTdtMW8zcmhDUzFLWkRXZzg2NzByYnRUQlZ0djIzN0pBWVdxMkN1MFdtNUxtWm5QbTNvcWo1S0VqCjY1ZzdMZUw3U3hEUk9vOGFPN1JYVHdIVjdQVW0wMmpBYVJhRWpGaUxDZ2hKL0QzZyszOVB0cHRReFVzeUVqYVMKY0MrSmpwQ2orNnZ0RWMxQkxFTHZNZzFZbGN0NWx0bDhoTk1qcG4zbnIwbVdaekVnN0ZCeEk1NkxrMUxJS3haNApNRWQ1cGZMWVJWQTNyUGJBT2d0Q1dCRXlpR1gyc3gzTkdoajVtaTRIMk9JZ1Q2OEx5d0JNRXVqaFRlS1pSbjFzCnAxQ09OQnk2enU2RWVNd0Q1Qjh4Y1VrVzF2QXM3bXRiQmpLMmliTEg5b3BPNktXSXF0WW05RmVzNm15R0dIMjEKTkdhUE5nVjBmZG1GdkN5aU8yRkRGOE9GRXRuc0hFNmx1WWhTem1VcmY5OVY3dnFaVEFiMC8zdWtQNVQ0ZVRXMQpCWjB6VmRkVUpxbDFHSEdpK0Z2dTdkSzNtdmN3VFBZb0ZMOWtaN2RSRTlVUW03a0laVkhFZTBrTWVkTy9oZWo4CjJGSGRvaVNYOCthMjNZUHRrbDdOaThGOEZybEFldEFHN1YrOWpnY3Q1ckpvYzBQeW1NQVlRSHVuU04wQWpWOTEKbjAySGZYZGFsT0owcktGUlUrTTZEdU0wc2g2bDJqeEE2WG9YbnJCY2lZQjRydkZhT014REMxdGZOV3FvaWVjVApKY2V4dC9Od3NYRlMwQ0FSYitSZ1ZFU1lNZEUrZk9ub2NtQWRJTzBaYVpxNHRsdk11NGdTd0poRkMraXpkRXVoCm1oa2JQdFZ3bk93SU9mNjI4OEZZczgveVQ2MmxIMVN2RzdpTkRUMG4yTXc5d1I0YXpnMDRrVGgvVkFra2MwWDkKK3J1TlB1OXdvZnFPeVkwb2puWjlkWXM3aER3VGM4OWU1L0NmcHJPdjdXS1V2SGQ1NGlJZElnUVpmZys3SCsrdApSNExFVVZFS0hFYzVVYXozMkFKa011UEN1QlZBdkgxQXZKbz0KPStZVjIKLS0tLS1FTkQgUEdQIE1FU1NBR0UtLS0tLQo=",
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
"dir": 1,
|
|
|
|
|
"enc_format": 3,
|
|
|
|
|
"from": {
|
|
|
|
|
"address": "cfg@pep.security",
|
|
|
|
|
"comm_type": 255,
|
|
|
|
|
"fpr": "EDA8D5406CFFAC5FE56A53BBCFFDF76F6C2F959D",
|
|
|
|
|
"user_id": "pEp_own_userId",
|
|
|
|
|
"username": "anonymous"
|
|
|
|
|
},
|
|
|
|
|
"id": "pEp.PMV03L.0TXZAWEXL7KP0.B4FEA6B8-FFD4-4578-A2B7-CDE7C40456F8@pep.security",
|
|
|
|
|
"longmsg": "this message was encrypted with p≡p https://pEp-project.org",
|
|
|
|
|
"opt_fields": [
|
|
|
|
|
{
|
|
|
|
|
"key": "X-pEp-Version",
|
|
|
|
|
"value": "2.0",
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"shortmsg": "p≡p",
|
|
|
|
|
"to": [
|
|
|
|
|
{
|
|
|
|
|
"address": "cfg@pep.security",
|
|
|
|
|
"comm_type": 255,
|
|
|
|
|
"fpr": "EDA8D5406CFFAC5FE56A53BBCFFDF76F6C2F959D",
|
|
|
|
|
"user_id": "pEp_own_userId",
|
|
|
|
|
"username": "anonymous"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should have at least 2 attachments", () => {
|
|
|
|
|
return result.should.hasOwnProperty("attachments");
|
|
|
|
|
return result.attachments.length.should.be.gt(2);
|
|
|
|
|
return result.should.eventually.have.property("attachments").then((attachments) => {
|
|
|
|
|
attachments.length.should.be.gte(2);
|
|
|
|
|
attachments[0].mime_type.should.be.equal("application/pgp-encrypted");
|
|
|
|
|
attachments[1].mime_type.should.be.equal("application/octet-stream");
|
|
|
|
|
attachments[1].filename.should.be.equal("file://msg.asc");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should have mime type pgp-encrypted", () => {
|
|
|
|
|
return result.attachments[1].filename.should.be.equal("file://msg.asc");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should have x-pEp-version", () => {
|
|
|
|
|
return result.opt_fields[0].key.equal("X-pEp-Version");
|
|
|
|
|
return result.should.eventually.have.property("opt_fields").then((opt_fields) => {
|
|
|
|
|
opt_fields[0].key.should.be.equal("X-pEp-Version");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should have pEp subject", () => {
|
|
|
|
|
return result.shortmsg.equal("p≡p");
|
|
|
|
|
return result.should.eventually.have.property("shortmsg").then((shortmsg) => {
|
|
|
|
|
shortmsg.should.be.equal("p≡p");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should have enctypted body', () => {
|
|
|
|
|
result.longmsg.equal("this message was encrypted with p≡p https://pEp-project.org");
|
|
|
|
|
return result.should.eventually.have.property("longmsg").then((longmsg) => {
|
|
|
|
|
longmsg.should.be.equal("this message was encrypted with p≡p https://pEp-project.org");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|