security/nss/lib/pki/pkistore.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef PKISTORE_H
     6 #define PKISTORE_H
     8 #ifndef NSSPKIT_H
     9 #include "nsspkit.h"
    10 #endif /* NSSPKIT_H */
    12 #ifndef BASE_H
    13 #include "base.h"
    14 #endif /* BASE_H */
    16 PR_BEGIN_EXTERN_C
    18 /* 
    19  * PKI Stores
    20  *
    21  * This is a set of routines for managing local stores of PKI objects.
    22  * Currently, the only application is in crypto contexts, where the
    23  * certificate store is used.  In the future, methods should be added
    24  * here for storing local references to keys.
    25  */
    27 /* 
    28  * nssCertificateStore
    29  *
    30  * Manages local store of certificate, trust, and S/MIME profile objects.
    31  * Within a crypto context, mappings of cert to trust and cert to S/MIME
    32  * profile are always 1-1.  Therefore, it is reasonable to store all objects
    33  * in a single collection, indexed by the certificate.
    34  */
    36 NSS_EXTERN nssCertificateStore *
    37 nssCertificateStore_Create
    38 (
    39   NSSArena *arenaOpt
    40 );
    42 NSS_EXTERN PRStatus
    43 nssCertificateStore_Destroy
    44 (
    45   nssCertificateStore *store
    46 );
    48 /* Atomic Find cert in store, or add this cert to the store.
    49 ** Ref counts properly maintained.
    50 */
    51 NSS_EXTERN NSSCertificate *
    52 nssCertificateStore_FindOrAdd 
    53 (
    54   nssCertificateStore *store,
    55   NSSCertificate *c
    56 );
    58 NSS_EXTERN void
    59 nssCertificateStore_RemoveCertLOCKED
    60 (
    61   nssCertificateStore *store,
    62   NSSCertificate *cert
    63 );
    65 struct nssCertificateStoreTraceStr {
    66     nssCertificateStore* store;
    67     PZLock* lock;
    68     PRBool locked;
    69     PRBool unlocked;
    70 };
    72 typedef struct nssCertificateStoreTraceStr nssCertificateStoreTrace;
    74 NSS_EXTERN void
    75 nssCertificateStore_Lock (
    76   nssCertificateStore *store, nssCertificateStoreTrace* out
    77 );
    79 NSS_EXTERN void
    80 nssCertificateStore_Unlock (
    81   nssCertificateStore *store, const nssCertificateStoreTrace* in,
    82   nssCertificateStoreTrace* out
    83 );
    85 NSS_EXTERN NSSCertificate **
    86 nssCertificateStore_FindCertificatesBySubject
    87 (
    88   nssCertificateStore *store,
    89   NSSDER *subject,
    90   NSSCertificate *rvOpt[],
    91   PRUint32 maximumOpt,
    92   NSSArena *arenaOpt
    93 );
    95 NSS_EXTERN NSSCertificate **
    96 nssCertificateStore_FindCertificatesByNickname
    97 (
    98   nssCertificateStore *store,
    99   const NSSUTF8 *nickname,
   100   NSSCertificate *rvOpt[],
   101   PRUint32 maximumOpt,
   102   NSSArena *arenaOpt
   103 );
   105 NSS_EXTERN NSSCertificate **
   106 nssCertificateStore_FindCertificatesByEmail
   107 (
   108   nssCertificateStore *store,
   109   NSSASCII7 *email,
   110   NSSCertificate *rvOpt[],
   111   PRUint32 maximumOpt,
   112   NSSArena *arenaOpt
   113 );
   115 NSS_EXTERN NSSCertificate *
   116 nssCertificateStore_FindCertificateByIssuerAndSerialNumber
   117 (
   118   nssCertificateStore *store,
   119   NSSDER *issuer,
   120   NSSDER *serial
   121 );
   123 NSS_EXTERN NSSCertificate *
   124 nssCertificateStore_FindCertificateByEncodedCertificate
   125 (
   126   nssCertificateStore *store,
   127   NSSDER *encoding
   128 );
   130 NSS_EXTERN PRStatus
   131 nssCertificateStore_AddTrust
   132 (
   133   nssCertificateStore *store,
   134   NSSTrust *trust
   135 );
   137 NSS_EXTERN NSSTrust *
   138 nssCertificateStore_FindTrustForCertificate
   139 (
   140   nssCertificateStore *store,
   141   NSSCertificate *cert
   142 );
   144 NSS_EXTERN PRStatus
   145 nssCertificateStore_AddSMIMEProfile
   146 (
   147   nssCertificateStore *store,
   148   nssSMIMEProfile *profile
   149 );
   151 NSS_EXTERN nssSMIMEProfile *
   152 nssCertificateStore_FindSMIMEProfileForCertificate
   153 (
   154   nssCertificateStore *store,
   155   NSSCertificate *cert
   156 );
   158 NSS_EXTERN void
   159 nssCertificateStore_DumpStoreInfo
   160 (
   161   nssCertificateStore *store,
   162   void (* cert_dump_iter)(const void *, void *, void *),
   163   void *arg
   164 );
   166 PR_END_EXTERN_C
   168 #endif /* PKISTORE_H */

mercurial