This represents a service to access and manipulate 
 X.509 certificates stored in a database.

 @status FROZEN
[scriptable, uuid(da48b3c0-1284-11d5-ac67-000064657374)]
interface nsIX509CertDB : nsISupports

Constants

  Constants that define which usages a certificate
  is trusted for.
const unsigned long UNTRUSTED = 0

          
const unsigned long TRUSTED_SSL = 1

          
const unsigned long TRUSTED_EMAIL = 2

          
const unsigned long TRUSTED_OBJSIGN = 4

Attributes

  Whether OCSP is enabled in preferences.
readonly attribute boolean isOcspOn

Methods


          
nsIX509Cert constructX509FromBase64(in string base64)
  Delete a certificate stored in the database.

  @param aCert Delete this certificate.
void deleteCertificate(in nsIX509Cert aCert)
  Export a set of certs and keys from the database to a PKCS#12 file.

  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
  @param aFile Identifies a file that will be filled with the data
               to be exported.
  @param count The number of certificates to be exported.
  @param aCerts The array of all certificates to be exported.
void exportPKCS12File(in nsISupports aToken, in nsILocalFile aFile, in unsigned long count, [array, size_is(count)] in nsIX509Cert aCerts)
  Will find a certificate based on its dbkey
  retrieved by getting the dbKey attribute of
  the certificate.

  @param aDBkey Database internal key, as obtained using
                attribute dbkey in nsIX509Cert.
  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
nsIX509Cert findCertByDBKey(in string aDBkey, in nsISupports aToken)
  Find a certificate by email address.

  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
  @param aEmailAddress The email address to be used as the key
                       to find the certificate.
                
  @return The matching certificate if found.
nsIX509Cert findCertByEmailAddress(in nsISupports aToken, in string aEmailAddress)
  Given a nickname and optionally a token,
  locate the matching certificate.

  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
  @param aNickname The nickname to be used as the key
                   to find a certificate.
                
  @return The matching certificate if found.
nsIX509Cert findCertByNickname(in nsISupports aToken, in AString aNickname)
  Obtain a list of certificate nicknames from the database.
  What the name is depends on type:
    user, ca, or server cert - the nickname
    email cert - the email address

  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
  @param aType Type of certificate to obtain
               See certificate type constants in nsIX509Cert.
  @param count The number of nicknames in the returned array
  @param certNameList The returned array of certificate nicknames.
void findCertNicknames(in nsISupports aToken, in unsigned long aType, out unsigned long count, [array, size_is(count)] out wstring certNameList)
  Find the email encryption certificate by nickname.

  @param aNickname The nickname to be used as the key
                   to find the certificate.
                
  @return The matching certificate if found.
nsIX509Cert findEmailEncryptionCert(in AString aNickname)
  Find the email signing certificate by nickname.

  @param aNickname The nickname to be used as the key
                   to find the certificate.
                
  @return The matching certificate if found.
nsIX509Cert findEmailSigningCert(in AString aNickname)
  An array of all known OCSP responders within the scope of the 
  certificate database.

  @return Array of OCSP responders, entries are QIable to nsIOCSPResponder.
nsIArray getOCSPResponders()
  Use this to import a stream sent down as a mime type into
  the certificate database on the default token.
  The stream may consist of one or more certificates.

  @param data The raw data to be imported
  @param length The length of the data to be imported
  @param type The type of the certificate, see constants in nsIX509Cert
  @param ctx A UI context.
void importCertificates([array, size_is(length)] in octet data, in unsigned long length, in unsigned long type, in nsIInterfaceRequestor ctx)
  Import certificate(s) from file

  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
  @param aFile Identifies a file that contains the certificate
               to be imported.
  @param aType Describes the type of certificate that is going to
               be imported. See type constants in nsIX509Cert.
void importCertsFromFile(in nsISupports aToken, in nsILocalFile aFile, in unsigned long aType)
  Import another person's email certificate into the database.

  @param data The raw data to be imported
  @param length The length of the data to be imported
  @param ctx A UI context.
void importEmailCertificate([array, size_is(length)] in octet data, in unsigned long length, in nsIInterfaceRequestor ctx)
  Import a PKCS#12 file containing cert(s) and key(s) into the database.

  @param aToken Optionally limits the scope of 
                this function to a token device.
                Can be null to mean any token.
  @param aFile Identifies a file that contains the data
               to be imported.
void importPKCS12File(in nsISupports aToken, in nsILocalFile aFile)
  Import a server machine's certificate into the database.

  @param data The raw data to be imported
  @param length The length of the data to be imported
  @param ctx A UI context.
void importServerCertificate([array, size_is(length)] in octet data, in unsigned long length, in nsIInterfaceRequestor ctx)
  Import a personal certificate into the database, assuming 
  the database already contains the private key for this certificate.

  @param data The raw data to be imported
  @param length The length of the data to be imported
  @param ctx A UI context.
void importUserCertificate([array, size_is(length)] in octet data, in unsigned long length, in nsIInterfaceRequestor ctx)
  Query whether a certificate is trusted for a particular use.

  @param cert Obtain the stored trust of this certificate.
  @param certType The type of the certificate. See nsIX509Cert.
  @param trustType A single bit from the usages constants defined 
                   within this interface.

  @return Returns true if the certificate is trusted for the given use.
boolean isCertTrusted(in nsIX509Cert cert, in unsigned long certType, in unsigned long trustType)
  Modify the trust that is stored and associated to a certificate within
  a database. Separate trust is stored for 
  One call manipulates the trust for one trust type only.
  See the trust type constants defined within this interface.

  @param cert Change the stored trust of this certificate.
  @param type The type of the certificate. See nsIX509Cert.
  @param trust A bitmask. The new trust for the possible usages.
               See the trust constants defined within this interface.
void setCertTrust(in nsIX509Cert cert, in unsigned long type, in unsigned long trust)