зеркало из https://github.com/mozilla/pjs.git
b=182258 Give separate signature validity and sender address mismatch feedback
r=javi sr=bienvenu
This commit is contained in:
Родитель
1fe62ddc21
Коммит
6fc801b267
|
@ -54,20 +54,27 @@ var smimeHeaderSink =
|
|||
gSignedUINode.collapsed = false;
|
||||
gSignedStatusPanel.collapsed = false;
|
||||
|
||||
if (nsICMSMessageErrors.SUCCESS == aSignatureStatus)
|
||||
{
|
||||
gSignedUINode.setAttribute("signed", "ok");
|
||||
gStatusBar.setAttribute("signed", "ok");
|
||||
}
|
||||
else if(nsICMSMessageErrors.VERIFY_NOT_YET_ATTEMPTED == aSignatureStatus)
|
||||
{
|
||||
gSignedUINode.setAttribute("signed", "unknown");
|
||||
gStatusBar.setAttribute("signed", "unknown");
|
||||
}
|
||||
else
|
||||
{
|
||||
gSignedUINode.setAttribute("signed", "notok");
|
||||
gStatusBar.setAttribute("signed", "notok");
|
||||
switch (aSignatureStatus) {
|
||||
case nsICMSMessageErrors.SUCCESS:
|
||||
gSignedUINode.setAttribute("signed", "ok");
|
||||
gStatusBar.setAttribute("signed", "ok");
|
||||
break;
|
||||
|
||||
case nsICMSMessageErrors.VERIFY_NOT_YET_ATTEMPTED:
|
||||
gSignedUINode.setAttribute("signed", "unknown");
|
||||
gStatusBar.setAttribute("signed", "unknown");
|
||||
break;
|
||||
|
||||
case nsICMSMessageErrors.VERIFY_CERT_WITHOUT_ADDRESS:
|
||||
case nsICMSMessageErrors.VERIFY_HEADER_MISMATCH:
|
||||
gSignedUINode.setAttribute("signed", "mismatch");
|
||||
gStatusBar.setAttribute("signed", "mismatch");
|
||||
break;
|
||||
|
||||
default:
|
||||
gSignedUINode.setAttribute("signed", "notok");
|
||||
gStatusBar.setAttribute("signed", "notok");
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -115,11 +115,17 @@ function onLoad()
|
|||
break;
|
||||
|
||||
case nsICMSMessageErrors.VERIFY_HEADER_MISMATCH:
|
||||
sigInfoLabel = "SIInvalidLabel";
|
||||
sigInfoHeader = "SIInvalidHeader";
|
||||
sigInfoLabel = "SIPartiallyValidLabel";
|
||||
sigInfoHeader = "SIPartiallyValidHeader";
|
||||
sigInfo = "SIHeaderMismatch";
|
||||
break;
|
||||
|
||||
case nsICMSMessageErrors.VERIFY_CERT_WITHOUT_ADDRESS:
|
||||
sigInfoLabel = "SIPartiallyValidLabel";
|
||||
sigInfoHeader = "SIPartiallyValidHeader";
|
||||
sigInfo = "SICertWithoutAddress";
|
||||
break;
|
||||
|
||||
case nsICMSMessageErrors.VERIFY_UNTRUSTED:
|
||||
sigInfoLabel = "SIInvalidLabel";
|
||||
sigInfoHeader = "SIInvalidHeader";
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
## Signature Information strings
|
||||
SINoneLabel=Message Has No Digital Signature
|
||||
SINone=This message does not include the sender's digital signature. The absence of a digital signature means that the message could have been sent by someone pretending to have this email address. It is also possible that the message has been altered while in transit over the network. However, it is unlikely that either event has occurred.
|
||||
|
||||
SIValidLabel=Message Is Signed
|
||||
SIValid=This message includes a valid digital signature. The message has not been altered since it was sent.
|
||||
|
||||
SIInvalidLabel=Digital Signature Is Not Valid
|
||||
SIInvalidHeader=This message includes a digital signature, but the signature is invalid.
|
||||
|
||||
SIContentAltered=The signature does not match the message content correctly. The message appears to have been altered after the sender signed it. You should not trust the validity of this message until you verify its contents with the sender.
|
||||
SIHeaderMismatch=The signature does not match the message headers correctly. The message appears to have been altered after the sender signed it. You should not trust the validity of this message until you verify its contents with the sender.
|
||||
SIExpired=The certificate used to signed the message appears to have expired. Make sure your computer's clock is set correctly.
|
||||
SIRevoked=The certificate used to sign the message has been revoked. You should not trust the validity of this message until you verify its contents with the sender.
|
||||
SINotYetValid=The certificate used to sign the message appears not be valid yet. Make sure your computer's clock is set correctly.
|
||||
SIUnknownCA=The certificate used to sign the message was issued by an unknown certificate authority.
|
||||
SIUntrustedCA=The certificate used to sign the message was issued by a certificate authority that you do not trust for issuing this kind of certificate.
|
||||
SIExpiredCA=The certificate used to sign the message was issued by a certificate authority whose own certificate has expired. Make sure your computer's clock is set correctly.
|
||||
SIRevokedCA=The certificate used to sign the message was issued by a certificate authority whose own certificate has been revoked. You should not trust the validity of this message until you verify its contents with the sender.
|
||||
SINotYetValidCA=The certificate used to sign the message was issued by a certificate authority whose own certificate is not yet valid. Make sure your computer's clock is set correctly.
|
||||
SIInvalidCipher=The message was signed using an encryption strength that this version of your software does not support.
|
||||
SIClueless=There are unknown problems with this digital signature. You should not trust the validity of this message until you verify its contents with the sender.
|
||||
|
||||
|
||||
## Encryption Information strings
|
||||
EINoneLabel=Message Not Encrypted
|
||||
EINone=This message was not encrypted before it was sent. Information sent over the Internet without encryption can be seen by other people while in transit.
|
||||
|
||||
EIValidLabel=Message Is Encrypted
|
||||
EIValid=This message was encrypted before it was sent to you. Encryption makes it very difficult for other people to view information while it is traveling over the network.
|
||||
|
||||
EIInvalidLabel=Message Cannot Be Decrypted
|
||||
EIInvalidHeader=This message was encrypted before it was sent to you, but it cannot be decrypted.
|
||||
|
||||
EIContentAltered=The message contents appear to have been altered during transmission.
|
||||
EINoDecryptCert=The certificate used to encrypt the message cannot be found.
|
||||
EIPasswordError=You did not enter your Master Password correctly.
|
||||
EIInvalidCipher=The message was encrypted using an encryption strength that this version of your software does not support.
|
||||
EIClueless=There are unknown problems with this encrypted message.
|
||||
|
||||
|
||||
## Signing Power Information string
|
||||
SPCanLabel=Message Can Be Signed
|
||||
SPCanHeader=You have chosen to digitally sign this message before sending it.
|
||||
SPCan=When other people receive your signed message, they can verify that the message comes from you and that it has not been altered since you signed it.
|
||||
|
||||
SPCannotLabel=Message Cannot Be Signed
|
||||
SPCannotHeader=You cannot digitally sign this message.
|
||||
|
||||
SPNoCert=You have not specified a valid certificate for creating digital signatures.
|
||||
SPNoSigCert=The certificate you have specified for signing messages cannot be used for that purpose.
|
||||
SPNoValidCert=The certificate you have specified for signing messages is not yet valid. Make sure your computer's clock is set correctly.
|
||||
SPExpiredCert=The certificate you have specified for signing messages has expired.
|
||||
SPRevokedCert=The certificate you have specified for signing messages has been revoked.
|
||||
|
||||
|
||||
## Encryption Power Information string
|
||||
EPCanLabel=Message Can Be Encrypted
|
||||
EPCanHeader=You have chosen to encrypt this message before sending it.
|
||||
EPCan=If you have chosen to save copies of your outgoing messages, this message will be encrypted before being saved.
|
||||
|
||||
EPCannotLabel=Message Cannot Be Encrypted
|
||||
EPCannotHeader=This message cannot be encrypted.
|
||||
|
||||
EPRecipientUnknown=You have not entered any recipients.
|
||||
EPNoCerts=You do not have valid certificates for the following recipients:
|
||||
EPClueless=There are unknown problems with this message.
|
|
@ -210,6 +210,7 @@ extern char *IMAP_CreateReloadAllPartsUrl(const char *url);
|
|||
PRBool
|
||||
MimeCMSHeadersAndCertsMatch(MimeObject *obj,
|
||||
nsICMSMessage *content_info,
|
||||
PRBool *signing_cert_without_email_address,
|
||||
char **sender_email_addr_return)
|
||||
{
|
||||
MimeHeaders *msg_headers = 0;
|
||||
|
@ -227,6 +228,11 @@ MimeCMSHeadersAndCertsMatch(MimeObject *obj,
|
|||
content_info->GetSignerEmailAddress (getter_Copies(cert_addr));
|
||||
}
|
||||
|
||||
if (signing_cert_without_email_address)
|
||||
{
|
||||
*signing_cert_without_email_address = (!cert_addr);
|
||||
}
|
||||
|
||||
if (!cert_addr) {
|
||||
// no address, no match
|
||||
match = PR_FALSE;
|
||||
|
@ -528,15 +534,22 @@ MimeCMS_eof (void *crypto_closure, PRBool abort_p)
|
|||
}
|
||||
}
|
||||
else {
|
||||
PRBool signing_cert_without_email_address;
|
||||
if (MimeCMSHeadersAndCertsMatch(data->self,
|
||||
data->content_info,
|
||||
&signing_cert_without_email_address,
|
||||
&data->sender_addr))
|
||||
{
|
||||
status = nsICMSMessageErrors::SUCCESS;
|
||||
}
|
||||
else
|
||||
{
|
||||
status = nsICMSMessageErrors::VERIFY_HEADER_MISMATCH;
|
||||
if (signing_cert_without_email_address) {
|
||||
status = nsICMSMessageErrors::VERIFY_CERT_WITHOUT_ADDRESS;
|
||||
}
|
||||
else {
|
||||
status = nsICMSMessageErrors::VERIFY_HEADER_MISMATCH;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -662,8 +675,10 @@ MimeCMS_generate (void *crypto_closure)
|
|||
}
|
||||
else
|
||||
{
|
||||
PRBool signing_cert_without_email_address;
|
||||
good_p = MimeCMSHeadersAndCertsMatch(data->self,
|
||||
data->content_info,
|
||||
&signing_cert_without_email_address,
|
||||
&data->sender_addr);
|
||||
if (!good_p && !data->verify_error) {
|
||||
// data->verify_error = SEC_ERROR_CERT_ADDR_MISMATCH; XXX Fix later XXX //
|
||||
|
|
|
@ -177,6 +177,7 @@ MimeMultCMS_get_content_info(MimeObject *obj,
|
|||
extern PRBool MimeEncryptedCMS_encrypted_p (MimeObject *obj);
|
||||
extern PRBool MimeCMSHeadersAndCertsMatch(MimeObject *obj,
|
||||
nsICMSMessage *,
|
||||
PRBool *signing_cert_without_email_address,
|
||||
char **);
|
||||
extern char *MimeCMS_MakeSAURL(MimeObject *obj);
|
||||
extern char *IMAP_CreateReloadAllPartsUrl(const char *url);
|
||||
|
@ -482,11 +483,19 @@ MimeMultCMS_generate (void *crypto_closure)
|
|||
data->verify_error = -1;
|
||||
}
|
||||
} else {
|
||||
PRBool signing_cert_without_email_address;
|
||||
|
||||
good_p = MimeCMSHeadersAndCertsMatch(data->self,
|
||||
data->content_info,
|
||||
&signing_cert_without_email_address,
|
||||
&data->sender_addr);
|
||||
if (!good_p) {
|
||||
signature_status = nsICMSMessageErrors::VERIFY_HEADER_MISMATCH;
|
||||
if (signing_cert_without_email_address) {
|
||||
signature_status = nsICMSMessageErrors::VERIFY_CERT_WITHOUT_ADDRESS;
|
||||
}
|
||||
else {
|
||||
signature_status = nsICMSMessageErrors::VERIFY_HEADER_MISMATCH;
|
||||
}
|
||||
if (!data->verify_error) {
|
||||
data->verify_error = -1;
|
||||
// XXX Fix this data->verify_error = SEC_ERROR_CERT_ADDR_MISMATCH; XXX //
|
||||
|
|
|
@ -60,6 +60,7 @@ interface nsICMSMessageErrors : nsISupports
|
|||
const long VERIFY_MALFORMED_SIGNATURE = 1037;
|
||||
const long VERIFY_HEADER_MISMATCH = 1038;
|
||||
const long VERIFY_NOT_YET_ATTEMPTED = 1039;
|
||||
const long VERIFY_CERT_WITHOUT_ADDRESS = 1040;
|
||||
|
||||
const long ENCRYPT_NO_BULK_ALG = 1056;
|
||||
};
|
||||
|
@ -111,6 +112,9 @@ interface nsICMSMessageErrors : nsISupports
|
|||
#define NS_ERROR_CMS_VERIFY_NOT_YET_ATTEMPTED \
|
||||
NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_SECURITY, \
|
||||
nsICMSMessageErrors::VERIFY_NOT_YET_ATTEMPTED)
|
||||
#define NS_ERROR_CMS_VERIFY_CERT_WITHOUT_ADDRESS \
|
||||
NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_SECURITY, \
|
||||
nsICMSMessageErrors::VERIFY_CERT_WITHOUT_ADDRESS)
|
||||
#define NS_ERROR_CMS_ENCRYPT_NO_BULK_ALG \
|
||||
NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_SECURITY, \
|
||||
nsICMSMessageErrors::ENCRYPT_NO_BULK_ALG)
|
||||
|
|
|
@ -1,73 +0,0 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
@import url("chrome://messenger/skin/");
|
||||
|
||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
#signedHdrIcon {
|
||||
list-style-image: none;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#signedHdrIcon[signed="ok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrSignOk.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#signedHdrIcon[signed="unknown"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrSignUnknown.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#signedHdrIcon[signed="notok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrSignNotOk.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#encryptedHdrIcon {
|
||||
list-style-image: none;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#encryptedHdrIcon[encrypted="ok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrCryptoOk.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#encryptedHdrIcon[encrypted="notok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrCryptoNotOk.gif");
|
||||
visibility: visible;
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
@import url("chrome://messenger/skin/");
|
||||
|
||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
#status-bar #signed-status {
|
||||
list-style-image: none;
|
||||
}
|
||||
|
||||
#status-bar[signed="ok"] #signed-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbSignOk.gif");
|
||||
}
|
||||
|
||||
#status-bar[signed="unknown"] #signed-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbSignUnknown.gif");
|
||||
}
|
||||
|
||||
#status-bar[signed="notok"] #signed-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbSignNotOk.gif");
|
||||
}
|
||||
|
||||
#status-bar #encrypted-status {
|
||||
list-style-image: none;
|
||||
}
|
||||
|
||||
#status-bar[encrypted="ok"] #encrypted-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbCryptoOk.gif");
|
||||
}
|
||||
|
||||
#status-bar[encrypted="notok"] #encrypted-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbCryptoNotOk.gif");
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
@import url("chrome://messenger/skin/");
|
||||
|
||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
#signedHdrIcon {
|
||||
list-style-image: none;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#signedHdrIcon[signed="ok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrSignOk.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#signedHdrIcon[signed="unknown"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrSignUnknown.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#signedHdrIcon[signed="notok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrSignNotOk.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#encryptedHdrIcon {
|
||||
list-style-image: none;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#encryptedHdrIcon[encrypted="ok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrCryptoOk.gif");
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
#encryptedHdrIcon[encrypted="notok"] {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/hdrCryptoNotOk.gif");
|
||||
visibility: visible;
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is Mozilla Communicator.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
@import url("chrome://messenger/skin/");
|
||||
|
||||
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
|
||||
|
||||
#status-bar #signed-status {
|
||||
list-style-image: none;
|
||||
}
|
||||
|
||||
#status-bar[signed="ok"] #signed-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbSignOk.gif");
|
||||
}
|
||||
|
||||
#status-bar[signed="unknown"] #signed-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbSignUnknown.gif");
|
||||
}
|
||||
|
||||
#status-bar[signed="notok"] #signed-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbSignNotOk.gif");
|
||||
}
|
||||
|
||||
#status-bar #encrypted-status {
|
||||
list-style-image: none;
|
||||
}
|
||||
|
||||
#status-bar[encrypted="ok"] #encrypted-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbCryptoOk.gif");
|
||||
}
|
||||
|
||||
#status-bar[encrypted="notok"] #encrypted-status {
|
||||
list-style-image: url("chrome://messenger/skin/smime/icons/sbCryptoNotOk.gif");
|
||||
}
|
Загрузка…
Ссылка в новой задаче