|
|
@ -7,8 +7,10 @@ var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); |
|
|
|
var { pEpUtils } = ChromeUtils.import("chrome://pEp4Tb/content/modules/utils.js"); |
|
|
|
var { pEp } = ChromeUtils.import("chrome://pEp4Tb/content/modules/pEp.js"); |
|
|
|
var { pEpController } = ChromeUtils.import("chrome://pEp4Tb/content/pEpController.js"); |
|
|
|
var { TbContacts } = ChromeUtils.import("chrome://pEp4Tb/content/TbContacts.js"); |
|
|
|
|
|
|
|
var gImportResult; |
|
|
|
var gFpr; |
|
|
|
|
|
|
|
var pEpOptions = { |
|
|
|
openLink(url) { |
|
|
@ -409,7 +411,15 @@ var pEpOptions = { |
|
|
|
} |
|
|
|
stream.close(); |
|
|
|
|
|
|
|
// TODO: Check for multiple public keys.
|
|
|
|
// Check for multiple public keys.
|
|
|
|
if ((streamData.match(/BEGIN PGP PUBLIC KEY BLOCK/g) || []).length > 1) { |
|
|
|
Services.prompt.alert( |
|
|
|
window, |
|
|
|
pEpOptions.getLocaleMessage("optionsImportPromptTitle"), |
|
|
|
pEpOptions.getLocaleMessage("optionsImportMultiKey"), |
|
|
|
); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// Send to the engine.
|
|
|
|
let result; |
|
|
@ -450,6 +460,8 @@ var pEpOptions = { |
|
|
|
button1.removeAttribute("hidden"); |
|
|
|
let button2 = document.getElementById("cancelKey"); |
|
|
|
button2.removeAttribute("hidden"); |
|
|
|
|
|
|
|
gFpr = fprs[0]; |
|
|
|
} else { |
|
|
|
msg = pEpOptions.getLocaleMessage("optionsImportFingerprint"); |
|
|
|
const fpr = result[0].fpr.replace(/(....)/g, "$1 ").trim(); |
|
|
@ -499,6 +511,7 @@ var pEpOptions = { |
|
|
|
importResult.setAttribute("hidden", "hidden"); |
|
|
|
|
|
|
|
let commPartnerAddress = document.getElementById("commPartnerAddress"); |
|
|
|
commPartnerAddress.value = ""; |
|
|
|
commPartnerAddress.setAttribute("hidden", "hidden"); |
|
|
|
let importOptions = document.getElementById("importOptions"); |
|
|
|
importOptions.setAttribute("hidden", "true"); |
|
|
@ -518,7 +531,7 @@ var pEpOptions = { |
|
|
|
case "keep": |
|
|
|
for (let i = 0; i < gImportResult.length; i++) { |
|
|
|
gImportResult[i].user_id = "pEp_own_userId"; |
|
|
|
pEpController.set_own_key(gImportResult[i]); |
|
|
|
pEpController.synchronise(pEpController.set_own_key(gImportResult[i])); |
|
|
|
} |
|
|
|
break; |
|
|
|
case "switch": |
|
|
@ -538,7 +551,28 @@ var pEpOptions = { |
|
|
|
); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// TODO: pEpController.set_comm_partner_key( some id, some fpr);
|
|
|
|
// Check valid e-mail.
|
|
|
|
let email = document.getElementById("commPartnerAddress").value; |
|
|
|
if (!email.includes("@", 1) || email.endsWith("@")) { |
|
|
|
// Invalid.
|
|
|
|
Services.prompt.alert( |
|
|
|
window, |
|
|
|
pEpOptions.getLocaleMessage("optionsImportPromptTitle"), |
|
|
|
pEpOptions.getLocaleMessage("optionsInvalidEmail"), |
|
|
|
); |
|
|
|
return; |
|
|
|
} |
|
|
|
try { |
|
|
|
let id = TbContacts.getpEpIdentity(TbContacts.parseAddress(email.trim())[0]); |
|
|
|
pEpController.synchronise(pEpController.set_comm_partner_key(id, gFpr)); |
|
|
|
} catch (err) { |
|
|
|
pEpController.log.error(`Key use error: ${err.message}`); |
|
|
|
Services.prompt.alert( |
|
|
|
window, |
|
|
|
pEpOptions.getLocaleMessage("optionsImportPromptTitle"), |
|
|
|
pEpOptions.getLocaleMessage("optionsKeyUseError"), |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
this.cancelKey(); |
|
|
|