summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian.mcgreer%sun.com <devnull@localhost>2002-01-31 17:08:32 +0000
committerian.mcgreer%sun.com <devnull@localhost>2002-01-31 17:08:32 +0000
commitc80481501c5f15f41e3280c58e441f7751a5fb25 (patch)
tree7e0742162d6b70923e017d276bcb262d844aca6b
parent83f44d4bf87bc0676cf3297f8d902e07583ac3d1 (diff)
downloadnss-hg-c80481501c5f15f41e3280c58e441f7751a5fb25.tar.gz
bug 90518, implement methods for dumping the state of the cache and temp cert store in NSS 3.4
-rw-r--r--security/nss/lib/pki/pki3hack.c23
-rw-r--r--security/nss/lib/pki/pkim.h8
-rw-r--r--security/nss/lib/pki/pkistore.c13
-rw-r--r--security/nss/lib/pki/pkistore.h8
-rw-r--r--security/nss/lib/pki/tdcache.c12
5 files changed, 64 insertions, 0 deletions
diff --git a/security/nss/lib/pki/pki3hack.c b/security/nss/lib/pki/pki3hack.c
index 210c477ae..3239051ef 100644
--- a/security/nss/lib/pki/pki3hack.c
+++ b/security/nss/lib/pki/pki3hack.c
@@ -959,3 +959,26 @@ nssTrustDomain_AddTempCertToPerm
#endif
return PR_FAILURE;
}
+
+static void cert_dump_iter(const void *k, void *v, void *a)
+{
+ NSSCertificate *c = (NSSCertificate *)k;
+ CERTCertificate *cert = STAN_GetCERTCertificate(c);
+ printf("[%2d] \"%s\"\n", c->object.refCount, cert->subjectName);
+}
+
+void
+nss_DumpCertificateCacheInfo()
+{
+ NSSTrustDomain *td;
+ NSSCryptoContext *cc;
+ td = STAN_GetDefaultTrustDomain();
+ cc = STAN_GetDefaultCryptoContext();
+ printf("\n\nCertificates in the cache:\n");
+ nssTrustDomain_DumpCacheInfo(td, cert_dump_iter, NULL);
+ printf("\n\nCertificates in the temporary store:\n");
+ if (cc->certStore) {
+ nssCertificateStore_DumpStoreInfo(cc->certStore, cert_dump_iter, NULL);
+ }
+}
+
diff --git a/security/nss/lib/pki/pkim.h b/security/nss/lib/pki/pkim.h
index f574dbaf0..bd16fd3ad 100644
--- a/security/nss/lib/pki/pkim.h
+++ b/security/nss/lib/pki/pkim.h
@@ -321,6 +321,14 @@ NSSTime_GetPRTime
NSSTime *time
);
+NSS_EXTERN void
+nssTrustDomain_DumpCacheInfo
+(
+ NSSTrustDomain *td,
+ void (* cert_dump_iter)(const void *, void *, void *),
+ void *arg
+);
+
PR_END_EXTERN_C
#endif /* PKIM_H */
diff --git a/security/nss/lib/pki/pkistore.c b/security/nss/lib/pki/pkistore.c
index c6b572938..c2664f15d 100644
--- a/security/nss/lib/pki/pkistore.c
+++ b/security/nss/lib/pki/pkistore.c
@@ -681,3 +681,16 @@ nssHash_CreateCertificate
PL_CompareValues);
}
+NSS_IMPLEMENT void
+nssCertificateStore_DumpStoreInfo
+(
+ nssCertificateStore *store,
+ void (* cert_dump_iter)(const void *, void *, void *),
+ void *arg
+)
+{
+ PZ_Lock(store->lock);
+ nssHash_Iterate(store->issuer_and_serial, cert_dump_iter, arg);
+ PZ_Unlock(store->lock);
+}
+
diff --git a/security/nss/lib/pki/pkistore.h b/security/nss/lib/pki/pkistore.h
index 15e9150ed..a13186118 100644
--- a/security/nss/lib/pki/pkistore.h
+++ b/security/nss/lib/pki/pkistore.h
@@ -165,6 +165,14 @@ nssCertificateStore_FindSMIMEProfileForCertificate
NSSCertificate *cert
);
+NSS_EXTERN void
+nssCertificateStore_DumpStoreInfo
+(
+ nssCertificateStore *store,
+ void (* cert_dump_iter)(const void *, void *, void *),
+ void *arg
+);
+
PR_END_EXTERN_C
#endif /* PKISTORE_H */
diff --git a/security/nss/lib/pki/tdcache.c b/security/nss/lib/pki/tdcache.c
index 1ad21e39f..5077af584 100644
--- a/security/nss/lib/pki/tdcache.c
+++ b/security/nss/lib/pki/tdcache.c
@@ -1026,3 +1026,15 @@ nssTrustDomain_GetCertsFromCache
return rvArray;
}
+NSS_IMPLEMENT void
+nssTrustDomain_DumpCacheInfo
+(
+ NSSTrustDomain *td,
+ void (* cert_dump_iter)(const void *, void *, void *),
+ void *arg
+)
+{
+ PZ_Lock(td->cache->lock);
+ nssHash_Iterate(td->cache->issuerAndSN, cert_dump_iter, arg);
+ PZ_Unlock(td->cache->lock);
+}