michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef PKINSS3HACK_H michael@0: #define PKINSS3HACK_H michael@0: michael@0: #ifndef NSSDEVT_H michael@0: #include "nssdevt.h" michael@0: #endif /* NSSDEVT_H */ michael@0: michael@0: #ifndef DEVT_H michael@0: #include "devt.h" michael@0: #endif /* DEVT_H */ michael@0: michael@0: #ifndef NSSPKIT_H michael@0: #include "nsspkit.h" michael@0: #endif /* NSSPKIT_H */ michael@0: michael@0: #include "base.h" michael@0: michael@0: #include "cert.h" michael@0: michael@0: PR_BEGIN_EXTERN_C michael@0: michael@0: #define NSSITEM_FROM_SECITEM(nssit, secit) \ michael@0: (nssit)->data = (void *)(secit)->data; \ michael@0: (nssit)->size = (PRUint32)(secit)->len; michael@0: michael@0: #define SECITEM_FROM_NSSITEM(secit, nssit) \ michael@0: (secit)->data = (unsigned char *)(nssit)->data; \ michael@0: (secit)->len = (unsigned int)(nssit)->size; michael@0: michael@0: NSS_EXTERN NSSTrustDomain * michael@0: STAN_GetDefaultTrustDomain(); michael@0: michael@0: NSS_EXTERN NSSCryptoContext * michael@0: STAN_GetDefaultCryptoContext(); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: STAN_InitTokenForSlotInfo(NSSTrustDomain *td, PK11SlotInfo *slot); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: STAN_ResetTokenInterator(NSSTrustDomain *td); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: STAN_LoadDefaultNSS3TrustDomain(void); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: STAN_Shutdown(); michael@0: michael@0: NSS_EXTERN SECStatus michael@0: STAN_AddModuleToDefaultTrustDomain(SECMODModule *module); michael@0: michael@0: NSS_EXTERN SECStatus michael@0: STAN_RemoveModuleFromDefaultTrustDomain(SECMODModule *module); michael@0: michael@0: NSS_EXTERN CERTCertificate * michael@0: STAN_ForceCERTCertificateUpdate(NSSCertificate *c); michael@0: michael@0: NSS_EXTERN CERTCertificate * michael@0: STAN_GetCERTCertificate(NSSCertificate *c); michael@0: michael@0: NSS_EXTERN CERTCertificate * michael@0: STAN_GetCERTCertificateOrRelease(NSSCertificate *c); michael@0: michael@0: NSS_EXTERN NSSCertificate * michael@0: STAN_GetNSSCertificate(CERTCertificate *c); michael@0: michael@0: NSS_EXTERN CERTCertTrust * michael@0: nssTrust_GetCERTCertTrustForCert(NSSCertificate *c, CERTCertificate *cc); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: STAN_DeleteCertTrustMatchingSlot(NSSCertificate *c); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust); michael@0: michael@0: NSS_EXTERN PRStatus michael@0: nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der, NSSArena *arena, michael@0: NSSDER *issuer, NSSDER *serial); michael@0: michael@0: NSS_EXTERN char * michael@0: STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c); michael@0: michael@0: NSS_EXTERN char * michael@0: STAN_GetCERTCertificateNameForInstance(PLArenaPool *arenaOpt, michael@0: NSSCertificate *c, michael@0: nssCryptokiInstance *instance); michael@0: michael@0: /* exposing this */ michael@0: NSS_EXTERN NSSCertificate * michael@0: NSSCertificate_Create michael@0: ( michael@0: NSSArena *arenaOpt michael@0: ); michael@0: michael@0: /* This function is being put here because it is a hack for michael@0: * PK11_FindCertFromNickname. michael@0: */ michael@0: NSS_EXTERN NSSCertificate * michael@0: nssTrustDomain_FindBestCertificateByNicknameForToken michael@0: ( michael@0: NSSTrustDomain *td, michael@0: NSSToken *token, michael@0: NSSUTF8 *name, michael@0: NSSTime *timeOpt, /* NULL for "now" */ michael@0: NSSUsage *usage, michael@0: NSSPolicies *policiesOpt /* NULL for none */ michael@0: ); michael@0: michael@0: /* This function is being put here because it is a hack for michael@0: * PK11_FindCertsFromNickname. michael@0: */ michael@0: NSS_EXTERN NSSCertificate ** michael@0: nssTrustDomain_FindCertificatesByNicknameForToken michael@0: ( michael@0: NSSTrustDomain *td, michael@0: NSSToken *token, michael@0: NSSUTF8 *name, michael@0: NSSCertificate *rvOpt[], michael@0: PRUint32 maximumOpt, /* 0 for no max */ michael@0: NSSArena *arenaOpt michael@0: ); michael@0: michael@0: /* CERT_TraversePermCertsForSubject */ michael@0: NSS_EXTERN PRStatus michael@0: nssTrustDomain_TraverseCertificatesBySubject michael@0: ( michael@0: NSSTrustDomain *td, michael@0: NSSDER *subject, michael@0: PRStatus (*callback)(NSSCertificate *c, void *arg), michael@0: void *arg michael@0: ); michael@0: michael@0: /* CERT_TraversePermCertsForNickname */ michael@0: NSS_EXTERN PRStatus michael@0: nssTrustDomain_TraverseCertificatesByNickname michael@0: ( michael@0: NSSTrustDomain *td, michael@0: NSSUTF8 *nickname, michael@0: PRStatus (*callback)(NSSCertificate *c, void *arg), michael@0: void *arg michael@0: ); michael@0: michael@0: /* SEC_TraversePermCerts */ michael@0: NSS_EXTERN PRStatus michael@0: nssTrustDomain_TraverseCertificates michael@0: ( michael@0: NSSTrustDomain *td, michael@0: PRStatus (*callback)(NSSCertificate *c, void *arg), michael@0: void *arg michael@0: ); michael@0: michael@0: /* CERT_AddTempCertToPerm */ michael@0: NSS_EXTERN PRStatus michael@0: nssTrustDomain_AddTempCertToPerm michael@0: ( michael@0: NSSCertificate *c michael@0: ); michael@0: michael@0: PR_END_EXTERN_C michael@0: michael@0: #endif /* PKINSS3HACK_H */