зеркало из https://github.com/mozilla/gecko-dev.git
158 строки
3.2 KiB
C
158 строки
3.2 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 DEVM_H
|
|
#define DEVM_H
|
|
|
|
#ifndef BASE_H
|
|
#include "base.h"
|
|
#endif /* BASE_H */
|
|
|
|
#ifndef DEV_H
|
|
#include "dev.h"
|
|
#endif /* DEV_H */
|
|
|
|
#ifndef DEVTM_H
|
|
#include "devtm.h"
|
|
#endif /* DEVTM_H */
|
|
|
|
PR_BEGIN_EXTERN_C
|
|
|
|
/* Shortcut to cryptoki API functions. */
|
|
#define CKAPI(epv) \
|
|
((CK_FUNCTION_LIST_PTR)(epv))
|
|
|
|
NSS_EXTERN void
|
|
nssDevice_AddRef(
|
|
struct nssDeviceBaseStr *device);
|
|
|
|
NSS_EXTERN PRBool
|
|
nssDevice_Destroy(
|
|
struct nssDeviceBaseStr *device);
|
|
|
|
NSS_EXTERN PRBool
|
|
nssModule_IsThreadSafe(
|
|
NSSModule *module);
|
|
|
|
NSS_EXTERN PRBool
|
|
nssModule_IsInternal(
|
|
NSSModule *mod);
|
|
|
|
NSS_EXTERN PRBool
|
|
nssModule_IsModuleDBOnly(
|
|
NSSModule *mod);
|
|
|
|
NSS_EXTERN void *
|
|
nssModule_GetCryptokiEPV(
|
|
NSSModule *mod);
|
|
|
|
NSS_EXTERN NSSSlot *
|
|
nssSlot_Create(
|
|
CK_SLOT_ID slotId,
|
|
NSSModule *parent);
|
|
|
|
NSS_EXTERN void *
|
|
nssSlot_GetCryptokiEPV(
|
|
NSSSlot *slot);
|
|
|
|
NSS_EXTERN NSSToken *
|
|
nssToken_Create(
|
|
CK_SLOT_ID slotID,
|
|
NSSSlot *peer);
|
|
|
|
NSS_EXTERN void *
|
|
nssToken_GetCryptokiEPV(
|
|
NSSToken *token);
|
|
|
|
NSS_EXTERN nssSession *
|
|
nssToken_GetDefaultSession(
|
|
NSSToken *token);
|
|
|
|
NSS_EXTERN PRBool
|
|
nssToken_IsLoginRequired(
|
|
NSSToken *token);
|
|
|
|
NSS_EXTERN void
|
|
nssToken_Remove(
|
|
NSSToken *token);
|
|
|
|
NSS_EXTERN nssCryptokiObject *
|
|
nssCryptokiObject_Create(
|
|
NSSToken *t,
|
|
nssSession *session,
|
|
CK_OBJECT_HANDLE h);
|
|
|
|
NSS_EXTERN nssTokenObjectCache *
|
|
nssTokenObjectCache_Create(
|
|
NSSToken *token,
|
|
PRBool cacheCerts,
|
|
PRBool cacheTrust,
|
|
PRBool cacheCRLs);
|
|
|
|
NSS_EXTERN void
|
|
nssTokenObjectCache_Destroy(
|
|
nssTokenObjectCache *cache);
|
|
|
|
NSS_EXTERN void
|
|
nssTokenObjectCache_Clear(
|
|
nssTokenObjectCache *cache);
|
|
|
|
NSS_EXTERN PRBool
|
|
nssTokenObjectCache_HaveObjectClass(
|
|
nssTokenObjectCache *cache,
|
|
CK_OBJECT_CLASS objclass);
|
|
|
|
NSS_EXTERN nssCryptokiObject **
|
|
nssTokenObjectCache_FindObjectsByTemplate(
|
|
nssTokenObjectCache *cache,
|
|
CK_OBJECT_CLASS objclass,
|
|
CK_ATTRIBUTE_PTR otemplate,
|
|
CK_ULONG otlen,
|
|
PRUint32 maximumOpt,
|
|
PRStatus *statusOpt);
|
|
|
|
NSS_EXTERN PRStatus
|
|
nssTokenObjectCache_GetObjectAttributes(
|
|
nssTokenObjectCache *cache,
|
|
NSSArena *arenaOpt,
|
|
nssCryptokiObject *object,
|
|
CK_OBJECT_CLASS objclass,
|
|
CK_ATTRIBUTE_PTR atemplate,
|
|
CK_ULONG atlen);
|
|
|
|
NSS_EXTERN PRStatus
|
|
nssTokenObjectCache_ImportObject(
|
|
nssTokenObjectCache *cache,
|
|
nssCryptokiObject *object,
|
|
CK_OBJECT_CLASS objclass,
|
|
CK_ATTRIBUTE_PTR ot,
|
|
CK_ULONG otlen);
|
|
|
|
NSS_EXTERN void
|
|
nssTokenObjectCache_RemoveObject(
|
|
nssTokenObjectCache *cache,
|
|
nssCryptokiObject *object);
|
|
|
|
/* XXX allows peek back into token */
|
|
NSS_EXTERN PRStatus
|
|
nssToken_GetCachedObjectAttributes(
|
|
NSSToken *token,
|
|
NSSArena *arenaOpt,
|
|
nssCryptokiObject *object,
|
|
CK_OBJECT_CLASS objclass,
|
|
CK_ATTRIBUTE_PTR atemplate,
|
|
CK_ULONG atlen);
|
|
|
|
/* PKCS#11 stores strings in a fixed-length buffer padded with spaces. This
|
|
* function gets the length of the actual string.
|
|
*/
|
|
NSS_EXTERN PRUint32
|
|
nssPKCS11String_Length(
|
|
CK_CHAR *pkcs11str,
|
|
PRUint32 bufLen);
|
|
|
|
PR_END_EXTERN_C
|
|
|
|
#endif /* DEV_H */
|