security/nss/lib/dev/dev.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #ifndef DEV_H
     6 #define DEV_H
     8 /*
     9  * dev.h
    10  *
    11  * Low-level methods for interaction with cryptoki devices
    12  */
    14 #ifndef NSSDEV_H
    15 #include "nssdev.h"
    16 #endif /* NSSDEV_H */
    18 #ifndef DEVT_H
    19 #include "devt.h"
    20 #endif /* DEVT_H */
    22 PR_BEGIN_EXTERN_C
    24 /* the global module list
    25  *
    26  * These functions are for managing the global set of modules.  Trust Domains,
    27  * etc., will draw from this set.  These functions are completely internal
    28  * and only invoked when there are changes to the global module state
    29  * (load or unload).
    30  *
    31  * nss_InitializeGlobalModuleList
    32  * nss_DestroyGlobalModuleList
    33  * nss_GetLoadedModules
    34  *
    35  * nssGlobalModuleList_Add
    36  * nssGlobalModuleList_Remove
    37  * nssGlobalModuleList_FindModuleByName
    38  * nssGlobalModuleList_FindSlotByName
    39  * nssGlobalModuleList_FindTokenByName
    40  */
    42 NSS_EXTERN PRStatus
    43 nss_InitializeGlobalModuleList
    44 (
    45   void
    46 );
    48 NSS_EXTERN PRStatus
    49 nss_DestroyGlobalModuleList
    50 (
    51   void
    52 );
    54 NSS_EXTERN NSSModule **
    55 nss_GetLoadedModules
    56 (
    57   void
    58 );
    60 NSS_EXTERN PRStatus
    61 nssGlobalModuleList_Add
    62 (
    63   NSSModule *module
    64 );
    66 NSS_EXTERN PRStatus
    67 nssGlobalModuleList_Remove
    68 (
    69   NSSModule *module
    70 );
    72 NSS_EXTERN NSSModule *
    73 nssGlobalModuleList_FindModuleByName
    74 (
    75   NSSUTF8 *moduleName
    76 );
    78 NSS_EXTERN NSSSlot *
    79 nssGlobalModuleList_FindSlotByName
    80 (
    81   NSSUTF8 *slotName
    82 );
    84 NSS_EXTERN NSSToken *
    85 nssGlobalModuleList_FindTokenByName
    86 (
    87   NSSUTF8 *tokenName
    88 );
    90 NSS_EXTERN NSSToken *
    91 nss_GetDefaultCryptoToken
    92 (
    93   void
    94 );
    96 NSS_EXTERN NSSToken *
    97 nss_GetDefaultDatabaseToken
    98 (
    99   void
   100 );
   102 /*
   103  *  |-----------|<---> NSSSlot <--> NSSToken
   104  *  | NSSModule |<---> NSSSlot <--> NSSToken
   105  *  |-----------|<---> NSSSlot <--> NSSToken
   106  */
   108 /* NSSModule
   109  *
   110  * nssModule_Create
   111  * nssModule_CreateFromSpec
   112  * nssModule_AddRef
   113  * nssModule_GetName
   114  * nssModule_GetSlots
   115  * nssModule_FindSlotByName
   116  * nssModule_FindTokenByName
   117  * nssModule_GetCertOrder
   118  */
   120 NSS_EXTERN NSSModule *
   121 nssModule_Create
   122 (
   123   NSSUTF8 *moduleOpt,
   124   NSSUTF8 *uriOpt,
   125   NSSUTF8 *opaqueOpt,
   126   void    *reserved
   127 );
   129 /* This is to use the new loading mechanism. */
   130 NSS_EXTERN NSSModule *
   131 nssModule_CreateFromSpec
   132 (
   133   NSSUTF8 *moduleSpec,
   134   NSSModule *parent,
   135   PRBool loadSubModules
   136 );
   138 NSS_EXTERN PRStatus
   139 nssModule_Destroy
   140 (
   141   NSSModule *mod
   142 );
   144 NSS_EXTERN NSSModule *
   145 nssModule_AddRef
   146 (
   147   NSSModule *mod
   148 );
   150 NSS_EXTERN NSSUTF8 *
   151 nssModule_GetName
   152 (
   153   NSSModule *mod
   154 );
   156 NSS_EXTERN NSSSlot **
   157 nssModule_GetSlots
   158 (
   159   NSSModule *mod
   160 );
   162 NSS_EXTERN NSSSlot *
   163 nssModule_FindSlotByName
   164 (
   165   NSSModule *mod,
   166   NSSUTF8 *slotName
   167 );
   169 NSS_EXTERN NSSToken *
   170 nssModule_FindTokenByName
   171 (
   172   NSSModule *mod,
   173   NSSUTF8 *tokenName
   174 );
   176 NSS_EXTERN PRInt32
   177 nssModule_GetCertOrder
   178 (
   179   NSSModule *module
   180 );
   182 /* NSSSlot
   183  *
   184  * nssSlot_Destroy
   185  * nssSlot_AddRef
   186  * nssSlot_GetName
   187  * nssSlot_GetTokenName
   188  * nssSlot_IsTokenPresent
   189  * nssSlot_IsPermanent
   190  * nssSlot_IsFriendly
   191  * nssSlot_IsHardware
   192  * nssSlot_Refresh
   193  * nssSlot_GetModule
   194  * nssSlot_GetToken
   195  * nssSlot_Login
   196  * nssSlot_Logout
   197  * nssSlot_SetPassword
   198  * nssSlot_CreateSession
   199  */
   201 NSS_EXTERN PRStatus
   202 nssSlot_Destroy
   203 (
   204   NSSSlot *slot
   205 );
   207 NSS_EXTERN NSSSlot *
   208 nssSlot_AddRef
   209 (
   210   NSSSlot *slot
   211 );
   213 NSS_EXTERN void
   214 nssSlot_ResetDelay
   215 (
   216   NSSSlot *slot
   217 );
   219 NSS_EXTERN NSSUTF8 *
   220 nssSlot_GetName
   221 (
   222   NSSSlot *slot
   223 );
   225 NSS_EXTERN NSSUTF8 *
   226 nssSlot_GetTokenName
   227 (
   228   NSSSlot *slot
   229 );
   231 NSS_EXTERN NSSModule *
   232 nssSlot_GetModule
   233 (
   234   NSSSlot *slot
   235 );
   237 NSS_EXTERN NSSToken *
   238 nssSlot_GetToken
   239 (
   240   NSSSlot *slot
   241 );
   243 NSS_EXTERN PRBool
   244 nssSlot_IsTokenPresent
   245 (
   246   NSSSlot *slot
   247 );
   249 NSS_EXTERN PRBool
   250 nssSlot_IsPermanent
   251 (
   252   NSSSlot *slot
   253 );
   255 NSS_EXTERN PRBool
   256 nssSlot_IsFriendly
   257 (
   258   NSSSlot *slot
   259 );
   261 NSS_EXTERN PRBool
   262 nssSlot_IsHardware
   263 (
   264   NSSSlot *slot
   265 );
   267 NSS_EXTERN PRBool
   268 nssSlot_IsLoggedIn
   269 (
   270   NSSSlot *slot
   271 );
   273 NSS_EXTERN PRStatus
   274 nssSlot_Refresh
   275 (
   276   NSSSlot *slot
   277 );
   279 NSS_EXTERN PRStatus
   280 nssSlot_Login
   281 (
   282   NSSSlot *slot,
   283   NSSCallback *pwcb
   284 );
   285 extern const NSSError NSS_ERROR_INVALID_PASSWORD;
   286 extern const NSSError NSS_ERROR_USER_CANCELED;
   288 NSS_EXTERN PRStatus
   289 nssSlot_Logout
   290 (
   291   NSSSlot *slot,
   292   nssSession *sessionOpt
   293 );
   295 NSS_EXTERN void
   296 nssSlot_EnterMonitor
   297 (
   298   NSSSlot *slot
   299 );
   301 NSS_EXTERN void
   302 nssSlot_ExitMonitor
   303 (
   304   NSSSlot *slot
   305 );
   307 #define NSSSLOT_ASK_PASSWORD_FIRST_TIME -1
   308 #define NSSSLOT_ASK_PASSWORD_EVERY_TIME  0
   309 NSS_EXTERN void
   310 nssSlot_SetPasswordDefaults
   311 (
   312   NSSSlot *slot,
   313   PRInt32 askPasswordTimeout
   314 );
   316 NSS_EXTERN PRStatus
   317 nssSlot_SetPassword
   318 (
   319   NSSSlot *slot,
   320   NSSUTF8 *oldPasswordOpt,
   321   NSSUTF8 *newPassword
   322 );
   323 extern const NSSError NSS_ERROR_INVALID_PASSWORD;
   324 extern const NSSError NSS_ERROR_USER_CANCELED;
   326 /*
   327  * nssSlot_IsLoggedIn
   328  */
   330 NSS_EXTERN nssSession *
   331 nssSlot_CreateSession
   332 (
   333   NSSSlot *slot,
   334   NSSArena *arenaOpt,
   335   PRBool readWrite /* so far, this is the only flag used */
   336 );
   338 /* NSSToken
   339  *
   340  * nssToken_Destroy
   341  * nssToken_AddRef
   342  * nssToken_GetName
   343  * nssToken_GetModule
   344  * nssToken_GetSlot
   345  * nssToken_NeedsPINInitialization
   346  * nssToken_ImportCertificate
   347  * nssToken_ImportTrust
   348  * nssToken_ImportCRL
   349  * nssToken_GenerateKeyPair
   350  * nssToken_GenerateSymmetricKey
   351  * nssToken_DeleteStoredObject
   352  * nssToken_FindObjects
   353  * nssToken_FindCertificatesBySubject
   354  * nssToken_FindCertificatesByNickname
   355  * nssToken_FindCertificatesByEmail
   356  * nssToken_FindCertificateByIssuerAndSerialNumber
   357  * nssToken_FindCertificateByEncodedCertificate
   358  * nssToken_FindTrustForCertificate
   359  * nssToken_FindCRLsBySubject
   360  * nssToken_FindPrivateKeys
   361  * nssToken_FindPrivateKeyByID
   362  * nssToken_Digest
   363  * nssToken_BeginDigest
   364  * nssToken_ContinueDigest
   365  * nssToken_FinishDigest
   366  */
   368 NSS_EXTERN PRStatus
   369 nssToken_Destroy
   370 (
   371   NSSToken *tok
   372 );
   374 NSS_EXTERN NSSToken *
   375 nssToken_AddRef
   376 (
   377   NSSToken *tok
   378 );
   380 NSS_EXTERN NSSUTF8 *
   381 nssToken_GetName
   382 (
   383   NSSToken *tok
   384 );
   386 NSS_EXTERN NSSModule *
   387 nssToken_GetModule
   388 (
   389   NSSToken *token
   390 );
   392 NSS_EXTERN NSSSlot *
   393 nssToken_GetSlot
   394 (
   395   NSSToken *tok
   396 );
   398 NSS_EXTERN PRBool
   399 nssToken_NeedsPINInitialization
   400 (
   401   NSSToken *token
   402 );
   404 NSS_EXTERN nssCryptokiObject *
   405 nssToken_ImportCertificate
   406 (
   407   NSSToken *tok,
   408   nssSession *sessionOpt,
   409   NSSCertificateType certType,
   410   NSSItem *id,
   411   const NSSUTF8 *nickname,
   412   NSSDER *encoding,
   413   NSSDER *issuer,
   414   NSSDER *subject,
   415   NSSDER *serial,
   416   NSSASCII7 *emailAddr,
   417   PRBool asTokenObject
   418 );
   420 NSS_EXTERN nssCryptokiObject *
   421 nssToken_ImportTrust
   422 (
   423   NSSToken *tok,
   424   nssSession *sessionOpt,
   425   NSSDER *certEncoding,
   426   NSSDER *certIssuer,
   427   NSSDER *certSerial,
   428   nssTrustLevel serverAuth,
   429   nssTrustLevel clientAuth,
   430   nssTrustLevel codeSigning,
   431   nssTrustLevel emailProtection,
   432   PRBool stepUpApproved,
   433   PRBool asTokenObject
   434 );
   436 NSS_EXTERN nssCryptokiObject *
   437 nssToken_ImportCRL
   438 (
   439   NSSToken *token,
   440   nssSession *sessionOpt,
   441   NSSDER *subject,
   442   NSSDER *encoding,
   443   PRBool isKRL,
   444   NSSUTF8 *url,
   445   PRBool asTokenObject
   446 );
   448 /* Permanently remove an object from the token. */
   449 NSS_EXTERN PRStatus
   450 nssToken_DeleteStoredObject
   451 (
   452   nssCryptokiObject *instance
   453 );
   455 NSS_EXTERN nssCryptokiObject **
   456 nssToken_FindObjects
   457 (
   458   NSSToken *token,
   459   nssSession *sessionOpt,
   460   CK_OBJECT_CLASS objclass,
   461   nssTokenSearchType searchType,
   462   PRUint32 maximumOpt,
   463   PRStatus *statusOpt
   464 );
   466 NSS_EXTERN nssCryptokiObject **
   467 nssToken_FindCertificatesBySubject
   468 (
   469   NSSToken *token,
   470   nssSession *sessionOpt,
   471   NSSDER *subject,
   472   nssTokenSearchType searchType,
   473   PRUint32 maximumOpt,
   474   PRStatus *statusOpt
   475 );
   477 NSS_EXTERN nssCryptokiObject **
   478 nssToken_FindCertificatesByNickname
   479 (
   480   NSSToken *token,
   481   nssSession *sessionOpt,
   482   const NSSUTF8 *name,
   483   nssTokenSearchType searchType,
   484   PRUint32 maximumOpt,
   485   PRStatus *statusOpt
   486 );
   488 NSS_EXTERN nssCryptokiObject **
   489 nssToken_FindCertificatesByEmail
   490 (
   491   NSSToken *token,
   492   nssSession *sessionOpt,
   493   NSSASCII7 *email,
   494   nssTokenSearchType searchType,
   495   PRUint32 maximumOpt,
   496   PRStatus *statusOpt
   497 );
   499 NSS_EXTERN nssCryptokiObject **
   500 nssToken_FindCertificatesByID
   501 (
   502   NSSToken *token,
   503   nssSession *sessionOpt,
   504   NSSItem *id,
   505   nssTokenSearchType searchType,
   506   PRUint32 maximumOpt,
   507   PRStatus *statusOpt
   508 );
   510 NSS_EXTERN nssCryptokiObject *
   511 nssToken_FindCertificateByIssuerAndSerialNumber
   512 (
   513   NSSToken *token,
   514   nssSession *sessionOpt,
   515   NSSDER *issuer,
   516   NSSDER *serial,
   517   nssTokenSearchType searchType,
   518   PRStatus *statusOpt
   519 );
   521 NSS_EXTERN nssCryptokiObject *
   522 nssToken_FindCertificateByEncodedCertificate
   523 (
   524   NSSToken *token,
   525   nssSession *sessionOpt,
   526   NSSBER *encodedCertificate,
   527   nssTokenSearchType searchType,
   528   PRStatus *statusOpt
   529 );
   531 NSS_EXTERN nssCryptokiObject *
   532 nssToken_FindTrustForCertificate
   533 (
   534   NSSToken *token,
   535   nssSession *sessionOpt,
   536   NSSDER *certEncoding,
   537   NSSDER *certIssuer,
   538   NSSDER *certSerial,
   539   nssTokenSearchType searchType
   540 );
   542 NSS_EXTERN nssCryptokiObject **
   543 nssToken_FindCRLsBySubject
   544 (
   545   NSSToken *token,
   546   nssSession *sessionOpt,
   547   NSSDER *subject,
   548   nssTokenSearchType searchType,
   549   PRUint32 maximumOpt,
   550   PRStatus *statusOpt
   551 );
   553 NSS_EXTERN nssCryptokiObject **
   554 nssToken_FindPrivateKeys
   555 (
   556   NSSToken *token,
   557   nssSession *sessionOpt,
   558   nssTokenSearchType searchType,
   559   PRUint32 maximumOpt,
   560   PRStatus *statusOpt
   561 );
   563 NSS_EXTERN nssCryptokiObject *
   564 nssToken_FindPrivateKeyByID
   565 (
   566   NSSToken *token,
   567   nssSession *sessionOpt,
   568   NSSItem *keyID
   569 );
   571 NSS_EXTERN nssCryptokiObject *
   572 nssToken_FindPublicKeyByID
   573 (
   574   NSSToken *token,
   575   nssSession *sessionOpt,
   576   NSSItem *keyID
   577 );
   579 NSS_EXTERN NSSItem *
   580 nssToken_Digest
   581 (
   582   NSSToken *tok,
   583   nssSession *sessionOpt,
   584   NSSAlgorithmAndParameters *ap,
   585   NSSItem *data,
   586   NSSItem *rvOpt,
   587   NSSArena *arenaOpt
   588 );
   590 NSS_EXTERN PRStatus
   591 nssToken_BeginDigest
   592 (
   593   NSSToken *tok,
   594   nssSession *sessionOpt,
   595   NSSAlgorithmAndParameters *ap
   596 );
   598 NSS_EXTERN PRStatus
   599 nssToken_ContinueDigest
   600 (
   601   NSSToken *tok,
   602   nssSession *sessionOpt,
   603   NSSItem *item
   604 );
   606 NSS_EXTERN NSSItem *
   607 nssToken_FinishDigest
   608 (
   609   NSSToken *tok,
   610   nssSession *sessionOpt,
   611   NSSItem *rvOpt,
   612   NSSArena *arenaOpt
   613 );
   615 /* nssSession
   616  *
   617  * nssSession_Destroy
   618  * nssSession_EnterMonitor
   619  * nssSession_ExitMonitor
   620  * nssSession_IsReadWrite
   621  */
   623 NSS_EXTERN PRStatus
   624 nssSession_Destroy
   625 (
   626   nssSession *s
   627 );
   629 /* would like to inline */
   630 NSS_EXTERN PRStatus
   631 nssSession_EnterMonitor
   632 (
   633   nssSession *s
   634 );
   636 /* would like to inline */
   637 NSS_EXTERN PRStatus
   638 nssSession_ExitMonitor
   639 (
   640   nssSession *s
   641 );
   643 /* would like to inline */
   644 NSS_EXTERN PRBool
   645 nssSession_IsReadWrite
   646 (
   647   nssSession *s
   648 );
   650 /* nssCryptokiObject
   651  *
   652  * An object living on a cryptoki token.
   653  * Not really proper to mix up the object types just because 
   654  * nssCryptokiObject itself is generic, but doing so anyway.
   655  *
   656  * nssCryptokiObject_Destroy
   657  * nssCryptokiObject_Equal
   658  * nssCryptokiObject_Clone
   659  * nssCryptokiCertificate_GetAttributes
   660  * nssCryptokiPrivateKey_GetAttributes
   661  * nssCryptokiPublicKey_GetAttributes
   662  * nssCryptokiTrust_GetAttributes
   663  * nssCryptokiCRL_GetAttributes
   664  */
   666 NSS_EXTERN void
   667 nssCryptokiObject_Destroy
   668 (
   669   nssCryptokiObject *object
   670 );
   672 NSS_EXTERN PRBool
   673 nssCryptokiObject_Equal
   674 (
   675   nssCryptokiObject *object1,
   676   nssCryptokiObject *object2
   677 );
   679 NSS_EXTERN nssCryptokiObject *
   680 nssCryptokiObject_Clone
   681 (
   682   nssCryptokiObject *object
   683 );
   685 NSS_EXTERN PRStatus
   686 nssCryptokiCertificate_GetAttributes
   687 (
   688   nssCryptokiObject *object,
   689   nssSession *sessionOpt,
   690   NSSArena *arenaOpt,
   691   NSSCertificateType *certTypeOpt,
   692   NSSItem *idOpt,
   693   NSSDER *encodingOpt,
   694   NSSDER *issuerOpt,
   695   NSSDER *serialOpt,
   696   NSSDER *subjectOpt
   697 );
   699 NSS_EXTERN PRStatus
   700 nssCryptokiTrust_GetAttributes
   701 (
   702   nssCryptokiObject *trustObject,
   703   nssSession *sessionOpt,
   704   NSSItem *sha1_hash,
   705   nssTrustLevel *serverAuth,
   706   nssTrustLevel *clientAuth,
   707   nssTrustLevel *codeSigning,
   708   nssTrustLevel *emailProtection,
   709   PRBool *stepUpApproved
   710 );
   712 NSS_EXTERN PRStatus
   713 nssCryptokiCRL_GetAttributes
   714 (
   715   nssCryptokiObject *crlObject,
   716   nssSession *sessionOpt,
   717   NSSArena *arenaOpt,
   718   NSSItem *encodingOpt,
   719   NSSItem * subjectOpt,
   720   CK_ULONG * crl_class,
   721   NSSUTF8 **urlOpt,
   722   PRBool *isKRLOpt
   723 );
   725 /* I'm including this to handle import of certificates in NSS 3.5.  This
   726  * function will set the cert-related attributes of a key, in order to
   727  * associate it with a cert.  Does it stay like this for 4.0?
   728  */
   729 NSS_EXTERN PRStatus
   730 nssCryptokiPrivateKey_SetCertificate
   731 (
   732   nssCryptokiObject *keyObject,
   733   nssSession *sessionOpt,
   734   const NSSUTF8 *nickname,
   735   NSSItem *id,
   736   NSSDER *subject
   737 );
   739 NSS_EXTERN void
   740 nssModuleArray_Destroy
   741 (
   742   NSSModule **modules
   743 );
   745 /* nssSlotArray
   746  *
   747  * nssSlotArray_Destroy
   748  */
   750 NSS_EXTERN void
   751 nssSlotArray_Destroy
   752 (
   753   NSSSlot **slots
   754 );
   756 /* nssTokenArray
   757  *
   758  * nssTokenArray_Destroy
   759  */
   761 NSS_EXTERN void
   762 nssTokenArray_Destroy
   763 (
   764   NSSToken **tokens
   765 );
   767 /* nssCryptokiObjectArray
   768  *
   769  * nssCryptokiObjectArray_Destroy
   770  */
   771 NSS_EXTERN void
   772 nssCryptokiObjectArray_Destroy
   773 (
   774   nssCryptokiObject **object
   775 );
   777 /* nssSlotList
   778 *
   779  * An ordered list of slots.  The order can be anything, it is set in the
   780  * Add methods.  Perhaps it should be CreateInCertOrder, ...?
   781  *
   782  * nssSlotList_Create
   783  * nssSlotList_Destroy
   784  * nssSlotList_Add
   785  * nssSlotList_AddModuleSlots
   786  * nssSlotList_GetSlots
   787  * nssSlotList_FindSlotByName
   788  * nssSlotList_FindTokenByName
   789  * nssSlotList_GetBestSlot
   790  * nssSlotList_GetBestSlotForAlgorithmAndParameters
   791  * nssSlotList_GetBestSlotForAlgorithmsAndParameters
   792  */
   794 /* nssSlotList_Create
   795  */
   796 NSS_EXTERN nssSlotList *
   797 nssSlotList_Create
   798 (
   799   NSSArena *arenaOpt
   800 );
   802 /* nssSlotList_Destroy
   803  */
   804 NSS_EXTERN void
   805 nssSlotList_Destroy
   806 (
   807   nssSlotList *slotList
   808 );
   810 /* nssSlotList_Add
   811  *
   812  * Add the given slot in the given order.
   813  */
   814 NSS_EXTERN PRStatus
   815 nssSlotList_Add
   816 (
   817   nssSlotList *slotList,
   818   NSSSlot *slot,
   819   PRUint32 order
   820 );
   822 /* nssSlotList_AddModuleSlots
   823  *
   824  * Add all slots in the module, in the given order (the slots will have
   825  * equal weight).
   826  */
   827 NSS_EXTERN PRStatus
   828 nssSlotList_AddModuleSlots
   829 (
   830   nssSlotList *slotList,
   831   NSSModule *module,
   832   PRUint32 order
   833 );
   835 /* nssSlotList_GetSlots
   836  */
   837 NSS_EXTERN NSSSlot **
   838 nssSlotList_GetSlots
   839 (
   840   nssSlotList *slotList
   841 );
   843 /* nssSlotList_FindSlotByName
   844  */
   845 NSS_EXTERN NSSSlot *
   846 nssSlotList_FindSlotByName
   847 (
   848   nssSlotList *slotList,
   849   NSSUTF8 *slotName
   850 );
   852 /* nssSlotList_FindTokenByName
   853  */
   854 NSS_EXTERN NSSToken *
   855 nssSlotList_FindTokenByName
   856 (
   857   nssSlotList *slotList,
   858   NSSUTF8 *tokenName
   859 );
   861 /* nssSlotList_GetBestSlot
   862  *
   863  * The best slot is the highest ranking in order, i.e., the first in the
   864  * list.
   865  */
   866 NSS_EXTERN NSSSlot *
   867 nssSlotList_GetBestSlot
   868 (
   869   nssSlotList *slotList
   870 );
   872 /* nssSlotList_GetBestSlotForAlgorithmAndParameters
   873  *
   874  * Highest-ranking slot than can handle algorithm/parameters.
   875  */
   876 NSS_EXTERN NSSSlot *
   877 nssSlotList_GetBestSlotForAlgorithmAndParameters
   878 (
   879   nssSlotList *slotList,
   880   NSSAlgorithmAndParameters *ap
   881 );
   883 /* nssSlotList_GetBestSlotForAlgorithmsAndParameters
   884  *
   885  * Highest-ranking slot than can handle all algorithms/parameters.
   886  */
   887 NSS_EXTERN NSSSlot *
   888 nssSlotList_GetBestSlotForAlgorithmsAndParameters
   889 (
   890   nssSlotList *slotList,
   891   NSSAlgorithmAndParameters **ap
   892 );
   894 NSS_EXTERN PRBool
   895 nssToken_IsPresent
   896 (
   897   NSSToken *token
   898 );
   900 NSS_EXTERN nssSession *
   901 nssToken_GetDefaultSession
   902 (
   903   NSSToken *token
   904 );
   906 NSS_EXTERN PRStatus
   907 nssToken_GetTrustOrder
   908 (
   909   NSSToken *tok
   910 );
   912 NSS_EXTERN PRStatus
   913 nssToken_NotifyCertsNotVisible
   914 (
   915   NSSToken *tok
   916 );
   918 NSS_EXTERN PRStatus
   919 nssToken_TraverseCertificates
   920 (
   921   NSSToken *token,
   922   nssSession *sessionOpt,
   923   nssTokenSearchType searchType,
   924   PRStatus (* callback)(nssCryptokiObject *instance, void *arg),
   925   void *arg
   926 );
   928 NSS_EXTERN PRBool
   929 nssToken_IsPrivateKeyAvailable
   930 (
   931   NSSToken *token,
   932   NSSCertificate *c,
   933   nssCryptokiObject *instance
   934 );
   936 PR_END_EXTERN_C
   938 #endif /* DEV_H */

mercurial