summaryrefslogtreecommitdiff
path: root/security/nss/lib/pki/certificate.c
diff options
context:
space:
mode:
authorian.mcgreer%sun.com <devnull@localhost>2002-03-07 22:08:00 +0000
committerian.mcgreer%sun.com <devnull@localhost>2002-03-07 22:08:00 +0000
commite7d4e689046953ab217a510ecd0028b51fe6d186 (patch)
treeae1c5f370de4bac7d4e21e2bba483094ef8b1c12 /security/nss/lib/pki/certificate.c
parent2da4d94e4d2367ac88eb483d0e3ccee905f140e4 (diff)
downloadnss-hg-e7d4e689046953ab217a510ecd0028b51fe6d186.tar.gz
bug 129298, handle different nicknames across tokens
r=relyea/a=wtc
Diffstat (limited to 'security/nss/lib/pki/certificate.c')
-rw-r--r--security/nss/lib/pki/certificate.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/security/nss/lib/pki/certificate.c b/security/nss/lib/pki/certificate.c
index a584456b1..f9dc9a7e3 100644
--- a/security/nss/lib/pki/certificate.c
+++ b/security/nss/lib/pki/certificate.c
@@ -92,6 +92,39 @@ NSSCertificate_Destroy
return PR_SUCCESS;
}
+NSS_IMPLEMENT NSSUTF8 *
+NSSCertificate_GetNickname
+(
+ NSSCertificate *c,
+ NSSToken *tokenOpt
+)
+{
+ NSSUTF8 *rvNick = NULL;
+ nssCryptokiInstance *instance;
+ nssListIterator *instances = c->object.instances;
+ if (c->object.cryptoContext) {
+ return c->object.tempName;
+ }
+ for (instance = (nssCryptokiInstance *)nssListIterator_Start(instances);
+ instance != (nssCryptokiInstance *)NULL;
+ instance = (nssCryptokiInstance *)nssListIterator_Next(instances))
+ {
+ if (tokenOpt) {
+ if (instance->token == tokenOpt) {
+ /* take the nickname on the given token */
+ rvNick = instance->label;
+ break;
+ }
+ } else {
+ /* take the first one */
+ rvNick = instance->label;
+ break;
+ }
+ }
+ nssListIterator_Finish(instances);
+ return rvNick;
+}
+
NSS_IMPLEMENT PRStatus
NSSCertificate_DeleteStoredObject
(