mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-01 11:27:55 +00:00
Added archive attribute to nsICertificatePrincipal...part of fix for 37481.
This commit is contained in:
parent
e745453c6c
commit
ad755522c3
@ -19,9 +19,11 @@
|
||||
*
|
||||
* Contributor(s):
|
||||
* Norris Boyd
|
||||
* Mitchell Stoltz <mstoltz@netscape.com>
|
||||
*/
|
||||
/* Defines an interface for certificate principals. */
|
||||
#include "nsIPrincipal.idl"
|
||||
#include "nsIZipReader.idl"
|
||||
|
||||
%{C++
|
||||
#define NS_CERTIFICATEPRINCIPAL_PROGID "component://netscape/certificateprincipal"
|
||||
@ -33,4 +35,7 @@ interface nsICertificatePrincipal : nsISupports {
|
||||
|
||||
readonly attribute string certificateID;
|
||||
attribute string commonName;
|
||||
|
||||
// The archive containing the digital signature
|
||||
attribute nsIZipReader archive;
|
||||
};
|
||||
|
@ -27,6 +27,7 @@
|
||||
#ifndef _NS_CERTIFICATE_PRINCIPAL_H_
|
||||
#define _NS_CERTIFICATE_PRINCIPAL_H_
|
||||
#include "jsapi.h"
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsICertificatePrincipal.h"
|
||||
#include "nsBasePrincipal.h"
|
||||
|
||||
@ -67,6 +68,7 @@ public:
|
||||
protected:
|
||||
char* mCertificateID;
|
||||
char* mCommonName;
|
||||
nsCOMPtr<nsIZipReader> mArchive;
|
||||
};
|
||||
|
||||
#endif // _NS_CERTIFICATE_PRINCIPAL_H_
|
||||
|
@ -73,6 +73,29 @@ nsAggregatePrincipal::SetCommonName(const char* aCommonName)
|
||||
return certificate->SetCommonName(aCommonName);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAggregatePrincipal::GetArchive(nsIZipReader** aArchive)
|
||||
{
|
||||
if (!mCertificate)
|
||||
{
|
||||
*aArchive = nsnull;
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsICertificatePrincipal> certificate = do_QueryInterface(mCertificate);
|
||||
return certificate->GetArchive(aArchive);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsAggregatePrincipal::SetArchive(nsIZipReader* aArchive)
|
||||
{
|
||||
if (!mCertificate)
|
||||
return NS_ERROR_FAILURE;
|
||||
|
||||
nsCOMPtr<nsICertificatePrincipal> certificate = do_QueryInterface(mCertificate);
|
||||
return certificate->SetArchive(aArchive);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////
|
||||
// Methods implementing nsICodebasePrincipal //
|
||||
///////////////////////////////////////////////
|
||||
|
@ -38,7 +38,7 @@ NSBASEPRINCIPALS_RELEASE(nsCertificatePrincipal);
|
||||
// Methods implementing nsICertificatePrincipal //
|
||||
//////////////////////////////////////////////////
|
||||
NS_IMETHODIMP
|
||||
nsCertificatePrincipal::GetCertificateID(char** aCertificateID)
|
||||
nsCertificatePrincipal::GetCertificateID(char** aCertificateID)
|
||||
{
|
||||
*aCertificateID = nsCRT::strdup(mCertificateID);
|
||||
return *mCertificateID ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
|
||||
@ -59,6 +59,20 @@ nsCertificatePrincipal::SetCommonName(const char* aCommonName)
|
||||
return * mCommonName ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsCertificatePrincipal::GetArchive(nsIZipReader** aArchive)
|
||||
{
|
||||
*aArchive = mArchive;
|
||||
NS_IF_ADDREF(*aArchive);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsCertificatePrincipal::SetArchive(nsIZipReader* aArchive)
|
||||
{
|
||||
mArchive = aArchive;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
///////////////////////////////////////
|
||||
// Methods implementing nsIPrincipal //
|
||||
|
Loading…
x
Reference in New Issue
Block a user