| OLD | NEW |
| (Empty) |
| 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/. */ | |
| 4 | |
| 5 #ifndef PKIM_H | |
| 6 #define PKIM_H | |
| 7 | |
| 8 #ifdef DEBUG | |
| 9 static const char PKIM_CVS_ID[] = "@(#) $RCSfile: pkim.h,v $ $Revision: 1.31 $ $
Date: 2012/04/25 14:50:07 $"; | |
| 10 #endif /* DEBUG */ | |
| 11 | |
| 12 #ifndef BASE_H | |
| 13 #include "base.h" | |
| 14 #endif /* BASE_H */ | |
| 15 | |
| 16 #ifndef PKI_H | |
| 17 #include "pki.h" | |
| 18 #endif /* PKI_H */ | |
| 19 | |
| 20 #ifndef PKITM_H | |
| 21 #include "pkitm.h" | |
| 22 #endif /* PKITM_H */ | |
| 23 | |
| 24 PR_BEGIN_EXTERN_C | |
| 25 | |
| 26 /* nssPKIObject | |
| 27 * | |
| 28 * This is the base object class, common to all PKI objects defined in | |
| 29 * in this module. Each object can be safely 'casted' to an nssPKIObject, | |
| 30 * then passed to these methods. | |
| 31 * | |
| 32 * nssPKIObject_Create | |
| 33 * nssPKIObject_Destroy | |
| 34 * nssPKIObject_AddRef | |
| 35 * nssPKIObject_AddInstance | |
| 36 * nssPKIObject_HasInstance | |
| 37 * nssPKIObject_GetTokens | |
| 38 * nssPKIObject_GetNicknameForToken | |
| 39 * nssPKIObject_RemoveInstanceForToken | |
| 40 * nssPKIObject_DeleteStoredObject | |
| 41 */ | |
| 42 | |
| 43 NSS_EXTERN void nssPKIObject_Lock (nssPKIObject * object); | |
| 44 NSS_EXTERN void nssPKIObject_Unlock (nssPKIObject * object); | |
| 45 NSS_EXTERN PRStatus nssPKIObject_NewLock (nssPKIObject * object, | |
| 46 nssPKILockType lockType); | |
| 47 NSS_EXTERN void nssPKIObject_DestroyLock(nssPKIObject * object); | |
| 48 | |
| 49 /* nssPKIObject_Create | |
| 50 * | |
| 51 * A generic PKI object. It must live in a trust domain. It may be | |
| 52 * initialized with a token instance, or alternatively in a crypto context. | |
| 53 */ | |
| 54 NSS_EXTERN nssPKIObject * | |
| 55 nssPKIObject_Create | |
| 56 ( | |
| 57 NSSArena *arenaOpt, | |
| 58 nssCryptokiObject *instanceOpt, | |
| 59 NSSTrustDomain *td, | |
| 60 NSSCryptoContext *ccOpt, | |
| 61 nssPKILockType lockType | |
| 62 ); | |
| 63 | |
| 64 /* nssPKIObject_AddRef | |
| 65 */ | |
| 66 NSS_EXTERN nssPKIObject * | |
| 67 nssPKIObject_AddRef | |
| 68 ( | |
| 69 nssPKIObject *object | |
| 70 ); | |
| 71 | |
| 72 /* nssPKIObject_Destroy | |
| 73 * | |
| 74 * Returns true if object was destroyed. This notifies the subclass that | |
| 75 * all references are gone and it should delete any members it owns. | |
| 76 */ | |
| 77 NSS_EXTERN PRBool | |
| 78 nssPKIObject_Destroy | |
| 79 ( | |
| 80 nssPKIObject *object | |
| 81 ); | |
| 82 | |
| 83 /* nssPKIObject_AddInstance | |
| 84 * | |
| 85 * Add a token instance to the object, if it does not have it already. | |
| 86 */ | |
| 87 NSS_EXTERN PRStatus | |
| 88 nssPKIObject_AddInstance | |
| 89 ( | |
| 90 nssPKIObject *object, | |
| 91 nssCryptokiObject *instance | |
| 92 ); | |
| 93 | |
| 94 /* nssPKIObject_HasInstance | |
| 95 * | |
| 96 * Query the object for a token instance. | |
| 97 */ | |
| 98 NSS_EXTERN PRBool | |
| 99 nssPKIObject_HasInstance | |
| 100 ( | |
| 101 nssPKIObject *object, | |
| 102 nssCryptokiObject *instance | |
| 103 ); | |
| 104 | |
| 105 /* nssPKIObject_GetTokens | |
| 106 * | |
| 107 * Get all tokens which have an instance of the object. | |
| 108 */ | |
| 109 NSS_EXTERN NSSToken ** | |
| 110 nssPKIObject_GetTokens | |
| 111 ( | |
| 112 nssPKIObject *object, | |
| 113 PRStatus *statusOpt | |
| 114 ); | |
| 115 | |
| 116 /* nssPKIObject_GetNicknameForToken | |
| 117 * | |
| 118 * tokenOpt == NULL means take the first available, otherwise return the | |
| 119 * nickname for the specified token. | |
| 120 */ | |
| 121 NSS_EXTERN NSSUTF8 * | |
| 122 nssPKIObject_GetNicknameForToken | |
| 123 ( | |
| 124 nssPKIObject *object, | |
| 125 NSSToken *tokenOpt | |
| 126 ); | |
| 127 | |
| 128 /* nssPKIObject_RemoveInstanceForToken | |
| 129 * | |
| 130 * Remove the instance of the object on the specified token. | |
| 131 */ | |
| 132 NSS_EXTERN PRStatus | |
| 133 nssPKIObject_RemoveInstanceForToken | |
| 134 ( | |
| 135 nssPKIObject *object, | |
| 136 NSSToken *token | |
| 137 ); | |
| 138 | |
| 139 /* nssPKIObject_DeleteStoredObject | |
| 140 * | |
| 141 * Delete all token instances of the object, as well as any crypto context | |
| 142 * instances (TODO). If any of the instances are read-only, or if the | |
| 143 * removal fails, the object will keep those instances. 'isFriendly' refers | |
| 144 * to the object -- can this object be removed from a friendly token without | |
| 145 * login? For example, certificates are friendly, private keys are not. | |
| 146 * Note that if the token is not friendly, authentication will be required | |
| 147 * regardless of the value of 'isFriendly'. | |
| 148 */ | |
| 149 NSS_EXTERN PRStatus | |
| 150 nssPKIObject_DeleteStoredObject | |
| 151 ( | |
| 152 nssPKIObject *object, | |
| 153 NSSCallback *uhh, | |
| 154 PRBool isFriendly | |
| 155 ); | |
| 156 | |
| 157 NSS_EXTERN nssCryptokiObject ** | |
| 158 nssPKIObject_GetInstances | |
| 159 ( | |
| 160 nssPKIObject *object | |
| 161 ); | |
| 162 | |
| 163 NSS_EXTERN NSSCertificate ** | |
| 164 nssTrustDomain_FindCertificatesByID | |
| 165 ( | |
| 166 NSSTrustDomain *td, | |
| 167 NSSItem *id, | |
| 168 NSSCertificate **rvOpt, | |
| 169 PRUint32 maximumOpt, | |
| 170 NSSArena *arenaOpt | |
| 171 ); | |
| 172 | |
| 173 NSS_EXTERN NSSCRL ** | |
| 174 nssTrustDomain_FindCRLsBySubject | |
| 175 ( | |
| 176 NSSTrustDomain *td, | |
| 177 NSSDER *subject | |
| 178 ); | |
| 179 | |
| 180 /* module-private nsspki methods */ | |
| 181 | |
| 182 NSS_EXTERN NSSCryptoContext * | |
| 183 nssCryptoContext_Create | |
| 184 ( | |
| 185 NSSTrustDomain *td, | |
| 186 NSSCallback *uhhOpt | |
| 187 ); | |
| 188 | |
| 189 /* XXX for the collection */ | |
| 190 NSS_EXTERN NSSCertificate * | |
| 191 nssCertificate_Create | |
| 192 ( | |
| 193 nssPKIObject *object | |
| 194 ); | |
| 195 | |
| 196 NSS_EXTERN PRStatus | |
| 197 nssCertificate_SetCertTrust | |
| 198 ( | |
| 199 NSSCertificate *c, | |
| 200 NSSTrust *trust | |
| 201 ); | |
| 202 | |
| 203 NSS_EXTERN nssDecodedCert * | |
| 204 nssCertificate_GetDecoding | |
| 205 ( | |
| 206 NSSCertificate *c | |
| 207 ); | |
| 208 | |
| 209 extern PRIntn | |
| 210 nssCertificate_SubjectListSort | |
| 211 ( | |
| 212 void *v1, | |
| 213 void *v2 | |
| 214 ); | |
| 215 | |
| 216 NSS_EXTERN nssDecodedCert * | |
| 217 nssDecodedCert_Create | |
| 218 ( | |
| 219 NSSArena *arenaOpt, | |
| 220 NSSDER *encoding, | |
| 221 NSSCertificateType type | |
| 222 ); | |
| 223 | |
| 224 NSS_EXTERN PRStatus | |
| 225 nssDecodedCert_Destroy | |
| 226 ( | |
| 227 nssDecodedCert *dc | |
| 228 ); | |
| 229 | |
| 230 NSS_EXTERN NSSTrust * | |
| 231 nssTrust_Create | |
| 232 ( | |
| 233 nssPKIObject *object, | |
| 234 NSSItem *certData | |
| 235 ); | |
| 236 | |
| 237 NSS_EXTERN NSSCRL * | |
| 238 nssCRL_Create | |
| 239 ( | |
| 240 nssPKIObject *object | |
| 241 ); | |
| 242 | |
| 243 NSS_EXTERN NSSCRL * | |
| 244 nssCRL_AddRef | |
| 245 ( | |
| 246 NSSCRL *crl | |
| 247 ); | |
| 248 | |
| 249 NSS_EXTERN PRStatus | |
| 250 nssCRL_Destroy | |
| 251 ( | |
| 252 NSSCRL *crl | |
| 253 ); | |
| 254 | |
| 255 NSS_EXTERN PRStatus | |
| 256 nssCRL_DeleteStoredObject | |
| 257 ( | |
| 258 NSSCRL *crl, | |
| 259 NSSCallback *uhh | |
| 260 ); | |
| 261 | |
| 262 NSS_EXTERN NSSPrivateKey * | |
| 263 nssPrivateKey_Create | |
| 264 ( | |
| 265 nssPKIObject *o | |
| 266 ); | |
| 267 | |
| 268 NSS_EXTERN NSSDER * | |
| 269 nssCRL_GetEncoding | |
| 270 ( | |
| 271 NSSCRL *crl | |
| 272 ); | |
| 273 | |
| 274 NSS_EXTERN NSSPublicKey * | |
| 275 nssPublicKey_Create | |
| 276 ( | |
| 277 nssPKIObject *object | |
| 278 ); | |
| 279 | |
| 280 /* nssCertificateArray | |
| 281 * | |
| 282 * These are being thrown around a lot, might as well group together some | |
| 283 * functionality. | |
| 284 * | |
| 285 * nssCertificateArray_Destroy | |
| 286 * nssCertificateArray_Join | |
| 287 * nssCertificateArray_FindBestCertificate | |
| 288 * nssCertificateArray_Traverse | |
| 289 */ | |
| 290 | |
| 291 /* nssCertificateArray_Destroy | |
| 292 * | |
| 293 * Will destroy the array and the certs within it. If the array was created | |
| 294 * in an arena, will *not* (of course) destroy the arena. However, is safe | |
| 295 * to call this method on an arena-allocated array. | |
| 296 */ | |
| 297 NSS_EXTERN void | |
| 298 nssCertificateArray_Destroy | |
| 299 ( | |
| 300 NSSCertificate **certs | |
| 301 ); | |
| 302 | |
| 303 /* nssCertificateArray_Join | |
| 304 * | |
| 305 * Join two arrays into one. The two arrays, certs1 and certs2, should | |
| 306 * be considered invalid after a call to this function (they may be destroyed | |
| 307 * as part of the join). certs1 and/or certs2 may be NULL. Safe to | |
| 308 * call with arrays allocated in an arena, the result will also be in the | |
| 309 * arena. | |
| 310 */ | |
| 311 NSS_EXTERN NSSCertificate ** | |
| 312 nssCertificateArray_Join | |
| 313 ( | |
| 314 NSSCertificate **certs1, | |
| 315 NSSCertificate **certs2 | |
| 316 ); | |
| 317 | |
| 318 /* nssCertificateArray_FindBestCertificate | |
| 319 * | |
| 320 * Use the usual { time, usage, policies } to find the best cert in the | |
| 321 * array. | |
| 322 */ | |
| 323 NSS_EXTERN NSSCertificate * | |
| 324 nssCertificateArray_FindBestCertificate | |
| 325 ( | |
| 326 NSSCertificate **certs, | |
| 327 NSSTime *timeOpt, | |
| 328 const NSSUsage *usage, | |
| 329 NSSPolicies *policiesOpt | |
| 330 ); | |
| 331 | |
| 332 /* nssCertificateArray_Traverse | |
| 333 * | |
| 334 * Do the callback for each cert, terminate the traversal if the callback | |
| 335 * fails. | |
| 336 */ | |
| 337 NSS_EXTERN PRStatus | |
| 338 nssCertificateArray_Traverse | |
| 339 ( | |
| 340 NSSCertificate **certs, | |
| 341 PRStatus (* callback)(NSSCertificate *c, void *arg), | |
| 342 void *arg | |
| 343 ); | |
| 344 | |
| 345 NSS_EXTERN void | |
| 346 nssCRLArray_Destroy | |
| 347 ( | |
| 348 NSSCRL **crls | |
| 349 ); | |
| 350 | |
| 351 /* nssPKIObjectCollection | |
| 352 * | |
| 353 * This is a handy way to group objects together and perform operations | |
| 354 * on them. It can also handle "proto-objects"-- references to | |
| 355 * objects instances on tokens, where the actual object hasn't | |
| 356 * been formed yet. | |
| 357 * | |
| 358 * nssCertificateCollection_Create | |
| 359 * nssPrivateKeyCollection_Create | |
| 360 * nssPublicKeyCollection_Create | |
| 361 * | |
| 362 * If this was a language that provided for inheritance, each type would | |
| 363 * inherit all of the following methods. Instead, there is only one | |
| 364 * type (nssPKIObjectCollection), shared among all. This may cause | |
| 365 * confusion; an alternative would be to define all of the methods | |
| 366 * for each subtype (nssCertificateCollection_Destroy, ...), but that doesn't | |
| 367 * seem worth the code bloat.. It is left up to the caller to remember | |
| 368 * what type of collection he/she is dealing with. | |
| 369 * | |
| 370 * nssPKIObjectCollection_Destroy | |
| 371 * nssPKIObjectCollection_Count | |
| 372 * nssPKIObjectCollection_AddObject | |
| 373 * nssPKIObjectCollection_AddInstances | |
| 374 * nssPKIObjectCollection_Traverse | |
| 375 * | |
| 376 * Back to type-specific methods. | |
| 377 * | |
| 378 * nssPKIObjectCollection_GetCertificates | |
| 379 * nssPKIObjectCollection_GetCRLs | |
| 380 * nssPKIObjectCollection_GetPrivateKeys | |
| 381 * nssPKIObjectCollection_GetPublicKeys | |
| 382 */ | |
| 383 | |
| 384 /* nssCertificateCollection_Create | |
| 385 * | |
| 386 * Create a collection of certificates in the specified trust domain. | |
| 387 * Optionally provide a starting set of certs. | |
| 388 */ | |
| 389 NSS_EXTERN nssPKIObjectCollection * | |
| 390 nssCertificateCollection_Create | |
| 391 ( | |
| 392 NSSTrustDomain *td, | |
| 393 NSSCertificate **certsOpt | |
| 394 ); | |
| 395 | |
| 396 /* nssCRLCollection_Create | |
| 397 * | |
| 398 * Create a collection of CRLs/KRLs in the specified trust domain. | |
| 399 * Optionally provide a starting set of CRLs. | |
| 400 */ | |
| 401 NSS_EXTERN nssPKIObjectCollection * | |
| 402 nssCRLCollection_Create | |
| 403 ( | |
| 404 NSSTrustDomain *td, | |
| 405 NSSCRL **crlsOpt | |
| 406 ); | |
| 407 | |
| 408 /* nssPrivateKeyCollection_Create | |
| 409 * | |
| 410 * Create a collection of private keys in the specified trust domain. | |
| 411 * Optionally provide a starting set of keys. | |
| 412 */ | |
| 413 NSS_EXTERN nssPKIObjectCollection * | |
| 414 nssPrivateKeyCollection_Create | |
| 415 ( | |
| 416 NSSTrustDomain *td, | |
| 417 NSSPrivateKey **pvkOpt | |
| 418 ); | |
| 419 | |
| 420 /* nssPublicKeyCollection_Create | |
| 421 * | |
| 422 * Create a collection of public keys in the specified trust domain. | |
| 423 * Optionally provide a starting set of keys. | |
| 424 */ | |
| 425 NSS_EXTERN nssPKIObjectCollection * | |
| 426 nssPublicKeyCollection_Create | |
| 427 ( | |
| 428 NSSTrustDomain *td, | |
| 429 NSSPublicKey **pvkOpt | |
| 430 ); | |
| 431 | |
| 432 /* nssPKIObjectCollection_Destroy | |
| 433 */ | |
| 434 NSS_EXTERN void | |
| 435 nssPKIObjectCollection_Destroy | |
| 436 ( | |
| 437 nssPKIObjectCollection *collection | |
| 438 ); | |
| 439 | |
| 440 /* nssPKIObjectCollection_Count | |
| 441 */ | |
| 442 NSS_EXTERN PRUint32 | |
| 443 nssPKIObjectCollection_Count | |
| 444 ( | |
| 445 nssPKIObjectCollection *collection | |
| 446 ); | |
| 447 | |
| 448 NSS_EXTERN PRStatus | |
| 449 nssPKIObjectCollection_AddObject | |
| 450 ( | |
| 451 nssPKIObjectCollection *collection, | |
| 452 nssPKIObject *object | |
| 453 ); | |
| 454 | |
| 455 /* nssPKIObjectCollection_AddInstances | |
| 456 * | |
| 457 * Add a set of object instances to the collection. The instances | |
| 458 * will be sorted into any existing certs/proto-certs that may be in | |
| 459 * the collection. The instances will be absorbed by the collection, | |
| 460 * the array should not be used after this call (except to free it). | |
| 461 * | |
| 462 * Failure means the collection is in an invalid state. | |
| 463 * | |
| 464 * numInstances = 0 means the array is NULL-terminated | |
| 465 */ | |
| 466 NSS_EXTERN PRStatus | |
| 467 nssPKIObjectCollection_AddInstances | |
| 468 ( | |
| 469 nssPKIObjectCollection *collection, | |
| 470 nssCryptokiObject **instances, | |
| 471 PRUint32 numInstances | |
| 472 ); | |
| 473 | |
| 474 /* nssPKIObjectCollection_Traverse | |
| 475 */ | |
| 476 NSS_EXTERN PRStatus | |
| 477 nssPKIObjectCollection_Traverse | |
| 478 ( | |
| 479 nssPKIObjectCollection *collection, | |
| 480 nssPKIObjectCallback *callback | |
| 481 ); | |
| 482 | |
| 483 /* This function is being added for NSS 3.5. It corresponds to the function | |
| 484 * nssToken_TraverseCertificates. The idea is to use the collection during | |
| 485 * a traversal, creating certs each time a new instance is added for which | |
| 486 * a cert does not already exist. | |
| 487 */ | |
| 488 NSS_EXTERN PRStatus | |
| 489 nssPKIObjectCollection_AddInstanceAsObject | |
| 490 ( | |
| 491 nssPKIObjectCollection *collection, | |
| 492 nssCryptokiObject *instance | |
| 493 ); | |
| 494 | |
| 495 /* nssPKIObjectCollection_GetCertificates | |
| 496 * | |
| 497 * Get all of the certificates in the collection. | |
| 498 */ | |
| 499 NSS_EXTERN NSSCertificate ** | |
| 500 nssPKIObjectCollection_GetCertificates | |
| 501 ( | |
| 502 nssPKIObjectCollection *collection, | |
| 503 NSSCertificate **rvOpt, | |
| 504 PRUint32 maximumOpt, | |
| 505 NSSArena *arenaOpt | |
| 506 ); | |
| 507 | |
| 508 NSS_EXTERN NSSCRL ** | |
| 509 nssPKIObjectCollection_GetCRLs | |
| 510 ( | |
| 511 nssPKIObjectCollection *collection, | |
| 512 NSSCRL **rvOpt, | |
| 513 PRUint32 maximumOpt, | |
| 514 NSSArena *arenaOpt | |
| 515 ); | |
| 516 | |
| 517 NSS_EXTERN NSSPrivateKey ** | |
| 518 nssPKIObjectCollection_GetPrivateKeys | |
| 519 ( | |
| 520 nssPKIObjectCollection *collection, | |
| 521 NSSPrivateKey **rvOpt, | |
| 522 PRUint32 maximumOpt, | |
| 523 NSSArena *arenaOpt | |
| 524 ); | |
| 525 | |
| 526 NSS_EXTERN NSSPublicKey ** | |
| 527 nssPKIObjectCollection_GetPublicKeys | |
| 528 ( | |
| 529 nssPKIObjectCollection *collection, | |
| 530 NSSPublicKey **rvOpt, | |
| 531 PRUint32 maximumOpt, | |
| 532 NSSArena *arenaOpt | |
| 533 ); | |
| 534 | |
| 535 NSS_EXTERN NSSTime * | |
| 536 NSSTime_Now | |
| 537 ( | |
| 538 NSSTime *timeOpt | |
| 539 ); | |
| 540 | |
| 541 NSS_EXTERN NSSTime * | |
| 542 NSSTime_SetPRTime | |
| 543 ( | |
| 544 NSSTime *timeOpt, | |
| 545 PRTime prTime | |
| 546 ); | |
| 547 | |
| 548 NSS_EXTERN PRTime | |
| 549 NSSTime_GetPRTime | |
| 550 ( | |
| 551 NSSTime *time | |
| 552 ); | |
| 553 | |
| 554 NSS_EXTERN nssHash * | |
| 555 nssHash_CreateCertificate | |
| 556 ( | |
| 557 NSSArena *arenaOpt, | |
| 558 PRUint32 numBuckets | |
| 559 ); | |
| 560 | |
| 561 /* 3.4 Certificate cache routines */ | |
| 562 | |
| 563 NSS_EXTERN PRStatus | |
| 564 nssTrustDomain_InitializeCache | |
| 565 ( | |
| 566 NSSTrustDomain *td, | |
| 567 PRUint32 cacheSize | |
| 568 ); | |
| 569 | |
| 570 NSS_EXTERN PRStatus | |
| 571 nssTrustDomain_AddCertsToCache | |
| 572 ( | |
| 573 NSSTrustDomain *td, | |
| 574 NSSCertificate **certs, | |
| 575 PRUint32 numCerts | |
| 576 ); | |
| 577 | |
| 578 NSS_EXTERN void | |
| 579 nssTrustDomain_RemoveCertFromCacheLOCKED ( | |
| 580 NSSTrustDomain *td, | |
| 581 NSSCertificate *cert | |
| 582 ); | |
| 583 | |
| 584 NSS_EXTERN void | |
| 585 nssTrustDomain_LockCertCache ( | |
| 586 NSSTrustDomain *td | |
| 587 ); | |
| 588 | |
| 589 NSS_EXTERN void | |
| 590 nssTrustDomain_UnlockCertCache ( | |
| 591 NSSTrustDomain *td | |
| 592 ); | |
| 593 | |
| 594 NSS_IMPLEMENT PRStatus | |
| 595 nssTrustDomain_DestroyCache | |
| 596 ( | |
| 597 NSSTrustDomain *td | |
| 598 ); | |
| 599 | |
| 600 /* | |
| 601 * Remove all certs for the given token from the cache. This is | |
| 602 * needed if the token is removed. | |
| 603 */ | |
| 604 NSS_EXTERN PRStatus | |
| 605 nssTrustDomain_RemoveTokenCertsFromCache | |
| 606 ( | |
| 607 NSSTrustDomain *td, | |
| 608 NSSToken *token | |
| 609 ); | |
| 610 | |
| 611 NSS_EXTERN PRStatus | |
| 612 nssTrustDomain_UpdateCachedTokenCerts | |
| 613 ( | |
| 614 NSSTrustDomain *td, | |
| 615 NSSToken *token | |
| 616 ); | |
| 617 | |
| 618 /* | |
| 619 * Find all cached certs with this nickname (label). | |
| 620 */ | |
| 621 NSS_EXTERN NSSCertificate ** | |
| 622 nssTrustDomain_GetCertsForNicknameFromCache | |
| 623 ( | |
| 624 NSSTrustDomain *td, | |
| 625 const NSSUTF8 *nickname, | |
| 626 nssList *certListOpt | |
| 627 ); | |
| 628 | |
| 629 /* | |
| 630 * Find all cached certs with this email address. | |
| 631 */ | |
| 632 NSS_EXTERN NSSCertificate ** | |
| 633 nssTrustDomain_GetCertsForEmailAddressFromCache | |
| 634 ( | |
| 635 NSSTrustDomain *td, | |
| 636 NSSASCII7 *email, | |
| 637 nssList *certListOpt | |
| 638 ); | |
| 639 | |
| 640 /* | |
| 641 * Find all cached certs with this subject. | |
| 642 */ | |
| 643 NSS_EXTERN NSSCertificate ** | |
| 644 nssTrustDomain_GetCertsForSubjectFromCache | |
| 645 ( | |
| 646 NSSTrustDomain *td, | |
| 647 NSSDER *subject, | |
| 648 nssList *certListOpt | |
| 649 ); | |
| 650 | |
| 651 /* | |
| 652 * Look for a specific cert in the cache. | |
| 653 */ | |
| 654 NSS_EXTERN NSSCertificate * | |
| 655 nssTrustDomain_GetCertForIssuerAndSNFromCache | |
| 656 ( | |
| 657 NSSTrustDomain *td, | |
| 658 NSSDER *issuer, | |
| 659 NSSDER *serialNum | |
| 660 ); | |
| 661 | |
| 662 /* | |
| 663 * Look for a specific cert in the cache. | |
| 664 */ | |
| 665 NSS_EXTERN NSSCertificate * | |
| 666 nssTrustDomain_GetCertByDERFromCache | |
| 667 ( | |
| 668 NSSTrustDomain *td, | |
| 669 NSSDER *der | |
| 670 ); | |
| 671 | |
| 672 /* Get all certs from the cache */ | |
| 673 /* XXX this is being included to make some old-style calls word, not to | |
| 674 * say we should keep it | |
| 675 */ | |
| 676 NSS_EXTERN NSSCertificate ** | |
| 677 nssTrustDomain_GetCertsFromCache | |
| 678 ( | |
| 679 NSSTrustDomain *td, | |
| 680 nssList *certListOpt | |
| 681 ); | |
| 682 | |
| 683 NSS_EXTERN void | |
| 684 nssTrustDomain_DumpCacheInfo | |
| 685 ( | |
| 686 NSSTrustDomain *td, | |
| 687 void (* cert_dump_iter)(const void *, void *, void *), | |
| 688 void *arg | |
| 689 ); | |
| 690 | |
| 691 NSS_EXTERN void | |
| 692 nssCertificateList_AddReferences | |
| 693 ( | |
| 694 nssList *certList | |
| 695 ); | |
| 696 | |
| 697 PR_END_EXTERN_C | |
| 698 | |
| 699 #endif /* PKIM_H */ | |
| OLD | NEW |