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 PRStatus 74 STAN_DeleteCertTrustMatchingSlot(NSSCertificate *c); 75 76 NSS_EXTERN PRStatus 77 STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust); 78 79 NSS_EXTERN PRStatus 80 nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der, 81 NSSDER *issuer, NSSDER *serial); 82 83 NSS_EXTERN char * 84 STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c); 85 86 NSS_EXTERN char * 87 STAN_GetCERTCertificateNameForInstance(PLArenaPool *arenaOpt, 88 NSSCertificate *c, 89 nssCryptokiInstance *instance); 90 91 /* exposing this */ 92 NSS_EXTERN NSSCertificate * 93 NSSCertificate_Create(NSSArena *arenaOpt); 94 95 /* This function is being put here because it is a hack for 96 * PK11_FindCertFromNickname. 97 */ 98 NSS_EXTERN NSSCertificate * 99 nssTrustDomain_FindBestCertificateByNicknameForToken( 100 NSSTrustDomain *td, 101 NSSToken *token, 102 NSSUTF8 *name, 103 NSSTime *timeOpt, /* NULL for "now" */ 104 NSSUsage *usage, 105 NSSPolicies *policiesOpt /* NULL for none */ 106 ); 107 108 /* This function is being put here because it is a hack for 109 * PK11_FindCertsFromNickname. 110 */ 111 NSS_EXTERN NSSCertificate ** 112 nssTrustDomain_FindCertificatesByNicknameForToken( 113 NSSTrustDomain *td, 114 NSSToken *token, 115 NSSUTF8 *name, 116 NSSCertificate *rvOpt[], 117 PRUint32 maximumOpt, /* 0 for no max */ 118 NSSArena *arenaOpt); 119 120 /* CERT_TraversePermCertsForSubject */ 121 NSS_EXTERN PRStatus 122 nssTrustDomain_TraverseCertificatesBySubject( 123 NSSTrustDomain *td, 124 NSSDER *subject, 125 PRStatus (*callback)(NSSCertificate *c, void *arg), 126 void *arg); 127 128 /* CERT_TraversePermCertsForNickname */ 129 NSS_EXTERN PRStatus 130 nssTrustDomain_TraverseCertificatesByNickname( 131 NSSTrustDomain *td, 132 NSSUTF8 *nickname, 133 PRStatus (*callback)(NSSCertificate *c, void *arg), 134 void *arg); 135 136 /* SEC_TraversePermCerts */ 137 NSS_EXTERN PRStatus 138 nssTrustDomain_TraverseCertificates( 139 NSSTrustDomain *td, 140 PRStatus (*callback)(NSSCertificate *c, void *arg), 141 void *arg); 142 143 /* CERT_AddTempCertToPerm */ 144 NSS_EXTERN PRStatus 145 nssTrustDomain_AddTempCertToPerm(NSSCertificate *c); 146 147 PR_END_EXTERN_C 148 149 #endif /* PKINSS3HACK_H */ 150