tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pki3hack.h (4001B)


      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/. */
      4 
      5 #ifndef PKINSS3HACK_H
      6 #define PKINSS3HACK_H
      7 
      8 #ifndef NSSDEVT_H
      9 #include "nssdevt.h"
     10 #endif /* NSSDEVT_H */
     11 
     12 #ifndef DEVT_H
     13 #include "devt.h"
     14 #endif /* DEVT_H */
     15 
     16 #ifndef NSSPKIT_H
     17 #include "nsspkit.h"
     18 #endif /* NSSPKIT_H */
     19 
     20 #include "base.h"
     21 
     22 #include "cert.h"
     23 
     24 PR_BEGIN_EXTERN_C
     25 
     26 #define NSSITEM_FROM_SECITEM(nssit, secit) \
     27    (nssit)->data = (void *)(secit)->data; \
     28    (nssit)->size = (PRUint32)(secit)->len;
     29 
     30 #define SECITEM_FROM_NSSITEM(secit, nssit)          \
     31    (secit)->data = (unsigned char *)(nssit)->data; \
     32    (secit)->len = (unsigned int)(nssit)->size;
     33 
     34 NSS_EXTERN NSSTrustDomain *
     35 STAN_GetDefaultTrustDomain();
     36 
     37 NSS_EXTERN NSSCryptoContext *
     38 STAN_GetDefaultCryptoContext();
     39 
     40 NSS_EXTERN PRStatus
     41 STAN_InitTokenForSlotInfo(NSSTrustDomain *td, PK11SlotInfo *slot);
     42 
     43 NSS_EXTERN PRStatus
     44 STAN_ResetTokenInterator(NSSTrustDomain *td);
     45 
     46 NSS_EXTERN PRStatus
     47 STAN_LoadDefaultNSS3TrustDomain(void);
     48 
     49 NSS_EXTERN PRStatus
     50 STAN_Shutdown();
     51 
     52 NSS_EXTERN SECStatus
     53 STAN_AddModuleToDefaultTrustDomain(SECMODModule *module);
     54 
     55 NSS_EXTERN SECStatus
     56 STAN_RemoveModuleFromDefaultTrustDomain(SECMODModule *module);
     57 
     58 NSS_EXTERN CERTCertificate *
     59 STAN_ForceCERTCertificateUpdate(NSSCertificate *c);
     60 
     61 NSS_EXTERN CERTCertificate *
     62 STAN_GetCERTCertificate(NSSCertificate *c);
     63 
     64 NSS_EXTERN CERTCertificate *
     65 STAN_GetCERTCertificateOrRelease(NSSCertificate *c);
     66 
     67 NSS_EXTERN NSSCertificate *
     68 STAN_GetNSSCertificate(CERTCertificate *c);
     69 
     70 NSS_EXTERN CERTCertTrust *
     71 nssTrust_GetCERTCertTrustForCert(NSSCertificate *c, CERTCertificate *cc);
     72 
     73 NSS_EXTERN PRBool
     74 nssTrust_HandleTrustForCERTCert(CERTCertificate *cert, CERTCertTrust *trustPtr);
     75 
     76 NSS_EXTERN PRStatus
     77 STAN_DeleteCertTrustMatchingSlot(NSSCertificate *c);
     78 
     79 NSS_EXTERN PRStatus
     80 STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust);
     81 
     82 NSS_EXTERN PRStatus
     83 nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der,
     84                                     NSSDER *issuer, NSSDER *serial);
     85 
     86 NSS_EXTERN char *
     87 STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c);
     88 
     89 NSS_EXTERN char *
     90 STAN_GetCERTCertificateNameForInstance(PLArenaPool *arenaOpt,
     91                                       NSSCertificate *c,
     92                                       nssCryptokiInstance *instance);
     93 
     94 /* exposing this */
     95 NSS_EXTERN NSSCertificate *
     96 NSSCertificate_Create(NSSArena *arenaOpt);
     97 
     98 /* This function is being put here because it is a hack for
     99 * PK11_FindCertFromNickname.
    100 */
    101 NSS_EXTERN NSSCertificate *
    102 nssTrustDomain_FindBestCertificateByNicknameForToken(
    103    NSSTrustDomain *td,
    104    NSSToken *token,
    105    NSSUTF8 *name,
    106    NSSTime *timeOpt, /* NULL for "now" */
    107    NSSUsage *usage,
    108    NSSPolicies *policiesOpt /* NULL for none */
    109 );
    110 
    111 /* This function is being put here because it is a hack for
    112 * PK11_FindCertsFromNickname.
    113 */
    114 NSS_EXTERN NSSCertificate **
    115 nssTrustDomain_FindCertificatesByNicknameForToken(
    116    NSSTrustDomain *td,
    117    NSSToken *token,
    118    NSSUTF8 *name,
    119    NSSCertificate *rvOpt[],
    120    PRUint32 maximumOpt, /* 0 for no max */
    121    NSSArena *arenaOpt);
    122 
    123 /* CERT_TraversePermCertsForSubject */
    124 NSS_EXTERN PRStatus
    125 nssTrustDomain_TraverseCertificatesBySubject(
    126    NSSTrustDomain *td,
    127    NSSDER *subject,
    128    PRStatus (*callback)(NSSCertificate *c, void *arg),
    129    void *arg);
    130 
    131 /* CERT_TraversePermCertsForNickname */
    132 NSS_EXTERN PRStatus
    133 nssTrustDomain_TraverseCertificatesByNickname(
    134    NSSTrustDomain *td,
    135    NSSUTF8 *nickname,
    136    PRStatus (*callback)(NSSCertificate *c, void *arg),
    137    void *arg);
    138 
    139 /* SEC_TraversePermCerts */
    140 NSS_EXTERN PRStatus
    141 nssTrustDomain_TraverseCertificates(
    142    NSSTrustDomain *td,
    143    PRStatus (*callback)(NSSCertificate *c, void *arg),
    144    void *arg);
    145 
    146 /* CERT_AddTempCertToPerm */
    147 NSS_EXTERN PRStatus
    148 nssTrustDomain_AddTempCertToPerm(NSSCertificate *c);
    149 
    150 PR_END_EXTERN_C
    151 
    152 #endif /* PKINSS3HACK_H */