Bug 86860 - cert issuer details. r=javi,sr=blizzard

This commit is contained in:
ddrinan%netscape.com 2001-08-02 23:52:25 +00:00
Родитель 18974de8f4
Коммит d1f3037072
5 изменённых файлов: 43 добавлений и 39 удалений

Просмотреть файл

@ -225,18 +225,10 @@ function DisplayGeneralDataFromCert(cert)
addAttributeFromCert('validityend', cert.expiresDate);
//Now to populate the fields that correspond to the issuer.
var issuer = cert.issuer;
var issuerCommonname, issuerOrg, issuerOrgUnit;
if (issuer) {
issuerCommonname = issuer.commonName;
issuerOrg = issuer.organization;
issuerOrgUnit = issuer.organizationalUnit;
} else {
var unknownIssuer = bundle.GetStringFromName('unknownIssuer');
issuerCommonname = unknownIssuer;
issuerOrg = unknownIssuer;
issuerOrgUnit = unknownIssuer;
}
issuerCommonname = cert.issuerCommonName;
issuerOrg = cert.issuerOrganization;
issuerOrgUnit = cert.issuerOrganizationalUnit;
addAttributeFromCert('issuercommonname', issuerCommonname);
addAttributeFromCert('issuerorganization', issuerOrg);
addAttributeFromCert('issuerorgunit', issuerOrgUnit);

Просмотреть файл

@ -124,7 +124,9 @@ interface nsIX509Cert : nsISupports {
readonly attribute wstring issuedDate;
readonly attribute wstring expiresDate;
readonly attribute wstring tokenName;
readonly attribute wstring issuerCommonName;
readonly attribute wstring issuerOrganization;
readonly attribute wstring issuerOrganizationUnit;
readonly attribute nsIX509Cert issuer;
readonly attribute nsIX509CertValidity validity;

Просмотреть файл

@ -207,7 +207,7 @@ void PR_CALLBACK HandshakeCallback(PRFileDesc* fd, void* client_data) {
nsIWebProgressListener::STATE_SECURE_LOW);
CERTCertificate *peerCert = SSL_PeerCertificate(fd);
char* caName = CERT_GetOrgName(&peerCert->subject);
char* caName = CERT_GetOrgName(&peerCert->issuer);
CERT_DestroyCertificate(peerCert);
if (!caName) {
caName = signer;

Просмотреть файл

@ -32,7 +32,7 @@
* may use your version of this file under either the MPL or the
* GPL.
*
* $Id: nsNSSCertificate.cpp,v 1.40 2001/08/01 23:05:08 javi%netscape.com Exp $
* $Id: nsNSSCertificate.cpp,v 1.41 2001/08/02 23:52:14 ddrinan%netscape.com Exp $
*/
#include "prmem.h"
@ -683,37 +683,48 @@ nsNSSCertificate::GetOrganization(PRUnichar **aOrganization)
return NS_OK;
}
NS_IMETHODIMP
nsNSSCertificate::GetIssuerCommonName(PRUnichar **aCommonName)
{
NS_ENSURE_ARG(aCommonName);
*aCommonName = nsnull;
if (mCert) {
char *commonName = CERT_GetCommonName(&mCert->issuer);
if (commonName) {
nsAutoString cn = NS_ConvertASCIItoUCS2(commonName);
*aCommonName = cn.ToNewUnicode();
}
}
return NS_OK;
}
NS_IMETHODIMP
nsNSSCertificate::GetIssuerOrganization(PRUnichar **aOrganization)
{
NS_ENSURE_ARG(aOrganization);
if (mIssuerOrg.Length() == 0) {
PRBool failed = PR_TRUE;
CERTCertificate *issuer;
issuer = CERT_FindCertIssuer(mCert, PR_Now(), certUsageSSLClient);
if (issuer) {
char *org = CERT_GetOrgName(&issuer->subject);
if (org) {
mIssuerOrg = NS_ConvertASCIItoUCS2(org);
failed = PR_FALSE;
}
}
if (failed) {
nsresult rv;
nsCOMPtr<nsINSSComponent> nssComponent(
do_GetService(kNSSComponentCID, &rv));
if (NS_FAILED(rv)) return rv;
if (!issuer) {
rv = nssComponent->GetPIPNSSBundleString(
NS_LITERAL_STRING("UnknownCertIssuer").get(), mIssuerOrg);
} else { /* !org */
rv = nssComponent->GetPIPNSSBundleString(
NS_LITERAL_STRING("UnknownCertOrg").get(), mIssuerOrg);
}
if (NS_FAILED(rv)) return rv;
*aOrganization = nsnull;
if (mCert) {
char *organization = CERT_GetOrgName(&mCert->issuer);
if (organization) {
nsAutoString org = NS_ConvertASCIItoUCS2(organization);
*aOrganization = org.ToNewUnicode();
}
}
return NS_OK;
}
NS_IMETHODIMP
nsNSSCertificate::GetIssuerOrganizationUnit(PRUnichar **aOrganizationUnit)
{
NS_ENSURE_ARG(aOrganizationUnit);
*aOrganizationUnit = nsnull;
if (mCert) {
char *organizationUnit = CERT_GetOrgUnitName(&mCert->issuer);
if (organizationUnit) {
nsAutoString orgUnit = NS_ConvertASCIItoUCS2(organizationUnit);
*aOrganizationUnit = orgUnit.ToNewUnicode();
}
}
*aOrganization = mIssuerOrg.ToNewUnicode();
return NS_OK;
}

Просмотреть файл

@ -64,7 +64,6 @@ public:
private:
CERTCertificate *mCert;
nsString mIssuerOrg;
PRBool mPermDelete;
PRUint32 mCertType;
nsCOMPtr<nsIASN1Object> mASN1Structure;