MCPcopy Index your code
hub / github.com/mailvelope/mailvelope / decryptSyncMessage

Function decryptSyncMessage

src/modules/pgpModel.js:394–428  ·  view source on GitHub ↗
(key, message)

Source from the content-addressed store, hash-verified

392 * @return {Promise<Object,Error>}
393 */
394export async function decryptSyncMessage(key, message) {
395 const msg = await pgpDecrypt({message, decryptionKeys: key, verificationKeys: key});
396 // check signature
397 const [sig] = msg.signatures;
398 try {
399 await sig.verified;
400 await key.getSigningKey(sig.keyID);
401 } catch (e) {
402 throw new Error('Signature of synced keyring is invalid');
403 }
404 const syncData = JSON.parse(msg.data);
405 const publicKeys = [];
406 const changeLog = {};
407 let fingerprint;
408 for (fingerprint in syncData.insertedKeys) {
409 publicKeys.push({
410 type: 'public',
411 armored: syncData.insertedKeys[fingerprint].armored
412 });
413 changeLog[fingerprint] = {
414 type: keyringSync.INSERT,
415 time: syncData.insertedKeys[fingerprint].time
416 };
417 }
418 for (fingerprint in syncData.deletedKeys) {
419 changeLog[fingerprint] = {
420 type: keyringSync.DELETE,
421 time: syncData.deletedKeys[fingerprint].time
422 };
423 }
424 return {
425 changeLog,
426 keys: publicKeys
427 };
428}
429
430/**
431 * @param {Key} key - used to sign and encrypt the package

Callers 2

pgpModel-test.jsFile · 0.90
downloadSyncMessageMethod · 0.90

Calls 1

pushMethod · 0.45

Tested by

no test coverage detected