mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-10 18:00:15 +01:00
169 lines
3.4 KiB
C
169 lines
3.4 KiB
C
/* 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/. */
|
|
|
|
#ifndef PKISTORE_H
|
|
#define PKISTORE_H
|
|
|
|
#ifndef NSSPKIT_H
|
|
#include "nsspkit.h"
|
|
#endif /* NSSPKIT_H */
|
|
|
|
#ifndef BASE_H
|
|
#include "base.h"
|
|
#endif /* BASE_H */
|
|
|
|
PR_BEGIN_EXTERN_C
|
|
|
|
/*
|
|
* PKI Stores
|
|
*
|
|
* This is a set of routines for managing local stores of PKI objects.
|
|
* Currently, the only application is in crypto contexts, where the
|
|
* certificate store is used. In the future, methods should be added
|
|
* here for storing local references to keys.
|
|
*/
|
|
|
|
/*
|
|
* nssCertificateStore
|
|
*
|
|
* Manages local store of certificate, trust, and S/MIME profile objects.
|
|
* Within a crypto context, mappings of cert to trust and cert to S/MIME
|
|
* profile are always 1-1. Therefore, it is reasonable to store all objects
|
|
* in a single collection, indexed by the certificate.
|
|
*/
|
|
|
|
NSS_EXTERN nssCertificateStore *
|
|
nssCertificateStore_Create
|
|
(
|
|
NSSArena *arenaOpt
|
|
);
|
|
|
|
NSS_EXTERN PRStatus
|
|
nssCertificateStore_Destroy
|
|
(
|
|
nssCertificateStore *store
|
|
);
|
|
|
|
/* Atomic Find cert in store, or add this cert to the store.
|
|
** Ref counts properly maintained.
|
|
*/
|
|
NSS_EXTERN NSSCertificate *
|
|
nssCertificateStore_FindOrAdd
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSCertificate *c
|
|
);
|
|
|
|
NSS_EXTERN void
|
|
nssCertificateStore_RemoveCertLOCKED
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSCertificate *cert
|
|
);
|
|
|
|
struct nssCertificateStoreTraceStr {
|
|
nssCertificateStore* store;
|
|
PZLock* lock;
|
|
PRBool locked;
|
|
PRBool unlocked;
|
|
};
|
|
|
|
typedef struct nssCertificateStoreTraceStr nssCertificateStoreTrace;
|
|
|
|
NSS_EXTERN void
|
|
nssCertificateStore_Lock (
|
|
nssCertificateStore *store, nssCertificateStoreTrace* out
|
|
);
|
|
|
|
NSS_EXTERN void
|
|
nssCertificateStore_Unlock (
|
|
nssCertificateStore *store, const nssCertificateStoreTrace* in,
|
|
nssCertificateStoreTrace* out
|
|
);
|
|
|
|
NSS_EXTERN NSSCertificate **
|
|
nssCertificateStore_FindCertificatesBySubject
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSDER *subject,
|
|
NSSCertificate *rvOpt[],
|
|
PRUint32 maximumOpt,
|
|
NSSArena *arenaOpt
|
|
);
|
|
|
|
NSS_EXTERN NSSCertificate **
|
|
nssCertificateStore_FindCertificatesByNickname
|
|
(
|
|
nssCertificateStore *store,
|
|
const NSSUTF8 *nickname,
|
|
NSSCertificate *rvOpt[],
|
|
PRUint32 maximumOpt,
|
|
NSSArena *arenaOpt
|
|
);
|
|
|
|
NSS_EXTERN NSSCertificate **
|
|
nssCertificateStore_FindCertificatesByEmail
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSASCII7 *email,
|
|
NSSCertificate *rvOpt[],
|
|
PRUint32 maximumOpt,
|
|
NSSArena *arenaOpt
|
|
);
|
|
|
|
NSS_EXTERN NSSCertificate *
|
|
nssCertificateStore_FindCertificateByIssuerAndSerialNumber
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSDER *issuer,
|
|
NSSDER *serial
|
|
);
|
|
|
|
NSS_EXTERN NSSCertificate *
|
|
nssCertificateStore_FindCertificateByEncodedCertificate
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSDER *encoding
|
|
);
|
|
|
|
NSS_EXTERN PRStatus
|
|
nssCertificateStore_AddTrust
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSTrust *trust
|
|
);
|
|
|
|
NSS_EXTERN NSSTrust *
|
|
nssCertificateStore_FindTrustForCertificate
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSCertificate *cert
|
|
);
|
|
|
|
NSS_EXTERN PRStatus
|
|
nssCertificateStore_AddSMIMEProfile
|
|
(
|
|
nssCertificateStore *store,
|
|
nssSMIMEProfile *profile
|
|
);
|
|
|
|
NSS_EXTERN nssSMIMEProfile *
|
|
nssCertificateStore_FindSMIMEProfileForCertificate
|
|
(
|
|
nssCertificateStore *store,
|
|
NSSCertificate *cert
|
|
);
|
|
|
|
NSS_EXTERN void
|
|
nssCertificateStore_DumpStoreInfo
|
|
(
|
|
nssCertificateStore *store,
|
|
void (* cert_dump_iter)(const void *, void *, void *),
|
|
void *arg
|
|
);
|
|
|
|
PR_END_EXTERN_C
|
|
|
|
#endif /* PKISTORE_H */
|