diff options
Diffstat (limited to 'security/nss/lib/dev/dev.h')
-rw-r--r-- | security/nss/lib/dev/dev.h | 942 |
1 files changed, 0 insertions, 942 deletions
diff --git a/security/nss/lib/dev/dev.h b/security/nss/lib/dev/dev.h deleted file mode 100644 index 23be253e3..000000000 --- a/security/nss/lib/dev/dev.h +++ /dev/null @@ -1,942 +0,0 @@ -/* 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 DEV_H -#define DEV_H - -/* - * dev.h - * - * Low-level methods for interaction with cryptoki devices - */ - -#ifdef DEBUG -static const char DEV_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$"; -#endif /* DEBUG */ - -#ifndef NSSDEV_H -#include "nssdev.h" -#endif /* NSSDEV_H */ - -#ifndef DEVT_H -#include "devt.h" -#endif /* DEVT_H */ - -PR_BEGIN_EXTERN_C - -/* the global module list - * - * These functions are for managing the global set of modules. Trust Domains, - * etc., will draw from this set. These functions are completely internal - * and only invoked when there are changes to the global module state - * (load or unload). - * - * nss_InitializeGlobalModuleList - * nss_DestroyGlobalModuleList - * nss_GetLoadedModules - * - * nssGlobalModuleList_Add - * nssGlobalModuleList_Remove - * nssGlobalModuleList_FindModuleByName - * nssGlobalModuleList_FindSlotByName - * nssGlobalModuleList_FindTokenByName - */ - -NSS_EXTERN PRStatus -nss_InitializeGlobalModuleList -( - void -); - -NSS_EXTERN PRStatus -nss_DestroyGlobalModuleList -( - void -); - -NSS_EXTERN NSSModule ** -nss_GetLoadedModules -( - void -); - -NSS_EXTERN PRStatus -nssGlobalModuleList_Add -( - NSSModule *module -); - -NSS_EXTERN PRStatus -nssGlobalModuleList_Remove -( - NSSModule *module -); - -NSS_EXTERN NSSModule * -nssGlobalModuleList_FindModuleByName -( - NSSUTF8 *moduleName -); - -NSS_EXTERN NSSSlot * -nssGlobalModuleList_FindSlotByName -( - NSSUTF8 *slotName -); - -NSS_EXTERN NSSToken * -nssGlobalModuleList_FindTokenByName -( - NSSUTF8 *tokenName -); - -NSS_EXTERN NSSToken * -nss_GetDefaultCryptoToken -( - void -); - -NSS_EXTERN NSSToken * -nss_GetDefaultDatabaseToken -( - void -); - -/* - * |-----------|<---> NSSSlot <--> NSSToken - * | NSSModule |<---> NSSSlot <--> NSSToken - * |-----------|<---> NSSSlot <--> NSSToken - */ - -/* NSSModule - * - * nssModule_Create - * nssModule_CreateFromSpec - * nssModule_AddRef - * nssModule_GetName - * nssModule_GetSlots - * nssModule_FindSlotByName - * nssModule_FindTokenByName - * nssModule_GetCertOrder - */ - -NSS_EXTERN NSSModule * -nssModule_Create -( - NSSUTF8 *moduleOpt, - NSSUTF8 *uriOpt, - NSSUTF8 *opaqueOpt, - void *reserved -); - -/* This is to use the new loading mechanism. */ -NSS_EXTERN NSSModule * -nssModule_CreateFromSpec -( - NSSUTF8 *moduleSpec, - NSSModule *parent, - PRBool loadSubModules -); - -NSS_EXTERN PRStatus -nssModule_Destroy -( - NSSModule *mod -); - -NSS_EXTERN NSSModule * -nssModule_AddRef -( - NSSModule *mod -); - -NSS_EXTERN NSSUTF8 * -nssModule_GetName -( - NSSModule *mod -); - -NSS_EXTERN NSSSlot ** -nssModule_GetSlots -( - NSSModule *mod -); - -NSS_EXTERN NSSSlot * -nssModule_FindSlotByName -( - NSSModule *mod, - NSSUTF8 *slotName -); - -NSS_EXTERN NSSToken * -nssModule_FindTokenByName -( - NSSModule *mod, - NSSUTF8 *tokenName -); - -NSS_EXTERN PRInt32 -nssModule_GetCertOrder -( - NSSModule *module -); - -/* NSSSlot - * - * nssSlot_Destroy - * nssSlot_AddRef - * nssSlot_GetName - * nssSlot_GetTokenName - * nssSlot_IsTokenPresent - * nssSlot_IsPermanent - * nssSlot_IsFriendly - * nssSlot_IsHardware - * nssSlot_Refresh - * nssSlot_GetModule - * nssSlot_GetToken - * nssSlot_Login - * nssSlot_Logout - * nssSlot_SetPassword - * nssSlot_CreateSession - */ - -NSS_EXTERN PRStatus -nssSlot_Destroy -( - NSSSlot *slot -); - -NSS_EXTERN NSSSlot * -nssSlot_AddRef -( - NSSSlot *slot -); - -NSS_EXTERN void -nssSlot_ResetDelay -( - NSSSlot *slot -); - -NSS_EXTERN NSSUTF8 * -nssSlot_GetName -( - NSSSlot *slot -); - -NSS_EXTERN NSSUTF8 * -nssSlot_GetTokenName -( - NSSSlot *slot -); - -NSS_EXTERN NSSModule * -nssSlot_GetModule -( - NSSSlot *slot -); - -NSS_EXTERN NSSToken * -nssSlot_GetToken -( - NSSSlot *slot -); - -NSS_EXTERN PRBool -nssSlot_IsTokenPresent -( - NSSSlot *slot -); - -NSS_EXTERN PRBool -nssSlot_IsPermanent -( - NSSSlot *slot -); - -NSS_EXTERN PRBool -nssSlot_IsFriendly -( - NSSSlot *slot -); - -NSS_EXTERN PRBool -nssSlot_IsHardware -( - NSSSlot *slot -); - -NSS_EXTERN PRBool -nssSlot_IsLoggedIn -( - NSSSlot *slot -); - -NSS_EXTERN PRStatus -nssSlot_Refresh -( - NSSSlot *slot -); - -NSS_EXTERN PRStatus -nssSlot_Login -( - NSSSlot *slot, - NSSCallback *pwcb -); -extern const NSSError NSS_ERROR_INVALID_PASSWORD; -extern const NSSError NSS_ERROR_USER_CANCELED; - -NSS_EXTERN PRStatus -nssSlot_Logout -( - NSSSlot *slot, - nssSession *sessionOpt -); - -NSS_EXTERN void -nssSlot_EnterMonitor -( - NSSSlot *slot -); - -NSS_EXTERN void -nssSlot_ExitMonitor -( - NSSSlot *slot -); - -#define NSSSLOT_ASK_PASSWORD_FIRST_TIME -1 -#define NSSSLOT_ASK_PASSWORD_EVERY_TIME 0 -NSS_EXTERN void -nssSlot_SetPasswordDefaults -( - NSSSlot *slot, - PRInt32 askPasswordTimeout -); - -NSS_EXTERN PRStatus -nssSlot_SetPassword -( - NSSSlot *slot, - NSSUTF8 *oldPasswordOpt, - NSSUTF8 *newPassword -); -extern const NSSError NSS_ERROR_INVALID_PASSWORD; -extern const NSSError NSS_ERROR_USER_CANCELED; - -/* - * nssSlot_IsLoggedIn - */ - -NSS_EXTERN nssSession * -nssSlot_CreateSession -( - NSSSlot *slot, - NSSArena *arenaOpt, - PRBool readWrite /* so far, this is the only flag used */ -); - -/* NSSToken - * - * nssToken_Destroy - * nssToken_AddRef - * nssToken_GetName - * nssToken_GetModule - * nssToken_GetSlot - * nssToken_NeedsPINInitialization - * nssToken_ImportCertificate - * nssToken_ImportTrust - * nssToken_ImportCRL - * nssToken_GenerateKeyPair - * nssToken_GenerateSymmetricKey - * nssToken_DeleteStoredObject - * nssToken_FindObjects - * nssToken_FindCertificatesBySubject - * nssToken_FindCertificatesByNickname - * nssToken_FindCertificatesByEmail - * nssToken_FindCertificateByIssuerAndSerialNumber - * nssToken_FindCertificateByEncodedCertificate - * nssToken_FindTrustForCertificate - * nssToken_FindCRLsBySubject - * nssToken_FindPrivateKeys - * nssToken_FindPrivateKeyByID - * nssToken_Digest - * nssToken_BeginDigest - * nssToken_ContinueDigest - * nssToken_FinishDigest - */ - -NSS_EXTERN PRStatus -nssToken_Destroy -( - NSSToken *tok -); - -NSS_EXTERN NSSToken * -nssToken_AddRef -( - NSSToken *tok -); - -NSS_EXTERN NSSUTF8 * -nssToken_GetName -( - NSSToken *tok -); - -NSS_EXTERN NSSModule * -nssToken_GetModule -( - NSSToken *token -); - -NSS_EXTERN NSSSlot * -nssToken_GetSlot -( - NSSToken *tok -); - -NSS_EXTERN PRBool -nssToken_NeedsPINInitialization -( - NSSToken *token -); - -NSS_EXTERN nssCryptokiObject * -nssToken_ImportCertificate -( - NSSToken *tok, - nssSession *sessionOpt, - NSSCertificateType certType, - NSSItem *id, - const NSSUTF8 *nickname, - NSSDER *encoding, - NSSDER *issuer, - NSSDER *subject, - NSSDER *serial, - NSSASCII7 *emailAddr, - PRBool asTokenObject -); - -NSS_EXTERN nssCryptokiObject * -nssToken_ImportTrust -( - NSSToken *tok, - nssSession *sessionOpt, - NSSDER *certEncoding, - NSSDER *certIssuer, - NSSDER *certSerial, - nssTrustLevel serverAuth, - nssTrustLevel clientAuth, - nssTrustLevel codeSigning, - nssTrustLevel emailProtection, - PRBool stepUpApproved, - PRBool asTokenObject -); - -NSS_EXTERN nssCryptokiObject * -nssToken_ImportCRL -( - NSSToken *token, - nssSession *sessionOpt, - NSSDER *subject, - NSSDER *encoding, - PRBool isKRL, - NSSUTF8 *url, - PRBool asTokenObject -); - -/* Permanently remove an object from the token. */ -NSS_EXTERN PRStatus -nssToken_DeleteStoredObject -( - nssCryptokiObject *instance -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindObjects -( - NSSToken *token, - nssSession *sessionOpt, - CK_OBJECT_CLASS objclass, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindCertificatesBySubject -( - NSSToken *token, - nssSession *sessionOpt, - NSSDER *subject, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindCertificatesByNickname -( - NSSToken *token, - nssSession *sessionOpt, - const NSSUTF8 *name, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindCertificatesByEmail -( - NSSToken *token, - nssSession *sessionOpt, - NSSASCII7 *email, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindCertificatesByID -( - NSSToken *token, - nssSession *sessionOpt, - NSSItem *id, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject * -nssToken_FindCertificateByIssuerAndSerialNumber -( - NSSToken *token, - nssSession *sessionOpt, - NSSDER *issuer, - NSSDER *serial, - nssTokenSearchType searchType, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject * -nssToken_FindCertificateByEncodedCertificate -( - NSSToken *token, - nssSession *sessionOpt, - NSSBER *encodedCertificate, - nssTokenSearchType searchType, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject * -nssToken_FindTrustForCertificate -( - NSSToken *token, - nssSession *sessionOpt, - NSSDER *certEncoding, - NSSDER *certIssuer, - NSSDER *certSerial, - nssTokenSearchType searchType -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindCRLsBySubject -( - NSSToken *token, - nssSession *sessionOpt, - NSSDER *subject, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject ** -nssToken_FindPrivateKeys -( - NSSToken *token, - nssSession *sessionOpt, - nssTokenSearchType searchType, - PRUint32 maximumOpt, - PRStatus *statusOpt -); - -NSS_EXTERN nssCryptokiObject * -nssToken_FindPrivateKeyByID -( - NSSToken *token, - nssSession *sessionOpt, - NSSItem *keyID -); - -NSS_EXTERN nssCryptokiObject * -nssToken_FindPublicKeyByID -( - NSSToken *token, - nssSession *sessionOpt, - NSSItem *keyID -); - -NSS_EXTERN NSSItem * -nssToken_Digest -( - NSSToken *tok, - nssSession *sessionOpt, - NSSAlgorithmAndParameters *ap, - NSSItem *data, - NSSItem *rvOpt, - NSSArena *arenaOpt -); - -NSS_EXTERN PRStatus -nssToken_BeginDigest -( - NSSToken *tok, - nssSession *sessionOpt, - NSSAlgorithmAndParameters *ap -); - -NSS_EXTERN PRStatus -nssToken_ContinueDigest -( - NSSToken *tok, - nssSession *sessionOpt, - NSSItem *item -); - -NSS_EXTERN NSSItem * -nssToken_FinishDigest -( - NSSToken *tok, - nssSession *sessionOpt, - NSSItem *rvOpt, - NSSArena *arenaOpt -); - -/* nssSession - * - * nssSession_Destroy - * nssSession_EnterMonitor - * nssSession_ExitMonitor - * nssSession_IsReadWrite - */ - -NSS_EXTERN PRStatus -nssSession_Destroy -( - nssSession *s -); - -/* would like to inline */ -NSS_EXTERN PRStatus -nssSession_EnterMonitor -( - nssSession *s -); - -/* would like to inline */ -NSS_EXTERN PRStatus -nssSession_ExitMonitor -( - nssSession *s -); - -/* would like to inline */ -NSS_EXTERN PRBool -nssSession_IsReadWrite -( - nssSession *s -); - -/* nssCryptokiObject - * - * An object living on a cryptoki token. - * Not really proper to mix up the object types just because - * nssCryptokiObject itself is generic, but doing so anyway. - * - * nssCryptokiObject_Destroy - * nssCryptokiObject_Equal - * nssCryptokiObject_Clone - * nssCryptokiCertificate_GetAttributes - * nssCryptokiPrivateKey_GetAttributes - * nssCryptokiPublicKey_GetAttributes - * nssCryptokiTrust_GetAttributes - * nssCryptokiCRL_GetAttributes - */ - -NSS_EXTERN void -nssCryptokiObject_Destroy -( - nssCryptokiObject *object -); - -NSS_EXTERN PRBool -nssCryptokiObject_Equal -( - nssCryptokiObject *object1, - nssCryptokiObject *object2 -); - -NSS_EXTERN nssCryptokiObject * -nssCryptokiObject_Clone -( - nssCryptokiObject *object -); - -NSS_EXTERN PRStatus -nssCryptokiCertificate_GetAttributes -( - nssCryptokiObject *object, - nssSession *sessionOpt, - NSSArena *arenaOpt, - NSSCertificateType *certTypeOpt, - NSSItem *idOpt, - NSSDER *encodingOpt, - NSSDER *issuerOpt, - NSSDER *serialOpt, - NSSDER *subjectOpt -); - -NSS_EXTERN PRStatus -nssCryptokiTrust_GetAttributes -( - nssCryptokiObject *trustObject, - nssSession *sessionOpt, - NSSItem *sha1_hash, - nssTrustLevel *serverAuth, - nssTrustLevel *clientAuth, - nssTrustLevel *codeSigning, - nssTrustLevel *emailProtection, - PRBool *stepUpApproved -); - -NSS_EXTERN PRStatus -nssCryptokiCRL_GetAttributes -( - nssCryptokiObject *crlObject, - nssSession *sessionOpt, - NSSArena *arenaOpt, - NSSItem *encodingOpt, - NSSItem * subjectOpt, - CK_ULONG * crl_class, - NSSUTF8 **urlOpt, - PRBool *isKRLOpt -); - -/* I'm including this to handle import of certificates in NSS 3.5. This - * function will set the cert-related attributes of a key, in order to - * associate it with a cert. Does it stay like this for 4.0? - */ -NSS_EXTERN PRStatus -nssCryptokiPrivateKey_SetCertificate -( - nssCryptokiObject *keyObject, - nssSession *sessionOpt, - const NSSUTF8 *nickname, - NSSItem *id, - NSSDER *subject -); - -NSS_EXTERN void -nssModuleArray_Destroy -( - NSSModule **modules -); - -/* nssSlotArray - * - * nssSlotArray_Destroy - */ - -NSS_EXTERN void -nssSlotArray_Destroy -( - NSSSlot **slots -); - -/* nssTokenArray - * - * nssTokenArray_Destroy - */ - -NSS_EXTERN void -nssTokenArray_Destroy -( - NSSToken **tokens -); - -/* nssCryptokiObjectArray - * - * nssCryptokiObjectArray_Destroy - */ -NSS_EXTERN void -nssCryptokiObjectArray_Destroy -( - nssCryptokiObject **object -); - -/* nssSlotList -* - * An ordered list of slots. The order can be anything, it is set in the - * Add methods. Perhaps it should be CreateInCertOrder, ...? - * - * nssSlotList_Create - * nssSlotList_Destroy - * nssSlotList_Add - * nssSlotList_AddModuleSlots - * nssSlotList_GetSlots - * nssSlotList_FindSlotByName - * nssSlotList_FindTokenByName - * nssSlotList_GetBestSlot - * nssSlotList_GetBestSlotForAlgorithmAndParameters - * nssSlotList_GetBestSlotForAlgorithmsAndParameters - */ - -/* nssSlotList_Create - */ -NSS_EXTERN nssSlotList * -nssSlotList_Create -( - NSSArena *arenaOpt -); - -/* nssSlotList_Destroy - */ -NSS_EXTERN void -nssSlotList_Destroy -( - nssSlotList *slotList -); - -/* nssSlotList_Add - * - * Add the given slot in the given order. - */ -NSS_EXTERN PRStatus -nssSlotList_Add -( - nssSlotList *slotList, - NSSSlot *slot, - PRUint32 order -); - -/* nssSlotList_AddModuleSlots - * - * Add all slots in the module, in the given order (the slots will have - * equal weight). - */ -NSS_EXTERN PRStatus -nssSlotList_AddModuleSlots -( - nssSlotList *slotList, - NSSModule *module, - PRUint32 order -); - -/* nssSlotList_GetSlots - */ -NSS_EXTERN NSSSlot ** -nssSlotList_GetSlots -( - nssSlotList *slotList -); - -/* nssSlotList_FindSlotByName - */ -NSS_EXTERN NSSSlot * -nssSlotList_FindSlotByName -( - nssSlotList *slotList, - NSSUTF8 *slotName -); - -/* nssSlotList_FindTokenByName - */ -NSS_EXTERN NSSToken * -nssSlotList_FindTokenByName -( - nssSlotList *slotList, - NSSUTF8 *tokenName -); - -/* nssSlotList_GetBestSlot - * - * The best slot is the highest ranking in order, i.e., the first in the - * list. - */ -NSS_EXTERN NSSSlot * -nssSlotList_GetBestSlot -( - nssSlotList *slotList -); - -/* nssSlotList_GetBestSlotForAlgorithmAndParameters - * - * Highest-ranking slot than can handle algorithm/parameters. - */ -NSS_EXTERN NSSSlot * -nssSlotList_GetBestSlotForAlgorithmAndParameters -( - nssSlotList *slotList, - NSSAlgorithmAndParameters *ap -); - -/* nssSlotList_GetBestSlotForAlgorithmsAndParameters - * - * Highest-ranking slot than can handle all algorithms/parameters. - */ -NSS_EXTERN NSSSlot * -nssSlotList_GetBestSlotForAlgorithmsAndParameters -( - nssSlotList *slotList, - NSSAlgorithmAndParameters **ap -); - -NSS_EXTERN PRBool -nssToken_IsPresent -( - NSSToken *token -); - -NSS_EXTERN nssSession * -nssToken_GetDefaultSession -( - NSSToken *token -); - -NSS_EXTERN PRStatus -nssToken_GetTrustOrder -( - NSSToken *tok -); - -NSS_EXTERN PRStatus -nssToken_NotifyCertsNotVisible -( - NSSToken *tok -); - -NSS_EXTERN PRStatus -nssToken_TraverseCertificates -( - NSSToken *token, - nssSession *sessionOpt, - nssTokenSearchType searchType, - PRStatus (* callback)(nssCryptokiObject *instance, void *arg), - void *arg -); - -NSS_EXTERN PRBool -nssToken_IsPrivateKeyAvailable -( - NSSToken *token, - NSSCertificate *c, - nssCryptokiObject *instance -); - -PR_END_EXTERN_C - -#endif /* DEV_H */ |