diff -r 000000000000 -r 6474c204b198 security/nss/lib/dev/devm.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/security/nss/lib/dev/devm.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,205 @@ +/* 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 */