2018-05-04 16:08:28 +02:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
2015-10-21 05:03:22 +02:00
|
|
|
|
|
|
|
#ifndef PKINSS3HACK_H
|
|
|
|
#define PKINSS3HACK_H
|
|
|
|
|
|
|
|
#ifndef NSSDEVT_H
|
|
|
|
#include "nssdevt.h"
|
|
|
|
#endif /* NSSDEVT_H */
|
|
|
|
|
|
|
|
#ifndef DEVT_H
|
|
|
|
#include "devt.h"
|
|
|
|
#endif /* DEVT_H */
|
|
|
|
|
|
|
|
#ifndef NSSPKIT_H
|
|
|
|
#include "nsspkit.h"
|
|
|
|
#endif /* NSSPKIT_H */
|
|
|
|
|
|
|
|
#include "base.h"
|
|
|
|
|
|
|
|
#include "cert.h"
|
|
|
|
|
|
|
|
PR_BEGIN_EXTERN_C
|
|
|
|
|
|
|
|
#define NSSITEM_FROM_SECITEM(nssit, secit) \
|
|
|
|
(nssit)->data = (void *)(secit)->data; \
|
|
|
|
(nssit)->size = (PRUint32)(secit)->len;
|
|
|
|
|
|
|
|
#define SECITEM_FROM_NSSITEM(secit, nssit) \
|
|
|
|
(secit)->data = (unsigned char *)(nssit)->data; \
|
|
|
|
(secit)->len = (unsigned int)(nssit)->size;
|
|
|
|
|
|
|
|
NSS_EXTERN NSSTrustDomain *
|
|
|
|
STAN_GetDefaultTrustDomain();
|
|
|
|
|
|
|
|
NSS_EXTERN NSSCryptoContext *
|
|
|
|
STAN_GetDefaultCryptoContext();
|
|
|
|
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
STAN_InitTokenForSlotInfo(NSSTrustDomain *td, PK11SlotInfo *slot);
|
|
|
|
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
STAN_ResetTokenInterator(NSSTrustDomain *td);
|
|
|
|
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
STAN_LoadDefaultNSS3TrustDomain(void);
|
|
|
|
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
STAN_Shutdown();
|
|
|
|
|
|
|
|
NSS_EXTERN SECStatus
|
|
|
|
STAN_AddModuleToDefaultTrustDomain(SECMODModule *module);
|
|
|
|
|
|
|
|
NSS_EXTERN SECStatus
|
|
|
|
STAN_RemoveModuleFromDefaultTrustDomain(SECMODModule *module);
|
|
|
|
|
|
|
|
NSS_EXTERN CERTCertificate *
|
|
|
|
STAN_ForceCERTCertificateUpdate(NSSCertificate *c);
|
|
|
|
|
|
|
|
NSS_EXTERN CERTCertificate *
|
|
|
|
STAN_GetCERTCertificate(NSSCertificate *c);
|
|
|
|
|
|
|
|
NSS_EXTERN CERTCertificate *
|
|
|
|
STAN_GetCERTCertificateOrRelease(NSSCertificate *c);
|
|
|
|
|
|
|
|
NSS_EXTERN NSSCertificate *
|
|
|
|
STAN_GetNSSCertificate(CERTCertificate *c);
|
|
|
|
|
|
|
|
NSS_EXTERN CERTCertTrust *
|
|
|
|
nssTrust_GetCERTCertTrustForCert(NSSCertificate *c, CERTCertificate *cc);
|
|
|
|
|
2018-05-04 16:08:28 +02:00
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
STAN_DeleteCertTrustMatchingSlot(NSSCertificate *c);
|
|
|
|
|
2015-10-21 05:03:22 +02:00
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust);
|
|
|
|
|
|
|
|
NSS_EXTERN PRStatus
|
cherry-picked mozilla NSS upstream changes (to rev 82de44ead36f, which is on par with 3.18):
bug1095307, bug1073330(backout), bug1084986, bug1050069, bug942172, bug1054547, bug532081, bug1096348, bug1058870, bug1093940, bug1102985, bug1112461, bug1094492, bug112029, bug1119983, bug1120685, bug1120691, bug1113632, bug863076, bug1082973, bug1124539, bug1117617, bug1117621, bug1121273, bug753136, bug921684, bug1132818, bug1125375, bug647690, bug1055441, bug1134455, bug975010, bug950369, bug1128367, bug1129573, bug1136095, bug1117897, bug1113453, bug1061725, bug1073330, bug1111901, bug1083900, bug1136095, bug1138820, bug1096741, bug1134548, bug345725, bug950348, bug950344, bug1151037, bug991783, bug1153994
2018-07-11 16:42:30 +02:00
|
|
|
nssPKIX509_GetIssuerAndSerialFromDER(NSSDER *der,
|
2015-10-21 05:03:22 +02:00
|
|
|
NSSDER *issuer, NSSDER *serial);
|
|
|
|
|
|
|
|
NSS_EXTERN char *
|
|
|
|
STAN_GetCERTCertificateName(PLArenaPool *arenaOpt, NSSCertificate *c);
|
|
|
|
|
|
|
|
NSS_EXTERN char *
|
|
|
|
STAN_GetCERTCertificateNameForInstance(PLArenaPool *arenaOpt,
|
|
|
|
NSSCertificate *c,
|
|
|
|
nssCryptokiInstance *instance);
|
|
|
|
|
|
|
|
/* exposing this */
|
|
|
|
NSS_EXTERN NSSCertificate *
|
|
|
|
NSSCertificate_Create
|
|
|
|
(
|
|
|
|
NSSArena *arenaOpt
|
|
|
|
);
|
|
|
|
|
|
|
|
/* This function is being put here because it is a hack for
|
|
|
|
* PK11_FindCertFromNickname.
|
|
|
|
*/
|
|
|
|
NSS_EXTERN NSSCertificate *
|
|
|
|
nssTrustDomain_FindBestCertificateByNicknameForToken
|
|
|
|
(
|
|
|
|
NSSTrustDomain *td,
|
|
|
|
NSSToken *token,
|
|
|
|
NSSUTF8 *name,
|
|
|
|
NSSTime *timeOpt, /* NULL for "now" */
|
|
|
|
NSSUsage *usage,
|
|
|
|
NSSPolicies *policiesOpt /* NULL for none */
|
|
|
|
);
|
|
|
|
|
|
|
|
/* This function is being put here because it is a hack for
|
|
|
|
* PK11_FindCertsFromNickname.
|
|
|
|
*/
|
|
|
|
NSS_EXTERN NSSCertificate **
|
|
|
|
nssTrustDomain_FindCertificatesByNicknameForToken
|
|
|
|
(
|
|
|
|
NSSTrustDomain *td,
|
|
|
|
NSSToken *token,
|
|
|
|
NSSUTF8 *name,
|
|
|
|
NSSCertificate *rvOpt[],
|
|
|
|
PRUint32 maximumOpt, /* 0 for no max */
|
|
|
|
NSSArena *arenaOpt
|
|
|
|
);
|
|
|
|
|
|
|
|
/* CERT_TraversePermCertsForSubject */
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
nssTrustDomain_TraverseCertificatesBySubject
|
|
|
|
(
|
|
|
|
NSSTrustDomain *td,
|
|
|
|
NSSDER *subject,
|
|
|
|
PRStatus (*callback)(NSSCertificate *c, void *arg),
|
|
|
|
void *arg
|
|
|
|
);
|
|
|
|
|
|
|
|
/* CERT_TraversePermCertsForNickname */
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
nssTrustDomain_TraverseCertificatesByNickname
|
|
|
|
(
|
|
|
|
NSSTrustDomain *td,
|
|
|
|
NSSUTF8 *nickname,
|
|
|
|
PRStatus (*callback)(NSSCertificate *c, void *arg),
|
|
|
|
void *arg
|
|
|
|
);
|
|
|
|
|
|
|
|
/* SEC_TraversePermCerts */
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
nssTrustDomain_TraverseCertificates
|
|
|
|
(
|
|
|
|
NSSTrustDomain *td,
|
|
|
|
PRStatus (*callback)(NSSCertificate *c, void *arg),
|
|
|
|
void *arg
|
|
|
|
);
|
|
|
|
|
|
|
|
/* CERT_AddTempCertToPerm */
|
|
|
|
NSS_EXTERN PRStatus
|
|
|
|
nssTrustDomain_AddTempCertToPerm
|
|
|
|
(
|
|
|
|
NSSCertificate *c
|
|
|
|
);
|
|
|
|
|
|
|
|
PR_END_EXTERN_C
|
|
|
|
|
|
|
|
#endif /* PKINSS3HACK_H */
|