From: David Woodhouse <[email protected]>
The result must be freed by calling P11URI_FreeString()
---
cmd/certutil/certutil.c | 3 +++
lib/nss/nss.def | 1 +
lib/pk11wrap/pk11pub.h | 2 ++
lib/pk11wrap/pk11slot.c | 18 ++++++++++++++++++
4 files changed, 24 insertions(+)
diff --git a/cmd/certutil/certutil.c b/cmd/certutil/certutil.c
index f4d4809..06bc45b 100644
--- a/cmd/certutil/certutil.c
+++ b/cmd/certutil/certutil.c
@@ -990,9 +990,12 @@ ListModules(void)
/* look at each slot*/
for (le = list->head; le; le = le->next) {
+ char *token_uri = PK11_GetTokenUri(le->slot, P11URI_FOR_TOKEN);
printf("\n");
printf(" slot: %s\n", PK11_GetSlotName(le->slot));
printf(" token: %s\n", PK11_GetTokenName(le->slot));
+ printf(" uri: %s\n", token_uri);
+ P11URI_FreeString(token_uri);
}
PK11_FreeSlotList(list);
diff --git a/lib/nss/nss.def b/lib/nss/nss.def
index fa11944..ddf8f1e 100644
--- a/lib/nss/nss.def
+++ b/lib/nss/nss.def
@@ -104,6 +104,7 @@ PK11_GetInternalKeySlot;
PK11_GetInternalSlot;
PK11_GetSlotName;
PK11_GetTokenName;
+PK11_GetTokenUri;
PK11_HashBuf;
PK11_IsFIPS;
PK11_IsFriendly;
diff --git a/lib/pk11wrap/pk11pub.h b/lib/pk11wrap/pk11pub.h
index c130e1e..e496b91 100644
--- a/lib/pk11wrap/pk11pub.h
+++ b/lib/pk11wrap/pk11pub.h
@@ -14,6 +14,7 @@
#include "seccomon.h"
#include "pkcs7t.h"
#include "cmsreclist.h"
+#include "p11uri.h"
/*
* Exported PK11 wrap functions.
@@ -78,6 +79,7 @@ PRBool PK11_IsReadOnly(PK11SlotInfo *slot);
PRBool PK11_IsInternal(PK11SlotInfo *slot);
PRBool PK11_IsInternalKeySlot(PK11SlotInfo *slot);
char * PK11_GetTokenName(PK11SlotInfo *slot);
+char * PK11_GetTokenUri(PK11SlotInfo *slot, P11URIType type);
char * PK11_GetSlotName(PK11SlotInfo *slot);
PRBool PK11_NeedLogin(PK11SlotInfo *slot);
PRBool PK11_IsFriendly(PK11SlotInfo *slot);
diff --git a/lib/pk11wrap/pk11slot.c b/lib/pk11wrap/pk11slot.c
index b6eef51..1b42bd5 100644
--- a/lib/pk11wrap/pk11slot.c
+++ b/lib/pk11wrap/pk11slot.c
@@ -18,6 +18,7 @@
#include "dev3hack.h"
#include "pkim.h"
#include "utilpars.h"
+#include "p11uri.h"
/*************************************************************
@@ -1604,6 +1605,23 @@ PK11_GetTokenName(PK11SlotInfo *slot)
}
char *
+PK11_GetTokenUri(PK11SlotInfo *slot, P11URIType type)
+{
+ P11URI *uri;
+
+ uri = P11URI_New();
+ if (!uri)
+ return NULL;
+
+ if (PK11_GetTokenInfo(slot, P11URI_GetTokenInfo(uri)) != SECSuccess) {
+ P11URI_Free(uri);
+ return NULL;
+ }
+
+ return P11URI_Format(uri, type);
+}
+
+char *
PK11_GetSlotName(PK11SlotInfo *slot)
{
return slot->slot_name;
--
2.7.4
--
dev-tech-crypto mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-crypto