120
updateHdrIcons: function (exitCode, statusFlags, keyId, userId, sigDetails, errorMsg, blockSeparation, xtraStatus)
122
setStatusText: function(txt) {
123
let s = document.getElementById("enigmailStatusText");
124
s.firstChild.data = txt;
127
updateHdrIcons: function (exitCode, statusFlags, keyId, userId, sigDetails, errorMsg, blockSeparation, encToDetails, xtraStatus)
122
129
EnigmailCommon.DEBUG_LOG("enigmailMsgHdrViewOverlay.js: this.updateHdrIcons: exitCode="+exitCode+", statusFlags="+statusFlags+", keyId="+keyId+", userId="+userId+", "+errorMsg+"\n");
270
275
else if (statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) {
271
276
statusInfo = EnigmailCommon.getString("unverifiedSig");
272
statusLine = statusInfo + EnigmailCommon.getString("clickQueryPenDetails");
278
statusLine = statusInfo + EnigmailCommon.getString("clickImportButton");
281
statusLine = statusInfo + EnigmailCommon.getString("keyTypeUnsupported");
274
284
else if (statusFlags & (nsIEnigmail.BAD_SIGNATURE |
275
285
nsIEnigmail.EXPIRED_SIGNATURE |
276
286
nsIEnigmail.EXPIRED_KEY_SIGNATURE)) {
277
287
statusInfo = EnigmailCommon.getString("failedSig");
278
statusLine = statusInfo + EnigmailCommon.getString("clickPenDetails");
288
statusLine = statusInfo + EnigmailCommon.getString("clickDetailsButton");
280
290
else if (statusFlags & nsIEnigmail.DECRYPTION_INCOMPLETE) {
281
291
statusInfo = EnigmailCommon.getString("incompleteDecrypt");
282
statusLine = statusInfo + EnigmailCommon.getString("clickKey");
292
statusLine = statusInfo + EnigmailCommon.getString("clickDetailsButton");
284
294
else if (statusFlags & nsIEnigmail.IMPORTED_KEY) {
295
305
var si = EnigmailCommon.getString("unverifiedSig"); // "Unverified signature"
296
306
if (statusInfo == "") {
297
307
statusInfo += si;
298
statusLine = si + EnigmailCommon.getString("clickPen");
308
statusLine = si + EnigmailCommon.getString("clickDetailsButton");
300
310
//if (statusFlags & nsIEnigmail.INLINE_KEY) {
301
311
// statusLine = statusInfo + EnigmailCommon.getString("clickDecrypt");
303
313
// statusLine = statusInfo + EnigmailCommon.getString("clickPen");
305
statusInfo += "\n" + EnigmailCommon.getString("keyNeeded", [ keyId ]); // "public key ... needed"
315
if (statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) {
316
statusInfo += "\n" + EnigmailCommon.getString("keyNeeded", [ keyId ]); // "public key ... needed"
319
statusInfo += "\n" + EnigmailCommon.getString("keyUsed", [ keyId ]); // "public key ... used"
307
322
statusInfo += "\n\n" + errorMsg;
333
348
if (EnigmailCommon.getPref("displayPartiallySigned")) {
334
349
if (statusFlags & nsIEnigmail.PARTIALLY_PGP) {
335
350
if (msgSigned && msgEncrypted) {
336
if (statusLine == "") {
337
statusLine = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSignedAndEnc") ]);
338
statusLine += EnigmailCommon.getString("clickPenKeyDetails");
351
statusLine = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSignedAndEnc") ]);
352
statusLine += EnigmailCommon.getString("clickDetailsButton");
340
353
statusInfo = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSigned") ])
341
354
+ "\n" + statusInfo;
343
356
else if (msgEncrypted) {
344
if (statusLine == "") {
345
statusLine = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgEncrypted") ]);
346
statusLine += EnigmailCommon.getString("clickQueryKeyDetails");
348
statusInfo = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSigned") ])
357
statusLine = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgEncrypted") ]);
358
statusLine += EnigmailCommon.getString("clickDetailsButton");
359
statusInfo = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgEncrypted") ])
349
360
+ "\n" + statusInfo;
351
362
else if (msgSigned) {
352
if (statusLine == "") {
363
if (statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) {
364
statusLine = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSignedUnkownKey") ]);
366
statusLine += EnigmailCommon.getString("clickImportButton");
369
statusLine += EnigmailCommon.getString("keyTypeUnsupported");
353
373
statusLine = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSigned") ]);
354
statusLine += EnigmailCommon.getString("clickQueryPenDetails");
374
statusLine += EnigmailCommon.getString("clickDetailsButton");
356
376
statusInfo = EnigmailCommon.getString("msgPart", [ EnigmailCommon.getString("msgSigned") ])
357
377
+ "\n" + statusInfo;
387
416
if (statusLine) {
388
statusText.value = statusLine +" ";
417
this.setStatusText(statusLine +" ");
389
418
this.enigmailBox.removeAttribute("collapsed");
390
419
this.displayExtendedStatus(true);
421
if (Enigmail.msg.securityInfo.keyId &&
422
(Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) ) {
423
document.getElementById("enigmail_importKey").removeAttribute("hidden");
426
document.getElementById("enigmail_importKey").setAttribute("hidden", "true");
392
statusText.value = "";
430
this.setStatusText("");
393
431
this.enigmailBox.setAttribute("collapsed", "true");
394
432
this.displayExtendedStatus(false);
475
513
const nsIEnigmail = Components.interfaces.nsIEnigmail;
477
if (Enigmail.msg.securityInfo) {
478
if (Enigmail.msg.securityInfo.keyId &&
479
(Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) ) {
480
document.getElementById("enigmail_importKey").removeAttribute("hidden");
483
document.getElementById("enigmail_importKey").setAttribute("hidden", "true");
486
if ( (Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.NODATA) &&
487
(Enigmail.msg.securityInfo.statusFlags &
488
(nsIEnigmail.PGP_MIME_SIGNED | nsIEnigmail.PGP_MIME_ENCRYPTED)) ) {
489
document.getElementById("enigmail_reloadMessage").removeAttribute("hidden");
492
document.getElementById("enigmail_reloadMessage").setAttribute("hidden", "true");
496
var optList = ["pgpSecurityInfo", "copySecurityInfo"];
497
for (var j=0; j<optList.length; j++) {
498
var menuElement = document.getElementById("enigmail_"+optList[j]);
499
516
if (Enigmail.msg.securityInfo) {
500
menuElement.removeAttribute("disabled");
503
menuElement.setAttribute("disabled", "true");
507
this.setSenderStatus("signSenderKey", "editSenderKeyTrust" , "showPhoto", "dispKeyDetails");
517
if ( (Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.NODATA) &&
518
(Enigmail.msg.securityInfo.statusFlags &
519
(nsIEnigmail.PGP_MIME_SIGNED | nsIEnigmail.PGP_MIME_ENCRYPTED)) ) {
520
document.getElementById("enigmail_reloadMessage").removeAttribute("hidden");
523
document.getElementById("enigmail_reloadMessage").setAttribute("hidden", "true");
527
var optList = ["pgpSecurityInfo", "copySecurityInfo"];
528
for (var j=0; j<optList.length; j++) {
529
var menuElement = document.getElementById("enigmail_"+optList[j]);
530
if (Enigmail.msg.securityInfo) {
531
menuElement.removeAttribute("disabled");
534
menuElement.setAttribute("disabled", "true");
538
this.setSenderStatus("signSenderKey", "editSenderKeyTrust" , "showPhoto", "dispKeyDetails");
541
EnigmailCommon.ERROR_LOG("error on displaying Security menu:\n"+ex.toString()+"\n")
511
546
updateSendersKeyMenu: function ()
513
this.setSenderStatus("keyMgmtSignKey", "keyMgmtKeyTrust", "keyMgmtShowPhoto", "keyMgmtDispKeyDetails");
548
this.setSenderStatus("keyMgmtSignKey",
551
"keyMgmtDispKeyDetails",
517
setSenderStatus: function (elemSign, elemTrust, elemPhoto, elemKeyProps)
556
setSenderStatus: function (elemSign, elemTrust, elemPhoto, elemKeyProps, elemImportKey)
559
function setElemStatus(elemName, disabledValue) {
560
document.getElementById("enigmail_"+elemName).setAttribute("disabled", !disabledValue);
562
let secondElem = document.getElementById("enigmail_"+elemName+"2");
563
if (secondElem) secondElem.setAttribute("disabled", !disabledValue);
519
566
const nsIEnigmail = Components.interfaces.nsIEnigmail;
572
var signedMsg = false;
524
574
if (Enigmail.msg.securityInfo) {
525
575
if (Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.PHOTO_AVAILABLE) {
528
578
if (Enigmail.msg.securityInfo.msgSigned ) {
529
580
if (!(Enigmail.msg.securityInfo.statusFlags &
530
581
(nsIEnigmail.REVOKED_KEY | nsIEnigmail.EXPIRED_KEY_SIGNATURE | nsIEnigmail.UNVERIFIED_SIGNATURE))) {
533
584
if (!(Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE)) {
588
if (Enigmail.msg.securityInfo.statusFlags & nsIEnigmail.UNVERIFIED_SIGNATURE) {
540
document.getElementById("enigmail_"+elemTrust).setAttribute("disabled", !trust);
542
document.getElementById("enigmail_"+elemSign).setAttribute("disabled", !sign);
544
document.getElementById("enigmail_"+elemPhoto).setAttribute("disabled", !photo);
546
document.getElementById("enigmail_"+elemKeyProps).setAttribute("disabled", !sign);
594
if (elemTrust) setElemStatus(elemTrust, trust);
595
if (elemSign) setElemStatus(elemSign, sign);
596
if (elemPhoto) setElemStatus(elemPhoto, photo);
597
if (elemKeyProps) setElemStatus(elemKeyProps, (signedMsg && !unknown));
598
if (elemImportKey) setElemStatus(elemImportKey, unknown);
550
601
editKeyExpiry: function ()
556
607
editKeyTrust: function ()
558
EnigmailFuncs.editKeyTrust(window, [Enigmail.msg.securityInfo.userId], [Enigmail.msg.securityInfo.keyId]);
609
let enigmailSvc = EnigmailCommon.getService();
610
let keyId = enigmailSvc.getPubKeyIdForSubkey(Enigmail.msg.securityInfo.keyId);
612
EnigmailFuncs.editKeyTrust(window, [Enigmail.msg.securityInfo.userId], [keyId]);
559
613
gDBView.reloadMessageWithAllParts();
562
616
signKey: function ()
564
EnigmailFuncs.signKey(window, Enigmail.msg.securityInfo.userId, Enigmail.msg.securityInfo.keyId, null);
618
let enigmailSvc = EnigmailCommon.getService();
619
let keyId = enigmailSvc.getPubKeyIdForSubkey(Enigmail.msg.securityInfo.keyId);
621
EnigmailFuncs.signKey(window, Enigmail.msg.securityInfo.userId, keyId, null);
565
622
gDBView.reloadMessageWithAllParts();
891
952
return canDetach && Enigmail.hdrView.enigCanDetachAttachments();
894
// Distinction between createNewAttachmentInfo and AttachmentInfo
895
// due to renamed function in MsgHdrView.js in TB trunk code.
896
// Can be removed in later versions of Enigmail.
900
createNewAttachmentInfo.prototype.origOpenAttachment = createNewAttachmentInfo.prototype.openAttachment;
901
createNewAttachmentInfo.prototype.openAttachment = function ()
903
this.origOpenAttachment();
908
AttachmentInfo.prototype.origOpenAttachment = AttachmentInfo.prototype.openAttachment;
909
AttachmentInfo.prototype.openAttachment = function ()
911
this.origOpenAttachment();
916
956
////////////////////////////////////////////////////////////////////////////////
917
957
// THE FOLLOWING EXTENDS CODE IN msgHdrViewOverlay.js
947
987
throw Components.results.NS_NOINTERFACE;
950
updateSecurityStatus: function (uriSpec, exitCode, statusFlags, keyId, userId, sigDetails, errorMsg, blockSeparation, uri)
990
updateSecurityStatus: function (unusedUriSpec, exitCode, statusFlags, keyId, userId, sigDetails, errorMsg, blockSeparation, uri, encToDetails)
952
// uri is not used here; added for compatibility to other addons
953
EnigmailCommon.DEBUG_LOG("enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.updateSecurityStatus: uriSpec="+uriSpec+"\n");
955
var msgUriSpec = Enigmail.msg.getCurrentMsgUriSpec();
957
EnigmailCommon.DEBUG_LOG("enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.updateSecurityStatus: msgUriSpec="+msgUriSpec+"\n");
959
if (!uriSpec || (uriSpec == msgUriSpec)) {
960
Enigmail.hdrView.updateHdrIcons(exitCode, statusFlags, keyId, userId, sigDetails, errorMsg, blockSeparation);
992
// unusedUriSpec is not used anymore. It is here becaue other addons rely on the same API
994
let uriSpec = (uri ? uri.spec : null);
996
EnigmailCommon.DEBUG_LOG("enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.updateSecurityStatus: uri.spec="+uriSpec+"\n");
998
let msgUriSpec = Enigmail.msg.getCurrentMsgUriSpec();
1002
let messenger = Components.classes["@mozilla.org/messenger;1"].getService(Components.interfaces.nsIMessenger);
1003
let msgSvc = messenger.messageServiceFromURI(msgUriSpec);
1004
msgSvc.GetUrlForUri(msgUriSpec, url, null);
1007
EnigmailCommon.DEBUG_LOG("enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.updateSecurityStatus: could not determine URL\n");
1008
url.value = { spec: "enigmail://invalid/message" };
1011
EnigmailCommon.DEBUG_LOG("enigmailMsgHdrViewOverlay.js: EnigMimeHeaderSink.updateSecurityStatus: url="+url.value.spec+"\n");
1013
if (!uriSpec || uriSpec.search(/^enigmail:/) == 0 || (uriSpec.indexOf(url.value.spec) == 0 &&
1014
uriSpec.substr(url.value.spec.length).search(/([\?&].*)?$/) == 0)) {
1015
Enigmail.hdrView.updateHdrIcons(exitCode, statusFlags, keyId, userId, sigDetails,
1016
errorMsg, blockSeparation, encToDetails,
1017
null); // xtraStatus
1020
if (uriSpec && uriSpec.search(/^enigmail:message\//) == 0) {
1021
// display header for broken MS-Exchange message
1022
let ebeb = document.getElementById("enigmailBrokenExchangeBox");
1023
ebeb.removeAttribute("collapsed");