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