tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
August 2011
- 19 participants
- 635 discussions
commit 48779cf4125c71df255039655468c629d4b5623e
Author: Damian Johnson <atagar(a)torproject.org>
Date: Tue Aug 30 20:36:38 2011 -0700
Interpretor option for grepping results
Adding a '/grep <regex>' option that greps the prior output, bolding matches
and deduplicationg the results.
---
src/util/torInterpretor.py | 60 ++++++++++++++++++++++++++++++++-----------
1 files changed, 44 insertions(+), 16 deletions(-)
diff --git a/src/util/torInterpretor.py b/src/util/torInterpretor.py
index 0be511d..0db95c3 100644
--- a/src/util/torInterpretor.py
+++ b/src/util/torInterpretor.py
@@ -4,6 +4,7 @@ adds usability features like IRC style interpretor commands and, when ran
directly, history and tab completion.
"""
+import re
import readline
import version
@@ -39,7 +40,7 @@ RESET = CSI % "0"
# limits used for cropping
BACKLOG_LIMIT = 100
-CONTENT_LIMIT = 2000
+CONTENT_LIMIT = 20000
class InterpretorClosed(Exception):
"""
@@ -193,7 +194,7 @@ class ControlInterpretor:
def __init__(self):
self.backlog = [] # prior requests the user has made
self.contents = [] # (msg, format list) tuples for what's been displayed
- self.lastWritePath = "/tmp/torInterpretor_output"
+ self.writePath = "/tmp/torInterpretor_output" # last location we've saved to
def getBacklog(self):
"""
@@ -263,34 +264,61 @@ class ControlInterpretor:
# - unrecognized controller command, this has the possability of confusing
# arm...
- if input.startswith("/"):
+ if " " in input: cmd, arg = input.split(" ", 1)
+ else: cmd, arg = input, ""
+
+ if cmd.startswith("/"):
# interpretor command
inputEntry.append((input, INPUT_INTERPRETOR_FORMAT))
- if input == "/quit":
+ if cmd == "/quit":
raise InterpretorClosed()
- elif input.startswith("/write"):
- if " " in input: writePath = input.split(" ", 1)[1]
- else: writePath = self.lastWritePath
+ elif cmd == "/write":
+ if arg: self.writePath = arg
try:
- self.writeContents(writePath)
- outputEntry.append(("Interpretor backlog written to: %s" % writePath, OUTPUT_FORMAT))
+ self.writeContents(self.writePath)
+ outputEntry.append(("Interpretor backlog written to: %s" % self.writePath, OUTPUT_FORMAT))
except IOError, exc:
- outputEntry.append(("Unable to write to '%s': %s" % (writePath, exc), ERROR_FORMAT))
+ outputEntry.append(("Unable to write to '%s': %s" % (self.writePath, exc), ERROR_FORMAT))
+ elif cmd == "/find":
+ argMatcher = None
+
+ if not arg:
+ outputEntry.append(("Nothing to match against", ERROR_FORMAT))
+ else:
+ try: argMatcher = re.compile("(%s)" % arg)
+ except: outputEntry.append(("Unable to compile regex '%s'" % arg, ERROR_FORMAT))
- self.lastWritePath = writePath
+ if argMatcher:
+ printedLines = []
+
+ for line in self.contents:
+ lineText = "".join([msg for msg, _ in line])
+
+ # skip if this was user input or a duplicate
+ if lineText.startswith(PROMPT[0]) or lineText in printedLines:
+ continue
+
+ match = argMatcher.search(lineText)
+ if match:
+ # outputs the matching line, with the match itself bolded
+ outputEntry.append((lineText[:match.start()], OUTPUT_FORMAT))
+ outputEntry.append((match.group(), (OUTPUT_FORMAT + (Attr.BOLD, ))))
+ outputEntry.append((lineText[match.end():] + "\n", OUTPUT_FORMAT))
+ printedLines.append(lineText)
else:
outputEntry.append(("Not yet implemented...", ERROR_FORMAT)) # TODO: implement
+ # appends a newline so all interpretor commands have a blank before the prompt
+ if outputEntry:
+ lastEntry = outputEntry[-1]
+ outputEntry[-1] = (lastEntry[0].rstrip() + "\n", lastEntry[1])
+
# TODO: add /help option
else:
# controller command
- if " " in input: cmd, arg = input.split(" ", 1)
- else: cmd, arg = input, ""
-
- # makes commands uppercase to match the spec
- cmd = cmd.upper()
+ cmd = cmd.upper() # makes commands uppercase to match the spec
inputEntry.append((cmd + " ", INPUT_CMD_FORMAT))
if arg: inputEntry.append((arg, INPUT_ARG_FORMAT))
1
0

[torbrowser/maint-2.2] Merge branches 'diginotar' and 'maint-2.2' into maint-2.2
by erinn@torproject.org 30 Aug '11
by erinn@torproject.org 30 Aug '11
30 Aug '11
commit 68493debd487ef18563db5351b78b3cde3a9f88a
Merge: 652e344 0be3b04
Author: Erinn Clark <erinn(a)torproject.org>
Date: Tue Aug 30 23:13:34 2011 +0100
Merge branches 'diginotar' and 'maint-2.2' into maint-2.2
.../0004-Remove-DigiNotar-root.patch | 1842 ++++++++++++++++++++
src/current-patches/0005-Smash-the-state.patch | 31 +
2 files changed, 1873 insertions(+), 0 deletions(-)
1
0

[torbrowser/maint-2.2] make osx build options backwards compatible (closes: #3671) and grab all of the right patches when building firefox
by erinn@torproject.org 30 Aug '11
by erinn@torproject.org 30 Aug '11
30 Aug '11
commit e66598e719c48024f7007ff10d20730c6c053726
Author: Erinn Clark <erinn(a)torproject.org>
Date: Tue Aug 30 23:52:32 2011 +0100
make osx build options backwards compatible (closes: #3671) and grab all of the right patches when building firefox
---
build-scripts/osx.mk | 18 ++++++++++--------
1 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/build-scripts/osx.mk b/build-scripts/osx.mk
index e421f71..fbb1f5e 100644
--- a/build-scripts/osx.mk
+++ b/build-scripts/osx.mk
@@ -57,7 +57,7 @@ build-zlib:
cd $(ZLIB_DIR) && make install
OPENSSL_DIR=$(FETCH_DIR)/openssl-$(OPENSSL_VER)
-OPENSSL_OPTS=-no-rc5 -no-md2 shared zlib --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -L$(BUILT_DIR)/lib -I$(BUILT_DIR)/include
+OPENSSL_OPTS=-no-rc5 -no-md2 -no-man shared zlib -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk --prefix=$(BUILT_DIR) --openssldir=$(BUILT_DIR) -L$(BUILT_DIR)/lib -I$(BUILT_DIR)/include
build-openssl:
ifeq (x86_64,$(ARCH_TYPE))
cd $(OPENSSL_DIR) && ./Configure darwin64-x86_64-cc $(OPENSSL_OPTS)
@@ -78,25 +78,27 @@ build-qt:
cd $(QT_DIR) && make install
VIDALIA_DIR=$(FETCH_DIR)/vidalia-$(VIDALIA_VER)
-VIDALIA_OPTS=-DCMAKE_OSX_ARCHITECTURES=i386 -DOPENSSL_LIBCRYPTO=$(BUILT_DIR)/lib/libcrypto.dylib \
- -DOPENSSL_LIBSSL=$(BUILT_DIR)/lib/libssl.dylib -DCMAKE_BUILD_TYPE=debug ..
+VIDALIA_OPTS=-DOSX_TIGER_COMPAT=1 -DCMAKE_OSX_ARCHITECTURES=i386 -DQT_QMAKE_EXECUTABLE=/usr/bin/qmake \
+ -DCMAKE_BUILD_TYPE=debug ..
build-vidalia:
+ export MACOSX_DEPLOYMENT_TARGET=10.5
-mkdir $(VIDALIA_DIR)/build
cd $(VIDALIA_DIR)/build && cmake $(VIDALIA_OPTS) \
&& make && make dist-osx-libraries
cd $(VIDALIA_DIR)/build && DESTDIR=$(BUILT_DIR) make install
LIBEVENT_DIR=$(FETCH_DIR)/libevent-$(LIBEVENT_VER)
-LIBEVENT_CFLAGS="-O -g -arch $(ARCH_TYPE)"
+LIBEVENT_CFLAGS="-O -g -arch $(ARCH_TYPE) -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk -arch $(ARCH_TYPE)"
+LIBEVENT_LDFLAGS="-L$(BUILT_DIR)/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk"
LIBEVENT_OPTS=--prefix=$(BUILT_DIR) --enable-static --disable-shared --disable-dependency-tracking CC="gcc-4.0"
build-libevent:
- cd $(LIBEVENT_DIR) && CFLAGS=$(LIBEVENT_CFLAGS) ./configure $(LIBEVENT_OPTS)
+ cd $(LIBEVENT_DIR) && CFLAGS=$(LIBEVENT_CFLAGS) LDFLAGS=$(LIBEVENT_LDFLAGS) ./configure $(LIBEVENT_OPTS)
cd $(LIBEVENT_DIR) && make -j2
cd $(LIBEVENT_DIR) && sudo make install
TOR_DIR=$(FETCH_DIR)/tor-$(TOR_VER)
-TOR_CFLAGS="-O -g -arch $(ARCH_TYPE) -I$(BUILT_DIR)/include"
-TOR_LDFLAGS="-L$(BUILT_DIR)/lib"
+TOR_CFLAGS="-O -g -arch $(ARCH_TYPE) -I$(BUILT_DIR)/include -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk"
+TOR_LDFLAGS="-L$(BUILT_DIR)/lib -Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk"
TOR_OPTS=--enable-static-openssl --enable-static-libevent --with-openssl-dir=$(BUILT_DIR)/lib --with-libevent-dir=$(BUILT_DIR)/lib --prefix=$(BUILT_DIR) --disable-dependency-tracking CC="gcc-4.0"
build-tor:
cd $(TOR_DIR) && CFLAGS=$(TOR_CFLAGS) LDFLAGS=$(TOR_LDFLAGS) ./configure $(TOR_OPTS)
@@ -105,7 +107,7 @@ build-tor:
FIREFOX_DIR=$(FETCH_DIR)/mozilla-release
build-firefox:
- cp ../src/current-patches/*Firefox* $(FIREFOX_DIR)
+ cp ../src/current-patches/000* $(FIREFOX_DIR)
cp patch-firefox-src.sh $(FIREFOX_DIR)
cp $(CONFIG_SRC)/mozconfig-osx-$(ARCH_TYPE) $(FIREFOX_DIR)/mozconfig
cd $(FIREFOX_DIR) && ./patch-firefox-src.sh
1
0

30 Aug '11
commit 652e344133b56639d3707d8d7d24ff05d180c456
Author: Erinn Clark <erinn(a)torproject.org>
Date: Tue Aug 30 18:09:14 2011 +0100
enable internationlization for osx tbbs
---
build-scripts/config/no-polipo-4.0.js | 1 +
build-scripts/osx.mk | 3 +--
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/build-scripts/config/no-polipo-4.0.js b/build-scripts/config/no-polipo-4.0.js
index bea5d44..ae792bd 100644
--- a/build-scripts/config/no-polipo-4.0.js
+++ b/build-scripts/config/no-polipo-4.0.js
@@ -85,6 +85,7 @@ user_pref("extensions.update.notifyUser", false);
user_pref("general.appname.override", "Netscape");
user_pref("general.appversion.override", "5.0 (Windows; en-US)");
user_pref("general.buildID.override", "0");
+user_pref("general.useragent.locale", "SHPONKA");
user_pref("general.oscpu.override", "Windows NT 6.1");
user_pref("general.platform.override", "Win32");
user_pref("general.productSub.override", "20100401");
diff --git a/build-scripts/osx.mk b/build-scripts/osx.mk
index f1f62a6..e421f71 100644
--- a/build-scripts/osx.mk
+++ b/build-scripts/osx.mk
@@ -431,8 +431,7 @@ patch-firefox-language:
## Fix prefs.js since extensions.checkCompatibility, false doesn't work
update-extension-pref:
- ext_ver=$$(sed -n '/em:version/{s,.*="\(.*\)".*,\1,p;q;}' $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/extensions/langpack-$(LANGCODE)(a)firefox.mozilla.org/install.rdf) \
- sed -i -e "s/SHPONKA/langpack-$(LANGCODE)@firefox.mozilla.org:$$ext_ver/g" $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
+ sed -i -e "s/SHPONKA/$(LANGCODE)/g" $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
write-tbb-version:
printf 'user_pref("torbrowser.version", "%s");\n' "$(RELEASE_VER)-$(BUILD_NUM)-$(PLATFORM)-$(ARCH_TYPE)" >> $(BUNDLE)/Library/Application\ Support/Firefox/Profiles/profile/prefs.js
1
0

30 Aug '11
commit 0be3b043afa0e54d207f603a3bf3716f6165caa1
Author: Mike Perry <mikeperry-git(a)fscked.org>
Date: Tue Aug 30 13:58:25 2011 -0700
DigiNotar fiasco patches from Mozilla.
We remove the Dutch exemption.
---
.../0004-Remove-DigiNotar-root.patch | 1842 ++++++++++++++++++++
src/current-patches/0005-Smash-the-state.patch | 31 +
2 files changed, 1873 insertions(+), 0 deletions(-)
diff --git a/src/current-patches/0004-Remove-DigiNotar-root.patch b/src/current-patches/0004-Remove-DigiNotar-root.patch
new file mode 100644
index 0000000..7a47d22
--- /dev/null
+++ b/src/current-patches/0004-Remove-DigiNotar-root.patch
@@ -0,0 +1,1842 @@
+From 89d3bf65adf55183297ba7c3db4389130053a5c0 Mon Sep 17 00:00:00 2001
+From: Mike Perry <mikeperry-git(a)fscked.org>
+Date: Tue, 30 Aug 2011 11:59:50 -0700
+Subject: [PATCH 4/5] Remove DigiNotar root.
+
+This commit applies the three Firefox patches that will appear in 6.0.1:
+https://hg.mozilla.org/releases/mozilla-release/rev/b5f28acb61c0
+https://hg.mozilla.org/releases/mozilla-release/rev/1cb931c6824a
+https://hg.mozilla.org/releases/mozilla-release/rev/43636529bf9d
+
+We include the Dutch Gov't exemption in this patch. We intend to remove it in
+the next patch. We do this so that we can drop this patch but still keep the
+next one once we rebase to Firefox 6.0.1.
+---
+ .../webBrowser/nsWebBrowserContentPolicy.cpp | 15 +-
+ security/manager/ssl/src/nsIdentityChecking.cpp | 12 -
+ security/manager/ssl/src/nsNSSCallbacks.cpp | 72 +++-
+ security/manager/ssl/src/nsNSSCallbacks.h | 3 +
+ security/manager/ssl/src/nsNSSIOLayer.cpp | 7 +-
+ security/manager/ssl/src/nsNSSIOLayer.h | 7 +
+ security/nss/lib/ckfw/builtins/certdata.c | 429 +++++++-------------
+ security/nss/lib/ckfw/builtins/certdata.txt | 155 -------
+ 8 files changed, 234 insertions(+), 466 deletions(-)
+
+diff --git a/embedding/browser/webBrowser/nsWebBrowserContentPolicy.cpp b/embedding/browser/webBrowser/nsWebBrowserContentPolicy.cpp
+index 594a36f..f0f574d 100644
+--- a/embedding/browser/webBrowser/nsWebBrowserContentPolicy.cpp
++++ b/embedding/browser/webBrowser/nsWebBrowserContentPolicy.cpp
+@@ -37,6 +37,8 @@
+ *
+ * ***** END LICENSE BLOCK ***** */
+
++#define protected public
++#include <iostream>
+ #include "nsWebBrowserContentPolicy.h"
+ #include "nsIDocShell.h"
+ #include "nsCOMPtr.h"
+@@ -55,9 +57,11 @@ nsWebBrowserContentPolicy::~nsWebBrowserContentPolicy()
+ NS_IMPL_ISUPPORTS1(nsWebBrowserContentPolicy, nsIContentPolicy)
+
+ static nsresult
+-PerformPolicyCheck(PRUint32 contentType,
++PerformPolicyCheck(nsIURI *contentLocation,
++ PRUint32 contentType,
+ nsISupports *requestingContext,
+- PRInt16 *decision)
++ PRInt16 *decision,
++ const nsACString &mimeGuess)
+ {
+ NS_PRECONDITION(decision, "Null out param");
+
+@@ -70,10 +74,15 @@ PerformPolicyCheck(PRUint32 contentType,
+
+ nsresult rv;
+ PRBool allowed = PR_TRUE;
++ nsACString spec;
+
+ switch (contentType) {
+ case nsIContentPolicy::TYPE_OBJECT:
+ rv = shell->GetAllowPlugins(&allowed);
++ contentLocation->GetSpec(spec);
++ std::cerr << ToNewCString(spec) << " ";
++ std::cerr << ToNewCString(mimeGuess) << std::endl;
++ allowed = PR_TRUE;
+ break;
+ case nsIContentPolicy::TYPE_SCRIPT:
+ rv = shell->GetAllowJavascript(&allowed);
+@@ -109,7 +118,7 @@ nsWebBrowserContentPolicy::ShouldLoad(PRUint32 contentType,
+ nsISupports *extra,
+ PRInt16 *shouldLoad)
+ {
+- return PerformPolicyCheck(contentType, requestingContext, shouldLoad);
++ return PerformPolicyCheck(contentLocation, contentType, requestingContext, shouldLoad, mimeGuess);
+ }
+
+ NS_IMETHODIMP
+diff --git a/security/manager/ssl/src/nsIdentityChecking.cpp b/security/manager/ssl/src/nsIdentityChecking.cpp
+index 1a3f38e..fb71372 100644
+--- a/security/manager/ssl/src/nsIdentityChecking.cpp
++++ b/security/manager/ssl/src/nsIdentityChecking.cpp
+@@ -123,18 +123,6 @@ static struct nsMyTrustedEVInfo myTrustedEVInfos[] = {
+ nsnull
+ },
+ {
+- // E=info(a)diginotar.nl,CN=DigiNotar Root CA,O=DigiNotar,C=NL
+- "2.16.528.1.1001.1.1.1.12.6.1.1.1",
+- "DigiNotar EV OID",
+- SEC_OID_UNKNOWN,
+- "C0:60:ED:44:CB:D8:81:BD:0E:F8:6C:0B:A2:87:DD:CF:81:67:47:8C",
+- "MF8xCzAJBgNVBAYTAk5MMRIwEAYDVQQKEwlEaWdpTm90YXIxGjAYBgNVBAMTEURp"
+- "Z2lOb3RhciBSb290IENBMSAwHgYJKoZIhvcNAQkBFhFpbmZvQGRpZ2lub3Rhci5u"
+- "bA==",
+- "DHbanJEMTiye/hXQWJM8TA==",
+- nsnull
+- },
+- {
+ // CN=SwissSign Gold CA - G2,O=SwissSign AG,C=CH
+ "2.16.756.1.89.1.2.1.1",
+ "SwissSign EV OID",
+diff --git a/security/manager/ssl/src/nsNSSCallbacks.cpp b/security/manager/ssl/src/nsNSSCallbacks.cpp
+index 33cab2f..5e3a888 100644
+--- a/security/manager/ssl/src/nsNSSCallbacks.cpp
++++ b/security/manager/ssl/src/nsNSSCallbacks.cpp
+@@ -1034,6 +1034,53 @@ static struct nsSerialBinaryBlacklistEntry myUTNBlacklistEntries[] = {
+ { 0, 0 } // end marker
+ };
+
++// Bug 682927: Do not trust any DigiNotar-issued certificates.
++// We do this check after normal certificate validation because we do not
++// want to override a "revoked" OCSP response.
++PRErrorCode
++PSM_SSL_BlacklistDigiNotar(CERTCertificate * serverCert,
++ CERTCertList * serverCertChain)
++{
++ PRBool isDigiNotarIssuedCert = PR_FALSE;
++
++ for (CERTCertListNode *node = CERT_LIST_HEAD(serverCertChain);
++ !CERT_LIST_END(node, serverCertChain);
++ node = CERT_LIST_NEXT(node)) {
++ if (!node->cert->issuerName)
++ continue;
++
++ if (strstr(node->cert->issuerName, "CN=DigiNotar")) {
++ isDigiNotarIssuedCert = PR_TRUE;
++ // Do not let the user override the error if the cert was
++ // chained from the "DigiNotar Root CA" cert and the cert was issued
++ // within the time window in which we think the mis-issuance(s) occurred.
++ if (strstr(node->cert->issuerName, "CN=DigiNotar Root CA")) {
++ PRTime cutoff = 0, notBefore = 0, notAfter = 0;
++ PRStatus status = PR_ParseTimeString("01-JUL-2011 00:00", PR_TRUE, &cutoff);
++ NS_ASSERTION(status == PR_SUCCESS, "PR_ParseTimeString failed");
++ if (status != PR_SUCCESS ||
++ CERT_GetCertTimes(serverCert, ¬Before, ¬After) != SECSuccess ||
++ notBefore >= cutoff) {
++ return SEC_ERROR_REVOKED_CERTIFICATE;
++ }
++ }
++ }
++
++ // By request of the Dutch government
++ if (!strcmp(node->cert->issuerName,
++ "CN=Staat der Nederlanden Root CA,O=Staat der Nederlanden,C=NL") &&
++ CERT_LIST_END(CERT_LIST_NEXT(node), serverCertChain)) {
++ return 0;
++ }
++ }
++
++ if (isDigiNotarIssuedCert)
++ return SEC_ERROR_UNTRUSTED_ISSUER; // user can override this
++ else
++ return 0; // No DigiNotor cert => carry on as normal
++}
++
++
+ SECStatus PR_CALLBACK AuthCertificateCallback(void* client_data, PRFileDesc* fd,
+ PRBool checksig, PRBool isServer) {
+ nsNSSShutDownPreventionLock locker;
+@@ -1079,7 +1126,7 @@ SECStatus PR_CALLBACK AuthCertificateCallback(void* client_data, PRFileDesc* fd,
+ }
+ }
+ }
+-
++
+ SECStatus rv = PSM_SSL_PKIX_AuthCertificate(fd, serverCert, checksig, isServer);
+
+ // We want to remember the CA certs in the temp db, so that the application can find the
+@@ -1095,14 +1142,28 @@ SECStatus PR_CALLBACK AuthCertificateCallback(void* client_data, PRFileDesc* fd,
+ nsc = nsNSSCertificate::Create(serverCert);
+ }
+
+- if (SECSuccess == rv) {
++ CERTCertList *certList = nsnull;
++ if (rv == SECSuccess) {
++ certList = CERT_GetCertChainFromCert(serverCert, PR_Now(), certUsageSSLCA);
++ if (!certList) {
++ rv = SECFailure;
++ } else {
++ PRErrorCode blacklistErrorCode = PSM_SSL_BlacklistDigiNotar(serverCert,
++ certList);
++ if (blacklistErrorCode != 0) {
++ infoObject->SetCertIssuerBlacklisted();
++ PORT_SetError(blacklistErrorCode);
++ rv = SECFailure;
++ }
++ }
++ }
++
++ if (rv == SECSuccess) {
+ if (nsc) {
+ PRBool dummyIsEV;
+ nsc->GetIsExtendedValidation(&dummyIsEV); // the nsc object will cache the status
+ }
+
+- CERTCertList *certList = CERT_GetCertChainFromCert(serverCert, PR_Now(), certUsageSSLCA);
+-
+ nsCOMPtr<nsINSSComponent> nssComponent;
+
+ for (CERTCertListNode *node = CERT_LIST_HEAD(certList);
+@@ -1138,6 +1199,9 @@ SECStatus PR_CALLBACK AuthCertificateCallback(void* client_data, PRFileDesc* fd,
+ PR_FREEIF(nickname);
+ }
+
++ }
++
++ if (certList) {
+ CERT_DestroyCertList(certList);
+ }
+
+diff --git a/security/manager/ssl/src/nsNSSCallbacks.h b/security/manager/ssl/src/nsNSSCallbacks.h
+index fd4481e..adbb42a 100644
+--- a/security/manager/ssl/src/nsNSSCallbacks.h
++++ b/security/manager/ssl/src/nsNSSCallbacks.h
+@@ -55,6 +55,9 @@ void PR_CALLBACK HandshakeCallback(PRFileDesc *fd, void *client_data);
+ SECStatus PR_CALLBACK AuthCertificateCallback(void* client_data, PRFileDesc* fd,
+ PRBool checksig, PRBool isServer);
+
++PRErrorCode PSM_SSL_BlacklistDigiNotar(CERTCertificate * serverCert,
++ CERTCertList * serverCertChain);
++
+ SECStatus RegisterMyOCSPAIAInfoCallback();
+ SECStatus UnregisterMyOCSPAIAInfoCallback();
+
+diff --git a/security/manager/ssl/src/nsNSSIOLayer.cpp b/security/manager/ssl/src/nsNSSIOLayer.cpp
+index c89030d..78cb3ec 100644
+--- a/security/manager/ssl/src/nsNSSIOLayer.cpp
++++ b/security/manager/ssl/src/nsNSSIOLayer.cpp
+@@ -226,7 +226,8 @@ nsNSSSocketInfo::nsNSSSocketInfo()
+ mAllowTLSIntoleranceTimeout(PR_TRUE),
+ mRememberClientAuthCertificate(PR_FALSE),
+ mHandshakeStartTime(0),
+- mPort(0)
++ mPort(0),
++ mIsCertIssuerBlacklisted(PR_FALSE)
+ {
+ mThreadData = new nsSSLSocketThreadData;
+ }
+@@ -3442,6 +3443,10 @@ nsNSSBadCertHandler(void *arg, PRFileDesc *sslSocket)
+ cvout, (void*)infoObject);
+ }
+
++ if (infoObject->IsCertIssuerBlacklisted()) {
++ collected_errors |= nsICertOverrideService::ERROR_UNTRUSTED;
++ }
++
+ // We ignore the result code of the cert verification.
+ // Either it is a failure, which is expected, and we'll process the
+ // verify log below.
+diff --git a/security/manager/ssl/src/nsNSSIOLayer.h b/security/manager/ssl/src/nsNSSIOLayer.h
+index 698bc06..0af2930 100644
+--- a/security/manager/ssl/src/nsNSSIOLayer.h
++++ b/security/manager/ssl/src/nsNSSIOLayer.h
+@@ -202,6 +202,12 @@ public:
+
+ PRStatus CloseSocketAndDestroy();
+
++ PRBool IsCertIssuerBlacklisted() const {
++ return mIsCertIssuerBlacklisted;
++ }
++ void SetCertIssuerBlacklisted() {
++ mIsCertIssuerBlacklisted = PR_TRUE;
++ }
+ protected:
+ nsCOMPtr<nsIInterfaceRequestor> mCallbacks;
+ PRFileDesc* mFd;
+@@ -229,6 +235,7 @@ protected:
+ PRIntervalTime mHandshakeStartTime;
+ PRInt32 mPort;
+ nsXPIDLCString mHostName;
++ PRErrorCode mIsCertIssuerBlacklisted;
+
+ /* SSL Status */
+ nsRefPtr<nsSSLStatus> mSSLStatus;
+diff --git a/security/nss/lib/ckfw/builtins/certdata.c b/security/nss/lib/ckfw/builtins/certdata.c
+index 13a05ba..68ae468 100644
+--- a/security/nss/lib/ckfw/builtins/certdata.c
++++ b/security/nss/lib/ckfw/builtins/certdata.c
+@@ -35,7 +35,7 @@
+ *
+ * ***** END LICENSE BLOCK ***** */
+ #ifdef DEBUG
+-static const char CVS_ID[] = "@(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.9 $ $Date: 2011/04/06 23:59:08 $""; @(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.9 $ $Date: 2011/04/06 23:59:08 $";
++static const char CVS_ID[] = "@(#) $RCSfile: certdata.txt,v $ $Revision: 1.64.2.9 $ $Date: 2011/04/06 23:59:09 $""; @(#) $RCSfile: certdata.perl,v $ $Revision: 1.13 $ $Date: 2010/03/26 22:06:47 $";
+ #endif /* DEBUG */
+
+ #ifndef BUILTINS_H
+@@ -1015,12 +1015,6 @@ static const CK_ATTRIBUTE_TYPE nss_builtins_types_318 [] = {
+ static const CK_ATTRIBUTE_TYPE nss_builtins_types_319 [] = {
+ CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
+ };
+-static const CK_ATTRIBUTE_TYPE nss_builtins_types_320 [] = {
+- CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERTIFICATE_TYPE, CKA_SUBJECT, CKA_ID, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_VALUE
+-};
+-static const CK_ATTRIBUTE_TYPE nss_builtins_types_321 [] = {
+- CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_CERT_SHA1_HASH, CKA_CERT_MD5_HASH, CKA_ISSUER, CKA_SERIAL_NUMBER, CKA_TRUST_SERVER_AUTH, CKA_TRUST_EMAIL_PROTECTION, CKA_TRUST_CODE_SIGNING, CKA_TRUST_STEP_UP_APPROVED
+-};
+ #ifdef DEBUG
+ static const NSSItem nss_builtins_items_0 [] = {
+ { (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+@@ -1029,7 +1023,7 @@ static const NSSItem nss_builtins_items_0 [] = {
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"CVS ID", (PRUint32)7 },
+ { (void *)"NSS", (PRUint32)4 },
+- { (void *)"@(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.9 $ $Date: 2011/04/06 23:59:08 $""; @(#) $RCSfile: certdata.c,v $ $Revision: 1.67.2.9 $ $Date: 2011/04/06 23:59:08 $", (PRUint32)164 }
++ { (void *)"@(#) $RCSfile: certdata.txt,v $ $Revision: 1.64.2.9 $ $Date: 2011/04/06 23:59:09 $""; @(#) $RCSfile: certdata.perl,v $ $Revision: 1.13 $ $Date: 2010/03/26 22:06:47 $", (PRUint32)164 }
+ };
+ #endif /* DEBUG */
+ static const NSSItem nss_builtins_items_1 [] = {
+@@ -12482,151 +12476,6 @@ static const NSSItem nss_builtins_items_186 [] = {
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)"DigiNotar Root CA", (PRUint32)18 },
+- { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+- { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+-"\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157"
+-"\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151"
+-"\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061"
+-"\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021"
+-"\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156"
+-"\154"
+-, (PRUint32)97 },
+- { (void *)"0", (PRUint32)2 },
+- { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+-"\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157"
+-"\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151"
+-"\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061"
+-"\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021"
+-"\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156"
+-"\154"
+-, (PRUint32)97 },
+- { (void *)"\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223"
+-"\074\114"
+-, (PRUint32)18 },
+- { (void *)"\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\014"
+-"\166\332\234\221\014\116\054\236\376\025\320\130\223\074\114\060"
+-"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\137"
+-"\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022\060"
+-"\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164\141"
+-"\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147\151"
+-"\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040\060"
+-"\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156"
+-"\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154\060"
+-"\036\027\015\060\067\060\065\061\066\061\067\061\071\063\066\132"
+-"\027\015\062\065\060\063\063\061\061\070\061\071\062\061\132\060"
+-"\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022"
+-"\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164"
+-"\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147"
+-"\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040"
+-"\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151"
+-"\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154"
+-"\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001"
+-"\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001"
+-"\000\254\260\130\301\000\275\330\041\010\013\053\232\376\156\126"
+-"\060\005\237\033\167\220\020\101\134\303\015\207\021\167\216\201"
+-"\361\312\174\351\214\152\355\070\164\065\273\332\337\371\273\300"
+-"\011\067\264\226\163\201\175\063\032\230\071\367\223\157\225\177"
+-"\075\271\261\165\207\272\121\110\350\213\160\076\225\004\305\330"
+-"\266\303\026\331\210\260\261\207\035\160\332\206\264\017\024\213"
+-"\172\317\020\321\164\066\242\022\173\167\206\112\171\346\173\337"
+-"\002\021\150\245\116\206\256\064\130\233\044\023\170\126\042\045"
+-"\036\001\213\113\121\161\373\202\314\131\226\151\210\132\150\123"
+-"\305\271\015\002\067\313\113\274\146\112\220\176\052\013\005\007"
+-"\355\026\137\125\220\165\330\106\311\033\203\342\010\276\361\043"
+-"\314\231\035\326\052\017\203\040\025\130\047\202\056\372\342\042"
+-"\302\111\261\271\001\201\152\235\155\235\100\167\150\166\116\041"
+-"\052\155\204\100\205\116\166\231\174\202\363\363\267\002\131\324"
+-"\046\001\033\216\337\255\123\006\321\256\030\335\342\262\072\313"
+-"\327\210\070\216\254\133\051\271\031\323\230\371\030\003\317\110"
+-"\202\206\146\013\033\151\017\311\353\070\210\172\046\032\005\114"
+-"\222\327\044\324\226\362\254\122\055\243\107\325\122\366\077\376"
+-"\316\204\006\160\246\252\076\242\362\266\126\064\030\127\242\344"
+-"\201\155\347\312\360\152\323\307\221\153\002\203\101\174\025\357"
+-"\153\232\144\136\343\320\074\345\261\353\173\135\206\373\313\346"
+-"\167\111\315\243\145\334\367\271\234\270\344\013\137\223\317\314"
+-"\060\032\062\034\316\034\143\225\245\371\352\341\164\213\236\351"
+-"\053\251\060\173\240\030\037\016\030\013\345\133\251\323\321\154"
+-"\036\007\147\217\221\113\251\212\274\322\146\252\223\001\210\262"
+-"\221\372\061\134\325\246\301\122\010\011\315\012\143\242\323\042"
+-"\246\350\241\331\071\006\227\365\156\215\002\220\214\024\173\077"
+-"\200\315\033\234\272\304\130\162\043\257\266\126\237\306\172\102"
+-"\063\051\007\077\202\311\346\037\005\015\315\114\050\066\213\323"
+-"\310\076\034\306\210\357\136\356\211\144\351\035\353\332\211\176"
+-"\062\246\151\321\335\314\210\237\321\320\311\146\041\334\006\147"
+-"\305\224\172\232\155\142\114\175\314\340\144\200\262\236\107\216"
+-"\243\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035"
+-"\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125"
+-"\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125"
+-"\035\016\004\026\004\024\210\150\277\340\216\065\304\073\070\153"
+-"\142\367\050\073\204\201\310\014\327\115\060\015\006\011\052\206"
+-"\110\206\367\015\001\001\005\005\000\003\202\002\001\000\073\002"
+-"\215\313\074\060\350\156\240\255\362\163\263\137\236\045\023\004"
+-"\005\323\366\343\213\273\013\171\316\123\336\344\226\305\321\257"
+-"\163\274\325\303\320\100\125\174\100\177\315\033\137\011\325\362"
+-"\174\237\150\035\273\135\316\172\071\302\214\326\230\173\305\203"
+-"\125\250\325\175\100\312\340\036\367\211\136\143\135\241\023\302"
+-"\135\212\266\212\174\000\363\043\303\355\205\137\161\166\360\150"
+-"\143\252\105\041\071\110\141\170\066\334\361\103\223\324\045\307"
+-"\362\200\145\341\123\002\165\121\374\172\072\357\067\253\204\050"
+-"\127\014\330\324\324\231\126\154\343\242\376\131\204\264\061\350"
+-"\063\370\144\224\224\121\227\253\071\305\113\355\332\335\200\013"
+-"\157\174\051\015\304\216\212\162\015\347\123\024\262\140\101\075"
+-"\204\221\061\150\075\047\104\333\345\336\364\372\143\105\310\114"
+-"\076\230\365\077\101\272\116\313\067\015\272\146\230\361\335\313"
+-"\237\134\367\124\066\202\153\054\274\023\141\227\102\370\170\273"
+-"\314\310\242\237\312\360\150\275\153\035\262\337\215\157\007\235"
+-"\332\216\147\307\107\036\312\271\277\052\102\221\267\143\123\146"
+-"\361\102\243\341\364\132\115\130\153\265\344\244\063\255\134\160"
+-"\035\334\340\362\353\163\024\221\232\003\301\352\000\145\274\007"
+-"\374\317\022\021\042\054\256\240\275\072\340\242\052\330\131\351"
+-"\051\323\030\065\244\254\021\137\031\265\265\033\377\042\112\134"
+-"\306\172\344\027\357\040\251\247\364\077\255\212\247\232\004\045"
+-"\235\016\312\067\346\120\375\214\102\051\004\232\354\271\317\113"
+-"\162\275\342\010\066\257\043\057\142\345\312\001\323\160\333\174"
+-"\202\043\054\026\061\014\306\066\007\220\172\261\037\147\130\304"
+-"\073\130\131\211\260\214\214\120\263\330\206\313\150\243\304\012"
+-"\347\151\113\040\316\301\036\126\113\225\251\043\150\330\060\330"
+-"\303\353\260\125\121\315\345\375\053\270\365\273\021\237\123\124"
+-"\366\064\031\214\171\011\066\312\141\027\045\027\013\202\230\163"
+-"\014\167\164\303\325\015\307\250\022\114\307\247\124\161\107\056"
+-"\054\032\175\311\343\053\073\110\336\047\204\247\143\066\263\175"
+-"\217\240\144\071\044\015\075\173\207\257\146\134\164\033\113\163"
+-"\262\345\214\360\206\231\270\345\305\337\204\301\267\353"
+-, (PRUint32)1422 }
+-};
+-static const NSSItem nss_builtins_items_187 [] = {
+- { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+- { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)"DigiNotar Root CA", (PRUint32)18 },
+- { (void *)"\300\140\355\104\313\330\201\275\016\370\154\013\242\207\335\317"
+-"\201\147\107\214"
+-, (PRUint32)20 },
+- { (void *)"\172\171\124\115\007\222\073\133\377\101\360\016\307\071\242\230"
+-, (PRUint32)16 },
+- { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+-"\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157"
+-"\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151"
+-"\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061"
+-"\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021"
+-"\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156"
+-"\154"
+-, (PRUint32)97 },
+- { (void *)"\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223"
+-"\074\114"
+-, (PRUint32)18 },
+- { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+- { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+- { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+-};
+-static const NSSItem nss_builtins_items_188 [] = {
+- { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+- { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+- { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Network Solutions Certificate Authority", (PRUint32)40 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
+@@ -12714,7 +12563,7 @@ static const NSSItem nss_builtins_items_188 [] = {
+ "\244\140\114\260\125\240\240\173\127\262"
+ , (PRUint32)1002 }
+ };
+-static const NSSItem nss_builtins_items_189 [] = {
++static const NSSItem nss_builtins_items_187 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12741,7 +12590,7 @@ static const NSSItem nss_builtins_items_189 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_190 [] = {
++static const NSSItem nss_builtins_items_188 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12850,7 +12699,7 @@ static const NSSItem nss_builtins_items_190 [] = {
+ "\333"
+ , (PRUint32)1217 }
+ };
+-static const NSSItem nss_builtins_items_191 [] = {
++static const NSSItem nss_builtins_items_189 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12878,7 +12727,7 @@ static const NSSItem nss_builtins_items_191 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_192 [] = {
++static const NSSItem nss_builtins_items_190 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12952,7 +12801,7 @@ static const NSSItem nss_builtins_items_192 [] = {
+ "\334\335\363\377\035\054\072\026\127\331\222\071\326"
+ , (PRUint32)653 }
+ };
+-static const NSSItem nss_builtins_items_193 [] = {
++static const NSSItem nss_builtins_items_191 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -12981,7 +12830,7 @@ static const NSSItem nss_builtins_items_193 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_194 [] = {
++static const NSSItem nss_builtins_items_192 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13073,7 +12922,7 @@ static const NSSItem nss_builtins_items_194 [] = {
+ "\321\236\164\310\166\147"
+ , (PRUint32)1078 }
+ };
+-static const NSSItem nss_builtins_items_195 [] = {
++static const NSSItem nss_builtins_items_193 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13098,7 +12947,7 @@ static const NSSItem nss_builtins_items_195 [] = {
+ { (void *)&ckt_netscape_untrusted, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_196 [] = {
++static const NSSItem nss_builtins_items_194 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13195,7 +13044,7 @@ static const NSSItem nss_builtins_items_196 [] = {
+ "\253\205\322\140\126\132"
+ , (PRUint32)1030 }
+ };
+-static const NSSItem nss_builtins_items_197 [] = {
++static const NSSItem nss_builtins_items_195 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13223,7 +13072,7 @@ static const NSSItem nss_builtins_items_197 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_198 [] = {
++static const NSSItem nss_builtins_items_196 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13308,7 +13157,7 @@ static const NSSItem nss_builtins_items_198 [] = {
+ "\164"
+ , (PRUint32)897 }
+ };
+-static const NSSItem nss_builtins_items_199 [] = {
++static const NSSItem nss_builtins_items_197 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13334,7 +13183,7 @@ static const NSSItem nss_builtins_items_199 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_200 [] = {
++static const NSSItem nss_builtins_items_198 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13431,7 +13280,7 @@ static const NSSItem nss_builtins_items_200 [] = {
+ "\374\276\337\012\015"
+ , (PRUint32)1013 }
+ };
+-static const NSSItem nss_builtins_items_201 [] = {
++static const NSSItem nss_builtins_items_199 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13460,7 +13309,7 @@ static const NSSItem nss_builtins_items_201 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_202 [] = {
++static const NSSItem nss_builtins_items_200 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13571,7 +13420,7 @@ static const NSSItem nss_builtins_items_202 [] = {
+ "\241\361\017\033\037\075\236\004\203\335\226\331\035\072\224"
+ , (PRUint32)1151 }
+ };
+-static const NSSItem nss_builtins_items_203 [] = {
++static const NSSItem nss_builtins_items_201 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13603,7 +13452,7 @@ static const NSSItem nss_builtins_items_203 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_204 [] = {
++static const NSSItem nss_builtins_items_202 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13757,7 +13606,7 @@ static const NSSItem nss_builtins_items_204 [] = {
+ "\103\307\003\340\067\116\135\012\334\131\040\045"
+ , (PRUint32)1964 }
+ };
+-static const NSSItem nss_builtins_items_205 [] = {
++static const NSSItem nss_builtins_items_203 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13785,7 +13634,7 @@ static const NSSItem nss_builtins_items_205 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_206 [] = {
++static const NSSItem nss_builtins_items_204 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13866,7 +13715,7 @@ static const NSSItem nss_builtins_items_206 [] = {
+ "\300\226\130\057\352\273\106\327\273\344\331\056"
+ , (PRUint32)940 }
+ };
+-static const NSSItem nss_builtins_items_207 [] = {
++static const NSSItem nss_builtins_items_205 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -13889,7 +13738,7 @@ static const NSSItem nss_builtins_items_207 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_208 [] = {
++static const NSSItem nss_builtins_items_206 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14023,7 +13872,7 @@ static const NSSItem nss_builtins_items_208 [] = {
+ "\005\211\374\170\326\134\054\046\103\251"
+ , (PRUint32)1642 }
+ };
+-static const NSSItem nss_builtins_items_209 [] = {
++static const NSSItem nss_builtins_items_207 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14051,7 +13900,7 @@ static const NSSItem nss_builtins_items_209 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_210 [] = {
++static const NSSItem nss_builtins_items_208 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14156,7 +14005,7 @@ static const NSSItem nss_builtins_items_210 [] = {
+ "\334\144\047\027\214\132\267\332\164\050\315\227\344\275"
+ , (PRUint32)1198 }
+ };
+-static const NSSItem nss_builtins_items_211 [] = {
++static const NSSItem nss_builtins_items_209 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14183,7 +14032,7 @@ static const NSSItem nss_builtins_items_211 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_212 [] = {
++static const NSSItem nss_builtins_items_210 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14288,7 +14137,7 @@ static const NSSItem nss_builtins_items_212 [] = {
+ "\016\121\075\157\373\226\126\200\342\066\027\321\334\344"
+ , (PRUint32)1198 }
+ };
+-static const NSSItem nss_builtins_items_213 [] = {
++static const NSSItem nss_builtins_items_211 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14315,7 +14164,7 @@ static const NSSItem nss_builtins_items_213 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_214 [] = {
++static const NSSItem nss_builtins_items_212 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14408,7 +14257,7 @@ static const NSSItem nss_builtins_items_214 [] = {
+ "\230"
+ , (PRUint32)993 }
+ };
+-static const NSSItem nss_builtins_items_215 [] = {
++static const NSSItem nss_builtins_items_213 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14435,7 +14284,7 @@ static const NSSItem nss_builtins_items_215 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_216 [] = {
++static const NSSItem nss_builtins_items_214 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14524,7 +14373,7 @@ static const NSSItem nss_builtins_items_216 [] = {
+ "\126\144\127"
+ , (PRUint32)931 }
+ };
+-static const NSSItem nss_builtins_items_217 [] = {
++static const NSSItem nss_builtins_items_215 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14551,7 +14400,7 @@ static const NSSItem nss_builtins_items_217 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_218 [] = {
++static const NSSItem nss_builtins_items_216 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14632,7 +14481,7 @@ static const NSSItem nss_builtins_items_218 [] = {
+ "\000\147\240\161\000\202\110"
+ , (PRUint32)919 }
+ };
+-static const NSSItem nss_builtins_items_219 [] = {
++static const NSSItem nss_builtins_items_217 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14656,7 +14505,7 @@ static const NSSItem nss_builtins_items_219 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_220 [] = {
++static const NSSItem nss_builtins_items_218 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14738,7 +14587,7 @@ static const NSSItem nss_builtins_items_220 [] = {
+ "\316\145\006\056\135\322\052\123\164\136\323\156\047\236\217"
+ , (PRUint32)943 }
+ };
+-static const NSSItem nss_builtins_items_221 [] = {
++static const NSSItem nss_builtins_items_219 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14762,7 +14611,7 @@ static const NSSItem nss_builtins_items_221 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_222 [] = {
++static const NSSItem nss_builtins_items_220 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14843,7 +14692,7 @@ static const NSSItem nss_builtins_items_222 [] = {
+ "\246\210\070\316\125"
+ , (PRUint32)933 }
+ };
+-static const NSSItem nss_builtins_items_223 [] = {
++static const NSSItem nss_builtins_items_221 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14866,7 +14715,7 @@ static const NSSItem nss_builtins_items_223 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_224 [] = {
++static const NSSItem nss_builtins_items_222 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -14985,7 +14834,7 @@ static const NSSItem nss_builtins_items_224 [] = {
+ "\201\370\021\234"
+ , (PRUint32)1460 }
+ };
+-static const NSSItem nss_builtins_items_225 [] = {
++static const NSSItem nss_builtins_items_223 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15011,7 +14860,7 @@ static const NSSItem nss_builtins_items_225 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_226 [] = {
++static const NSSItem nss_builtins_items_224 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15145,7 +14994,7 @@ static const NSSItem nss_builtins_items_226 [] = {
+ "\311\234\220\332\354\251\102\074\255\266\002"
+ , (PRUint32)1307 }
+ };
+-static const NSSItem nss_builtins_items_227 [] = {
++static const NSSItem nss_builtins_items_225 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15183,7 +15032,7 @@ static const NSSItem nss_builtins_items_227 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_228 [] = {
++static const NSSItem nss_builtins_items_226 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15261,7 +15110,7 @@ static const NSSItem nss_builtins_items_228 [] = {
+ "\366\324\357\277\114\210\150"
+ , (PRUint32)855 }
+ };
+-static const NSSItem nss_builtins_items_229 [] = {
++static const NSSItem nss_builtins_items_227 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15285,7 +15134,7 @@ static const NSSItem nss_builtins_items_229 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_230 [] = {
++static const NSSItem nss_builtins_items_228 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15363,7 +15212,7 @@ static const NSSItem nss_builtins_items_230 [] = {
+ "\246\347\313\100\003\335\171"
+ , (PRUint32)855 }
+ };
+-static const NSSItem nss_builtins_items_231 [] = {
++static const NSSItem nss_builtins_items_229 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15387,7 +15236,7 @@ static const NSSItem nss_builtins_items_231 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_232 [] = {
++static const NSSItem nss_builtins_items_230 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15514,7 +15363,7 @@ static const NSSItem nss_builtins_items_232 [] = {
+ "\320\352\111\242\034\215\122\024\246\012\223"
+ , (PRUint32)1515 }
+ };
+-static const NSSItem nss_builtins_items_233 [] = {
++static const NSSItem nss_builtins_items_231 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15542,7 +15391,7 @@ static const NSSItem nss_builtins_items_233 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_234 [] = {
++static const NSSItem nss_builtins_items_232 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15616,7 +15465,7 @@ static const NSSItem nss_builtins_items_234 [] = {
+ "\366\356\260\132\116\111\104\124\130\137\102\203"
+ , (PRUint32)828 }
+ };
+-static const NSSItem nss_builtins_items_235 [] = {
++static const NSSItem nss_builtins_items_233 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15639,7 +15488,7 @@ static const NSSItem nss_builtins_items_235 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_236 [] = {
++static const NSSItem nss_builtins_items_234 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15715,7 +15564,7 @@ static const NSSItem nss_builtins_items_236 [] = {
+ "\011\333\212\101\202\236\146\233\021"
+ , (PRUint32)857 }
+ };
+-static const NSSItem nss_builtins_items_237 [] = {
++static const NSSItem nss_builtins_items_235 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15738,7 +15587,7 @@ static const NSSItem nss_builtins_items_237 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_238 [] = {
++static const NSSItem nss_builtins_items_236 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15821,7 +15670,7 @@ static const NSSItem nss_builtins_items_238 [] = {
+ "\262\033\211\124"
+ , (PRUint32)932 }
+ };
+-static const NSSItem nss_builtins_items_239 [] = {
++static const NSSItem nss_builtins_items_237 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15845,7 +15694,7 @@ static const NSSItem nss_builtins_items_239 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_240 [] = {
++static const NSSItem nss_builtins_items_238 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15945,7 +15794,7 @@ static const NSSItem nss_builtins_items_240 [] = {
+ "\021\055"
+ , (PRUint32)1026 }
+ };
+-static const NSSItem nss_builtins_items_241 [] = {
++static const NSSItem nss_builtins_items_239 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -15975,7 +15824,7 @@ static const NSSItem nss_builtins_items_241 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_242 [] = {
++static const NSSItem nss_builtins_items_240 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16049,7 +15898,7 @@ static const NSSItem nss_builtins_items_242 [] = {
+ "\367\130\077\056\162\002\127\243\217\241\024\056"
+ , (PRUint32)652 }
+ };
+-static const NSSItem nss_builtins_items_243 [] = {
++static const NSSItem nss_builtins_items_241 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16078,7 +15927,7 @@ static const NSSItem nss_builtins_items_243 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_244 [] = {
++static const NSSItem nss_builtins_items_242 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16184,7 +16033,7 @@ static const NSSItem nss_builtins_items_244 [] = {
+ "\061\324\100\032\142\064\066\077\065\001\256\254\143\240"
+ , (PRUint32)1070 }
+ };
+-static const NSSItem nss_builtins_items_245 [] = {
++static const NSSItem nss_builtins_items_243 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16216,7 +16065,7 @@ static const NSSItem nss_builtins_items_245 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_246 [] = {
++static const NSSItem nss_builtins_items_244 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16295,7 +16144,7 @@ static const NSSItem nss_builtins_items_246 [] = {
+ "\017\212"
+ , (PRUint32)690 }
+ };
+-static const NSSItem nss_builtins_items_247 [] = {
++static const NSSItem nss_builtins_items_245 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16325,7 +16174,7 @@ static const NSSItem nss_builtins_items_247 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_248 [] = {
++static const NSSItem nss_builtins_items_246 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16440,7 +16289,7 @@ static const NSSItem nss_builtins_items_248 [] = {
+ "\354\315\202\141\361\070\346\117\227\230\052\132\215"
+ , (PRUint32)1213 }
+ };
+-static const NSSItem nss_builtins_items_249 [] = {
++static const NSSItem nss_builtins_items_247 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16472,7 +16321,7 @@ static const NSSItem nss_builtins_items_249 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_250 [] = {
++static const NSSItem nss_builtins_items_248 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16570,7 +16419,7 @@ static const NSSItem nss_builtins_items_250 [] = {
+ "\055\247\330\206\052\335\056\020"
+ , (PRUint32)904 }
+ };
+-static const NSSItem nss_builtins_items_251 [] = {
++static const NSSItem nss_builtins_items_249 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16603,7 +16452,7 @@ static const NSSItem nss_builtins_items_251 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_252 [] = {
++static const NSSItem nss_builtins_items_250 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16705,7 +16554,7 @@ static const NSSItem nss_builtins_items_252 [] = {
+ "\330\316\304\143\165\077\131\107\261"
+ , (PRUint32)1049 }
+ };
+-static const NSSItem nss_builtins_items_253 [] = {
++static const NSSItem nss_builtins_items_251 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16735,7 +16584,7 @@ static const NSSItem nss_builtins_items_253 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_254 [] = {
++static const NSSItem nss_builtins_items_252 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16854,7 +16703,7 @@ static const NSSItem nss_builtins_items_254 [] = {
+ "\370\161\012\334\271\374\175\062\140\346\353\257\212\001"
+ , (PRUint32)1486 }
+ };
+-static const NSSItem nss_builtins_items_255 [] = {
++static const NSSItem nss_builtins_items_253 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16879,7 +16728,7 @@ static const NSSItem nss_builtins_items_255 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_256 [] = {
++static const NSSItem nss_builtins_items_254 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16969,7 +16818,7 @@ static const NSSItem nss_builtins_items_256 [] = {
+ "\315\345\250"
+ , (PRUint32)1043 }
+ };
+-static const NSSItem nss_builtins_items_257 [] = {
++static const NSSItem nss_builtins_items_255 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -16993,7 +16842,7 @@ static const NSSItem nss_builtins_items_257 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_258 [] = {
++static const NSSItem nss_builtins_items_256 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17098,7 +16947,7 @@ static const NSSItem nss_builtins_items_258 [] = {
+ "\115\273\306\104\333\066\313\052\234\216"
+ , (PRUint32)1258 }
+ };
+-static const NSSItem nss_builtins_items_259 [] = {
++static const NSSItem nss_builtins_items_257 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17123,7 +16972,7 @@ static const NSSItem nss_builtins_items_259 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_260 [] = {
++static const NSSItem nss_builtins_items_258 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17199,7 +17048,7 @@ static const NSSItem nss_builtins_items_260 [] = {
+ "\002\153\331\132"
+ , (PRUint32)820 }
+ };
+-static const NSSItem nss_builtins_items_261 [] = {
++static const NSSItem nss_builtins_items_259 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17223,7 +17072,7 @@ static const NSSItem nss_builtins_items_261 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_262 [] = {
++static const NSSItem nss_builtins_items_260 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17305,7 +17154,7 @@ static const NSSItem nss_builtins_items_262 [] = {
+ "\362"
+ , (PRUint32)881 }
+ };
+-static const NSSItem nss_builtins_items_263 [] = {
++static const NSSItem nss_builtins_items_261 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17330,7 +17179,7 @@ static const NSSItem nss_builtins_items_263 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_264 [] = {
++static const NSSItem nss_builtins_items_262 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17446,7 +17295,7 @@ static const NSSItem nss_builtins_items_264 [] = {
+ "\113\076\053\070\007\125\230\136\244"
+ , (PRUint32)1465 }
+ };
+-static const NSSItem nss_builtins_items_265 [] = {
++static const NSSItem nss_builtins_items_263 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17470,7 +17319,7 @@ static const NSSItem nss_builtins_items_265 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_266 [] = {
++static const NSSItem nss_builtins_items_264 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17535,7 +17384,7 @@ static const NSSItem nss_builtins_items_266 [] = {
+ "\375\166\004\333\142\273\220\152\003\331\106\065\331\370\174\133"
+ , (PRUint32)576 }
+ };
+-static const NSSItem nss_builtins_items_267 [] = {
++static const NSSItem nss_builtins_items_265 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17562,7 +17411,7 @@ static const NSSItem nss_builtins_items_267 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_268 [] = {
++static const NSSItem nss_builtins_items_266 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17627,7 +17476,7 @@ static const NSSItem nss_builtins_items_268 [] = {
+ "\054\163\031\110\151\116\153\174\145\277\017\374\160\316\210\220"
+ , (PRUint32)576 }
+ };
+-static const NSSItem nss_builtins_items_269 [] = {
++static const NSSItem nss_builtins_items_267 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17654,7 +17503,7 @@ static const NSSItem nss_builtins_items_269 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_270 [] = {
++static const NSSItem nss_builtins_items_268 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17751,7 +17600,7 @@ static const NSSItem nss_builtins_items_270 [] = {
+ "\202\042\055\172\124\253\160\303\175\042\145\202\160\226"
+ , (PRUint32)1038 }
+ };
+-static const NSSItem nss_builtins_items_271 [] = {
++static const NSSItem nss_builtins_items_269 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17779,7 +17628,7 @@ static const NSSItem nss_builtins_items_271 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_272 [] = {
++static const NSSItem nss_builtins_items_270 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17870,7 +17719,7 @@ static const NSSItem nss_builtins_items_272 [] = {
+ "\336\102\343\055\202\361\017\345\372\227"
+ , (PRUint32)954 }
+ };
+-static const NSSItem nss_builtins_items_273 [] = {
++static const NSSItem nss_builtins_items_271 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17898,7 +17747,7 @@ static const NSSItem nss_builtins_items_273 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_274 [] = {
++static const NSSItem nss_builtins_items_272 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -17977,7 +17826,7 @@ static const NSSItem nss_builtins_items_274 [] = {
+ "\130\077\137"
+ , (PRUint32)867 }
+ };
+-static const NSSItem nss_builtins_items_275 [] = {
++static const NSSItem nss_builtins_items_273 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18001,7 +17850,7 @@ static const NSSItem nss_builtins_items_275 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_276 [] = {
++static const NSSItem nss_builtins_items_274 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18094,7 +17943,7 @@ static const NSSItem nss_builtins_items_276 [] = {
+ "\045\361\224\264\146"
+ , (PRUint32)997 }
+ };
+-static const NSSItem nss_builtins_items_277 [] = {
++static const NSSItem nss_builtins_items_275 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18121,7 +17970,7 @@ static const NSSItem nss_builtins_items_277 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_278 [] = {
++static const NSSItem nss_builtins_items_276 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18245,7 +18094,7 @@ static const NSSItem nss_builtins_items_278 [] = {
+ "\156\117\022\176\012\074\235\225"
+ , (PRUint32)1560 }
+ };
+-static const NSSItem nss_builtins_items_279 [] = {
++static const NSSItem nss_builtins_items_277 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18270,7 +18119,7 @@ static const NSSItem nss_builtins_items_279 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_280 [] = {
++static const NSSItem nss_builtins_items_278 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18389,7 +18238,7 @@ static const NSSItem nss_builtins_items_280 [] = {
+ "\333\374\046\210\307"
+ , (PRUint32)1525 }
+ };
+-static const NSSItem nss_builtins_items_281 [] = {
++static const NSSItem nss_builtins_items_279 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18413,7 +18262,7 @@ static const NSSItem nss_builtins_items_281 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_282 [] = {
++static const NSSItem nss_builtins_items_280 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18569,7 +18418,7 @@ static const NSSItem nss_builtins_items_282 [] = {
+ "\167\110\320"
+ , (PRUint32)1875 }
+ };
+-static const NSSItem nss_builtins_items_283 [] = {
++static const NSSItem nss_builtins_items_281 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18600,7 +18449,7 @@ static const NSSItem nss_builtins_items_283 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_284 [] = {
++static const NSSItem nss_builtins_items_282 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18753,7 +18602,7 @@ static const NSSItem nss_builtins_items_284 [] = {
+ "\351\233\256\325\124\300\164\200\321\013\102\237\301"
+ , (PRUint32)1869 }
+ };
+-static const NSSItem nss_builtins_items_285 [] = {
++static const NSSItem nss_builtins_items_283 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18783,7 +18632,7 @@ static const NSSItem nss_builtins_items_285 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_286 [] = {
++static const NSSItem nss_builtins_items_284 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18919,7 +18768,7 @@ static const NSSItem nss_builtins_items_286 [] = {
+ "\242\355\264\324\265\145\103\267\223\106\212\323"
+ , (PRUint32)1532 }
+ };
+-static const NSSItem nss_builtins_items_287 [] = {
++static const NSSItem nss_builtins_items_285 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -18949,7 +18798,7 @@ static const NSSItem nss_builtins_items_287 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_288 [] = {
++static const NSSItem nss_builtins_items_286 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19100,7 +18949,7 @@ static const NSSItem nss_builtins_items_288 [] = {
+ "\264"
+ , (PRUint32)1761 }
+ };
+-static const NSSItem nss_builtins_items_289 [] = {
++static const NSSItem nss_builtins_items_287 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19130,7 +18979,7 @@ static const NSSItem nss_builtins_items_289 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_290 [] = {
++static const NSSItem nss_builtins_items_288 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19266,7 +19115,7 @@ static const NSSItem nss_builtins_items_290 [] = {
+ "\111\043"
+ , (PRUint32)1522 }
+ };
+-static const NSSItem nss_builtins_items_291 [] = {
++static const NSSItem nss_builtins_items_289 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19296,7 +19145,7 @@ static const NSSItem nss_builtins_items_291 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_292 [] = {
++static const NSSItem nss_builtins_items_290 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19431,7 +19280,7 @@ static const NSSItem nss_builtins_items_292 [] = {
+ "\172\244\047\023\326\117\364\151"
+ , (PRUint32)1512 }
+ };
+-static const NSSItem nss_builtins_items_293 [] = {
++static const NSSItem nss_builtins_items_291 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19461,7 +19310,7 @@ static const NSSItem nss_builtins_items_293 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_294 [] = {
++static const NSSItem nss_builtins_items_292 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19597,7 +19446,7 @@ static const NSSItem nss_builtins_items_294 [] = {
+ "\302\021\254"
+ , (PRUint32)1523 }
+ };
+-static const NSSItem nss_builtins_items_295 [] = {
++static const NSSItem nss_builtins_items_293 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19627,7 +19476,7 @@ static const NSSItem nss_builtins_items_295 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_296 [] = {
++static const NSSItem nss_builtins_items_294 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19763,7 +19612,7 @@ static const NSSItem nss_builtins_items_296 [] = {
+ "\147\024\060"
+ , (PRUint32)1523 }
+ };
+-static const NSSItem nss_builtins_items_297 [] = {
++static const NSSItem nss_builtins_items_295 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19793,7 +19642,7 @@ static const NSSItem nss_builtins_items_297 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_298 [] = {
++static const NSSItem nss_builtins_items_296 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19927,7 +19776,7 @@ static const NSSItem nss_builtins_items_298 [] = {
+ "\217\116\235\306\066\347\134\246\253\022\017\326\317"
+ , (PRUint32)1501 }
+ };
+-static const NSSItem nss_builtins_items_299 [] = {
++static const NSSItem nss_builtins_items_297 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -19957,7 +19806,7 @@ static const NSSItem nss_builtins_items_299 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_300 [] = {
++static const NSSItem nss_builtins_items_298 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20091,7 +19940,7 @@ static const NSSItem nss_builtins_items_300 [] = {
+ "\130\113\161\203\237\146\346\254\171\110\376\376\107"
+ , (PRUint32)1501 }
+ };
+-static const NSSItem nss_builtins_items_301 [] = {
++static const NSSItem nss_builtins_items_299 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20121,7 +19970,7 @@ static const NSSItem nss_builtins_items_301 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_302 [] = {
++static const NSSItem nss_builtins_items_300 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20256,7 +20105,7 @@ static const NSSItem nss_builtins_items_302 [] = {
+ "\200\246\202\254\344\154\201\106\273\122\205\040\044\370\200\352"
+ , (PRUint32)1520 }
+ };
+-static const NSSItem nss_builtins_items_303 [] = {
++static const NSSItem nss_builtins_items_301 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20286,7 +20135,7 @@ static const NSSItem nss_builtins_items_303 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_304 [] = {
++static const NSSItem nss_builtins_items_302 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20414,7 +20263,7 @@ static const NSSItem nss_builtins_items_304 [] = {
+ "\154\174\107\306\327\224\021\041\354\326\132\322\335\217\177\221"
+ , (PRUint32)1392 }
+ };
+-static const NSSItem nss_builtins_items_305 [] = {
++static const NSSItem nss_builtins_items_303 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20444,7 +20293,7 @@ static const NSSItem nss_builtins_items_305 [] = {
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_306 [] = {
++static const NSSItem nss_builtins_items_304 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20537,7 +20386,7 @@ static const NSSItem nss_builtins_items_306 [] = {
+ "\342\342\104\276\134\367\352\034\365"
+ , (PRUint32)969 }
+ };
+-static const NSSItem nss_builtins_items_307 [] = {
++static const NSSItem nss_builtins_items_305 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20565,7 +20414,7 @@ static const NSSItem nss_builtins_items_307 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_308 [] = {
++static const NSSItem nss_builtins_items_306 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20662,7 +20511,7 @@ static const NSSItem nss_builtins_items_308 [] = {
+ "\364"
+ , (PRUint32)993 }
+ };
+-static const NSSItem nss_builtins_items_309 [] = {
++static const NSSItem nss_builtins_items_307 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20691,7 +20540,7 @@ static const NSSItem nss_builtins_items_309 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_310 [] = {
++static const NSSItem nss_builtins_items_308 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20789,7 +20638,7 @@ static const NSSItem nss_builtins_items_310 [] = {
+ "\261\050\272"
+ , (PRUint32)1011 }
+ };
+-static const NSSItem nss_builtins_items_311 [] = {
++static const NSSItem nss_builtins_items_309 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20818,7 +20667,7 @@ static const NSSItem nss_builtins_items_311 [] = {
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_312 [] = {
++static const NSSItem nss_builtins_items_310 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20895,7 +20744,7 @@ static const NSSItem nss_builtins_items_312 [] = {
+ "\007\072\027\144\265\004\265\043\041\231\012\225\073\227\174\357"
+ , (PRUint32)848 }
+ };
+-static const NSSItem nss_builtins_items_313 [] = {
++static const NSSItem nss_builtins_items_311 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20919,7 +20768,7 @@ static const NSSItem nss_builtins_items_313 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_314 [] = {
++static const NSSItem nss_builtins_items_312 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -20996,7 +20845,7 @@ static const NSSItem nss_builtins_items_314 [] = {
+ "\355\132\000\124\205\034\026\066\222\014\134\372\246\255\277\333"
+ , (PRUint32)848 }
+ };
+-static const NSSItem nss_builtins_items_315 [] = {
++static const NSSItem nss_builtins_items_313 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21020,7 +20869,7 @@ static const NSSItem nss_builtins_items_315 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_316 [] = {
++static const NSSItem nss_builtins_items_314 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21129,7 +20978,7 @@ static const NSSItem nss_builtins_items_316 [] = {
+ "\051\340\266\270\011\150\031\034\030\103"
+ , (PRUint32)1354 }
+ };
+-static const NSSItem nss_builtins_items_317 [] = {
++static const NSSItem nss_builtins_items_315 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21153,7 +21002,7 @@ static const NSSItem nss_builtins_items_317 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_318 [] = {
++static const NSSItem nss_builtins_items_316 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21210,7 +21059,7 @@ static const NSSItem nss_builtins_items_318 [] = {
+ "\214\171"
+ , (PRUint32)514 }
+ };
+-static const NSSItem nss_builtins_items_319 [] = {
++static const NSSItem nss_builtins_items_317 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21234,7 +21083,7 @@ static const NSSItem nss_builtins_items_319 [] = {
+ { (void *)&ckt_netscape_trust_unknown, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+ };
+-static const NSSItem nss_builtins_items_320 [] = {
++static const NSSItem nss_builtins_items_318 [] = {
+ { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21324,7 +21173,7 @@ static const NSSItem nss_builtins_items_320 [] = {
+ "\326\267\064\365\176\316\071\232\331\070\361\121\367\117\054"
+ , (PRUint32)959 }
+ };
+-static const NSSItem nss_builtins_items_321 [] = {
++static const NSSItem nss_builtins_items_319 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+@@ -21675,13 +21524,11 @@ nss_builtins_data[] = {
+ { 11, nss_builtins_types_316, nss_builtins_items_316, {NULL} },
+ { 13, nss_builtins_types_317, nss_builtins_items_317, {NULL} },
+ { 11, nss_builtins_types_318, nss_builtins_items_318, {NULL} },
+- { 13, nss_builtins_types_319, nss_builtins_items_319, {NULL} },
+- { 11, nss_builtins_types_320, nss_builtins_items_320, {NULL} },
+- { 13, nss_builtins_types_321, nss_builtins_items_321, {NULL} }
++ { 13, nss_builtins_types_319, nss_builtins_items_319, {NULL} }
+ };
+ const PRUint32
+ #ifdef DEBUG
+- nss_builtins_nObjects = 321+1;
++ nss_builtins_nObjects = 319+1;
+ #else
+- nss_builtins_nObjects = 321;
++ nss_builtins_nObjects = 319;
+ #endif /* DEBUG */
+diff --git a/security/nss/lib/ckfw/builtins/certdata.txt b/security/nss/lib/ckfw/builtins/certdata.txt
+index 42e674b..a7de86a 100644
+--- a/security/nss/lib/ckfw/builtins/certdata.txt
++++ b/security/nss/lib/ckfw/builtins/certdata.txt
+@@ -12461,161 +12461,6 @@ CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+ CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+
+ #
+-# Certificate "DigiNotar Root CA"
+-#
+-CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+-CKA_TOKEN CK_BBOOL CK_TRUE
+-CKA_PRIVATE CK_BBOOL CK_FALSE
+-CKA_MODIFIABLE CK_BBOOL CK_FALSE
+-CKA_LABEL UTF8 "DigiNotar Root CA"
+-CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+-CKA_SUBJECT MULTILINE_OCTAL
+-\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+-\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157
+-\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151
+-\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061
+-\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021
+-\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156
+-\154
+-END
+-CKA_ID UTF8 "0"
+-CKA_ISSUER MULTILINE_OCTAL
+-\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+-\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157
+-\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151
+-\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061
+-\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021
+-\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156
+-\154
+-END
+-CKA_SERIAL_NUMBER MULTILINE_OCTAL
+-\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223
+-\074\114
+-END
+-CKA_VALUE MULTILINE_OCTAL
+-\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\014
+-\166\332\234\221\014\116\054\236\376\025\320\130\223\074\114\060
+-\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\137
+-\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022\060
+-\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164\141
+-\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147\151
+-\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040\060
+-\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156
+-\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154\060
+-\036\027\015\060\067\060\065\061\066\061\067\061\071\063\066\132
+-\027\015\062\065\060\063\063\061\061\070\061\071\062\061\132\060
+-\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022
+-\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164
+-\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147
+-\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040
+-\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151
+-\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154
+-\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001
+-\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001
+-\000\254\260\130\301\000\275\330\041\010\013\053\232\376\156\126
+-\060\005\237\033\167\220\020\101\134\303\015\207\021\167\216\201
+-\361\312\174\351\214\152\355\070\164\065\273\332\337\371\273\300
+-\011\067\264\226\163\201\175\063\032\230\071\367\223\157\225\177
+-\075\271\261\165\207\272\121\110\350\213\160\076\225\004\305\330
+-\266\303\026\331\210\260\261\207\035\160\332\206\264\017\024\213
+-\172\317\020\321\164\066\242\022\173\167\206\112\171\346\173\337
+-\002\021\150\245\116\206\256\064\130\233\044\023\170\126\042\045
+-\036\001\213\113\121\161\373\202\314\131\226\151\210\132\150\123
+-\305\271\015\002\067\313\113\274\146\112\220\176\052\013\005\007
+-\355\026\137\125\220\165\330\106\311\033\203\342\010\276\361\043
+-\314\231\035\326\052\017\203\040\025\130\047\202\056\372\342\042
+-\302\111\261\271\001\201\152\235\155\235\100\167\150\166\116\041
+-\052\155\204\100\205\116\166\231\174\202\363\363\267\002\131\324
+-\046\001\033\216\337\255\123\006\321\256\030\335\342\262\072\313
+-\327\210\070\216\254\133\051\271\031\323\230\371\030\003\317\110
+-\202\206\146\013\033\151\017\311\353\070\210\172\046\032\005\114
+-\222\327\044\324\226\362\254\122\055\243\107\325\122\366\077\376
+-\316\204\006\160\246\252\076\242\362\266\126\064\030\127\242\344
+-\201\155\347\312\360\152\323\307\221\153\002\203\101\174\025\357
+-\153\232\144\136\343\320\074\345\261\353\173\135\206\373\313\346
+-\167\111\315\243\145\334\367\271\234\270\344\013\137\223\317\314
+-\060\032\062\034\316\034\143\225\245\371\352\341\164\213\236\351
+-\053\251\060\173\240\030\037\016\030\013\345\133\251\323\321\154
+-\036\007\147\217\221\113\251\212\274\322\146\252\223\001\210\262
+-\221\372\061\134\325\246\301\122\010\011\315\012\143\242\323\042
+-\246\350\241\331\071\006\227\365\156\215\002\220\214\024\173\077
+-\200\315\033\234\272\304\130\162\043\257\266\126\237\306\172\102
+-\063\051\007\077\202\311\346\037\005\015\315\114\050\066\213\323
+-\310\076\034\306\210\357\136\356\211\144\351\035\353\332\211\176
+-\062\246\151\321\335\314\210\237\321\320\311\146\041\334\006\147
+-\305\224\172\232\155\142\114\175\314\340\144\200\262\236\107\216
+-\243\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035
+-\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125
+-\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125
+-\035\016\004\026\004\024\210\150\277\340\216\065\304\073\070\153
+-\142\367\050\073\204\201\310\014\327\115\060\015\006\011\052\206
+-\110\206\367\015\001\001\005\005\000\003\202\002\001\000\073\002
+-\215\313\074\060\350\156\240\255\362\163\263\137\236\045\023\004
+-\005\323\366\343\213\273\013\171\316\123\336\344\226\305\321\257
+-\163\274\325\303\320\100\125\174\100\177\315\033\137\011\325\362
+-\174\237\150\035\273\135\316\172\071\302\214\326\230\173\305\203
+-\125\250\325\175\100\312\340\036\367\211\136\143\135\241\023\302
+-\135\212\266\212\174\000\363\043\303\355\205\137\161\166\360\150
+-\143\252\105\041\071\110\141\170\066\334\361\103\223\324\045\307
+-\362\200\145\341\123\002\165\121\374\172\072\357\067\253\204\050
+-\127\014\330\324\324\231\126\154\343\242\376\131\204\264\061\350
+-\063\370\144\224\224\121\227\253\071\305\113\355\332\335\200\013
+-\157\174\051\015\304\216\212\162\015\347\123\024\262\140\101\075
+-\204\221\061\150\075\047\104\333\345\336\364\372\143\105\310\114
+-\076\230\365\077\101\272\116\313\067\015\272\146\230\361\335\313
+-\237\134\367\124\066\202\153\054\274\023\141\227\102\370\170\273
+-\314\310\242\237\312\360\150\275\153\035\262\337\215\157\007\235
+-\332\216\147\307\107\036\312\271\277\052\102\221\267\143\123\146
+-\361\102\243\341\364\132\115\130\153\265\344\244\063\255\134\160
+-\035\334\340\362\353\163\024\221\232\003\301\352\000\145\274\007
+-\374\317\022\021\042\054\256\240\275\072\340\242\052\330\131\351
+-\051\323\030\065\244\254\021\137\031\265\265\033\377\042\112\134
+-\306\172\344\027\357\040\251\247\364\077\255\212\247\232\004\045
+-\235\016\312\067\346\120\375\214\102\051\004\232\354\271\317\113
+-\162\275\342\010\066\257\043\057\142\345\312\001\323\160\333\174
+-\202\043\054\026\061\014\306\066\007\220\172\261\037\147\130\304
+-\073\130\131\211\260\214\214\120\263\330\206\313\150\243\304\012
+-\347\151\113\040\316\301\036\126\113\225\251\043\150\330\060\330
+-\303\353\260\125\121\315\345\375\053\270\365\273\021\237\123\124
+-\366\064\031\214\171\011\066\312\141\027\045\027\013\202\230\163
+-\014\167\164\303\325\015\307\250\022\114\307\247\124\161\107\056
+-\054\032\175\311\343\053\073\110\336\047\204\247\143\066\263\175
+-\217\240\144\071\044\015\075\173\207\257\146\134\164\033\113\163
+-\262\345\214\360\206\231\270\345\305\337\204\301\267\353
+-END
+-
+-# Trust for Certificate "DigiNotar Root CA"
+-CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+-CKA_TOKEN CK_BBOOL CK_TRUE
+-CKA_PRIVATE CK_BBOOL CK_FALSE
+-CKA_MODIFIABLE CK_BBOOL CK_FALSE
+-CKA_LABEL UTF8 "DigiNotar Root CA"
+-CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+-\300\140\355\104\313\330\201\275\016\370\154\013\242\207\335\317
+-\201\147\107\214
+-END
+-CKA_CERT_MD5_HASH MULTILINE_OCTAL
+-\172\171\124\115\007\222\073\133\377\101\360\016\307\071\242\230
+-END
+-CKA_ISSUER MULTILINE_OCTAL
+-\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+-\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157
+-\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151
+-\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061
+-\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021
+-\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156
+-\154
+-END
+-CKA_SERIAL_NUMBER MULTILINE_OCTAL
+-\002\020\014\166\332\234\221\014\116\054\236\376\025\320\130\223
+-\074\114
+-END
+-CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+-CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUST_UNKNOWN
+-CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+-CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
+-
+-#
+ # Certificate "Network Solutions Certificate Authority"
+ #
+ CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+--
+1.7.3.4
+
diff --git a/src/current-patches/0005-Smash-the-state.patch b/src/current-patches/0005-Smash-the-state.patch
new file mode 100644
index 0000000..6a6b69e
--- /dev/null
+++ b/src/current-patches/0005-Smash-the-state.patch
@@ -0,0 +1,31 @@
+From 6215e898232ba74a3676f87226a64501874fcbd2 Mon Sep 17 00:00:00 2001
+From: Mike Perry <mikeperry-git(a)fscked.org>
+Date: Tue, 30 Aug 2011 13:34:14 -0700
+Subject: [PATCH 5/5] Smash the state.
+
+What happened to you, Nederlanden? You used to be cool.
+---
+ security/manager/ssl/src/nsNSSCallbacks.cpp | 7 -------
+ 1 files changed, 0 insertions(+), 7 deletions(-)
+
+diff --git a/security/manager/ssl/src/nsNSSCallbacks.cpp b/security/manager/ssl/src/nsNSSCallbacks.cpp
+index 5e3a888..43e1c19 100644
+--- a/security/manager/ssl/src/nsNSSCallbacks.cpp
++++ b/security/manager/ssl/src/nsNSSCallbacks.cpp
+@@ -1065,13 +1065,6 @@ PSM_SSL_BlacklistDigiNotar(CERTCertificate * serverCert,
+ }
+ }
+ }
+-
+- // By request of the Dutch government
+- if (!strcmp(node->cert->issuerName,
+- "CN=Staat der Nederlanden Root CA,O=Staat der Nederlanden,C=NL") &&
+- CERT_LIST_END(CERT_LIST_NEXT(node), serverCertChain)) {
+- return 0;
+- }
+ }
+
+ if (isDigiNotarIssuedCert)
+--
+1.7.3.4
+
1
0
commit f46f6aabb4da8d7c185bf46cb05a9469ca1f11df
Author: Steven Murdoch <Steven.Murdoch(a)cl.cam.ac.uk>
Date: Mon Aug 22 18:13:58 2011 +0100
Fix some compiler warnings
---
src/common/util.c | 8 ++++----
src/test/test_util.c | 2 ++
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/common/util.c b/src/common/util.c
index 517cc3e..48e48ce 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -3058,6 +3058,9 @@ tor_spawn_background(const char *const filename, const char **argv)
HANDLE stderr_pipe_read = NULL;
HANDLE stderr_pipe_write = NULL;
+ STARTUPINFO siStartInfo;
+ BOOL retval = FALSE;
+
SECURITY_ATTRIBUTES saAttr;
smartlist_t *argv_list;
char *joined_argv;
@@ -3105,9 +3108,6 @@ tor_spawn_background(const char *const filename, const char **argv)
joined_argv = smartlist_join_strings(argv_list, " ", 0, NULL);
- STARTUPINFO siStartInfo;
- BOOL retval = FALSE;
-
ZeroMemory(&process_handle.pid, sizeof(PROCESS_INFORMATION));
ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));
siStartInfo.cb = sizeof(STARTUPINFO);
@@ -3592,7 +3592,7 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
#define TIME_TO_EXEC_FWHELPER_FAIL 60
#ifdef MS_WINDOWS
- static process_handle_t child_handle = {0, NULL, NULL, {NULL}};
+ static process_handle_t child_handle = {0, NULL, NULL, {NULL, NULL, 0, 0}};
#else
static process_handle_t child_handle;
#endif
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 6f87560..40de76a 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -1493,6 +1493,8 @@ test_util_spawn_background_partial_read(void *ptr)
process_handle_t process_handle;
char stdout_buf[100], stderr_buf[100];
+ (void)ptr;
+
/* Start the program */
process_handle = tor_spawn_background(argv[0], argv);
tt_int_op(process_handle.status, ==, expected_status);
1
0
commit 2efafdfe14411b800e9350e527955ca74f3c704b
Author: Steven Murdoch <Steven.Murdoch(a)cl.cam.ac.uk>
Date: Tue Aug 23 01:09:24 2011 +0100
Fix compilation errors under *nix
---
src/common/util.c | 9 ++++++---
src/common/util.h | 2 ++
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/common/util.c b/src/common/util.c
index 36b5966..f25dd43 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -3071,6 +3071,7 @@ tor_spawn_background(const char *const filename, const char **argv)
saAttr.lpSecurityDescriptor = NULL;
/* Assume failure to start process */
+ memset(&process_handle, 0, sizeof(process_handle));
process_handle.status = -1;
/* Set up pipe for stdout */
@@ -3167,6 +3168,7 @@ tor_spawn_background(const char *const filename, const char **argv)
static int max_fd = -1;
/* Assume failure to start */
+ memset(&process_handle, 0, sizeof(process_handle));
process_handle.status = -1;
/* We do the strlen here because strlen() is not signal handler safe,
@@ -3374,8 +3376,6 @@ tor_get_exit_code(const process_handle_t process_handle,
return -1;
}
}
-
- return 0;
#else
int stat_loc;
int retval;
@@ -3398,6 +3398,8 @@ tor_get_exit_code(const process_handle_t process_handle,
if (exit_code != NULL)
*exit_code = WEXITSTATUS(stat_loc);
#endif // MS_WINDOWS
+
+ return 0;
}
#ifdef MS_WINDOWS
@@ -3667,7 +3669,8 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
"Started port forwarding helper (%s)", filename);
#else
log_info(LD_GENERAL,
- "Started port forwarding helper (%s) with pid %d", filename, child_pid);
+ "Started port forwarding helper (%s) with pid %d", filename,
+ child_handle.pid);
#endif
}
diff --git a/src/common/util.h b/src/common/util.h
index 9022334..b4ae3f8 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -374,7 +374,9 @@ process_handle_t tor_spawn_background(const char *const filename,
const char **argv);
int tor_get_exit_code(const process_handle_t process_handle,
int block, int *exit_code);
+#ifdef MS_WINDOWS
ssize_t tor_read_all_handle(HANDLE h, char *buf, size_t count, HANDLE hProcess);
+#endif
ssize_t tor_read_all_from_process_stdout(const process_handle_t process_handle,
char *buf, size_t count);
ssize_t tor_read_all_from_process_stderr(const process_handle_t process_handle,
1
0
commit 1ad986335a5d2fc0c9952412d25037fb70226472
Author: Steven Murdoch <Steven.Murdoch(a)cl.cam.ac.uk>
Date: Mon Aug 22 19:43:38 2011 +0100
Tidy up subprocess code
- Better error handling
- Write description of functions
- Don't assume non-negative process return values
---
src/common/util.c | 105 +++++++++++++++++++++++++++++++++----------------
src/common/util.h | 3 +-
src/test/test_util.c | 14 ++++---
3 files changed, 81 insertions(+), 41 deletions(-)
diff --git a/src/common/util.c b/src/common/util.c
index 48e48ce..36b5966 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -3070,6 +3070,7 @@ tor_spawn_background(const char *const filename, const char **argv)
saAttr.bInheritHandle = TRUE;
saAttr.lpSecurityDescriptor = NULL;
+ /* Assume failure to start process */
process_handle.status = -1;
/* Set up pipe for stdout */
@@ -3083,6 +3084,7 @@ tor_spawn_background(const char *const filename, const char **argv)
log_warn(LD_GENERAL,
"Failed to configure pipe for stdout communication with child process: %s",
format_win32_error(GetLastError()));
+ return process_handle;
}
/* Set up pipe for stderr */
@@ -3096,6 +3098,7 @@ tor_spawn_background(const char *const filename, const char **argv)
log_warn(LD_GENERAL,
"Failed to configure pipe for stderr communication with child process: %s",
format_win32_error(GetLastError()));
+ return process_handle;
}
/* Create the child process */
@@ -3163,10 +3166,8 @@ tor_spawn_background(const char *const filename, const char **argv)
static int max_fd = -1;
- // XXX
- process_handle.pid = 0;
- process_handle.stderr_pipe = 0;
- process_handle.stdout_pipe = 0;
+ /* Assume failure to start */
+ process_handle.status = -1;
/* We do the strlen here because strlen() is not signal handler safe,
and we are not allowed to use unsafe functions between fork and exec */
@@ -3180,7 +3181,6 @@ tor_spawn_background(const char *const filename, const char **argv)
log_warn(LD_GENERAL,
"Failed to set up pipe for stdout communication with child process: %s",
strerror(errno));
- process_handle.status = -1;
return process_handle;
}
@@ -3189,7 +3189,6 @@ tor_spawn_background(const char *const filename, const char **argv)
log_warn(LD_GENERAL,
"Failed to set up pipe for stderr communication with child process: %s",
strerror(errno));
- process_handle.status = -1;
return process_handle;
}
@@ -3276,7 +3275,6 @@ tor_spawn_background(const char *const filename, const char **argv)
(void) nbytes;
_exit(255);
- process_handle.status = -1;
return process_handle; /* Never reached, but avoids compiler warning */
}
@@ -3288,7 +3286,6 @@ tor_spawn_background(const char *const filename, const char **argv)
close(stdout_pipe[1]);
close(stderr_pipe[0]);
close(stderr_pipe[1]);
- process_handle.status = -1;
return process_handle;
}
@@ -3330,37 +3327,64 @@ tor_spawn_background(const char *const filename, const char **argv)
#endif // MS_WINDOWS
}
+/* Get the exit code of a process specified by <b>process_handle</b> and
+ * store it in <b>exit_code</b>, if set to a non-NULL value. If
+ * <b>block</b> is set to true, the call will block until the process has
+ * exited. Otherwise if the process is still running, the function will
+ * return -2, and exit_code will be left unchanged. Returns 0 if the
+ * process did exit. If there is a failure, -1 will be returned and the
+ * contents of exit_code (if non-NULL) will be undefined. N.B. Under *nix
+ * operating systems, this will probably not work in Tor, because
+ * waitpid() is called in main.c to reap any terminated child
+ * processes.*/
int
-tor_get_exit_code(const process_handle_t process_handle, int block)
+tor_get_exit_code(const process_handle_t process_handle,
+ int block, int *exit_code)
{
#ifdef MS_WINDOWS
- DWORD exit_code;
- BOOL retval;
+ DWORD retval;
+ BOOL success;
+
if (block) {
- exit_code = WaitForSingleObject(process_handle.pid.hProcess, INFINITE);
- retval = GetExitCodeProcess(process_handle.pid.hProcess, &exit_code);
+ /* Wait for the process to exit */
+ retval = WaitForSingleObject(process_handle.pid.hProcess, INFINITE);
+ if (retval != WAIT_OBJECT_0) {
+ log_warn(LD_GENERAL, "WaitForSingleObject() failed (%d): %s",
+ (int)retval, format_win32_error(GetLastError()));
+ return -1;
+ }
} else {
- exit_code = WaitForSingleObject(process_handle.pid.hProcess, 0);
- if (WAIT_TIMEOUT == exit_code) {
- // Process has not exited
+ retval = WaitForSingleObject(process_handle.pid.hProcess, 0);
+ if (WAIT_TIMEOUT == retval) {
+ /* Process has not exited */
return -2;
+ } else if (retval != WAIT_OBJECT_0) {
+ log_warn(LD_GENERAL, "WaitForSingleObject() failed (%d): %s",
+ (int)retval, format_win32_error(GetLastError()));
+ return -1;
}
- retval = GetExitCodeProcess(process_handle.pid.hProcess, &exit_code);
}
-
- if (!retval) {
- log_warn(LD_GENERAL, "GetExitCodeProcess() failed: %s",
- format_win32_error(GetLastError()));
- return -1;
- } else {
- return exit_code;
+
+ if (exit_code != NULL) {
+ success = GetExitCodeProcess(process_handle.pid.hProcess,
+ (PDWORD)exit_code);
+ if (!success) {
+ log_warn(LD_GENERAL, "GetExitCodeProcess() failed: %s",
+ format_win32_error(GetLastError()));
+ return -1;
+ }
}
+
+ return 0;
#else
int stat_loc;
int retval;
- retval = waitpid(process_handle.pid, &stat_loc, 0);
- if (retval != process_handle.pid) {
+ retval = waitpid(process_handle.pid, &stat_loc, block?0:WNOHANG);
+ if (!block && 0 == retval) {
+ /* Process has not exited */
+ return -2;
+ } else if (retval != process_handle.pid) {
log_warn(LD_GENERAL, "waitpid() failed for PID %d: %s", process_handle.pid,
strerror(errno));
return -1;
@@ -3371,7 +3395,8 @@ tor_get_exit_code(const process_handle_t process_handle, int block)
return -1;
}
- return WEXITSTATUS(stat_loc);
+ if (exit_code != NULL)
+ *exit_code = WEXITSTATUS(stat_loc);
#endif // MS_WINDOWS
}
@@ -3457,6 +3482,9 @@ tor_read_all_from_process_stderr(const process_handle_t process_handle,
}
#ifdef MS_WINDOWS
+/** Read from stream, and send lines to log at the specified log level.
+ * Returns -1 if there is a error reading, and 0 otherwise.
+ */
static int
log_from_handle(HANDLE *pipe, int severity)
{
@@ -3501,7 +3529,7 @@ log_from_handle(HANDLE *pipe, int severity)
}
log_fn(severity, LD_GENERAL, "Port forwarding helper says: %s", buf+start);
}
- return pos;
+ return 0;
}
#else
@@ -3588,11 +3616,13 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
{
/* When fw-helper succeeds, how long do we wait until running it again */
#define TIME_TO_EXEC_FWHELPER_SUCCESS 300
-/* When fw-helper fails, how long do we wait until running it again */
+/* When fw-helper failed to start, how long do we wait until running it again */
#define TIME_TO_EXEC_FWHELPER_FAIL 60
+ /* Static variables are initialized to zero, so child_handle.status=0
+ * which corresponds to it not running on startup */
#ifdef MS_WINDOWS
- static process_handle_t child_handle = {0, NULL, NULL, {NULL, NULL, 0, 0}};
+ static process_handle_t child_handle;
#else
static process_handle_t child_handle;
#endif
@@ -3629,6 +3659,7 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
if (child_handle.status < 0) {
log_warn(LD_GENERAL, "Failed to start port forwarding helper %s",
filename);
+ time_to_run_helper = now + TIME_TO_EXEC_FWHELPER_FAIL;
return;
}
#ifdef MS_WINDOWS
@@ -3647,7 +3678,7 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
#ifdef MS_WINDOWS
stdout_status = log_from_handle(child_handle.stdout_pipe, LOG_INFO);
stderr_status = log_from_handle(child_handle.stderr_pipe, LOG_WARN);
- // If we got this far (on Windows), the process started
+ /* If we got this far (on Windows), the process started */
retval = 0;
#else
stdout_status = log_from_pipe(child_handle.stdout_handle,
@@ -3665,13 +3696,18 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
/* There was a failure */
retval = -1;
#ifdef MS_WINDOWS
- else if (tor_get_exit_code(child_handle, 0) >= 0) {
+ else if (tor_get_exit_code(child_handle, 0, NULL) >= 0) {
/* process has exited */
+ /* TODO: Do something with the process return value */
+ /* TODO: What if the process output something since
+ * between log_from_handle and tor_get_exit_code? */
retval = 1;
}
#else
else if (1 == stdout_status || 1 == stderr_status)
- /* stdout or stderr was closed */
+ /* stdout or stderr was closed, the process probably
+ * exited. It will be reaped by waitpid() in main.c */
+ /* TODO: Do something with the process return value */
retval = 1;
#endif
else
@@ -3682,13 +3718,14 @@ tor_check_port_forwarding(const char *filename, int dir_port, int or_port,
if (0 != retval) {
if (1 == retval) {
log_info(LD_GENERAL, "Port forwarding helper terminated");
+ child_handle.status = 0;
} else {
log_warn(LD_GENERAL, "Failed to read from port forwarding helper");
+ child_handle.status = -1;
}
/* TODO: The child might not actually be finished (maybe it failed or
closed stdout/stderr), so maybe we shouldn't start another? */
- child_handle.status = -1;
}
}
}
diff --git a/src/common/util.h b/src/common/util.h
index d0ad8eb..9022334 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -372,7 +372,8 @@ typedef struct process_handle_s {
process_handle_t tor_spawn_background(const char *const filename,
const char **argv);
-int tor_get_exit_code(const process_handle_t pid, int block);
+int tor_get_exit_code(const process_handle_t process_handle,
+ int block, int *exit_code);
ssize_t tor_read_all_handle(HANDLE h, char *buf, size_t count, HANDLE hProcess);
ssize_t tor_read_all_from_process_stdout(const process_handle_t process_handle,
char *buf, size_t count);
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 40de76a..3916b4c 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -1382,7 +1382,7 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
const char *expected_err, int expected_exit,
int expected_status)
{
- int retval;
+ int retval, exit_code;
ssize_t pos;
process_handle_t process_handle;
char stdout_buf[100], stderr_buf[100];
@@ -1408,8 +1408,9 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
tt_int_op(pos, ==, strlen(expected_out));
/* Check it terminated correctly */
- retval = tor_get_exit_code(process_handle, 1);
- tt_int_op(retval, ==, expected_exit);
+ retval = tor_get_exit_code(process_handle, 1, &exit_code);
+ tt_int_op(retval, ==, 0);
+ tt_int_op(exit_code, ==, expected_exit);
// TODO: Make test-child exit with something other than 0
/* Check stderr */
@@ -1488,7 +1489,7 @@ test_util_spawn_background_partial_read(void *ptr)
const int expected_exit = 0;
const int expected_status = 0;
- int retval;
+ int retval, exit_code;
ssize_t pos;
process_handle_t process_handle;
char stdout_buf[100], stderr_buf[100];
@@ -1531,8 +1532,9 @@ test_util_spawn_background_partial_read(void *ptr)
#endif
/* Check it terminated correctly */
- retval = tor_get_exit_code(process_handle, 1);
- tt_int_op(retval, ==, expected_exit);
+ retval = tor_get_exit_code(process_handle, 1, &exit_code);
+ tt_int_op(retval, ==, 0);
+ tt_int_op(exit_code, ==, expected_exit);
// TODO: Make test-child exit with something other than 0
/* Check stderr */
1
0

[tor/master] Find test-child.exe by looking in same directory as test.exe
by nickm@torproject.org 30 Aug '11
by nickm@torproject.org 30 Aug '11
30 Aug '11
commit 6304e088d039fe6b1475cff8b811d62cb3db0a9a
Author: Steven Murdoch <Steven.Murdoch(a)cl.cam.ac.uk>
Date: Wed Aug 24 19:56:38 2011 +0100
Find test-child.exe by looking in same directory as test.exe
---
src/test/test_util.c | 76 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 56 insertions(+), 20 deletions(-)
diff --git a/src/test/test_util.c b/src/test/test_util.c
index eaf5e0d..d30cc11 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -1425,24 +1425,55 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
;
}
+static char*
+get_windows_path(const char *process_name, const char **dest)
+{
+#ifdef MS_WINDOWS
+ char fn[MAX_PATH];
+ DWORD retval;
+ char *new_fn = NULL;
+ int i;
+
+ /* Get the file name of the current module */
+ retval = GetModuleFileName(NULL, fn, sizeof(fn));
+ if (retval >= sizeof(fn)) {
+ log_warn(LD_GENERAL, "Executable path name was longer than maximum (%d)", sizeof(fn));
+ return NULL;
+ }
+
+ /* Remove the filename component */
+ for (i = retval - 1; i >= 0; i--) {
+ /* \0 terminate at first path separator from end */
+ if ('\\' == fn[i] || '/' == fn[i]) {
+ fn[i] = '\0';
+ break;
+ }
+ }
+
+ tor_asprintf(&new_fn, "%s\\%s", fn, process_name);
+ *dest = new_fn;
+ return new_fn;
+#else
+ (void)process_name;
+ (void)dest;
+ return NULL;
+#endif
+}
+
/** Check that we can launch a process and read the output */
static void
test_util_spawn_background_ok(void *ptr)
{
- char *filename=NULL;
#ifdef MS_WINDOWS
- const char *argv[] = {BUILDDIR "/src/test/test-child.exe", "--test", NULL};
+ const char *argv[] = {NULL, "--test", NULL};
const char *expected_out = "OUT\r\n--test\r\nSLEEPING\r\nDONE\r\n";
const char *expected_err = "ERR\r\n";
+ char *filename;
- if (argv[0][0] == '/') {
- /* We have a fake path, e.g. /c/foo, make it c:/foo */
- filename = tor_strdup(argv[0]);
- filename[0] = filename[1];
- filename[1] = ':';
- argv[0] = filename;
- log_warn(LD_GENERAL, "%s", argv[0]);
- }
+ /* Find path to test-child.exe (same directory as this executable */
+ filename = get_windows_path("test-child.exe", argv);
+ tt_assert(filename != NULL);
+ log_warn(LD_GENERAL, "Using %s as path", filename);
#else
const char *argv[] = {BUILDDIR "/src/test/test-child", "--test", NULL};
const char *expected_out = "OUT\n--test\nSLEEPING\nDONE\n";
@@ -1452,7 +1483,12 @@ test_util_spawn_background_ok(void *ptr)
(void)ptr;
run_util_spawn_background(argv, expected_out, expected_err, 0, 1);
+ done:
+#ifdef MS_WINDOWS
tor_free(filename);
+#else
+ ;
+#endif
}
/** Check that failing to find the executable works as expected */
@@ -1483,7 +1519,6 @@ test_util_spawn_background_fail(void *ptr)
static void
test_util_spawn_background_partial_read(void *ptr)
{
- char *filename=NULL;
const int expected_exit = 0;
const int expected_status = 1;
@@ -1492,21 +1527,18 @@ test_util_spawn_background_partial_read(void *ptr)
process_handle_t process_handle;
char stdout_buf[100], stderr_buf[100];
#ifdef MS_WINDOWS
- const char *argv[] = {BUILDDIR "/src/test/test-child.exe", "--test", NULL};
+ const char *argv[] = {NULL, "--test", NULL};
const char *expected_out[] = { "OUT\r\n--test\r\nSLEEPING\r\n",
"DONE\r\n",
NULL };
const char *expected_err = "ERR\r\n";
int expected_out_ctr;
+ char *filename;
- if (argv[0][0] == '/') {
- /* We have a fake path, e.g. /c/foo, make it c:/foo */
- filename = tor_strdup(argv[0]);
- filename[0] = filename[1];
- filename[1] = ':';
- argv[0] = filename;
- log_warn(LD_GENERAL, "%s", argv[0]);
- }
+ /* Find path to test-child.exe (same directory as this executable */
+ filename = get_windows_path("test-child.exe", argv);
+ tt_assert(filename != NULL);
+ log_warn(LD_GENERAL, "Using %s as path", filename);
#else
const char *argv[] = {BUILDDIR "/src/test/test-child", "--test", NULL};
const char *expected_out = "OUT\n--test\nSLEEPING\nDONE\n";
@@ -1565,7 +1597,11 @@ test_util_spawn_background_partial_read(void *ptr)
tt_int_op(pos, ==, strlen(expected_err));
done:
+#ifdef MS_WINDOWS
+ tor_free(filename);
+#else
;
+#endif
}
static void
1
0

[tor/master] Fix test cases to handle MSYS style paths (/c/foo rather than c:/foo)
by nickm@torproject.org 30 Aug '11
by nickm@torproject.org 30 Aug '11
30 Aug '11
commit 50504fc4cb1a626b180b786b261aa59c928e269f
Author: Steven Murdoch <Steven.Murdoch(a)cl.cam.ac.uk>
Date: Mon Aug 22 20:05:11 2011 +0100
Fix test cases to handle MSYS style paths (/c/foo rather than c:/foo)
Also fix test case to expect 1 on successfully spawning a subprocess
---
src/test/test_util.c | 43 +++++++++++++++++++++++++++++++------------
1 files changed, 31 insertions(+), 12 deletions(-)
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 3916b4c..eaf5e0d 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -1429,11 +1429,20 @@ run_util_spawn_background(const char *argv[], const char *expected_out,
static void
test_util_spawn_background_ok(void *ptr)
{
+ char *filename=NULL;
#ifdef MS_WINDOWS
- // TODO: Under MSYS, BUILDDIR in orconfig.h needs to be tweaked
const char *argv[] = {BUILDDIR "/src/test/test-child.exe", "--test", NULL};
const char *expected_out = "OUT\r\n--test\r\nSLEEPING\r\nDONE\r\n";
const char *expected_err = "ERR\r\n";
+
+ if (argv[0][0] == '/') {
+ /* We have a fake path, e.g. /c/foo, make it c:/foo */
+ filename = tor_strdup(argv[0]);
+ filename[0] = filename[1];
+ filename[1] = ':';
+ argv[0] = filename;
+ log_warn(LD_GENERAL, "%s", argv[0]);
+ }
#else
const char *argv[] = {BUILDDIR "/src/test/test-child", "--test", NULL};
const char *expected_out = "OUT\n--test\nSLEEPING\nDONE\n";
@@ -1442,7 +1451,8 @@ test_util_spawn_background_ok(void *ptr)
(void)ptr;
- run_util_spawn_background(argv, expected_out, expected_err, 0, 0);
+ run_util_spawn_background(argv, expected_out, expected_err, 0, 1);
+ tor_free(filename);
}
/** Check that failing to find the executable works as expected */
@@ -1461,7 +1471,7 @@ test_util_spawn_background_fail(void *ptr)
"- code 9/2\n";
const char *expected_err = "";
// TODO: Once we can signal failure to exec, set this to be -1;
- const int expected_status = 0;
+ const int expected_status = 1;
#endif
(void)ptr;
@@ -1473,32 +1483,41 @@ test_util_spawn_background_fail(void *ptr)
static void
test_util_spawn_background_partial_read(void *ptr)
{
+ char *filename=NULL;
+ const int expected_exit = 0;
+ const int expected_status = 1;
+
+ int retval, exit_code;
+ ssize_t pos;
+ process_handle_t process_handle;
+ char stdout_buf[100], stderr_buf[100];
#ifdef MS_WINDOWS
- // TODO: Under MSYS, BUILDDIR in orconfig.h needs to be tweaked
const char *argv[] = {BUILDDIR "/src/test/test-child.exe", "--test", NULL};
const char *expected_out[] = { "OUT\r\n--test\r\nSLEEPING\r\n",
"DONE\r\n",
NULL };
const char *expected_err = "ERR\r\n";
int expected_out_ctr;
+
+ if (argv[0][0] == '/') {
+ /* We have a fake path, e.g. /c/foo, make it c:/foo */
+ filename = tor_strdup(argv[0]);
+ filename[0] = filename[1];
+ filename[1] = ':';
+ argv[0] = filename;
+ log_warn(LD_GENERAL, "%s", argv[0]);
+ }
#else
const char *argv[] = {BUILDDIR "/src/test/test-child", "--test", NULL};
const char *expected_out = "OUT\n--test\nSLEEPING\nDONE\n";
const char *expected_err = "ERR\r\n";
#endif
- const int expected_exit = 0;
- const int expected_status = 0;
-
- int retval, exit_code;
- ssize_t pos;
- process_handle_t process_handle;
- char stdout_buf[100], stderr_buf[100];
-
(void)ptr;
/* Start the program */
process_handle = tor_spawn_background(argv[0], argv);
tt_int_op(process_handle.status, ==, expected_status);
+ tor_free(filename);
/* Check stdout */
#ifdef MS_WINDOWS
1
0