|
|
|
@ -1,35 +1,42 @@
|
|
|
|
|
/* eslint-disable no-console */
|
|
|
|
|
let {describe, it, before, beforeEach} = require('mocha');
|
|
|
|
|
let chai = require('chai').use(require('chai-as-promised'));
|
|
|
|
|
const {
|
|
|
|
|
describe, it, before, after,
|
|
|
|
|
} = require('mocha');
|
|
|
|
|
const chai = require('chai').use(require('chai-as-promised'));
|
|
|
|
|
|
|
|
|
|
chai.should();
|
|
|
|
|
let pEp = require('../../chrome/content/modules/pEp');
|
|
|
|
|
const pEp = require('../../chrome/content/modules/pEp');
|
|
|
|
|
const {getQueue} = require('../mock');
|
|
|
|
|
const {getController} = require('../boilerplate');
|
|
|
|
|
|
|
|
|
|
describe('pEp Encrypt Feature', () => {
|
|
|
|
|
|
|
|
|
|
let getQueue = require('../mock').getQueue;
|
|
|
|
|
let getController = require('../boilerplate').getController;
|
|
|
|
|
let b, queue, pEpController;
|
|
|
|
|
let b;
|
|
|
|
|
let queue;
|
|
|
|
|
let
|
|
|
|
|
pEpController;
|
|
|
|
|
|
|
|
|
|
describe('Without having public key', () => {
|
|
|
|
|
let result, message;
|
|
|
|
|
let result;
|
|
|
|
|
let
|
|
|
|
|
message;
|
|
|
|
|
before(() => {
|
|
|
|
|
queue = getQueue();
|
|
|
|
|
pEpController = getController(queue);
|
|
|
|
|
queue.respondWith({
|
|
|
|
|
"jsonrpc": "2.0",
|
|
|
|
|
"id": 1,
|
|
|
|
|
"result": {
|
|
|
|
|
"outParams": [null],
|
|
|
|
|
"return": {"status": 1024, "hex": "0x400 \"PEP_UNENCRYPTED\""},
|
|
|
|
|
"errorstack": ["(1 elements cleared)"]
|
|
|
|
|
}
|
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
|
id: 1,
|
|
|
|
|
result: {
|
|
|
|
|
outParams: [null],
|
|
|
|
|
return: {status: 1024, hex: '0x400 "PEP_UNENCRYPTED"'},
|
|
|
|
|
errorstack: ['(1 elements cleared)'],
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
from = "cfg@pep.security";
|
|
|
|
|
to = "to@test.com";
|
|
|
|
|
subject = "subject";
|
|
|
|
|
body = "Not Encrypted Message";
|
|
|
|
|
result = pEpController.encryptMail(subject, body, "", from, to);
|
|
|
|
|
const from = 'cfg@pep.security';
|
|
|
|
|
const to = 'to@test.com';
|
|
|
|
|
const subject = 'subject';
|
|
|
|
|
const body = 'Not Encrypted Message';
|
|
|
|
|
result = pEpController.encryptMail(subject, body, '', from, to);
|
|
|
|
|
});
|
|
|
|
|
after(() => {
|
|
|
|
|
queue.after();
|
|
|
|
@ -38,28 +45,32 @@ describe('pEp Encrypt Feature', () => {
|
|
|
|
|
|
|
|
|
|
it('returns an unencrypted message', () => {
|
|
|
|
|
queue.expectSent({
|
|
|
|
|
"security_token": "0847cqi9WqqE5ZcVtA8_mDIgEmYMv14xlNAvSZW",
|
|
|
|
|
"method": "encrypt_message",
|
|
|
|
|
"params": [{
|
|
|
|
|
"id": "pEp-0",
|
|
|
|
|
"shortmsg": "subject",
|
|
|
|
|
"longmsg": "Not Encrypted Message",
|
|
|
|
|
"longmsg_formatted": "",
|
|
|
|
|
"from": {"user_id": "", "username": "anonymous", "address": "cfg@pep.security", "fpr": ""},
|
|
|
|
|
"to": [{"user_id": "", "username": "anonymous", "address": "to@test.com", "fpr": ""}],
|
|
|
|
|
"dir": 1,
|
|
|
|
|
"enc_format": 3,
|
|
|
|
|
"attachments": [],
|
|
|
|
|
"opt_fields": [],
|
|
|
|
|
"cc": []
|
|
|
|
|
}, [], ["OP"], 3, 0],
|
|
|
|
|
"id": 1,
|
|
|
|
|
"jsonrpc": "2.0"
|
|
|
|
|
security_token: '0847cqi9WqqE5ZcVtA8_mDIgEmYMv14xlNAvSZW',
|
|
|
|
|
method: 'encrypt_message',
|
|
|
|
|
params: [{
|
|
|
|
|
id: 'pEp-0',
|
|
|
|
|
shortmsg: 'subject',
|
|
|
|
|
longmsg: 'Not Encrypted Message',
|
|
|
|
|
longmsg_formatted: '',
|
|
|
|
|
from: {
|
|
|
|
|
user_id: '', username: 'anonymous', address: 'cfg@pep.security', fpr: '',
|
|
|
|
|
},
|
|
|
|
|
to: [{
|
|
|
|
|
user_id: '', username: 'anonymous', address: 'to@test.com', fpr: '',
|
|
|
|
|
}],
|
|
|
|
|
dir: 1,
|
|
|
|
|
enc_format: 3,
|
|
|
|
|
attachments: [],
|
|
|
|
|
opt_fields: [],
|
|
|
|
|
cc: [],
|
|
|
|
|
}, [], ['OP'], 3, 0],
|
|
|
|
|
id: 1,
|
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
|
});
|
|
|
|
|
result.should.eventually.have.property('enc_format', 0);
|
|
|
|
|
|
|
|
|
|
message = new pEp.Message("pEp-0", subject, body, from, to);
|
|
|
|
|
message.longmsg_formatted = "";
|
|
|
|
|
message = new pEp.Message('pEp-0', subject, body, from, to);
|
|
|
|
|
message.longmsg_formatted = '';
|
|
|
|
|
message.setCc([]);
|
|
|
|
|
message.enc_format = 0;
|
|
|
|
|
|
|
|
|
@ -68,55 +79,62 @@ describe('pEp Encrypt Feature', () => {
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe('Perfect scenario', () => {
|
|
|
|
|
let from, to, subject, body, message;
|
|
|
|
|
let from;
|
|
|
|
|
let to;
|
|
|
|
|
let subject;
|
|
|
|
|
let body;
|
|
|
|
|
let message;
|
|
|
|
|
let result;
|
|
|
|
|
before(() => {
|
|
|
|
|
queue = getQueue();
|
|
|
|
|
pEpController = getController(queue);
|
|
|
|
|
|
|
|
|
|
queue.respondWith({
|
|
|
|
|
"jsonrpc": "2.0",
|
|
|
|
|
"id": 2,
|
|
|
|
|
"result": {
|
|
|
|
|
"outParams": [{
|
|
|
|
|
"dir": 1,
|
|
|
|
|
"id": "pEp.PXRZLM.16E95EA7JPDTS.BEFBAEC0-94DC-4AA2-A239-FE24BAA73911@pep.security",
|
|
|
|
|
"shortmsg": "p≡p",
|
|
|
|
|
"longmsg": "this message was encrypted with p≡p https://pEp-project.org",
|
|
|
|
|
"attachments": [{
|
|
|
|
|
"value": "VmVyc2lvbjogMQ==",
|
|
|
|
|
"size": 10,
|
|
|
|
|
"mime_type": "application/pgp-encrypted"
|
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
|
id: 2,
|
|
|
|
|
result: {
|
|
|
|
|
outParams: [{
|
|
|
|
|
dir: 1,
|
|
|
|
|
id: 'pEp.PXRZLM.16E95EA7JPDTS.BEFBAEC0-94DC-4AA2-A239-FE24BAA73911@pep.security',
|
|
|
|
|
shortmsg: 'p≡p',
|
|
|
|
|
longmsg: 'this message was encrypted with p≡p https://pEp-project.org',
|
|
|
|
|
attachments: [{
|
|
|
|
|
value: 'VmVyc2lvbjogMQ==',
|
|
|
|
|
size: 10,
|
|
|
|
|
mime_type: 'application/pgp-encrypted',
|
|
|
|
|
}, {
|
|
|
|
|
"value": "mockvalue",
|
|
|
|
|
"size": 3681,
|
|
|
|
|
"mime_type": "application/octet-stream",
|
|
|
|
|
"filename": "file://msg.asc"
|
|
|
|
|
value: 'mockvalue',
|
|
|
|
|
size: 3681,
|
|
|
|
|
mime_type: 'application/octet-stream',
|
|
|
|
|
filename: 'file://msg.asc',
|
|
|
|
|
}],
|
|
|
|
|
"from": {
|
|
|
|
|
"address": "cfg@pep.security",
|
|
|
|
|
"fpr": "B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5",
|
|
|
|
|
"user_id": "pEp_own_userId",
|
|
|
|
|
"username": "anonymous",
|
|
|
|
|
"comm_type": 255
|
|
|
|
|
from: {
|
|
|
|
|
address: 'cfg@pep.security',
|
|
|
|
|
fpr: 'B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5',
|
|
|
|
|
user_id: 'pEp_own_userId',
|
|
|
|
|
username: 'anonymous',
|
|
|
|
|
comm_type: 255,
|
|
|
|
|
},
|
|
|
|
|
"to": [{
|
|
|
|
|
"address": "cfg@pep.security",
|
|
|
|
|
"fpr": "B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5",
|
|
|
|
|
"user_id": "pEp_own_userId",
|
|
|
|
|
"username": "anonymous",
|
|
|
|
|
"comm_type": 255
|
|
|
|
|
to: [{
|
|
|
|
|
address: 'cfg@pep.security',
|
|
|
|
|
fpr: 'B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5',
|
|
|
|
|
user_id: 'pEp_own_userId',
|
|
|
|
|
username: 'anonymous',
|
|
|
|
|
comm_type: 255,
|
|
|
|
|
}],
|
|
|
|
|
"opt_fields": [{"key": "X-pEp-Version", "value": "2.1"}],
|
|
|
|
|
"enc_format": 3
|
|
|
|
|
}], "return": {"status": 0, "hex": "0 \"PEP_STATUS_OK\""}, "errorstack": ["(1 elements cleared)"]
|
|
|
|
|
}
|
|
|
|
|
opt_fields: [{key: 'X-pEp-Version', value: '2.1'}],
|
|
|
|
|
enc_format: 3,
|
|
|
|
|
}],
|
|
|
|
|
return: {status: 0, hex: '0 "PEP_STATUS_OK"'},
|
|
|
|
|
errorstack: ['(1 elements cleared)'],
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
from = "cfg@pep.security";
|
|
|
|
|
to = "cfg@pep.security";
|
|
|
|
|
subject = "subject";
|
|
|
|
|
body = "Not Encrypted Message";
|
|
|
|
|
result = pEpController.encryptMail(subject, body, "", from, to);
|
|
|
|
|
from = 'cfg@pep.security';
|
|
|
|
|
to = 'cfg@pep.security';
|
|
|
|
|
subject = 'subject';
|
|
|
|
|
body = 'Not Encrypted Message';
|
|
|
|
|
result = pEpController.encryptMail(subject, body, '', from, to);
|
|
|
|
|
});
|
|
|
|
|
after(() => {
|
|
|
|
|
queue.after();
|
|
|
|
@ -125,155 +143,151 @@ describe('pEp Encrypt Feature', () => {
|
|
|
|
|
|
|
|
|
|
it('sends as expected', () => {
|
|
|
|
|
queue.expectSent({
|
|
|
|
|
"security_token": "0847cqi9WqqE5ZcVtA8_mDIgEmYMv14xlNAvSZW",
|
|
|
|
|
"method": "encrypt_message",
|
|
|
|
|
"params": [{
|
|
|
|
|
"id": "pEp-0",
|
|
|
|
|
"shortmsg": "subject",
|
|
|
|
|
"longmsg": "Not Encrypted Message",
|
|
|
|
|
"longmsg_formatted": "",
|
|
|
|
|
"from": {"user_id": "", "username": "anonymous", "address": "cfg@pep.security", "fpr": ""},
|
|
|
|
|
"to": [{"user_id": "", "username": "anonymous", "address": "cfg@pep.security", "fpr": ""}],
|
|
|
|
|
"dir": 1,
|
|
|
|
|
"enc_format": 3,
|
|
|
|
|
"attachments": [],
|
|
|
|
|
"opt_fields": [],
|
|
|
|
|
"cc": []
|
|
|
|
|
}, [], ["OP"], 3, 0],
|
|
|
|
|
"id": 1,
|
|
|
|
|
"jsonrpc": "2.0"
|
|
|
|
|
security_token: '0847cqi9WqqE5ZcVtA8_mDIgEmYMv14xlNAvSZW',
|
|
|
|
|
method: 'encrypt_message',
|
|
|
|
|
params: [{
|
|
|
|
|
id: 'pEp-0',
|
|
|
|
|
shortmsg: 'subject',
|
|
|
|
|
longmsg: 'Not Encrypted Message',
|
|
|
|
|
longmsg_formatted: '',
|
|
|
|
|
from: {
|
|
|
|
|
user_id: '', username: 'anonymous', address: 'cfg@pep.security', fpr: '',
|
|
|
|
|
},
|
|
|
|
|
to: [{
|
|
|
|
|
user_id: '', username: 'anonymous', address: 'cfg@pep.security', fpr: '',
|
|
|
|
|
}],
|
|
|
|
|
dir: 1,
|
|
|
|
|
enc_format: 3,
|
|
|
|
|
attachments: [],
|
|
|
|
|
opt_fields: [],
|
|
|
|
|
cc: [],
|
|
|
|
|
}, [], ['OP'], 3, 0],
|
|
|
|
|
id: 1,
|
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should resolve into an encrypted mail', () => {
|
|
|
|
|
return result.should.be.fulfilled;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should return an outgoing message", () => {
|
|
|
|
|
return result.should.eventually.have.property("dir").then((dir) => {
|
|
|
|
|
dir.should.be.equal(1);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should return formated with enc_format default", () => {
|
|
|
|
|
return result.should.eventually.have.property("enc_format").then((enc_format) => {
|
|
|
|
|
enc_format.should.be.equal(3);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should return sender fingerprints", () => {
|
|
|
|
|
return result.should.eventually.have.property("from").then((sender) => {
|
|
|
|
|
sender.address.should.be.equal(from);
|
|
|
|
|
sender.comm_type.should.be.equal(255);
|
|
|
|
|
sender.fpr.should.be.equal("B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5");
|
|
|
|
|
sender.user_id.should.be.equal("pEp_own_userId");
|
|
|
|
|
sender.username.should.be.equal("anonymous");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should return receiver fingerprints", () => {
|
|
|
|
|
return result.should.eventually.have.property("to").then((receivers) => {
|
|
|
|
|
receivers.length.should.be.gte(1);
|
|
|
|
|
receivers[0].address.should.be.equal(to);
|
|
|
|
|
receivers[0].comm_type.should.be.equal(255);
|
|
|
|
|
receivers[0].fpr.should.be.equal("B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5");
|
|
|
|
|
receivers[0].user_id.should.be.equal("pEp_own_userId");
|
|
|
|
|
receivers[0].username.should.be.equal("anonymous");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("should have at least 2 attachments", () => {
|
|
|
|
|
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 x-pEp-version header", () => {
|
|
|
|
|
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.should.eventually.have.property("shortmsg").then((shortmsg) => {
|
|
|
|
|
shortmsg.should.be.equal("p≡p");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should have encrypted body', () => {
|
|
|
|
|
return result.should.eventually.have.property("longmsg").then((longmsg) => {
|
|
|
|
|
longmsg.should.be.equal("this message was encrypted with p≡p https://pEp-project.org");
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
it('should resolve into an encrypted mail', () => result.should.be.fulfilled);
|
|
|
|
|
|
|
|
|
|
it('should return an outgoing message', () => result.should.eventually.have.property('dir').then((dir) => {
|
|
|
|
|
dir.should.be.equal(1);
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
it('should return formated with enc_format default', () => result.should.eventually.have.property('enc_format').then((enc_format) => {
|
|
|
|
|
enc_format.should.be.equal(3);
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
it('should return sender fingerprints', () => result.should.eventually.have.property('from').then((sender) => {
|
|
|
|
|
sender.address.should.be.equal(from);
|
|
|
|
|
sender.comm_type.should.be.equal(255);
|
|
|
|
|
sender.fpr.should.be.equal('B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5');
|
|
|
|
|
sender.user_id.should.be.equal('pEp_own_userId');
|
|
|
|
|
sender.username.should.be.equal('anonymous');
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
it('should return receiver fingerprints', () => result.should.eventually.have.property('to').then((receivers) => {
|
|
|
|
|
receivers.length.should.be.gte(1);
|
|
|
|
|
receivers[0].address.should.be.equal(to);
|
|
|
|
|
receivers[0].comm_type.should.be.equal(255);
|
|
|
|
|
receivers[0].fpr.should.be.equal('B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5');
|
|
|
|
|
receivers[0].user_id.should.be.equal('pEp_own_userId');
|
|
|
|
|
receivers[0].username.should.be.equal('anonymous');
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
it('should have at least 2 attachments', () => 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 x-pEp-version header', () => 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', () => result.should.eventually.have.property('shortmsg').then((shortmsg) => {
|
|
|
|
|
shortmsg.should.be.equal('p≡p');
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
it('should have encrypted body', () => result.should.eventually.have.property('longmsg').then((longmsg) => {
|
|
|
|
|
longmsg.should.be.equal('this message was encrypted with p≡p https://pEp-project.org');
|
|
|
|
|
}));
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe('Multiple recivers', () => {
|
|
|
|
|
let from, to, subject, body, cc, bcc;
|
|
|
|
|
let from;
|
|
|
|
|
let to;
|
|
|
|
|
let subject;
|
|
|
|
|
let body;
|
|
|
|
|
let cc;
|
|
|
|
|
let
|
|
|
|
|
bcc;
|
|
|
|
|
before(() => {
|
|
|
|
|
queue = getQueue();
|
|
|
|
|
pEpController = getController(queue);
|
|
|
|
|
|
|
|
|
|
queue.respondWith({
|
|
|
|
|
"jsonrpc": "2.0", "id": 1, "result": {
|
|
|
|
|
"outParams": [{
|
|
|
|
|
"dir": 1,
|
|
|
|
|
"id": "pEp-0",
|
|
|
|
|
"shortmsg": "p≡p",
|
|
|
|
|
"longmsg": "this message was encrypted with p≡p https://pEp-project.org",
|
|
|
|
|
"attachments": [{
|
|
|
|
|
"value": "VmVyc2lvbjogMQ==",
|
|
|
|
|
"size": 10,
|
|
|
|
|
"mime_type": "application/pgp-encrypted"
|
|
|
|
|
jsonrpc: '2.0',
|
|
|
|
|
id: 1,
|
|
|
|
|
result: {
|
|
|
|
|
outParams: [{
|
|
|
|
|
dir: 1,
|
|
|
|
|
id: 'pEp-0',
|
|
|
|
|
shortmsg: 'p≡p',
|
|
|
|
|
longmsg: 'this message was encrypted with p≡p https://pEp-project.org',
|
|
|
|
|
attachments: [{
|
|
|
|
|
value: 'VmVyc2lvbjogMQ==',
|
|
|
|
|
size: 10,
|
|
|
|
|
mime_type: 'application/pgp-encrypted',
|
|
|
|
|
}, {
|
|
|
|
|
"value": "mocked value",
|
|
|
|
|
"size": 5071,
|
|
|
|
|
"mime_type": "application/octet-stream",
|
|
|
|
|
"filename": "file://msg.asc"
|
|
|
|
|
value: 'mocked value',
|
|
|
|
|
size: 5071,
|
|
|
|
|
mime_type: 'application/octet-stream',
|
|
|
|
|
filename: 'file://msg.asc',
|
|
|
|
|
}],
|
|
|
|
|
"from": {
|
|
|
|
|
"address": "fo@pep.security",
|
|
|
|
|
"fpr": "B0E03850E2033BCBBF22F7087D45E0D0A78160AC",
|
|
|
|
|
"user_id": "pEp_own_userId",
|
|
|
|
|
"username": "anonymous",
|
|
|
|
|
"comm_type": 255
|
|
|
|
|
from: {
|
|
|
|
|
address: 'fo@pep.security',
|
|
|
|
|
fpr: 'B0E03850E2033BCBBF22F7087D45E0D0A78160AC',
|
|
|
|
|
user_id: 'pEp_own_userId',
|
|
|
|
|
username: 'anonymous',
|
|
|
|
|
comm_type: 255,
|
|
|
|
|
},
|
|
|
|
|
"to": [{
|
|
|
|
|
"address": "cfg@pep.security",
|
|
|
|
|
"fpr": "B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5",
|
|
|
|
|
"user_id": "pEp_own_userId",
|
|
|
|
|
"username": "anonymous",
|
|
|
|
|
"comm_type": 255
|
|
|
|
|
to: [{
|
|
|
|
|
address: 'cfg@pep.security',
|
|
|
|
|
fpr: 'B5313A3FBF6720F2A421F8B3B8C7ED6CD7FF61B5',
|
|
|
|
|
user_id: 'pEp_own_userId',
|
|
|
|
|
username: 'anonymous',
|
|
|
|
|
comm_type: 255,
|
|
|
|
|
}, {
|
|
|
|
|
"address": "rg@pep.security",
|
|
|
|
|
"fpr": "14120CA823EA419E6A297EEDE37AADE4CCFDFBAD",
|
|
|
|
|
"user_id": "TOFU_rg@pep.security",
|
|
|
|
|
"username": "anonymous",
|
|
|
|
|
"comm_type": 56
|
|
|
|
|
address |