Update NSS to 3.21 RTM and NSPR to 4.11 RTM

This updates the bundled version of NSS (used on iOS) to NSS 3.21,
with NSPR updated to 4.11.

BUG=568855
R=davidben@chromium.org

Committed: https://chromium.googlesource.com/chromium/deps/nss/+/c339081e4a5720acaff8a8399110ab9f6f3ccaf5

Review URL: https://codereview.chromium.org/1504923011 .
diff --git a/README.chromium b/README.chromium
index 4323981..cf08b7f 100644
--- a/README.chromium
+++ b/README.chromium
@@ -1,28 +1,27 @@
 Name: Network Security Services (NSS)
 Short Name: nss
 URL: http://www.mozilla.org/projects/security/pki/nss/
-Version: 3.16.5
+Version: 3.21
 License: MPL 2
 License File: nss/COPYING
 Security Critical: yes
 
 Description:
-NSS 3.19 with NSPR 4.10.8
+NSS 3.21 with NSPR 4.11
 
 This copy of NSS has been customized for Chromium.  NSPR is also put here
 rather than in a separate directory to emphasize the fact that Chromium is
 using NSPR strictly as an NSS dependency.
 
-We took a subset of NSS, omitting the SSL and SMIME libraries and the
-built-in root CA certificates module.  This NSS subset satisfies the
-dependencies of the NSS SSL library in src/net/third_party/nss.  Do NOT use
-this copy of NSS on platforms that have NSS as system libraries, such as
-Linux.
+We took a subset of NSS, omitting the SSL and SMIME libraries.
+This NSS subset satisfies the dependencies of the NSS SSL library in
+src/net/third_party/nss.  Do NOT use this copy of NSS on platforms that
+have NSS as system libraries, such as Linux.
 
 The source code was checked out from the mozilla.org CVS or hg repository using
 the nspr-checkout.sh and nss-checkout.sh scripts in the scripts directory.
-The current source code was checked out with the hg tag NSS_3_19_RTM
-and the hg tag NSPR_4_10_8_RTM.
+The current source code was checked out with the hg tag NSS_3_21_RTM
+and the hg tag NSPR_4_11_RTM.
 
 Local Modifications:
 
@@ -45,10 +44,10 @@
   DO NOT upstream this patch.
 - patches/nspr-unused-variable.patch: Remove an unused variable. See NSPR
   bug 1126408 (https://bugzilla.mozilla.org/show_bug.cgi?id=1126408).
-- patches/nspr-overflow.patch: See NSPR bug 1205157
-  (https://bugzilla.mozilla.org/show_bug.cgi?id=1205157).
 
 We made the following local changes to NSS.
+
+Files Added:
 - nss/exports_win.def: The list of exports to use when building nss as a
   dynamic library (crnss.dll).
 - nss/lib/ckfw/builtins/certdata.c: a generated file. Do an upstream NSS
@@ -61,6 +60,8 @@
 - nss/lib/freebl/mpi/mpi_arm_mac.c: a wrapper file for mpi_arm.c for iOS
   and Mac OS X. This works around the inability to specify target arch
   specific source files in Xcode.
+
+Patches Applied:
 - patches/nss-remove-fortezza.patch: remove Fortezza certificate support
   from PK11_ImportPublicKey.  See NSS bug 668397
   (https://bugzilla.mozilla.org/show_bug.cgi?id=668397).
@@ -73,7 +74,4 @@
   libpkix (the new certification path validation library) and
   softoken/legacydb (support for the old Berkeley DB databases).  See NSS
   bug 534471 (https://bugzilla.mozilla.org/show_bug.cgi?id=534471).
-- patches/nss-ber-fixes.patch: See NSS bugs 1192028
-  (https://bugzilla.mozilla.org/show_bug.cgi?id=1192028) and 1202868
-  (https://bugzilla.mozilla.org/show_bug.cgi?id=1202868).
 
diff --git a/nspr/lib/ds/plarena.h b/nspr/lib/ds/plarena.h
index 3e51f83..4daafa8 100644
--- a/nspr/lib/ds/plarena.h
+++ b/nspr/lib/ds/plarena.h
@@ -137,9 +137,9 @@
 #define PL_ARENA_ALLOCATE(p, pool, nb) \
     PR_BEGIN_MACRO \
         PLArena *_a = (pool)->current; \
-        PRUint32 _nb = PL_ARENA_ALIGN(pool, nb); \
+        PRUint32 _nb = PL_ARENA_ALIGN(pool, (PRUint32)nb); \
         PRUword _p = _a->avail; \
-        if (_nb < nb) { \
+        if (_nb < (PRUint32)nb) { \
             _p = 0; \
         } else if (_nb > (_a->limit - _a->avail)) { \
             _p = (PRUword)PL_ArenaAllocate(pool, _nb); \
@@ -148,27 +148,27 @@
         } \
         p = (void *)_p; \
         if (p) { \
-            PL_MAKE_MEM_UNDEFINED(p, nb); \
-            PL_ArenaCountAllocation(pool, nb); \
+            PL_MAKE_MEM_UNDEFINED(p, (PRUint32)nb); \
+            PL_ArenaCountAllocation(pool, (PRUint32)nb); \
         } \
     PR_END_MACRO
 
 #define PL_ARENA_GROW(p, pool, size, incr) \
     PR_BEGIN_MACRO \
         PLArena *_a = (pool)->current; \
-        PRUint32 _incr = PL_ARENA_ALIGN(pool, incr); \
-        if (_incr < incr) { \
+        PRUint32 _incr = PL_ARENA_ALIGN(pool, (PRUint32)incr); \
+        if (_incr < (PRUint32)incr) { \
             p = NULL; \
         } else if (_a->avail == (PRUword)(p) + PL_ARENA_ALIGN(pool, size) && \
             _incr <= (_a->limit - _a->avail)) { \
-            PL_MAKE_MEM_UNDEFINED((unsigned char *)(p) + size, incr); \
+            PL_MAKE_MEM_UNDEFINED((unsigned char *)(p) + size, (PRUint32)incr); \
             _a->avail += _incr; \
-            PL_ArenaCountInplaceGrowth(pool, size, incr); \
+            PL_ArenaCountInplaceGrowth(pool, size, (PRUint32)incr); \
         } else { \
-            p = PL_ArenaGrow(pool, p, size, incr); \
+            p = PL_ArenaGrow(pool, p, size, (PRUint32)incr); \
         } \
         if (p) {\
-            PL_ArenaCountGrowth(pool, size, incr); \
+            PL_ArenaCountGrowth(pool, size, (PRUint32)incr); \
         } \
     PR_END_MACRO
 
diff --git a/nspr/pr/include/md/_linux.cfg b/nspr/pr/include/md/_linux.cfg
index 1d09b31..8cbf0cb 100644
--- a/nspr/pr/include/md/_linux.cfg
+++ b/nspr/pr/include/md/_linux.cfg
@@ -508,6 +508,52 @@
 #error "Unknown MIPS endianness."
 #endif
 
+#if _MIPS_SIM == _ABI64
+
+#define IS_64
+
+#define PR_BYTES_PER_BYTE   1
+#define PR_BYTES_PER_SHORT  2
+#define PR_BYTES_PER_INT    4
+#define PR_BYTES_PER_INT64  8
+#define PR_BYTES_PER_LONG   8
+#define PR_BYTES_PER_FLOAT  4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD   8
+#define PR_BYTES_PER_DWORD  8
+
+#define PR_BITS_PER_BYTE    8
+#define PR_BITS_PER_SHORT   16
+#define PR_BITS_PER_INT     32
+#define PR_BITS_PER_INT64   64
+#define PR_BITS_PER_LONG    64
+#define PR_BITS_PER_FLOAT   32
+#define PR_BITS_PER_DOUBLE  64
+#define PR_BITS_PER_WORD    64
+
+#define PR_BITS_PER_BYTE_LOG2   3
+#define PR_BITS_PER_SHORT_LOG2  4
+#define PR_BITS_PER_INT_LOG2    5
+#define PR_BITS_PER_INT64_LOG2  6
+#define PR_BITS_PER_LONG_LOG2   6
+#define PR_BITS_PER_FLOAT_LOG2  5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2   6
+
+#define PR_ALIGN_OF_SHORT   2
+#define PR_ALIGN_OF_INT     4
+#define PR_ALIGN_OF_LONG    8
+#define PR_ALIGN_OF_INT64   8
+#define PR_ALIGN_OF_FLOAT   4
+#define PR_ALIGN_OF_DOUBLE  8
+#define PR_ALIGN_OF_POINTER 8
+#define PR_ALIGN_OF_WORD    8
+
+#define PR_BYTES_PER_WORD_LOG2   3
+#define PR_BYTES_PER_DWORD_LOG2  3
+
+#else /* _ABI64 */
+
 #define PR_BYTES_PER_BYTE   1
 #define PR_BYTES_PER_SHORT  2
 #define PR_BYTES_PER_INT    4
@@ -548,6 +594,8 @@
 #define PR_BYTES_PER_WORD_LOG2   2
 #define PR_BYTES_PER_DWORD_LOG2  3
 
+#endif /* _ABI64 */
+
 #elif defined(__arm__)
 
 #ifdef __ARMEB__
@@ -924,6 +972,51 @@
 #define PR_BYTES_PER_WORD_LOG2   2
 #define PR_BYTES_PER_DWORD_LOG2  3
 
+#elif defined(__or1k__)
+
+#undef  IS_LITTLE_ENDIAN
+#define IS_BIG_ENDIAN 1
+
+#define PR_BYTES_PER_BYTE   1
+#define PR_BYTES_PER_SHORT  2
+#define PR_BYTES_PER_INT    4
+#define PR_BYTES_PER_INT64  8
+#define PR_BYTES_PER_LONG   4
+#define PR_BYTES_PER_FLOAT  4
+#define PR_BYTES_PER_DOUBLE 8
+#define PR_BYTES_PER_WORD   4
+#define PR_BYTES_PER_DWORD  8
+
+#define PR_BITS_PER_BYTE    8
+#define PR_BITS_PER_SHORT   16
+#define PR_BITS_PER_INT     32
+#define PR_BITS_PER_INT64   64
+#define PR_BITS_PER_LONG    32
+#define PR_BITS_PER_FLOAT   32
+#define PR_BITS_PER_DOUBLE  64
+#define PR_BITS_PER_WORD    32
+
+#define PR_BITS_PER_BYTE_LOG2   3
+#define PR_BITS_PER_SHORT_LOG2  4
+#define PR_BITS_PER_INT_LOG2    5
+#define PR_BITS_PER_INT64_LOG2  6
+#define PR_BITS_PER_LONG_LOG2   5
+#define PR_BITS_PER_FLOAT_LOG2  5
+#define PR_BITS_PER_DOUBLE_LOG2 6
+#define PR_BITS_PER_WORD_LOG2   5
+
+#define PR_ALIGN_OF_SHORT   2
+#define PR_ALIGN_OF_INT     4
+#define PR_ALIGN_OF_LONG    4
+#define PR_ALIGN_OF_INT64   4
+#define PR_ALIGN_OF_FLOAT   4
+#define PR_ALIGN_OF_DOUBLE  4
+#define PR_ALIGN_OF_POINTER 4
+#define PR_ALIGN_OF_WORD    4
+
+#define PR_BYTES_PER_WORD_LOG2   2
+#define PR_BYTES_PER_DWORD_LOG2  3
+
 #else
 
 #error "Unknown CPU architecture"
diff --git a/nspr/pr/include/md/_linux.h b/nspr/pr/include/md/_linux.h
index 278f90c..d378db5 100644
--- a/nspr/pr/include/md/_linux.h
+++ b/nspr/pr/include/md/_linux.h
@@ -55,6 +55,8 @@
 #define _PR_SI_ARCHITECTURE "avr32"
 #elif defined(__m32r__)
 #define _PR_SI_ARCHITECTURE "m32r"
+#elif defined(__or1k__)
+#define _PR_SI_ARCHITECTURE "or1k"
 #else
 #error "Unknown CPU architecture"
 #endif
@@ -65,7 +67,7 @@
 #define _MD_DEFAULT_STACK_SIZE	65536L
 #define _MD_MMAP_FLAGS          MAP_PRIVATE
 
-#if defined(__aarch64__)
+#if defined(__aarch64__) || defined(__mips__)
 #define _MD_MINIMUM_STACK_SIZE  0x20000
 #endif
 
@@ -123,6 +125,18 @@
 #define _MD_ATOMIC_SET                _PR_x86_64_AtomicSet
 #endif
 
+#if defined(__or1k__)
+#if defined(__GNUC__)
+/* Use GCC built-in functions */
+#define _PR_HAVE_ATOMIC_OPS
+#define _MD_INIT_ATOMIC()
+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
+#endif
+#endif
+
 #if defined(__powerpc__) && !defined(__powerpc64__)
 #define _PR_HAVE_ATOMIC_OPS
 #define _MD_INIT_ATOMIC()
@@ -148,6 +162,16 @@
 #endif
 #endif
 
+#if defined(__mips__) && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
+/* Use GCC built-in functions */
+#define _PR_HAVE_ATOMIC_OPS
+#define _MD_INIT_ATOMIC()
+#define _MD_ATOMIC_INCREMENT(ptr) __sync_add_and_fetch(ptr, 1)
+#define _MD_ATOMIC_DECREMENT(ptr) __sync_sub_and_fetch(ptr, 1)
+#define _MD_ATOMIC_ADD(ptr, i) __sync_add_and_fetch(ptr, i)
+#define _MD_ATOMIC_SET(ptr, nv) __sync_lock_test_and_set(ptr, nv)
+#endif
+
 #if defined(__alpha)
 #define _PR_HAVE_ATOMIC_OPS
 #define _MD_INIT_ATOMIC()
diff --git a/nspr/pr/include/pratom.h b/nspr/pr/include/pratom.h
index 9dbe0fa..dff9d6c 100644
--- a/nspr/pr/include/pratom.h
+++ b/nspr/pr/include/pratom.h
@@ -107,7 +107,9 @@
            defined(__powerpc__) || \
            (defined(__arm__) && \
            defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)) || \
-           defined(__aarch64__) || defined(__alpha))))
+           defined(__aarch64__) || defined(__alpha) || \
+           (defined(__mips__) && \
+           defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)))))
 
 /*
  * Because the GCC manual warns that some processors may support
diff --git a/nspr/pr/include/prenv.h b/nspr/pr/include/prenv.h
index 524fc75..2a47716 100644
--- a/nspr/pr/include/prenv.h
+++ b/nspr/pr/include/prenv.h
@@ -113,6 +113,36 @@
 */
 NSPR_API(PRStatus) PR_SetEnv(const char *string);
 
+/*
+** PR_DuplicateEnvironment() -- Obtain a copy of the environment.
+**
+** Description:
+** PR_DuplicateEnvironment() copies the environment so that it can be
+** modified without changing the current process's environment, and
+** then passed to interfaces such as POSIX execve().  In particular,
+** this avoids needing to allocate memory or take locks in the child
+** after a fork(); neither of these is allowed by POSIX after a
+** multithreaded process calls fork(), and PR_SetEnv does both.
+**
+** Inputs:
+**   none
+**
+** Returns:
+**   A pointer to a null-terminated array of null-terminated strings,
+**   like the traditional global variable "environ".  The array and
+**   the strings are allocated with PR_Malloc(), and it is the
+**   caller's responsibility to free them.
+**
+**   In case of memory allocation failure, or if the operating system
+**   doesn't support reading the entire environment through the global
+**   variable "environ" or similar, returns NULL instead.
+**
+** Restrictions:
+**   Similarly to PR_GetEnv(), this function may not interoperate as
+**   expected with the operating system's native environment accessors.
+*/
+NSPR_API(char **) PR_DuplicateEnvironment(void);
+
 PR_END_EXTERN_C
 
 #endif /* prenv_h___ */
diff --git a/nspr/pr/include/prinit.h b/nspr/pr/include/prinit.h
index 5cdf6d2..93749e6 100644
--- a/nspr/pr/include/prinit.h
+++ b/nspr/pr/include/prinit.h
@@ -31,10 +31,10 @@
 ** The format of the version string is
 **     "<major version>.<minor version>[.<patch level>] [<Beta>]"
 */
-#define PR_VERSION  "4.10.8"
+#define PR_VERSION  "4.11"
 #define PR_VMAJOR   4
-#define PR_VMINOR   10
-#define PR_VPATCH   8
+#define PR_VMINOR   11
+#define PR_VPATCH   0
 #define PR_BETA     PR_FALSE
 
 /*
diff --git a/nspr/pr/include/prlog.h b/nspr/pr/include/prlog.h
index 6f825f2..4a291dc 100644
--- a/nspr/pr/include/prlog.h
+++ b/nspr/pr/include/prlog.h
@@ -157,7 +157,8 @@
 */
 NSPR_API(void) PR_LogFlush(void);
 
-NSPR_API(void) PR_Assert(const char *s, const char *file, PRIntn ln);
+NSPR_API(void) PR_Assert(const char *s, const char *file, PRIntn ln)
+    PR_PRETEND_NORETURN;
 
 #if defined(DEBUG) || defined(FORCE_PR_LOG)
 #define PR_LOGGING 1
diff --git a/nspr/pr/include/prtime.h b/nspr/pr/include/prtime.h
index 732990e..caaee14 100644
--- a/nspr/pr/include/prtime.h
+++ b/nspr/pr/include/prtime.h
@@ -248,14 +248,14 @@
 
 /* Format a time value into a buffer. Same semantics as strftime() */
 NSPR_API(PRUint32) PR_FormatTime(char *buf, int buflen, const char *fmt,
-                                           const PRExplodedTime *tm);
+                                 const PRExplodedTime *time);
 
-/* Format a time value into a buffer. Time is always in US English format, regardless
- * of locale setting.
+/* Format a time value into a buffer. Time is always in US English format,
+ * regardless of locale setting.
  */
 NSPR_API(PRUint32)
-PR_FormatTimeUSEnglish( char* buf, PRUint32 bufSize,
-                        const char* format, const PRExplodedTime* tm );
+PR_FormatTimeUSEnglish(char *buf, PRUint32 bufSize,
+                       const char *format, const PRExplodedTime *time);
 
 PR_END_EXTERN_C
 
diff --git a/nspr/pr/include/prtypes.h b/nspr/pr/include/prtypes.h
index 1e2641b..d78f580 100644
--- a/nspr/pr/include/prtypes.h
+++ b/nspr/pr/include/prtypes.h
@@ -526,6 +526,31 @@
 typedef unsigned long PRUword;
 #endif
 
+/*
+ * PR_PRETEND_NORETURN, specified at the end of a function declaration,
+ * indicates that for the purposes of static analysis, this function does not
+ * return.  (The function definition does not need to be annotated.)
+ *
+ * void PR_Assert(const char *s, const char *file, PRIntn ln)
+ *     PR_PRETEND_NORETURN;
+ *
+ * Some static analyzers, like scan-build from clang, can use this information
+ * to eliminate false positives.  From the upstream documentation of
+ * scan-build:
+ *     This attribute is useful for annotating assertion handlers that actually
+ *     can return, but for the purpose of using the analyzer we want to pretend
+ *     that such functions do not return.
+ */
+#ifdef __clang_analyzer__
+#if __has_extension(attribute_analyzer_noreturn)
+#define PR_PRETEND_NORETURN __attribute__((analyzer_noreturn))
+#endif
+#endif
+
+#ifndef PR_PRETEND_NORETURN
+#define PR_PRETEND_NORETURN /* no support */
+#endif
+
 #if defined(NO_NSPR_10_SUPPORT)
 #else
 /********* ???????????????? FIX ME       ??????????????????????????? *****/
diff --git a/nspr/pr/src/io/prmwait.c b/nspr/pr/src/io/prmwait.c
index 5982a1c..ab32fb5 100644
--- a/nspr/pr/src/io/prmwait.c
+++ b/nspr/pr/src/io/prmwait.c
@@ -475,6 +475,7 @@
             PR_Lock(group->ml);
             if (_prmw_running != group->state)
             {
+                PR_DELETE(poll_list);
                 PR_SetError(PR_INVALID_STATE_ERROR, 0);
                 goto aborted;
             }
diff --git a/nspr/pr/src/io/prprf.c b/nspr/pr/src/io/prprf.c
index ea6e408..1a89141 100644
--- a/nspr/pr/src/io/prprf.c
+++ b/nspr/pr/src/io/prprf.c
@@ -66,7 +66,11 @@
 
 #define NAS_DEFAULT_NUM 20  /* default number of NumberedArgument array */
 
-
+/*
+** For numeric types, the signed versions must have even values,
+** and their corresponding unsigned versions must have the subsequent
+** odd value.
+*/
 #define TYPE_INT16	0
 #define TYPE_UINT16	1
 #define TYPE_INTN	2
@@ -376,8 +380,8 @@
 
 /*
 ** BuildArgArray stands for Numbered Argument list Sprintf
-** for example,  
-**	fmp = "%4$i, %2$d, %3s, %1d";
+** for example,
+**	fmt = "%4$i, %2$d, %3s, %1d";
 ** the number must start from 1, and no gap among them
 */
 
@@ -515,6 +519,15 @@
 	        nas[cn].type = TYPE_INT64;
 	        c = *p++;
 	    }
+	} else if (c == 'z') {
+	    if (sizeof(size_t) == sizeof(PRInt32)) {
+	        nas[ cn ].type = TYPE_INT32;
+	    } else if (sizeof(size_t) == sizeof(PRInt64)) {
+	        nas[ cn ].type = TYPE_INT64;
+	    } else {
+		nas[ cn ].type = TYPE_UNKNOWN;
+	    }
+	    c = *p++;
 	}
 
 	/* format */
@@ -809,6 +822,13 @@
 		type = TYPE_INT64;
 		c = *fmt++;
 	    }
+	} else if (c == 'z') {
+	    if (sizeof(size_t) == sizeof(PRInt32)) {
+	    	type = TYPE_INT32;
+	    } else if (sizeof(size_t) == sizeof(PRInt64)) {
+	    	type = TYPE_INT64;
+	    }
+	    c = *fmt++;
 	}
 
 	/* format */
diff --git a/nspr/pr/src/misc/prenv.c b/nspr/pr/src/misc/prenv.c
index 7c9f58c..4935f9d 100644
--- a/nspr/pr/src/misc/prenv.c
+++ b/nspr/pr/src/misc/prenv.c
@@ -5,6 +5,17 @@
 
 #include <string.h>
 #include "primpl.h"
+#include "prmem.h"
+
+#if defined(XP_UNIX)
+#if defined(DARWIN)
+#if defined(HAVE_CRT_EXTERNS_H)
+#include <crt_externs.h>
+#endif /* HAVE_CRT_EXTERNS_H */
+#else  /* DARWIN */
+PR_IMPORT_DATA(char **) environ;
+#endif /* DARWIN */
+#endif /* XP_UNIX */
 
 /* Lock used to lock the environment */
 #if defined(_PR_NO_PREEMPT)
@@ -58,10 +69,59 @@
 
     if (!_pr_initialized) _PR_ImplicitInitialization();
 
-    if ( !strchr(string, '=')) return(PR_FAILURE);
+    if (!strchr(string, '=')) return(PR_FAILURE);
 
     _PR_LOCK_ENV();
-    result = _PR_MD_PUT_ENV(string);
+    result = _PR_MD_PUT_ENV((char*)string);
     _PR_UNLOCK_ENV();
-    return (result)? PR_FAILURE : PR_SUCCESS;
+    return result ? PR_FAILURE : PR_SUCCESS;
 }
+
+#if defined(XP_UNIX) && (!defined(DARWIN) || defined(HAVE_CRT_EXTERNS_H))
+PR_IMPLEMENT(char **) PR_DuplicateEnvironment(void)
+{
+    char **the_environ, **result, **end, **src, **dst;
+
+    _PR_LOCK_ENV();
+#ifdef DARWIN
+    the_environ = *(_NSGetEnviron());
+#else
+    the_environ = environ;
+#endif
+
+    for (end = the_environ; *end != NULL; end++)
+        /* empty loop body */;
+
+    result = (char **)PR_Malloc(sizeof(char *) * (end - the_environ + 1));
+    if (result != NULL) {
+        for (src = the_environ, dst = result; src != end; src++, dst++) {
+            size_t len;
+
+            len = strlen(*src) + 1;
+            *dst = PR_Malloc(len);
+            if (*dst == NULL) {
+              /* Allocation failed.  Must clean up the half-copied env. */
+              char **to_delete;
+
+              for (to_delete = result; to_delete != dst; to_delete++) {
+                PR_Free(*to_delete);
+              }
+              PR_Free(result);
+              result = NULL;
+              goto out;
+            }
+            memcpy(*dst, *src, len);
+        }
+        *dst = NULL;
+    }
+ out:
+    _PR_UNLOCK_ENV();
+    return result;
+}
+#else
+/* This platform doesn't support raw access to the environ block. */
+PR_IMPLEMENT(char **) PR_DuplicateEnvironment(void)
+{
+    return NULL;
+}
+#endif
diff --git a/nspr/pr/src/misc/prinit.c b/nspr/pr/src/misc/prinit.c
index 5eda4a2..43048a0 100644
--- a/nspr/pr/src/misc/prinit.c
+++ b/nspr/pr/src/misc/prinit.c
@@ -642,7 +642,10 @@
     while (1) {
         if ((ptr[len] == ':') && (strncmp(ptr, name, len) == 0)) {
             ptr += len + 1;
-            PR_sscanf(ptr, "%d:0x%" PR_SCNxOSFD, &fileType, &osfd);
+            if (PR_sscanf(ptr, "%d:0x%" PR_SCNxOSFD, &fileType, &osfd) != 2) {
+                PR_SetError(PR_UNKNOWN_ERROR, 0);
+                return NULL;
+            }
             switch ((PRDescType)fileType) {
                 case PR_DESC_FILE:
                     fd = PR_ImportFile(osfd);
diff --git a/nspr/pr/src/misc/prtime.c b/nspr/pr/src/misc/prtime.c
index 95d034c..6735805 100644
--- a/nspr/pr/src/misc/prtime.c
+++ b/nspr/pr/src/misc/prtime.c
@@ -1672,23 +1672,24 @@
  */
 
 PR_IMPLEMENT(PRUint32)
-PR_FormatTime(char *buf, int buflen, const char *fmt, const PRExplodedTime *tm)
+PR_FormatTime(char *buf, int buflen, const char *fmt,
+              const PRExplodedTime *time)
 {
     size_t rv;
     struct tm a;
     struct tm *ap;
 
-    if (tm) {
+    if (time) {
         ap = &a;
-        a.tm_sec = tm->tm_sec;
-        a.tm_min = tm->tm_min;
-        a.tm_hour = tm->tm_hour;
-        a.tm_mday = tm->tm_mday;
-        a.tm_mon = tm->tm_month;
-        a.tm_wday = tm->tm_wday;
-        a.tm_year = tm->tm_year - 1900;
-        a.tm_yday = tm->tm_yday;
-        a.tm_isdst = tm->tm_params.tp_dst_offset ? 1 : 0;
+        a.tm_sec = time->tm_sec;
+        a.tm_min = time->tm_min;
+        a.tm_hour = time->tm_hour;
+        a.tm_mday = time->tm_mday;
+        a.tm_mon = time->tm_month;
+        a.tm_wday = time->tm_wday;
+        a.tm_year = time->tm_year - 1900;
+        a.tm_yday = time->tm_yday;
+        a.tm_isdst = time->tm_params.tp_dst_offset ? 1 : 0;
 
         /*
          * On some platforms, for example SunOS 4, struct tm has two
@@ -1699,8 +1700,8 @@
         || defined(NETBSD) || defined(OPENBSD) || defined(FREEBSD) \
         || defined(DARWIN) || defined(SYMBIAN) || defined(ANDROID)
         a.tm_zone = NULL;
-        a.tm_gmtoff = tm->tm_params.tp_gmt_offset +
-                      tm->tm_params.tp_dst_offset;
+        a.tm_gmtoff = time->tm_params.tp_gmt_offset +
+                      time->tm_params.tp_dst_offset;
 #endif
     } else {
         ap = NULL;
diff --git a/nspr/pr/src/pthreads/ptsynch.c b/nspr/pr/src/pthreads/ptsynch.c
index 03c5720..8663a4c 100644
--- a/nspr/pr/src/pthreads/ptsynch.c
+++ b/nspr/pr/src/pthreads/ptsynch.c
@@ -322,13 +322,21 @@
     PR_ASSERT(lock != NULL);
     if (cv != NULL)
     {
-        int rv = _PT_PTHREAD_COND_INIT(cv->cv, _pt_cvar_attr); 
+        int rv = _PT_PTHREAD_COND_INIT(cv->cv, _pt_cvar_attr);
         PR_ASSERT(0 == rv);
-        cv->lock = lock;
-        cv->notify_pending = 0;
+        if (0 == rv)
+        {
+            cv->lock = lock;
+            cv->notify_pending = 0;
 #if defined(DEBUG)
-        pt_debug.cvars_created += 1;
+            pt_debug.cvars_created += 1;
 #endif
+        }
+        else
+        {
+            PR_DELETE(cv);
+            cv = NULL;
+        }
     }
     return cv;
 }  /* PR_NewCondVar */
@@ -337,10 +345,13 @@
 {
     if (0 > PR_ATOMIC_DECREMENT(&cvar->notify_pending))
     {
-        PRIntn rv = pthread_cond_destroy(&cvar->cv); PR_ASSERT(0 == rv);
+        PRIntn rv = pthread_cond_destroy(&cvar->cv);
 #if defined(DEBUG)
+        PR_ASSERT(0 == rv);
         memset(cvar, 0xaf, sizeof(PRCondVar));
         pt_debug.cvars_destroyed += 1;
+#else
+        (void)rv;
 #endif
         PR_Free(cvar);
     }
@@ -1181,9 +1192,17 @@
     if (cv != NULL)
     {
         int rv;
-        rv = _PT_PTHREAD_COND_INIT(cv->cv, _pt_cvar_attr); 
+        rv = _PT_PTHREAD_COND_INIT(cv->cv, _pt_cvar_attr);
         PR_ASSERT(0 == rv);
-        cv->lock = _PR_NAKED_CV_LOCK;
+        if (0 == rv)
+        {
+            cv->lock = _PR_NAKED_CV_LOCK;
+        }
+        else
+        {
+            PR_DELETE(cv);
+            cv = NULL;
+        }
     }
     return cv;
 }  /* PRP_NewNakedCondVar */
diff --git a/nspr/pr/src/pthreads/ptthread.c b/nspr/pr/src/pthreads/ptthread.c
index 16d06f6..de90e4d 100644
--- a/nspr/pr/src/pthreads/ptthread.c
+++ b/nspr/pr/src/pthreads/ptthread.c
@@ -680,7 +680,7 @@
 
 PR_IMPLEMENT(void) PR_SetThreadPriority(PRThread *thred, PRThreadPriority newPri)
 {
-    PRIntn rv = -1;
+    PRIntn rv;
 
     PR_ASSERT(NULL != thred);
 
@@ -736,6 +736,8 @@
                  errno));
         }
     }
+#else
+    (void)rv; /* rv is unused */
 #endif
 
     thred->priority = newPri;
diff --git a/nss.gyp b/nss.gyp
index a6bf9ee..08f9446 100644
--- a/nss.gyp
+++ b/nss.gyp
@@ -873,6 +873,8 @@
             'nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_string.h',
             'nss/lib/nss/nss.h',
             'nss/lib/nss/nssinit.c',
+            'nss/lib/nss/nssoptions.c',
+            'nss/lib/nss/nssoptions.h',
             'nss/lib/nss/nssrenam.h',
             'nss/lib/nss/utilwrap.c',
             'nss/lib/pk11wrap/debug_module.c',
@@ -1037,6 +1039,7 @@
             'nss/lib/util/utilpars.h',
             'nss/lib/util/utilparst.h',
             'nss/lib/util/utilrename.h',
+            'nss/lib/util/verref.h',
           ],
           'sources!': [
             # mpi_arm.c is included by mpi_arm_mac.c.
diff --git a/nss/lib/base/hash.c b/nss/lib/base/hash.c
index 514e547..7eaaf6f 100644
--- a/nss/lib/base/hash.c
+++ b/nss/lib/base/hash.c
@@ -51,9 +51,7 @@
   const void *key
 )
 {
-  PRUint32 i = (PRUint32)key;
-  PR_ASSERT(sizeof(PLHashNumber) == sizeof(PRUint32));
-  return (PLHashNumber)i;
+  return (PLHashNumber)((char *)key - (char *)NULL);
 }
 
 static PLHashNumber
diff --git a/nss/lib/base/list.c b/nss/lib/base/list.c
index d6773d7..5f34923 100644
--- a/nss/lib/base/list.c
+++ b/nss/lib/base/list.c
@@ -217,9 +217,8 @@
 NSS_IMPLEMENT PRStatus
 nssList_Add(nssList *list, void *data)
 {
-    PRStatus nssrv;
     NSSLIST_LOCK_IF(list);
-    nssrv = nsslist_add_element(list, data);
+    (void)nsslist_add_element(list, data);
     NSSLIST_UNLOCK_IF(list);
     return PR_SUCCESS;
 }
diff --git a/nss/lib/base/tracker.c b/nss/lib/base/tracker.c
index 95881f9..06e2baf 100644
--- a/nss/lib/base/tracker.c
+++ b/nss/lib/base/tracker.c
@@ -29,7 +29,7 @@
   const void *key
 )
 {
-  return (PLHashNumber)key;
+  return (PLHashNumber)((char *)key - (char *)NULL);
 }
 
 /*
diff --git a/nss/lib/certdb/certdb.c b/nss/lib/certdb/certdb.c
index 2581be2..f282bbb 100644
--- a/nss/lib/certdb/certdb.c
+++ b/nss/lib/certdb/certdb.c
@@ -2443,7 +2443,6 @@
 {
     unsigned int i;
     CERTCertificate **certs = NULL;
-    SECStatus rv;
     unsigned int fcerts = 0;
 
     if ( ncerts ) {
@@ -2491,10 +2490,11 @@
 		     * know which cert it belongs to. But we still may try
                      * the individual canickname from the cert itself.
 		     */
-		    rv = CERT_AddTempCertToPerm(certs[i], canickname, NULL);
+                    /* Bug 1192442 - propagate errors from these calls. */
+		    (void)CERT_AddTempCertToPerm(certs[i], canickname, NULL);
 		} else {
-		    rv = CERT_AddTempCertToPerm(certs[i],
-                                                nickname?nickname:canickname, NULL);
+		    (void)CERT_AddTempCertToPerm(certs[i],
+                                                 nickname?nickname:canickname, NULL);
 		}
 
                 PORT_Free(canickname);
@@ -2511,7 +2511,7 @@
 	}
     }
 
-    return ((fcerts || !ncerts) ? SECSuccess : SECFailure);
+    return (fcerts || !ncerts) ? SECSuccess : SECFailure;
 }
 
 /*
@@ -2893,15 +2893,16 @@
 void
 CERT_UnlockCertRefCount(CERTCertificate *cert)
 {
-    PRStatus prstat;
-
     PORT_Assert(certRefCountLock != NULL);
     
-    prstat = PZ_Unlock(certRefCountLock);
-    
-    PORT_Assert(prstat == PR_SUCCESS);
-
-    return;
+#ifdef DEBUG
+    {
+        PRStatus prstat = PZ_Unlock(certRefCountLock);
+        PORT_Assert(prstat == PR_SUCCESS);
+    }
+#else
+    PZ_Unlock(certRefCountLock);
+#endif
 }
 
 static PZLock *certTrustLock = NULL;
@@ -2973,15 +2974,16 @@
 void
 CERT_UnlockCertTrust(const CERTCertificate *cert)
 {
-    PRStatus prstat;
-
     PORT_Assert(certTrustLock != NULL);
     
-    prstat = PZ_Unlock(certTrustLock);
-    
-    PORT_Assert(prstat == PR_SUCCESS);
-
-    return;
+#ifdef DEBUG
+    {
+        PRStatus prstat = PZ_Unlock(certTrustLock);
+        PORT_Assert(prstat == PR_SUCCESS);
+    }
+#else
+    PZ_Unlock(certTrustLock);
+#endif
 }
 
 
diff --git a/nss/lib/certdb/crl.c b/nss/lib/certdb/crl.c
index 9f9aa0b..05ded13 100644
--- a/nss/lib/certdb/crl.c
+++ b/nss/lib/certdb/crl.c
@@ -627,7 +627,6 @@
     CERTSignedCrl *oldCrl = NULL, *crl = NULL;
     PRBool deleteOldCrl = PR_FALSE;
     CK_OBJECT_HANDLE crlHandle = CK_INVALID_HANDLE;
-    SECStatus rv;
 
     PORT_Assert(newCrl);
     PORT_Assert(derCrl);
@@ -640,8 +639,8 @@
 
     /* we can't use the cache here because we must look in the same
        token */
-    rv = SEC_FindCrlByKeyOnSlot(slot, &newCrl->crl.derName, type,
-                                &oldCrl, CRL_DECODE_SKIP_ENTRIES);
+    (void)SEC_FindCrlByKeyOnSlot(slot, &newCrl->crl.derName, type,
+                                 &oldCrl, CRL_DECODE_SKIP_ENTRIES);
     /* if there is an old crl on the token, make sure the one we are
        installing is newer. If not, exit out, otherwise delete the
        old crl.
@@ -2693,7 +2692,7 @@
             }
             if (SECFailure == rv)
             {
-                SECStatus rv2 = CERT_FindCRLEntryReasonExten(entry, &reason);
+                (void)CERT_FindCRLEntryReasonExten(entry, &reason);
                 PORT_SetError(SEC_ERROR_REVOKED_CERTIFICATE);
             }
             break;
@@ -3050,7 +3049,7 @@
 {
     NamedCRLCacheEntry* oldEntry, * newEntry = NULL;
     NamedCRLCache* ncc = NULL;
-    SECStatus rv = SECSuccess, rv2;
+    SECStatus rv = SECSuccess;
 
     PORT_Assert(namedCRLCache.lock);
     PORT_Assert(namedCRLCache.entries);
@@ -3088,8 +3087,7 @@
                                         (void*) newEntry))
             {
                 PORT_Assert(0);
-                rv2 = NamedCRLCacheEntry_Destroy(newEntry);
-                PORT_Assert(SECSuccess == rv2);
+                NamedCRLCacheEntry_Destroy(newEntry);
                 rv = SECFailure;
             }
         }
@@ -3112,8 +3110,7 @@
             }
             else
             {
-                rv2 = NamedCRLCacheEntry_Destroy(oldEntry);
-                PORT_Assert(SECSuccess == rv2);
+                PORT_CheckSuccess(NamedCRLCacheEntry_Destroy(oldEntry));
             }
             if (NULL == PL_HashTableAdd(namedCRLCache.entries,
                                       (void*) newEntry->canonicalizedName,
@@ -3160,8 +3157,7 @@
                 }
                 else
                 {
-                    rv2 = NamedCRLCacheEntry_Destroy(oldEntry);
-                    PORT_Assert(SECSuccess == rv2);
+                    PORT_CheckSuccess(NamedCRLCacheEntry_Destroy(oldEntry));
                 }
                 if (NULL == PL_HashTableAdd(namedCRLCache.entries,
                                           (void*) newEntry->canonicalizedName,
@@ -3173,8 +3169,7 @@
             }
         }
     }
-    rv2 = cert_ReleaseNamedCRLCache(ncc);
-    PORT_Assert(SECSuccess == rv2);
+    PORT_CheckSuccess(cert_ReleaseNamedCRLCache(ncc));
 
     return rv;
 }
diff --git a/nss/lib/certdb/genname.c b/nss/lib/certdb/genname.c
index e3bc11d..6529a6a 100644
--- a/nss/lib/certdb/genname.c
+++ b/nss/lib/certdb/genname.c
@@ -67,16 +67,6 @@
       sizeof(CERTGeneralName) }
 };
 
-static const SEC_ASN1Template CERTOtherName2Template[] = {
-    { SEC_ASN1_SEQUENCE | SEC_ASN1_CONTEXT_SPECIFIC | 0 ,
-      0, NULL, sizeof(CERTGeneralName) },
-    { SEC_ASN1_OBJECT_ID,
-	  offsetof(CERTGeneralName, name.OthName) + offsetof(OtherName, oid) },
-    { SEC_ASN1_ANY,
-	  offsetof(CERTGeneralName, name.OthName) + offsetof(OtherName, name) },
-    { 0, } 
-};
-
 static const SEC_ASN1Template CERT_RFC822NameTemplate[] = {
     { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_XTRN | 1 ,
           offsetof(CERTGeneralName, name.other),
@@ -684,7 +674,7 @@
     return NULL;
 }
 
-CERTNameConstraint *
+static CERTNameConstraint *
 cert_DecodeNameConstraintSubTree(PLArenaPool   *arena,
 				 SECItem       **subTree,
 				 PRBool        permited)
@@ -701,15 +691,17 @@
 	if (current == NULL) {
 	    goto loser;
 	}
-	if (last == NULL) {
-	    first = last = current;
+	if (first == NULL) {
+	    first = current;
+	} else {
+	    current->l.prev = &(last->l);
+	    last->l.next = &(current->l);
 	}
-	current->l.prev = &(last->l);
-	current->l.next = last->l.next;
-	last->l.next = &(current->l);
+	last = current;
 	i++;
     }
-    first->l.prev = &(current->l);
+    first->l.prev = &(last->l);
+    last->l.next = &(first->l);
     /* TODO: unmark arena */
     return first;
 loser:
diff --git a/nss/lib/certdb/secname.c b/nss/lib/certdb/secname.c
index d070bbf..88a0cf7 100644
--- a/nss/lib/certdb/secname.c
+++ b/nss/lib/certdb/secname.c
@@ -240,14 +240,6 @@
     return 0;
 }
 
-/************************************************************************/
-/* XXX This template needs to go away in favor of the new SEC_ASN1 version. */
-static const SEC_ASN1Template cert_RDNTemplate[] = {
-    { SEC_ASN1_SET_OF,
-	  offsetof(CERTRDN,avas), cert_AVATemplate, sizeof(CERTRDN) }
-};
-
-
 CERTRDN *
 CERT_CreateRDN(PLArenaPool *arena, CERTAVA *ava0, ...)
 {
diff --git a/nss/lib/certhigh/certhigh.c b/nss/lib/certhigh/certhigh.c
index 74651ba..b06b7af 100644
--- a/nss/lib/certhigh/certhigh.c
+++ b/nss/lib/certhigh/certhigh.c
@@ -24,8 +24,6 @@
     char *nickname2 = NULL;
     char *token1;
     char *token2;
-    char *token = NULL;
-    int len;
 
     /* first deal with the straight comparison */
     if (PORT_Strcmp(name1, name2) == 0) {
@@ -40,20 +38,17 @@
 	return PR_FALSE;
     }
     if (token1) {
-	token=name1;
 	nickname1=token1;
 	nickname2=name2;
     } else {
-	token=name2;
 	nickname1=token2;
 	nickname2=name1;
     }
-    len = nickname1-token;
     nickname1++;
     if (PORT_Strcmp(nickname1,nickname2) != 0) {
 	return PR_FALSE;
     }
-    /* compare the other token with the internal slot here */
+    /* Bug 1192443 - compare the other token with the internal slot here */
     return PR_TRUE;
 }
 
diff --git a/nss/lib/certhigh/certvfy.c b/nss/lib/certhigh/certvfy.c
index c9d26f0..855a62d 100644
--- a/nss/lib/certhigh/certvfy.c
+++ b/nss/lib/certhigh/certvfy.c
@@ -6,7 +6,6 @@
 #include "secport.h"
 #include "seccomon.h"
 #include "secoid.h"
-#include "sslerr.h"
 #include "genname.h"
 #include "keyhi.h"
 #include "cert.h"
@@ -25,6 +24,7 @@
 #include "pkim.h"
 #include "pki3hack.h"
 #include "base.h"
+#include "keyhi.h"
 
 #ifdef NSS_DISABLE_LIBPKIX
 SECStatus
@@ -77,6 +77,94 @@
     return (valid == secCertTimeValid) ? SECSuccess : SECFailure;
 }
 
+SECStatus checkKeyParams(const SECAlgorithmID *sigAlgorithm, const SECKEYPublicKey *key)
+{
+    SECStatus        rv;
+    SECOidTag sigAlg;
+    SECOidTag curve;
+    PRUint32 policyFlags = 0;
+    PRInt32 minLen, len;
+
+    sigAlg = SECOID_GetAlgorithmTag(sigAlgorithm);
+
+    switch(sigAlg) {
+        case SEC_OID_ANSIX962_ECDSA_SHA1_SIGNATURE:
+	case SEC_OID_ANSIX962_ECDSA_SHA224_SIGNATURE:
+	case SEC_OID_ANSIX962_ECDSA_SHA256_SIGNATURE:
+	case SEC_OID_ANSIX962_ECDSA_SHA384_SIGNATURE:
+	case SEC_OID_ANSIX962_ECDSA_SHA512_SIGNATURE:
+	    if (key->keyType != ecKey) {
+		PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
+		return SECFailure;
+	    }
+
+            curve = SECKEY_GetECCOid(&key->u.ec.DEREncodedParams);
+	    if (curve != 0) {
+	        if (NSS_GetAlgorithmPolicy(curve, &policyFlags) == SECFailure ||
+	            !(policyFlags & NSS_USE_ALG_IN_CERT_SIGNATURE)) {
+	            PORT_SetError(SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED);
+		    return SECFailure;
+		} else {
+		    return SECSuccess;
+                }
+            } else {
+		PORT_SetError(SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE);
+		return SECFailure;
+	    }
+            return SECSuccess;
+	case SEC_OID_PKCS1_MD5_WITH_RSA_ENCRYPTION:
+	case SEC_OID_PKCS1_SHA1_WITH_RSA_ENCRYPTION:
+	case SEC_OID_PKCS1_SHA256_WITH_RSA_ENCRYPTION:
+	case SEC_OID_PKCS1_SHA384_WITH_RSA_ENCRYPTION:
+	case SEC_OID_PKCS1_SHA512_WITH_RSA_ENCRYPTION:
+	case SEC_OID_PKCS1_RSA_PSS_SIGNATURE:
+	case SEC_OID_ISO_SHA_WITH_RSA_SIGNATURE:
+	case SEC_OID_ISO_SHA1_WITH_RSA_SIGNATURE:
+	    if (key->keyType != rsaKey && key->keyType != rsaPssKey) {
+		PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
+		return SECFailure;
+	    }
+
+            len = 8 * key->u.rsa.modulus.len;
+
+            rv = NSS_OptionGet(NSS_RSA_MIN_KEY_SIZE, &minLen);
+            if (rv != SECSuccess) {
+                return SECFailure;
+	    }
+
+            if (len < minLen) {
+                return SECFailure;
+	    }
+
+            return SECSuccess;
+	case SEC_OID_ANSIX9_DSA_SIGNATURE:
+	case SEC_OID_ANSIX9_DSA_SIGNATURE_WITH_SHA1_DIGEST:
+	case SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST:
+	case SEC_OID_SDN702_DSA_SIGNATURE:
+	case SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA224_DIGEST:
+	case SEC_OID_NIST_DSA_SIGNATURE_WITH_SHA256_DIGEST:
+	    if (key->keyType != dsaKey) {
+		PORT_SetError(SEC_ERROR_INVALID_ALGORITHM);
+		return SECFailure;
+	    }
+
+            len = 8 * key->u.dsa.params.prime.len;
+
+            rv = NSS_OptionGet(NSS_DSA_MIN_KEY_SIZE, &minLen);
+            if (rv != SECSuccess) {
+                return SECFailure;
+	    }
+
+            if (len < minLen) {
+                return SECFailure;
+	    }
+
+            return SECSuccess;
+	default:
+	    return SECSuccess;
+    }
+}
+
 /*
  * verify the signature of a signed data object with the given DER publickey
  */
@@ -93,7 +181,6 @@
 	PORT_SetError(PR_INVALID_ARGUMENT_ERROR);
 	return SECFailure;
     }
-
     /* check the signature */
     sig = sd->signature;
     /* convert sig->len from bit counts to byte count. */
@@ -104,11 +191,17 @@
     if (rv == SECSuccess) {
         /* Are we honoring signatures for this algorithm?  */
 	PRUint32 policyFlags = 0;
+	rv = checkKeyParams(&sd->signatureAlgorithm, pubKey);
+	if (rv != SECSuccess) {
+	    PORT_SetError(SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED);
+	    return SECFailure;
+	}
+
 	rv = NSS_GetAlgorithmPolicy(hashAlg, &policyFlags);
 	if (rv == SECSuccess && 
 	    !(policyFlags & NSS_USE_ALG_IN_CERT_SIGNATURE)) {
 	    PORT_SetError(SEC_ERROR_CERT_SIGNATURE_ALGORITHM_DISABLED);
-	    rv = SECFailure;
+	    return SECFailure;
 	}
     }
     return rv;
diff --git a/nss/lib/certhigh/certvfypkix.c b/nss/lib/certhigh/certvfypkix.c
index dcb2dbf..b89fe21 100644
--- a/nss/lib/certhigh/certvfypkix.c
+++ b/nss/lib/certhigh/certvfypkix.c
@@ -1412,13 +1412,13 @@
 {
     PKIX_UInt32 methodFlags = 0;
     PKIX_Error *error = NULL;
-    int priority = 0;
+    PKIX_UInt32 priority = 0;
     
-    if (revTest->number_of_defined_methods <= certRevMethod) {
+    if (revTest->number_of_defined_methods <= (PRUint32)certRevMethod) {
         return NULL;
     }
     if (revTest->preferred_methods) {
-        int i = 0;
+        unsigned int i = 0;
         for (;i < revTest->number_of_preferred_methods;i++) {
             if (revTest->preferred_methods[i] == certRevMethod) 
                 break;
@@ -1454,7 +1454,6 @@
     CERTCertListNode *node;
     PKIX_PL_Cert *certPkix = NULL;
     PKIX_TrustAnchor *trustAnchor = NULL;
-    PKIX_PL_Date *revDate = NULL;
     PKIX_RevocationChecker *revChecker = NULL;
     PKIX_PL_NssContext *nssContext = (PKIX_PL_NssContext *)plContext;
 
@@ -1664,9 +1663,6 @@
     if (date != NULL) 
         PKIX_PL_Object_DecRef((PKIX_PL_Object *)date, plContext);
 
-    if (revDate != NULL) 
-        PKIX_PL_Object_DecRef((PKIX_PL_Object *)revDate, plContext);
-
     if (revChecker != NULL) 
         PKIX_PL_Object_DecRef((PKIX_PL_Object *)revChecker, plContext);
 
diff --git a/nss/lib/certhigh/ocsp.c b/nss/lib/certhigh/ocsp.c
index 59b341f..86ae0a0 100644
--- a/nss/lib/certhigh/ocsp.c
+++ b/nss/lib/certhigh/ocsp.c
@@ -559,14 +559,19 @@
      * because of an allocation failure, or it could get removed because we're 
      * cleaning up.
      */
-    PRBool couldRemoveFromHashTable;
     OCSP_TRACE(("OCSP ocsp_RemoveCacheItem, THREADID %p\n", PR_GetCurrentThread()));
     PR_EnterMonitor(OCSP_Global.monitor);
 
     ocsp_RemoveCacheItemFromLinkedList(cache, item);
-    couldRemoveFromHashTable = PL_HashTableRemove(cache->entries, 
-                                                  item->certID);
-    PORT_Assert(couldRemoveFromHashTable);
+#ifdef DEBUG
+    {
+        PRBool couldRemoveFromHashTable = PL_HashTableRemove(cache->entries,
+                                                             item->certID);
+        PORT_Assert(couldRemoveFromHashTable);
+    }
+#else
+    PL_HashTableRemove(cache->entries, item->certID);
+#endif
     --cache->numberOfEntries;
     ocsp_FreeCacheItem(item);
     PR_ExitMonitor(OCSP_Global.monitor);
diff --git a/nss/lib/certhigh/ocspsig.c b/nss/lib/certhigh/ocspsig.c
index 16cd1e0..0c4c201 100644
--- a/nss/lib/certhigh/ocspsig.c
+++ b/nss/lib/certhigh/ocspsig.c
@@ -543,7 +543,7 @@
 done:
     if (privKey)
         SECKEY_DestroyPrivateKey(privKey);
-    if (br->responseSignature.signature.data)
+    if (br && br->responseSignature.signature.data)
         SECITEM_FreeItem(&br->responseSignature.signature, PR_FALSE);
     PORT_FreeArena(tmpArena, PR_FALSE);
 
diff --git a/nss/lib/certhigh/xcrldist.c b/nss/lib/certhigh/xcrldist.c
index 286dc37..291a9d8 100644
--- a/nss/lib/certhigh/xcrldist.c
+++ b/nss/lib/certhigh/xcrldist.c
@@ -101,9 +101,6 @@
 		    rv = SECFailure;
 		break;
 
-	    /* distributionPointName is omitted */
-	    case 0: break;
-
 	    default:
 		PORT_SetError (SEC_ERROR_EXTENSION_VALUE_INVALID);
 		rv = SECFailure;
diff --git a/nss/lib/ckfw/builtins/binst.c b/nss/lib/ckfw/builtins/binst.c
index a837113..8cb057d 100644
--- a/nss/lib/ckfw/builtins/binst.c
+++ b/nss/lib/ckfw/builtins/binst.c
@@ -65,11 +65,8 @@
   NSSCKFWInstance *fwInstance
 )
 {
-  extern const char __nss_builtins_rcsid[];
-  extern const char __nss_builtins_sccsid[];
-  volatile char c; /* force a reference that won't get optimized away */
-
-  c = __nss_builtins_rcsid[0] + __nss_builtins_sccsid[0];
+#define NSS_VERSION_VARIABLE __nss_builtins_version
+#include "verref.h"
   return nss_builtins_LibraryVersion;
 }
 
diff --git a/nss/lib/ckfw/builtins/certdata.c b/nss/lib/ckfw/builtins/certdata.c
index 641bac6..e49121c 100644
--- a/nss/lib/ckfw/builtins/certdata.c
+++ b/nss/lib/ckfw/builtins/certdata.c
@@ -11,7 +11,6 @@
 static const CK_BBOOL ck_true = CK_TRUE;
 static const CK_CERTIFICATE_TYPE ckc_x_509 = CKC_X_509;
 static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE;
-static const CK_OBJECT_CLASS cko_data = CKO_DATA;
 static const CK_OBJECT_CLASS cko_nss_builtin_root_list = CKO_NSS_BUILTIN_ROOT_LIST;
 static const CK_OBJECT_CLASS cko_nss_trust = CKO_NSS_TRUST;
 static const CK_TRUST ckt_nss_must_verify_trust = CKT_NSS_MUST_VERIFY_TRUST;
@@ -84,25 +83,25 @@
  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_23 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_24 [] = {
- 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
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_25 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_26 [] = {
- 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
+ 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_27 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_28 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_29 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_30 [] = {
  CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
@@ -459,49 +458,49 @@
  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_148 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_149 [] = {
- 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
+ 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_150 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ 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_151 [] = {
- 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
+ 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_152 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ 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_153 [] = {
- 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
+ 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_154 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ 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_155 [] = {
- 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
+ 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_156 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ 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_157 [] = {
- 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
+ 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_158 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ 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_159 [] = {
- 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_160 [] = {
  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_161 [] = {
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_160 [] = {
  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_161 [] = {
+ 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_162 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_163 [] = {
  CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
@@ -882,10 +881,10 @@
  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_289 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_290 [] = {
- 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
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_291 [] = {
  CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
@@ -936,10 +935,10 @@
  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_307 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_308 [] = {
- 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
+ CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  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_309 [] = {
  CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
@@ -954,10 +953,10 @@
  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_313 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_314 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_315 [] = {
  CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
@@ -1008,10 +1007,10 @@
  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_331 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_332 [] = {
- CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_TRUST_SERVER_AUTH,  CKA_TRUST_EMAIL_PROTECTION,  CKA_TRUST_CODE_SIGNING,  CKA_TRUST_STEP_UP_APPROVED
+ 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_333 [] = {
  CKA_CLASS,  CKA_TOKEN,  CKA_PRIVATE,  CKA_MODIFIABLE,  CKA_LABEL,  CKA_CERTIFICATE_TYPE,  CKA_SUBJECT,  CKA_ID,  CKA_ISSUER,  CKA_SERIAL_NUMBER,  CKA_VALUE
@@ -1217,54 +1216,6 @@
 static const CK_ATTRIBUTE_TYPE nss_builtins_types_400 [] = {
  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_401 [] = {
- 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_402 [] = {
- 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_403 [] = {
- 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_404 [] = {
- 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_405 [] = {
- 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_406 [] = {
- 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_407 [] = {
- 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_408 [] = {
- 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_409 [] = {
- 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_410 [] = {
- 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_411 [] = {
- 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_412 [] = {
- 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_413 [] = {
- 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_414 [] = {
- 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_415 [] = {
- 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_416 [] = {
- 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 NSSItem nss_builtins_items_1 [] = {
   { (void *)&cko_nss_builtin_root_list, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
@@ -1366,9 +1317,9 @@
 , (PRUint32)80 },
   { (void *)"\002\004\065\336\364\317"
 , (PRUint32)6 },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
 static const NSSItem nss_builtins_items_4 [] = {
@@ -1395,204 +1346,6 @@
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
-  { (void *)"Digital Signature Trust Co. Global CA 1", (PRUint32)40 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\061"
-, (PRUint32)72 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\061"
-, (PRUint32)72 },
-  { (void *)"\002\004\066\160\025\226"
-, (PRUint32)6 },
-  { (void *)"\060\202\003\051\060\202\002\222\240\003\002\001\002\002\004\066"
-"\160\025\226\060\015\006\011\052\206\110\206\367\015\001\001\005"
-"\005\000\060\106\061\013\060\011\006\003\125\004\006\023\002\125"
-"\123\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151"
-"\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162"
-"\165\163\164\040\103\157\056\061\021\060\017\006\003\125\004\013"
-"\023\010\104\123\124\103\101\040\105\061\060\036\027\015\071\070"
-"\061\062\061\060\061\070\061\060\062\063\132\027\015\061\070\061"
-"\062\061\060\061\070\064\060\062\063\132\060\106\061\013\060\011"
-"\006\003\125\004\006\023\002\125\123\061\044\060\042\006\003\125"
-"\004\012\023\033\104\151\147\151\164\141\154\040\123\151\147\156"
-"\141\164\165\162\145\040\124\162\165\163\164\040\103\157\056\061"
-"\021\060\017\006\003\125\004\013\023\010\104\123\124\103\101\040"
-"\105\061\060\201\235\060\015\006\011\052\206\110\206\367\015\001"
-"\001\001\005\000\003\201\213\000\060\201\207\002\201\201\000\240"
-"\154\201\251\317\064\036\044\335\376\206\050\314\336\203\057\371"
-"\136\324\102\322\350\164\140\146\023\230\006\034\251\121\022\151"
-"\157\061\125\271\111\162\000\010\176\323\245\142\104\067\044\231"
-"\217\331\203\110\217\231\155\225\023\273\103\073\056\111\116\210"
-"\067\301\273\130\177\376\341\275\370\273\141\315\363\107\300\231"
-"\246\361\363\221\350\170\174\000\313\141\311\104\047\161\151\125"
-"\112\176\111\115\355\242\243\276\002\114\000\312\002\250\356\001"
-"\002\061\144\017\122\055\023\164\166\066\265\172\264\055\161\002"
-"\001\003\243\202\001\044\060\202\001\040\060\021\006\011\140\206"
-"\110\001\206\370\102\001\001\004\004\003\002\000\007\060\150\006"
-"\003\125\035\037\004\141\060\137\060\135\240\133\240\131\244\127"
-"\060\125\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\061\061\015\060\013\006\003\125\004"
-"\003\023\004\103\122\114\061\060\053\006\003\125\035\020\004\044"
-"\060\042\200\017\061\071\071\070\061\062\061\060\061\070\061\060"
-"\062\063\132\201\017\062\060\061\070\061\062\061\060\061\070\061"
-"\060\062\063\132\060\013\006\003\125\035\017\004\004\003\002\001"
-"\006\060\037\006\003\125\035\043\004\030\060\026\200\024\152\171"
-"\176\221\151\106\030\023\012\002\167\245\131\133\140\230\045\016"
-"\242\370\060\035\006\003\125\035\016\004\026\004\024\152\171\176"
-"\221\151\106\030\023\012\002\167\245\131\133\140\230\045\016\242"
-"\370\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060"
-"\031\006\011\052\206\110\206\366\175\007\101\000\004\014\060\012"
-"\033\004\126\064\056\060\003\002\004\220\060\015\006\011\052\206"
-"\110\206\367\015\001\001\005\005\000\003\201\201\000\042\022\330"
-"\172\035\334\201\006\266\011\145\262\207\310\037\136\264\057\351"
-"\304\036\362\074\301\273\004\220\021\112\203\116\176\223\271\115"
-"\102\307\222\046\240\134\064\232\070\162\370\375\153\026\076\040"
-"\356\202\213\061\052\223\066\205\043\210\212\074\003\150\323\311"
-"\011\017\115\374\154\244\332\050\162\223\016\211\200\260\175\376"
-"\200\157\145\155\030\063\227\213\302\153\211\356\140\075\310\233"
-"\357\177\053\062\142\163\223\313\074\343\173\342\166\170\105\274"
-"\241\223\004\273\206\237\072\133\103\172\303\212\145"
-, (PRUint32)813 }
-};
-static const NSSItem nss_builtins_items_6 [] = {
-  { (void *)&cko_nss_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 *)"Digital Signature Trust Co. Global CA 1", (PRUint32)40 },
-  { (void *)"\201\226\213\072\357\034\334\160\365\372\062\151\302\222\243\143"
-"\133\321\043\323"
-, (PRUint32)20 },
-  { (void *)"\045\172\272\203\056\266\242\013\332\376\365\002\017\010\327\255"
-, (PRUint32)16 },
-  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\061"
-, (PRUint32)72 },
-  { (void *)"\002\004\066\160\025\226"
-, (PRUint32)6 },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_7 [] = {
-  { (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 *)"Digital Signature Trust Co. Global CA 3", (PRUint32)40 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\062"
-, (PRUint32)72 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\062"
-, (PRUint32)72 },
-  { (void *)"\002\004\066\156\323\316"
-, (PRUint32)6 },
-  { (void *)"\060\202\003\051\060\202\002\222\240\003\002\001\002\002\004\066"
-"\156\323\316\060\015\006\011\052\206\110\206\367\015\001\001\005"
-"\005\000\060\106\061\013\060\011\006\003\125\004\006\023\002\125"
-"\123\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151"
-"\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162"
-"\165\163\164\040\103\157\056\061\021\060\017\006\003\125\004\013"
-"\023\010\104\123\124\103\101\040\105\062\060\036\027\015\071\070"
-"\061\062\060\071\061\071\061\067\062\066\132\027\015\061\070\061"
-"\062\060\071\061\071\064\067\062\066\132\060\106\061\013\060\011"
-"\006\003\125\004\006\023\002\125\123\061\044\060\042\006\003\125"
-"\004\012\023\033\104\151\147\151\164\141\154\040\123\151\147\156"
-"\141\164\165\162\145\040\124\162\165\163\164\040\103\157\056\061"
-"\021\060\017\006\003\125\004\013\023\010\104\123\124\103\101\040"
-"\105\062\060\201\235\060\015\006\011\052\206\110\206\367\015\001"
-"\001\001\005\000\003\201\213\000\060\201\207\002\201\201\000\277"
-"\223\217\027\222\357\063\023\030\353\020\177\116\026\277\377\006"
-"\217\052\205\274\136\371\044\246\044\210\266\003\267\301\303\137"
-"\003\133\321\157\256\176\102\352\146\043\270\143\203\126\373\050"
-"\055\341\070\213\264\356\250\001\341\316\034\266\210\052\042\106"
-"\205\373\237\247\160\251\107\024\077\316\336\145\360\250\161\367"
-"\117\046\154\214\274\306\265\357\336\111\047\377\110\052\175\350"
-"\115\003\314\307\262\122\306\027\061\023\073\265\115\333\310\304"
-"\366\303\017\044\052\332\014\235\347\221\133\200\315\224\235\002"
-"\001\003\243\202\001\044\060\202\001\040\060\021\006\011\140\206"
-"\110\001\206\370\102\001\001\004\004\003\002\000\007\060\150\006"
-"\003\125\035\037\004\141\060\137\060\135\240\133\240\131\244\127"
-"\060\125\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\062\061\015\060\013\006\003\125\004"
-"\003\023\004\103\122\114\061\060\053\006\003\125\035\020\004\044"
-"\060\042\200\017\061\071\071\070\061\062\060\071\061\071\061\067"
-"\062\066\132\201\017\062\060\061\070\061\062\060\071\061\071\061"
-"\067\062\066\132\060\013\006\003\125\035\017\004\004\003\002\001"
-"\006\060\037\006\003\125\035\043\004\030\060\026\200\024\036\202"
-"\115\050\145\200\074\311\101\156\254\065\056\132\313\336\356\370"
-"\071\133\060\035\006\003\125\035\016\004\026\004\024\036\202\115"
-"\050\145\200\074\311\101\156\254\065\056\132\313\336\356\370\071"
-"\133\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060"
-"\031\006\011\052\206\110\206\366\175\007\101\000\004\014\060\012"
-"\033\004\126\064\056\060\003\002\004\220\060\015\006\011\052\206"
-"\110\206\367\015\001\001\005\005\000\003\201\201\000\107\215\203"
-"\255\142\362\333\260\236\105\042\005\271\242\326\003\016\070\162"
-"\347\236\374\173\346\223\266\232\245\242\224\310\064\035\221\321"
-"\305\327\364\012\045\017\075\170\201\236\017\261\147\304\220\114"
-"\143\335\136\247\342\272\237\365\367\115\245\061\173\234\051\055"
-"\114\376\144\076\354\266\123\376\352\233\355\202\333\164\165\113"
-"\007\171\156\036\330\031\203\163\336\365\076\320\265\336\347\113"
-"\150\175\103\056\052\040\341\176\240\170\104\236\010\365\230\371"
-"\307\177\033\033\326\006\040\002\130\241\303\242\003"
-, (PRUint32)813 }
-};
-static const NSSItem nss_builtins_items_8 [] = {
-  { (void *)&cko_nss_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 *)"Digital Signature Trust Co. Global CA 3", (PRUint32)40 },
-  { (void *)"\253\110\363\063\333\004\253\271\300\162\332\133\014\301\320\127"
-"\360\066\233\106"
-, (PRUint32)20 },
-  { (void *)"\223\302\216\021\173\324\363\003\031\275\050\165\023\112\105\112"
-, (PRUint32)16 },
-  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164\141"
-"\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163"
-"\164\040\103\157\056\061\021\060\017\006\003\125\004\013\023\010"
-"\104\123\124\103\101\040\105\062"
-, (PRUint32)72 },
-  { (void *)"\002\004\066\156\323\316"
-, (PRUint32)6 },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_9 [] = {
-  { (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 *)"Verisign Class 3 Public Primary Certification Authority", (PRUint32)56 },
   { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
   { (void *)"\060\137\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
@@ -1653,7 +1406,7 @@
 "\300\175\267\162\234\311\066\072\153\237\116\250\377\144\015\144"
 , (PRUint32)576 }
 };
-static const NSSItem nss_builtins_items_10 [] = {
+static const NSSItem nss_builtins_items_6 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -1680,7 +1433,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_11 [] = {
+static const NSSItem nss_builtins_items_7 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -1770,7 +1523,7 @@
 "\017\061\134\350\362\331"
 , (PRUint32)774 }
 };
-static const NSSItem nss_builtins_items_12 [] = {
+static const NSSItem nss_builtins_items_8 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -1803,7 +1556,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_13 [] = {
+static const NSSItem nss_builtins_items_9 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -1893,7 +1646,7 @@
 "\214\022\173\305\104\264\256"
 , (PRUint32)775 }
 };
-static const NSSItem nss_builtins_items_14 [] = {
+static const NSSItem nss_builtins_items_10 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -1926,7 +1679,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_15 [] = {
+static const NSSItem nss_builtins_items_11 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2016,7 +1769,7 @@
 "\240\235\235\151\221\375"
 , (PRUint32)774 }
 };
-static const NSSItem nss_builtins_items_16 [] = {
+static const NSSItem nss_builtins_items_12 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2049,7 +1802,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_17 [] = {
+static const NSSItem nss_builtins_items_13 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2131,7 +1884,7 @@
 "\125\342\374\110\311\051\046\151\340"
 , (PRUint32)889 }
 };
-static const NSSItem nss_builtins_items_18 [] = {
+static const NSSItem nss_builtins_items_14 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2156,7 +1909,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_19 [] = {
+static const NSSItem nss_builtins_items_15 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2240,7 +1993,7 @@
 "\152\374\176\102\070\100\144\022\367\236\201\341\223\056"
 , (PRUint32)958 }
 };
-static const NSSItem nss_builtins_items_20 [] = {
+static const NSSItem nss_builtins_items_16 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2264,7 +2017,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_21 [] = {
+static const NSSItem nss_builtins_items_17 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2371,7 +2124,7 @@
 "\113\336\006\226\161\054\362\333\266\037\244\357\077\356"
 , (PRUint32)1054 }
 };
-static const NSSItem nss_builtins_items_22 [] = {
+static const NSSItem nss_builtins_items_18 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2404,7 +2157,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_23 [] = {
+static const NSSItem nss_builtins_items_19 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2511,7 +2264,7 @@
 "\311\130\020\371\252\357\132\266\317\113\113\337\052"
 , (PRUint32)1053 }
 };
-static const NSSItem nss_builtins_items_24 [] = {
+static const NSSItem nss_builtins_items_20 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2544,7 +2297,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_25 [] = {
+static const NSSItem nss_builtins_items_21 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2651,7 +2404,7 @@
 "\153\271\012\172\116\117\113\204\356\113\361\175\335\021"
 , (PRUint32)1054 }
 };
-static const NSSItem nss_builtins_items_26 [] = {
+static const NSSItem nss_builtins_items_22 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2684,7 +2437,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_27 [] = {
+static const NSSItem nss_builtins_items_23 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2712,7 +2465,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_28 [] = {
+static const NSSItem nss_builtins_items_24 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2740,7 +2493,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_29 [] = {
+static const NSSItem nss_builtins_items_25 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -2768,147 +2521,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_30 [] = {
-  { (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 *)"Verisign Class 4 Public Primary Certification Authority - G3", (PRUint32)61 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123"
-"\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125"
-"\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165"
-"\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003"
-"\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145"
-"\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106"
-"\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163"
-"\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023"
-"\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040"
-"\064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171"
-"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
-"\165\164\150\157\162\151\164\171\040\055\040\107\063"
-, (PRUint32)205 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123"
-"\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125"
-"\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165"
-"\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003"
-"\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145"
-"\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106"
-"\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163"
-"\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023"
-"\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040"
-"\064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171"
-"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
-"\165\164\150\157\162\151\164\171\040\055\040\107\063"
-, (PRUint32)205 },
-  { (void *)"\002\021\000\354\240\247\213\156\165\152\001\317\304\174\314\057"
-"\224\136\327"
-, (PRUint32)19 },
-  { (void *)"\060\202\004\032\060\202\003\002\002\021\000\354\240\247\213\156"
-"\165\152\001\317\304\174\314\057\224\136\327\060\015\006\011\052"
-"\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060"
-"\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003"
-"\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111"
-"\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145"
-"\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164"
-"\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050"
-"\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156"
-"\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164"
-"\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171"
-"\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123"
-"\151\147\156\040\103\154\141\163\163\040\064\040\120\165\142\154"
-"\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151"
-"\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151"
-"\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060"
-"\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066"
-"\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003"
-"\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012"
-"\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056"
-"\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123"
-"\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162"
-"\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040"
-"\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111"
-"\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162"
-"\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060"
-"\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156"
-"\040\103\154\141\163\163\040\064\040\120\165\142\154\151\143\040"
-"\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143"
-"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040"
-"\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206"
-"\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012"
-"\002\202\001\001\000\255\313\245\021\151\306\131\253\361\217\265"
-"\031\017\126\316\314\265\037\040\344\236\046\045\113\340\163\145"
-"\211\131\336\320\203\344\365\017\265\273\255\361\174\350\041\374"
-"\344\350\014\356\174\105\042\031\166\222\264\023\267\040\133\011"
-"\372\141\256\250\362\245\215\205\302\052\326\336\146\066\322\233"
-"\002\364\250\222\140\174\234\151\264\217\044\036\320\206\122\366"
-"\062\234\101\130\036\042\275\315\105\142\225\010\156\320\146\335"
-"\123\242\314\360\020\334\124\163\213\004\241\106\063\063\134\027"
-"\100\271\236\115\323\363\276\125\203\350\261\211\216\132\174\232"
-"\226\042\220\073\210\045\362\322\123\210\002\014\013\170\362\346"
-"\067\027\113\060\106\007\344\200\155\246\330\226\056\350\054\370"
-"\021\263\070\015\146\246\233\352\311\043\133\333\216\342\363\023"
-"\216\032\131\055\252\002\360\354\244\207\146\334\301\077\365\330"
-"\271\364\354\202\306\322\075\225\035\345\300\117\204\311\331\243"
-"\104\050\006\152\327\105\254\360\153\152\357\116\137\370\021\202"
-"\036\070\143\064\146\120\324\076\223\163\372\060\303\146\255\377"
-"\223\055\227\357\003\002\003\001\000\001\060\015\006\011\052\206"
-"\110\206\367\015\001\001\005\005\000\003\202\001\001\000\217\372"
-"\045\153\117\133\344\244\116\047\125\253\042\025\131\074\312\265"
-"\012\324\112\333\253\335\241\137\123\305\240\127\071\302\316\107"
-"\053\276\072\310\126\277\302\331\047\020\072\261\005\074\300\167"
-"\061\273\072\323\005\173\155\232\034\060\214\200\313\223\223\052"
-"\203\253\005\121\202\002\000\021\147\153\363\210\141\107\137\003"
-"\223\325\133\015\340\361\324\241\062\065\205\262\072\333\260\202"
-"\253\321\313\012\274\117\214\133\305\113\000\073\037\052\202\246"
-"\176\066\205\334\176\074\147\000\265\344\073\122\340\250\353\135"
-"\025\371\306\155\360\255\035\016\205\267\251\232\163\024\132\133"
-"\217\101\050\300\325\350\055\115\244\136\315\252\331\355\316\334"
-"\330\325\074\102\035\027\301\022\135\105\070\303\070\363\374\205"
-"\056\203\106\110\262\327\040\137\222\066\217\347\171\017\230\136"
-"\231\350\360\320\244\273\365\123\275\052\316\131\260\257\156\177"
-"\154\273\322\036\000\260\041\355\370\101\142\202\271\330\262\304"
-"\273\106\120\363\061\305\217\001\250\164\353\365\170\047\332\347"
-"\367\146\103\363\236\203\076\040\252\303\065\140\221\316"
-, (PRUint32)1054 }
-};
-static const NSSItem nss_builtins_items_31 [] = {
-  { (void *)&cko_nss_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 *)"Verisign Class 4 Public Primary Certification Authority - G3", (PRUint32)61 },
-  { (void *)"\310\354\214\207\222\151\313\113\253\071\351\215\176\127\147\363"
-"\024\225\163\235"
-, (PRUint32)20 },
-  { (void *)"\333\310\362\047\056\261\352\152\051\043\135\376\126\076\063\337"
-, (PRUint32)16 },
-  { (void *)"\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123"
-"\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125"
-"\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165"
-"\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003"
-"\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145"
-"\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106"
-"\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163"
-"\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023"
-"\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040"
-"\064\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171"
-"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
-"\165\164\150\157\162\151\164\171\040\055\040\107\063"
-, (PRUint32)205 },
-  { (void *)"\002\021\000\354\240\247\213\156\165\152\001\317\304\174\314\057"
-"\224\136\327"
-, (PRUint32)19 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_32 [] = {
+static const NSSItem nss_builtins_items_26 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3013,7 +2626,7 @@
 "\174\136\232\166\351\131\220\305\174\203\065\021\145\121"
 , (PRUint32)1070 }
 };
-static const NSSItem nss_builtins_items_33 [] = {
+static const NSSItem nss_builtins_items_27 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3044,7 +2657,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_34 [] = {
+static const NSSItem nss_builtins_items_28 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3126,7 +2739,7 @@
 "\347\201\035\031\303\044\102\352\143\071\251"
 , (PRUint32)891 }
 };
-static const NSSItem nss_builtins_items_35 [] = {
+static const NSSItem nss_builtins_items_29 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3151,7 +2764,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_36 [] = {
+static const NSSItem nss_builtins_items_30 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3219,7 +2832,7 @@
 "\126\224\251\125"
 , (PRUint32)660 }
 };
-static const NSSItem nss_builtins_items_37 [] = {
+static const NSSItem nss_builtins_items_31 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3244,7 +2857,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_38 [] = {
+static const NSSItem nss_builtins_items_32 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3311,7 +2924,7 @@
 "\132\052\202\262\067\171"
 , (PRUint32)646 }
 };
-static const NSSItem nss_builtins_items_39 [] = {
+static const NSSItem nss_builtins_items_33 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3336,7 +2949,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_40 [] = {
+static const NSSItem nss_builtins_items_34 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3430,7 +3043,7 @@
 "\065\341\035\026\034\320\274\053\216\326\161\331"
 , (PRUint32)1052 }
 };
-static const NSSItem nss_builtins_items_41 [] = {
+static const NSSItem nss_builtins_items_35 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3456,7 +3069,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_42 [] = {
+static const NSSItem nss_builtins_items_36 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3554,7 +3167,7 @@
 "\027\132\173\320\274\307\217\116\206\004"
 , (PRUint32)1082 }
 };
-static const NSSItem nss_builtins_items_43 [] = {
+static const NSSItem nss_builtins_items_37 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3581,7 +3194,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_44 [] = {
+static const NSSItem nss_builtins_items_38 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3675,7 +3288,7 @@
 "\116\072\063\014\053\263\055\220\006"
 , (PRUint32)1049 }
 };
-static const NSSItem nss_builtins_items_45 [] = {
+static const NSSItem nss_builtins_items_39 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3701,7 +3314,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_46 [] = {
+static const NSSItem nss_builtins_items_40 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3796,7 +3409,7 @@
 "\306\241"
 , (PRUint32)1058 }
 };
-static const NSSItem nss_builtins_items_47 [] = {
+static const NSSItem nss_builtins_items_41 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3822,7 +3435,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_48 [] = {
+static const NSSItem nss_builtins_items_42 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3934,7 +3547,7 @@
 "\036\177\132\264\074"
 , (PRUint32)1173 }
 };
-static const NSSItem nss_builtins_items_49 [] = {
+static const NSSItem nss_builtins_items_43 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -3965,7 +3578,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_50 [] = {
+static const NSSItem nss_builtins_items_44 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4043,7 +3656,7 @@
 "\354\040\005\141\336"
 , (PRUint32)869 }
 };
-static const NSSItem nss_builtins_items_51 [] = {
+static const NSSItem nss_builtins_items_45 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4067,7 +3680,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_52 [] = {
+static const NSSItem nss_builtins_items_46 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4145,7 +3758,7 @@
 "\302\005\146\200\241\313\346\063"
 , (PRUint32)856 }
 };
-static const NSSItem nss_builtins_items_53 [] = {
+static const NSSItem nss_builtins_items_47 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4169,7 +3782,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_54 [] = {
+static const NSSItem nss_builtins_items_48 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4248,7 +3861,7 @@
 "\342\042\051\256\175\203\100\250\272\154"
 , (PRUint32)874 }
 };
-static const NSSItem nss_builtins_items_55 [] = {
+static const NSSItem nss_builtins_items_49 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4272,7 +3885,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_56 [] = {
+static const NSSItem nss_builtins_items_50 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4383,7 +3996,7 @@
 "\244\346\216\330\371\051\110\212\316\163\376\054"
 , (PRUint32)1388 }
 };
-static const NSSItem nss_builtins_items_57 [] = {
+static const NSSItem nss_builtins_items_51 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4407,7 +4020,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_58 [] = {
+static const NSSItem nss_builtins_items_52 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4518,7 +4131,7 @@
 "\362\034\054\176\256\002\026\322\126\320\057\127\123\107\350\222"
 , (PRUint32)1392 }
 };
-static const NSSItem nss_builtins_items_59 [] = {
+static const NSSItem nss_builtins_items_53 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4542,146 +4155,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_60 [] = {
-  { (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 *)"UTN-USER First-Network Applications", (PRUint32)36 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060"
-"\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153"
-"\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023"
-"\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116"
-"\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023"
-"\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\061\053\060\051\006\003\125"
-"\004\003\023\042\125\124\116\055\125\123\105\122\106\151\162\163"
-"\164\055\116\145\164\167\157\162\153\040\101\160\160\154\151\143"
-"\141\164\151\157\156\163"
-, (PRUint32)166 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060"
-"\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153"
-"\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023"
-"\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116"
-"\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023"
-"\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\061\053\060\051\006\003\125"
-"\004\003\023\042\125\124\116\055\125\123\105\122\106\151\162\163"
-"\164\055\116\145\164\167\157\162\153\040\101\160\160\154\151\143"
-"\141\164\151\157\156\163"
-, (PRUint32)166 },
-  { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\060\113\300"
-"\063\167"
-, (PRUint32)18 },
-  { (void *)"\060\202\004\144\060\202\003\114\240\003\002\001\002\002\020\104"
-"\276\014\213\120\000\044\264\021\323\066\060\113\300\063\167\060"
-"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201"
-"\243\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013"
-"\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006"
-"\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040"
-"\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124"
-"\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164"
-"\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150"
-"\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162"
-"\165\163\164\056\143\157\155\061\053\060\051\006\003\125\004\003"
-"\023\042\125\124\116\055\125\123\105\122\106\151\162\163\164\055"
-"\116\145\164\167\157\162\153\040\101\160\160\154\151\143\141\164"
-"\151\157\156\163\060\036\027\015\071\071\060\067\060\071\061\070"
-"\064\070\063\071\132\027\015\061\071\060\067\060\071\061\070\065"
-"\067\064\071\132\060\201\243\061\013\060\011\006\003\125\004\006"
-"\023\002\125\123\061\013\060\011\006\003\125\004\010\023\002\125"
-"\124\061\027\060\025\006\003\125\004\007\023\016\123\141\154\164"
-"\040\114\141\153\145\040\103\151\164\171\061\036\060\034\006\003"
-"\125\004\012\023\025\124\150\145\040\125\123\105\122\124\122\125"
-"\123\124\040\116\145\164\167\157\162\153\061\041\060\037\006\003"
-"\125\004\013\023\030\150\164\164\160\072\057\057\167\167\167\056"
-"\165\163\145\162\164\162\165\163\164\056\143\157\155\061\053\060"
-"\051\006\003\125\004\003\023\042\125\124\116\055\125\123\105\122"
-"\106\151\162\163\164\055\116\145\164\167\157\162\153\040\101\160"
-"\160\154\151\143\141\164\151\157\156\163\060\202\001\042\060\015"
-"\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001"
-"\017\000\060\202\001\012\002\202\001\001\000\263\373\221\241\344"
-"\066\125\205\254\006\064\133\240\232\130\262\370\265\017\005\167"
-"\203\256\062\261\166\222\150\354\043\112\311\166\077\343\234\266"
-"\067\171\003\271\253\151\215\007\045\266\031\147\344\260\033\030"
-"\163\141\112\350\176\315\323\057\144\343\246\174\014\372\027\200"
-"\243\015\107\211\117\121\161\057\356\374\077\371\270\026\200\207"
-"\211\223\045\040\232\103\202\151\044\166\050\131\065\241\035\300"
-"\177\203\006\144\026\040\054\323\111\244\205\264\300\141\177\121"
-"\010\370\150\025\221\200\313\245\325\356\073\072\364\204\004\136"
-"\140\131\247\214\064\162\356\270\170\305\321\073\022\112\157\176"
-"\145\047\271\244\125\305\271\157\103\244\305\035\054\231\300\122"
-"\244\170\114\025\263\100\230\010\153\103\306\001\260\172\173\365"
-"\153\034\042\077\313\357\377\250\320\072\113\166\025\236\322\321"
-"\306\056\343\333\127\033\062\242\270\157\350\206\246\077\160\253"
-"\345\160\222\253\104\036\100\120\373\234\243\142\344\154\156\240"
-"\310\336\342\200\102\372\351\057\350\316\062\004\217\174\215\267"
-"\034\243\065\074\025\335\236\303\256\227\245\002\003\001\000\001"
-"\243\201\221\060\201\216\060\013\006\003\125\035\017\004\004\003"
-"\002\001\306\060\017\006\003\125\035\023\001\001\377\004\005\060"
-"\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\372"
-"\206\311\333\340\272\351\170\365\113\250\326\025\337\360\323\341"
-"\152\024\074\060\117\006\003\125\035\037\004\110\060\106\060\104"
-"\240\102\240\100\206\076\150\164\164\160\072\057\057\143\162\154"
-"\056\165\163\145\162\164\162\165\163\164\056\143\157\155\057\125"
-"\124\116\055\125\123\105\122\106\151\162\163\164\055\116\145\164"
-"\167\157\162\153\101\160\160\154\151\143\141\164\151\157\156\163"
-"\056\143\162\154\060\015\006\011\052\206\110\206\367\015\001\001"
-"\005\005\000\003\202\001\001\000\244\363\045\314\321\324\221\203"
-"\042\320\314\062\253\233\226\116\064\221\124\040\045\064\141\137"
-"\052\002\025\341\213\252\377\175\144\121\317\012\377\274\175\330"
-"\041\152\170\313\057\121\157\370\102\035\063\275\353\265\173\224"
-"\303\303\251\240\055\337\321\051\037\035\376\217\077\273\250\105"
-"\052\177\321\156\125\044\342\273\002\373\061\077\276\350\274\354"
-"\100\053\370\001\324\126\070\344\312\104\202\265\141\040\041\147"
-"\145\366\360\013\347\064\370\245\302\234\243\134\100\037\205\223"
-"\225\006\336\117\324\047\251\266\245\374\026\315\163\061\077\270"
-"\145\047\317\324\123\032\360\254\156\237\117\005\014\003\201\247"
-"\204\051\304\132\275\144\127\162\255\073\317\067\030\246\230\306"
-"\255\006\264\334\010\243\004\325\051\244\226\232\022\147\112\214"
-"\140\105\235\361\043\232\260\000\234\150\265\230\120\323\357\216"
-"\056\222\145\261\110\076\041\276\025\060\052\015\265\014\243\153"
-"\077\256\177\127\365\037\226\174\337\157\335\202\060\054\145\033"
-"\100\112\315\150\271\162\354\161\166\354\124\216\037\205\014\001"
-"\152\372\246\070\254\037\304\204"
-, (PRUint32)1128 }
-};
-static const NSSItem nss_builtins_items_61 [] = {
-  { (void *)&cko_nss_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 *)"UTN-USER First-Network Applications", (PRUint32)36 },
-  { (void *)"\135\230\234\333\025\226\021\066\121\145\144\033\126\017\333\352"
-"\052\302\076\361"
-, (PRUint32)20 },
-  { (void *)"\277\140\131\243\133\272\366\247\166\102\332\157\032\173\120\317"
-, (PRUint32)16 },
-  { (void *)"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060"
-"\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153"
-"\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023"
-"\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116"
-"\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023"
-"\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\061\053\060\051\006\003\125"
-"\004\003\023\042\125\124\116\055\125\123\105\122\106\151\162\163"
-"\164\055\116\145\164\167\157\162\153\040\101\160\160\154\151\143"
-"\141\164\151\157\156\163"
-, (PRUint32)166 },
-  { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\060\113\300"
-"\063\167"
-, (PRUint32)18 },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_62 [] = {
+static const NSSItem nss_builtins_items_54 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4769,7 +4243,7 @@
 "\222\340\134\366\007\017"
 , (PRUint32)934 }
 };
-static const NSSItem nss_builtins_items_63 [] = {
+static const NSSItem nss_builtins_items_55 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4796,7 +4270,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_64 [] = {
+static const NSSItem nss_builtins_items_56 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4867,7 +4341,7 @@
 "\350\140\052\233\205\112\100\363\153\212\044\354\006\026\054\163"
 , (PRUint32)784 }
 };
-static const NSSItem nss_builtins_items_65 [] = {
+static const NSSItem nss_builtins_items_57 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4890,7 +4364,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_66 [] = {
+static const NSSItem nss_builtins_items_58 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -4988,7 +4462,7 @@
 "\225\351\066\226\230\156"
 , (PRUint32)1078 }
 };
-static const NSSItem nss_builtins_items_67 [] = {
+static const NSSItem nss_builtins_items_59 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5015,7 +4489,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_68 [] = {
+static const NSSItem nss_builtins_items_60 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5114,7 +4588,7 @@
 "\354\375\051"
 , (PRUint32)1091 }
 };
-static const NSSItem nss_builtins_items_69 [] = {
+static const NSSItem nss_builtins_items_61 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5141,7 +4615,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_70 [] = {
+static const NSSItem nss_builtins_items_62 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5242,7 +4716,7 @@
 "\160\136\310\304\170\260\142"
 , (PRUint32)1095 }
 };
-static const NSSItem nss_builtins_items_71 [] = {
+static const NSSItem nss_builtins_items_63 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5270,7 +4744,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_72 [] = {
+static const NSSItem nss_builtins_items_64 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5396,7 +4870,7 @@
 "\112\164\066\371"
 , (PRUint32)1492 }
 };
-static const NSSItem nss_builtins_items_73 [] = {
+static const NSSItem nss_builtins_items_65 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5424,7 +4898,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_74 [] = {
+static const NSSItem nss_builtins_items_66 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5540,7 +5014,7 @@
 "\020\005\145\325\202\020\352\302\061\315\056"
 , (PRUint32)1467 }
 };
-static const NSSItem nss_builtins_items_75 [] = {
+static const NSSItem nss_builtins_items_67 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5564,7 +5038,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_76 [] = {
+static const NSSItem nss_builtins_items_68 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5695,7 +5169,7 @@
 "\332"
 , (PRUint32)1697 }
 };
-static const NSSItem nss_builtins_items_77 [] = {
+static const NSSItem nss_builtins_items_69 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5719,7 +5193,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_78 [] = {
+static const NSSItem nss_builtins_items_70 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5799,7 +5273,7 @@
 "\057\317\246\356\311\160\042\024\275\375\276\154\013\003"
 , (PRUint32)862 }
 };
-static const NSSItem nss_builtins_items_79 [] = {
+static const NSSItem nss_builtins_items_71 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5824,7 +5298,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_80 [] = {
+static const NSSItem nss_builtins_items_72 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5897,7 +5371,7 @@
 "\127\275\125\232"
 , (PRUint32)804 }
 };
-static const NSSItem nss_builtins_items_81 [] = {
+static const NSSItem nss_builtins_items_73 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5920,7 +5394,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_82 [] = {
+static const NSSItem nss_builtins_items_74 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -5993,7 +5467,7 @@
 "\160\254\337\114"
 , (PRUint32)804 }
 };
-static const NSSItem nss_builtins_items_83 [] = {
+static const NSSItem nss_builtins_items_75 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6016,7 +5490,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_84 [] = {
+static const NSSItem nss_builtins_items_76 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6102,7 +5576,7 @@
 "\025\301\044\174\062\174\003\035\073\241\130\105\062\223"
 , (PRUint32)958 }
 };
-static const NSSItem nss_builtins_items_85 [] = {
+static const NSSItem nss_builtins_items_77 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6127,143 +5601,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_86 [] = {
-  { (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 *)"UTN DATACorp SGC Root CA", (PRUint32)25 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\201\223\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060"
-"\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153"
-"\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023"
-"\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116"
-"\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023"
-"\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\061\033\060\031\006\003\125"
-"\004\003\023\022\125\124\116\040\055\040\104\101\124\101\103\157"
-"\162\160\040\123\107\103"
-, (PRUint32)150 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\201\223\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060"
-"\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153"
-"\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023"
-"\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116"
-"\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023"
-"\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\061\033\060\031\006\003\125"
-"\004\003\023\022\125\124\116\040\055\040\104\101\124\101\103\157"
-"\162\160\040\123\107\103"
-, (PRUint32)150 },
-  { (void *)"\002\020\104\276\014\213\120\000\041\264\021\323\052\150\006\251"
-"\255\151"
-, (PRUint32)18 },
-  { (void *)"\060\202\004\136\060\202\003\106\240\003\002\001\002\002\020\104"
-"\276\014\213\120\000\041\264\021\323\052\150\006\251\255\151\060"
-"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201"
-"\223\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013"
-"\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006"
-"\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040"
-"\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124"
-"\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164"
-"\167\157\162\153\061\041\060\037\006\003\125\004\013\023\030\150"
-"\164\164\160\072\057\057\167\167\167\056\165\163\145\162\164\162"
-"\165\163\164\056\143\157\155\061\033\060\031\006\003\125\004\003"
-"\023\022\125\124\116\040\055\040\104\101\124\101\103\157\162\160"
-"\040\123\107\103\060\036\027\015\071\071\060\066\062\064\061\070"
-"\065\067\062\061\132\027\015\061\071\060\066\062\064\061\071\060"
-"\066\063\060\132\060\201\223\061\013\060\011\006\003\125\004\006"
-"\023\002\125\123\061\013\060\011\006\003\125\004\010\023\002\125"
-"\124\061\027\060\025\006\003\125\004\007\023\016\123\141\154\164"
-"\040\114\141\153\145\040\103\151\164\171\061\036\060\034\006\003"
-"\125\004\012\023\025\124\150\145\040\125\123\105\122\124\122\125"
-"\123\124\040\116\145\164\167\157\162\153\061\041\060\037\006\003"
-"\125\004\013\023\030\150\164\164\160\072\057\057\167\167\167\056"
-"\165\163\145\162\164\162\165\163\164\056\143\157\155\061\033\060"
-"\031\006\003\125\004\003\023\022\125\124\116\040\055\040\104\101"
-"\124\101\103\157\162\160\040\123\107\103\060\202\001\042\060\015"
-"\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001"
-"\017\000\060\202\001\012\002\202\001\001\000\337\356\130\020\242"
-"\053\156\125\304\216\277\056\106\011\347\340\010\017\056\053\172"
-"\023\224\033\275\366\266\200\216\145\005\223\000\036\274\257\342"
-"\017\216\031\015\022\107\354\254\255\243\372\056\160\370\336\156"
-"\373\126\102\025\236\056\134\357\043\336\041\271\005\166\047\031"
-"\017\117\326\303\234\264\276\224\031\143\362\246\021\012\353\123"
-"\110\234\276\362\051\073\026\350\032\240\114\246\311\364\030\131"
-"\150\300\160\362\123\000\300\136\120\202\245\126\157\066\371\112"
-"\340\104\206\240\115\116\326\107\156\111\112\313\147\327\246\304"
-"\005\271\216\036\364\374\377\315\347\066\340\234\005\154\262\063"
-"\042\025\320\264\340\314\027\300\262\300\364\376\062\077\051\052"
-"\225\173\330\362\247\116\017\124\174\241\015\200\263\011\003\301"
-"\377\134\335\136\232\076\274\256\274\107\212\152\256\161\312\037"
-"\261\052\270\137\102\005\013\354\106\060\321\162\013\312\351\126"
-"\155\365\357\337\170\276\141\272\262\245\256\004\114\274\250\254"
-"\151\025\227\275\357\353\264\214\277\065\370\324\303\321\050\016"
-"\134\072\237\160\030\063\040\167\304\242\257\002\003\001\000\001"
-"\243\201\253\060\201\250\060\013\006\003\125\035\017\004\004\003"
-"\002\001\306\060\017\006\003\125\035\023\001\001\377\004\005\060"
-"\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\123"
-"\062\321\263\317\177\372\340\361\240\135\205\116\222\322\236\105"
-"\035\264\117\060\075\006\003\125\035\037\004\066\060\064\060\062"
-"\240\060\240\056\206\054\150\164\164\160\072\057\057\143\162\154"
-"\056\165\163\145\162\164\162\165\163\164\056\143\157\155\057\125"
-"\124\116\055\104\101\124\101\103\157\162\160\123\107\103\056\143"
-"\162\154\060\052\006\003\125\035\045\004\043\060\041\006\010\053"
-"\006\001\005\005\007\003\001\006\012\053\006\001\004\001\202\067"
-"\012\003\003\006\011\140\206\110\001\206\370\102\004\001\060\015"
-"\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001"
-"\001\000\047\065\227\000\212\213\050\275\306\063\060\036\051\374"
-"\342\367\325\230\324\100\273\140\312\277\253\027\054\011\066\177"
-"\120\372\101\334\256\226\072\012\043\076\211\131\311\243\007\355"
-"\033\067\255\374\174\276\121\111\132\336\072\012\124\010\026\105"
-"\302\231\261\207\315\214\150\340\151\003\351\304\116\230\262\073"
-"\214\026\263\016\240\014\230\120\233\223\251\160\011\310\054\243"
-"\217\337\002\344\340\161\072\361\264\043\162\240\252\001\337\337"
-"\230\076\024\120\240\061\046\275\050\351\132\060\046\165\371\173"
-"\140\034\215\363\315\120\046\155\004\047\232\337\325\015\105\107"
-"\051\153\054\346\166\331\251\051\175\062\335\311\066\074\275\256"
-"\065\361\021\236\035\273\220\077\022\107\116\216\327\176\017\142"
-"\163\035\122\046\070\034\030\111\375\060\164\232\304\345\042\057"
-"\330\300\215\355\221\172\114\000\217\162\177\135\332\335\033\213"
-"\105\153\347\335\151\227\250\305\126\114\017\014\366\237\172\221"
-"\067\366\227\202\340\335\161\151\377\166\077\140\115\074\317\367"
-"\231\371\306\127\364\311\125\071\170\272\054\171\311\246\210\053"
-"\364\010"
-, (PRUint32)1122 }
-};
-static const NSSItem nss_builtins_items_87 [] = {
-  { (void *)&cko_nss_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 *)"UTN DATACorp SGC Root CA", (PRUint32)25 },
-  { (void *)"\130\021\237\016\022\202\207\352\120\375\331\207\105\157\117\170"
-"\334\372\326\324"
-, (PRUint32)20 },
-  { (void *)"\263\245\076\167\041\155\254\112\300\311\373\325\101\075\312\006"
-, (PRUint32)16 },
-  { (void *)"\060\201\223\061\013\060\011\006\003\125\004\006\023\002\125\123"
-"\061\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060"
-"\025\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153"
-"\145\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023"
-"\025\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116"
-"\145\164\167\157\162\153\061\041\060\037\006\003\125\004\013\023"
-"\030\150\164\164\160\072\057\057\167\167\167\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\061\033\060\031\006\003\125"
-"\004\003\023\022\125\124\116\040\055\040\104\101\124\101\103\157"
-"\162\160\040\123\107\103"
-, (PRUint32)150 },
-  { (void *)"\002\020\104\276\014\213\120\000\041\264\021\323\052\150\006\251"
-"\255\151"
-, (PRUint32)18 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_88 [] = {
+static const NSSItem nss_builtins_items_78 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6377,7 +5715,7 @@
 "\005\323\312\003\112\124"
 , (PRUint32)1190 }
 };
-static const NSSItem nss_builtins_items_89 [] = {
+static const NSSItem nss_builtins_items_79 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6409,7 +5747,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_90 [] = {
+static const NSSItem nss_builtins_items_80 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6516,7 +5854,7 @@
 "\062\234\036\273\235\370\146\250"
 , (PRUint32)1144 }
 };
-static const NSSItem nss_builtins_items_91 [] = {
+static const NSSItem nss_builtins_items_81 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6546,7 +5884,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_92 [] = {
+static const NSSItem nss_builtins_items_82 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6652,7 +5990,7 @@
 "\275\023\122\035\250\076\315\000\037\310"
 , (PRUint32)1130 }
 };
-static const NSSItem nss_builtins_items_93 [] = {
+static const NSSItem nss_builtins_items_83 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6682,7 +6020,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_94 [] = {
+static const NSSItem nss_builtins_items_84 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6791,7 +6129,7 @@
 "\334"
 , (PRUint32)1217 }
 };
-static const NSSItem nss_builtins_items_95 [] = {
+static const NSSItem nss_builtins_items_85 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6819,7 +6157,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_96 [] = {
+static const NSSItem nss_builtins_items_86 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6926,7 +6264,7 @@
 "\166\135\165\220\032\365\046\217\360"
 , (PRUint32)1225 }
 };
-static const NSSItem nss_builtins_items_97 [] = {
+static const NSSItem nss_builtins_items_87 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -6953,7 +6291,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_98 [] = {
+static const NSSItem nss_builtins_items_88 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7103,7 +6441,7 @@
 "\306\224\107\351\050"
 , (PRUint32)1749 }
 };
-static const NSSItem nss_builtins_items_99 [] = {
+static const NSSItem nss_builtins_items_89 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7135,7 +6473,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_100 [] = {
+static const NSSItem nss_builtins_items_90 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7278,7 +6616,7 @@
 "\210"
 , (PRUint32)1665 }
 };
-static const NSSItem nss_builtins_items_101 [] = {
+static const NSSItem nss_builtins_items_91 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7309,7 +6647,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_102 [] = {
+static const NSSItem nss_builtins_items_92 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7428,7 +6766,7 @@
 "\066\053\143\254\130\001\153\063\051\120\206\203\361\001\110"
 , (PRUint32)1359 }
 };
-static const NSSItem nss_builtins_items_103 [] = {
+static const NSSItem nss_builtins_items_93 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7457,7 +6795,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_104 [] = {
+static const NSSItem nss_builtins_items_94 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7577,7 +6915,7 @@
 "\063\004\324"
 , (PRUint32)1363 }
 };
-static const NSSItem nss_builtins_items_105 [] = {
+static const NSSItem nss_builtins_items_95 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7606,7 +6944,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_106 [] = {
+static const NSSItem nss_builtins_items_96 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7707,7 +7045,7 @@
 "\264\003\045\274"
 , (PRUint32)1076 }
 };
-static const NSSItem nss_builtins_items_107 [] = {
+static const NSSItem nss_builtins_items_97 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7736,7 +7074,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_108 [] = {
+static const NSSItem nss_builtins_items_98 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7829,7 +7167,7 @@
 "\177\333\275\237"
 , (PRUint32)1028 }
 };
-static const NSSItem nss_builtins_items_109 [] = {
+static const NSSItem nss_builtins_items_99 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7855,7 +7193,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_110 [] = {
+static const NSSItem nss_builtins_items_100 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7949,7 +7287,7 @@
 "\037\027\224"
 , (PRUint32)1043 }
 };
-static const NSSItem nss_builtins_items_111 [] = {
+static const NSSItem nss_builtins_items_101 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -7975,7 +7313,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_112 [] = {
+static const NSSItem nss_builtins_items_102 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8130,7 +7468,7 @@
 "\152\263\364\210\034\200\015\374\162\212\350\203\136"
 , (PRUint32)1997 }
 };
-static const NSSItem nss_builtins_items_113 [] = {
+static const NSSItem nss_builtins_items_103 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8157,7 +7495,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_114 [] = {
+static const NSSItem nss_builtins_items_104 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8270,7 +7608,7 @@
 "\245\206\054\174\364\022"
 , (PRUint32)1398 }
 };
-static const NSSItem nss_builtins_items_115 [] = {
+static const NSSItem nss_builtins_items_105 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8295,7 +7633,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_116 [] = {
+static const NSSItem nss_builtins_items_106 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8418,7 +7756,7 @@
 "\060\032\365\232\154\364\016\123\371\072\133\321\034"
 , (PRUint32)1501 }
 };
-static const NSSItem nss_builtins_items_117 [] = {
+static const NSSItem nss_builtins_items_107 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8445,7 +7783,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_118 [] = {
+static const NSSItem nss_builtins_items_108 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8534,7 +7872,7 @@
 "\346\120\262\247\372\012\105\057\242\360\362"
 , (PRUint32)955 }
 };
-static const NSSItem nss_builtins_items_119 [] = {
+static const NSSItem nss_builtins_items_109 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8561,7 +7899,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_120 [] = {
+static const NSSItem nss_builtins_items_110 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8650,7 +7988,7 @@
 "\225\155\336"
 , (PRUint32)947 }
 };
-static const NSSItem nss_builtins_items_121 [] = {
+static const NSSItem nss_builtins_items_111 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8677,7 +8015,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_122 [] = {
+static const NSSItem nss_builtins_items_112 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8767,7 +8105,7 @@
 "\370\351\056\023\243\167\350\037\112"
 , (PRUint32)969 }
 };
-static const NSSItem nss_builtins_items_123 [] = {
+static const NSSItem nss_builtins_items_113 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8794,7 +8132,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_124 [] = {
+static const NSSItem nss_builtins_items_114 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8875,7 +8213,7 @@
 "\227\277\242\216\264\124"
 , (PRUint32)918 }
 };
-static const NSSItem nss_builtins_items_125 [] = {
+static const NSSItem nss_builtins_items_115 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8899,7 +8237,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_126 [] = {
+static const NSSItem nss_builtins_items_116 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -8977,7 +8315,7 @@
 "\013\004\216\007\333\051\266\012\356\235\202\065\065\020"
 , (PRUint32)846 }
 };
-static const NSSItem nss_builtins_items_127 [] = {
+static const NSSItem nss_builtins_items_117 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9002,7 +8340,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_128 [] = {
+static const NSSItem nss_builtins_items_118 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9094,7 +8432,7 @@
 "\363\267\240\247\315\345\172\063\066\152\372\232\053"
 , (PRUint32)1037 }
 };
-static const NSSItem nss_builtins_items_129 [] = {
+static const NSSItem nss_builtins_items_119 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9120,280 +8458,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_130 [] = {
-  { (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 *)"TURKTRUST Certificate Services Provider Root 1", (PRUint32)47 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101"
-"\122\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051"
-"\040\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124"
-"\040\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151"
-"\155\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303"
-"\274\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164"
-"\154\145\162\151\040\101\056\305\236\056"
-, (PRUint32)186 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101"
-"\122\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051"
-"\040\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124"
-"\040\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151"
-"\155\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303"
-"\274\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164"
-"\154\145\162\151\040\101\056\305\236\056"
-, (PRUint32)186 },
-  { (void *)"\002\001\001"
-, (PRUint32)3 },
-  { (void *)"\060\202\003\373\060\202\002\343\240\003\002\001\002\002\001\001"
-"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
-"\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303\234"
-"\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157\156"
-"\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172"
-"\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261"
-"\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124\122"
-"\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101\122"
-"\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051\040"
-"\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124\040"
-"\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155"
-"\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274"
-"\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154"
-"\145\162\151\040\101\056\305\236\056\060\036\027\015\060\065\060"
-"\065\061\063\061\060\062\067\061\067\132\027\015\061\065\060\063"
-"\062\062\061\060\062\067\061\067\132\060\201\267\061\077\060\075"
-"\006\003\125\004\003\014\066\124\303\234\122\113\124\122\125\123"
-"\124\040\105\154\145\153\164\162\157\156\151\153\040\123\145\162"
-"\164\151\146\151\153\141\040\110\151\172\155\145\164\040\123\141"
-"\304\237\154\141\171\304\261\143\304\261\163\304\261\061\013\060"
-"\011\006\003\125\004\006\014\002\124\122\061\017\060\015\006\003"
-"\125\004\007\014\006\101\116\113\101\122\101\061\126\060\124\006"
-"\003\125\004\012\014\115\050\143\051\040\062\060\060\065\040\124"
-"\303\234\122\113\124\122\125\123\124\040\102\151\154\147\151\040"
-"\304\260\154\145\164\151\305\237\151\155\040\166\145\040\102\151"
-"\154\151\305\237\151\155\040\107\303\274\166\145\156\154\151\304"
-"\237\151\040\110\151\172\155\145\164\154\145\162\151\040\101\056"
-"\305\236\056\060\202\001\042\060\015\006\011\052\206\110\206\367"
-"\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002"
-"\202\001\001\000\312\122\005\326\143\003\330\034\137\335\322\173"
-"\135\362\014\140\141\133\153\073\164\053\170\015\175\105\275\042"
-"\164\350\214\003\301\306\021\052\075\225\274\251\224\260\273\221"
-"\227\310\151\174\204\305\264\221\154\154\023\152\244\125\255\244"
-"\205\350\225\176\263\000\257\000\302\005\030\365\160\235\066\213"
-"\256\313\344\033\201\177\223\210\373\152\125\273\175\205\222\316"
-"\272\130\237\333\062\305\275\135\357\042\112\057\101\007\176\111"
-"\141\263\206\354\116\246\101\156\204\274\003\354\365\073\034\310"
-"\037\302\356\250\356\352\022\112\215\024\317\363\012\340\120\071"
-"\371\010\065\370\021\131\255\347\042\352\113\312\024\006\336\102"
-"\272\262\231\363\055\124\210\020\006\352\341\032\076\075\147\037"
-"\373\316\373\174\202\350\021\135\112\301\271\024\352\124\331\146"
-"\233\174\211\175\004\232\142\311\351\122\074\236\234\357\322\365"
-"\046\344\346\345\030\174\213\156\337\154\314\170\133\117\162\262"
-"\313\134\077\214\005\215\321\114\214\255\222\307\341\170\177\145"
-"\154\111\006\120\054\236\062\302\327\112\306\165\212\131\116\165"
-"\157\107\136\301\002\003\001\000\001\243\020\060\016\060\014\006"
-"\003\125\035\023\004\005\060\003\001\001\377\060\015\006\011\052"
-"\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\025"
-"\365\125\377\067\226\200\131\041\244\374\241\025\114\040\366\324"
-"\137\332\003\044\374\317\220\032\364\041\012\232\356\072\261\152"
-"\357\357\370\140\321\114\066\146\105\035\363\146\002\164\004\173"
-"\222\060\250\336\012\166\017\357\225\156\275\311\067\346\032\015"
-"\254\211\110\133\314\203\066\302\365\106\134\131\202\126\264\325"
-"\376\043\264\330\124\034\104\253\304\247\345\024\316\074\101\141"
-"\174\103\346\315\304\201\011\213\044\373\124\045\326\026\250\226"
-"\014\147\007\157\263\120\107\343\034\044\050\335\052\230\244\141"
-"\376\333\352\022\067\274\001\032\064\205\275\156\117\347\221\162"
-"\007\104\205\036\130\312\124\104\335\367\254\271\313\211\041\162"
-"\333\217\300\151\051\227\052\243\256\030\043\227\034\101\052\213"
-"\174\052\301\174\220\350\251\050\300\323\221\306\255\050\207\100"
-"\150\265\377\354\247\322\323\070\030\234\323\175\151\135\360\306"
-"\245\036\044\033\243\107\374\151\007\150\347\344\232\264\355\017"
-"\241\207\207\002\316\207\322\110\116\341\274\377\313\361\162\222"
-"\104\144\003\045\352\336\133\156\237\311\362\116\254\335\307"
-, (PRUint32)1023 }
-};
-static const NSSItem nss_builtins_items_131 [] = {
-  { (void *)&cko_nss_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 *)"TURKTRUST Certificate Services Provider Root 1", (PRUint32)47 },
-  { (void *)"\171\230\243\010\341\115\145\205\346\302\036\025\072\161\237\272"
-"\132\323\112\331"
-, (PRUint32)20 },
-  { (void *)"\361\152\042\030\311\315\337\316\202\035\035\267\170\134\251\245"
-, (PRUint32)16 },
-  { (void *)"\060\201\267\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\014\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\116\113\101"
-"\122\101\061\126\060\124\006\003\125\004\012\014\115\050\143\051"
-"\040\062\060\060\065\040\124\303\234\122\113\124\122\125\123\124"
-"\040\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151"
-"\155\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303"
-"\274\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164"
-"\154\145\162\151\040\101\056\305\236\056"
-, (PRUint32)186 },
-  { (void *)"\002\001\001"
-, (PRUint32)3 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_132 [] = {
-  { (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 *)"TURKTRUST Certificate Services Provider Root 2", (PRUint32)47 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141"
-"\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234"
-"\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260"
-"\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151"
-"\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151"
-"\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236"
-"\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060"
-"\065"
-, (PRUint32)193 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141"
-"\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234"
-"\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260"
-"\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151"
-"\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151"
-"\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236"
-"\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060"
-"\065"
-, (PRUint32)193 },
-  { (void *)"\002\001\001"
-, (PRUint32)3 },
-  { (void *)"\060\202\004\074\060\202\003\044\240\003\002\001\002\002\001\001"
-"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
-"\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303\234"
-"\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157\156"
-"\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172"
-"\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261"
-"\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
-"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
-"\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234\122"
-"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
-"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
-"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
-"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
-"\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060\065"
-"\060\036\027\015\060\065\061\061\060\067\061\060\060\067\065\067"
-"\132\027\015\061\065\060\071\061\066\061\060\060\067\065\067\132"
-"\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141"
-"\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234"
-"\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260"
-"\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151"
-"\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151"
-"\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236"
-"\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060"
-"\065\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001"
-"\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001"
-"\001\000\251\066\176\303\221\103\114\303\031\230\010\310\307\130"
-"\173\117\026\214\245\316\111\001\037\163\016\254\165\023\246\372"
-"\236\054\040\336\330\220\016\012\321\151\322\047\373\252\167\237"
-"\047\122\045\342\313\135\330\330\203\120\027\175\212\265\202\077"
-"\004\216\264\325\360\111\247\144\267\036\056\137\040\234\120\165"
-"\117\257\341\265\101\024\364\230\222\210\307\345\345\144\107\141"
-"\107\171\375\300\121\361\301\231\347\334\316\152\373\257\265\001"
-"\060\334\106\034\357\212\354\225\357\334\377\257\020\034\353\235"
-"\330\260\252\152\205\030\015\027\311\076\277\361\233\320\011\211"
-"\102\375\240\102\264\235\211\121\125\051\317\033\160\274\204\124"
-"\255\301\023\037\230\364\056\166\140\213\135\077\232\255\312\014"
-"\277\247\126\133\217\167\270\325\236\171\111\222\077\340\361\227"
-"\044\172\154\233\027\017\155\357\123\230\221\053\344\017\276\131"
-"\171\007\170\273\227\225\364\237\151\324\130\207\012\251\343\314"
-"\266\130\031\237\046\041\261\304\131\215\262\101\165\300\255\151"
-"\316\234\000\010\362\066\377\076\360\241\017\032\254\024\375\246"
-"\140\017\002\003\001\000\001\243\103\060\101\060\035\006\003\125"
-"\035\016\004\026\004\024\331\067\263\116\005\375\331\317\237\022"
-"\026\256\266\211\057\353\045\072\210\034\060\017\006\003\125\035"
-"\017\001\001\377\004\005\003\003\007\006\000\060\017\006\003\125"
-"\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006\011"
-"\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000"
-"\162\140\226\267\311\334\330\051\136\043\205\137\262\263\055\166"
-"\373\210\327\027\376\173\155\105\270\366\205\154\237\042\374\052"
-"\020\042\354\252\271\060\366\253\130\326\071\020\061\231\051\000"
-"\275\211\146\101\373\164\336\221\301\030\013\237\265\141\313\235"
-"\072\276\365\250\224\243\042\125\156\027\111\377\322\051\361\070"
-"\046\135\357\245\252\072\371\161\173\346\332\130\035\323\164\302"
-"\001\372\076\151\130\137\255\313\150\276\024\056\233\154\300\266"
-"\334\240\046\372\167\032\342\044\332\032\067\340\147\255\321\163"
-"\203\015\245\032\035\156\022\222\176\204\142\000\027\275\274\045"
-"\030\127\362\327\251\157\131\210\274\064\267\056\205\170\235\226"
-"\334\024\303\054\212\122\233\226\214\122\146\075\206\026\213\107"
-"\270\121\011\214\352\175\315\210\162\263\140\063\261\360\012\104"
-"\357\017\365\011\067\210\044\016\054\153\040\072\242\372\021\362"
-"\100\065\234\104\150\143\073\254\063\157\143\274\054\273\362\322"
-"\313\166\175\175\210\330\035\310\005\035\156\274\224\251\146\214"
-"\167\161\307\372\221\372\057\121\236\351\071\122\266\347\004\102"
-, (PRUint32)1088 }
-};
-static const NSSItem nss_builtins_items_133 [] = {
-  { (void *)&cko_nss_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 *)"TURKTRUST Certificate Services Provider Root 2", (PRUint32)47 },
-  { (void *)"\264\065\324\341\021\235\034\146\220\247\111\353\263\224\275\143"
-"\173\247\202\267"
-, (PRUint32)20 },
-  { (void *)"\067\245\156\324\261\045\204\227\267\375\126\025\172\371\242\000"
-, (PRUint32)16 },
-  { (void *)"\060\201\276\061\077\060\075\006\003\125\004\003\014\066\124\303"
-"\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157"
-"\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151"
-"\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304"
-"\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124"
-"\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141"
-"\162\141\061\135\060\133\006\003\125\004\012\014\124\124\303\234"
-"\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260"
-"\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151"
-"\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151"
-"\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236"
-"\056\040\050\143\051\040\113\141\163\304\261\155\040\062\060\060"
-"\065"
-, (PRUint32)193 },
-  { (void *)"\002\001\001"
-, (PRUint32)3 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_134 [] = {
+static const NSSItem nss_builtins_items_120 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9510,7 +8575,7 @@
 "\205\206\171\145\322"
 , (PRUint32)1477 }
 };
-static const NSSItem nss_builtins_items_135 [] = {
+static const NSSItem nss_builtins_items_121 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9534,7 +8599,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_136 [] = {
+static const NSSItem nss_builtins_items_122 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9650,7 +8715,7 @@
 "\111\044\133\311\260\320\127\301\372\076\172\341\227\311"
 , (PRUint32)1470 }
 };
-static const NSSItem nss_builtins_items_137 [] = {
+static const NSSItem nss_builtins_items_123 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9674,7 +8739,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_138 [] = {
+static const NSSItem nss_builtins_items_124 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9791,7 +8856,7 @@
 "\156"
 , (PRUint32)1473 }
 };
-static const NSSItem nss_builtins_items_139 [] = {
+static const NSSItem nss_builtins_items_125 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9815,7 +8880,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_140 [] = {
+static const NSSItem nss_builtins_items_126 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9898,7 +8963,7 @@
 "\253\022\350\263\336\132\345\240\174\350\017\042\035\132\351\131"
 , (PRUint32)896 }
 };
-static const NSSItem nss_builtins_items_141 [] = {
+static const NSSItem nss_builtins_items_127 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -9924,7 +8989,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_142 [] = {
+static const NSSItem nss_builtins_items_128 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10028,7 +9093,7 @@
 "\215\126\214\150"
 , (PRUint32)1060 }
 };
-static const NSSItem nss_builtins_items_143 [] = {
+static const NSSItem nss_builtins_items_129 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10059,7 +9124,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_144 [] = {
+static const NSSItem nss_builtins_items_130 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10178,7 +9243,7 @@
 "\254\021\326\250\355\143\152"
 , (PRUint32)1239 }
 };
-static const NSSItem nss_builtins_items_145 [] = {
+static const NSSItem nss_builtins_items_131 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10211,7 +9276,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_146 [] = {
+static const NSSItem nss_builtins_items_132 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10296,7 +9361,7 @@
 "\113\035\236\054\302\270\150\274\355\002\356\061"
 , (PRUint32)956 }
 };
-static const NSSItem nss_builtins_items_147 [] = {
+static const NSSItem nss_builtins_items_133 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10321,7 +9386,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_148 [] = {
+static const NSSItem nss_builtins_items_134 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10406,7 +9471,7 @@
 "\117\043\037\332\154\254\037\104\341\335\043\170\121\133\307\026"
 , (PRUint32)960 }
 };
-static const NSSItem nss_builtins_items_149 [] = {
+static const NSSItem nss_builtins_items_135 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10431,7 +9496,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_150 [] = {
+static const NSSItem nss_builtins_items_136 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10531,7 +9596,7 @@
 "\145"
 , (PRUint32)1057 }
 };
-static const NSSItem nss_builtins_items_151 [] = {
+static const NSSItem nss_builtins_items_137 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10560,7 +9625,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_152 [] = {
+static const NSSItem nss_builtins_items_138 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10652,7 +9717,7 @@
 "\244\140\114\260\125\240\240\173\127\262"
 , (PRUint32)1002 }
 };
-static const NSSItem nss_builtins_items_153 [] = {
+static const NSSItem nss_builtins_items_139 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10679,7 +9744,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_154 [] = {
+static const NSSItem nss_builtins_items_140 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10788,7 +9853,7 @@
 "\333"
 , (PRUint32)1217 }
 };
-static const NSSItem nss_builtins_items_155 [] = {
+static const NSSItem nss_builtins_items_141 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10816,7 +9881,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_156 [] = {
+static const NSSItem nss_builtins_items_142 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10890,7 +9955,7 @@
 "\334\335\363\377\035\054\072\026\127\331\222\071\326"
 , (PRUint32)653 }
 };
-static const NSSItem nss_builtins_items_157 [] = {
+static const NSSItem nss_builtins_items_143 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -10919,7 +9984,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_158 [] = {
+static const NSSItem nss_builtins_items_144 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11011,7 +10076,7 @@
 "\321\236\164\310\166\147"
 , (PRUint32)1078 }
 };
-static const NSSItem nss_builtins_items_159 [] = {
+static const NSSItem nss_builtins_items_145 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11036,7 +10101,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_160 [] = {
+static const NSSItem nss_builtins_items_146 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11133,7 +10198,7 @@
 "\253\205\322\140\126\132"
 , (PRUint32)1030 }
 };
-static const NSSItem nss_builtins_items_161 [] = {
+static const NSSItem nss_builtins_items_147 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11161,7 +10226,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_162 [] = {
+static const NSSItem nss_builtins_items_148 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11180,7 +10245,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_163 [] = {
+static const NSSItem nss_builtins_items_149 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11265,7 +10330,7 @@
 "\164"
 , (PRUint32)897 }
 };
-static const NSSItem nss_builtins_items_164 [] = {
+static const NSSItem nss_builtins_items_150 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11291,7 +10356,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_165 [] = {
+static const NSSItem nss_builtins_items_151 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11388,7 +10453,7 @@
 "\374\276\337\012\015"
 , (PRUint32)1013 }
 };
-static const NSSItem nss_builtins_items_166 [] = {
+static const NSSItem nss_builtins_items_152 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11417,7 +10482,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_167 [] = {
+static const NSSItem nss_builtins_items_153 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11528,7 +10593,7 @@
 "\241\361\017\033\037\075\236\004\203\335\226\331\035\072\224"
 , (PRUint32)1151 }
 };
-static const NSSItem nss_builtins_items_168 [] = {
+static const NSSItem nss_builtins_items_154 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11560,7 +10625,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_169 [] = {
+static const NSSItem nss_builtins_items_155 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11714,7 +10779,7 @@
 "\103\307\003\340\067\116\135\012\334\131\040\045"
 , (PRUint32)1964 }
 };
-static const NSSItem nss_builtins_items_170 [] = {
+static const NSSItem nss_builtins_items_156 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11742,7 +10807,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_171 [] = {
+static const NSSItem nss_builtins_items_157 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11823,7 +10888,7 @@
 "\300\226\130\057\352\273\106\327\273\344\331\056"
 , (PRUint32)940 }
 };
-static const NSSItem nss_builtins_items_172 [] = {
+static const NSSItem nss_builtins_items_158 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11846,7 +10911,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_173 [] = {
+static const NSSItem nss_builtins_items_159 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -11980,7 +11045,7 @@
 "\005\211\374\170\326\134\054\046\103\251"
 , (PRUint32)1642 }
 };
-static const NSSItem nss_builtins_items_174 [] = {
+static const NSSItem nss_builtins_items_160 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12008,139 +11073,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_175 [] = {
-  { (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 *)"TC TrustCenter Class 2 CA II", (PRUint32)29 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060"
-"\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103"
-"\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124"
-"\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163"
-"\040\062\040\103\101\040\111\111"
-, (PRUint32)120 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060"
-"\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103"
-"\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124"
-"\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163"
-"\040\062\040\103\101\040\111\111"
-, (PRUint32)120 },
-  { (void *)"\002\016\056\152\000\001\000\002\037\327\122\041\054\021\134\073"
-, (PRUint32)16 },
-  { (void *)"\060\202\004\252\060\202\003\222\240\003\002\001\002\002\016\056"
-"\152\000\001\000\002\037\327\122\041\054\021\134\073\060\015\006"
-"\011\052\206\110\206\367\015\001\001\005\005\000\060\166\061\013"
-"\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006"
-"\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145"
-"\156\164\145\162\040\107\155\142\110\061\042\060\040\006\003\125"
-"\004\013\023\031\124\103\040\124\162\165\163\164\103\145\156\164"
-"\145\162\040\103\154\141\163\163\040\062\040\103\101\061\045\060"
-"\043\006\003\125\004\003\023\034\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103"
-"\101\040\111\111\060\036\027\015\060\066\060\061\061\062\061\064"
-"\063\070\064\063\132\027\015\062\065\061\062\063\061\062\062\065"
-"\071\065\071\132\060\166\061\013\060\011\006\003\125\004\006\023"
-"\002\104\105\061\034\060\032\006\003\125\004\012\023\023\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\107\155\142"
-"\110\061\042\060\040\006\003\125\004\013\023\031\124\103\040\124"
-"\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163"
-"\040\062\040\103\101\061\045\060\043\006\003\125\004\003\023\034"
-"\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040\103"
-"\154\141\163\163\040\062\040\103\101\040\111\111\060\202\001\042"
-"\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003"
-"\202\001\017\000\060\202\001\012\002\202\001\001\000\253\200\207"
-"\233\216\360\303\174\207\327\350\044\202\021\263\074\335\103\142"
-"\356\370\303\105\332\350\341\240\137\321\052\262\352\223\150\337"
-"\264\310\326\103\351\304\165\131\177\374\341\035\370\061\160\043"
-"\033\210\236\047\271\173\375\072\322\311\251\351\024\057\220\276"
-"\003\122\301\111\315\366\375\344\010\146\013\127\212\242\102\240"
-"\270\325\177\151\134\220\062\262\227\015\312\112\334\106\076\002"
-"\125\211\123\343\032\132\313\066\306\007\126\367\214\317\021\364"
-"\114\273\060\160\004\225\245\366\071\214\375\163\201\010\175\211"
-"\136\062\036\042\251\042\105\113\260\146\056\060\314\237\145\375"
-"\374\313\201\251\361\340\073\257\243\206\321\211\352\304\105\171"
-"\120\135\256\351\041\164\222\115\213\131\202\217\224\343\351\112"
-"\361\347\111\260\024\343\365\142\313\325\162\275\037\271\322\237"
-"\240\315\250\372\001\310\331\015\337\332\374\107\235\263\310\124"
-"\337\111\112\361\041\251\376\030\116\356\110\324\031\273\357\175"
-"\344\342\235\313\133\266\156\377\343\315\132\347\164\202\005\272"
-"\200\045\070\313\344\151\236\257\101\252\032\204\365\002\003\001"
-"\000\001\243\202\001\064\060\202\001\060\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\343\253\124\114\200\241\333\126\103\267"
-"\221\112\313\363\202\172\023\134\010\253\060\201\355\006\003\125"
-"\035\037\004\201\345\060\201\342\060\201\337\240\201\334\240\201"
-"\331\206\065\150\164\164\160\072\057\057\167\167\167\056\164\162"
-"\165\163\164\143\145\156\164\145\162\056\144\145\057\143\162\154"
-"\057\166\062\057\164\143\137\143\154\141\163\163\137\062\137\143"
-"\141\137\111\111\056\143\162\154\206\201\237\154\144\141\160\072"
-"\057\057\167\167\167\056\164\162\165\163\164\143\145\156\164\145"
-"\162\056\144\145\057\103\116\075\124\103\045\062\060\124\162\165"
-"\163\164\103\145\156\164\145\162\045\062\060\103\154\141\163\163"
-"\045\062\060\062\045\062\060\103\101\045\062\060\111\111\054\117"
-"\075\124\103\045\062\060\124\162\165\163\164\103\145\156\164\145"
-"\162\045\062\060\107\155\142\110\054\117\125\075\162\157\157\164"
-"\143\145\162\164\163\054\104\103\075\164\162\165\163\164\143\145"
-"\156\164\145\162\054\104\103\075\144\145\077\143\145\162\164\151"
-"\146\151\143\141\164\145\122\145\166\157\143\141\164\151\157\156"
-"\114\151\163\164\077\142\141\163\145\077\060\015\006\011\052\206"
-"\110\206\367\015\001\001\005\005\000\003\202\001\001\000\214\327"
-"\337\176\356\033\200\020\263\203\365\333\021\352\153\113\250\222"
-"\030\331\367\007\071\365\054\276\006\165\172\150\123\025\034\352"
-"\112\355\136\374\043\262\023\240\323\011\377\366\366\056\153\101"
-"\161\171\315\342\155\375\256\131\153\205\035\270\116\042\232\355"
-"\146\071\156\113\224\346\125\374\013\033\213\167\301\123\023\146"
-"\211\331\050\326\213\363\105\112\143\267\375\173\013\141\135\270"
-"\155\276\303\334\133\171\322\355\206\345\242\115\276\136\164\174"
-"\152\355\026\070\037\177\130\201\132\032\353\062\210\055\262\363"
-"\071\167\200\257\136\266\141\165\051\333\043\115\210\312\120\050"
-"\313\205\322\323\020\242\131\156\323\223\124\000\172\242\106\225"
-"\206\005\234\251\031\230\345\061\162\014\000\342\147\331\100\340"
-"\044\063\173\157\054\271\134\253\145\235\054\254\166\352\065\231"
-"\365\227\271\017\044\354\307\166\041\050\145\256\127\350\007\210"
-"\165\112\126\240\322\005\072\244\346\215\222\210\054\363\362\341"
-"\301\306\141\333\101\305\307\233\367\016\032\121\105\302\141\153"
-"\334\144\047\027\214\132\267\332\164\050\315\227\344\275"
-, (PRUint32)1198 }
-};
-static const NSSItem nss_builtins_items_176 [] = {
-  { (void *)&cko_nss_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 *)"TC TrustCenter Class 2 CA II", (PRUint32)29 },
-  { (void *)"\256\120\203\355\174\364\134\274\217\141\306\041\376\150\135\171"
-"\102\041\025\156"
-, (PRUint32)20 },
-  { (void *)"\316\170\063\134\131\170\001\156\030\352\271\066\240\271\056\043"
-, (PRUint32)16 },
-  { (void *)"\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060"
-"\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\103\154\141\163\163\040\062\040\103"
-"\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124"
-"\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163"
-"\040\062\040\103\101\040\111\111"
-, (PRUint32)120 },
-  { (void *)"\002\016\056\152\000\001\000\002\037\327\122\041\054\021\134\073"
-, (PRUint32)16 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_177 [] = {
+static const NSSItem nss_builtins_items_161 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12245,7 +11178,7 @@
 "\016\121\075\157\373\226\126\200\342\066\027\321\334\344"
 , (PRUint32)1198 }
 };
-static const NSSItem nss_builtins_items_178 [] = {
+static const NSSItem nss_builtins_items_162 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12272,127 +11205,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_179 [] = {
-  { (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 *)"TC TrustCenter Universal CA I", (PRUint32)30 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\171\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060"
-"\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154"
-"\040\103\101\061\046\060\044\006\003\125\004\003\023\035\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151"
-"\166\145\162\163\141\154\040\103\101\040\111"
-, (PRUint32)123 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\171\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060"
-"\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154"
-"\040\103\101\061\046\060\044\006\003\125\004\003\023\035\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151"
-"\166\145\162\163\141\154\040\103\101\040\111"
-, (PRUint32)123 },
-  { (void *)"\002\016\035\242\000\001\000\002\354\267\140\200\170\215\266\006"
-, (PRUint32)16 },
-  { (void *)"\060\202\003\335\060\202\002\305\240\003\002\001\002\002\016\035"
-"\242\000\001\000\002\354\267\140\200\170\215\266\006\060\015\006"
-"\011\052\206\110\206\367\015\001\001\005\005\000\060\171\061\013"
-"\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006"
-"\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145"
-"\156\164\145\162\040\107\155\142\110\061\044\060\042\006\003\125"
-"\004\013\023\033\124\103\040\124\162\165\163\164\103\145\156\164"
-"\145\162\040\125\156\151\166\145\162\163\141\154\040\103\101\061"
-"\046\060\044\006\003\125\004\003\023\035\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\125\156\151\166\145\162\163"
-"\141\154\040\103\101\040\111\060\036\027\015\060\066\060\063\062"
-"\062\061\065\065\064\062\070\132\027\015\062\065\061\062\063\061"
-"\062\062\065\071\065\071\132\060\171\061\013\060\011\006\003\125"
-"\004\006\023\002\104\105\061\034\060\032\006\003\125\004\012\023"
-"\023\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040"
-"\107\155\142\110\061\044\060\042\006\003\125\004\013\023\033\124"
-"\103\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156"
-"\151\166\145\162\163\141\154\040\103\101\061\046\060\044\006\003"
-"\125\004\003\023\035\124\103\040\124\162\165\163\164\103\145\156"
-"\164\145\162\040\125\156\151\166\145\162\163\141\154\040\103\101"
-"\040\111\060\202\001\042\060\015\006\011\052\206\110\206\367\015"
-"\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202"
-"\001\001\000\244\167\043\226\104\257\220\364\061\247\020\364\046"
-"\207\234\363\070\331\017\136\336\317\101\350\061\255\306\164\221"
-"\044\226\170\036\011\240\233\232\225\112\112\365\142\174\002\250"
-"\312\254\373\132\004\166\071\336\137\361\371\263\277\363\003\130"
-"\125\322\252\267\343\004\042\321\370\224\332\042\010\000\215\323"
-"\174\046\135\314\167\171\347\054\170\071\250\046\163\016\242\135"
-"\045\151\205\117\125\016\232\357\306\271\104\341\127\075\337\037"
-"\124\042\345\157\145\252\063\204\072\363\316\172\276\125\227\256"
-"\215\022\017\024\063\342\120\160\303\111\207\023\274\121\336\327"
-"\230\022\132\357\072\203\063\222\006\165\213\222\174\022\150\173"
-"\160\152\017\265\233\266\167\133\110\131\235\344\357\132\255\363"
-"\301\236\324\327\105\116\312\126\064\041\274\076\027\133\157\167"
-"\014\110\001\103\051\260\335\077\226\156\346\225\252\014\300\040"
-"\266\375\076\066\047\234\343\134\317\116\201\334\031\273\221\220"
-"\175\354\346\227\004\036\223\314\042\111\327\227\206\266\023\012"
-"\074\103\043\167\176\360\334\346\315\044\037\073\203\233\064\072"
-"\203\064\343\002\003\001\000\001\243\143\060\141\060\037\006\003"
-"\125\035\043\004\030\060\026\200\024\222\244\165\054\244\236\276"
-"\201\104\353\171\374\212\305\225\245\353\020\165\163\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\206\060\035"
-"\006\003\125\035\016\004\026\004\024\222\244\165\054\244\236\276"
-"\201\104\353\171\374\212\305\225\245\353\020\165\163\060\015\006"
-"\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001"
-"\000\050\322\340\206\325\346\370\173\360\227\334\042\153\073\225"
-"\024\126\017\021\060\245\232\117\072\260\072\340\006\313\145\365"
-"\355\306\227\047\376\045\362\127\346\136\225\214\076\144\140\025"
-"\132\177\057\015\001\305\261\140\375\105\065\317\360\262\277\006"
-"\331\357\132\276\263\142\041\264\327\253\065\174\123\076\246\047"
-"\361\241\055\332\032\043\235\314\335\354\074\055\236\047\064\135"
-"\017\302\066\171\274\311\112\142\055\355\153\331\175\101\103\174"
-"\266\252\312\355\141\261\067\202\025\011\032\212\026\060\330\354"
-"\311\326\107\162\170\113\020\106\024\216\137\016\257\354\307\057"
-"\253\020\327\266\361\156\354\206\262\302\350\015\222\163\334\242"
-"\364\017\072\277\141\043\020\211\234\110\100\156\160\000\263\323"
-"\272\067\104\130\021\172\002\152\210\360\067\064\360\031\351\254"
-"\324\145\163\366\151\214\144\224\072\171\205\051\260\026\053\014"
-"\202\077\006\234\307\375\020\053\236\017\054\266\236\343\025\277"
-"\331\066\034\272\045\032\122\075\032\354\042\014\034\340\244\242"
-"\075\360\350\071\317\201\300\173\355\135\037\157\305\320\013\327"
-"\230"
-, (PRUint32)993 }
-};
-static const NSSItem nss_builtins_items_180 [] = {
-  { (void *)&cko_nss_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 *)"TC TrustCenter Universal CA I", (PRUint32)30 },
-  { (void *)"\153\057\064\255\211\130\276\142\375\260\153\134\316\273\235\331"
-"\117\116\071\363"
-, (PRUint32)20 },
-  { (void *)"\105\341\245\162\305\251\066\144\100\236\365\344\130\204\147\214"
-, (PRUint32)16 },
-  { (void *)"\060\171\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060"
-"\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154"
-"\040\103\101\061\046\060\044\006\003\125\004\003\023\035\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151"
-"\166\145\162\163\141\154\040\103\101\040\111"
-, (PRUint32)123 },
-  { (void *)"\002\016\035\242\000\001\000\002\354\267\140\200\170\215\266\006"
-, (PRUint32)16 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_181 [] = {
+static const NSSItem nss_builtins_items_163 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12481,7 +11294,7 @@
 "\126\144\127"
 , (PRUint32)931 }
 };
-static const NSSItem nss_builtins_items_182 [] = {
+static const NSSItem nss_builtins_items_164 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12508,7 +11321,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_183 [] = {
+static const NSSItem nss_builtins_items_165 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12589,7 +11402,7 @@
 "\000\147\240\161\000\202\110"
 , (PRUint32)919 }
 };
-static const NSSItem nss_builtins_items_184 [] = {
+static const NSSItem nss_builtins_items_166 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12613,7 +11426,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_185 [] = {
+static const NSSItem nss_builtins_items_167 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12695,7 +11508,7 @@
 "\316\145\006\056\135\322\052\123\164\136\323\156\047\236\217"
 , (PRUint32)943 }
 };
-static const NSSItem nss_builtins_items_186 [] = {
+static const NSSItem nss_builtins_items_168 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12714,12 +11527,12 @@
   { (void *)"\002\021\000\307\050\107\011\263\270\154\105\214\035\372\044\365"
 "\066\116\351"
 , (PRUint32)19 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_187 [] = {
+static const NSSItem nss_builtins_items_169 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12800,7 +11613,7 @@
 "\246\210\070\316\125"
 , (PRUint32)933 }
 };
-static const NSSItem nss_builtins_items_188 [] = {
+static const NSSItem nss_builtins_items_170 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12823,7 +11636,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_189 [] = {
+static const NSSItem nss_builtins_items_171 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12942,7 +11755,7 @@
 "\201\370\021\234"
 , (PRUint32)1460 }
 };
-static const NSSItem nss_builtins_items_190 [] = {
+static const NSSItem nss_builtins_items_172 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -12968,7 +11781,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_191 [] = {
+static const NSSItem nss_builtins_items_173 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13102,7 +11915,7 @@
 "\311\234\220\332\354\251\102\074\255\266\002"
 , (PRUint32)1307 }
 };
-static const NSSItem nss_builtins_items_192 [] = {
+static const NSSItem nss_builtins_items_174 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13140,7 +11953,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_193 [] = {
+static const NSSItem nss_builtins_items_175 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13218,7 +12031,7 @@
 "\366\324\357\277\114\210\150"
 , (PRUint32)855 }
 };
-static const NSSItem nss_builtins_items_194 [] = {
+static const NSSItem nss_builtins_items_176 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13242,109 +12055,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_195 [] = {
-  { (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 *)"Buypass Class 3 CA 1", (PRUint32)21 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061"
-"\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163"
-"\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035"
-"\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163"
-"\040\103\154\141\163\163\040\063\040\103\101\040\061"
-, (PRUint32)77 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061"
-"\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163"
-"\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035"
-"\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163"
-"\040\103\154\141\163\163\040\063\040\103\101\040\061"
-, (PRUint32)77 },
-  { (void *)"\002\001\002"
-, (PRUint32)3 },
-  { (void *)"\060\202\003\123\060\202\002\073\240\003\002\001\002\002\001\002"
-"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
-"\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035"
-"\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163"
-"\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035\060"
-"\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163\040"
-"\103\154\141\163\163\040\063\040\103\101\040\061\060\036\027\015"
-"\060\065\060\065\060\071\061\064\061\063\060\063\132\027\015\061"
-"\065\060\065\060\071\061\064\061\063\060\063\132\060\113\061\013"
-"\060\011\006\003\125\004\006\023\002\116\117\061\035\060\033\006"
-"\003\125\004\012\014\024\102\165\171\160\141\163\163\040\101\123"
-"\055\071\070\063\061\066\063\063\062\067\061\035\060\033\006\003"
-"\125\004\003\014\024\102\165\171\160\141\163\163\040\103\154\141"
-"\163\163\040\063\040\103\101\040\061\060\202\001\042\060\015\006"
-"\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017"
-"\000\060\202\001\012\002\202\001\001\000\244\216\327\164\331\051"
-"\144\336\137\037\207\200\221\352\116\071\346\031\306\104\013\200"
-"\325\013\257\123\007\213\022\275\346\147\360\002\261\211\366\140"
-"\212\304\133\260\102\321\300\041\250\313\341\233\357\144\121\266"
-"\247\317\025\365\164\200\150\004\220\240\130\242\346\164\246\123"
-"\123\125\110\143\077\222\126\335\044\116\216\370\272\053\377\363"
-"\064\212\236\050\327\064\237\254\057\326\017\361\244\057\275\122"
-"\262\111\205\155\071\065\360\104\060\223\106\044\363\266\347\123"
-"\373\274\141\257\251\243\024\373\302\027\027\204\154\340\174\210"
-"\370\311\034\127\054\360\075\176\224\274\045\223\204\350\232\000"
-"\232\105\005\102\127\200\364\116\316\331\256\071\366\310\123\020"
-"\014\145\072\107\173\140\302\326\372\221\311\306\161\154\275\221"
-"\207\074\221\206\111\253\363\017\240\154\046\166\136\034\254\233"
-"\161\345\215\274\233\041\036\234\326\070\176\044\200\025\061\202"
-"\226\261\111\323\142\067\133\210\014\012\142\064\376\247\110\176"
-"\231\261\060\213\220\067\225\034\250\037\245\054\215\364\125\310"
-"\333\335\131\012\302\255\170\240\364\213\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\035\006\003\125\035\016\004\026\004\024\070"
-"\024\346\310\360\251\244\003\364\116\076\042\243\133\362\326\340"
-"\255\100\164\060\016\006\003\125\035\017\001\001\377\004\004\003"
-"\002\001\006\060\015\006\011\052\206\110\206\367\015\001\001\005"
-"\005\000\003\202\001\001\000\001\147\243\214\311\045\075\023\143"
-"\135\026\157\354\241\076\011\134\221\025\052\052\331\200\041\117"
-"\005\334\273\245\211\253\023\063\052\236\070\267\214\157\002\162"
-"\143\307\163\167\036\011\006\272\073\050\173\244\107\311\141\153"
-"\010\010\040\374\212\005\212\037\274\272\306\302\376\317\156\354"
-"\023\063\161\147\056\151\372\251\054\077\146\300\022\131\115\013"
-"\124\002\222\204\273\333\022\357\203\160\160\170\310\123\372\337"
-"\306\306\377\334\210\057\007\300\111\235\062\127\140\323\362\366"
-"\231\051\137\347\252\001\314\254\063\250\034\012\273\221\304\003"
-"\240\157\266\064\371\206\323\263\166\124\230\364\112\201\263\123"
-"\235\115\100\354\345\167\023\105\257\133\252\037\330\057\114\202"
-"\173\376\052\304\130\273\117\374\236\375\003\145\032\052\016\303"
-"\245\040\026\224\153\171\246\242\022\264\273\032\244\043\172\137"
-"\360\256\204\044\344\363\053\373\212\044\243\047\230\145\332\060"
-"\165\166\374\031\221\350\333\353\233\077\062\277\100\227\007\046"
-"\272\314\363\224\205\112\172\047\223\317\220\102\324\270\133\026"
-"\246\347\313\100\003\335\171"
-, (PRUint32)855 }
-};
-static const NSSItem nss_builtins_items_196 [] = {
-  { (void *)&cko_nss_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 *)"Buypass Class 3 CA 1", (PRUint32)21 },
-  { (void *)"\141\127\072\021\337\016\330\176\325\222\145\042\352\320\126\327"
-"\104\263\043\161"
-, (PRUint32)20 },
-  { (void *)"\337\074\163\131\201\347\071\120\201\004\114\064\242\313\263\173"
-, (PRUint32)16 },
-  { (void *)"\060\113\061\013\060\011\006\003\125\004\006\023\002\116\117\061"
-"\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163"
-"\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\035"
-"\060\033\006\003\125\004\003\014\024\102\165\171\160\141\163\163"
-"\040\103\154\141\163\163\040\063\040\103\101\040\061"
-, (PRUint32)77 },
-  { (void *)"\002\001\002"
-, (PRUint32)3 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_197 [] = {
+static const NSSItem nss_builtins_items_177 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13471,7 +12182,7 @@
 "\320\352\111\242\034\215\122\024\246\012\223"
 , (PRUint32)1515 }
 };
-static const NSSItem nss_builtins_items_198 [] = {
+static const NSSItem nss_builtins_items_178 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13499,7 +12210,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_199 [] = {
+static const NSSItem nss_builtins_items_179 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13573,7 +12284,7 @@
 "\366\356\260\132\116\111\104\124\130\137\102\203"
 , (PRUint32)828 }
 };
-static const NSSItem nss_builtins_items_200 [] = {
+static const NSSItem nss_builtins_items_180 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13596,7 +12307,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_201 [] = {
+static const NSSItem nss_builtins_items_181 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13672,7 +12383,7 @@
 "\011\333\212\101\202\236\146\233\021"
 , (PRUint32)857 }
 };
-static const NSSItem nss_builtins_items_202 [] = {
+static const NSSItem nss_builtins_items_182 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13695,7 +12406,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_203 [] = {
+static const NSSItem nss_builtins_items_183 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13778,7 +12489,7 @@
 "\262\033\211\124"
 , (PRUint32)932 }
 };
-static const NSSItem nss_builtins_items_204 [] = {
+static const NSSItem nss_builtins_items_184 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13802,7 +12513,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_205 [] = {
+static const NSSItem nss_builtins_items_185 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13902,7 +12613,7 @@
 "\021\055"
 , (PRUint32)1026 }
 };
-static const NSSItem nss_builtins_items_206 [] = {
+static const NSSItem nss_builtins_items_186 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -13932,7 +12643,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_207 [] = {
+static const NSSItem nss_builtins_items_187 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14006,7 +12717,7 @@
 "\367\130\077\056\162\002\127\243\217\241\024\056"
 , (PRUint32)652 }
 };
-static const NSSItem nss_builtins_items_208 [] = {
+static const NSSItem nss_builtins_items_188 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14035,7 +12746,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_209 [] = {
+static const NSSItem nss_builtins_items_189 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14141,7 +12852,7 @@
 "\061\324\100\032\142\064\066\077\065\001\256\254\143\240"
 , (PRUint32)1070 }
 };
-static const NSSItem nss_builtins_items_210 [] = {
+static const NSSItem nss_builtins_items_190 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14173,7 +12884,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_211 [] = {
+static const NSSItem nss_builtins_items_191 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14252,7 +12963,7 @@
 "\017\212"
 , (PRUint32)690 }
 };
-static const NSSItem nss_builtins_items_212 [] = {
+static const NSSItem nss_builtins_items_192 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14282,7 +12993,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_213 [] = {
+static const NSSItem nss_builtins_items_193 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14397,7 +13108,7 @@
 "\354\315\202\141\361\070\346\117\227\230\052\132\215"
 , (PRUint32)1213 }
 };
-static const NSSItem nss_builtins_items_214 [] = {
+static const NSSItem nss_builtins_items_194 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14429,7 +13140,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_215 [] = {
+static const NSSItem nss_builtins_items_195 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14527,7 +13238,7 @@
 "\055\247\330\206\052\335\056\020"
 , (PRUint32)904 }
 };
-static const NSSItem nss_builtins_items_216 [] = {
+static const NSSItem nss_builtins_items_196 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14560,7 +13271,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_217 [] = {
+static const NSSItem nss_builtins_items_197 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14662,7 +13373,7 @@
 "\330\316\304\143\165\077\131\107\261"
 , (PRUint32)1049 }
 };
-static const NSSItem nss_builtins_items_218 [] = {
+static const NSSItem nss_builtins_items_198 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14692,7 +13403,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_219 [] = {
+static const NSSItem nss_builtins_items_199 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14811,7 +13522,7 @@
 "\370\161\012\334\271\374\175\062\140\346\353\257\212\001"
 , (PRUint32)1486 }
 };
-static const NSSItem nss_builtins_items_220 [] = {
+static const NSSItem nss_builtins_items_200 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14836,7 +13547,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_221 [] = {
+static const NSSItem nss_builtins_items_201 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14926,7 +13637,7 @@
 "\315\345\250"
 , (PRUint32)1043 }
 };
-static const NSSItem nss_builtins_items_222 [] = {
+static const NSSItem nss_builtins_items_202 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -14950,7 +13661,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_223 [] = {
+static const NSSItem nss_builtins_items_203 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15055,7 +13766,7 @@
 "\115\273\306\104\333\066\313\052\234\216"
 , (PRUint32)1258 }
 };
-static const NSSItem nss_builtins_items_224 [] = {
+static const NSSItem nss_builtins_items_204 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15080,7 +13791,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_225 [] = {
+static const NSSItem nss_builtins_items_205 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15156,7 +13867,7 @@
 "\002\153\331\132"
 , (PRUint32)820 }
 };
-static const NSSItem nss_builtins_items_226 [] = {
+static const NSSItem nss_builtins_items_206 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15180,7 +13891,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_227 [] = {
+static const NSSItem nss_builtins_items_207 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15262,7 +13973,7 @@
 "\362"
 , (PRUint32)881 }
 };
-static const NSSItem nss_builtins_items_228 [] = {
+static const NSSItem nss_builtins_items_208 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15287,7 +13998,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_229 [] = {
+static const NSSItem nss_builtins_items_209 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15403,7 +14114,7 @@
 "\113\076\053\070\007\125\230\136\244"
 , (PRUint32)1465 }
 };
-static const NSSItem nss_builtins_items_230 [] = {
+static const NSSItem nss_builtins_items_210 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15427,7 +14138,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_231 [] = {
+static const NSSItem nss_builtins_items_211 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15492,7 +14203,7 @@
 "\375\166\004\333\142\273\220\152\003\331\106\065\331\370\174\133"
 , (PRUint32)576 }
 };
-static const NSSItem nss_builtins_items_232 [] = {
+static const NSSItem nss_builtins_items_212 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15519,7 +14230,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_233 [] = {
+static const NSSItem nss_builtins_items_213 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15584,7 +14295,7 @@
 "\054\163\031\110\151\116\153\174\145\277\017\374\160\316\210\220"
 , (PRUint32)576 }
 };
-static const NSSItem nss_builtins_items_234 [] = {
+static const NSSItem nss_builtins_items_214 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15611,7 +14322,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_235 [] = {
+static const NSSItem nss_builtins_items_215 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15708,7 +14419,7 @@
 "\202\042\055\172\124\253\160\303\175\042\145\202\160\226"
 , (PRUint32)1038 }
 };
-static const NSSItem nss_builtins_items_236 [] = {
+static const NSSItem nss_builtins_items_216 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15736,7 +14447,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_237 [] = {
+static const NSSItem nss_builtins_items_217 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15815,7 +14526,7 @@
 "\130\077\137"
 , (PRUint32)867 }
 };
-static const NSSItem nss_builtins_items_238 [] = {
+static const NSSItem nss_builtins_items_218 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -15839,127 +14550,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_239 [] = {
-  { (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 *)"TC TrustCenter Universal CA III", (PRUint32)32 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\173\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060"
-"\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154"
-"\040\103\101\061\050\060\046\006\003\125\004\003\023\037\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151"
-"\166\145\162\163\141\154\040\103\101\040\111\111\111"
-, (PRUint32)125 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\173\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060"
-"\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154"
-"\040\103\101\061\050\060\046\006\003\125\004\003\023\037\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151"
-"\166\145\162\163\141\154\040\103\101\040\111\111\111"
-, (PRUint32)125 },
-  { (void *)"\002\016\143\045\000\001\000\002\024\215\063\025\002\344\154\364"
-, (PRUint32)16 },
-  { (void *)"\060\202\003\341\060\202\002\311\240\003\002\001\002\002\016\143"
-"\045\000\001\000\002\024\215\063\025\002\344\154\364\060\015\006"
-"\011\052\206\110\206\367\015\001\001\005\005\000\060\173\061\013"
-"\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006"
-"\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145"
-"\156\164\145\162\040\107\155\142\110\061\044\060\042\006\003\125"
-"\004\013\023\033\124\103\040\124\162\165\163\164\103\145\156\164"
-"\145\162\040\125\156\151\166\145\162\163\141\154\040\103\101\061"
-"\050\060\046\006\003\125\004\003\023\037\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\125\156\151\166\145\162\163"
-"\141\154\040\103\101\040\111\111\111\060\036\027\015\060\071\060"
-"\071\060\071\060\070\061\065\062\067\132\027\015\062\071\061\062"
-"\063\061\062\063\065\071\065\071\132\060\173\061\013\060\011\006"
-"\003\125\004\006\023\002\104\105\061\034\060\032\006\003\125\004"
-"\012\023\023\124\103\040\124\162\165\163\164\103\145\156\164\145"
-"\162\040\107\155\142\110\061\044\060\042\006\003\125\004\013\023"
-"\033\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040"
-"\125\156\151\166\145\162\163\141\154\040\103\101\061\050\060\046"
-"\006\003\125\004\003\023\037\124\103\040\124\162\165\163\164\103"
-"\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154\040"
-"\103\101\040\111\111\111\060\202\001\042\060\015\006\011\052\206"
-"\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202"
-"\001\012\002\202\001\001\000\302\332\234\142\260\271\161\022\260"
-"\013\310\032\127\262\256\203\024\231\263\064\113\233\220\242\305"
-"\347\347\057\002\240\115\055\244\372\205\332\233\045\205\055\100"
-"\050\040\155\352\340\275\261\110\203\042\051\104\237\116\203\356"
-"\065\121\023\163\164\325\274\362\060\146\224\123\300\100\066\057"
-"\014\204\145\316\017\156\302\130\223\350\054\013\072\351\301\216"
-"\373\362\153\312\074\342\234\116\216\344\371\175\323\047\237\033"
-"\325\147\170\207\055\177\013\107\263\307\350\311\110\174\257\057"
-"\314\012\331\101\357\237\376\232\341\262\256\371\123\265\345\351"
-"\106\237\140\343\337\215\323\177\373\226\176\263\265\162\370\113"
-"\255\010\171\315\151\211\100\047\365\052\301\255\103\354\244\123"
-"\310\141\266\367\322\171\052\147\030\166\110\155\133\045\001\321"
-"\046\305\267\127\151\043\025\133\141\212\255\360\033\055\331\257"
-"\134\361\046\220\151\251\325\014\100\365\063\200\103\217\234\243"
-"\166\052\105\264\257\277\177\076\207\077\166\305\315\052\336\040"
-"\305\026\130\313\371\033\365\017\313\015\021\122\144\270\322\166"
-"\142\167\203\361\130\237\377\002\003\001\000\001\243\143\060\141"
-"\060\037\006\003\125\035\043\004\030\060\026\200\024\126\347\341"
-"\133\045\103\200\340\366\214\341\161\274\216\345\200\057\304\110"
-"\342\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\126\347\341"
-"\133\045\103\200\340\366\214\341\161\274\216\345\200\057\304\110"
-"\342\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000"
-"\003\202\001\001\000\203\307\257\352\177\115\012\074\071\261\150"
-"\276\173\155\211\056\351\263\011\347\030\127\215\205\232\027\363"
-"\166\102\120\023\017\307\220\157\063\255\305\111\140\053\154\111"
-"\130\031\324\342\276\267\277\253\111\274\224\310\253\276\050\154"
-"\026\150\340\310\227\106\040\240\150\147\140\210\071\040\121\330"
-"\150\001\021\316\247\366\021\007\366\354\354\254\032\037\262\146"
-"\156\126\147\140\172\164\136\300\155\227\066\256\265\015\135\146"
-"\163\300\045\062\105\330\112\006\007\217\304\267\007\261\115\006"
-"\015\341\245\353\364\165\312\272\234\320\275\263\323\062\044\114"
-"\356\176\342\166\004\113\111\123\330\362\351\124\063\374\345\161"
-"\037\075\024\134\226\113\361\072\362\000\273\154\264\372\226\125"
-"\010\210\011\301\314\221\031\051\260\040\055\377\313\070\244\100"
-"\341\027\276\171\141\200\377\007\003\206\114\116\173\006\237\021"
-"\206\215\211\356\047\304\333\342\274\031\216\013\303\303\023\307"
-"\055\003\143\073\323\350\344\242\052\302\202\010\224\026\124\360"
-"\357\037\047\220\045\270\015\016\050\033\107\167\107\275\034\250"
-"\045\361\224\264\146"
-, (PRUint32)997 }
-};
-static const NSSItem nss_builtins_items_240 [] = {
-  { (void *)&cko_nss_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 *)"TC TrustCenter Universal CA III", (PRUint32)32 },
-  { (void *)"\226\126\315\173\127\226\230\225\320\341\101\106\150\006\373\270"
-"\306\021\006\207"
-, (PRUint32)20 },
-  { (void *)"\237\335\333\253\377\216\377\105\041\137\360\154\235\217\376\053"
-, (PRUint32)16 },
-  { (void *)"\060\173\061\013\060\011\006\003\125\004\006\023\002\104\105\061"
-"\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165"
-"\163\164\103\145\156\164\145\162\040\107\155\142\110\061\044\060"
-"\042\006\003\125\004\013\023\033\124\103\040\124\162\165\163\164"
-"\103\145\156\164\145\162\040\125\156\151\166\145\162\163\141\154"
-"\040\103\101\061\050\060\046\006\003\125\004\003\023\037\124\103"
-"\040\124\162\165\163\164\103\145\156\164\145\162\040\125\156\151"
-"\166\145\162\163\141\154\040\103\101\040\111\111\111"
-, (PRUint32)125 },
-  { (void *)"\002\016\143\045\000\001\000\002\024\215\063\025\002\344\154\364"
-, (PRUint32)16 },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_241 [] = {
+static const NSSItem nss_builtins_items_219 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16083,7 +14674,7 @@
 "\156\117\022\176\012\074\235\225"
 , (PRUint32)1560 }
 };
-static const NSSItem nss_builtins_items_242 [] = {
+static const NSSItem nss_builtins_items_220 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16108,7 +14699,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_243 [] = {
+static const NSSItem nss_builtins_items_221 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16227,7 +14818,7 @@
 "\333\374\046\210\307"
 , (PRUint32)1525 }
 };
-static const NSSItem nss_builtins_items_244 [] = {
+static const NSSItem nss_builtins_items_222 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16251,7 +14842,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_245 [] = {
+static const NSSItem nss_builtins_items_223 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16407,7 +14998,7 @@
 "\167\110\320"
 , (PRUint32)1875 }
 };
-static const NSSItem nss_builtins_items_246 [] = {
+static const NSSItem nss_builtins_items_224 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16438,7 +15029,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_247 [] = {
+static const NSSItem nss_builtins_items_225 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16591,7 +15182,7 @@
 "\351\233\256\325\124\300\164\200\321\013\102\237\301"
 , (PRUint32)1869 }
 };
-static const NSSItem nss_builtins_items_248 [] = {
+static const NSSItem nss_builtins_items_226 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16621,7 +15212,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_249 [] = {
+static const NSSItem nss_builtins_items_227 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16757,7 +15348,7 @@
 "\242\355\264\324\265\145\103\267\223\106\212\323"
 , (PRUint32)1532 }
 };
-static const NSSItem nss_builtins_items_250 [] = {
+static const NSSItem nss_builtins_items_228 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16787,7 +15378,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_251 [] = {
+static const NSSItem nss_builtins_items_229 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16938,7 +15529,7 @@
 "\264"
 , (PRUint32)1761 }
 };
-static const NSSItem nss_builtins_items_252 [] = {
+static const NSSItem nss_builtins_items_230 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -16968,7 +15559,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_253 [] = {
+static const NSSItem nss_builtins_items_231 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17104,7 +15695,7 @@
 "\111\043"
 , (PRUint32)1522 }
 };
-static const NSSItem nss_builtins_items_254 [] = {
+static const NSSItem nss_builtins_items_232 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17134,7 +15725,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_255 [] = {
+static const NSSItem nss_builtins_items_233 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17269,7 +15860,7 @@
 "\172\244\047\023\326\117\364\151"
 , (PRUint32)1512 }
 };
-static const NSSItem nss_builtins_items_256 [] = {
+static const NSSItem nss_builtins_items_234 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17299,7 +15890,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_257 [] = {
+static const NSSItem nss_builtins_items_235 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17435,7 +16026,7 @@
 "\302\021\254"
 , (PRUint32)1523 }
 };
-static const NSSItem nss_builtins_items_258 [] = {
+static const NSSItem nss_builtins_items_236 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17465,7 +16056,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_259 [] = {
+static const NSSItem nss_builtins_items_237 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17601,7 +16192,7 @@
 "\147\024\060"
 , (PRUint32)1523 }
 };
-static const NSSItem nss_builtins_items_260 [] = {
+static const NSSItem nss_builtins_items_238 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17631,7 +16222,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_261 [] = {
+static const NSSItem nss_builtins_items_239 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17765,7 +16356,7 @@
 "\217\116\235\306\066\347\134\246\253\022\017\326\317"
 , (PRUint32)1501 }
 };
-static const NSSItem nss_builtins_items_262 [] = {
+static const NSSItem nss_builtins_items_240 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17795,7 +16386,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_263 [] = {
+static const NSSItem nss_builtins_items_241 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17929,7 +16520,7 @@
 "\130\113\161\203\237\146\346\254\171\110\376\376\107"
 , (PRUint32)1501 }
 };
-static const NSSItem nss_builtins_items_264 [] = {
+static const NSSItem nss_builtins_items_242 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -17959,7 +16550,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_265 [] = {
+static const NSSItem nss_builtins_items_243 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18094,7 +16685,7 @@
 "\200\246\202\254\344\154\201\106\273\122\205\040\044\370\200\352"
 , (PRUint32)1520 }
 };
-static const NSSItem nss_builtins_items_266 [] = {
+static const NSSItem nss_builtins_items_244 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18124,7 +16715,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_267 [] = {
+static const NSSItem nss_builtins_items_245 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18217,7 +16808,7 @@
 "\342\342\104\276\134\367\352\034\365"
 , (PRUint32)969 }
 };
-static const NSSItem nss_builtins_items_268 [] = {
+static const NSSItem nss_builtins_items_246 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18245,7 +16836,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_269 [] = {
+static const NSSItem nss_builtins_items_247 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18342,7 +16933,7 @@
 "\364"
 , (PRUint32)993 }
 };
-static const NSSItem nss_builtins_items_270 [] = {
+static const NSSItem nss_builtins_items_248 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18371,7 +16962,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_271 [] = {
+static const NSSItem nss_builtins_items_249 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18469,7 +17060,7 @@
 "\261\050\272"
 , (PRUint32)1011 }
 };
-static const NSSItem nss_builtins_items_272 [] = {
+static const NSSItem nss_builtins_items_250 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18498,7 +17089,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_273 [] = {
+static const NSSItem nss_builtins_items_251 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18575,7 +17166,7 @@
 "\007\072\027\144\265\004\265\043\041\231\012\225\073\227\174\357"
 , (PRUint32)848 }
 };
-static const NSSItem nss_builtins_items_274 [] = {
+static const NSSItem nss_builtins_items_252 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18599,7 +17190,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_275 [] = {
+static const NSSItem nss_builtins_items_253 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18676,7 +17267,7 @@
 "\355\132\000\124\205\034\026\066\222\014\134\372\246\255\277\333"
 , (PRUint32)848 }
 };
-static const NSSItem nss_builtins_items_276 [] = {
+static const NSSItem nss_builtins_items_254 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18700,7 +17291,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_277 [] = {
+static const NSSItem nss_builtins_items_255 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18809,7 +17400,7 @@
 "\051\340\266\270\011\150\031\034\030\103"
 , (PRUint32)1354 }
 };
-static const NSSItem nss_builtins_items_278 [] = {
+static const NSSItem nss_builtins_items_256 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18833,7 +17424,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_279 [] = {
+static const NSSItem nss_builtins_items_257 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18890,7 +17481,7 @@
 "\214\171"
 , (PRUint32)514 }
 };
-static const NSSItem nss_builtins_items_280 [] = {
+static const NSSItem nss_builtins_items_258 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -18914,7 +17505,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_281 [] = {
+static const NSSItem nss_builtins_items_259 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19004,7 +17595,7 @@
 "\326\267\064\365\176\316\071\232\331\070\361\121\367\117\054"
 , (PRUint32)959 }
 };
-static const NSSItem nss_builtins_items_282 [] = {
+static const NSSItem nss_builtins_items_260 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19031,7 +17622,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_283 [] = {
+static const NSSItem nss_builtins_items_261 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19149,7 +17740,7 @@
 "\377\276\013\166\026\136\067\067\346\330\164\227\242\231\105\171"
 , (PRUint32)1440 }
 };
-static const NSSItem nss_builtins_items_284 [] = {
+static const NSSItem nss_builtins_items_262 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19175,7 +17766,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_285 [] = {
+static const NSSItem nss_builtins_items_263 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19308,7 +17899,7 @@
 "\304\163\304\163\030\137\120\165\026\061\237\267\350\174\303"
 , (PRUint32)1679 }
 };
-static const NSSItem nss_builtins_items_286 [] = {
+static const NSSItem nss_builtins_items_264 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19334,129 +17925,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_287 [] = {
-  { (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 *)"A-Trust-nQual-03", (PRUint32)17 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101\124"
-"\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162\165"
-"\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150\145"
-"\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151\155"
-"\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166\145"
-"\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006\003"
-"\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121\165"
-"\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014\020"
-"\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060\063"
-, (PRUint32)144 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101\124"
-"\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162\165"
-"\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150\145"
-"\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151\155"
-"\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166\145"
-"\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006\003"
-"\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121\165"
-"\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014\020"
-"\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060\063"
-, (PRUint32)144 },
-  { (void *)"\002\003\001\154\036"
-, (PRUint32)5 },
-  { (void *)"\060\202\003\317\060\202\002\267\240\003\002\001\002\002\003\001"
-"\154\036\060\015\006\011\052\206\110\206\367\015\001\001\005\005"
-"\000\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101"
-"\124\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162"
-"\165\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150"
-"\145\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151"
-"\155\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166"
-"\145\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006"
-"\003\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121"
-"\165\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014"
-"\020\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060"
-"\063\060\036\027\015\060\065\060\070\061\067\062\062\060\060\060"
-"\060\132\027\015\061\065\060\070\061\067\062\062\060\060\060\060"
-"\132\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101"
-"\124\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162"
-"\165\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150"
-"\145\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151"
-"\155\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166"
-"\145\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006"
-"\003\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121"
-"\165\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014"
-"\020\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060"
-"\063\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001"
-"\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001"
-"\001\000\255\075\141\156\003\363\220\073\300\101\013\204\200\315"
-"\354\052\243\235\153\273\156\302\102\204\367\121\024\341\240\250"
-"\055\121\243\121\362\336\043\360\064\104\377\224\353\314\005\043"
-"\225\100\271\007\170\245\045\366\012\275\105\206\350\331\275\300"
-"\004\216\205\104\141\357\177\247\311\372\301\045\314\205\054\143"
-"\077\005\140\163\111\005\340\140\170\225\020\113\334\371\021\131"
-"\316\161\177\100\233\212\252\044\337\013\102\342\333\126\274\112"
-"\322\245\014\233\267\103\076\335\203\323\046\020\002\317\352\043"
-"\304\111\116\345\323\351\264\210\253\014\256\142\222\324\145\207"
-"\331\152\327\364\205\237\344\063\042\045\245\345\310\063\272\303"
-"\307\101\334\137\306\152\314\000\016\155\062\250\266\207\066\000"
-"\142\167\233\036\037\064\313\220\074\170\210\164\005\353\171\365"
-"\223\161\145\312\235\307\153\030\055\075\134\116\347\325\370\077"
-"\061\175\217\207\354\012\042\057\043\351\376\273\175\311\340\364"
-"\354\353\174\304\260\303\055\142\265\232\161\326\261\152\350\354"
-"\331\355\325\162\354\276\127\001\316\005\125\237\336\321\140\210"
-"\020\263\002\003\001\000\001\243\066\060\064\060\017\006\003\125"
-"\035\023\001\001\377\004\005\060\003\001\001\377\060\021\006\003"
-"\125\035\016\004\012\004\010\104\152\225\147\125\171\021\117\060"
-"\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060"
-"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202"
-"\001\001\000\125\324\124\321\131\110\134\263\223\205\252\277\143"
-"\057\344\200\316\064\243\064\142\076\366\330\356\147\210\061\004"
-"\003\157\013\324\007\373\116\165\017\323\056\323\300\027\307\306"
-"\050\354\006\015\021\044\016\016\245\135\277\214\262\023\226\161"
-"\334\324\316\016\015\012\150\062\154\271\101\061\031\253\261\007"
-"\173\115\230\323\134\260\321\360\247\102\240\265\304\216\257\376"
-"\361\077\364\357\117\106\000\166\353\002\373\371\235\322\100\226"
-"\307\210\072\270\237\021\171\363\200\145\250\275\037\323\170\201"
-"\240\121\114\067\264\246\135\045\160\321\146\311\150\371\056\021"
-"\024\150\361\124\230\010\254\046\222\017\336\211\236\324\372\263"
-"\171\053\322\243\171\324\354\213\254\207\123\150\102\114\121\121"
-"\164\036\033\047\056\343\365\037\051\164\115\355\257\367\341\222"
-"\231\201\350\276\072\307\027\120\366\267\306\374\233\260\212\153"
-"\326\210\003\221\217\006\167\072\205\002\335\230\325\103\170\077"
-"\306\060\025\254\233\153\313\127\267\211\121\213\072\350\311\204"
-"\014\333\261\120\040\012\032\112\272\152\032\275\354\033\310\305"
-"\204\232\315"
-, (PRUint32)979 }
-};
-static const NSSItem nss_builtins_items_288 [] = {
-  { (void *)&cko_nss_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 *)"A-Trust-nQual-03", (PRUint32)17 },
-  { (void *)"\323\300\143\362\031\355\007\076\064\255\135\165\013\062\166\051"
-"\377\325\232\362"
-, (PRUint32)20 },
-  { (void *)"\111\143\256\047\364\325\225\075\330\333\044\206\270\234\007\123"
-, (PRUint32)16 },
-  { (void *)"\060\201\215\061\013\060\011\006\003\125\004\006\023\002\101\124"
-"\061\110\060\106\006\003\125\004\012\014\077\101\055\124\162\165"
-"\163\164\040\107\145\163\056\040\146\056\040\123\151\143\150\145"
-"\162\150\145\151\164\163\163\171\163\164\145\155\145\040\151\155"
-"\040\145\154\145\153\164\162\056\040\104\141\164\145\156\166\145"
-"\162\153\145\150\162\040\107\155\142\110\061\031\060\027\006\003"
-"\125\004\013\014\020\101\055\124\162\165\163\164\055\156\121\165"
-"\141\154\055\060\063\061\031\060\027\006\003\125\004\003\014\020"
-"\101\055\124\162\165\163\164\055\156\121\165\141\154\055\060\063"
-, (PRUint32)144 },
-  { (void *)"\002\003\001\154\036"
-, (PRUint32)5 },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_289 [] = {
+static const NSSItem nss_builtins_items_265 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19540,7 +18009,7 @@
 "\274\060\376\173\016\063\220\373\355\322\024\221\037\007\257"
 , (PRUint32)895 }
 };
-static const NSSItem nss_builtins_items_290 [] = {
+static const NSSItem nss_builtins_items_266 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19566,7 +18035,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_291 [] = {
+static const NSSItem nss_builtins_items_267 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19684,7 +18153,7 @@
 "\262\345\214\360\206\231\270\345\305\337\204\301\267\353"
 , (PRUint32)1422 }
 };
-static const NSSItem nss_builtins_items_292 [] = {
+static const NSSItem nss_builtins_items_268 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19711,7 +18180,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_293 [] = {
+static const NSSItem nss_builtins_items_269 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19795,7 +18264,7 @@
 "\136\121\026\053\076"
 , (PRUint32)885 }
 };
-static const NSSItem nss_builtins_items_294 [] = {
+static const NSSItem nss_builtins_items_270 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19821,7 +18290,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_295 [] = {
+static const NSSItem nss_builtins_items_271 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19934,7 +18403,7 @@
 "\214\360\340\050\006\042\267\046\101"
 , (PRUint32)1353 }
 };
-static const NSSItem nss_builtins_items_296 [] = {
+static const NSSItem nss_builtins_items_272 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -19960,7 +18429,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_297 [] = {
+static const NSSItem nss_builtins_items_273 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20063,7 +18532,7 @@
 "\041\225\305\242\165"
 , (PRUint32)1285 }
 };
-static const NSSItem nss_builtins_items_298 [] = {
+static const NSSItem nss_builtins_items_274 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20086,7 +18555,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_299 [] = {
+static const NSSItem nss_builtins_items_275 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20188,7 +18657,7 @@
 "\132\145"
 , (PRUint32)1170 }
 };
-static const NSSItem nss_builtins_items_300 [] = {
+static const NSSItem nss_builtins_items_276 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20214,7 +18683,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_301 [] = {
+static const NSSItem nss_builtins_items_277 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20346,7 +18815,7 @@
 "\244\363\116\272\067\230\173\202\271"
 , (PRUint32)1689 }
 };
-static const NSSItem nss_builtins_items_302 [] = {
+static const NSSItem nss_builtins_items_278 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20371,7 +18840,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_303 [] = {
+static const NSSItem nss_builtins_items_279 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20462,7 +18931,7 @@
 "\131"
 , (PRUint32)977 }
 };
-static const NSSItem nss_builtins_items_304 [] = {
+static const NSSItem nss_builtins_items_280 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20489,7 +18958,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_305 [] = {
+static const NSSItem nss_builtins_items_281 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20600,7 +19069,7 @@
 "\355\020\342\305"
 , (PRUint32)1236 }
 };
-static const NSSItem nss_builtins_items_306 [] = {
+static const NSSItem nss_builtins_items_282 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20631,7 +19100,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_307 [] = {
+static const NSSItem nss_builtins_items_283 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20713,7 +19182,7 @@
 "\201\050\174\247\175\047\353\000\256\215\067"
 , (PRUint32)891 }
 };
-static const NSSItem nss_builtins_items_308 [] = {
+static const NSSItem nss_builtins_items_284 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20738,7 +19207,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_309 [] = {
+static const NSSItem nss_builtins_items_285 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20871,7 +19340,7 @@
 "\371\210\075\176\270\157\156\003\344\102"
 , (PRUint32)1370 }
 };
-static const NSSItem nss_builtins_items_310 [] = {
+static const NSSItem nss_builtins_items_286 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -20907,7 +19376,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_311 [] = {
+static const NSSItem nss_builtins_items_287 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21009,7 +19478,7 @@
 "\113\321\047\327\270"
 , (PRUint32)1077 }
 };
-static const NSSItem nss_builtins_items_312 [] = {
+static const NSSItem nss_builtins_items_288 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21038,7 +19507,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_313 [] = {
+static const NSSItem nss_builtins_items_289 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21063,7 +19532,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_314 [] = {
+static const NSSItem nss_builtins_items_290 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21088,7 +19557,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_315 [] = {
+static const NSSItem nss_builtins_items_291 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21208,7 +19677,7 @@
 "\216\362\024\212\314\351\265\174\373\154\235\014\245\341\226"
 , (PRUint32)1471 }
 };
-static const NSSItem nss_builtins_items_316 [] = {
+static const NSSItem nss_builtins_items_292 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21234,7 +19703,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_317 [] = {
+static const NSSItem nss_builtins_items_293 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21314,7 +19783,7 @@
 "\145\353\127\331\363\127\226\273\110\315\201"
 , (PRUint32)875 }
 };
-static const NSSItem nss_builtins_items_318 [] = {
+static const NSSItem nss_builtins_items_294 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21339,7 +19808,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_319 [] = {
+static const NSSItem nss_builtins_items_295 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21490,7 +19959,7 @@
 "\177\045\245\362\110\000\300\244\001\332\077"
 , (PRUint32)1931 }
 };
-static const NSSItem nss_builtins_items_320 [] = {
+static const NSSItem nss_builtins_items_296 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21517,7 +19986,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_321 [] = {
+static const NSSItem nss_builtins_items_297 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21630,7 +20099,7 @@
 "\127\055\366\320\341\327\110"
 , (PRUint32)1383 }
 };
-static const NSSItem nss_builtins_items_322 [] = {
+static const NSSItem nss_builtins_items_298 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21655,7 +20124,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_323 [] = {
+static const NSSItem nss_builtins_items_299 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21765,7 +20234,7 @@
 "\327\201\011\361\311\307\046\015\254\230\026\126\240"
 , (PRUint32)1373 }
 };
-static const NSSItem nss_builtins_items_324 [] = {
+static const NSSItem nss_builtins_items_300 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21789,7 +20258,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_325 [] = {
+static const NSSItem nss_builtins_items_301 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21899,7 +20368,7 @@
 "\061\356\006\274\163\277\023\142\012\237\307\271\227"
 , (PRUint32)1373 }
 };
-static const NSSItem nss_builtins_items_326 [] = {
+static const NSSItem nss_builtins_items_302 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -21923,7 +20392,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_327 [] = {
+static const NSSItem nss_builtins_items_303 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22016,7 +20485,7 @@
 "\116\223\303\244\124\024\133"
 , (PRUint32)967 }
 };
-static const NSSItem nss_builtins_items_328 [] = {
+static const NSSItem nss_builtins_items_304 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22044,7 +20513,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_329 [] = {
+static const NSSItem nss_builtins_items_305 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22140,7 +20609,7 @@
 "\307\314\165\301\226\305\235"
 , (PRUint32)1031 }
 };
-static const NSSItem nss_builtins_items_330 [] = {
+static const NSSItem nss_builtins_items_306 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22168,7 +20637,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_331 [] = {
+static const NSSItem nss_builtins_items_307 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22193,7 +20662,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_332 [] = {
+static const NSSItem nss_builtins_items_308 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22218,7 +20687,7 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_333 [] = {
+static const NSSItem nss_builtins_items_309 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22327,7 +20796,7 @@
 "\175"
 , (PRUint32)1089 }
 };
-static const NSSItem nss_builtins_items_334 [] = {
+static const NSSItem nss_builtins_items_310 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22359,7 +20828,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_335 [] = {
+static const NSSItem nss_builtins_items_311 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22451,7 +20920,7 @@
 "\164\145\327\134\376\243\342"
 , (PRUint32)1079 }
 };
-static const NSSItem nss_builtins_items_336 [] = {
+static const NSSItem nss_builtins_items_312 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22475,7 +20944,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_337 [] = {
+static const NSSItem nss_builtins_items_313 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22570,7 +21039,7 @@
 "\352\237\026\361\054\124\265"
 , (PRUint32)1095 }
 };
-static const NSSItem nss_builtins_items_338 [] = {
+static const NSSItem nss_builtins_items_314 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22595,7 +21064,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_339 [] = {
+static const NSSItem nss_builtins_items_315 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22795,7 +21264,7 @@
 "\376\206\364\274\340\032\161\263\142\246"
 , (PRUint32)2442 }
 };
-static const NSSItem nss_builtins_items_340 [] = {
+static const NSSItem nss_builtins_items_316 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22833,7 +21302,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_341 [] = {
+static const NSSItem nss_builtins_items_317 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22929,7 +21398,7 @@
 "\303\055\375\024\052\220\231\271\007\314\237"
 , (PRUint32)1019 }
 };
-static const NSSItem nss_builtins_items_342 [] = {
+static const NSSItem nss_builtins_items_318 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -22957,7 +21426,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_343 [] = {
+static const NSSItem nss_builtins_items_319 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23080,7 +21549,7 @@
 "\301\053\022\236\246\236\033\305\346\016\331\061\331"
 , (PRUint32)1501 }
 };
-static const NSSItem nss_builtins_items_344 [] = {
+static const NSSItem nss_builtins_items_320 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23107,7 +21576,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_345 [] = {
+static const NSSItem nss_builtins_items_321 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23231,7 +21700,7 @@
 "\046\277\242\367"
 , (PRUint32)1508 }
 };
-static const NSSItem nss_builtins_items_346 [] = {
+static const NSSItem nss_builtins_items_322 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23258,7 +21727,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_347 [] = {
+static const NSSItem nss_builtins_items_323 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23371,7 +21840,7 @@
 "\360\343\355\144\236\075\057\226\122\117\200\123\213"
 , (PRUint32)1389 }
 };
-static const NSSItem nss_builtins_items_348 [] = {
+static const NSSItem nss_builtins_items_324 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23396,7 +21865,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_349 [] = {
+static const NSSItem nss_builtins_items_325 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23509,7 +21978,7 @@
 "\363\154\033\165\106\243\345\112\027\351\244\327\013"
 , (PRUint32)1389 }
 };
-static const NSSItem nss_builtins_items_350 [] = {
+static const NSSItem nss_builtins_items_326 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23534,159 +22003,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_351 [] = {
-  { (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 *)"SG TRUST SERVICES RACINE", (PRUint32)25 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\152\061\041\060\037\006\003\125\004\003\023\030\123\107\040"
-"\124\122\125\123\124\040\123\105\122\126\111\103\105\123\040\122"
-"\101\103\111\116\105\061\034\060\032\006\003\125\004\013\023\023"
-"\060\060\060\062\040\064\063\065\062\065\062\070\071\065\060\060"
-"\060\062\062\061\032\060\030\006\003\125\004\012\023\021\123\107"
-"\040\124\122\125\123\124\040\123\105\122\126\111\103\105\123\061"
-"\013\060\011\006\003\125\004\006\023\002\106\122"
-, (PRUint32)108 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\152\061\041\060\037\006\003\125\004\003\023\030\123\107\040"
-"\124\122\125\123\124\040\123\105\122\126\111\103\105\123\040\122"
-"\101\103\111\116\105\061\034\060\032\006\003\125\004\013\023\023"
-"\060\060\060\062\040\064\063\065\062\065\062\070\071\065\060\060"
-"\060\062\062\061\032\060\030\006\003\125\004\012\023\021\123\107"
-"\040\124\122\125\123\124\040\123\105\122\126\111\103\105\123\061"
-"\013\060\011\006\003\125\004\006\023\002\106\122"
-, (PRUint32)108 },
-  { (void *)"\002\010\076\325\121\031\346\115\316\176"
-, (PRUint32)10 },
-  { (void *)"\060\202\006\031\060\202\004\001\240\003\002\001\002\002\010\076"
-"\325\121\031\346\115\316\176\060\015\006\011\052\206\110\206\367"
-"\015\001\001\013\005\000\060\152\061\041\060\037\006\003\125\004"
-"\003\023\030\123\107\040\124\122\125\123\124\040\123\105\122\126"
-"\111\103\105\123\040\122\101\103\111\116\105\061\034\060\032\006"
-"\003\125\004\013\023\023\060\060\060\062\040\064\063\065\062\065"
-"\062\070\071\065\060\060\060\062\062\061\032\060\030\006\003\125"
-"\004\012\023\021\123\107\040\124\122\125\123\124\040\123\105\122"
-"\126\111\103\105\123\061\013\060\011\006\003\125\004\006\023\002"
-"\106\122\060\036\027\015\061\060\060\071\060\066\061\062\065\063"
-"\064\062\132\027\015\063\060\060\071\060\065\061\062\065\063\064"
-"\062\132\060\152\061\041\060\037\006\003\125\004\003\023\030\123"
-"\107\040\124\122\125\123\124\040\123\105\122\126\111\103\105\123"
-"\040\122\101\103\111\116\105\061\034\060\032\006\003\125\004\013"
-"\023\023\060\060\060\062\040\064\063\065\062\065\062\070\071\065"
-"\060\060\060\062\062\061\032\060\030\006\003\125\004\012\023\021"
-"\123\107\040\124\122\125\123\124\040\123\105\122\126\111\103\105"
-"\123\061\013\060\011\006\003\125\004\006\023\002\106\122\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\332"
-"\250\126\002\354\174\225\360\116\351\012\322\267\007\243\042\213"
-"\120\263\271\056\031\075\127\333\031\252\322\053\344\316\102\342"
-"\154\241\344\135\045\036\063\035\266\105\321\264\372\131\212\126"
-"\160\311\155\010\166\151\160\232\346\307\234\010\060\023\376\346"
-"\321\222\150\141\076\114\021\362\156\362\261\173\127\126\113\011"
-"\275\334\017\331\161\014\350\232\067\336\042\020\034\231\136\326"
-"\261\027\007\323\244\071\055\302\032\163\375\312\113\051\007\302"
-"\171\051\310\310\046\256\054\304\374\043\310\113\342\206\126\017"
-"\050\375\266\207\033\150\137\071\144\105\375\150\203\154\165\044"
-"\036\074\165\231\141\372\322\024\370\251\113\261\330\175\247\170"
-"\322\023\142\145\265\326\276\176\152\003\274\265\262\374\144\060"
-"\303\320\302\231\075\231\244\323\315\321\261\304\123\207\173\114"
-"\023\023\146\177\277\325\145\123\150\371\134\036\345\264\377\066"
-"\231\105\243\237\142\300\177\021\202\001\124\336\017\145\245\071"
-"\256\235\110\114\211\243\020\073\340\346\203\365\260\332\054\036"
-"\172\034\134\037\000\254\314\253\247\140\144\263\306\305\173\307"
-"\125\106\164\074\220\201\016\112\216\131\235\124\260\110\261\122"
-"\114\073\230\356\253\332\064\267\123\315\111\332\057\353\225\276"
-"\014\127\021\366\226\114\004\171\134\231\325\345\344\276\157\352"
-"\107\356\121\113\357\042\046\256\265\330\021\252\103\273\170\277"
-"\013\176\264\335\317\164\035\045\251\211\143\261\342\064\201\304"
-"\210\065\070\342\002\015\017\023\311\325\052\202\025\360\212\304"
-"\103\062\126\344\123\035\035\254\266\317\175\233\226\135\036\144"
-"\351\164\163\304\126\344\026\112\122\155\222\071\323\341\115\016"
-"\077\142\271\336\255\265\035\145\271\135\122\376\135\011\251\234"
-"\264\244\014\331\057\105\166\245\317\216\152\232\236\252\260\021"
-"\241\353\141\306\353\077\036\374\146\264\022\235\106\177\062\026"
-"\211\276\161\105\257\221\041\331\375\223\277\264\002\221\102\377"
-"\111\037\355\213\025\150\335\037\216\254\233\335\202\005\234\104"
-"\151\026\144\027\126\137\101\017\112\117\004\017\145\120\206\223"
-"\227\354\105\277\135\302\034\334\317\304\330\072\346\170\005\320"
-"\305\125\125\251\136\376\253\072\041\273\345\162\024\367\013\002"
-"\003\001\000\001\243\201\302\060\201\277\060\035\006\003\125\035"
-"\016\004\026\004\024\051\040\313\361\303\017\332\006\216\023\223"
-"\207\376\137\140\032\051\273\363\266\060\017\006\003\125\035\023"
-"\001\001\377\004\005\060\003\001\001\377\060\037\006\003\125\035"
-"\043\004\030\060\026\200\024\051\040\313\361\303\017\332\006\216"
-"\023\223\207\376\137\140\032\051\273\363\266\060\021\006\003\125"
-"\035\040\004\012\060\010\060\006\006\004\125\035\040\000\060\111"
-"\006\003\125\035\037\004\102\060\100\060\076\240\074\240\072\206"
-"\070\150\164\164\160\072\057\057\143\162\154\056\163\147\164\162"
-"\165\163\164\163\145\162\166\151\143\145\163\056\143\157\155\057"
-"\162\141\143\151\156\145\055\107\162\157\165\160\145\123\107\057"
-"\114\141\164\145\163\164\103\122\114\060\016\006\003\125\035\017"
-"\001\001\377\004\004\003\002\001\006\060\015\006\011\052\206\110"
-"\206\367\015\001\001\013\005\000\003\202\002\001\000\114\106\147"
-"\340\104\120\365\305\266\272\262\121\012\045\023\035\267\307\210"
-"\056\037\271\053\144\240\313\223\210\122\131\252\140\365\314\051"
-"\122\027\377\004\347\067\264\061\021\106\176\053\036\154\247\213"
-"\074\107\232\136\364\252\135\220\073\105\075\237\112\311\212\173"
-"\216\300\356\076\171\213\222\243\310\224\112\270\050\021\153\246"
-"\045\137\135\275\307\310\373\203\117\125\061\346\134\360\023\174"
-"\343\275\177\052\054\067\067\224\111\257\204\037\024\047\242\130"
-"\020\217\012\071\067\032\022\040\101\217\031\366\251\037\031\355"
-"\262\064\262\255\175\063\104\213\137\012\007\103\362\166\105\105"
-"\055\255\344\215\016\000\375\004\010\252\347\153\373\027\275\260"
-"\010\126\016\065\052\162\360\263\347\115\072\117\015\334\363\140"
-"\022\263\070\144\214\333\371\341\046\215\057\357\116\350\044\107"
-"\076\066\064\212\151\017\050\153\213\207\306\275\205\046\371\323"
-"\353\151\041\126\140\221\326\367\340\142\302\250\161\256\056\336"
-"\146\043\265\122\106\246\244\110\067\054\177\001\026\127\021\367"
-"\047\015\016\345\017\326\220\105\341\036\077\041\334\322\374\026"
-"\030\023\076\115\152\262\046\152\100\136\045\170\375\070\364\254"
-"\130\172\067\033\230\100\004\307\216\311\324\304\147\141\261\230"
-"\256\360\315\016\334\271\257\145\203\173\012\004\212\077\141\252"
-"\367\135\101\206\346\306\114\302\117\072\134\126\352\050\073\247"
-"\104\317\310\112\144\365\162\140\055\343\103\270\112\340\165\074"
-"\062\344\252\026\327\021\271\301\105\331\233\146\143\146\345\042"
-"\267\064\356\272\325\164\057\045\144\363\201\124\313\167\336\127"
-"\324\223\343\254\007\061\072\076\134\003\203\127\123\307\360\376"
-"\150\330\045\120\115\022\310\346\341\225\215\147\253\074\223\077"
-"\027\002\272\070\327\236\367\060\245\075\075\104\001\063\032\232"
-"\237\216\320\237\361\356\060\210\163\357\256\044\031\272\227\163"
-"\025\301\354\161\014\204\144\265\173\354\274\151\076\244\155\011"
-"\026\066\312\112\071\212\313\247\173\306\035\176\347\063\210\311"
-"\276\060\155\234\205\225\041\351\107\073\006\176\201\342\352\106"
-"\346\160\130\200\346\250\362\235\013\151\321\063\211\131\060\363"
-"\144\323\013\366\316\053\011\373\175\020\166\056\020"
-, (PRUint32)1565 }
-};
-static const NSSItem nss_builtins_items_352 [] = {
-  { (void *)&cko_nss_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 *)"SG TRUST SERVICES RACINE", (PRUint32)25 },
-  { (void *)"\014\142\217\134\125\160\261\311\127\372\375\070\077\260\075\173"
-"\175\327\271\306"
-, (PRUint32)20 },
-  { (void *)"\045\357\317\110\112\204\267\060\237\140\323\035\126\221\057\341"
-, (PRUint32)16 },
-  { (void *)"\060\152\061\041\060\037\006\003\125\004\003\023\030\123\107\040"
-"\124\122\125\123\124\040\123\105\122\126\111\103\105\123\040\122"
-"\101\103\111\116\105\061\034\060\032\006\003\125\004\013\023\023"
-"\060\060\060\062\040\064\063\065\062\065\062\070\071\065\060\060"
-"\060\062\062\061\032\060\030\006\003\125\004\012\023\021\123\107"
-"\040\124\122\125\123\124\040\123\105\122\126\111\103\105\123\061"
-"\013\060\011\006\003\125\004\006\023\002\106\122"
-, (PRUint32)108 },
-  { (void *)"\002\010\076\325\121\031\346\115\316\176"
-, (PRUint32)10 },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_353 [] = {
+static const NSSItem nss_builtins_items_327 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23836,7 +22153,7 @@
 "\125\064\106\052\213\206\073"
 , (PRUint32)2007 }
 };
-static const NSSItem nss_builtins_items_354 [] = {
+static const NSSItem nss_builtins_items_328 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23860,7 +22177,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_355 [] = {
+static const NSSItem nss_builtins_items_329 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23971,7 +22288,7 @@
 "\053\006\320\004\315"
 , (PRUint32)1349 }
 };
-static const NSSItem nss_builtins_items_356 [] = {
+static const NSSItem nss_builtins_items_330 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -23996,7 +22313,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_357 [] = {
+static const NSSItem nss_builtins_items_331 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24103,7 +22420,7 @@
 "\245\240\314\277\323\366\165\244\165\226\155\126"
 , (PRUint32)1340 }
 };
-static const NSSItem nss_builtins_items_358 [] = {
+static const NSSItem nss_builtins_items_332 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24127,7 +22444,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_359 [] = {
+static const NSSItem nss_builtins_items_333 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24266,7 +22583,7 @@
 "\243\253\157\134\035\266\176\350\263\202\064\355\006\134\044"
 , (PRUint32)1615 }
 };
-static const NSSItem nss_builtins_items_360 [] = {
+static const NSSItem nss_builtins_items_334 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24297,7 +22614,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_361 [] = {
+static const NSSItem nss_builtins_items_335 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24390,7 +22707,7 @@
 "\005\047\216\023\241\156\302"
 , (PRUint32)967 }
 };
-static const NSSItem nss_builtins_items_362 [] = {
+static const NSSItem nss_builtins_items_336 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24418,7 +22735,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_363 [] = {
+static const NSSItem nss_builtins_items_337 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24496,7 +22813,7 @@
 "\035\362\376\011\021\260\360\207\173\247\235"
 , (PRUint32)891 }
 };
-static const NSSItem nss_builtins_items_364 [] = {
+static const NSSItem nss_builtins_items_338 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24519,7 +22836,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_365 [] = {
+static const NSSItem nss_builtins_items_339 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24631,7 +22948,7 @@
 "\063\140\345\303"
 , (PRUint32)1380 }
 };
-static const NSSItem nss_builtins_items_366 [] = {
+static const NSSItem nss_builtins_items_340 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24656,7 +22973,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_367 [] = {
+static const NSSItem nss_builtins_items_341 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24768,7 +23085,7 @@
 "\203\336\177\214"
 , (PRUint32)1380 }
 };
-static const NSSItem nss_builtins_items_368 [] = {
+static const NSSItem nss_builtins_items_342 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24793,7 +23110,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_369 [] = {
+static const NSSItem nss_builtins_items_343 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24905,7 +23222,7 @@
 "\130\371\230\364"
 , (PRUint32)1380 }
 };
-static const NSSItem nss_builtins_items_370 [] = {
+static const NSSItem nss_builtins_items_344 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -24930,7 +23247,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_371 [] = {
+static const NSSItem nss_builtins_items_345 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25017,7 +23334,7 @@
 "\042\023\163\154\317\046\365\212\051\347"
 , (PRUint32)922 }
 };
-static const NSSItem nss_builtins_items_372 [] = {
+static const NSSItem nss_builtins_items_346 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25044,7 +23361,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_373 [] = {
+static const NSSItem nss_builtins_items_347 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25110,7 +23427,7 @@
 "\352\226\143\152\145\105\222\225\001\264"
 , (PRUint32)586 }
 };
-static const NSSItem nss_builtins_items_374 [] = {
+static const NSSItem nss_builtins_items_348 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25137,7 +23454,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_375 [] = {
+static const NSSItem nss_builtins_items_349 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25224,7 +23541,7 @@
 "\062\266"
 , (PRUint32)914 }
 };
-static const NSSItem nss_builtins_items_376 [] = {
+static const NSSItem nss_builtins_items_350 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25251,7 +23568,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_377 [] = {
+static const NSSItem nss_builtins_items_351 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25317,7 +23634,7 @@
 "\263\047\027"
 , (PRUint32)579 }
 };
-static const NSSItem nss_builtins_items_378 [] = {
+static const NSSItem nss_builtins_items_352 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25344,7 +23661,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_379 [] = {
+static const NSSItem nss_builtins_items_353 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25463,7 +23780,7 @@
 "\317\363\146\176"
 , (PRUint32)1428 }
 };
-static const NSSItem nss_builtins_items_380 [] = {
+static const NSSItem nss_builtins_items_354 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25490,7 +23807,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_381 [] = {
+static const NSSItem nss_builtins_items_355 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25605,7 +23922,7 @@
 "\171\356\104\206\276\327\036\344\036\373"
 , (PRUint32)1402 }
 };
-static const NSSItem nss_builtins_items_382 [] = {
+static const NSSItem nss_builtins_items_356 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25631,7 +23948,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_383 [] = {
+static const NSSItem nss_builtins_items_357 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25742,7 +24059,7 @@
 "\234\313\051\213\070\112\013\016\220\215\272\241"
 , (PRUint32)1372 }
 };
-static const NSSItem nss_builtins_items_384 [] = {
+static const NSSItem nss_builtins_items_358 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25767,7 +24084,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_385 [] = {
+static const NSSItem nss_builtins_items_359 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25894,7 +24211,7 @@
 "\065\123\205\006\112\135\237\255\273\033\137\164"
 , (PRUint32)1500 }
 };
-static const NSSItem nss_builtins_items_386 [] = {
+static const NSSItem nss_builtins_items_360 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -25923,7 +24240,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_387 [] = {
+static const NSSItem nss_builtins_items_361 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26051,7 +24368,7 @@
 "\250\375"
 , (PRUint32)1506 }
 };
-static const NSSItem nss_builtins_items_388 [] = {
+static const NSSItem nss_builtins_items_362 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26080,7 +24397,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_389 [] = {
+static const NSSItem nss_builtins_items_363 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26155,7 +24472,7 @@
 "\127\152\030"
 , (PRUint32)659 }
 };
-static const NSSItem nss_builtins_items_390 [] = {
+static const NSSItem nss_builtins_items_364 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26184,7 +24501,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_391 [] = {
+static const NSSItem nss_builtins_items_365 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26242,7 +24559,7 @@
 "\173\013\370\237\204"
 , (PRUint32)485 }
 };
-static const NSSItem nss_builtins_items_392 [] = {
+static const NSSItem nss_builtins_items_366 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26268,7 +24585,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_393 [] = {
+static const NSSItem nss_builtins_items_367 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26330,7 +24647,7 @@
 "\220\067"
 , (PRUint32)546 }
 };
-static const NSSItem nss_builtins_items_394 [] = {
+static const NSSItem nss_builtins_items_368 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26356,141 +24673,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_395 [] = {
-  { (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 *)"USERTrust-temporary-intermediate-after-1024bit-removal", (PRUint32)55 },
-  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
-  { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\125\123\061"
-"\013\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025"
-"\006\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145"
-"\040\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025"
-"\124\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145"
-"\164\167\157\162\153\061\052\060\050\006\003\125\004\003\023\041"
-"\125\123\105\122\124\162\165\163\164\040\114\145\147\141\143\171"
-"\040\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103"
-"\101"
-, (PRUint32)129 },
-  { (void *)"0", (PRUint32)2 },
-  { (void *)"\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061"
-"\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165"
-"\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035"
-"\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141"
-"\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060"
-"\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164"
-"\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157"
-"\164"
-, (PRUint32)113 },
-  { (void *)"\002\020\135\040\141\216\214\016\271\064\100\223\271\261\330\143"
-"\225\266"
-, (PRUint32)18 },
-  { (void *)"\060\202\004\231\060\202\003\201\240\003\002\001\002\002\020\135"
-"\040\141\216\214\016\271\064\100\223\271\261\330\143\225\266\060"
-"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\157"
-"\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024\060"
-"\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163\164"
-"\040\101\102\061\046\060\044\006\003\125\004\013\023\035\101\144"
-"\144\124\162\165\163\164\040\105\170\164\145\162\156\141\154\040"
-"\124\124\120\040\116\145\164\167\157\162\153\061\042\060\040\006"
-"\003\125\004\003\023\031\101\144\144\124\162\165\163\164\040\105"
-"\170\164\145\162\156\141\154\040\103\101\040\122\157\157\164\060"
-"\036\027\015\061\064\060\070\060\065\060\060\060\060\060\060\132"
-"\027\015\061\065\061\061\060\061\062\063\065\071\065\071\132\060"
-"\177\061\013\060\011\006\003\125\004\006\023\002\125\123\061\013"
-"\060\011\006\003\125\004\010\023\002\125\124\061\027\060\025\006"
-"\003\125\004\007\023\016\123\141\154\164\040\114\141\153\145\040"
-"\103\151\164\171\061\036\060\034\006\003\125\004\012\023\025\124"
-"\150\145\040\125\123\105\122\124\122\125\123\124\040\116\145\164"
-"\167\157\162\153\061\052\060\050\006\003\125\004\003\023\041\125"
-"\123\105\122\124\162\165\163\164\040\114\145\147\141\143\171\040"
-"\123\145\143\165\162\145\040\123\145\162\166\145\162\040\103\101"
-"\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001"
-"\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001"
-"\000\331\115\040\072\346\051\060\206\362\351\206\211\166\064\116"
-"\150\037\226\104\367\321\371\326\202\116\246\070\236\356\313\133"
-"\341\216\056\275\362\127\200\375\311\077\374\220\163\104\274\217"
-"\273\127\133\345\055\037\024\060\165\066\365\177\274\317\126\364"
-"\177\201\377\256\221\315\330\322\152\313\227\371\367\315\220\152"
-"\105\055\304\273\244\205\023\150\127\137\357\051\272\052\312\352"
-"\365\314\244\004\233\143\315\000\353\375\355\215\335\043\306\173"
-"\036\127\035\066\177\037\010\232\015\141\333\132\154\161\002\123"
-"\050\302\372\215\375\253\273\263\361\215\164\113\337\275\275\314"
-"\006\223\143\011\225\302\020\172\235\045\220\062\235\001\302\071"
-"\123\260\340\025\153\307\327\164\345\244\042\233\344\224\377\204"
-"\221\373\055\263\031\103\055\223\017\234\022\011\344\147\271\047"
-"\172\062\255\172\052\314\101\130\300\156\131\137\356\070\053\027"
-"\042\234\211\372\156\347\345\127\065\364\132\355\222\225\223\055"
-"\371\314\044\077\245\034\075\047\275\042\003\163\314\365\312\363"
-"\251\364\334\376\317\351\320\134\320\017\253\207\374\203\375\310"
-"\251\002\003\001\000\001\243\202\001\037\060\202\001\033\060\037"
-"\006\003\125\035\043\004\030\060\026\200\024\255\275\230\172\064"
-"\264\046\367\372\304\046\124\357\003\275\340\044\313\124\032\060"
-"\035\006\003\125\035\016\004\026\004\024\257\244\100\257\237\026"
-"\376\253\061\375\373\325\227\213\365\221\243\044\206\026\060\016"
-"\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060\022"
-"\006\003\125\035\023\001\001\377\004\010\060\006\001\001\377\002"
-"\001\000\060\035\006\003\125\035\045\004\026\060\024\006\010\053"
-"\006\001\005\005\007\003\001\006\010\053\006\001\005\005\007\003"
-"\002\060\031\006\003\125\035\040\004\022\060\020\060\016\006\014"
-"\053\006\001\004\001\262\061\001\002\001\003\004\060\104\006\003"
-"\125\035\037\004\075\060\073\060\071\240\067\240\065\206\063\150"
-"\164\164\160\072\057\057\143\162\154\056\165\163\145\162\164\162"
-"\165\163\164\056\143\157\155\057\101\144\144\124\162\165\163\164"
-"\105\170\164\145\162\156\141\154\103\101\122\157\157\164\056\143"
-"\162\154\060\065\006\010\053\006\001\005\005\007\001\001\004\051"
-"\060\047\060\045\006\010\053\006\001\005\005\007\060\001\206\031"
-"\150\164\164\160\072\057\057\157\143\163\160\056\165\163\145\162"
-"\164\162\165\163\164\056\143\157\155\060\015\006\011\052\206\110"
-"\206\367\015\001\001\005\005\000\003\202\001\001\000\204\256\055"
-"\150\070\021\154\203\121\142\300\221\302\230\274\306\073\372\245"
-"\305\275\073\011\346\156\140\157\060\003\206\042\032\262\213\363"
-"\306\316\036\273\033\171\340\026\024\115\322\232\005\113\377\217"
-"\354\360\050\051\352\052\004\035\075\257\021\022\325\111\230\120"
-"\102\237\141\146\072\266\100\231\004\014\153\020\062\351\367\317"
-"\206\130\117\055\315\323\254\176\350\133\152\203\174\015\240\234"
-"\134\120\066\165\015\155\176\102\267\337\246\334\220\134\157\043"
-"\116\227\035\363\042\165\277\003\065\346\135\177\307\371\233\054"
-"\207\366\216\326\045\226\131\235\317\352\020\036\357\156\352\132"
-"\233\167\030\064\314\201\167\257\232\207\302\012\345\345\236\023"
-"\225\123\275\275\111\032\245\166\022\366\334\362\221\267\351\032"
-"\341\274\115\075\225\161\175\370\215\174\076\003\117\123\355\376"
-"\122\375\312\137\223\341\032\001\033\002\267\163\116\272\146\351"
-"\170\213\120\376\021\313\321\147\320\042\117\167\352\315\024\025"
-"\100\256\146\135\350\056\177\036\210\157\125\171\326\271\176\343"
-"\265\375\221\240\300\362\046\207\113\057\235\365\240"
-, (PRUint32)1181 }
-};
-static const NSSItem nss_builtins_items_396 [] = {
-  { (void *)&cko_nss_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 *)"USERTrust-temporary-intermediate-after-1024bit-removal", (PRUint32)55 },
-  { (void *)"\174\057\221\342\273\226\150\251\306\366\275\020\031\054\153\122"
-"\132\033\272\110"
-, (PRUint32)20 },
-  { (void *)"\131\153\146\214\004\251\341\013\017\356\105\245\220\044\037\016"
-, (PRUint32)16 },
-  { (void *)"\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061"
-"\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165"
-"\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035"
-"\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141"
-"\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060"
-"\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164"
-"\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157"
-"\164"
-, (PRUint32)113 },
-  { (void *)"\002\020\135\040\141\216\214\016\271\064\100\223\271\261\330\143"
-"\225\266"
-, (PRUint32)18 },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
-  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
-};
-static const NSSItem nss_builtins_items_397 [] = {
+static const NSSItem nss_builtins_items_369 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26614,7 +24797,7 @@
 "\145\110\041\012\057\327\334\176\240\314\145\176\171"
 , (PRUint32)1341 }
 };
-static const NSSItem nss_builtins_items_398 [] = {
+static const NSSItem nss_builtins_items_370 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26647,7 +24830,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_399 [] = {
+static const NSSItem nss_builtins_items_371 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26761,7 +24944,7 @@
 "\367\200\173\041\147\047\060\131"
 , (PRUint32)1400 }
 };
-static const NSSItem nss_builtins_items_400 [] = {
+static const NSSItem nss_builtins_items_372 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26786,7 +24969,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_401 [] = {
+static const NSSItem nss_builtins_items_373 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26900,7 +25083,7 @@
 "\356\354\327\056"
 , (PRUint32)1396 }
 };
-static const NSSItem nss_builtins_items_402 [] = {
+static const NSSItem nss_builtins_items_374 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -26925,7 +25108,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_403 [] = {
+static const NSSItem nss_builtins_items_375 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27037,7 +25220,7 @@
 "\272\204\156\207"
 , (PRUint32)1380 }
 };
-static const NSSItem nss_builtins_items_404 [] = {
+static const NSSItem nss_builtins_items_376 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27062,7 +25245,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_405 [] = {
+static const NSSItem nss_builtins_items_377 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27174,7 +25357,7 @@
 "\267\254\266\255\267\312\076\001\357\234"
 , (PRUint32)1386 }
 };
-static const NSSItem nss_builtins_items_406 [] = {
+static const NSSItem nss_builtins_items_378 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27199,7 +25382,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_407 [] = {
+static const NSSItem nss_builtins_items_379 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27294,7 +25477,7 @@
 "\073\303\035\374\377\262\117\250\342\366\060\036"
 , (PRUint32)988 }
 };
-static const NSSItem nss_builtins_items_408 [] = {
+static const NSSItem nss_builtins_items_380 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27323,7 +25506,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_409 [] = {
+static const NSSItem nss_builtins_items_381 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27432,7 +25615,7 @@
 "\105\366"
 , (PRUint32)1090 }
 };
-static const NSSItem nss_builtins_items_410 [] = {
+static const NSSItem nss_builtins_items_382 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27464,7 +25647,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_411 [] = {
+static const NSSItem nss_builtins_items_383 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27552,7 +25735,7 @@
 "\231\267\046\101\133\045\140\256\320\110\032\356\006"
 , (PRUint32)765 }
 };
-static const NSSItem nss_builtins_items_412 [] = {
+static const NSSItem nss_builtins_items_384 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27584,7 +25767,7 @@
   { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_413 [] = {
+static const NSSItem nss_builtins_items_385 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27700,7 +25883,7 @@
 "\056"
 , (PRUint32)1425 }
 };
-static const NSSItem nss_builtins_items_414 [] = {
+static const NSSItem nss_builtins_items_386 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27725,7 +25908,7 @@
   { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
-static const NSSItem nss_builtins_items_415 [] = {
+static const NSSItem nss_builtins_items_387 [] = {
   { (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27821,7 +26004,7 @@
 "\102\013\102\222\263\344"
 , (PRUint32)1174 }
 };
-static const NSSItem nss_builtins_items_416 [] = {
+static const NSSItem nss_builtins_items_388 [] = {
   { (void *)&cko_nss_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
   { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
@@ -27844,6 +26027,727 @@
   { (void *)&ckt_nss_not_trusted, (PRUint32)sizeof(CK_TRUST) },
   { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
 };
+static const NSSItem nss_builtins_items_389 [] = {
+  { (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 *)"TÜRKTRUST Elektronik Sertifika Hizmet SaÄŸlayıcısı H5", (PRUint32)58 },
+  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+  { (void *)"\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
+"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
+"\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122"
+"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
+"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
+"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
+"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
+"\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113"
+"\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153"
+"\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145"
+"\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304"
+"\261\040\110\065"
+, (PRUint32)180 },
+  { (void *)"0", (PRUint32)2 },
+  { (void *)"\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
+"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
+"\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122"
+"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
+"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
+"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
+"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
+"\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113"
+"\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153"
+"\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145"
+"\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304"
+"\261\040\110\065"
+, (PRUint32)180 },
+  { (void *)"\002\007\000\216\027\376\044\040\201"
+, (PRUint32)9 },
+  { (void *)"\060\202\004\047\060\202\003\017\240\003\002\001\002\002\007\000"
+"\216\027\376\044\040\201\060\015\006\011\052\206\110\206\367\015"
+"\001\001\013\005\000\060\201\261\061\013\060\011\006\003\125\004"
+"\006\023\002\124\122\061\017\060\015\006\003\125\004\007\014\006"
+"\101\156\153\141\162\141\061\115\060\113\006\003\125\004\012\014"
+"\104\124\303\234\122\113\124\122\125\123\124\040\102\151\154\147"
+"\151\040\304\260\154\145\164\151\305\237\151\155\040\166\145\040"
+"\102\151\154\151\305\237\151\155\040\107\303\274\166\145\156\154"
+"\151\304\237\151\040\110\151\172\155\145\164\154\145\162\151\040"
+"\101\056\305\236\056\061\102\060\100\006\003\125\004\003\014\071"
+"\124\303\234\122\113\124\122\125\123\124\040\105\154\145\153\164"
+"\162\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040"
+"\110\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261"
+"\143\304\261\163\304\261\040\110\065\060\036\027\015\061\063\060"
+"\064\063\060\060\070\060\067\060\061\132\027\015\062\063\060\064"
+"\062\070\060\070\060\067\060\061\132\060\201\261\061\013\060\011"
+"\006\003\125\004\006\023\002\124\122\061\017\060\015\006\003\125"
+"\004\007\014\006\101\156\153\141\162\141\061\115\060\113\006\003"
+"\125\004\012\014\104\124\303\234\122\113\124\122\125\123\124\040"
+"\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155"
+"\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274"
+"\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154"
+"\145\162\151\040\101\056\305\236\056\061\102\060\100\006\003\125"
+"\004\003\014\071\124\303\234\122\113\124\122\125\123\124\040\105"
+"\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151\146"
+"\151\153\141\040\110\151\172\155\145\164\040\123\141\304\237\154"
+"\141\171\304\261\143\304\261\163\304\261\040\110\065\060\202\001"
+"\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000"
+"\003\202\001\017\000\060\202\001\012\002\202\001\001\000\244\045"
+"\031\341\145\236\353\110\041\120\112\010\345\021\360\132\272\046"
+"\377\203\131\316\104\052\057\376\341\316\140\003\374\215\003\245"
+"\355\377\153\250\272\314\064\006\237\131\065\366\354\054\273\235"
+"\373\215\122\151\343\234\047\020\123\363\244\002\305\247\371\021"
+"\032\151\165\156\303\035\213\321\230\215\223\207\247\161\227\015"
+"\041\307\231\371\122\323\054\143\135\125\274\350\037\001\110\271"
+"\140\376\102\112\366\310\200\256\315\146\172\236\105\212\150\167"
+"\342\110\150\237\242\332\361\341\301\020\237\353\074\051\201\247"
+"\341\062\010\324\240\005\261\214\373\215\226\000\016\076\045\337"
+"\123\206\042\073\374\364\275\363\011\176\167\354\206\353\017\063"
+"\345\103\117\364\124\165\155\051\231\056\146\132\103\337\313\134"
+"\312\310\345\070\361\176\073\065\235\017\364\305\132\241\314\363"
+"\040\200\044\323\127\354\025\272\165\045\233\350\144\113\263\064"
+"\204\357\004\270\366\311\154\252\002\076\266\125\342\062\067\137"
+"\374\146\227\137\315\326\236\307\040\277\115\306\254\077\165\137"
+"\034\355\062\234\174\151\000\151\221\343\043\030\123\351\002\003"
+"\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026"
+"\004\024\126\231\007\036\323\254\014\151\144\264\014\120\107\336"
+"\103\054\276\040\300\373\060\016\006\003\125\035\017\001\001\377"
+"\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377"
+"\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367"
+"\015\001\001\013\005\000\003\202\001\001\000\236\105\166\173\027"
+"\110\062\362\070\213\051\275\356\226\112\116\201\030\261\121\107"
+"\040\315\320\144\261\016\311\331\001\331\011\316\310\231\334\150"
+"\045\023\324\134\362\243\350\004\376\162\011\307\013\252\035\045"
+"\125\176\226\232\127\267\272\305\021\172\031\346\247\176\075\205"
+"\016\365\371\056\051\057\347\371\154\130\026\127\120\045\366\076"
+"\056\076\252\355\167\161\252\252\231\226\106\012\256\216\354\052"
+"\121\026\260\136\315\352\147\004\034\130\060\365\140\212\275\246"
+"\275\115\345\226\264\374\102\211\001\153\366\160\310\120\071\014"
+"\055\325\146\331\310\322\263\062\267\033\031\155\313\063\371\337"
+"\245\346\025\204\067\360\302\362\145\226\222\220\167\360\255\364"
+"\220\351\021\170\327\223\211\300\075\013\272\051\364\350\231\235"
+"\162\216\355\235\057\356\222\175\241\361\377\135\272\063\140\205"
+"\142\376\007\002\241\204\126\106\276\226\012\232\023\327\041\114"
+"\267\174\007\237\116\116\077\221\164\373\047\235\021\314\335\346"
+"\261\312\161\115\023\027\071\046\305\051\041\053\223\051\152\226"
+"\372\253\101\341\113\266\065\013\300\233\025"
+, (PRUint32)1067 }
+};
+static const NSSItem nss_builtins_items_390 [] = {
+  { (void *)&cko_nss_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 *)"TÜRKTRUST Elektronik Sertifika Hizmet SaÄŸlayıcısı H5", (PRUint32)58 },
+  { (void *)"\304\030\366\115\106\321\337\000\075\047\060\023\162\103\251\022"
+"\021\306\165\373"
+, (PRUint32)20 },
+  { (void *)"\332\160\216\360\042\337\223\046\366\137\237\323\025\006\122\116"
+, (PRUint32)16 },
+  { (void *)"\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
+"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
+"\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122"
+"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
+"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
+"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
+"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
+"\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113"
+"\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153"
+"\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145"
+"\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304"
+"\261\040\110\065"
+, (PRUint32)180 },
+  { (void *)"\002\007\000\216\027\376\044\040\201"
+, (PRUint32)9 },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+};
+static const NSSItem nss_builtins_items_391 [] = {
+  { (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 *)"TÜRKTRUST Elektronik Sertifika Hizmet SaÄŸlayıcısı H6", (PRUint32)58 },
+  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+  { (void *)"\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
+"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
+"\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122"
+"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
+"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
+"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
+"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
+"\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113"
+"\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153"
+"\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145"
+"\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304"
+"\261\040\110\066"
+, (PRUint32)180 },
+  { (void *)"0", (PRUint32)2 },
+  { (void *)"\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
+"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
+"\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122"
+"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
+"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
+"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
+"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
+"\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113"
+"\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153"
+"\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145"
+"\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304"
+"\261\040\110\066"
+, (PRUint32)180 },
+  { (void *)"\002\006\175\241\362\145\354\212"
+, (PRUint32)8 },
+  { (void *)"\060\202\004\046\060\202\003\016\240\003\002\001\002\002\006\175"
+"\241\362\145\354\212\060\015\006\011\052\206\110\206\367\015\001"
+"\001\013\005\000\060\201\261\061\013\060\011\006\003\125\004\006"
+"\023\002\124\122\061\017\060\015\006\003\125\004\007\014\006\101"
+"\156\153\141\162\141\061\115\060\113\006\003\125\004\012\014\104"
+"\124\303\234\122\113\124\122\125\123\124\040\102\151\154\147\151"
+"\040\304\260\154\145\164\151\305\237\151\155\040\166\145\040\102"
+"\151\154\151\305\237\151\155\040\107\303\274\166\145\156\154\151"
+"\304\237\151\040\110\151\172\155\145\164\154\145\162\151\040\101"
+"\056\305\236\056\061\102\060\100\006\003\125\004\003\014\071\124"
+"\303\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162"
+"\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110"
+"\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143"
+"\304\261\163\304\261\040\110\066\060\036\027\015\061\063\061\062"
+"\061\070\060\071\060\064\061\060\132\027\015\062\063\061\062\061"
+"\066\060\071\060\064\061\060\132\060\201\261\061\013\060\011\006"
+"\003\125\004\006\023\002\124\122\061\017\060\015\006\003\125\004"
+"\007\014\006\101\156\153\141\162\141\061\115\060\113\006\003\125"
+"\004\012\014\104\124\303\234\122\113\124\122\125\123\124\040\102"
+"\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155\040"
+"\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274\166"
+"\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154\145"
+"\162\151\040\101\056\305\236\056\061\102\060\100\006\003\125\004"
+"\003\014\071\124\303\234\122\113\124\122\125\123\124\040\105\154"
+"\145\153\164\162\157\156\151\153\040\123\145\162\164\151\146\151"
+"\153\141\040\110\151\172\155\145\164\040\123\141\304\237\154\141"
+"\171\304\261\143\304\261\163\304\261\040\110\066\060\202\001\042"
+"\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003"
+"\202\001\017\000\060\202\001\012\002\202\001\001\000\235\260\150"
+"\326\350\275\024\226\243\000\012\232\361\364\307\314\221\115\161"
+"\170\167\271\367\041\046\025\163\121\026\224\011\107\005\342\063"
+"\365\150\232\065\377\334\113\057\062\307\260\355\342\202\345\157"
+"\332\332\352\254\306\006\317\045\015\101\201\366\301\070\042\275"
+"\371\261\245\246\263\001\274\077\120\027\053\366\351\146\125\324"
+"\063\263\134\370\103\040\170\223\125\026\160\031\062\346\211\327"
+"\144\353\275\110\120\375\366\320\101\003\302\164\267\375\366\200"
+"\317\133\305\253\244\326\225\022\233\347\227\023\062\003\351\324"
+"\253\103\133\026\355\063\042\144\051\266\322\223\255\057\154\330"
+"\075\266\366\035\016\064\356\322\175\251\125\017\040\364\375\051"
+"\273\221\133\034\175\306\102\070\155\102\050\155\324\001\373\315"
+"\210\227\111\176\270\363\203\370\265\230\057\263\047\013\110\136"
+"\126\347\116\243\063\263\104\326\245\362\030\224\355\034\036\251"
+"\225\134\142\112\370\015\147\121\251\257\041\325\370\062\235\171"
+"\272\032\137\345\004\125\115\023\106\377\362\317\164\307\032\143"
+"\155\303\037\027\022\303\036\020\076\140\010\263\061\002\003\001"
+"\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026\004"
+"\024\335\125\027\023\366\254\350\110\041\312\357\265\257\321\000"
+"\062\355\236\214\265\060\016\006\003\125\035\017\001\001\377\004"
+"\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004"
+"\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367\015"
+"\001\001\013\005\000\003\202\001\001\000\157\130\015\227\103\252"
+"\026\124\076\277\251\337\222\105\077\205\013\273\126\323\014\122"
+"\314\310\277\166\147\136\346\252\263\247\357\271\254\264\020\024"
+"\015\164\176\075\155\255\321\175\320\232\251\245\312\030\073\002"
+"\100\056\052\234\120\024\213\376\127\176\127\134\021\011\113\066"
+"\105\122\367\075\254\024\375\104\337\213\227\043\324\303\301\356"
+"\324\123\225\376\054\112\376\015\160\252\273\213\057\055\313\062"
+"\243\202\362\124\337\330\362\335\327\110\162\356\112\243\051\226"
+"\303\104\316\156\265\222\207\166\244\273\364\222\154\316\054\024"
+"\011\146\216\215\255\026\265\307\033\011\141\073\343\040\242\003"
+"\200\216\255\176\121\000\116\307\226\206\373\103\230\167\175\050"
+"\307\217\330\052\156\347\204\157\227\101\051\000\026\136\115\342"
+"\023\352\131\300\143\147\072\104\373\230\374\004\323\060\162\246"
+"\366\207\011\127\255\166\246\035\143\232\375\327\145\310\170\203"
+"\053\165\073\245\133\270\015\135\177\276\043\256\126\125\224\130"
+"\357\037\201\214\052\262\315\346\233\143\236\030\274\345\153\006"
+"\264\013\230\113\050\136\257\210\130\313"
+, (PRUint32)1066 }
+};
+static const NSSItem nss_builtins_items_392 [] = {
+  { (void *)&cko_nss_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 *)"TÜRKTRUST Elektronik Sertifika Hizmet SaÄŸlayıcısı H6", (PRUint32)58 },
+  { (void *)"\212\134\214\356\245\003\346\005\126\272\330\033\324\366\311\260"
+"\355\345\057\340"
+, (PRUint32)20 },
+  { (void *)"\370\305\356\052\153\276\225\215\010\367\045\112\352\161\076\106"
+, (PRUint32)16 },
+  { (void *)"\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122"
+"\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162"
+"\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122"
+"\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154"
+"\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305"
+"\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040"
+"\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056"
+"\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113"
+"\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153"
+"\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145"
+"\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304"
+"\261\040\110\066"
+, (PRUint32)180 },
+  { (void *)"\002\006\175\241\362\145\354\212"
+, (PRUint32)8 },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+};
+static const NSSItem nss_builtins_items_393 [] = {
+  { (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 *)"Certinomis - Root CA", (PRUint32)21 },
+  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+  { (void *)"\060\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061"
+"\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156"
+"\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060"
+"\060\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060"
+"\033\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155"
+"\151\163\040\055\040\122\157\157\164\040\103\101"
+, (PRUint32)92 },
+  { (void *)"0", (PRUint32)2 },
+  { (void *)"\060\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061"
+"\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156"
+"\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060"
+"\060\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060"
+"\033\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155"
+"\151\163\040\055\040\122\157\157\164\040\103\101"
+, (PRUint32)92 },
+  { (void *)"\002\001\001"
+, (PRUint32)3 },
+  { (void *)"\060\202\005\222\060\202\003\172\240\003\002\001\002\002\001\001"
+"\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060"
+"\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061\023"
+"\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156\157"
+"\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060\060"
+"\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060\033"
+"\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155\151"
+"\163\040\055\040\122\157\157\164\040\103\101\060\036\027\015\061"
+"\063\061\060\062\061\060\071\061\067\061\070\132\027\015\063\063"
+"\061\060\062\061\060\071\061\067\061\070\132\060\132\061\013\060"
+"\011\006\003\125\004\006\023\002\106\122\061\023\060\021\006\003"
+"\125\004\012\023\012\103\145\162\164\151\156\157\155\151\163\061"
+"\027\060\025\006\003\125\004\013\023\016\060\060\060\062\040\064"
+"\063\063\071\071\070\071\060\063\061\035\060\033\006\003\125\004"
+"\003\023\024\103\145\162\164\151\156\157\155\151\163\040\055\040"
+"\122\157\157\164\040\103\101\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\324\314\011\012\054\077\222\366"
+"\177\024\236\013\234\232\152\035\100\060\144\375\252\337\016\036"
+"\006\133\237\120\205\352\315\215\253\103\147\336\260\372\176\200"
+"\226\236\204\170\222\110\326\343\071\356\316\344\131\130\227\345"
+"\056\047\230\352\223\250\167\233\112\360\357\164\200\055\353\060"
+"\037\265\331\307\200\234\142\047\221\210\360\112\211\335\334\210"
+"\346\024\371\325\003\057\377\225\333\275\237\354\054\372\024\025"
+"\131\225\012\306\107\174\151\030\271\247\003\371\312\166\251\317"
+"\307\157\264\136\005\376\356\301\122\262\165\062\207\354\355\051"
+"\146\073\363\112\026\202\366\326\232\333\162\230\351\336\360\305"
+"\114\245\253\265\352\001\342\214\056\144\177\144\157\375\243\045"
+"\223\213\310\242\016\111\215\064\360\037\354\130\105\056\064\252"
+"\204\120\275\347\262\112\023\270\260\017\256\070\135\260\251\033"
+"\346\163\311\132\241\331\146\100\252\251\115\246\064\002\255\204"
+"\176\262\043\301\373\052\306\147\364\064\266\260\225\152\063\117"
+"\161\104\265\255\300\171\063\210\340\277\355\243\240\024\264\234"
+"\011\260\012\343\140\276\370\370\146\210\315\133\361\167\005\340"
+"\265\163\156\301\175\106\056\216\113\047\246\315\065\012\375\345"
+"\115\175\252\052\243\051\307\132\150\004\350\345\326\223\244\142"
+"\302\305\346\364\117\306\371\237\032\215\202\111\031\212\312\131"
+"\103\072\350\015\062\301\364\114\023\003\157\156\246\077\221\163"
+"\313\312\163\157\022\040\213\356\300\202\170\336\113\056\302\111"
+"\303\035\355\026\366\044\364\047\033\134\127\061\334\125\356\250"
+"\036\157\154\254\342\105\314\127\127\212\165\127\031\340\265\130"
+"\231\111\066\061\074\063\001\155\026\112\315\270\052\203\204\206"
+"\233\371\140\322\037\155\221\003\323\140\246\325\075\232\335\167"
+"\220\075\065\244\237\017\136\365\122\104\151\271\300\272\334\317"
+"\175\337\174\331\304\254\206\042\062\274\173\153\221\357\172\370"
+"\027\150\260\342\123\125\140\055\257\076\302\203\330\331\011\053"
+"\360\300\144\333\207\213\221\314\221\353\004\375\166\264\225\232"
+"\346\024\006\033\325\064\035\276\330\377\164\034\123\205\231\340"
+"\131\122\112\141\355\210\236\153\111\211\106\176\040\132\331\347"
+"\112\345\152\356\322\145\021\103\002\003\001\000\001\243\143\060"
+"\141\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001"
+"\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001"
+"\001\377\060\035\006\003\125\035\016\004\026\004\024\357\221\114"
+"\365\245\303\060\350\057\010\352\323\161\042\244\222\150\170\164"
+"\331\060\037\006\003\125\035\043\004\030\060\026\200\024\357\221"
+"\114\365\245\303\060\350\057\010\352\323\161\042\244\222\150\170"
+"\164\331\060\015\006\011\052\206\110\206\367\015\001\001\013\005"
+"\000\003\202\002\001\000\176\075\124\332\042\135\032\130\076\073"
+"\124\047\272\272\314\310\343\032\152\352\076\371\022\353\126\137"
+"\075\120\316\340\352\110\046\046\317\171\126\176\221\034\231\077"
+"\320\241\221\034\054\017\117\230\225\131\123\275\320\042\330\210"
+"\135\234\067\374\373\144\301\170\214\213\232\140\011\352\325\372"
+"\041\137\320\164\145\347\120\305\277\056\271\013\013\255\265\260"
+"\027\246\022\214\324\142\170\352\126\152\354\012\322\100\303\074"
+"\005\060\076\115\224\267\237\112\003\323\175\047\113\266\376\104"
+"\316\372\031\063\032\155\244\102\321\335\314\310\310\327\026\122"
+"\203\117\065\224\263\022\125\175\345\342\102\353\344\234\223\011"
+"\300\114\133\007\253\307\155\021\240\120\027\224\043\250\265\012"
+"\222\017\262\172\301\140\054\070\314\032\246\133\377\362\014\343"
+"\252\037\034\334\270\240\223\047\336\143\343\177\041\237\072\345"
+"\236\372\340\023\152\165\353\226\134\142\221\224\216\147\123\266"
+"\211\370\022\011\313\157\122\133\003\162\206\120\225\010\324\215"
+"\207\206\025\037\225\044\330\244\157\232\316\244\235\233\155\322"
+"\262\166\006\206\306\126\010\305\353\011\332\066\302\033\133\101"
+"\276\141\052\343\160\346\270\246\370\266\132\304\275\041\367\377"
+"\252\137\241\154\166\071\146\326\352\114\125\341\000\063\233\023"
+"\230\143\311\157\320\001\040\011\067\122\347\014\117\076\315\274"
+"\365\137\226\047\247\040\002\225\340\056\350\007\101\005\037\025"
+"\156\326\260\344\031\340\017\002\223\000\047\162\305\213\321\124"
+"\037\135\112\303\100\227\176\125\246\174\301\063\004\024\001\035"
+"\111\040\151\013\031\223\235\156\130\042\367\100\014\106\014\043"
+"\143\363\071\322\177\166\121\247\364\310\241\361\014\166\042\043"
+"\106\122\051\055\342\243\101\007\126\151\230\322\005\011\274\151"
+"\307\132\141\315\217\201\140\025\115\200\335\220\342\175\304\120"
+"\362\214\073\156\112\307\306\346\200\053\074\201\274\021\200\026"
+"\020\047\327\360\315\077\171\314\163\052\303\176\123\221\326\156"
+"\370\365\363\307\320\121\115\216\113\245\133\346\031\027\073\326"
+"\201\011\334\042\334\356\216\271\304\217\123\341\147\273\063\270"
+"\210\025\106\317\355\151\065\377\165\015\106\363\316\161\341\305"
+"\153\206\102\006\271\101"
+, (PRUint32)1430 }
+};
+static const NSSItem nss_builtins_items_394 [] = {
+  { (void *)&cko_nss_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 *)"Certinomis - Root CA", (PRUint32)21 },
+  { (void *)"\235\160\273\001\245\244\240\030\021\056\367\034\001\271\062\305"
+"\064\347\210\250"
+, (PRUint32)20 },
+  { (void *)"\024\012\375\215\250\050\265\070\151\333\126\176\141\042\003\077"
+, (PRUint32)16 },
+  { (void *)"\060\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061"
+"\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156"
+"\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060"
+"\060\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060"
+"\033\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155"
+"\151\163\040\055\040\122\157\157\164\040\103\101"
+, (PRUint32)92 },
+  { (void *)"\002\001\001"
+, (PRUint32)3 },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_must_verify_trust, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+};
+static const NSSItem nss_builtins_items_395 [] = {
+  { (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 *)"OISTE WISeKey Global Root GB CA", (PRUint32)32 },
+  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+  { (void *)"\060\155\061\013\060\011\006\003\125\004\006\023\002\103\110\061"
+"\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145"
+"\171\061\042\060\040\006\003\125\004\013\023\031\117\111\123\124"
+"\105\040\106\157\165\156\144\141\164\151\157\156\040\105\156\144"
+"\157\162\163\145\144\061\050\060\046\006\003\125\004\003\023\037"
+"\117\111\123\124\105\040\127\111\123\145\113\145\171\040\107\154"
+"\157\142\141\154\040\122\157\157\164\040\107\102\040\103\101"
+, (PRUint32)111 },
+  { (void *)"0", (PRUint32)2 },
+  { (void *)"\060\155\061\013\060\011\006\003\125\004\006\023\002\103\110\061"
+"\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145"
+"\171\061\042\060\040\006\003\125\004\013\023\031\117\111\123\124"
+"\105\040\106\157\165\156\144\141\164\151\157\156\040\105\156\144"
+"\157\162\163\145\144\061\050\060\046\006\003\125\004\003\023\037"
+"\117\111\123\124\105\040\127\111\123\145\113\145\171\040\107\154"
+"\157\142\141\154\040\122\157\157\164\040\107\102\040\103\101"
+, (PRUint32)111 },
+  { (void *)"\002\020\166\261\040\122\164\360\205\207\106\263\370\043\032\366"
+"\302\300"
+, (PRUint32)18 },
+  { (void *)"\060\202\003\265\060\202\002\235\240\003\002\001\002\002\020\166"
+"\261\040\122\164\360\205\207\106\263\370\043\032\366\302\300\060"
+"\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\155"
+"\061\013\060\011\006\003\125\004\006\023\002\103\110\061\020\060"
+"\016\006\003\125\004\012\023\007\127\111\123\145\113\145\171\061"
+"\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040"
+"\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162"
+"\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111"
+"\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142"
+"\141\154\040\122\157\157\164\040\107\102\040\103\101\060\036\027"
+"\015\061\064\061\062\060\061\061\065\060\060\063\062\132\027\015"
+"\063\071\061\062\060\061\061\065\061\060\063\061\132\060\155\061"
+"\013\060\011\006\003\125\004\006\023\002\103\110\061\020\060\016"
+"\006\003\125\004\012\023\007\127\111\123\145\113\145\171\061\042"
+"\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040\106"
+"\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162\163"
+"\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111\123"
+"\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142\141"
+"\154\040\122\157\157\164\040\107\102\040\103\101\060\202\001\042"
+"\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003"
+"\202\001\017\000\060\202\001\012\002\202\001\001\000\330\027\267"
+"\034\112\044\052\326\227\261\312\342\036\373\175\070\357\230\365"
+"\262\071\230\116\047\270\021\135\173\322\045\224\210\202\025\046"
+"\152\033\061\273\250\133\041\041\053\330\017\116\237\132\361\261"
+"\132\344\171\326\062\043\053\341\123\314\231\105\134\173\117\255"
+"\274\277\207\112\013\113\227\132\250\366\110\354\175\173\015\315"
+"\041\006\337\236\025\375\101\212\110\267\040\364\241\172\033\127"
+"\324\135\120\377\272\147\330\043\231\037\310\077\343\336\377\157"
+"\133\167\261\153\156\270\311\144\367\341\312\101\106\016\051\161"
+"\320\271\043\374\311\201\137\116\367\157\337\277\204\255\163\144"
+"\273\267\102\216\151\366\324\166\035\176\235\247\270\127\212\121"
+"\147\162\327\324\250\270\225\124\100\163\003\366\352\364\353\376"
+"\050\102\167\077\235\043\033\262\266\075\200\024\007\114\056\117"
+"\367\325\012\026\015\275\146\103\067\176\043\103\171\303\100\206"
+"\365\114\051\332\216\232\255\015\245\004\207\210\036\205\343\351"
+"\123\325\233\310\213\003\143\170\353\340\031\112\156\273\057\153"
+"\063\144\130\223\255\151\277\217\033\357\202\110\307\002\003\001"
+"\000\001\243\121\060\117\060\013\006\003\125\035\017\004\004\003"
+"\002\001\206\060\017\006\003\125\035\023\001\001\377\004\005\060"
+"\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\065"
+"\017\310\066\143\136\342\243\354\371\073\146\025\316\121\122\343"
+"\221\232\075\060\020\006\011\053\006\001\004\001\202\067\025\001"
+"\004\003\002\001\000\060\015\006\011\052\206\110\206\367\015\001"
+"\001\013\005\000\003\202\001\001\000\100\114\373\207\262\231\201"
+"\220\176\235\305\260\260\046\315\210\173\053\062\215\156\270\041"
+"\161\130\227\175\256\067\024\257\076\347\367\232\342\175\366\161"
+"\230\231\004\252\103\164\170\243\343\111\141\076\163\214\115\224"
+"\340\371\161\304\266\026\016\123\170\037\326\242\207\057\002\071"
+"\201\051\074\257\025\230\041\060\376\050\220\000\214\321\341\313"
+"\372\136\310\375\370\020\106\073\242\170\102\221\027\164\125\012"
+"\336\120\147\115\146\321\247\377\375\331\300\265\250\243\212\316"
+"\146\365\017\103\315\247\053\127\173\143\106\152\252\056\122\330"
+"\364\355\341\155\255\051\220\170\110\272\341\043\252\243\211\354"
+"\265\253\226\300\264\113\242\035\227\236\172\362\156\100\161\337"
+"\150\361\145\115\316\174\005\337\123\145\251\245\360\261\227\004"
+"\160\025\106\003\230\324\322\277\124\264\240\130\175\122\157\332"
+"\126\046\142\324\330\333\211\061\157\034\360\042\302\323\142\034"
+"\065\315\114\151\025\124\032\220\230\336\353\036\137\312\167\307"
+"\313\216\075\103\151\234\232\130\320\044\073\337\033\100\226\176"
+"\065\255\201\307\116\161\272\210\023"
+, (PRUint32)953 }
+};
+static const NSSItem nss_builtins_items_396 [] = {
+  { (void *)&cko_nss_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 *)"OISTE WISeKey Global Root GB CA", (PRUint32)32 },
+  { (void *)"\017\371\100\166\030\323\327\152\113\230\360\250\065\236\014\375"
+"\047\254\314\355"
+, (PRUint32)20 },
+  { (void *)"\244\353\271\141\050\056\267\057\230\260\065\046\220\231\121\035"
+, (PRUint32)16 },
+  { (void *)"\060\155\061\013\060\011\006\003\125\004\006\023\002\103\110\061"
+"\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145"
+"\171\061\042\060\040\006\003\125\004\013\023\031\117\111\123\124"
+"\105\040\106\157\165\156\144\141\164\151\157\156\040\105\156\144"
+"\157\162\163\145\144\061\050\060\046\006\003\125\004\003\023\037"
+"\117\111\123\124\105\040\127\111\123\145\113\145\171\040\107\154"
+"\157\142\141\154\040\122\157\157\164\040\107\102\040\103\101"
+, (PRUint32)111 },
+  { (void *)"\002\020\166\261\040\122\164\360\205\207\106\263\370\043\032\366"
+"\302\300"
+, (PRUint32)18 },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+};
+static const NSSItem nss_builtins_items_397 [] = {
+  { (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 *)"Certification Authority of WoSign G2", (PRUint32)37 },
+  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+  { (void *)"\060\130\061\013\060\011\006\003\125\004\006\023\002\103\116\061"
+"\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156"
+"\040\103\101\040\114\151\155\151\164\145\144\061\055\060\053\006"
+"\003\125\004\003\023\044\103\145\162\164\151\146\151\143\141\164"
+"\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146"
+"\040\127\157\123\151\147\156\040\107\062"
+, (PRUint32)90 },
+  { (void *)"0", (PRUint32)2 },
+  { (void *)"\060\130\061\013\060\011\006\003\125\004\006\023\002\103\116\061"
+"\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156"
+"\040\103\101\040\114\151\155\151\164\145\144\061\055\060\053\006"
+"\003\125\004\003\023\044\103\145\162\164\151\146\151\143\141\164"
+"\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146"
+"\040\127\157\123\151\147\156\040\107\062"
+, (PRUint32)90 },
+  { (void *)"\002\020\153\045\332\212\210\235\174\274\017\005\263\261\172\141"
+"\105\104"
+, (PRUint32)18 },
+  { (void *)"\060\202\003\174\060\202\002\144\240\003\002\001\002\002\020\153"
+"\045\332\212\210\235\174\274\017\005\263\261\172\141\105\104\060"
+"\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\130"
+"\061\013\060\011\006\003\125\004\006\023\002\103\116\061\032\060"
+"\030\006\003\125\004\012\023\021\127\157\123\151\147\156\040\103"
+"\101\040\114\151\155\151\164\145\144\061\055\060\053\006\003\125"
+"\004\003\023\044\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\040\157\146\040\127"
+"\157\123\151\147\156\040\107\062\060\036\027\015\061\064\061\061"
+"\060\070\060\060\065\070\065\070\132\027\015\064\064\061\061\060"
+"\070\060\060\065\070\065\070\132\060\130\061\013\060\011\006\003"
+"\125\004\006\023\002\103\116\061\032\060\030\006\003\125\004\012"
+"\023\021\127\157\123\151\147\156\040\103\101\040\114\151\155\151"
+"\164\145\144\061\055\060\053\006\003\125\004\003\023\044\103\145"
+"\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150"
+"\157\162\151\164\171\040\157\146\040\127\157\123\151\147\156\040"
+"\107\062\060\202\001\042\060\015\006\011\052\206\110\206\367\015"
+"\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202"
+"\001\001\000\276\305\304\240\042\200\111\117\277\331\207\021\306"
+"\123\341\273\017\275\140\177\257\366\202\016\037\334\260\216\075"
+"\227\340\120\074\217\072\357\146\073\105\007\233\040\370\343\327"
+"\045\206\065\220\026\242\135\157\060\031\010\207\013\177\006\262"
+"\235\142\217\336\257\222\245\140\324\053\200\232\122\077\365\232"
+"\203\351\064\132\313\331\325\142\134\346\016\340\337\006\230\016"
+"\200\174\312\264\035\023\210\153\016\250\044\167\003\320\356\133"
+"\363\312\151\221\065\071\126\305\155\343\367\075\117\136\223\070"
+"\044\312\030\351\044\313\222\003\335\314\034\075\011\160\344\040"
+"\344\361\256\254\273\163\151\243\143\072\017\105\017\241\112\232"
+"\302\321\143\254\313\020\370\075\346\116\050\267\353\304\225\261"
+"\254\375\136\253\372\101\313\135\235\113\334\364\174\166\357\147"
+"\177\000\172\215\322\240\032\134\115\042\341\265\332\335\166\263"
+"\324\166\337\136\270\213\230\310\024\124\314\153\027\222\267\340"
+"\112\277\111\224\141\013\070\220\217\135\044\154\045\173\073\171"
+"\331\342\176\235\255\237\230\241\006\374\170\024\140\127\370\356"
+"\200\167\261\002\003\001\000\001\243\102\060\100\060\016\006\003"
+"\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003"
+"\125\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006"
+"\003\125\035\016\004\026\004\024\372\140\251\353\145\305\335\026"
+"\024\010\116\014\017\215\233\340\367\144\257\147\060\015\006\011"
+"\052\206\110\206\367\015\001\001\013\005\000\003\202\001\001\000"
+"\127\303\172\066\202\234\215\230\342\253\100\252\107\217\307\247"
+"\133\355\174\347\075\146\132\073\061\273\337\363\026\063\221\374"
+"\174\173\245\302\246\146\343\252\260\267\047\230\077\111\327\140"
+"\147\147\077\066\117\112\313\361\024\372\132\207\050\034\355\217"
+"\101\062\306\225\371\175\332\275\173\133\302\260\041\343\217\106"
+"\334\041\070\103\164\114\373\060\370\027\162\301\062\374\310\221"
+"\027\304\314\130\067\116\013\314\132\367\041\065\050\203\154\140"
+"\055\104\353\122\214\120\075\265\154\022\327\372\011\273\154\262"
+"\112\261\305\211\344\374\323\122\330\141\027\376\172\224\204\217"
+"\171\266\063\131\272\017\304\013\342\160\240\113\170\056\372\310"
+"\237\375\257\221\145\012\170\070\025\345\227\027\024\335\371\340"
+"\054\064\370\070\320\204\042\000\300\024\121\030\053\002\334\060"
+"\132\360\350\001\174\065\072\043\257\010\344\257\252\216\050\102"
+"\111\056\360\365\231\064\276\355\017\113\030\341\322\044\074\273"
+"\135\107\267\041\362\215\321\012\231\216\343\156\076\255\160\340"
+"\217\271\312\314\156\201\061\366\173\234\172\171\344\147\161\030"
+, (PRUint32)896 }
+};
+static const NSSItem nss_builtins_items_398 [] = {
+  { (void *)&cko_nss_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 *)"Certification Authority of WoSign G2", (PRUint32)37 },
+  { (void *)"\373\355\334\220\145\267\047\040\067\274\125\014\234\126\336\273"
+"\362\170\224\341"
+, (PRUint32)20 },
+  { (void *)"\310\034\175\031\252\313\161\223\362\120\370\122\250\036\272\140"
+, (PRUint32)16 },
+  { (void *)"\060\130\061\013\060\011\006\003\125\004\006\023\002\103\116\061"
+"\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156"
+"\040\103\101\040\114\151\155\151\164\145\144\061\055\060\053\006"
+"\003\125\004\003\023\044\103\145\162\164\151\146\151\143\141\164"
+"\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146"
+"\040\127\157\123\151\147\156\040\107\062"
+, (PRUint32)90 },
+  { (void *)"\002\020\153\045\332\212\210\235\174\274\017\005\263\261\172\141"
+"\105\104"
+, (PRUint32)18 },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+};
+static const NSSItem nss_builtins_items_399 [] = {
+  { (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 *)"CA WoSign ECC Root", (PRUint32)19 },
+  { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061"
+"\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156"
+"\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006"
+"\003\125\004\003\023\022\103\101\040\127\157\123\151\147\156\040"
+"\105\103\103\040\122\157\157\164"
+, (PRUint32)72 },
+  { (void *)"0", (PRUint32)2 },
+  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061"
+"\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156"
+"\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006"
+"\003\125\004\003\023\022\103\101\040\127\157\123\151\147\156\040"
+"\105\103\103\040\122\157\157\164"
+, (PRUint32)72 },
+  { (void *)"\002\020\150\112\130\160\200\153\360\217\002\372\366\336\350\260"
+"\220\220"
+, (PRUint32)18 },
+  { (void *)"\060\202\002\011\060\202\001\217\240\003\002\001\002\002\020\150"
+"\112\130\160\200\153\360\217\002\372\366\336\350\260\220\220\060"
+"\012\006\010\052\206\110\316\075\004\003\003\060\106\061\013\060"
+"\011\006\003\125\004\006\023\002\103\116\061\032\060\030\006\003"
+"\125\004\012\023\021\127\157\123\151\147\156\040\103\101\040\114"
+"\151\155\151\164\145\144\061\033\060\031\006\003\125\004\003\023"
+"\022\103\101\040\127\157\123\151\147\156\040\105\103\103\040\122"
+"\157\157\164\060\036\027\015\061\064\061\061\060\070\060\060\065"
+"\070\065\070\132\027\015\064\064\061\061\060\070\060\060\065\070"
+"\065\070\132\060\106\061\013\060\011\006\003\125\004\006\023\002"
+"\103\116\061\032\060\030\006\003\125\004\012\023\021\127\157\123"
+"\151\147\156\040\103\101\040\114\151\155\151\164\145\144\061\033"
+"\060\031\006\003\125\004\003\023\022\103\101\040\127\157\123\151"
+"\147\156\040\105\103\103\040\122\157\157\164\060\166\060\020\006"
+"\007\052\206\110\316\075\002\001\006\005\053\201\004\000\042\003"
+"\142\000\004\341\375\216\270\103\044\253\226\173\205\302\272\013"
+"\255\215\340\072\343\044\271\322\261\276\210\072\312\277\112\270"
+"\371\357\054\057\257\121\120\074\107\165\154\370\224\267\233\374"
+"\050\036\305\124\314\143\235\026\113\123\301\347\040\253\315\254"
+"\045\322\177\217\302\301\132\202\136\060\213\172\124\316\003\265"
+"\221\177\252\224\320\321\212\110\314\202\005\046\241\325\121\022"
+"\326\173\066\243\102\060\100\060\016\006\003\125\035\017\001\001"
+"\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001"
+"\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004"
+"\026\004\024\252\375\325\132\243\366\207\213\062\205\375\321\062"
+"\133\200\105\223\363\003\270\060\012\006\010\052\206\110\316\075"
+"\004\003\003\003\150\000\060\145\002\061\000\344\244\204\260\201"
+"\325\075\260\164\254\224\244\350\016\075\000\164\114\241\227\153"
+"\371\015\121\074\241\331\073\364\015\253\251\237\276\116\162\312"
+"\205\324\331\354\265\062\105\030\157\253\255\002\060\175\307\367"
+"\151\143\057\241\341\230\357\023\020\321\171\077\321\376\352\073"
+"\177\336\126\364\220\261\025\021\330\262\042\025\320\057\303\046"
+"\056\153\361\221\262\220\145\364\232\346\220\356\112"
+, (PRUint32)525 }
+};
+static const NSSItem nss_builtins_items_400 [] = {
+  { (void *)&cko_nss_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 *)"CA WoSign ECC Root", (PRUint32)19 },
+  { (void *)"\322\172\322\276\355\224\300\241\074\307\045\041\352\135\161\276"
+"\201\031\363\053"
+, (PRUint32)20 },
+  { (void *)"\200\306\123\356\141\202\050\162\360\377\041\271\027\312\262\040"
+, (PRUint32)16 },
+  { (void *)"\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061"
+"\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156"
+"\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006"
+"\003\125\004\003\023\022\103\101\040\127\157\123\151\147\156\040"
+"\105\103\103\040\122\157\157\164"
+, (PRUint32)72 },
+  { (void *)"\002\020\150\112\130\160\200\153\360\217\002\372\366\336\350\260"
+"\220\220"
+, (PRUint32)18 },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ckt_nss_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+  { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) }
+};
 
 builtinsInternalObject
 nss_builtins_data[] = {
@@ -27870,12 +26774,12 @@
   { 11, nss_builtins_types_21, nss_builtins_items_21, {NULL} },
   { 13, nss_builtins_types_22, nss_builtins_items_22, {NULL} },
   { 11, nss_builtins_types_23, nss_builtins_items_23, {NULL} },
-  { 13, nss_builtins_types_24, nss_builtins_items_24, {NULL} },
+  { 11, nss_builtins_types_24, nss_builtins_items_24, {NULL} },
   { 11, nss_builtins_types_25, nss_builtins_items_25, {NULL} },
-  { 13, nss_builtins_types_26, nss_builtins_items_26, {NULL} },
-  { 11, nss_builtins_types_27, nss_builtins_items_27, {NULL} },
+  { 11, nss_builtins_types_26, nss_builtins_items_26, {NULL} },
+  { 13, nss_builtins_types_27, nss_builtins_items_27, {NULL} },
   { 11, nss_builtins_types_28, nss_builtins_items_28, {NULL} },
-  { 11, nss_builtins_types_29, nss_builtins_items_29, {NULL} },
+  { 13, nss_builtins_types_29, nss_builtins_items_29, {NULL} },
   { 11, nss_builtins_types_30, nss_builtins_items_30, {NULL} },
   { 13, nss_builtins_types_31, nss_builtins_items_31, {NULL} },
   { 11, nss_builtins_types_32, nss_builtins_items_32, {NULL} },
@@ -27995,20 +26899,20 @@
   { 11, nss_builtins_types_146, nss_builtins_items_146, {NULL} },
   { 13, nss_builtins_types_147, nss_builtins_items_147, {NULL} },
   { 11, nss_builtins_types_148, nss_builtins_items_148, {NULL} },
-  { 13, nss_builtins_types_149, nss_builtins_items_149, {NULL} },
-  { 11, nss_builtins_types_150, nss_builtins_items_150, {NULL} },
-  { 13, nss_builtins_types_151, nss_builtins_items_151, {NULL} },
-  { 11, nss_builtins_types_152, nss_builtins_items_152, {NULL} },
-  { 13, nss_builtins_types_153, nss_builtins_items_153, {NULL} },
-  { 11, nss_builtins_types_154, nss_builtins_items_154, {NULL} },
-  { 13, nss_builtins_types_155, nss_builtins_items_155, {NULL} },
-  { 11, nss_builtins_types_156, nss_builtins_items_156, {NULL} },
-  { 13, nss_builtins_types_157, nss_builtins_items_157, {NULL} },
-  { 11, nss_builtins_types_158, nss_builtins_items_158, {NULL} },
-  { 13, nss_builtins_types_159, nss_builtins_items_159, {NULL} },
-  { 11, nss_builtins_types_160, nss_builtins_items_160, {NULL} },
-  { 13, nss_builtins_types_161, nss_builtins_items_161, {NULL} },
-  { 11, nss_builtins_types_162, nss_builtins_items_162, {NULL} },
+  { 11, nss_builtins_types_149, nss_builtins_items_149, {NULL} },
+  { 13, nss_builtins_types_150, nss_builtins_items_150, {NULL} },
+  { 11, nss_builtins_types_151, nss_builtins_items_151, {NULL} },
+  { 13, nss_builtins_types_152, nss_builtins_items_152, {NULL} },
+  { 11, nss_builtins_types_153, nss_builtins_items_153, {NULL} },
+  { 13, nss_builtins_types_154, nss_builtins_items_154, {NULL} },
+  { 11, nss_builtins_types_155, nss_builtins_items_155, {NULL} },
+  { 13, nss_builtins_types_156, nss_builtins_items_156, {NULL} },
+  { 11, nss_builtins_types_157, nss_builtins_items_157, {NULL} },
+  { 13, nss_builtins_types_158, nss_builtins_items_158, {NULL} },
+  { 11, nss_builtins_types_159, nss_builtins_items_159, {NULL} },
+  { 13, nss_builtins_types_160, nss_builtins_items_160, {NULL} },
+  { 11, nss_builtins_types_161, nss_builtins_items_161, {NULL} },
+  { 13, nss_builtins_types_162, nss_builtins_items_162, {NULL} },
   { 11, nss_builtins_types_163, nss_builtins_items_163, {NULL} },
   { 13, nss_builtins_types_164, nss_builtins_items_164, {NULL} },
   { 11, nss_builtins_types_165, nss_builtins_items_165, {NULL} },
@@ -28136,7 +27040,7 @@
   { 11, nss_builtins_types_287, nss_builtins_items_287, {NULL} },
   { 13, nss_builtins_types_288, nss_builtins_items_288, {NULL} },
   { 11, nss_builtins_types_289, nss_builtins_items_289, {NULL} },
-  { 13, nss_builtins_types_290, nss_builtins_items_290, {NULL} },
+  { 11, nss_builtins_types_290, nss_builtins_items_290, {NULL} },
   { 11, nss_builtins_types_291, nss_builtins_items_291, {NULL} },
   { 13, nss_builtins_types_292, nss_builtins_items_292, {NULL} },
   { 11, nss_builtins_types_293, nss_builtins_items_293, {NULL} },
@@ -28154,13 +27058,13 @@
   { 11, nss_builtins_types_305, nss_builtins_items_305, {NULL} },
   { 13, nss_builtins_types_306, nss_builtins_items_306, {NULL} },
   { 11, nss_builtins_types_307, nss_builtins_items_307, {NULL} },
-  { 13, nss_builtins_types_308, nss_builtins_items_308, {NULL} },
+  { 11, nss_builtins_types_308, nss_builtins_items_308, {NULL} },
   { 11, nss_builtins_types_309, nss_builtins_items_309, {NULL} },
   { 13, nss_builtins_types_310, nss_builtins_items_310, {NULL} },
   { 11, nss_builtins_types_311, nss_builtins_items_311, {NULL} },
   { 13, nss_builtins_types_312, nss_builtins_items_312, {NULL} },
   { 11, nss_builtins_types_313, nss_builtins_items_313, {NULL} },
-  { 11, nss_builtins_types_314, nss_builtins_items_314, {NULL} },
+  { 13, nss_builtins_types_314, nss_builtins_items_314, {NULL} },
   { 11, nss_builtins_types_315, nss_builtins_items_315, {NULL} },
   { 13, nss_builtins_types_316, nss_builtins_items_316, {NULL} },
   { 11, nss_builtins_types_317, nss_builtins_items_317, {NULL} },
@@ -28178,7 +27082,7 @@
   { 11, nss_builtins_types_329, nss_builtins_items_329, {NULL} },
   { 13, nss_builtins_types_330, nss_builtins_items_330, {NULL} },
   { 11, nss_builtins_types_331, nss_builtins_items_331, {NULL} },
-  { 11, nss_builtins_types_332, nss_builtins_items_332, {NULL} },
+  { 13, nss_builtins_types_332, nss_builtins_items_332, {NULL} },
   { 11, nss_builtins_types_333, nss_builtins_items_333, {NULL} },
   { 13, nss_builtins_types_334, nss_builtins_items_334, {NULL} },
   { 11, nss_builtins_types_335, nss_builtins_items_335, {NULL} },
@@ -28246,23 +27150,7 @@
   { 11, nss_builtins_types_397, nss_builtins_items_397, {NULL} },
   { 13, nss_builtins_types_398, nss_builtins_items_398, {NULL} },
   { 11, nss_builtins_types_399, nss_builtins_items_399, {NULL} },
-  { 13, nss_builtins_types_400, nss_builtins_items_400, {NULL} },
-  { 11, nss_builtins_types_401, nss_builtins_items_401, {NULL} },
-  { 13, nss_builtins_types_402, nss_builtins_items_402, {NULL} },
-  { 11, nss_builtins_types_403, nss_builtins_items_403, {NULL} },
-  { 13, nss_builtins_types_404, nss_builtins_items_404, {NULL} },
-  { 11, nss_builtins_types_405, nss_builtins_items_405, {NULL} },
-  { 13, nss_builtins_types_406, nss_builtins_items_406, {NULL} },
-  { 11, nss_builtins_types_407, nss_builtins_items_407, {NULL} },
-  { 13, nss_builtins_types_408, nss_builtins_items_408, {NULL} },
-  { 11, nss_builtins_types_409, nss_builtins_items_409, {NULL} },
-  { 13, nss_builtins_types_410, nss_builtins_items_410, {NULL} },
-  { 11, nss_builtins_types_411, nss_builtins_items_411, {NULL} },
-  { 13, nss_builtins_types_412, nss_builtins_items_412, {NULL} },
-  { 11, nss_builtins_types_413, nss_builtins_items_413, {NULL} },
-  { 13, nss_builtins_types_414, nss_builtins_items_414, {NULL} },
-  { 11, nss_builtins_types_415, nss_builtins_items_415, {NULL} },
-  { 13, nss_builtins_types_416, nss_builtins_items_416, {NULL} }
+  { 13, nss_builtins_types_400, nss_builtins_items_400, {NULL} }
 };
 const PRUint32
-nss_builtins_nObjects = 416;
+nss_builtins_nObjects = 400;
diff --git a/nss/lib/ckfw/builtins/ckbiver.c b/nss/lib/ckfw/builtins/ckbiver.c
index c8ea7a9..41783b2 100644
--- a/nss/lib/ckfw/builtins/ckbiver.c
+++ b/nss/lib/ckfw/builtins/ckbiver.c
@@ -13,14 +13,7 @@
 #endif
 
 /*
- * Version information for the 'ident' and 'what commands
- *
- * NOTE: the first component of the concatenated rcsid string
- * must not end in a '$' to prevent rcs keyword substitution.
+ * Version information
  */
-const char __nss_builtins_rcsid[] = "$Header: NSS Builtin Trusted Root CAs "
-        NSS_BUILTINS_LIBRARY_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__ " $";
-const char __nss_builtins_sccsid[] = "@(#)NSS Builtin Trusted Root CAs "
-        NSS_BUILTINS_LIBRARY_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__;
+const char __nss_builtins_version[] = "Version: NSS Builtin Trusted Root CAs "
+        NSS_BUILTINS_LIBRARY_VERSION _DEBUG_STRING;
diff --git a/nss/lib/ckfw/builtins/nssckbi.h b/nss/lib/ckfw/builtins/nssckbi.h
index baa7547..5ef3a49 100644
--- a/nss/lib/ckfw/builtins/nssckbi.h
+++ b/nss/lib/ckfw/builtins/nssckbi.h
@@ -45,8 +45,8 @@
  * of the comment in the CK_VERSION type definition.
  */
 #define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 2
-#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 4
-#define NSS_BUILTINS_LIBRARY_VERSION "2.4"
+#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 6
+#define NSS_BUILTINS_LIBRARY_VERSION "2.6"
 
 /* These version numbers detail the semantic changes to the ckfw engine. */
 #define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
diff --git a/nss/lib/ckfw/hash.c b/nss/lib/ckfw/hash.c
index 51f53b1..7d21084 100644
--- a/nss/lib/ckfw/hash.c
+++ b/nss/lib/ckfw/hash.c
@@ -48,9 +48,7 @@
   const void *key
 )
 {
-  PRUint32 i = (PRUint32)key;
-  PR_ASSERT(sizeof(PLHashNumber) == sizeof(PRUint32));
-  return (PLHashNumber)i;
+  return (PLHashNumber)((char *)key - (char *)NULL);
 }
 
 /*
@@ -87,9 +85,9 @@
   rv->mutex = nssCKFWInstance_CreateMutex(fwInstance, arena, pError);
   if (!rv->mutex) {
     if( CKR_OK == *pError ) {
-      (void)nss_ZFreeIf(rv);
       *pError = CKR_GENERAL_ERROR;
     }
+    (void)nss_ZFreeIf(rv);
     return (nssCKFWHash *)NULL;
   }
 
diff --git a/nss/lib/ckfw/object.c b/nss/lib/ckfw/object.c
index bc82917..661977e 100644
--- a/nss/lib/ckfw/object.c
+++ b/nss/lib/ckfw/object.c
@@ -171,6 +171,7 @@
     if( CKR_OK == *pError ) {
       *pError = CKR_GENERAL_ERROR;
     }
+    nss_ZFreeIf(fwObject);
     return (NSSCKFWObject *)NULL;
   }
 
diff --git a/nss/lib/ckfw/token.c b/nss/lib/ckfw/token.c
index aaaf118..4a97576 100644
--- a/nss/lib/ckfw/token.c
+++ b/nss/lib/ckfw/token.c
@@ -1258,7 +1258,7 @@
   {
     /* Format is YYYYMMDDhhmmss00 */
     int i;
-    int Y, M, D, h, m, s, z;
+    int Y, M, D, h, m, s;
     static int dims[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
 
     for( i = 0; i < 16; i++ ) {
@@ -1274,7 +1274,6 @@
     h = ((utcTime[ 8] - '0') * 10) + (utcTime[ 9] - '0');
     m = ((utcTime[10] - '0') * 10) + (utcTime[11] - '0');
     s = ((utcTime[12] - '0') * 10) + (utcTime[13] - '0');
-    z = ((utcTime[14] - '0') * 10) + (utcTime[15] - '0');
 
     if( (Y < 1990) || (Y > 3000) ) goto badtime; /* Y3K problem.  heh heh heh */
     if( (M < 1) || (M > 12) ) goto badtime;
diff --git a/nss/lib/cryptohi/keyhi.h b/nss/lib/cryptohi/keyhi.h
index 88a77f1..0ed3698 100644
--- a/nss/lib/cryptohi/keyhi.h
+++ b/nss/lib/cryptohi/keyhi.h
@@ -37,6 +37,11 @@
 extern SECStatus
 SECKEY_UpdateCertPQG(CERTCertificate * subjectCert);
 
+/*
+** Return the number of bits in the provided big integer.  This assumes that the
+** SECItem contains a big-endian number and counts from the first non-zero bit.
+*/
+extern unsigned SECKEY_BigIntegerBitLength(const SECItem *number);
 
 /*
 ** Return the strength of the public key in bytes
@@ -255,6 +260,14 @@
  */
 extern int SECKEY_ECParamsToBasePointOrderLen(const SECItem *params);
 
+/*
+ * Returns the object identifier of the curve, of the provided
+ * elliptic curve parameters structures.
+ *
+ * Return 0 on failure (unknown EC domain parameters).
+ */
+SECOidTag SECKEY_GetECCOid(const SECKEYECParams * params);
+
 SEC_END_PROTOS
 
 #endif /* _KEYHI_H_ */
diff --git a/nss/lib/cryptohi/seckey.c b/nss/lib/cryptohi/seckey.c
index 16d2a49..1fcd408 100644
--- a/nss/lib/cryptohi/seckey.c
+++ b/nss/lib/cryptohi/seckey.c
@@ -178,8 +178,8 @@
     PK11SlotInfo *slot;
 
     if (!param || !param->base.data || !param->prime.data ||
-        param->prime.len < 512/8 || param->base.len == 0 || 
-        param->base.len > param->prime.len + 1 || 
+        SECKEY_BigIntegerBitLength(&param->prime) < DH_MIN_P_BITS ||
+        param->base.len == 0 || param->base.len > param->prime.len + 1 ||
 	(param->base.len == 1 && param->base.data[0] == 0)) {
 	PORT_SetError(SEC_ERROR_INVALID_ARGS);
 	return NULL;
@@ -941,61 +941,76 @@
     }
 }
 
+/* The number of bits in the number from the first non-zero bit onward. */
+unsigned
+SECKEY_BigIntegerBitLength(const SECItem *number)
+{
+    const unsigned char *p;
+    unsigned octets;
+    unsigned bits;
+
+    if (!number || !number->data) {
+        PORT_SetError(SEC_ERROR_INVALID_KEY);
+        return 0;
+    }
+
+    p = number->data;
+    octets = number->len;
+    while (octets > 0 && !*p) {
+        ++p;
+        --octets;
+    }
+    if (octets == 0) {
+        return 0;
+    }
+    /* bits = 7..1 because we know at least one bit is set already */
+    /* Note: This could do a binary search, but this is faster for keys if we
+     * assume that good keys will have the MSB set. */
+    for (bits = 7; bits > 0; --bits) {
+        if (*p & (1 << bits)) {
+            break;
+        }
+    }
+    return octets * 8 + bits - 7;
+}
+
 /* returns key strength in bytes (not bits) */
 unsigned
 SECKEY_PublicKeyStrength(const SECKEYPublicKey *pubk)
 {
-    unsigned char b0;
-    unsigned size;
-
-    /* interpret modulus length as key strength */
-    if (!pubk)
-    	goto loser;
-    switch (pubk->keyType) {
-    case rsaKey:
-	if (!pubk->u.rsa.modulus.data) break;
-    	b0 = pubk->u.rsa.modulus.data[0];
-    	return b0 ? pubk->u.rsa.modulus.len : pubk->u.rsa.modulus.len - 1;
-    case dsaKey:
-	if (!pubk->u.dsa.publicValue.data) break;
-    	b0 = pubk->u.dsa.publicValue.data[0];
-    	return b0 ? pubk->u.dsa.publicValue.len :
-	    pubk->u.dsa.publicValue.len - 1;
-    case dhKey:
-	if (!pubk->u.dh.publicValue.data) break;
-    	b0 = pubk->u.dh.publicValue.data[0];
-    	return b0 ? pubk->u.dh.publicValue.len :
-	    pubk->u.dh.publicValue.len - 1;
-    case ecKey:
-	/* Get the key size in bits and adjust */
-	size =	SECKEY_ECParamsToKeySize(&pubk->u.ec.DEREncodedParams);
-	return (size + 7)/8;
-    default:
-	break;
-    }
-loser:
-    PORT_SetError(SEC_ERROR_INVALID_KEY);
-    return 0;
+    return (SECKEY_PublicKeyStrengthInBits(pubk) + 7) / 8;
 }
 
 /* returns key strength in bits */
 unsigned
 SECKEY_PublicKeyStrengthInBits(const SECKEYPublicKey *pubk)
 {
-    unsigned size;
+    unsigned bitSize = 0;
+
+    if (!pubk) {
+        PORT_SetError(SEC_ERROR_INVALID_KEY);
+        return 0;
+    }
+
+    /* interpret modulus length as key strength */
     switch (pubk->keyType) {
     case rsaKey:
+        bitSize = SECKEY_BigIntegerBitLength(&pubk->u.rsa.modulus);
+        break;
     case dsaKey:
+        bitSize = SECKEY_BigIntegerBitLength(&pubk->u.dsa.publicValue);
+        break;
     case dhKey:
-	return SECKEY_PublicKeyStrength(pubk) * 8; /* 1 byte = 8 bits */
+        bitSize = SECKEY_BigIntegerBitLength(&pubk->u.dh.publicValue);
+        break;
     case ecKey:
-	size = SECKEY_ECParamsToKeySize(&pubk->u.ec.DEREncodedParams);
-	return size;
+        bitSize = SECKEY_ECParamsToKeySize(&pubk->u.ec.DEREncodedParams);
+        break;
     default:
-	break;
+        PORT_SetError(SEC_ERROR_INVALID_KEY);
+        break;
     }
-    PORT_SetError(SEC_ERROR_INVALID_KEY);
-    return 0;
+    return bitSize;
 }
 
 /* returns signature length in bytes (not bits) */
@@ -1550,7 +1565,7 @@
 	     * this yet.
 	     */
 	    PORT_Memset(pvk->privateKey.data, 0, pvk->privateKey.len);
-	    PORT_Memset((char *)pvk, 0, sizeof(*pvk));
+	    PORT_Memset(pvk, 0, sizeof(*pvk));
 	    if(freeit == PR_TRUE) {
 		PORT_FreeArena(poolp, PR_TRUE);
 	    } else {
@@ -1560,7 +1575,7 @@
 	    SECITEM_ZfreeItem(&pvk->version, PR_FALSE);
 	    SECITEM_ZfreeItem(&pvk->privateKey, PR_FALSE);
 	    SECOID_DestroyAlgorithmID(&pvk->algorithm, PR_FALSE);
-	    PORT_Memset((char *)pvk, 0, sizeof(*pvk));
+	    PORT_Memset(pvk, 0, sizeof(*pvk));
 	    if(freeit == PR_TRUE) {
 		PORT_Free(pvk);
 	    }
@@ -1581,7 +1596,7 @@
 	     * this yet.
 	     */
 	    PORT_Memset(epki->encryptedData.data, 0, epki->encryptedData.len);
-	    PORT_Memset((char *)epki, 0, sizeof(*epki));
+	    PORT_Memset(epki, 0, sizeof(*epki));
 	    if(freeit == PR_TRUE) {
 		PORT_FreeArena(poolp, PR_TRUE);
 	    } else {
@@ -1590,7 +1605,7 @@
 	} else {
 	    SECITEM_ZfreeItem(&epki->encryptedData, PR_FALSE);
 	    SECOID_DestroyAlgorithmID(&epki->algorithm, PR_FALSE);
-	    PORT_Memset((char *)epki, 0, sizeof(*epki));
+	    PORT_Memset(epki, 0, sizeof(*epki));
 	    if(freeit == PR_TRUE) {
 		PORT_Free(epki);
 	    }
@@ -1889,3 +1904,22 @@
     }
     return rv;
 }
+
+SECOidTag
+SECKEY_GetECCOid(const SECKEYECParams * params)
+{
+    SECItem oid = { siBuffer, NULL, 0};
+    SECOidData *oidData = NULL;
+
+    /* 
+     * params->data needs to contain the ASN encoding of an object ID (OID)
+     * representing a named curve. Here, we strip away everything
+     * before the actual OID and use the OID to look up a named curve.
+     */
+    if (params->data[0] != SEC_ASN1_OBJECT_ID) return 0;
+    oid.len = params->len - 2;
+    oid.data = params->data + 2;
+    if ((oidData = SECOID_FindOID(&oid)) == NULL) return 0;
+
+    return oidData->offset;
+}
diff --git a/nss/lib/cryptohi/secsign.c b/nss/lib/cryptohi/secsign.c
index f2bd229..fa4bf5f 100644
--- a/nss/lib/cryptohi/secsign.c
+++ b/nss/lib/cryptohi/secsign.c
@@ -413,6 +413,7 @@
     }
     result->len = modulusLen;
     result->data = (unsigned char*) PORT_Alloc(modulusLen);
+    result->type = siBuffer;
 
     if (result->data == NULL) {
 	rv = SECFailure;
diff --git a/nss/lib/dev/devslot.c b/nss/lib/dev/devslot.c
index d97cbba..f49915e 100644
--- a/nss/lib/dev/devslot.c
+++ b/nss/lib/dev/devslot.c
@@ -25,9 +25,6 @@
 /* measured as interval */
 static PRIntervalTime s_token_delay_time = 0;
 
-/* The flags needed to open a read-only session. */
-static const CK_FLAGS s_ck_readonly_flags = CKF_SERIAL_SESSION;
-
 NSS_IMPLEMENT PRStatus
 nssSlot_Destroy (
   NSSSlot *slot
diff --git a/nss/lib/dev/devtoken.c b/nss/lib/dev/devtoken.c
index b603281..7223e48 100644
--- a/nss/lib/dev/devtoken.c
+++ b/nss/lib/dev/devtoken.c
@@ -1466,7 +1466,6 @@
     CK_ATTRIBUTE cert_template[2];
     CK_ULONG ctsize;
     NSSArena *arena;
-    PRStatus status;
     PRUint32 arraySize, numHandles;
     nssCryptokiObject **objects;
     void *epv = nssToken_GetCryptokiEPV(token);
@@ -1544,7 +1543,7 @@
 	if (objects) {
 	    nssCryptokiObject **op;
 	    for (op = objects; *op; op++) {
-		status = (*callback)(*op, arg);
+		(void)(*callback)(*op, arg);
 	    }
 	    nss_ZFreeIf(objects);
 	}
diff --git a/nss/lib/dev/devutil.c b/nss/lib/dev/devutil.c
index 9d1aaf6..400b69d 100644
--- a/nss/lib/dev/devutil.c
+++ b/nss/lib/dev/devutil.c
@@ -579,6 +579,7 @@
                                                      &numObjects,
                                                      &status);
     if (status != PR_SUCCESS) {
+	nss_ZFreeIf(objects);
 	return status;
     }
     for (i=0; i<numObjects; i++) {
diff --git a/nss/lib/freebl/cts.c b/nss/lib/freebl/cts.c
index 5d4ed18..984e05b 100644
--- a/nss/lib/freebl/cts.c
+++ b/nss/lib/freebl/cts.c
@@ -185,7 +185,7 @@
     unsigned char lastBlock[MAX_BLOCK_SIZE];
     const unsigned char *tmp;
     unsigned int tmpLen;
-    int fullblocks, pad;
+    unsigned int fullblocks, pad;
     unsigned int i;
     SECStatus rv;
 
diff --git a/nss/lib/freebl/des.c b/nss/lib/freebl/des.c
index 63a56ac..bcfcaba 100644
--- a/nss/lib/freebl/des.c
+++ b/nss/lib/freebl/des.c
@@ -13,6 +13,13 @@
 #include <stddef.h>	/* for ptrdiff_t */
 /* #define USE_INDEXING 1 */
 
+/* Some processors automatically fix up unaligned memory access, so they can
+ * read or write a HALF (4 bytes) at a time whether the address is 4-byte
+ * aligned or not. */
+#if defined(NSS_X86_OR_X64)
+#define HAVE_UNALIGNED_ACCESS 1
+#endif
+
 /*
  * The tables below are the 8 sbox functions, with the 6-bit input permutation 
  * and the 32-bit output permutation pre-computed.
@@ -421,11 +428,13 @@
     int           delta;
     unsigned int  ls;
 
-#if defined(NSS_X86_OR_X64)
+#if defined(HAVE_UNALIGNED_ACCESS)
     left  = HALFPTR(key)[0]; 
     right = HALFPTR(key)[1]; 
+#if defined(IS_LITTLE_ENDIAN)
     BYTESWAP(left, temp);
     BYTESWAP(right, temp);
+#endif
 #else
     if (((ptrdiff_t)key & 0x03) == 0) {
 	left  = HALFPTR(key)[0]; 
@@ -572,11 +581,13 @@
     register HALF left, right;
     register HALF temp;
 
-#if defined(NSS_X86_OR_X64)
+#if defined(HAVE_UNALIGNED_ACCESS)
     left  = HALFPTR(inbuf)[0]; 
     right = HALFPTR(inbuf)[1]; 
+#if defined(IS_LITTLE_ENDIAN)
     BYTESWAP(left, temp);
     BYTESWAP(right, temp);
+#endif
 #else
     if (((ptrdiff_t)inbuf & 0x03) == 0) {
 	left  = HALFPTR(inbuf)[0]; 
@@ -643,9 +654,11 @@
 
     FP(left, right, temp);
 
-#if defined(NSS_X86_OR_X64)
+#if defined(HAVE_UNALIGNED_ACCESS)
+#if defined(IS_LITTLE_ENDIAN)
     BYTESWAP(left, temp);
     BYTESWAP(right, temp);
+#endif
     HALFPTR(outbuf)[0]  = left; 
     HALFPTR(outbuf)[1]  = right; 
 #else
diff --git a/nss/lib/freebl/desblapi.c b/nss/lib/freebl/desblapi.c
index 6a547af..04a07ca 100644
--- a/nss/lib/freebl/desblapi.c
+++ b/nss/lib/freebl/desblapi.c
@@ -22,28 +22,8 @@
 #define COPY8B(to, from, ptr) \
     	HALFPTR(to)[0] = HALFPTR(from)[0]; \
     	HALFPTR(to)[1] = HALFPTR(from)[1]; 
-#elif defined(USE_MEMCPY)
-#define COPY8B(to, from, ptr) memcpy(to, from, 8)
 #else
-#define COPY8B(to, from, ptr) \
-    if (((ptrdiff_t)(ptr) & 0x3) == 0) { \
-    	HALFPTR(to)[0] = HALFPTR(from)[0]; \
-    	HALFPTR(to)[1] = HALFPTR(from)[1]; \
-    } else if (((ptrdiff_t)(ptr) & 0x1) == 0) { \
-    	SHORTPTR(to)[0] = SHORTPTR(from)[0]; \
-    	SHORTPTR(to)[1] = SHORTPTR(from)[1]; \
-    	SHORTPTR(to)[2] = SHORTPTR(from)[2]; \
-    	SHORTPTR(to)[3] = SHORTPTR(from)[3]; \
-    } else { \
-    	BYTEPTR(to)[0] = BYTEPTR(from)[0]; \
-    	BYTEPTR(to)[1] = BYTEPTR(from)[1]; \
-    	BYTEPTR(to)[2] = BYTEPTR(from)[2]; \
-    	BYTEPTR(to)[3] = BYTEPTR(from)[3]; \
-    	BYTEPTR(to)[4] = BYTEPTR(from)[4]; \
-    	BYTEPTR(to)[5] = BYTEPTR(from)[5]; \
-    	BYTEPTR(to)[6] = BYTEPTR(from)[6]; \
-    	BYTEPTR(to)[7] = BYTEPTR(from)[7]; \
-    } 
+#define COPY8B(to, from, ptr) memcpy(to, from, 8)
 #endif
 #define COPY8BTOHALF(to, from) COPY8B(to, from, from)
 #define COPY8BFROMHALF(to, from) COPY8B(to, from, to)
diff --git a/nss/lib/freebl/dh.c b/nss/lib/freebl/dh.c
index 54ff480..66c1101 100644
--- a/nss/lib/freebl/dh.c
+++ b/nss/lib/freebl/dh.c
@@ -205,7 +205,7 @@
 {
     mp_int p, Xa, Yb, ZZ, psub1;
     mp_err err = MP_OKAY;
-    int len = 0;
+    unsigned int len = 0;
     unsigned int nb;
     unsigned char *secret = NULL;
     if (!publicValue || !prime || !privateValue || !derivedSecret) {
@@ -252,6 +252,24 @@
         err = MP_BADARG;
         goto cleanup;
     }
+
+    /*
+     * We check to make sure that ZZ is not equal to 1 or -1 mod p.
+     * This helps guard against small subgroup attacks, since an attacker
+     * using a subgroup of size N will produce 1 or -1 with probability 1/N.
+     * When the protocol is executed within a properly large subgroup, the
+     * probability of this result will be negligibly small.  For example,
+     * with a strong prime of the form 2p+1, the probability will be 1/p.
+     *
+     * We return MP_BADARG because this is probably the result of a bad
+     * public value or a bad prime having been provided.
+     */
+    if (mp_cmp_d(&ZZ, 1) == 0 ||
+        mp_cmp(&ZZ, &psub1) == 0) {
+        err = MP_BADARG;
+        goto cleanup;
+    }
+
     /* allocate a buffer which can hold the entire derived secret. */
     secret = PORT_Alloc(len);
     /* grab the derived secret */
diff --git a/nss/lib/freebl/drbg.c b/nss/lib/freebl/drbg.c
index 4745df4..391d456 100644
--- a/nss/lib/freebl/drbg.c
+++ b/nss/lib/freebl/drbg.c
@@ -24,7 +24,7 @@
  * for SHA-1, SHA-224, and SHA-256 it's 440 bits.
  * for SHA-384 and SHA-512 it's 888 bits */
 #define PRNG_SEEDLEN      (440/PR_BITS_PER_BYTE)
-static const PRInt64 PRNG_MAX_ADDITIONAL_BYTES = LL_INIT(0x1, 0x0);
+#define PRNG_MAX_ADDITIONAL_BYTES PR_INT64(0x100000000)
 						/* 2^35 bits or 2^32 bytes */
 #define PRNG_MAX_REQUEST_SIZE 0x10000		/* 2^19 bits or 2^16 bytes */
 #define PRNG_ADDITONAL_DATA_CACHE_SIZE (8*1024) /* must be less than
@@ -247,26 +247,32 @@
 /*
  * build some fast inline functions for adding.
  */
-#define PRNG_ADD_CARRY_ONLY(dest, start, cy) \
-   carry = cy; \
-   for (k1=start; carry && k1 >=0 ; k1--) { \
-	carry = !(++dest[k1]); \
-   } 
+#define PRNG_ADD_CARRY_ONLY(dest, start, carry) \
+    { \
+        int k1; \
+        for (k1 = start; carry && k1 >= 0; k1--) { \
+            carry = !(++dest[k1]); \
+        } \
+    }
 
 /*
  * NOTE: dest must be an array for the following to work.
  */
-#define PRNG_ADD_BITS(dest, dest_len, add, len) \
+#define PRNG_ADD_BITS(dest, dest_len, add, len, carry) \
     carry = 0; \
-    for (k1=dest_len -1, k2=len-1; k2 >= 0; --k1, --k2) { \
-	carry += dest[k1]+ add[k2]; \
-	dest[k1] = (PRUint8) carry; \
-	carry >>= 8; \
+    PORT_Assert((dest_len) >= (len)); \
+    { \
+        int k1, k2; \
+        for (k1 = dest_len - 1, k2 = len - 1; k2 >= 0; --k1, --k2) { \
+            carry += dest[k1] + add[k2]; \
+            dest[k1] = (PRUint8) carry; \
+            carry >>= 8; \
+        } \
     }
 
-#define PRNG_ADD_BITS_AND_CARRY(dest, dest_len, add, len) \
-    PRNG_ADD_BITS(dest, dest_len, add, len) \
-    PRNG_ADD_CARRY_ONLY(dest, k1, carry)
+#define PRNG_ADD_BITS_AND_CARRY(dest, dest_len, add, len, carry) \
+    PRNG_ADD_BITS(dest, dest_len, add, len, carry) \
+    PRNG_ADD_CARRY_ONLY(dest, dest_len - len, carry)
 
 /*
  * This function expands the internal state of the prng to fulfill any number
@@ -286,7 +292,6 @@
 	SHA256Context ctx;
 	unsigned int len;
 	unsigned int carry;
-	int k1;
 
  	SHA256_Begin(&ctx);
  	SHA256_Update(&ctx, data, sizeof data);
@@ -295,7 +300,8 @@
 	no_of_returned_bytes -= len;
 	/* The carry parameter is a bool (increment or not). 
 	 * This increments data if no_of_returned_bytes is not zero */
-	PRNG_ADD_CARRY_ONLY(data, (sizeof data)- 1, no_of_returned_bytes);
+        carry = no_of_returned_bytes;
+	PRNG_ADD_CARRY_ONLY(data, (sizeof data)- 1, carry);
     }
     PORT_Memset(data, 0, sizeof data); 
 }
@@ -315,7 +321,6 @@
     PRUint8 H[SHA256_LENGTH]; /* both H and w since they 
 			       * aren't used concurrently */
     unsigned int carry;
-    int k1, k2;
 
     if (!rng->isValid) {
 	PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
@@ -336,7 +341,7 @@
  	SHA256_Update(&ctx, rng->V_Data, sizeof rng->V_Data);
  	SHA256_Update(&ctx, additional_input, additional_input_len);
 	SHA256_End(&ctx, w, NULL, sizeof w);
-	PRNG_ADD_BITS_AND_CARRY(V(rng), VSize(rng), w, sizeof w)
+	PRNG_ADD_BITS_AND_CARRY(V(rng), VSize(rng), w, sizeof w, carry)
 	PORT_Memset(w, 0, sizeof w);
 #undef w 
     }
@@ -350,11 +355,12 @@
     /* advance our internal state... */
     rng->V_type = prngGenerateByteType;
     SHA256_HashBuf(H, rng->V_Data, sizeof rng->V_Data);
-    PRNG_ADD_BITS_AND_CARRY(V(rng), VSize(rng), H, sizeof H)
-    PRNG_ADD_BITS(V(rng), VSize(rng), rng->C, sizeof rng->C);
+    PRNG_ADD_BITS_AND_CARRY(V(rng), VSize(rng), H, sizeof H, carry)
+    PRNG_ADD_BITS(V(rng), VSize(rng), rng->C, sizeof rng->C, carry);
     PRNG_ADD_BITS_AND_CARRY(V(rng), VSize(rng), rng->reseed_counter, 
-					sizeof rng->reseed_counter)
-    PRNG_ADD_CARRY_ONLY(rng->reseed_counter,(sizeof rng->reseed_counter)-1, 1);
+					sizeof rng->reseed_counter, carry)
+    carry = 1;
+    PRNG_ADD_CARRY_ONLY(rng->reseed_counter,(sizeof rng->reseed_counter)-1, carry);
 
     /* continuous rng check */
     if (memcmp(V(rng), rng->oldV, sizeof rng->oldV) == 0) {
@@ -510,7 +516,7 @@
 
     PR_STATIC_ASSERT(sizeof(size_t) > 4);
 
-    if (bytes > PRNG_MAX_ADDITIONAL_BYTES) {
+    if (bytes > (size_t)PRNG_MAX_ADDITIONAL_BYTES) {
 	bytes = PRNG_MAX_ADDITIONAL_BYTES;
     }
 #else
diff --git a/nss/lib/freebl/dsa.c b/nss/lib/freebl/dsa.c
index ad3ce00..0da63ed 100644
--- a/nss/lib/freebl/dsa.c
+++ b/nss/lib/freebl/dsa.c
@@ -502,7 +502,7 @@
     mp_int u1, u2, v, w; /* intermediate values used in verification */
     mp_int y;            /* public key */
     mp_err err;
-    int dsa_subprime_len, dsa_signature_len, offset;
+    unsigned int dsa_subprime_len, dsa_signature_len, offset;
     SECItem localDigest;
     unsigned char localDigestData[DSA_MAX_SUBPRIME_LEN];
     SECStatus verified = SECFailure;
diff --git a/nss/lib/freebl/ec.c b/nss/lib/freebl/ec.c
index 6af242d..4435f91 100644
--- a/nss/lib/freebl/ec.c
+++ b/nss/lib/freebl/ec.c
@@ -543,6 +543,15 @@
 	return SECFailure;
     }
 
+    /*
+     * We fail if the public value is the point at infinity, since
+     * this produces predictable results.
+     */
+    if (ec_point_at_infinity(publicValue)) {
+	PORT_SetError(SEC_ERROR_BAD_KEY);
+	return SECFailure;
+    }
+
     MP_DIGITS(&k) = 0;
     memset(derivedSecret, 0, sizeof *derivedSecret);
     len = (ecParams->fieldID.size + 7) >> 3;  
diff --git a/nss/lib/freebl/ecl/ecl-priv.h b/nss/lib/freebl/ecl/ecl-priv.h
index 22dd355..16f80a4 100644
--- a/nss/lib/freebl/ecl/ecl-priv.h
+++ b/nss/lib/freebl/ecl/ecl-priv.h
@@ -29,40 +29,39 @@
 	((i) >= mpl_significant_bits((a))) ? 0 : mpl_get_bit((a), (i))
 
 #if !defined(MP_NO_MP_WORD) && !defined(MP_NO_ADD_WORD)
-#define MP_ADD_CARRY(a1, a2, s, cin, cout)   \
+#define MP_ADD_CARRY(a1, a2, s, carry)   \
     { mp_word w; \
-    w = ((mp_word)(cin)) + (a1) + (a2); \
+    w = ((mp_word)carry) + (a1) + (a2); \
     s = ACCUM(w); \
-    cout = CARRYOUT(w); }
+    carry = CARRYOUT(w); }
 
-#define MP_SUB_BORROW(a1, a2, s, bin, bout)   \
+#define MP_SUB_BORROW(a1, a2, s, borrow)   \
     { mp_word w; \
-    w = ((mp_word)(a1)) - (a2) - (bin); \
+    w = ((mp_word)(a1)) - (a2) - borrow; \
     s = ACCUM(w); \
-    bout = (w >> MP_DIGIT_BIT) & 1; }
+    borrow = (w >> MP_DIGIT_BIT) & 1; }
 
 #else
 /* NOTE, 
- * cin and cout could be the same variable.
- * bin and bout could be the same variable.
+ * carry and borrow are both read and written.
  * a1 or a2 and s could be the same variable.
  * don't trash those outputs until their respective inputs have
  * been read. */
-#define MP_ADD_CARRY(a1, a2, s, cin, cout)   \
+#define MP_ADD_CARRY(a1, a2, s, carry)   \
     { mp_digit tmp,sum; \
     tmp = (a1); \
     sum = tmp + (a2); \
     tmp = (sum < tmp);                     /* detect overflow */ \
-    s = sum += (cin); \
-    cout = tmp + (sum < (cin)); }
+    s = sum += carry; \
+    carry = tmp + (sum < carry); }
 
-#define MP_SUB_BORROW(a1, a2, s, bin, bout)   \
+#define MP_SUB_BORROW(a1, a2, s, borrow)   \
     { mp_digit tmp; \
     tmp = (a1); \
     s = tmp - (a2); \
     tmp = (s > tmp);                    /* detect borrow */ \
-    if ((bin) && !s--) tmp++;	\
-    bout = tmp; }
+    if (borrow && !s--) tmp++;	\
+    borrow = tmp; }
 #endif
 
 
diff --git a/nss/lib/freebl/ecl/ecl_gf.c b/nss/lib/freebl/ecl/ecl_gf.c
index 22047d5..d250d78 100644
--- a/nss/lib/freebl/ecl/ecl_gf.c
+++ b/nss/lib/freebl/ecl/ecl_gf.c
@@ -242,9 +242,10 @@
 	}
 
 #ifndef MPI_AMD64_ADD
-	MP_ADD_CARRY(a0, r0, r0, 0,     carry);
-	MP_ADD_CARRY(a1, r1, r1, carry, carry);
-	MP_ADD_CARRY(a2, r2, r2, carry, carry);
+        carry = 0;
+	MP_ADD_CARRY(a0, r0, r0, carry);
+	MP_ADD_CARRY(a1, r1, r1, carry);
+	MP_ADD_CARRY(a2, r2, r2, carry);
 #else
 	__asm__ (
                 "xorq   %3,%3           \n\t"
@@ -273,9 +274,10 @@
 		a1 = MP_DIGIT(&meth->irr,1);
 		a0 = MP_DIGIT(&meth->irr,0);
 #ifndef MPI_AMD64_ADD
-		MP_SUB_BORROW(r0, a0, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a1, r1, carry, carry);
-		MP_SUB_BORROW(r2, a2, r2, carry, carry);
+                carry = 0;
+		MP_SUB_BORROW(r0, a0, r0, carry);
+		MP_SUB_BORROW(r1, a1, r1, carry);
+		MP_SUB_BORROW(r2, a2, r2, carry);
 #else
 		__asm__ (
 			"subq   %3,%0           \n\t"
@@ -329,10 +331,11 @@
 	}
 
 #ifndef MPI_AMD64_ADD
-	MP_ADD_CARRY(a0, r0, r0, 0,     carry);
-	MP_ADD_CARRY(a1, r1, r1, carry, carry);
-	MP_ADD_CARRY(a2, r2, r2, carry, carry);
-	MP_ADD_CARRY(a3, r3, r3, carry, carry);
+        carry = 0;
+	MP_ADD_CARRY(a0, r0, r0, carry);
+	MP_ADD_CARRY(a1, r1, r1, carry);
+	MP_ADD_CARRY(a2, r2, r2, carry);
+	MP_ADD_CARRY(a3, r3, r3, carry);
 #else
 	__asm__ (
                 "xorq   %4,%4           \n\t"
@@ -364,10 +367,11 @@
 		a1 = MP_DIGIT(&meth->irr,1);
 		a0 = MP_DIGIT(&meth->irr,0);
 #ifndef MPI_AMD64_ADD
-		MP_SUB_BORROW(r0, a0, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a1, r1, carry, carry);
-		MP_SUB_BORROW(r2, a2, r2, carry, carry);
-		MP_SUB_BORROW(r3, a3, r3, carry, carry);
+                carry = 0;
+		MP_SUB_BORROW(r0, a0, r0, carry);
+		MP_SUB_BORROW(r1, a1, r1, carry);
+		MP_SUB_BORROW(r2, a2, r2, carry);
+		MP_SUB_BORROW(r3, a3, r3, carry);
 #else
 		__asm__ (
 			"subq   %4,%0           \n\t"
@@ -426,11 +430,12 @@
 		r0 = MP_DIGIT(b,0);
 	}
 
-	MP_ADD_CARRY(a0, r0, r0, 0,     carry);
-	MP_ADD_CARRY(a1, r1, r1, carry, carry);
-	MP_ADD_CARRY(a2, r2, r2, carry, carry);
-	MP_ADD_CARRY(a3, r3, r3, carry, carry);
-	MP_ADD_CARRY(a4, r4, r4, carry, carry);
+        carry = 0;
+	MP_ADD_CARRY(a0, r0, r0, carry);
+	MP_ADD_CARRY(a1, r1, r1, carry);
+	MP_ADD_CARRY(a2, r2, r2, carry);
+	MP_ADD_CARRY(a3, r3, r3, carry);
+	MP_ADD_CARRY(a4, r4, r4, carry);
 
 	MP_CHECKOK(s_mp_pad(r, 5));
 	MP_DIGIT(r, 4) = r4;
@@ -450,11 +455,12 @@
 		a2 = MP_DIGIT(&meth->irr,2);
 		a1 = MP_DIGIT(&meth->irr,1);
 		a0 = MP_DIGIT(&meth->irr,0);
-		MP_SUB_BORROW(r0, a0, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a1, r1, carry, carry);
-		MP_SUB_BORROW(r2, a2, r2, carry, carry);
-		MP_SUB_BORROW(r3, a3, r3, carry, carry);
-		MP_SUB_BORROW(r4, a4, r4, carry, carry);
+                carry = 0;
+		MP_SUB_BORROW(r0, a0, r0, carry);
+		MP_SUB_BORROW(r1, a1, r1, carry);
+		MP_SUB_BORROW(r2, a2, r2, carry);
+		MP_SUB_BORROW(r3, a3, r3, carry);
+		MP_SUB_BORROW(r4, a4, r4, carry);
 		MP_DIGIT(r, 4) = r4;
 		MP_DIGIT(r, 3) = r3;
 		MP_DIGIT(r, 2) = r2;
@@ -507,12 +513,13 @@
 		r0 = MP_DIGIT(b,0);
 	}
 
-	MP_ADD_CARRY(a0, r0, r0, 0,     carry);
-	MP_ADD_CARRY(a1, r1, r1, carry, carry);
-	MP_ADD_CARRY(a2, r2, r2, carry, carry);
-	MP_ADD_CARRY(a3, r3, r3, carry, carry);
-	MP_ADD_CARRY(a4, r4, r4, carry, carry);
-	MP_ADD_CARRY(a5, r5, r5, carry, carry);
+        carry = 0;
+	MP_ADD_CARRY(a0, r0, r0, carry);
+	MP_ADD_CARRY(a1, r1, r1, carry);
+	MP_ADD_CARRY(a2, r2, r2, carry);
+	MP_ADD_CARRY(a3, r3, r3, carry);
+	MP_ADD_CARRY(a4, r4, r4, carry);
+	MP_ADD_CARRY(a5, r5, r5, carry);
 
 	MP_CHECKOK(s_mp_pad(r, 6));
 	MP_DIGIT(r, 5) = r5;
@@ -534,12 +541,13 @@
 		a2 = MP_DIGIT(&meth->irr,2);
 		a1 = MP_DIGIT(&meth->irr,1);
 		a0 = MP_DIGIT(&meth->irr,0);
-		MP_SUB_BORROW(r0, a0, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a1, r1, carry, carry);
-		MP_SUB_BORROW(r2, a2, r2, carry, carry);
-		MP_SUB_BORROW(r3, a3, r3, carry, carry);
-		MP_SUB_BORROW(r4, a4, r4, carry, carry);
-		MP_SUB_BORROW(r5, a5, r5, carry, carry);
+                carry = 0;
+		MP_SUB_BORROW(r0, a0, r0, carry);
+		MP_SUB_BORROW(r1, a1, r1, carry);
+		MP_SUB_BORROW(r2, a2, r2, carry);
+		MP_SUB_BORROW(r3, a3, r3, carry);
+		MP_SUB_BORROW(r4, a4, r4, carry);
+		MP_SUB_BORROW(r5, a5, r5, carry);
 		MP_DIGIT(r, 5) = r5;
 		MP_DIGIT(r, 4) = r4;
 		MP_DIGIT(r, 3) = r3;
@@ -587,9 +595,10 @@
 	}
 
 #ifndef MPI_AMD64_ADD
-	MP_SUB_BORROW(r0, b0, r0, 0,     borrow);
-	MP_SUB_BORROW(r1, b1, r1, borrow, borrow);
-	MP_SUB_BORROW(r2, b2, r2, borrow, borrow);
+        borrow = 0;
+	MP_SUB_BORROW(r0, b0, r0, borrow);
+	MP_SUB_BORROW(r1, b1, r1, borrow);
+	MP_SUB_BORROW(r2, b2, r2, borrow);
 #else
 	__asm__ (
                 "xorq   %3,%3           \n\t"
@@ -610,9 +619,10 @@
 		b1 = MP_DIGIT(&meth->irr,1);
 		b0 = MP_DIGIT(&meth->irr,0);
 #ifndef MPI_AMD64_ADD
-		MP_ADD_CARRY(b0, r0, r0, 0,      borrow);
-		MP_ADD_CARRY(b1, r1, r1, borrow, borrow);
-		MP_ADD_CARRY(b2, r2, r2, borrow, borrow);
+                borrow = 0;
+		MP_ADD_CARRY(b0, r0, r0, borrow);
+		MP_ADD_CARRY(b1, r1, r1, borrow);
+		MP_ADD_CARRY(b2, r2, r2, borrow);
 #else
 		__asm__ (
 			"addq   %3,%0           \n\t"
@@ -675,10 +685,11 @@
 	}
 
 #ifndef MPI_AMD64_ADD
-	MP_SUB_BORROW(r0, b0, r0, 0,     borrow);
-	MP_SUB_BORROW(r1, b1, r1, borrow, borrow);
-	MP_SUB_BORROW(r2, b2, r2, borrow, borrow);
-	MP_SUB_BORROW(r3, b3, r3, borrow, borrow);
+        borrow = 0;
+	MP_SUB_BORROW(r0, b0, r0, borrow);
+	MP_SUB_BORROW(r1, b1, r1, borrow);
+	MP_SUB_BORROW(r2, b2, r2, borrow);
+	MP_SUB_BORROW(r3, b3, r3, borrow);
 #else
 	__asm__ (
                 "xorq   %4,%4           \n\t"
@@ -701,10 +712,11 @@
 		b1 = MP_DIGIT(&meth->irr,1);
 		b0 = MP_DIGIT(&meth->irr,0);
 #ifndef MPI_AMD64_ADD
-		MP_ADD_CARRY(b0, r0, r0, 0,      borrow);
-		MP_ADD_CARRY(b1, r1, r1, borrow, borrow);
-		MP_ADD_CARRY(b2, r2, r2, borrow, borrow);
-		MP_ADD_CARRY(b3, r3, r3, borrow, borrow);
+                borrow = 0;
+		MP_ADD_CARRY(b0, r0, r0, borrow);
+		MP_ADD_CARRY(b1, r1, r1, borrow);
+		MP_ADD_CARRY(b2, r2, r2, borrow);
+		MP_ADD_CARRY(b3, r3, r3, borrow);
 #else
 		__asm__ (
 			"addq   %4,%0           \n\t"
@@ -771,11 +783,12 @@
 		b0 = MP_DIGIT(b,0);
 	}
 
-	MP_SUB_BORROW(r0, b0, r0, 0,     borrow);
-	MP_SUB_BORROW(r1, b1, r1, borrow, borrow);
-	MP_SUB_BORROW(r2, b2, r2, borrow, borrow);
-	MP_SUB_BORROW(r3, b3, r3, borrow, borrow);
-	MP_SUB_BORROW(r4, b4, r4, borrow, borrow);
+        borrow = 0;
+	MP_SUB_BORROW(r0, b0, r0, borrow);
+	MP_SUB_BORROW(r1, b1, r1, borrow);
+	MP_SUB_BORROW(r2, b2, r2, borrow);
+	MP_SUB_BORROW(r3, b3, r3, borrow);
+	MP_SUB_BORROW(r4, b4, r4, borrow);
 
 	/* Do quick 'add' if we've gone under 0
 	 * (subtract the 2's complement of the curve field) */
@@ -785,10 +798,11 @@
 	 	b2 = MP_DIGIT(&meth->irr,2);
 		b1 = MP_DIGIT(&meth->irr,1);
 		b0 = MP_DIGIT(&meth->irr,0);
-		MP_ADD_CARRY(b0, r0, r0, 0,      borrow);
-		MP_ADD_CARRY(b1, r1, r1, borrow, borrow);
-		MP_ADD_CARRY(b2, r2, r2, borrow, borrow);
-		MP_ADD_CARRY(b3, r3, r3, borrow, borrow);
+                borrow = 0;
+		MP_ADD_CARRY(b0, r0, r0, borrow);
+		MP_ADD_CARRY(b1, r1, r1, borrow);
+		MP_ADD_CARRY(b2, r2, r2, borrow);
+		MP_ADD_CARRY(b3, r3, r3, borrow);
 	}
 	MP_CHECKOK(s_mp_pad(r, 5));
 	MP_DIGIT(r, 4) = r4;
@@ -843,12 +857,13 @@
 		b0 = MP_DIGIT(b,0);
 	}
 
-	MP_SUB_BORROW(r0, b0, r0, 0,     borrow);
-	MP_SUB_BORROW(r1, b1, r1, borrow, borrow);
-	MP_SUB_BORROW(r2, b2, r2, borrow, borrow);
-	MP_SUB_BORROW(r3, b3, r3, borrow, borrow);
-	MP_SUB_BORROW(r4, b4, r4, borrow, borrow);
-	MP_SUB_BORROW(r5, b5, r5, borrow, borrow);
+        borrow = 0;
+	MP_SUB_BORROW(r0, b0, r0, borrow);
+	MP_SUB_BORROW(r1, b1, r1, borrow);
+	MP_SUB_BORROW(r2, b2, r2, borrow);
+	MP_SUB_BORROW(r3, b3, r3, borrow);
+	MP_SUB_BORROW(r4, b4, r4, borrow);
+	MP_SUB_BORROW(r5, b5, r5, borrow);
 
 	/* Do quick 'add' if we've gone under 0
 	 * (subtract the 2's complement of the curve field) */
@@ -859,11 +874,12 @@
 	 	b2 = MP_DIGIT(&meth->irr,2);
 		b1 = MP_DIGIT(&meth->irr,1);
 		b0 = MP_DIGIT(&meth->irr,0);
-		MP_ADD_CARRY(b0, r0, r0, 0,      borrow);
-		MP_ADD_CARRY(b1, r1, r1, borrow, borrow);
-		MP_ADD_CARRY(b2, r2, r2, borrow, borrow);
-		MP_ADD_CARRY(b3, r3, r3, borrow, borrow);
-		MP_ADD_CARRY(b4, r4, r4, borrow, borrow);
+                borrow = 0;
+		MP_ADD_CARRY(b0, r0, r0, borrow);
+		MP_ADD_CARRY(b1, r1, r1, borrow);
+		MP_ADD_CARRY(b2, r2, r2, borrow);
+		MP_ADD_CARRY(b3, r3, r3, borrow);
+		MP_ADD_CARRY(b4, r4, r4, borrow);
 	}
 
 	MP_CHECKOK(s_mp_pad(r, 6));
diff --git a/nss/lib/freebl/ecl/ecl_mult.c b/nss/lib/freebl/ecl/ecl_mult.c
index a99ca82..5932828 100644
--- a/nss/lib/freebl/ecl/ecl_mult.c
+++ b/nss/lib/freebl/ecl/ecl_mult.c
@@ -129,7 +129,7 @@
 	mp_err res = MP_OKAY;
 	mp_int precomp[4][4][2];
 	const mp_int *a, *b;
-	int i, j;
+        unsigned int i, j;
 	int ai, bi, d;
 
 	ARGCHK(group != NULL, MP_BADARG);
@@ -236,7 +236,7 @@
 	mp_zero(rx);
 	mp_zero(ry);
 
-	for (i = d - 1; i >= 0; i--) {
+        for (i = d; i-- > 0;) {
 		ai = MP_GET_BIT(a, 2 * i + 1);
 		ai <<= 1;
 		ai |= MP_GET_BIT(a, 2 * i);
diff --git a/nss/lib/freebl/ecl/ecp_256.c b/nss/lib/freebl/ecl/ecp_256.c
index a834d15..936ee6d 100644
--- a/nss/lib/freebl/ecl/ecp_256.c
+++ b/nss/lib/freebl/ecl/ecp_256.c
@@ -68,115 +68,118 @@
 		r7 = MP_DIGIT(a,7);
 
 		/* sum 1 */
-		MP_ADD_CARRY(r3, a11, r3, 0,     carry);
-		MP_ADD_CARRY(r4, a12, r4, carry, carry);
-		MP_ADD_CARRY(r5, a13, r5, carry, carry);
-		MP_ADD_CARRY(r6, a14, r6, carry, carry);
-		MP_ADD_CARRY(r7, a15, r7, carry, carry);
-		r8 = carry;
-		MP_ADD_CARRY(r3, a11, r3, 0,     carry);
-		MP_ADD_CARRY(r4, a12, r4, carry, carry);
-		MP_ADD_CARRY(r5, a13, r5, carry, carry);
-		MP_ADD_CARRY(r6, a14, r6, carry, carry);
-		MP_ADD_CARRY(r7, a15, r7, carry, carry);
-		r8 += carry;
+                carry = 0;
+		MP_ADD_CARRY(r3, a11, r3, carry);
+		MP_ADD_CARRY(r4, a12, r4, carry);
+		MP_ADD_CARRY(r5, a13, r5, carry);
+		MP_ADD_CARRY(r6, a14, r6, carry);
+		MP_ADD_CARRY(r7, a15, r7, carry);
+		r8 = carry; carry = 0;
+		MP_ADD_CARRY(r3, a11, r3, carry);
+		MP_ADD_CARRY(r4, a12, r4, carry);
+		MP_ADD_CARRY(r5, a13, r5, carry);
+		MP_ADD_CARRY(r6, a14, r6, carry);
+		MP_ADD_CARRY(r7, a15, r7, carry);
+		r8 += carry; carry = 0;
 		/* sum 2 */
-		MP_ADD_CARRY(r3, a12, r3, 0,     carry);
-		MP_ADD_CARRY(r4, a13, r4, carry, carry);
-		MP_ADD_CARRY(r5, a14, r5, carry, carry);
-		MP_ADD_CARRY(r6, a15, r6, carry, carry);
-		MP_ADD_CARRY(r7,   0, r7, carry, carry);
-		r8 += carry;
+		MP_ADD_CARRY(r3, a12, r3, carry);
+		MP_ADD_CARRY(r4, a13, r4, carry);
+		MP_ADD_CARRY(r5, a14, r5, carry);
+		MP_ADD_CARRY(r6, a15, r6, carry);
+		MP_ADD_CARRY(r7,   0, r7, carry);
+		r8 += carry; carry = 0;
 		/* combine last bottom of sum 3 with second sum 2 */
-		MP_ADD_CARRY(r0, a8,  r0, 0,     carry);
-		MP_ADD_CARRY(r1, a9,  r1, carry, carry);
-		MP_ADD_CARRY(r2, a10, r2, carry, carry);
-		MP_ADD_CARRY(r3, a12, r3, carry, carry);
-		MP_ADD_CARRY(r4, a13, r4, carry, carry);
-		MP_ADD_CARRY(r5, a14, r5, carry, carry);
-		MP_ADD_CARRY(r6, a15, r6, carry, carry);
-		MP_ADD_CARRY(r7, a15, r7, carry, carry); /* from sum 3 */
-		r8 += carry;
+		MP_ADD_CARRY(r0, a8,  r0, carry);
+		MP_ADD_CARRY(r1, a9,  r1, carry);
+		MP_ADD_CARRY(r2, a10, r2, carry);
+		MP_ADD_CARRY(r3, a12, r3, carry);
+		MP_ADD_CARRY(r4, a13, r4, carry);
+		MP_ADD_CARRY(r5, a14, r5, carry);
+		MP_ADD_CARRY(r6, a15, r6, carry);
+		MP_ADD_CARRY(r7, a15, r7, carry); /* from sum 3 */
+		r8 += carry; carry = 0;
 		/* sum 3 (rest of it)*/
-		MP_ADD_CARRY(r6, a14, r6, 0,     carry);
-		MP_ADD_CARRY(r7,   0, r7, carry, carry);
-		r8 += carry;
+		MP_ADD_CARRY(r6, a14, r6, carry);
+		MP_ADD_CARRY(r7,   0, r7, carry);
+		r8 += carry; carry = 0;
 		/* sum 4 (rest of it)*/
-		MP_ADD_CARRY(r0, a9,  r0, 0,     carry);
-		MP_ADD_CARRY(r1, a10, r1, carry, carry);
-		MP_ADD_CARRY(r2, a11, r2, carry, carry);
-		MP_ADD_CARRY(r3, a13, r3, carry, carry);
-		MP_ADD_CARRY(r4, a14, r4, carry, carry);
-		MP_ADD_CARRY(r5, a15, r5, carry, carry);
-		MP_ADD_CARRY(r6, a13, r6, carry, carry);
-		MP_ADD_CARRY(r7, a8,  r7, carry, carry);
-		r8 += carry;
+		MP_ADD_CARRY(r0, a9,  r0, carry);
+		MP_ADD_CARRY(r1, a10, r1, carry);
+		MP_ADD_CARRY(r2, a11, r2, carry);
+		MP_ADD_CARRY(r3, a13, r3, carry);
+		MP_ADD_CARRY(r4, a14, r4, carry);
+		MP_ADD_CARRY(r5, a15, r5, carry);
+		MP_ADD_CARRY(r6, a13, r6, carry);
+		MP_ADD_CARRY(r7, a8,  r7, carry);
+		r8 += carry; carry = 0;
 		/* diff 5 */
-		MP_SUB_BORROW(r0, a11, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a12, r1, carry, carry);
-		MP_SUB_BORROW(r2, a13, r2, carry, carry);
-		MP_SUB_BORROW(r3,   0, r3, carry, carry);
-		MP_SUB_BORROW(r4,   0, r4, carry, carry);
-		MP_SUB_BORROW(r5,   0, r5, carry, carry);
-		MP_SUB_BORROW(r6, a8,  r6, carry, carry);
-		MP_SUB_BORROW(r7, a10, r7, carry, carry);
-		r8 -= carry;
+		MP_SUB_BORROW(r0, a11, r0, carry);
+		MP_SUB_BORROW(r1, a12, r1, carry);
+		MP_SUB_BORROW(r2, a13, r2, carry);
+		MP_SUB_BORROW(r3,   0, r3, carry);
+		MP_SUB_BORROW(r4,   0, r4, carry);
+		MP_SUB_BORROW(r5,   0, r5, carry);
+		MP_SUB_BORROW(r6, a8,  r6, carry);
+		MP_SUB_BORROW(r7, a10, r7, carry);
+		r8 -= carry; carry = 0;
 		/* diff 6 */
-		MP_SUB_BORROW(r0, a12, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a13, r1, carry, carry);
-		MP_SUB_BORROW(r2, a14, r2, carry, carry);
-		MP_SUB_BORROW(r3, a15, r3, carry, carry);
-		MP_SUB_BORROW(r4,   0, r4, carry, carry);
-		MP_SUB_BORROW(r5,   0, r5, carry, carry);
-		MP_SUB_BORROW(r6, a9,  r6, carry, carry);
-		MP_SUB_BORROW(r7, a11, r7, carry, carry);
-		r8 -= carry;
+		MP_SUB_BORROW(r0, a12, r0, carry);
+		MP_SUB_BORROW(r1, a13, r1, carry);
+		MP_SUB_BORROW(r2, a14, r2, carry);
+		MP_SUB_BORROW(r3, a15, r3, carry);
+		MP_SUB_BORROW(r4,   0, r4, carry);
+		MP_SUB_BORROW(r5,   0, r5, carry);
+		MP_SUB_BORROW(r6, a9,  r6, carry);
+		MP_SUB_BORROW(r7, a11, r7, carry);
+		r8 -= carry; carry = 0;
 		/* diff 7 */
-		MP_SUB_BORROW(r0, a13, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a14, r1, carry, carry);
-		MP_SUB_BORROW(r2, a15, r2, carry, carry);
-		MP_SUB_BORROW(r3, a8,  r3, carry, carry);
-		MP_SUB_BORROW(r4, a9,  r4, carry, carry);
-		MP_SUB_BORROW(r5, a10, r5, carry, carry);
-		MP_SUB_BORROW(r6, 0,   r6, carry, carry);
-		MP_SUB_BORROW(r7, a12, r7, carry, carry);
-		r8 -= carry;
+		MP_SUB_BORROW(r0, a13, r0, carry);
+		MP_SUB_BORROW(r1, a14, r1, carry);
+		MP_SUB_BORROW(r2, a15, r2, carry);
+		MP_SUB_BORROW(r3, a8,  r3, carry);
+		MP_SUB_BORROW(r4, a9,  r4, carry);
+		MP_SUB_BORROW(r5, a10, r5, carry);
+		MP_SUB_BORROW(r6, 0,   r6, carry);
+		MP_SUB_BORROW(r7, a12, r7, carry);
+		r8 -= carry; carry = 0;
 		/* diff 8 */
-		MP_SUB_BORROW(r0, a14, r0, 0,     carry);
-		MP_SUB_BORROW(r1, a15, r1, carry, carry);
-		MP_SUB_BORROW(r2, 0,   r2, carry, carry);
-		MP_SUB_BORROW(r3, a9,  r3, carry, carry);
-		MP_SUB_BORROW(r4, a10, r4, carry, carry);
-		MP_SUB_BORROW(r5, a11, r5, carry, carry);
-		MP_SUB_BORROW(r6, 0,   r6, carry, carry);
-		MP_SUB_BORROW(r7, a13, r7, carry, carry);
+		MP_SUB_BORROW(r0, a14, r0, carry);
+		MP_SUB_BORROW(r1, a15, r1, carry);
+		MP_SUB_BORROW(r2, 0,   r2, carry);
+		MP_SUB_BORROW(r3, a9,  r3, carry);
+		MP_SUB_BORROW(r4, a10, r4, carry);
+		MP_SUB_BORROW(r5, a11, r5, carry);
+		MP_SUB_BORROW(r6, 0,   r6, carry);
+		MP_SUB_BORROW(r7, a13, r7, carry);
 		r8 -= carry;
 
 		/* reduce the overflows */
 		while (r8 > 0) {
-			mp_digit r8_d = r8;
-			MP_ADD_CARRY(r0, r8_d,         r0, 0,     carry);
-			MP_ADD_CARRY(r1, 0,            r1, carry, carry);
-			MP_ADD_CARRY(r2, 0,            r2, carry, carry);
-			MP_ADD_CARRY(r3, 0-r8_d,       r3, carry, carry);
-			MP_ADD_CARRY(r4, MP_DIGIT_MAX, r4, carry, carry);
-			MP_ADD_CARRY(r5, MP_DIGIT_MAX, r5, carry, carry);
-			MP_ADD_CARRY(r6, 0-(r8_d+1),   r6, carry, carry);
-			MP_ADD_CARRY(r7, (r8_d-1),     r7, carry, carry);
+			mp_digit r8_d = r8; carry = 0;
+			carry = 0;
+			MP_ADD_CARRY(r0, r8_d,         r0, carry);
+			MP_ADD_CARRY(r1, 0,            r1, carry);
+			MP_ADD_CARRY(r2, 0,            r2, carry);
+			MP_ADD_CARRY(r3, 0-r8_d,       r3, carry);
+			MP_ADD_CARRY(r4, MP_DIGIT_MAX, r4, carry);
+			MP_ADD_CARRY(r5, MP_DIGIT_MAX, r5, carry);
+			MP_ADD_CARRY(r6, 0-(r8_d+1),   r6, carry);
+			MP_ADD_CARRY(r7, (r8_d-1),     r7, carry);
 			r8 = carry;
 		}
 
 		/* reduce the underflows */
 		while (r8 < 0) {
 			mp_digit r8_d = -r8;
-			MP_SUB_BORROW(r0, r8_d,         r0, 0,     carry);
-			MP_SUB_BORROW(r1, 0,            r1, carry, carry);
-			MP_SUB_BORROW(r2, 0,            r2, carry, carry);
-			MP_SUB_BORROW(r3, 0-r8_d,       r3, carry, carry);
-			MP_SUB_BORROW(r4, MP_DIGIT_MAX, r4, carry, carry);
-			MP_SUB_BORROW(r5, MP_DIGIT_MAX, r5, carry, carry);
-			MP_SUB_BORROW(r6, 0-(r8_d+1),   r6, carry, carry);
-			MP_SUB_BORROW(r7, (r8_d-1),     r7, carry, carry);
+			carry = 0;
+			MP_SUB_BORROW(r0, r8_d,         r0, carry);
+			MP_SUB_BORROW(r1, 0,            r1, carry);
+			MP_SUB_BORROW(r2, 0,            r2, carry);
+			MP_SUB_BORROW(r3, 0-r8_d,       r3, carry);
+			MP_SUB_BORROW(r4, MP_DIGIT_MAX, r4, carry);
+			MP_SUB_BORROW(r5, MP_DIGIT_MAX, r5, carry);
+			MP_SUB_BORROW(r6, 0-(r8_d+1),   r6, carry);
+			MP_SUB_BORROW(r7, (r8_d-1),     r7, carry);
 			r8 = 0-carry;
 		}
 		if (a != r) {
@@ -229,69 +232,82 @@
 		r0 = MP_DIGIT(a,0);
 
 		/* sum 1 */
-		MP_ADD_CARRY(r1, a5h << 32, r1, 0,     carry);
-		MP_ADD_CARRY(r2, a6,        r2, carry, carry);
-		MP_ADD_CARRY(r3, a7,        r3, carry, carry);
-		r4 = carry;
-		MP_ADD_CARRY(r1, a5h << 32, r1, 0,     carry);
-		MP_ADD_CARRY(r2, a6,        r2, carry, carry);
-		MP_ADD_CARRY(r3, a7,        r3, carry, carry);
-		r4 += carry;
+                carry = 0;
+		carry = 0;
+		MP_ADD_CARRY(r1, a5h << 32, r1, carry);
+		MP_ADD_CARRY(r2, a6,        r2, carry);
+		MP_ADD_CARRY(r3, a7,        r3, carry);
+		r4 = carry; carry = 0;
+		carry = 0;
+		MP_ADD_CARRY(r1, a5h << 32, r1, carry);
+		MP_ADD_CARRY(r2, a6,        r2, carry);
+		MP_ADD_CARRY(r3, a7,        r3, carry);
+		r4 += carry; carry = 0;
 		/* sum 2 */
-		MP_ADD_CARRY(r1, a6l,       r1, 0,     carry);
-		MP_ADD_CARRY(r2, a6h | a7l, r2, carry, carry);
-		MP_ADD_CARRY(r3, a7h,       r3, carry, carry);
-		r4 += carry;
-		MP_ADD_CARRY(r1, a6l,       r1, 0,     carry);
-		MP_ADD_CARRY(r2, a6h | a7l, r2, carry, carry);
-		MP_ADD_CARRY(r3, a7h,       r3, carry, carry);
-		r4 += carry;
+		carry = 0;
+		MP_ADD_CARRY(r1, a6l,       r1, carry);
+		MP_ADD_CARRY(r2, a6h | a7l, r2, carry);
+		MP_ADD_CARRY(r3, a7h,       r3, carry);
+		r4 += carry; carry = 0;
+		carry = 0;
+		MP_ADD_CARRY(r1, a6l,       r1, carry);
+		MP_ADD_CARRY(r2, a6h | a7l, r2, carry);
+		MP_ADD_CARRY(r3, a7h,       r3, carry);
+		r4 += carry; carry = 0;
 
 		/* sum 3 */
-		MP_ADD_CARRY(r0, a4,        r0, 0,     carry);
-		MP_ADD_CARRY(r1, a5l >> 32, r1, carry, carry);
-		MP_ADD_CARRY(r2, 0,         r2, carry, carry);
-		MP_ADD_CARRY(r3, a7,        r3, carry, carry);
-		r4 += carry;
+		carry = 0;
+		MP_ADD_CARRY(r0, a4,        r0, carry);
+		MP_ADD_CARRY(r1, a5l >> 32, r1, carry);
+		MP_ADD_CARRY(r2, 0,         r2, carry);
+		MP_ADD_CARRY(r3, a7,        r3, carry);
+		r4 += carry; carry = 0;
 		/* sum 4 */
-		MP_ADD_CARRY(r0, a4h | a5l,     r0, 0,     carry);
-		MP_ADD_CARRY(r1, a5h|(a6h<<32), r1, carry, carry);
-		MP_ADD_CARRY(r2, a7,            r2, carry, carry);
-		MP_ADD_CARRY(r3, a6h | a4l,     r3, carry, carry);
+		carry = 0;
+		MP_ADD_CARRY(r0, a4h | a5l,     r0, carry);
+		MP_ADD_CARRY(r1, a5h|(a6h<<32), r1, carry);
+		MP_ADD_CARRY(r2, a7,            r2, carry);
+		MP_ADD_CARRY(r3, a6h | a4l,     r3, carry);
 		r4 += carry;
 		/* diff 5 */
-		MP_SUB_BORROW(r0, a5h | a6l,    r0, 0,     carry);
-		MP_SUB_BORROW(r1, a6h,          r1, carry, carry);
-		MP_SUB_BORROW(r2, 0,            r2, carry, carry);
-		MP_SUB_BORROW(r3, (a4l>>32)|a5l,r3, carry, carry);
+		carry = 0;
+		MP_SUB_BORROW(r0, a5h | a6l,    r0, carry);
+		MP_SUB_BORROW(r1, a6h,          r1, carry);
+		MP_SUB_BORROW(r2, 0,            r2, carry);
+		MP_SUB_BORROW(r3, (a4l>>32)|a5l,r3, carry);
 		r4 -= carry;
 		/* diff 6 */
-		MP_SUB_BORROW(r0, a6,  		r0, 0,     carry);
-		MP_SUB_BORROW(r1, a7,           r1, carry, carry);
-		MP_SUB_BORROW(r2, 0,            r2, carry, carry);
-		MP_SUB_BORROW(r3, a4h|(a5h<<32),r3, carry, carry);
+		carry = 0;
+		MP_SUB_BORROW(r0, a6,  		r0, carry);
+		MP_SUB_BORROW(r1, a7,           r1, carry);
+		MP_SUB_BORROW(r2, 0,            r2, carry);
+		MP_SUB_BORROW(r3, a4h|(a5h<<32),r3, carry);
 		r4 -= carry;
 		/* diff 7 */
-		MP_SUB_BORROW(r0, a6h|a7l,	r0, 0,     carry);
-		MP_SUB_BORROW(r1, a7h|a4l,      r1, carry, carry);
-		MP_SUB_BORROW(r2, a4h|a5l,      r2, carry, carry);
-		MP_SUB_BORROW(r3, a6l,          r3, carry, carry);
+		carry = 0;
+		MP_SUB_BORROW(r0, a6h|a7l,	r0, carry);
+		MP_SUB_BORROW(r1, a7h|a4l,      r1, carry);
+		MP_SUB_BORROW(r2, a4h|a5l,      r2, carry);
+		MP_SUB_BORROW(r3, a6l,          r3, carry);
 		r4 -= carry;
 		/* diff 8 */
-		MP_SUB_BORROW(r0, a7,	        r0, 0,     carry);
-		MP_SUB_BORROW(r1, a4h<<32,      r1, carry, carry);
-		MP_SUB_BORROW(r2, a5,           r2, carry, carry);
-		MP_SUB_BORROW(r3, a6h<<32,      r3, carry, carry);
+		carry = 0;
+		MP_SUB_BORROW(r0, a7,	        r0, carry);
+		MP_SUB_BORROW(r1, a4h<<32,      r1, carry);
+		MP_SUB_BORROW(r2, a5,           r2, carry);
+		MP_SUB_BORROW(r3, a6h<<32,      r3, carry);
 		r4 -= carry;
 
 		/* reduce the overflows */
 		while (r4 > 0) {
 			mp_digit r4_long = r4;
 			mp_digit r4l = (r4_long << 32);
-			MP_ADD_CARRY(r0, r4_long,      r0, 0,     carry);
-			MP_ADD_CARRY(r1, 0-r4l,        r1, carry, carry);
-			MP_ADD_CARRY(r2, MP_DIGIT_MAX, r2, carry, carry);
-			MP_ADD_CARRY(r3, r4l-r4_long-1,r3, carry, carry);
+                        carry = 0;
+			carry = 0;
+			MP_ADD_CARRY(r0, r4_long,      r0, carry);
+			MP_ADD_CARRY(r1, 0-r4l,        r1, carry);
+			MP_ADD_CARRY(r2, MP_DIGIT_MAX, r2, carry);
+			MP_ADD_CARRY(r3, r4l-r4_long-1,r3, carry);
 			r4 = carry;
 		}
 
@@ -299,10 +315,11 @@
 		while (r4 < 0) {
 			mp_digit r4_long = -r4;
 			mp_digit r4l = (r4_long << 32);
-			MP_SUB_BORROW(r0, r4_long,      r0, 0,     carry);
-			MP_SUB_BORROW(r1, 0-r4l,        r1, carry, carry);
-			MP_SUB_BORROW(r2, MP_DIGIT_MAX, r2, carry, carry);
-			MP_SUB_BORROW(r3, r4l-r4_long-1,r3, carry, carry);
+			carry = 0;
+			MP_SUB_BORROW(r0, r4_long,      r0, carry);
+			MP_SUB_BORROW(r1, 0-r4l,        r1, carry);
+			MP_SUB_BORROW(r2, MP_DIGIT_MAX, r2, carry);
+			MP_SUB_BORROW(r3, r4l-r4_long-1,r3, carry);
 			r4 = 0-carry;
 		}
 
diff --git a/nss/lib/freebl/ecl/ecp_256_32.c b/nss/lib/freebl/ecl/ecp_256_32.c
index 815cc91..cd8cd23 100644
--- a/nss/lib/freebl/ecl/ecp_256_32.c
+++ b/nss/lib/freebl/ecl/ecp_256_32.c
@@ -1254,12 +1254,12 @@
 #define BYTESWAP64(x) OSSwapInt64(x)
 #else
 #define BYTESWAP32(x) \
-    ((x) >> 24 | (x) >> 8 & 0xff00 | ((x) & 0xff00) << 8 | (x) << 24)
+    (((x) >> 24) | (((x) >> 8) & 0xff00) | (((x) & 0xff00) << 8) | ((x) << 24))
 #define BYTESWAP64(x) \
-    ((x) >> 56 | (x) >> 40 & 0xff00 | \
-     (x) >> 24 & 0xff0000 | (x) >> 8 & 0xff000000 | \
-     ((x) & 0xff000000) << 8 | ((x) & 0xff0000) << 24 | \
-     ((x) & 0xff00) << 40 | (x) << 56)
+    (((x) >> 56) | (((x) >> 40) & 0xff00) | \
+     (((x) >> 24) & 0xff0000) | (((x) >> 8) & 0xff000000) | \
+     (((x) & 0xff000000) << 8) | (((x) & 0xff0000) << 24) | \
+     (((x) & 0xff00) << 40) | ((x) << 56))
 #endif
 
 #ifdef MP_USE_UINT_DIGIT
diff --git a/nss/lib/freebl/ecl/ecp_521.c b/nss/lib/freebl/ecl/ecp_521.c
index 7eac0f0..f70c2f4 100644
--- a/nss/lib/freebl/ecl/ecp_521.c
+++ b/nss/lib/freebl/ecl/ecp_521.c
@@ -17,7 +17,7 @@
 {
 	mp_err res = MP_OKAY;
 	int a_bits = mpl_significant_bits(a);
-	int i;
+	unsigned int i;
 
 	/* m1, m2 are statically-allocated mp_int of exactly the size we need */
 	mp_int m1;
diff --git a/nss/lib/freebl/ecl/ecp_jac.c b/nss/lib/freebl/ecl/ecp_jac.c
index c7bb239..f174b16 100644
--- a/nss/lib/freebl/ecl/ecp_jac.c
+++ b/nss/lib/freebl/ecl/ecp_jac.c
@@ -144,6 +144,20 @@
 	MP_CHECKOK(group->meth->field_sub(&A, px, &C, group->meth));
 	MP_CHECKOK(group->meth->field_sub(&B, py, &D, group->meth));
 
+	if (mp_cmp_z(&C) == 0) {
+		/* P == Q or P == -Q */
+		if (mp_cmp_z(&D) == 0) {
+			/* P == Q */
+			/* It is cheaper to double (qx, qy, 1) than (px, py, pz). */
+			MP_DIGIT(&D, 0) = 1; /* Set D to 1. */
+			MP_CHECKOK(ec_GFp_pt_dbl_jac(qx, qy, &D, rx, ry, rz, group));
+		} else {
+			/* P == -Q */
+			MP_CHECKOK(ec_GFp_pt_set_inf_jac(rx, ry, rz));
+		}
+		goto CLEANUP;
+	}
+
 	/* C2 = C^2, C3 = C^3 */
 	MP_CHECKOK(group->meth->field_sqr(&C, &C2, group->meth));
 	MP_CHECKOK(group->meth->field_mul(&C, &C2, &C3, group->meth));
@@ -205,7 +219,8 @@
 	MP_CHECKOK(mp_init(&M));
 	MP_CHECKOK(mp_init(&S));
 
-	if (ec_GFp_pt_is_inf_jac(px, py, pz) == MP_YES) {
+	/* P == inf or P == -P */
+	if (ec_GFp_pt_is_inf_jac(px, py, pz) == MP_YES || mp_cmp_z(py) == 0) {
 		MP_CHECKOK(ec_GFp_pt_set_inf_jac(rx, ry, rz));
 		goto CLEANUP;
 	}
@@ -372,7 +387,7 @@
 	mp_int precomp[4][4][2];
 	mp_int rz;
 	const mp_int *a, *b;
-	int i, j;
+	unsigned int i, j;
 	int ai, bi, d;
 
 	for (i = 0; i < 4; i++) {
@@ -479,7 +494,7 @@
 	MP_CHECKOK(mp_init(&rz));
 	MP_CHECKOK(ec_GFp_pt_set_inf_jac(rx, ry, &rz));
 
-	for (i = d - 1; i >= 0; i--) {
+        for (i = d; i-- > 0;) {
 		ai = MP_GET_BIT(a, 2 * i + 1);
 		ai <<= 1;
 		ai |= MP_GET_BIT(a, 2 * i);
diff --git a/nss/lib/freebl/ecl/ecp_jm.c b/nss/lib/freebl/ecl/ecp_jm.c
index b1a3dc8..2d56412 100644
--- a/nss/lib/freebl/ecl/ecp_jm.c
+++ b/nss/lib/freebl/ecl/ecp_jm.c
@@ -16,7 +16,7 @@
  * output that is still field-encoded.
  *
  */
-mp_err
+static mp_err
 ec_GFp_pt_dbl_jm(const mp_int *px, const mp_int *py, const mp_int *pz,
 				 const mp_int *paz4, mp_int *rx, mp_int *ry, mp_int *rz,
 				 mp_int *raz4, mp_int scratch[], const ECGroup *group)
@@ -86,7 +86,7 @@
  * Uses mixed Modified_Jacobian-affine coordinates. Assumes input is
  * already field-encoded using field_enc, and returns output that is still
  * field-encoded. */
-mp_err
+static mp_err
 ec_GFp_pt_add_jm_aff(const mp_int *px, const mp_int *py, const mp_int *pz,
 					 const mp_int *paz4, const mp_int *qx,
 					 const mp_int *qy, mp_int *rx, mp_int *ry, mp_int *rz,
diff --git a/nss/lib/freebl/intel-gcm.h b/nss/lib/freebl/intel-gcm.h
index 22f364d..6dfbc3c 100644
--- a/nss/lib/freebl/intel-gcm.h
+++ b/nss/lib/freebl/intel-gcm.h
@@ -7,15 +7,15 @@
 /* Copyright(c) 2013, Intel Corp.                                             */
 /******************************************************************************/
 /* Reference:                                                                 */
-/* [1] Shay Gueron, Michael E. Kounavis: Intel® Carry-Less Multiplication     */
+/* [1] Shay Gueron, Michael E. Kounavis: Intel(R) Carry-Less Multiplication   */
 /*     Instruction and its Usage for Computing the GCM Mode (Rev. 2.01)       */
 /*     http://software.intel.com/sites/default/files/article/165685/clmul-wp-r*/
 /*ev-2.01-2012-09-21.pdf                                                      */
 /* [2] S. Gueron, M. E. Kounavis: Efficient Implementation of the Galois      */
 /*     Counter Mode Using a Carry-less Multiplier and a Fast Reduction        */
-/*     Algorithm. Information Processing Letters 110: 549–553 (2010).         */
-/* [3] S. Gueron: AES Performance on the 2nd Generation Intel® Core™ Processor*/
-/*     Family (to be posted) (2012).                                          */
+/*     Algorithm. Information Processing Letters 110: 549-553 (2010).         */
+/* [3] S. Gueron: AES Performance on the 2nd Generation Intel(R) Core(TM)     */
+/*     Processor Family (to be posted) (2012).                                */
 /* [4] S. Gueron: Fast GHASH computations for speeding up AES-GCM (to be      */
 /*     published) (2012).                                                     */
 
@@ -41,9 +41,9 @@
 			const unsigned char *inbuf, unsigned int inlen,
 			unsigned int blocksize);
 
-/* Prorotypes of functions in the assembler file for fast AES-GCM, using 
+/* Prototypes of functions in the assembler file for fast AES-GCM, using 
    Intel AES-NI and CLMUL-NI, as described in [1]
-   [1] Shay Gueron, Michael E. Kounavis: Intel® Carry-Less Multiplication 
+   [1] Shay Gueron, Michael E. Kounavis: Intel(R) Carry-Less Multiplication
        Instruction and its Usage for Computing the GCM Mode                */
        
 /* Prepares the constants used in the aggregated reduction method */
diff --git a/nss/lib/freebl/md5.c b/nss/lib/freebl/md5.c
index 1a0916e..6ac15b6 100644
--- a/nss/lib/freebl/md5.c
+++ b/nss/lib/freebl/md5.c
@@ -259,7 +259,7 @@
 	(i32)
 #else
 #define lendian(i32) \
-	(tmp = i32 >> 16 | i32 << 16, (tmp & MASK) << 8 | tmp >> 8 & MASK)
+	(tmp = (i32 >> 16) | (i32 << 16), ((tmp & MASK) << 8) | ((tmp >> 8) & MASK))
 #endif
 
 #ifndef IS_LITTLE_ENDIAN
diff --git a/nss/lib/freebl/mpi/mpcpucache.c b/nss/lib/freebl/mpi/mpcpucache.c
index 9a4a9d3..9250061 100644
--- a/nss/lib/freebl/mpi/mpcpucache.c
+++ b/nss/lib/freebl/mpi/mpcpucache.c
@@ -3,6 +3,7 @@
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 #include "mpi.h"
+#include "prtypes.h"
 
 /*
  * This file implements a single function: s_mpi_getProcessorLineSize();
@@ -619,35 +620,17 @@
 s_mpi_is_sse2()
 {
     unsigned long eax, ebx, ecx, edx;
-    int manufacturer = MAN_UNKNOWN;
-    int i;
-    char string[13];
 
     if (is386() || is486()) {
 	return 0;
     }
     freebl_cpuid(0, &eax, &ebx, &ecx, &edx);
-    /* string holds the CPU's manufacturer ID string - a twelve
-     * character ASCII string stored in ebx, edx, ecx, and
-     * the 32-bit extended feature flags are in edx, ecx.
-     */
-    *(int *)string = ebx;
-    *(int *)&string[4] = (int)edx;
-    *(int *)&string[8] = (int)ecx;
-    string[12] = 0;
 
     /* has no SSE2 extensions */
     if (eax == 0) {
 	return 0;
     }
 
-    for (i=0; i < n_manufacturers; i++) {
-	if ( strcmp(manMap[i],string) == 0) {
-	    manufacturer = i;
-	    break;
-	}
-    }
-
     freebl_cpuid(1,&eax,&ebx,&ecx,&edx);
     return (edx & SSE2_FLAG) == SSE2_FLAG;
 }
@@ -657,11 +640,12 @@
 s_mpi_getProcessorLineSize()
 {
     unsigned long eax, ebx, ecx, edx;
+    PRUint32 cpuid[3];
     unsigned long cpuidLevel;
     unsigned long cacheLineSize = 0;
     int manufacturer = MAN_UNKNOWN;
     int i;
-    char string[65];
+    char string[13];
 
 #if !defined(AMD_64)
     if (is386()) {
@@ -678,9 +662,10 @@
      * character ASCII string stored in ebx, edx, ecx, and
      * the 32-bit extended feature flags are in edx, ecx.
      */
-    *(int *)string = ebx;
-    *(int *)&string[4] = (int)edx;
-    *(int *)&string[8] = (int)ecx;
+    cpuid[0] = ebx;
+    cpuid[1] = ecx;
+    cpuid[2] = edx;
+    memcpy(string, cpuid, sizeof(cpuid));
     string[12] = 0;
 
     manufacturer = MAN_UNKNOWN;
diff --git a/nss/lib/freebl/mpi/mpi-priv.h b/nss/lib/freebl/mpi/mpi-priv.h
index e81d0fe..7a0725f 100644
--- a/nss/lib/freebl/mpi/mpi-priv.h
+++ b/nss/lib/freebl/mpi/mpi-priv.h
@@ -254,8 +254,10 @@
                             mp_digit divisor, mp_digit *quot, mp_digit *rem);
 
 /* c += a * b * (MP_RADIX ** offset);  */
+/* Callers of this macro should be aware that the return type might vary;
+ * it should be treated as a void function. */
 #define s_mp_mul_d_add_offset(a, b, c, off) \
-(s_mpv_mul_d_add_prop(MP_DIGITS(a), MP_USED(a), b, MP_DIGITS(c) + off), MP_OKAY)
+  s_mpv_mul_d_add_prop(MP_DIGITS(a), MP_USED(a), b, MP_DIGITS(c) + off)
 
 typedef struct {
   mp_int       N;	/* modulus N */
diff --git a/nss/lib/freebl/mpi/mpi.c b/nss/lib/freebl/mpi/mpi.c
index 2a3719b..84f9b97 100644
--- a/nss/lib/freebl/mpi/mpi.c
+++ b/nss/lib/freebl/mpi/mpi.c
@@ -1095,7 +1095,7 @@
   mp_int   s, x;
   mp_err   res;
   mp_digit d;
-  int      dig, bit;
+  unsigned int      dig, bit;
 
   ARGCHK(a != NULL && b != NULL && c != NULL, MP_BADARG);
 
@@ -1470,7 +1470,7 @@
   mp_int   s, x, mu;
   mp_err   res;
   mp_digit d;
-  int      dig, bit;
+  unsigned int      dig, bit;
 
   ARGCHK(a != NULL && b != NULL && c != NULL, MP_BADARG);
 
@@ -2004,7 +2004,7 @@
 {
   mp_digit d;
   mp_size  n = 0;
-  int      ix;
+  unsigned int      ix;
 
   if (!mp || !MP_DIGITS(mp) || !mp_cmp_z(mp))
     return n;
@@ -2916,8 +2916,7 @@
 mp_err   s_mp_lshd(mp_int *mp, mp_size p)
 {
   mp_err  res;
-  mp_size pos;
-  int     ix;
+  unsigned int     ix;
 
   if(p == 0)
     return MP_OKAY;
@@ -2928,14 +2927,13 @@
   if((res = s_mp_pad(mp, USED(mp) + p)) != MP_OKAY)
     return res;
 
-  pos = USED(mp) - 1;
-
   /* Shift all the significant figures over as needed */
-  for(ix = pos - p; ix >= 0; ix--) 
+  for (ix = USED(mp) - p; ix-- > 0;) {
     DIGIT(mp, ix + p) = DIGIT(mp, ix);
+  }
 
   /* Fill the bottom digits with zeroes */
-  for(ix = 0; ix < p; ix++)
+  for(ix = 0; (mp_size)ix < p; ix++)
     DIGIT(mp, ix) = 0;
 
   return MP_OKAY;
@@ -3046,7 +3044,7 @@
 mp_err s_mp_mul_2(mp_int *mp)
 {
   mp_digit *pd;
-  int      ix, used;
+  unsigned int ix, used;
   mp_digit kin = 0;
 
   /* Shift digits leftward by 1 bit */
@@ -4192,6 +4190,7 @@
 
   MP_SIGN(rem) = ZPOS;
   MP_SIGN(div) = ZPOS;
+  MP_SIGN(&part) = ZPOS;
 
   /* A working temporary for division     */
   MP_CHECKOK( mp_init_size(&t, MP_ALLOC(rem)));
@@ -4199,8 +4198,6 @@
   /* Normalize to optimize guessing       */
   MP_CHECKOK( s_mp_norm(rem, div, &d) );
 
-  part = *rem;
-
   /* Perform the division itself...woo!   */
   MP_USED(quot) = MP_ALLOC(quot);
 
@@ -4209,11 +4206,15 @@
   while (MP_USED(rem) > MP_USED(div) || s_mp_cmp(rem, div) >= 0) {
     int i;
     int unusedRem;
+    int partExtended = 0;  /* set to true if we need to extend part */
 
     unusedRem = MP_USED(rem) - MP_USED(div);
     MP_DIGITS(&part) = MP_DIGITS(rem) + unusedRem;
     MP_ALLOC(&part)  = MP_ALLOC(rem)  - unusedRem;
     MP_USED(&part)   = MP_USED(div);
+
+    /* We have now truncated the part of the remainder to the same length as
+     * the divisor. If part is smaller than div, extend part by one digit. */
     if (s_mp_cmp(&part, div) < 0) {
       -- unusedRem;
 #if MP_ARGCHK == 2
@@ -4222,26 +4223,34 @@
       -- MP_DIGITS(&part);
       ++ MP_USED(&part);
       ++ MP_ALLOC(&part);
+      partExtended = 1;
     }
 
     /* Compute a guess for the next quotient digit       */
     q_msd = MP_DIGIT(&part, MP_USED(&part) - 1);
     div_msd = MP_DIGIT(div, MP_USED(div) - 1);
-    if (q_msd >= div_msd) {
+    if (!partExtended) {
+      /* In this case, q_msd /= div_msd is always 1. First, since div_msd is
+       * normalized to have the high bit set, 2*div_msd > MP_DIGIT_MAX. Since
+       * we didn't extend part, q_msd >= div_msd. Therefore we know that
+       * div_msd <= q_msd <= MP_DIGIT_MAX < 2*div_msd. Dividing by div_msd we
+       * get 1 <= q_msd/div_msd < 2. So q_msd /= div_msd must be 1. */
       q_msd = 1;
-    } else if (MP_USED(&part) > 1) {
+    } else {
 #if !defined(MP_NO_MP_WORD) && !defined(MP_NO_DIV_WORD)
       q_msd = (q_msd << MP_DIGIT_BIT) | MP_DIGIT(&part, MP_USED(&part) - 2);
       q_msd /= div_msd;
       if (q_msd == RADIX)
         --q_msd;
 #else
-      mp_digit r;
-      MP_CHECKOK( s_mpv_div_2dx1d(q_msd, MP_DIGIT(&part, MP_USED(&part) - 2), 
-				  div_msd, &q_msd, &r) );
+      if (q_msd == div_msd) {
+        q_msd = MP_DIGIT_MAX;
+      } else {
+        mp_digit r;
+        MP_CHECKOK( s_mpv_div_2dx1d(q_msd, MP_DIGIT(&part, MP_USED(&part) - 2),
+				    div_msd, &q_msd, &r) );
+      }
 #endif
-    } else {
-      q_msd = 0;
     }
 #if MP_ARGCHK == 2
     assert(q_msd > 0); /* This case should never occur any more. */
@@ -4672,10 +4681,10 @@
 /* }}} */
 
 /* {{{ mp_unsigned_octet_size(mp) */
-int    
+unsigned int
 mp_unsigned_octet_size(const mp_int *mp)
 {
-  int  bytes;
+  unsigned int bytes;
   int  ix;
   mp_digit  d = 0;
 
@@ -4712,12 +4721,12 @@
 mp_to_unsigned_octets(const mp_int *mp, unsigned char *str, mp_size maxlen)
 {
   int  ix, pos = 0;
-  int  bytes;
+  unsigned int  bytes;
 
   ARGCHK(mp != NULL && str != NULL && !SIGN(mp), MP_BADARG);
 
   bytes = mp_unsigned_octet_size(mp);
-  ARGCHK(bytes >= 0 && bytes <= maxlen, MP_BADARG);
+  ARGCHK(bytes <= maxlen, MP_BADARG);
 
   /* Iterate over each digit... */
   for(ix = USED(mp) - 1; ix >= 0; ix--) {
@@ -4744,12 +4753,12 @@
 mp_to_signed_octets(const mp_int *mp, unsigned char *str, mp_size maxlen)
 {
   int  ix, pos = 0;
-  int  bytes;
+  unsigned int  bytes;
 
   ARGCHK(mp != NULL && str != NULL && !SIGN(mp), MP_BADARG);
 
   bytes = mp_unsigned_octet_size(mp);
-  ARGCHK(bytes >= 0 && bytes <= maxlen, MP_BADARG);
+  ARGCHK(bytes <= maxlen, MP_BADARG);
 
   /* Iterate over each digit... */
   for(ix = USED(mp) - 1; ix >= 0; ix--) {
@@ -4784,12 +4793,12 @@
 mp_to_fixlen_octets(const mp_int *mp, unsigned char *str, mp_size length)
 {
   int  ix, pos = 0;
-  int  bytes;
+  unsigned int  bytes;
 
   ARGCHK(mp != NULL && str != NULL && !SIGN(mp), MP_BADARG);
 
   bytes = mp_unsigned_octet_size(mp);
-  ARGCHK(bytes >= 0 && bytes <= length, MP_BADARG);
+  ARGCHK(bytes <= length, MP_BADARG);
 
   /* place any needed leading zeros */
   for (;length > bytes; --length) {
diff --git a/nss/lib/freebl/mpi/mpi.h b/nss/lib/freebl/mpi/mpi.h
index a556c17..b1b45d2 100644
--- a/nss/lib/freebl/mpi/mpi.h
+++ b/nss/lib/freebl/mpi/mpi.h
@@ -258,7 +258,7 @@
 
 /* Octet string conversion functions */
 mp_err mp_read_unsigned_octets(mp_int *mp, const unsigned char *str, mp_size len);
-int    mp_unsigned_octet_size(const mp_int *mp);
+unsigned int mp_unsigned_octet_size(const mp_int *mp);
 mp_err mp_to_unsigned_octets(const mp_int *mp, unsigned char *str, mp_size maxlen);
 mp_err mp_to_signed_octets(const mp_int *mp, unsigned char *str, mp_size maxlen);
 mp_err mp_to_fixlen_octets(const mp_int *mp, unsigned char *str, mp_size len);
diff --git a/nss/lib/freebl/mpi/mplogic.c b/nss/lib/freebl/mpi/mplogic.c
index dbec7ac..df0aad0 100644
--- a/nss/lib/freebl/mpi/mplogic.c
+++ b/nss/lib/freebl/mpi/mplogic.c
@@ -403,9 +403,9 @@
   returns number of significnant bits in abs(a).
   returns 1 if value is zero.
  */
-mp_err mpl_significant_bits(const mp_int *a)
+mp_size mpl_significant_bits(const mp_int *a)
 {
-  mp_err bits 	= 0;
+  mp_size bits = 0;
   int    ix;
 
   ARGCHK(a != NULL, MP_BADARG);
diff --git a/nss/lib/freebl/mpi/mplogic.h b/nss/lib/freebl/mpi/mplogic.h
index f45fe36..e05374a 100644
--- a/nss/lib/freebl/mpi/mplogic.h
+++ b/nss/lib/freebl/mpi/mplogic.h
@@ -47,6 +47,6 @@
 mp_err mpl_set_bit(mp_int *a, mp_size bitNum, mp_size value);
 mp_err mpl_get_bit(const mp_int *a, mp_size bitNum);
 mp_err mpl_get_bits(const mp_int *a, mp_size lsbNum, mp_size numBits);
-mp_err mpl_significant_bits(const mp_int *a);
+mp_size mpl_significant_bits(const mp_int *a);
 
 #endif /* end _H_MPLOGIC_ */
diff --git a/nss/lib/freebl/mpi/mpmontg.c b/nss/lib/freebl/mpi/mpmontg.c
index d619360..9667755 100644
--- a/nss/lib/freebl/mpi/mpmontg.c
+++ b/nss/lib/freebl/mpi/mpmontg.c
@@ -47,7 +47,7 @@
   for (i = 0; i < MP_USED(&mmm->N); ++i ) {
     mp_digit m_i = MP_DIGIT(T, i) * mmm->n0prime;
     /* T += N * m_i * (MP_RADIX ** i); */
-    MP_CHECKOK( s_mp_mul_d_add_offset(&mmm->N, m_i, T, i) );
+    s_mp_mul_d_add_offset(&mmm->N, m_i, T, i);
   }
   s_mp_clamp(T);
 
diff --git a/nss/lib/freebl/mpi/mpprime.c b/nss/lib/freebl/mpi/mpprime.c
index f0baf9d..9b97fb2 100644
--- a/nss/lib/freebl/mpi/mpprime.c
+++ b/nss/lib/freebl/mpi/mpprime.c
@@ -394,7 +394,7 @@
 {
   mp_digit      np;
   mp_err        res;
-  int           i	= 0;
+  unsigned int i = 0;
   mp_int        trial;
   mp_int        q;
   mp_size       num_tests;
diff --git a/nss/lib/freebl/pqg.c b/nss/lib/freebl/pqg.c
index 56cdd20..fd1351e 100644
--- a/nss/lib/freebl/pqg.c
+++ b/nss/lib/freebl/pqg.c
@@ -494,7 +494,7 @@
       mp_int    *   q,          /* sub prime, can be 1 */
       mp_int    *   prime,      /* output.  */
       SECItem   *   prime_seed, /* input/output.  */
-      int       *   prime_gen_counter) /* input/output.  */
+      unsigned int *prime_gen_counter) /* input/output.  */
 {
     mp_int c;
     mp_int c0_2;
@@ -727,7 +727,7 @@
 const SECItem   *   input_seed,       /* input.  */
       mp_int    *   prime,      /* output.  */
       SECItem   *   prime_seed, /* output.  */
-      int       *   prime_gen_counter) /* output.  */
+      unsigned int *prime_gen_counter) /* output.  */
 {
     mp_int c;
     mp_int c0;
@@ -882,7 +882,7 @@
 const SECItem   *   seed,       /* input.  */
       mp_int    *   Q,          /* input. */
       mp_int    *   Q_,         /* output. */
-      int       *  qseed_len,   /* output */
+      unsigned int *qseed_len,   /* output */
       HASH_HashType *hashtypePtr,  /* output. Hash uses */
       pqgGenType    *typePtr)      /* output. Generation Type used */
 {
@@ -937,7 +937,7 @@
     firstseed.len = seed->len/3;
     for (hashtype = getFirstHash(L,N); hashtype != HASH_AlgTOTAL; 
 					hashtype=getNextHash(hashtype)) {
-	int count;
+	unsigned int count;
 
 	rv = makePrimefromSeedShaweTaylor(hashtype, N, &firstseed, Q_, 
 		&qseed, &count);
@@ -1143,7 +1143,7 @@
     unsigned int len;
     mp_err err = MP_OKAY;
     SECStatus rv = SECSuccess;
-    const SECHashObject *hashobj;
+    const SECHashObject *hashobj = NULL;
     void *hashcx = NULL;
 
     MP_DIGITS(&e) = 0;
@@ -1229,7 +1229,6 @@
 	 unsigned int seedBytes, PQGParams **pParams, PQGVerify **pVfy)
 {
     unsigned int  n;        /* Per FIPS 186, app 2.2. 186-3 app A.1.1.2 */
-    unsigned int  b;        /* Per FIPS 186, app 2.2. 186-3 app A.1.1.2 */
     unsigned int  seedlen;  /* Per FIPS 186-3 app A.1.1.2  (was 'g' 186-1)*/
     unsigned int  counter;  /* Per FIPS 186, app 2.2. 186-3 app A.1.1.2 */
     unsigned int  offset;   /* Per FIPS 186, app 2.2. 186-3 app A.1.1.2 */
@@ -1309,8 +1308,7 @@
 
     /* Step 3: n = Ceil(L/outlen)-1; (same as n = Floor((L-1)/outlen)) */
     n = (L - 1) / outlen; 
-    /* Step 4: b = L -1 - (n*outlen); (same as n = (L-1) mod outlen) */
-    b = (L - 1) % outlen;
+    /* Step 4: (skipped since we don't use b): b = L -1 - (n*outlen); */
     seedlen = seedBytes * PR_BITS_PER_BYTE;    /* bits in seed */
 step_5:
     /* ******************************************************************
@@ -1348,7 +1346,7 @@
 	CHECK_SEC_OK( makeQ2fromSeed(hashtype, N, seed, &Q) );
     } else {
 	/* FIPS186_3_ST_TYPE */
-	int qgen_counter, pgen_counter;
+	unsigned int qgen_counter, pgen_counter;
 
         /* Step 1 (L,N) already checked for acceptability */
 
@@ -1589,7 +1587,7 @@
     mp_err err = MP_OKAY;
     int j;
     unsigned int counter_max = 0; /* handle legacy L < 1024 */
-    int qseed_len;
+    unsigned int qseed_len;
     SECItem pseed_ = {0, 0, 0};
     HASH_HashType hashtype;
     pqgGenType type;
@@ -1682,8 +1680,8 @@
     if (type == FIPS186_3_ST_TYPE) {
 	SECItem qseed = { 0, 0, 0 };
 	SECItem pseed = { 0, 0, 0 };
-	int first_seed_len;
-	int pgen_counter = 0;
+	unsigned int first_seed_len;
+	unsigned int pgen_counter = 0;
 
 	/* extract pseed and qseed from domain_parameter_seed, which is
 	 * first_seed || pseed || qseed. qseed is first_seed + small_integer
diff --git a/nss/lib/freebl/rsa.c b/nss/lib/freebl/rsa.c
index 780c3c7..f1824ef 100644
--- a/nss/lib/freebl/rsa.c
+++ b/nss/lib/freebl/rsa.c
@@ -248,7 +248,7 @@
     PLArenaPool *arena = NULL;
     /* Require key size to be a multiple of 16 bits. */
     if (!publicExponent || keySizeInBits % 16 != 0 ||
-	    BAD_RSA_KEY_SIZE(keySizeInBits/8, publicExponent->len)) {
+	    BAD_RSA_KEY_SIZE((unsigned int)keySizeInBits/8, publicExponent->len)) {
 	PORT_SetError(SEC_ERROR_INVALID_ARGS);
 	return NULL;
     }
diff --git a/nss/lib/freebl/sha512.c b/nss/lib/freebl/sha512.c
index 0e6baa8..28e7c04 100644
--- a/nss/lib/freebl/sha512.c
+++ b/nss/lib/freebl/sha512.c
@@ -67,11 +67,11 @@
     0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19
 };
 
+#if defined(IS_LITTLE_ENDIAN)
 #if (_MSC_VER >= 1300)
 #include <stdlib.h>
 #pragma intrinsic(_byteswap_ulong)
 #define SHA_HTONL(x) _byteswap_ulong(x)
-#define BYTESWAP4(x)  x = SHA_HTONL(x)
 #elif defined(_MSC_VER) && defined(NSS_X86_OR_X64)
 #ifndef FORCEINLINE
 #if (_MSC_VER >= 1200)
@@ -92,7 +92,6 @@
 }
 
 #define SHA_HTONL(x) swap4b(x)
-#define BYTESWAP4(x)  x = SHA_HTONL(x)
 
 #elif defined(__GNUC__) && defined(NSS_X86_OR_X64)
 static __inline__ PRUint32 swap4b(PRUint32 value)
@@ -101,7 +100,6 @@
     return (value);
 }
 #define SHA_HTONL(x) swap4b(x)
-#define BYTESWAP4(x)  x = SHA_HTONL(x)
 
 #elif defined(__GNUC__) && (defined(__thumb2__) || \
       (!defined(__thumb__) && \
@@ -121,14 +119,18 @@
     return ret;
 }
 #define SHA_HTONL(x) swap4b(x)
-#define BYTESWAP4(x)  x = SHA_HTONL(x)
 
 #else
 #define SWAP4MASK  0x00FF00FF
-#define SHA_HTONL(x) (t1 = (x), t1 = (t1 << 16) | (t1 >> 16), \
-                      ((t1 & SWAP4MASK) << 8) | ((t1 >> 8) & SWAP4MASK))
-#define BYTESWAP4(x)  x = SHA_HTONL(x)
+static PRUint32 swap4b(PRUint32 value)
+{
+    PRUint32 t1 = (value << 16) | (value >> 16);
+    return ((t1 & SWAP4MASK) << 8) | ((t1 >> 8) & SWAP4MASK);
+}
+#define SHA_HTONL(x) swap4b(x)
 #endif
+#define BYTESWAP4(x) x = SHA_HTONL(x)
+#endif /* defined(IS_LITTLE_ENDIAN) */
 
 #if defined(_MSC_VER)
 #pragma intrinsic (_lrotr, _lrotl) 
@@ -142,8 +144,8 @@
 /* Capitol Sigma and lower case sigma functions */
 #define S0(x) (ROTR32(x, 2) ^ ROTR32(x,13) ^ ROTR32(x,22))
 #define S1(x) (ROTR32(x, 6) ^ ROTR32(x,11) ^ ROTR32(x,25))
-#define s0(x) (t1 = x, ROTR32(t1, 7) ^ ROTR32(t1,18) ^ SHR(t1, 3))
-#define s1(x) (t2 = x, ROTR32(t2,17) ^ ROTR32(t2,19) ^ SHR(t2,10))
+#define s0(x) (ROTR32(x, 7) ^ ROTR32(x,18) ^ SHR(x, 3))
+#define s1(x) (ROTR32(x,17) ^ ROTR32(x,19) ^ SHR(x,10))
 
 SHA256Context *
 SHA256_NewContext(void)
@@ -172,8 +174,6 @@
 SHA256_Compress(SHA256Context *ctx)
 {
   {
-    register PRUint32 t1, t2;
-
 #if defined(IS_LITTLE_ENDIAN)
     BYTESWAP4(W[0]);
     BYTESWAP4(W[1]);
@@ -426,9 +426,6 @@
     unsigned int inBuf = ctx->sizeLo & 0x3f;
     unsigned int padLen = (inBuf < 56) ? (56 - inBuf) : (56 + 64 - inBuf);
     PRUint32 hi, lo;
-#ifdef SWAP4MASK
-    PRUint32 t1;
-#endif
 
     hi = (ctx->sizeHi << 3) | (ctx->sizeLo >> 29);
     lo = (ctx->sizeLo << 3);
@@ -467,9 +464,6 @@
 {
     PRUint32 h[8];
     unsigned int len;
-#ifdef SWAP4MASK
-    PRUint32 t1;
-#endif
 
     memcpy(h, ctx->h, sizeof(h));
 
@@ -654,8 +648,8 @@
 
 #define S0(x) (ROTR64(x,28) ^ ROTR64(x,34) ^ ROTR64(x,39))
 #define S1(x) (ROTR64(x,14) ^ ROTR64(x,18) ^ ROTR64(x,41))
-#define s0(x) (t1 = x, ROTR64(t1, 1) ^ ROTR64(t1, 8) ^ SHR(t1,7))
-#define s1(x) (t2 = x, ROTR64(t2,19) ^ ROTR64(t2,61) ^ SHR(t2,6))
+#define s0(x) (ROTR64(x, 1) ^ ROTR64(x, 8) ^ SHR(x,7))
+#define s1(x) (ROTR64(x,19) ^ ROTR64(x,61) ^ SHR(x,6))
 
 #if PR_BYTES_PER_LONG == 8
 #define ULLC(hi,lo) 0x ## hi ## lo ## UL
@@ -665,6 +659,7 @@
 #define ULLC(hi,lo) 0x ## hi ## lo ## ULL
 #endif
 
+#if defined(IS_LITTLE_ENDIAN)
 #if defined(_MSC_VER)
 #pragma intrinsic(_byteswap_uint64)
 #define SHA_HTONLL(x) _byteswap_uint64(x)
@@ -680,25 +675,30 @@
 #else
 #define SHA_MASK16 ULLC(0000FFFF,0000FFFF)
 #define SHA_MASK8  ULLC(00FF00FF,00FF00FF)
-#define SHA_HTONLL(x) (t1 = x, \
-  t1 = ((t1 & SHA_MASK8 ) <<  8) | ((t1 >>  8) & SHA_MASK8 ), \
-  t1 = ((t1 & SHA_MASK16) << 16) | ((t1 >> 16) & SHA_MASK16), \
-  (t1 >> 32) | (t1 << 32))
+static PRUint64 swap8b(PRUint64 x)
+{
+    PRUint64 t1 = x;
+    t1 = ((t1 & SHA_MASK8 ) <<  8) | ((t1 >>  8) & SHA_MASK8 );
+    t1 = ((t1 & SHA_MASK16) << 16) | ((t1 >> 16) & SHA_MASK16);
+    return (t1 >> 32) | (t1 << 32);
+}
+#define SHA_HTONLL(x) swap8b(x)
 #endif
 #define BYTESWAP8(x)  x = SHA_HTONLL(x)
+#endif /* defined(IS_LITTLE_ENDIAN) */
 
 #else /* no long long */
 
 #if defined(IS_LITTLE_ENDIAN)
 #define ULLC(hi,lo) { 0x ## lo ## U, 0x ## hi ## U }
-#else
-#define ULLC(hi,lo) { 0x ## hi ## U, 0x ## lo ## U }
-#endif
-
 #define SHA_HTONLL(x) ( BYTESWAP4(x.lo), BYTESWAP4(x.hi), \
    x.hi ^= x.lo ^= x.hi ^= x.lo, x)
 #define BYTESWAP8(x)  do { PRUint32 tmp; BYTESWAP4(x.lo); BYTESWAP4(x.hi); \
    tmp = x.lo; x.lo = x.hi; x.hi = tmp; } while (0)
+#else
+#define ULLC(hi,lo) { 0x ## hi ## U, 0x ## lo ## U }
+#endif
+
 #endif
 
 /* SHA-384 and SHA-512 constants, K512. */
@@ -927,11 +927,6 @@
 {
 #if defined(IS_LITTLE_ENDIAN)
   {
-#if defined(HAVE_LONG_LONG)
-    PRUint64 t1;
-#else
-    PRUint32 t1;
-#endif
     BYTESWAP8(W[0]);
     BYTESWAP8(W[1]);
     BYTESWAP8(W[2]);
@@ -952,7 +947,6 @@
 #endif
 
   {
-    PRUint64 t1, t2;
 #ifdef NOUNROLL512
     {
 	/* prepare the "message schedule"   */
@@ -1223,10 +1217,8 @@
 {
 #if defined(HAVE_LONG_LONG)
     unsigned int inBuf  = (unsigned int)ctx->sizeLo & 0x7f;
-    PRUint64 t1;
 #else
     unsigned int inBuf  = (unsigned int)ctx->sizeLo.lo & 0x7f;
-    PRUint32 t1;
 #endif
     unsigned int padLen = (inBuf < 112) ? (112 - inBuf) : (112 + 128 - inBuf);
     PRUint64 lo;
@@ -1268,11 +1260,6 @@
 SHA512_EndRaw(SHA512Context *ctx, unsigned char *digest,
               unsigned int *digestLen, unsigned int maxDigestLen)
 {
-#if defined(HAVE_LONG_LONG)
-    PRUint64 t1;
-#else
-    PRUint32 t1;
-#endif
     PRUint64 h[8];
     unsigned int len;
 
diff --git a/nss/lib/freebl/sha_fast.c b/nss/lib/freebl/sha_fast.c
index b826cf9..2901949 100644
--- a/nss/lib/freebl/sha_fast.c
+++ b/nss/lib/freebl/sha_fast.c
@@ -148,7 +148,6 @@
 {
   register PRUint64 size;
   register PRUint32 lenB;
-  PRUint32 tmpbuf[5];
 
   static const unsigned char bulk_pad[64] = { 0x80,0,0,0,0,0,0,0,0,0,
           0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -188,7 +187,6 @@
 #if defined(SHA_NEED_TMP_VARIABLE)
   register PRUint32 tmp;
 #endif
-  PRUint32 tmpbuf[5];
   PORT_Assert (maxDigestLen >= SHA1_LENGTH);
 
   SHA_STORE_RESULT;
diff --git a/nss/lib/freebl/sha_fast.h b/nss/lib/freebl/sha_fast.h
index 9d47aba..256e190 100644
--- a/nss/lib/freebl/sha_fast.h
+++ b/nss/lib/freebl/sha_fast.h
@@ -147,6 +147,7 @@
     SHA_STORE(3); \
     SHA_STORE(4); \
   } else { \
+    PRUint32 tmpbuf[5]; \
     tmpbuf[0] = SHA_HTONL(ctx->H[0]); \
     tmpbuf[1] = SHA_HTONL(ctx->H[1]); \
     tmpbuf[2] = SHA_HTONL(ctx->H[2]); \
diff --git a/nss/lib/libpkix/include/pkix_certstore.h b/nss/lib/libpkix/include/pkix_certstore.h
index 2feb333..fb70564 100755
--- a/nss/lib/libpkix/include/pkix_certstore.h
+++ b/nss/lib/libpkix/include/pkix_certstore.h
@@ -10,6 +10,7 @@
 #define _PKIX_CERTSTORE_H
 
 #include "pkixt.h"
+#include "certt.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -327,7 +328,7 @@
         PKIX_PL_Cert *issuer,
         PKIX_PL_Date *date,
         PKIX_Boolean  crlDownloadDone,
-        PKIX_UInt32 *reasonCode,
+        CERTCRLEntryReasonCode *reasonCode,
         PKIX_RevocationStatus *revStatus,
         void *plContext);
 
diff --git a/nss/lib/libpkix/include/pkix_revchecker.h b/nss/lib/libpkix/include/pkix_revchecker.h
index 18a10cd..a16d23a 100755
--- a/nss/lib/libpkix/include/pkix_revchecker.h
+++ b/nss/lib/libpkix/include/pkix_revchecker.h
@@ -65,12 +65,10 @@
  * FUNCTION: PKIX_RevocationChecker_Create
  * DESCRIPTION:
  *
- * Creates revocation checker object with a given flags.
+ * Creates a revocation checker object with the given flags. Revocation will
+ * be checked at the current date.
  *
  * PARAMETERS:
- *  "revDate"
- *      Revocation will be checked at this date. Current date is taken if the
- *      parameter is not specified.
  *  "leafMethodListFlags"
  *      Defines a set of method independent flags that will be used to check
  *      revocation of the leaf cert in the chain.
diff --git a/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c b/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
index c77ac8e..d6f5b6b 100644
--- a/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
+++ b/nss/lib/libpkix/pkix/checker/pkix_crlchecker.c
@@ -195,7 +195,7 @@
         PKIX_UInt32 methodFlags,
         PKIX_Boolean chainVerificationState,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *pReasonCode,
+        CERTCRLEntryReasonCode *pReasonCode,
         void *plContext)
 {
     PKIX_CertStore_CheckRevokationByCrlCallback storeCheckRevocationFn;
@@ -294,7 +294,7 @@
         PKIX_ProcessingParams *procParams,
         PKIX_UInt32 methodFlags,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *pReasonCode,
+        CERTCRLEntryReasonCode *pReasonCode,
         void **pNBIOContext,
         void *plContext)
 {
diff --git a/nss/lib/libpkix/pkix/checker/pkix_crlchecker.h b/nss/lib/libpkix/pkix/checker/pkix_crlchecker.h
index d7213aa..35f1a47 100644
--- a/nss/lib/libpkix/pkix/checker/pkix_crlchecker.h
+++ b/nss/lib/libpkix/pkix/checker/pkix_crlchecker.h
@@ -31,7 +31,7 @@
         PKIX_UInt32 methodFlags,
         PKIX_Boolean chainVerificationState,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *reasonCode,
+        CERTCRLEntryReasonCode *reasonCode,
         void *plContext);
 
 PKIX_Error *
@@ -43,7 +43,7 @@
         PKIX_ProcessingParams *procParams,
         PKIX_UInt32 methodFlags,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *reasonCode,
+        CERTCRLEntryReasonCode *reasonCode,
         void **pNBIOContext,
         void *plContext);
 
diff --git a/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c b/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
index 481aa52..b6fca9a 100644
--- a/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
+++ b/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.c
@@ -147,7 +147,7 @@
         PKIX_UInt32 methodFlags,
         PKIX_Boolean chainVerificationState,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *pReasonCode,
+        CERTCRLEntryReasonCode *pReasonCode,
         void *plContext)
 {
         PKIX_PL_OcspCertID    *cid = NULL;
@@ -222,7 +222,7 @@
         PKIX_ProcessingParams *procParams,
         PKIX_UInt32 methodFlags,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *pReasonCode,
+        CERTCRLEntryReasonCode *pReasonCode,
         void **pNBIOContext,
         void *plContext)
 {
diff --git a/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.h b/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.h
index 547b403..fbec315 100644
--- a/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.h
+++ b/nss/lib/libpkix/pkix/checker/pkix_ocspchecker.h
@@ -30,7 +30,7 @@
         PKIX_UInt32 methodFlags,
         PKIX_Boolean chainVerificationState,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *reasonCode,
+        CERTCRLEntryReasonCode *reasonCode,
         void *plContext);
 
 PKIX_Error *
@@ -42,7 +42,7 @@
         PKIX_ProcessingParams *procParams,
         PKIX_UInt32 methodFlags,
         PKIX_RevocationStatus *pRevStatus,
-        PKIX_UInt32 *reasonCode,
+        CERTCRLEntryReasonCode *reasonCode,
         void **pNBIOContext,
         void *plContext);
 
diff --git a/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c b/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
index ebe3773..7bed9b8 100755
--- a/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
+++ b/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.c
@@ -349,7 +349,7 @@
      *    first we are going to test all local(cached) info
      *    second, all remote info(fetching) */
     for (tries = 0;tries < 2;tries++) {
-        int methodNum = 0;
+        unsigned int methodNum = 0;
         for (;methodNum < revList->length;methodNum++) {
             PKIX_UInt32 methodFlags = 0;
 
@@ -372,7 +372,8 @@
                                                methodFlags, 
                                                chainVerificationState,
                                                &revStatus,
-                                               pReasonCode, plContext),
+                                               (CERTCRLEntryReasonCode *)pReasonCode,
+                                               plContext),
                     PKIX_REVCHECKERCHECKFAILED);
                 methodStatus[methodNum] = revStatus;
                 if (revStatus == PKIX_RevStatus_Revoked) {
@@ -397,7 +398,8 @@
                         (*method->externalRevChecker)(cert, issuer, date,
                                                       method,
                                                       procParams, methodFlags,
-                                                      &revStatus, pReasonCode,
+                                                      &revStatus,
+                                                      (CERTCRLEntryReasonCode *)pReasonCode,
                                                       &nbioContext, plContext),
                         PKIX_REVCHECKERCHECKFAILED);
                     methodStatus[methodNum] = revStatus;
diff --git a/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.h b/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.h
index 80d9eea..20dfe37 100755
--- a/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.h
+++ b/nss/lib/libpkix/pkix/checker/pkix_revocationchecker.h
@@ -12,6 +12,7 @@
 #define _PKIX_REVOCATIONCHECKER_H
 
 #include "pkixt.h"
+#include "certt.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.h b/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.h
index 1932237..a97c762 100644
--- a/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.h
+++ b/nss/lib/libpkix/pkix/checker/pkix_revocationmethod.h
@@ -31,7 +31,7 @@
                             PKIX_UInt32 methodFlags,
                             PKIX_Boolean chainVerificationState,
                             PKIX_RevocationStatus *pRevStatus,
-                            PKIX_UInt32 *reasonCode,
+                            CERTCRLEntryReasonCode *reasonCode,
                             void *plContext);
 
 /* External revocation check function prototype definition.
@@ -44,7 +44,7 @@
                                PKIX_ProcessingParams *procParams,
                                PKIX_UInt32 methodFlags,
                                PKIX_RevocationStatus *pRevStatus,
-                               PKIX_UInt32 *reasonCode,
+                               CERTCRLEntryReasonCode *reasonCode,
                                void **pNBIOContext, void *plContext);
 
 /* Revocation method structure assosiates revocation types with
diff --git a/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c b/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
index 9967af9..e9a9c03 100755
--- a/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
+++ b/nss/lib/libpkix/pkix/crlsel/pkix_crlselector.c
@@ -190,7 +190,7 @@
         PKIX_HASHCODE(crlSelector->context, &contextHash, plContext,
                 PKIX_OBJECTHASHCODEFAILED);
 
-        hash = 31 * ((PKIX_UInt32)crlSelector->matchCallback +
+        hash = 31 * ((PKIX_UInt32)((char *)crlSelector->matchCallback - (char *)NULL) +
                     (contextHash << 3)) + paramsHash;
 
         *pHashcode = hash;
diff --git a/nss/lib/libpkix/pkix/results/pkix_policynode.c b/nss/lib/libpkix/pkix/results/pkix_policynode.c
index 91d8a74..fd8cee9 100755
--- a/nss/lib/libpkix/pkix/results/pkix_policynode.c
+++ b/nss/lib/libpkix/pkix/results/pkix_policynode.c
@@ -824,7 +824,7 @@
                 (node, &nodeHash, plContext),
                 PKIX_SINGLEPOLICYNODEHASHCODEFAILED);
 
-        nodeHash = 31*nodeHash + (PKIX_UInt32)(node->parent);
+        nodeHash = 31*nodeHash + (PKIX_UInt32)((char *)node->parent - (char *)NULL);
 
         PKIX_HASHCODE
                 (node->children,
diff --git a/nss/lib/libpkix/pkix/store/pkix_store.c b/nss/lib/libpkix/pkix/store/pkix_store.c
index 31c21ea..af8be2b 100755
--- a/nss/lib/libpkix/pkix/store/pkix_store.c
+++ b/nss/lib/libpkix/pkix/store/pkix_store.c
@@ -74,11 +74,11 @@
                    PKIX_CERTSTOREHASHCODEFAILED);
         }
 
-        *pHashcode = (PKIX_UInt32) certStore->certCallback +
-                     (PKIX_UInt32) certStore->crlCallback +
-                     (PKIX_UInt32) certStore->certContinue +
-                     (PKIX_UInt32) certStore->crlContinue +
-                     (PKIX_UInt32) certStore->trustCallback +
+        *pHashcode = (PKIX_UInt32)((char *)certStore->certCallback - (char *)NULL) +
+                     (PKIX_UInt32)((char *)certStore->crlCallback - (char *)NULL) +
+                     (PKIX_UInt32)((char *)certStore->certContinue - (char *)NULL) +
+                     (PKIX_UInt32)((char *)certStore->crlContinue - (char *)NULL) +
+                     (PKIX_UInt32)((char *)certStore->trustCallback - (char *)NULL) +
                      (tempHash << 7);
 
 cleanup:
diff --git a/nss/lib/libpkix/pkix/top/pkix_build.c b/nss/lib/libpkix/pkix/top/pkix_build.c
index 9ca307e..9451578 100755
--- a/nss/lib/libpkix/pkix/top/pkix_build.c
+++ b/nss/lib/libpkix/pkix/top/pkix_build.c
@@ -1526,7 +1526,7 @@
     PKIX_List **pMatchList,
     void *plContext) 
 {
-    int anchorIndex = 0;
+    unsigned int anchorIndex = 0;
     PKIX_TrustAnchor *anchor = NULL;
     PKIX_PL_Cert *trustedCert = NULL;
     PKIX_List *matchList = NULL;
diff --git a/nss/lib/libpkix/pkix/util/pkix_error.c b/nss/lib/libpkix/pkix/util/pkix_error.c
index e6fba86..9d730ca 100755
--- a/nss/lib/libpkix/pkix/util/pkix_error.c
+++ b/nss/lib/libpkix/pkix/util/pkix_error.c
@@ -325,7 +325,7 @@
 
         /* XXX Unimplemented */
         /* XXX Need to make hashcodes equal when two errors are equal */
-        *pResult = (PKIX_UInt32)object;
+        *pResult = (PKIX_UInt32)((char *)object - (char *)NULL);
 
         PKIX_RETURN(ERROR);
 }
diff --git a/nss/lib/libpkix/pkix/util/pkix_logger.c b/nss/lib/libpkix/pkix/util/pkix_logger.c
index cfd870d..a916e6e 100644
--- a/nss/lib/libpkix/pkix/util/pkix_logger.c
+++ b/nss/lib/libpkix/pkix/util/pkix_logger.c
@@ -492,7 +492,7 @@
         PKIX_HASHCODE(logger->context, &tempHash, plContext,
                 PKIX_OBJECTHASHCODEFAILED);
 
-        hash = (((((PKIX_UInt32) logger->callback + tempHash) << 7) +
+        hash = (((((PKIX_UInt32)((char *)logger->callback - (char *)NULL) + tempHash) << 7) +
                 logger->maxLevel) << 7) + (PKIX_UInt32)logger->logComponent;
 
         *pHashcode = hash;
diff --git a/nss/lib/libpkix/pkix/util/pkix_tools.h b/nss/lib/libpkix/pkix/util/pkix_tools.h
index fe6ce63..1a4689d 100755
--- a/nss/lib/libpkix/pkix/util/pkix_tools.h
+++ b/nss/lib/libpkix/pkix/util/pkix_tools.h
@@ -1437,8 +1437,8 @@
 typedef struct pkix_ClassTable_EntryStruct pkix_ClassTable_Entry;
 struct pkix_ClassTable_EntryStruct {
         char *description;
-        PKIX_Int32 objCounter;
-        PKIX_Int32 typeObjectSize;
+        PKIX_UInt32 objCounter;
+        PKIX_UInt32 typeObjectSize;
         PKIX_PL_DestructorCallback destructor;
         PKIX_PL_EqualsCallback equalsFunction;
         PKIX_PL_HashcodeCallback hashcodeFunction;
diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
index d459a4a..9954f0c 100644
--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpdefaultclient.c
@@ -265,7 +265,7 @@
              contentLength =                 /* Try to reserve 4K+ buffer */
                  client->filledupBytes + HTTP_DATA_BUFSIZE;
              if (client->maxResponseLen > 0 &&
-                 contentLength > client->maxResponseLen) {
+                 contentLength > (PKIX_Int32)client->maxResponseLen) {
                  if (client->filledupBytes < client->maxResponseLen) {
                      contentLength = client->maxResponseLen;
                  } else {
@@ -282,7 +282,7 @@
          default:
              client->rcv_http_data_len = contentLength;
              if (client->maxResponseLen > 0 &&
-                 client->maxResponseLen < contentLength) {
+                 (PKIX_Int32)client->maxResponseLen < contentLength) {
                  client->connectStatus = HTTP_ERROR;
                  goto cleanup;
              }
@@ -290,7 +290,7 @@
              /*
               * Do we have all of the message body, or do we need to read some more?
               */
-             if (client->filledupBytes < contentLength) {
+             if ((PKIX_Int32)client->filledupBytes < contentLength) {
                  client->connectStatus = HTTP_RECV_BODY;
                  *pKeepGoing = PKIX_TRUE;
              } else {
@@ -935,7 +935,7 @@
                  * plus remaining capacity, plus new expansion. */
                 int currBuffSize = client->capacity;
                 /* Try to increase the buffer by 4K */
-                int newLength = currBuffSize + HTTP_DATA_BUFSIZE;
+                unsigned int newLength = currBuffSize + HTTP_DATA_BUFSIZE;
                 if (client->maxResponseLen > 0 &&
                     newLength > client->maxResponseLen) {
                         newLength = client->maxResponseLen;
@@ -1480,8 +1480,6 @@
         SEC_HTTP_REQUEST_SESSION request,
         void *plContext)
 {
-        PKIX_PL_HttpDefaultClient *client = NULL;
-
         PKIX_ENTER(HTTPDEFAULTCLIENT, "pkix_pl_HttpDefaultClient_Cancel");
         PKIX_NULLCHECK_ONE(request);
 
@@ -1491,8 +1489,6 @@
                 plContext),
                 PKIX_REQUESTNOTANHTTPDEFAULTCLIENT);
 
-        client = (PKIX_PL_HttpDefaultClient *)request;
-
         /* XXX Not implemented */
 
 cleanup:
diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
index a191ad6..3dc06be 100644
--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapdefaultclient.c
@@ -359,7 +359,7 @@
                 "pkix_pl_LdapDefaultClient_VerifyBindResponse");
         PKIX_NULLCHECK_TWO(client, client->rcvBuf);
 
-        decode.data = (void *)(client->rcvBuf);
+        decode.data = (unsigned char *)(client->rcvBuf);
         decode.len = bufLen;
 
         PKIX_CHECK(pkix_pl_LdapDefaultClient_DecodeBindResponse
diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
index 51ffce9..4546e33 100644
--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldaprequest.c
@@ -263,16 +263,12 @@
         PKIX_PL_Object *object,
         void *plContext)
 {
-        PKIX_PL_LdapRequest *ldapRq = NULL;
-
         PKIX_ENTER(LDAPREQUEST, "pkix_pl_LdapRequest_Destroy");
         PKIX_NULLCHECK_ONE(object);
 
         PKIX_CHECK(pkix_CheckType(object, PKIX_LDAPREQUEST_TYPE, plContext),
                     PKIX_OBJECTNOTLDAPREQUEST);
 
-        ldapRq = (PKIX_PL_LdapRequest *)object;
-
         /*
          * All dynamic fields in an LDAPRequest are allocated
          * in an arena, and will be freed when the arena is destroyed.
diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
index 9d37f58..cd2543f 100644
--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_ldapresponse.c
@@ -730,7 +730,7 @@
 
         resultMsg = &response->decoded.protocolOp.op.searchResponseResultMsg;
 
-        *pResultCode = *(char *)(resultMsg->resultCode.data);
+        *pResultCode = *(resultMsg->resultCode.data);
 
 cleanup:
 
diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
index 078862c..7de614e 100755
--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_pk11certstore.c
@@ -379,14 +379,12 @@
     PKIX_Boolean hasFetchedCrlInCache = PKIX_TRUE;
     PKIX_List *dpList = NULL;
     pkix_pl_CrlDp *dp = NULL;
-    CERTCertificate *cert;
     PKIX_UInt32 dpIndex = 0;
     SECStatus rv = SECSuccess;
     PRTime reloadDelay = 0, badCrlInvalDelay = 0;
 
     PKIX_ENTER(CERTSTORE, "ChechCacheHasFetchedCrl");
 
-    cert = pkixCert->nssCert;
     reloadDelay = 
         ((PKIX_PL_NssContext*)plContext)->crlReloadDelay *
                                                 PR_USEC_PER_SEC;
@@ -480,7 +478,7 @@
         PKIX_PL_Cert *pkixIssuer,
         PKIX_PL_Date *date,
         PKIX_Boolean  crlDownloadDone,
-        PKIX_UInt32  *pReasonCode,
+        CERTCRLEntryReasonCode *pReasonCode,
         PKIX_RevocationStatus *pStatus,
         void *plContext)
 {
@@ -675,7 +673,7 @@
 {
     NamedCRLCache* nameCrlCache = NULL;
     pkix_pl_CrlDp *dp = NULL;
-    int dpIndex = 0;
+    unsigned int dpIndex = 0;
     PRTime time;
     PRTime reloadDelay = 0, badCrlInvalDelay = 0;
     SECStatus rv;
@@ -779,7 +777,6 @@
     SECItem *derCrlCopy = NULL;
     CERTSignedCrl *nssCrl = NULL;
     CERTGeneralName *genName = NULL;
-    PKIX_Int32 savedError = -1;
     SECItem **derGenNames = NULL;
     SECItem  *derGenName = NULL;
 
@@ -799,13 +796,11 @@
             if (!derGenName ||
                 !genName->name.other.data) {
                 /* get to next name if no data. */
-                savedError = PKIX_UNSUPPORTEDCRLDPTYPE;
                 break;
             }
             uri = &genName->name.other;
             location = (char*)PR_Malloc(1 + uri->len);
             if (!location) {
-                savedError = PKIX_ALLOCERROR;
                 break;
             }
             PORT_Memcpy(location, uri->data, uri->len);
@@ -813,7 +808,6 @@
             if (CERT_ParseURL(location, &hostname,
                               &port, &path) != SECSuccess) {
                 PORT_SetError(SEC_ERROR_BAD_CRL_DP_URL);
-                savedError = PKIX_URLPARSINGFAILED;
                 break;
             }
     
@@ -823,7 +817,6 @@
             if ((*hcv1->createSessionFcn)(hostname, port, 
                                           &pServerSession) != SECSuccess) {
                 PORT_SetError(SEC_ERROR_BAD_CRL_DP_URL);
-                savedError = PKIX_URLPARSINGFAILED;
                 break;
             }
 
@@ -835,7 +828,6 @@
                           PR_SecondsToInterval(
                               ((PKIX_PL_NssContext*)plContext)->timeoutSeconds),
                                    &pRequestSession) != SECSuccess) {
-                savedError = PKIX_HTTPSERVERERROR;
                 break;
             }
 
@@ -858,12 +850,10 @@
                     NULL,
                     &myHttpResponseData,
                     &myHttpResponseDataLen) != SECSuccess) {
-                savedError = PKIX_HTTPSERVERERROR;
                 break;
             }
 
             if (myHttpResponseCode != 200) {
-                savedError = PKIX_HTTPSERVERERROR;
                 break;
             }
         } while(0);
diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
index 2afd680..6bd0a3a 100644
--- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_socket.c
@@ -62,7 +62,12 @@
 static void pkix_pl_socket_timestamp() {
         PRInt64 prTime;
         prTime = PR_Now();
+/* We shouldn't use PR_ALTERNATE_INT64_TYPEDEF, but nor can we use PRId64 */
+#if PR_BYTES_PER_LONG == 8 && !defined(PR_ALTERNATE_INT64_TYPEDEF)
+        printf("%ld:\n", prTime);
+#else
         printf("%lld:\n", prTime);
+#endif
 }
 
 /*
@@ -140,7 +145,7 @@
  */
 static void pkix_pl_socket_traceLine(char *ptr) {
         PKIX_UInt32 i = 0;
-        pkix_pl_socket_linePrefix((PKIX_UInt32)ptr);
+        pkix_pl_socket_linePrefix((PKIX_UInt32)((char *)ptr - (char *)NULL));
         for (i = 0; i < 16; i++) {
                 printf(" ");
                 pkix_pl_socket_hexDigit(ptr[i]);
@@ -184,7 +189,7 @@
 static void pkix_pl_socket_tracePartialLine(char *ptr, PKIX_UInt32 nBytes) {
         PKIX_UInt32 i = 0;
         if (nBytes > 0) {
-                pkix_pl_socket_linePrefix((PKIX_UInt32)ptr);
+                pkix_pl_socket_linePrefix((PKIX_UInt32)((char *)ptr - (char *)NULL));
         }
         for (i = 0; i < nBytes; i++) {
                 printf(" ");
@@ -243,7 +248,7 @@
          * Special case: if called with length of zero, just do address
          */
         if (nBytes == 0) {
-                pkix_pl_socket_linePrefix((PKIX_UInt32)buf);
+                pkix_pl_socket_linePrefix((PKIX_UInt32)((char *)buf - (char *)NULL));
                 printf("\n");
         } else {
                 while (bytesRemaining >= 16) {
diff --git a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
index 2036f5c..fa8f185 100644
--- a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
+++ b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_cert.c
@@ -1515,7 +1515,6 @@
         SECItem *derCertItem = NULL;
         void *derBytes = NULL;
         PKIX_UInt32 derLength;
-        PKIX_Boolean copyDER;
         PKIX_PL_Cert *cert = NULL;
         CERTCertDBHandle *handle;
 
@@ -1542,7 +1541,6 @@
          * allowing us to free our copy without worrying about whether NSS
          * is still using it
          */
-        copyDER = PKIX_TRUE;
         handle  = CERT_GetDefaultCertDB();
         nssCert = CERT_NewTempCertificate(handle, derCertItem,
 					  /* nickname */ NULL, 
diff --git a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
index 0f6d783..b83db35 100644
--- a/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
+++ b/nss/lib/libpkix/pkix_pl_nss/pki/pkix_pl_crl.c
@@ -351,7 +351,7 @@
         void *plContext)
 {
         char *asciiFormat = NULL;
-        PKIX_UInt32 crlVersion;
+        PKIX_UInt32 crlVersion = 0;
         PKIX_PL_X500Name *crlIssuer = NULL;
         PKIX_PL_OID *nssSignatureAlgId = NULL;
         PKIX_PL_BigInt *crlNumber = NULL;
diff --git a/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c b/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
index 6bc74b6..338eb1c 100755
--- a/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
+++ b/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c
@@ -73,7 +73,7 @@
 PKIX_UInt32
 pkix_pl_lifecycle_ObjectLeakCheck(int *initObjCountTable)
 {
-        int   typeCounter = 0;
+        unsigned int typeCounter = 0;
         PKIX_UInt32 numObjects = 0;
         char  classNameBuff[128];
         char *className = NULL;
@@ -245,7 +245,9 @@
 PKIX_Error *
 PKIX_PL_Shutdown(void *plContext)
 {
+#ifdef DEBUG
         PKIX_UInt32 numLeakedObjects = 0;
+#endif
 
         PKIX_ENTER(OBJECT, "PKIX_PL_Shutdown");
 
@@ -258,10 +260,14 @@
 
         pkix_pl_HttpCertStore_Shutdown(plContext);
 
+#ifdef DEBUG
         numLeakedObjects = pkix_pl_lifecycle_ObjectLeakCheck(NULL);
         if (PR_GetEnv("NSS_STRICT_SHUTDOWN")) {
            PORT_Assert(numLeakedObjects == 0);
         }
+#else
+        pkix_pl_lifecycle_ObjectLeakCheck(NULL);
+#endif
 
         if (plContext != NULL) {
                 PKIX_PL_NssContext_Destroy(plContext);
diff --git a/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c b/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
index 881a1ed..7dafa0b 100755
--- a/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
+++ b/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.c
@@ -371,7 +371,7 @@
         PKIX_ENTER(OBJECT, "pkix_pl_Object_Hashcode_Default");
         PKIX_NULLCHECK_TWO(object, pValue);
 
-        *pValue = (PKIX_UInt32)object;
+        *pValue = (PKIX_UInt32)((char *)object - (char *)NULL);
 
         PKIX_RETURN(OBJECT);
 }
@@ -600,7 +600,7 @@
         object = NULL;
 
         /* Atomically increment object counter */
-        PR_ATOMIC_INCREMENT(&ctEntry->objCounter);
+        PR_ATOMIC_INCREMENT((PRInt32*)&ctEntry->objCounter);
 
 cleanup:
 
@@ -897,7 +897,7 @@
             }
             
             /* Atomically decrement object counter */
-            PR_ATOMIC_DECREMENT(&ctEntry->objCounter);
+            PR_ATOMIC_DECREMENT((PRInt32*)&ctEntry->objCounter);
             
             /* pkix_pl_Object_Destroy assumes the lock is held */
             /* It will call unlock and destroy the object */
diff --git a/nss/lib/nss/nss.h b/nss/lib/nss/nss.h
index 0bcf73f..2433cfc 100644
--- a/nss/lib/nss/nss.h
+++ b/nss/lib/nss/nss.h
@@ -33,9 +33,9 @@
  * The format of the version string should be
  *     "<major version>.<minor version>[.<patch level>[.<build number>]][ <ECC>][ <Beta>]"
  */
-#define NSS_VERSION  "3.19" _NSS_ECC_STRING _NSS_CUSTOMIZED
+#define NSS_VERSION  "3.21" _NSS_ECC_STRING _NSS_CUSTOMIZED
 #define NSS_VMAJOR   3
-#define NSS_VMINOR   19
+#define NSS_VMINOR   21
 #define NSS_VPATCH   0
 #define NSS_VBUILD   0
 #define NSS_BETA     PR_FALSE
@@ -294,6 +294,19 @@
  */
 SECStatus NSS_UnregisterShutdown(NSS_ShutdownFunc sFunc, void *appData);
 
+/* Available options for NSS_OptionSet() and NSS_OptionGet().
+ */
+#define NSS_RSA_MIN_KEY_SIZE (1<<0)
+#define NSS_DH_MIN_KEY_SIZE  (1<<1)
+#define NSS_DSA_MIN_KEY_SIZE (1<<2)
+
+/*
+ * Set and get global options for the NSS library.
+ */
+SECStatus NSS_OptionSet(PRInt32 which, PRInt32 value);
+SECStatus NSS_OptionGet(PRInt32 which, PRInt32 *value);
+
+
 /* 
  * Close the Cert, Key databases.
  */
diff --git a/nss/lib/nss/nssinit.c b/nss/lib/nss/nssinit.c
index 208e71d..d490037 100644
--- a/nss/lib/nss/nssinit.c
+++ b/nss/lib/nss/nssinit.c
@@ -493,10 +493,6 @@
 #define NSS_INIT_MAGIC 0x1413A91C
 static SECStatus nss_InitShutdownList(void);
 
-#ifdef DEBUG
-static CERTCertificate dummyCert;
-#endif
-
 /* All initialized to zero in BSS */
 static PRCallOnceType nssInitOnce;
 static PZLock *nssInitLock;
@@ -575,8 +571,11 @@
      * functions */
 
     if (!isReallyInitted) {
+#ifdef DEBUG
+        CERTCertificate dummyCert;
 	/* New option bits must not change the size of CERTCertificate. */
 	PORT_Assert(sizeof(dummyCert.options) == sizeof(void *));
+#endif
 
 	if (SECSuccess != cert_InitLocks()) {
 	    goto loser;
@@ -1238,8 +1237,7 @@
 }
 	
 
-extern const char __nss_base_rcsid[];
-extern const char __nss_base_sccsid[];
+extern const char __nss_base_version[];
 
 PRBool
 NSS_VersionCheck(const char *importedVersion)
@@ -1255,9 +1253,8 @@
      */
     int vmajor = 0, vminor = 0, vpatch = 0, vbuild = 0;
     const char *ptr = importedVersion;
-    volatile char c; /* force a reference that won't get optimized away */
-
-    c = __nss_base_rcsid[0] + __nss_base_sccsid[0]; 
+#define NSS_VERSION_VARIABLE __nss_base_version
+#include "verref.h"
 
     while (isdigit(*ptr)) {
         vmajor = 10 * vmajor + *ptr - '0';
diff --git a/nss/lib/nss/nssoptions.c b/nss/lib/nss/nssoptions.c
new file mode 100644
index 0000000..10b0138
--- /dev/null
+++ b/nss/lib/nss/nssoptions.c
@@ -0,0 +1,73 @@
+/*
+ * NSS utility functions
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include <ctype.h>
+#include <string.h>
+#include <assert.h>
+
+#include "seccomon.h"
+#include "secoidt.h"
+#include "secoid.h"
+#include "nss.h"
+#include "nssoptions.h"
+
+struct nssOps {
+    PRInt32 rsaMinKeySize;
+    PRInt32 dhMinKeySize;
+    PRInt32 dsaMinKeySize;
+};
+
+static struct nssOps nss_ops = {
+    SSL_RSA_MIN_MODULUS_BITS,
+    SSL_DH_MIN_P_BITS,
+    SSL_DSA_MIN_P_BITS
+};
+
+SECStatus
+NSS_OptionSet(PRInt32 which, PRInt32 value)
+{
+SECStatus rv = SECSuccess;
+
+    switch (which) {
+      case NSS_RSA_MIN_KEY_SIZE:
+        nss_ops.rsaMinKeySize = value;
+        break;
+      case NSS_DH_MIN_KEY_SIZE:
+        nss_ops.dhMinKeySize = value;
+        break;
+      case NSS_DSA_MIN_KEY_SIZE:
+        nss_ops.dsaMinKeySize = value;
+        break;
+      default:
+	rv = SECFailure;
+    }
+
+    return rv;
+}
+
+SECStatus
+NSS_OptionGet(PRInt32 which, PRInt32 *value)
+{
+SECStatus rv = SECSuccess;
+
+    switch (which) {
+      case NSS_RSA_MIN_KEY_SIZE:
+        *value = nss_ops.rsaMinKeySize;
+        break;
+      case NSS_DH_MIN_KEY_SIZE:
+        *value = nss_ops.dhMinKeySize;
+        break;
+      case NSS_DSA_MIN_KEY_SIZE:
+        *value = nss_ops.dsaMinKeySize;
+        break;
+      default:
+	rv = SECFailure;
+    }
+
+    return rv;
+}
+
diff --git a/nss/lib/nss/nssoptions.h b/nss/lib/nss/nssoptions.h
new file mode 100644
index 0000000..daa0944
--- /dev/null
+++ b/nss/lib/nss/nssoptions.h
@@ -0,0 +1,21 @@
+/*
+ * NSS utility functions
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*
+ *  Include the default limits here
+ */
+/* SSL default limits are here so we don't have to import a private SSL header 
+ * file into NSS proper */
+
+/* The minimum server key sizes accepted by the clients.
+ * Not 1024 to be conservative. */
+#define SSL_RSA_MIN_MODULUS_BITS 1023
+/* 1023 to avoid cases where p = 2q+1 for a 512-bit q turns out to be
+ * only 1023 bits and similar.  We don't have good data on whether this
+ * happens because NSS used to count bit lengths incorrectly. */
+#define SSL_DH_MIN_P_BITS 1023
+#define SSL_DSA_MIN_P_BITS 1023
+
diff --git a/nss/lib/nss/nssver.c b/nss/lib/nss/nssver.c
index e2aa0ce..653ebec 100644
--- a/nss/lib/nss/nssver.c
+++ b/nss/lib/nss/nssver.c
@@ -13,12 +13,6 @@
 #endif
 
 /*
- * Version information for the 'ident' and 'what commands
- *
- * NOTE: the first component of the concatenated rcsid string
- * must not end in a '$' to prevent rcs keyword substitution.
+ * Version information
  */
-const char __nss_base_rcsid[] = "$Header: NSS " NSS_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__ " $";
-const char __nss_base_sccsid[] = "@(#)NSS " NSS_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__;
+const char __nss_base_version[] = "Version: NSS " NSS_VERSION _DEBUG_STRING;
diff --git a/nss/lib/pk11wrap/pk11akey.c b/nss/lib/pk11wrap/pk11akey.c
index 36ad73c..6fbfcbb 100644
--- a/nss/lib/pk11wrap/pk11akey.c
+++ b/nss/lib/pk11wrap/pk11akey.c
@@ -18,7 +18,6 @@
 #include "secasn1.h" 
 #include "secoid.h" 
 #include "secerr.h"
-#include "sslerr.h"
 #include "sechash.h"
 
 #include "secpkcs5.h"  
@@ -74,7 +73,7 @@
     SECItem *ckaId = NULL;
     SECItem *pubValue = NULL;
     int signedcount = 0;
-    int templateCount = 0;
+    unsigned int templateCount = 0;
     SECStatus rv;
 
     /* if we already have an object in the desired slot, use it */
@@ -393,7 +392,7 @@
     /* If the point is uncompressed and the lengths match, it
      * must be an unencoded point */
     if ((*((char *)ecPoint->pValue) == EC_POINT_FORM_UNCOMPRESSED) 
-	&& (ecPoint->ulValueLen == keyLen)) {
+	&& (ecPoint->ulValueLen == (unsigned int)keyLen)) {
 	    return pk11_Attr2SecItem(arena, ecPoint, publicKeyValue);
     }
 
@@ -407,7 +406,7 @@
 
 	/* it coded correctly & we know the key length (and they match)
 	 * then we are done, return the results. */
-        if (keyLen && rv == SECSuccess && publicKeyValue->len == keyLen) {
+        if (keyLen && rv == SECSuccess && publicKeyValue->len == (unsigned int)keyLen) {
 	    return CKR_OK;
 	}
 
@@ -539,7 +538,7 @@
     PLArenaPool *arena;
     PLArenaPool *tmp_arena;
     SECKEYPublicKey *pubKey;
-    int templateCount = 0;
+    unsigned int templateCount = 0;
     CK_KEY_TYPE pk11KeyType;
     CK_RV crv;
     CK_ATTRIBUTE template[8];
@@ -1506,6 +1505,7 @@
 
     pkData.data = keyData;
     pkData.len = length;
+    pkData.type = siBuffer;
 
     arena = PORT_NewArena (DER_DEFAULT_CHUNKSIZE);
     if (arena == NULL)
@@ -2298,7 +2298,7 @@
     CK_ATTRIBUTE *attrs;
     CK_BBOOL ckTrue = CK_TRUE;
     CK_OBJECT_CLASS keyclass = CKO_PUBLIC_KEY;
-    int tsize = 0;
+    unsigned int tsize = 0;
     int objCount = 0;
     CK_OBJECT_HANDLE *key_ids;
     SECKEYPublicKeyList *keys;
@@ -2344,7 +2344,7 @@
     CK_ATTRIBUTE *attrs;
     CK_BBOOL ckTrue = CK_TRUE;
     CK_OBJECT_CLASS keyclass = CKO_PRIVATE_KEY;
-    int tsize = 0;
+    unsigned int tsize = 0;
     int objCount = 0;
     CK_OBJECT_HANDLE *key_ids;
     SECKEYPrivateKeyList *keys;
diff --git a/nss/lib/pk11wrap/pk11cert.c b/nss/lib/pk11wrap/pk11cert.c
index 1bf8a7f..e29b4e2 100644
--- a/nss/lib/pk11wrap/pk11cert.c
+++ b/nss/lib/pk11wrap/pk11cert.c
@@ -143,6 +143,8 @@
 	PK11_SETATTRS(&theTemplate,0,NULL,0);
 	switch (pubKey->keyType) {
 	case rsaKey:
+	case rsaPssKey:
+	case rsaOaepKey:
 	    PK11_SETATTRS(&theTemplate,CKA_MODULUS, pubKey->u.rsa.modulus.data,
 						pubKey->u.rsa.modulus.len);
 	    break;
@@ -228,7 +230,6 @@
     nssPKIObject *pkio;
     NSSToken *token;
     NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
-    PRStatus status;
 
     /* Get the cryptoki object from the handle */
     token = PK11Slot_GetNSSToken(slot);
@@ -278,7 +279,7 @@
      * different NSSCertificate that it found in the cache.
      * Presumably, the nickname which we just output above remains valid. :)
      */
-    status = nssTrustDomain_AddCertsToCache(td, &c, 1);
+    (void)nssTrustDomain_AddCertsToCache(td, &c, 1);
     return STAN_GetCERTCertificateOrRelease(c);
 }
 
@@ -1380,6 +1381,7 @@
     }
     moduleLock = SECMOD_GetDefaultModuleListLock();
     if (!moduleLock) {
+	SECITEM_FreeItem(slotid, PR_TRUE);
 	PORT_SetError(SEC_ERROR_NOT_INITIALIZED);
 	return PR_FAILURE;
     }
@@ -1439,6 +1441,7 @@
 		                   sizeof(CK_SLOT_ID) + sizeof(SECMODModuleID));
 		    if (!slotid) {
 			PORT_SetError(SEC_ERROR_NO_MEMORY);
+			PK11_FreeSlotList(sl);
 			return NULL;
 		    }
 		    for (le = sl->head; le; le = le->next) {
@@ -2005,7 +2008,6 @@
 PK11_TraverseCertsForNicknameInSlot(SECItem *nickname, PK11SlotInfo *slot,
 	SECStatus(* callback)(CERTCertificate*, void *), void *arg)
 {
-    struct nss3_cert_cbstr pk11cb;
     PRStatus nssrv = PR_SUCCESS;
     NSSToken *token;
     NSSTrustDomain *td;
@@ -2016,8 +2018,6 @@
     NSSCertificate **certs;
     nssList *nameList = NULL;
     nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
-    pk11cb.callback = callback;
-    pk11cb.arg = arg;
     token = PK11Slot_GetNSSToken(slot);
     if (!nssToken_IsPresent(token)) {
 	return SECSuccess;
@@ -2700,7 +2700,8 @@
 {
     /* Can't set nickname of temp cert. */
     if (!cert->slot || cert->pkcs11ID == CK_INVALID_HANDLE) {
-        return SEC_ERROR_INVALID_ARGS;
+        PORT_SetError(SEC_ERROR_INVALID_ARGS);
+        return SECFailure;
     }
     return PK11_SetObjectNickname(cert->slot, cert->pkcs11ID, nickname);
 }
diff --git a/nss/lib/pk11wrap/pk11load.c b/nss/lib/pk11wrap/pk11load.c
index 1811a1a..bf7cc68 100644
--- a/nss/lib/pk11wrap/pk11load.c
+++ b/nss/lib/pk11wrap/pk11load.c
@@ -622,8 +622,12 @@
           if (softokenLib) {
               disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD");
               if (!disableUnload) {
+#ifdef DEBUG
                   PRStatus status = PR_UnloadLibrary(softokenLib);
                   PORT_Assert(PR_SUCCESS == status);
+#else
+                  PR_UnloadLibrary(softokenLib);
+#endif
               }
               softokenLib = NULL;
           }
diff --git a/nss/lib/pk11wrap/pk11mech.c b/nss/lib/pk11wrap/pk11mech.c
index edc7a9b..0ebb075 100644
--- a/nss/lib/pk11wrap/pk11mech.c
+++ b/nss/lib/pk11wrap/pk11mech.c
@@ -383,6 +383,8 @@
     case CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256:
     case CKM_TLS_KEY_AND_MAC_DERIVE:
     case CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256:
+    case CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE:
+    case CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH:
     case CKM_SHA_1_HMAC:
     case CKM_SHA_1_HMAC_GENERAL:
     case CKM_SHA224_HMAC:
@@ -579,6 +581,8 @@
     case CKM_TLS_MASTER_KEY_DERIVE:
     case CKM_TLS_KEY_AND_MAC_DERIVE:
     case CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256:
+    case CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE:
+    case CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH:
 	return CKM_SSL3_PRE_MASTER_KEY_GEN;
     case CKM_SHA_1_HMAC:
     case CKM_SHA_1_HMAC_GENERAL:
diff --git a/nss/lib/pk11wrap/pk11merge.c b/nss/lib/pk11wrap/pk11merge.c
index ad9b1fd..8fadc7c 100644
--- a/nss/lib/pk11wrap/pk11merge.c
+++ b/nss/lib/pk11wrap/pk11merge.c
@@ -750,8 +750,7 @@
     CK_ATTRIBUTE sourceCKAID = {CKA_ID, NULL, 0};
     CK_ATTRIBUTE targetCKAID = {CKA_ID, NULL, 0};
     SECStatus lrv = SECSuccess;
-    int error;
-
+    int error = SEC_ERROR_LIBRARY_FAILURE;
 
     sourceCert = PK11_MakeCertFromHandle(sourceSlot, id, NULL);
     if (sourceCert == NULL) {
@@ -1262,7 +1261,8 @@
 		PK11MergeLog *log, void *targetPwArg, void *sourcePwArg)
 {
     SECStatus rv = SECSuccess;
-    int error, i;
+    int error = SEC_ERROR_LIBRARY_FAILURE;
+    int i;
     
     for (i=0; i < count; i++) {
 	/* try to update the entire database. On failure, keep going,
@@ -1326,7 +1326,8 @@
 		PK11MergeLog *log, void *targetPwArg, void *sourcePwArg)
 {
     SECStatus rv = SECSuccess, lrv = SECSuccess;
-    int error, count = 0;
+    int error = SEC_ERROR_LIBRARY_FAILURE;
+    int count = 0;
     CK_ATTRIBUTE search[2];
     CK_OBJECT_HANDLE *objectIDs = NULL;
     CK_BBOOL ck_true = CK_TRUE;
diff --git a/nss/lib/pk11wrap/pk11nobj.c b/nss/lib/pk11wrap/pk11nobj.c
index 427b09e..dcca434 100644
--- a/nss/lib/pk11wrap/pk11nobj.c
+++ b/nss/lib/pk11wrap/pk11nobj.c
@@ -21,7 +21,6 @@
 
 #include "certdb.h" 
 #include "secerr.h"
-#include "sslerr.h"
 
 #include "pki3hack.h"
 #include "dev3hack.h" 
diff --git a/nss/lib/pk11wrap/pk11obj.c b/nss/lib/pk11wrap/pk11obj.c
index 7080294..848b45a 100644
--- a/nss/lib/pk11wrap/pk11obj.c
+++ b/nss/lib/pk11wrap/pk11obj.c
@@ -1577,7 +1577,7 @@
 				CK_ATTRIBUTE_TYPE attrType, SECItem *item)
 {
     PK11SlotInfo *slot = NULL;
-    CK_OBJECT_HANDLE handle;
+    CK_OBJECT_HANDLE handle = 0;
     CK_ATTRIBUTE setTemplate;
     CK_RV crv;
     CK_SESSION_HANDLE rwsession;
@@ -1630,7 +1630,7 @@
 				CK_ATTRIBUTE_TYPE attrType, SECItem *item)
 {
     PK11SlotInfo *slot = NULL;
-    CK_OBJECT_HANDLE handle;
+    CK_OBJECT_HANDLE handle = 0;
 
     switch (objType) {
     case PK11_TypeGeneric:
@@ -1781,7 +1781,6 @@
     int tsize = sizeof(theTemplate)/sizeof(theTemplate[0]);
     /* if you change the array, change the variable below as well */
     CK_OBJECT_HANDLE peerID;
-    CK_OBJECT_HANDLE parent;
     PLArenaPool *arena;
     CK_RV crv;
 
@@ -1810,7 +1809,6 @@
     /*
      * issue the find
      */
-    parent = *(CK_OBJECT_CLASS *)(keyclass->pValue);
     *(CK_OBJECT_CLASS *)(keyclass->pValue) = matchclass;
 
     peerID = pk11_FindObjectByTemplate(slot,theTemplate,tsize);
diff --git a/nss/lib/pk11wrap/pk11pars.c b/nss/lib/pk11wrap/pk11pars.c
index 314062b..40ac790 100644
--- a/nss/lib/pk11wrap/pk11pars.c
+++ b/nss/lib/pk11wrap/pk11pars.c
@@ -134,6 +134,17 @@
 SECMOD_CreateModule(const char *library, const char *moduleName, 
 				const char *parameters, const char *nss)
 {
+    return SECMOD_CreateModuleEx(library, moduleName, parameters, nss, NULL);
+}
+
+/*
+ * for 3.4 we continue to use the old SECMODModule structure
+ */
+SECMODModule *
+SECMOD_CreateModuleEx(const char *library, const char *moduleName, 
+				const char *parameters, const char *nss,
+				const char *config)
+{
     SECMODModule *mod = secmod_NewModule();
     char *slotParams,*ciphers;
     /* pk11pars.h still does not have const char * interfaces */
@@ -148,6 +159,9 @@
     if (parameters) {
 	mod->libraryParams = PORT_ArenaStrdup(mod->arena,parameters);
     }
+    if (config) {
+	/* XXX: Apply configuration */
+    }
     mod->internal   = NSSUTIL_ArgHasFlag("flags","internal",nssc);
     mod->isFIPS     = NSSUTIL_ArgHasFlag("flags","FIPS",nssc);
     mod->isCritical = NSSUTIL_ArgHasFlag("flags","critical",nssc);
@@ -977,6 +991,7 @@
 SECMOD_LoadModule(char *modulespec,SECMODModule *parent, PRBool recurse)
 {
     char *library = NULL, *moduleName = NULL, *parameters = NULL, *nss= NULL;
+    char *config = NULL;
     SECStatus status;
     SECMODModule *module = NULL;
     SECMODModule *oldModule = NULL;
@@ -985,17 +1000,19 @@
     /* initialize the underlying module structures */
     SECMOD_Init();
 
-    status = NSSUTIL_ArgParseModuleSpec(modulespec, &library, &moduleName, 
-							&parameters, &nss);
+    status = NSSUTIL_ArgParseModuleSpecEx(modulespec, &library, &moduleName, 
+							&parameters, &nss,
+							&config);
     if (status != SECSuccess) {
 	goto loser;
     }
 
-    module = SECMOD_CreateModule(library, moduleName, parameters, nss);
+    module = SECMOD_CreateModuleEx(library, moduleName, parameters, nss, config);
     if (library) PORT_Free(library);
     if (moduleName) PORT_Free(moduleName);
     if (parameters) PORT_Free(parameters);
     if (nss) PORT_Free(nss);
+    if (config) PORT_Free(config);
     if (!module) {
 	goto loser;
     }
diff --git a/nss/lib/pk11wrap/pk11pk12.c b/nss/lib/pk11wrap/pk11pk12.c
index 471e57b..e5a0a21 100644
--- a/nss/lib/pk11wrap/pk11pk12.c
+++ b/nss/lib/pk11wrap/pk11pk12.c
@@ -234,13 +234,17 @@
     rv = SEC_ASN1DecodeItem(pki->arena, pki, SECKEY_PrivateKeyInfoTemplate,
 		derPKI);
     if( rv != SECSuccess ) {
-	goto finish;
+        /* If SEC_ASN1DecodeItem fails, we cannot assume anything about the
+         * validity of the data in pki. The best we can do is free the arena
+         * and return.
+         */
+        PORT_FreeArena(temparena, PR_TRUE);
+        return rv;
     }
 
     rv = PK11_ImportPrivateKeyInfoAndReturnKey(slot, pki, nickname,
 		publicValue, isPerm, isPrivate, keyUsage, privk, wincx);
 
-finish:
     /* this zeroes the key and frees the arena */
     SECKEY_DestroyPrivateKeyInfo(pki, PR_TRUE /*freeit*/);
     return rv;
@@ -422,7 +426,6 @@
 	PRBool isPerm, PRBool isPrivate, unsigned int keyUsage,
 	SECKEYPrivateKey **privk, void *wincx) 
 {
-    CK_KEY_TYPE keyType = CKK_RSA;
     SECStatus rv = SECFailure;
     SECKEYRawPrivateKey *lpk = NULL;
     const SEC_ASN1Template *keyTemplate, *paramTemplate;
@@ -449,7 +452,6 @@
 	    paramTemplate = NULL;
 	    paramDest = NULL;
 	    lpk->keyType = rsaKey;
-	    keyType = CKK_RSA;
 	    break;
 	case SEC_OID_ANSIX9_DSA_SIGNATURE:
 	    prepare_dsa_priv_key_export_for_asn1(lpk);
@@ -457,7 +459,6 @@
 	    paramTemplate = SECKEY_PQGParamsTemplate;
 	    paramDest = &(lpk->u.dsa.params);
 	    lpk->keyType = dsaKey;
-	    keyType = CKK_DSA;
 	    break;
 	case SEC_OID_X942_DIFFIE_HELMAN_KEY:
 	    if(!publicValue) {
@@ -468,7 +469,6 @@
 	    paramTemplate = NULL;
 	    paramDest = NULL;
 	    lpk->keyType = dhKey;
-	    keyType = CKK_DH;
 	    break;
 
 	default:
diff --git a/nss/lib/pk11wrap/pk11skey.c b/nss/lib/pk11wrap/pk11skey.c
index 4c5b9f1..20d9eaa 100644
--- a/nss/lib/pk11wrap/pk11skey.c
+++ b/nss/lib/pk11wrap/pk11skey.c
@@ -1821,6 +1821,8 @@
 
     switch (privKey->keyType) {
     case rsaKey:
+    case rsaPssKey:
+    case rsaOaepKey:
     case nullKey:
 	PORT_SetError(SEC_ERROR_BAD_KEY);
 	break;
diff --git a/nss/lib/pk11wrap/pk11slot.c b/nss/lib/pk11wrap/pk11slot.c
index 1f6597b..d52c020 100644
--- a/nss/lib/pk11wrap/pk11slot.c
+++ b/nss/lib/pk11wrap/pk11slot.c
@@ -400,6 +400,7 @@
     slot->minPassword = 0;
     slot->maxPassword = 0;
     slot->hasRootCerts = PR_FALSE;
+    slot->hasRootTrust = PR_FALSE;
     slot->nssToken = NULL;
     return slot;
 }
@@ -555,10 +556,10 @@
                     break;
                 }
                 if ((PR_FALSE == presentOnly || PK11_IsPresent(tmpSlot)) &&
-                    ( (!tokenName) || (tmpSlot->token_name &&
-                    (0==PORT_Strcmp(tmpSlot->token_name, tokenName)))) &&
-                    ( (!slotName) || (tmpSlot->slot_name &&
-                    (0==PORT_Strcmp(tmpSlot->slot_name, slotName)))) ) {
+                    ( (!tokenName) ||
+                      (0==PORT_Strcmp(tmpSlot->token_name, tokenName)) ) &&
+                    ( (!slotName) ||
+                      (0==PORT_Strcmp(tmpSlot->slot_name, slotName)) ) ) {
                     if (tmpSlot) {
                         PK11_AddSlotToList(slotList, tmpSlot, PR_TRUE);
                         slotcount++;
@@ -1105,7 +1106,6 @@
 {
     CK_TOKEN_INFO tokenInfo;
     CK_RV crv;
-    char *tmp;
     SECStatus rv;
     PRStatus status;
 
@@ -1139,8 +1139,8 @@
     if (slot->isActiveCard) {
 	slot->protectedAuthPath = PR_FALSE;
     }
-    tmp = PK11_MakeString(NULL,slot->token_name,
-			(char *)tokenInfo.label, sizeof(tokenInfo.label));
+    (void)PK11_MakeString(NULL,slot->token_name,
+			  (char *)tokenInfo.label, sizeof(tokenInfo.label));
     slot->minPassword = tokenInfo.ulMinPinLen;
     slot->maxPassword = tokenInfo.ulMaxPinLen;
     PORT_Memcpy(slot->serial,tokenInfo.serialNumber,sizeof(slot->serial));
@@ -1349,7 +1349,6 @@
 PK11_InitSlot(SECMODModule *mod, CK_SLOT_ID slotID, PK11SlotInfo *slot)
 {
     SECStatus rv;
-    char *tmp;
     CK_SLOT_INFO slotInfo;
 
     slot->functionList = mod->functionList;
@@ -1371,7 +1370,7 @@
 			 * works because modules keep implicit references
 			 * from their slots, and won't unload and disappear
 			 * until all their slots have been freed */
-    tmp = PK11_MakeString(NULL,slot->slot_name,
+    (void)PK11_MakeString(NULL,slot->slot_name,
 	 (char *)slotInfo.slotDescription, sizeof(slotInfo.slotDescription));
     slot->isHW = (PRBool)((slotInfo.flags & CKF_HW_SLOT) == CKF_HW_SLOT);
 #define ACTIVE_CARD "ActivCard SA"
@@ -2052,7 +2051,7 @@
     PK11SlotInfo *slot = NULL;
     PRBool freeit = PR_FALSE;
     PRBool listNeedLogin = PR_FALSE;
-    int i;
+    unsigned int i;
     SECStatus rv;
 
     list = PK11_GetSlotList(type[0]);
diff --git a/nss/lib/pk11wrap/secmod.h b/nss/lib/pk11wrap/secmod.h
index 9cc4cfb..c194d9a 100644
--- a/nss/lib/pk11wrap/secmod.h
+++ b/nss/lib/pk11wrap/secmod.h
@@ -64,6 +64,9 @@
 
 SECMODModule * SECMOD_CreateModule(const char *lib, const char *name,
 					const char *param, const char *nss);
+SECMODModule * SECMOD_CreateModuleEx(const char *lib, const char *name,
+					const char *param, const char *nss,
+					const char *config);
 /*
  * After a fork(), PKCS #11 says we need to call C_Initialize again in
  * the child before we can use the module. This function causes this 
diff --git a/nss/lib/pkcs7/p7common.c b/nss/lib/pkcs7/p7common.c
index 9a44f20..10015ce 100644
--- a/nss/lib/pkcs7/p7common.c
+++ b/nss/lib/pkcs7/p7common.c
@@ -408,7 +408,6 @@
 			 void *wincx)
 {
     SECAlgorithmID *algid 	= NULL;
-    SECItem *       result 	= NULL;
     SECItem *       src;
     SECItem *       dest;
     SECItem *       blocked_data = NULL;
@@ -524,9 +523,6 @@
     if(blocked_data != NULL)
 	SECITEM_ZfreeItem(blocked_data, PR_TRUE);
 
-    if(result != NULL)
-	SECITEM_ZfreeItem(result, PR_TRUE);
-
     if(rv == SECFailure)
 	PORT_ArenaRelease(poolp, mark);
     else 
@@ -566,7 +562,7 @@
 {
     SECAlgorithmID *algid = NULL;
     SECStatus rv = SECFailure;
-    SECItem *result = NULL, *dest, *src;
+    SECItem *dest, *src;
     void *mark;
 
     PK11SymKey *eKey = NULL;
@@ -645,9 +641,6 @@
 
 loser:
     /* let success fall through */
-    if(result != NULL)
-	SECITEM_ZfreeItem(result, PR_TRUE);
-
     if(rv == SECFailure)
 	PORT_ArenaRelease(poolp, mark);
     else
diff --git a/nss/lib/pkcs7/p7decode.c b/nss/lib/pkcs7/p7decode.c
index 8068954..7a52d82 100644
--- a/nss/lib/pkcs7/p7decode.c
+++ b/nss/lib/pkcs7/p7decode.c
@@ -1290,7 +1290,6 @@
     const SECItem *digest;
     SECItem **digests;
     SECItem **rawcerts;
-    CERTSignedCrl **crls;
     SEC_PKCS7SignerInfo **signerinfos, *signerinfo;
     CERTCertificate *cert, **certs;
     PRBool goodsig;
@@ -1340,7 +1339,6 @@
 	    digestalgs = sdp->digestAlgorithms;
 	    digests = sdp->digests;
 	    rawcerts = sdp->rawCerts;
-	    crls = sdp->crls;
 	    signerinfos = sdp->signerInfos;
 	    content_type = &(sdp->contentInfo.contentType);
 	    sigkey = NULL;
@@ -1355,7 +1353,6 @@
 	    digestalgs = saedp->digestAlgorithms;
 	    digests = saedp->digests;
 	    rawcerts = saedp->rawCerts;
-	    crls = saedp->crls;
 	    signerinfos = saedp->signerInfos;
 	    content_type = &(saedp->encContentInfo.contentType);
 	    sigkey = saedp->sigKey;
diff --git a/nss/lib/pkcs7/p7encode.c b/nss/lib/pkcs7/p7encode.c
index 99b68ee..349bc84 100644
--- a/nss/lib/pkcs7/p7encode.c
+++ b/nss/lib/pkcs7/p7encode.c
@@ -59,13 +59,10 @@
     SECKEYPublicKey *publickey = NULL;
     SECKEYPrivateKey *ourPrivKey = NULL;
     PK11SymKey  *bulkkey;
-    void *mark, *wincx;
+    void *mark;
     int i;
     PLArenaPool *arena = NULL;
 
-    /* Get the context in case we need it below. */
-    wincx = cinfo->pwfn_arg;
-
     kind = SEC_PKCS7ContentType (cinfo);
     switch (kind) {
       default:
diff --git a/nss/lib/pkcs7/p7local.c b/nss/lib/pkcs7/p7local.c
index 6a7af1f..5e67a0e 100644
--- a/nss/lib/pkcs7/p7local.c
+++ b/nss/lib/pkcs7/p7local.c
@@ -203,7 +203,8 @@
 	rv = PK11_ParamToAlgid(algtag,param,poolp,algid);
 	if(rv != SECSuccess) {
 	    PORT_Free (result);
-            SECITEM_FreeItem(param,PR_TRUE);
+	    SECITEM_FreeItem(param,PR_TRUE);
+	    PK11_DestroyContext(ciphercx, PR_TRUE);
 	    return NULL;
 	}
     }
@@ -397,7 +398,7 @@
 		  const unsigned char *input, unsigned int input_len,
 		  PRBool final)
 {
-    int blocks, bsize, pcount, padsize;
+    unsigned int blocks, bsize, pcount, padsize;
     unsigned int max_needed, ifraglen, ofraglen, output_len;
     unsigned char *pbuf;
     SECStatus rv;
diff --git a/nss/lib/pki/certificate.c b/nss/lib/pki/certificate.c
index ed6145a..fdf147c 100644
--- a/nss/lib/pki/certificate.c
+++ b/nss/lib/pki/certificate.c
@@ -895,7 +895,6 @@
 {
     nssListIterator *certs;
     NSSCertificate *cert;
-    PRStatus nssrv;
     certs = nssList_CreateIterator(certList);
     if (!certs) {
         return PR_FAILURE;
@@ -904,7 +903,7 @@
          cert != (NSSCertificate *)NULL;
          cert  = (NSSCertificate *)nssListIterator_Next(certs))
     {
-	nssrv = (*callback)(cert, arg);
+	(void)(*callback)(cert, arg);
     }
     nssListIterator_Finish(certs);
     nssListIterator_Destroy(certs);
diff --git a/nss/lib/pki/pki3hack.c b/nss/lib/pki/pki3hack.c
index 953d738..b145092 100644
--- a/nss/lib/pki/pki3hack.c
+++ b/nss/lib/pki/pki3hack.c
@@ -239,6 +239,7 @@
     }
     secrv = CERT_KeyFromDERCert(arena, &secDER, &secKey);
     if (secrv != SECSuccess) {
+	PORT_FreeArena(arena, PR_FALSE);
 	return NULL;
     }
     rvKey = nssItem_Create(arenaOpt, NULL, secKey.len, (void *)secKey.data);
@@ -1272,7 +1273,7 @@
 {
     int numNotDestroyed = 0;     /* the ones skipped plus the failures */
     int failureCount = 0;        /* actual deletion failures by devices */
-    int index;
+    unsigned int index;
 
     nssPKIObject_AddRef(tObject);
     nssPKIObject_Lock(tObject);
@@ -1327,7 +1328,7 @@
     /* caller made sure nssTrust isn't NULL */
     nssPKIObject *tobject = &nssTrust->object;
     nssPKIObject *cobject = &c->object;
-    int i;
+    unsigned int i;
 
     /* Iterate through the cert and trust object instances looking for
      * those with matching pk11 slots to delete. Even if some device
diff --git a/nss/lib/pki/pkibase.c b/nss/lib/pki/pkibase.c
index 083b9b6..0e39e8b 100644
--- a/nss/lib/pki/pkibase.c
+++ b/nss/lib/pki/pkibase.c
@@ -903,7 +903,6 @@
   nssPKIObjectCallback *callback
 )
 {
-    PRStatus status;
     PRCList *link = PR_NEXT_LINK(&collection->head);
     pkiObjectCollectionNode *node;
     while (link != &collection->head) {
@@ -920,19 +919,19 @@
 	}
 	switch (collection->objectType) {
 	case pkiObjectType_Certificate: 
-	    status = (*callback->func.cert)((NSSCertificate *)node->object, 
+	    (void)(*callback->func.cert)((NSSCertificate *)node->object, 
 	                                    callback->arg);
 	    break;
 	case pkiObjectType_CRL: 
-	    status = (*callback->func.crl)((NSSCRL *)node->object, 
+	    (void)(*callback->func.crl)((NSSCRL *)node->object, 
 	                                   callback->arg);
 	    break;
 	case pkiObjectType_PrivateKey: 
-	    status = (*callback->func.pvkey)((NSSPrivateKey *)node->object, 
+	    (void)(*callback->func.pvkey)((NSSPrivateKey *)node->object, 
 	                                     callback->arg);
 	    break;
 	case pkiObjectType_PublicKey: 
-	    status = (*callback->func.pbkey)((NSSPublicKey *)node->object, 
+	    (void)(*callback->func.pbkey)((NSSPublicKey *)node->object, 
 	                                     callback->arg);
 	    break;
 	}
@@ -1057,9 +1056,11 @@
   NSSCertificate **certsOpt
 )
 {
-    PRStatus status;
     nssPKIObjectCollection *collection;
     collection = nssPKIObjectCollection_Create(td, NULL, nssPKIMonitor);
+    if (!collection) {
+        return NULL;
+    }
     collection->objectType = pkiObjectType_Certificate;
     collection->destroyObject = cert_destroyObject;
     collection->getUIDFromObject = cert_getUIDFromObject;
@@ -1068,7 +1069,7 @@
     if (certsOpt) {
 	for (; *certsOpt; certsOpt++) {
 	    nssPKIObject *object = (nssPKIObject *)(*certsOpt);
-	    status = nssPKIObjectCollection_AddObject(collection, object);
+	    (void)nssPKIObjectCollection_AddObject(collection, object);
 	}
     }
     return collection;
@@ -1164,9 +1165,11 @@
   NSSCRL **crlsOpt
 )
 {
-    PRStatus status;
     nssPKIObjectCollection *collection;
     collection = nssPKIObjectCollection_Create(td, NULL, nssPKILock);
+    if (!collection) {
+        return NULL;
+    }
     collection->objectType = pkiObjectType_CRL;
     collection->destroyObject = crl_destroyObject;
     collection->getUIDFromObject = crl_getUIDFromObject;
@@ -1175,7 +1178,7 @@
     if (crlsOpt) {
 	for (; *crlsOpt; crlsOpt++) {
 	    nssPKIObject *object = (nssPKIObject *)(*crlsOpt);
-	    status = nssPKIObjectCollection_AddObject(collection, object);
+	    (void)nssPKIObjectCollection_AddObject(collection, object);
 	}
     }
     return collection;
diff --git a/nss/lib/pki/tdcache.c b/nss/lib/pki/tdcache.c
index 7842189..5f9dfdd 100644
--- a/nss/lib/pki/tdcache.c
+++ b/nss/lib/pki/tdcache.c
@@ -329,7 +329,7 @@
     nssList *subjectList;
     cache_entry *ce;
     NSSArena *arena;
-    NSSUTF8 *nickname;
+    NSSUTF8 *nickname = NULL;
 
 #ifdef DEBUG_CACHE
     log_cert_ref("attempt to remove cert", cert);
@@ -776,14 +776,18 @@
     added++;
     /* If a new subject entry was created, also need nickname and/or email */
     if (subjectList != NULL) {
+#ifdef nodef
 	PRBool handle = PR_FALSE;
+#endif
 	if (certNickname) {
 	    nssrv = add_nickname_entry(arena, td->cache, 
 						certNickname, subjectList);
 	    if (nssrv != PR_SUCCESS) {
 		goto loser;
 	    }
+#ifdef nodef
 	    handle = PR_TRUE;
+#endif
 	    added++;
 	}
 	if (cert->email) {
@@ -791,7 +795,9 @@
 	    if (nssrv != PR_SUCCESS) {
 		goto loser;
 	    }
+#ifdef nodef
 	    handle = PR_TRUE;
+#endif
 	    added += 2;
 	}
 #ifdef nodef
diff --git a/nss/lib/pki/trustdomain.c b/nss/lib/pki/trustdomain.c
index a3d26a8..90e8f26 100644
--- a/nss/lib/pki/trustdomain.c
+++ b/nss/lib/pki/trustdomain.c
@@ -991,7 +991,6 @@
   void *arg
 )
 {
-    PRStatus status = PR_FAILURE;
     NSSToken *token = NULL;
     NSSSlot **slots = NULL;
     NSSSlot **slotp;
@@ -1028,7 +1027,7 @@
 	    session = nssTrustDomain_GetSessionForToken(td, token);
 	    if (session) {
 		/* perform the traversal */
-		status = nssToken_TraverseCertificates(token,
+		(void)nssToken_TraverseCertificates(token,
 						       session,
 						       tokenOnly,
 						       collector,
@@ -1041,7 +1040,7 @@
     /* Traverse the collection */
     pkiCallback.func.cert = callback;
     pkiCallback.arg = arg;
-    status = nssPKIObjectCollection_Traverse(collection, &pkiCallback);
+    (void)nssPKIObjectCollection_Traverse(collection, &pkiCallback);
 loser:
     if (slots) {
 	nssSlotArray_Destroy(slots);
diff --git a/nss/lib/softoken/lowpbe.c b/nss/lib/softoken/lowpbe.c
index c0949fe..16d4c91 100644
--- a/nss/lib/softoken/lowpbe.c
+++ b/nss/lib/softoken/lowpbe.c
@@ -516,7 +516,7 @@
 	}
 
 	PORT_Memcpy(Ai, iterBuf, hashLength);
-	for (Bidx = 0; Bidx < B.len; Bidx += hashLength) {
+	for (Bidx = 0; Bidx < (int)B.len; Bidx += hashLength) {
 	    PORT_Memcpy(B.data+Bidx,iterBuf,NSSPBE_MIN(B.len-Bidx,hashLength));
 	}
 
diff --git a/nss/lib/softoken/pkcs11.c b/nss/lib/softoken/pkcs11.c
index 716922f..75c9e8e 100644
--- a/nss/lib/softoken/pkcs11.c
+++ b/nss/lib/softoken/pkcs11.c
@@ -396,6 +396,7 @@
      {CKM_SHA512_HMAC,		{1, 128, CKF_SN_VR},		PR_TRUE},
      {CKM_SHA512_HMAC_GENERAL,	{1, 128, CKF_SN_VR},		PR_TRUE},
      {CKM_TLS_PRF_GENERAL,	{0, 512, CKF_SN_VR},		PR_FALSE},
+     {CKM_TLS_MAC,		{0, 512, CKF_SN_VR},		PR_FALSE},
      {CKM_NSS_TLS_PRF_GENERAL_SHA256,
 				{0, 512, CKF_SN_VR},		PR_FALSE},
      /* ------------------------- HKDF Operations -------------------------- */
@@ -465,14 +466,21 @@
      {CKM_SHA384_KEY_DERIVATION,	{ 0, 48, CKF_DERIVE},   PR_FALSE}, 
      {CKM_SHA512_KEY_DERIVATION,	{ 0, 64, CKF_DERIVE},   PR_FALSE}, 
      {CKM_TLS_MASTER_KEY_DERIVE,	{48, 48, CKF_DERIVE},   PR_FALSE}, 
+     {CKM_TLS12_MASTER_KEY_DERIVE,	{48, 48, CKF_DERIVE},   PR_FALSE}, 
      {CKM_NSS_TLS_MASTER_KEY_DERIVE_SHA256,
 					{48, 48, CKF_DERIVE},	PR_FALSE},
      {CKM_TLS_MASTER_KEY_DERIVE_DH,	{8, 128, CKF_DERIVE},   PR_FALSE}, 
+     {CKM_TLS12_MASTER_KEY_DERIVE_DH,	{8, 128, CKF_DERIVE},   PR_FALSE}, 
      {CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256,
 					{8, 128, CKF_DERIVE},	PR_FALSE},
      {CKM_TLS_KEY_AND_MAC_DERIVE,	{48, 48, CKF_DERIVE},   PR_FALSE}, 
+     {CKM_TLS12_KEY_AND_MAC_DERIVE,	{48, 48, CKF_DERIVE},   PR_FALSE}, 
      {CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256,
 					{48, 48, CKF_DERIVE},	PR_FALSE},
+     {CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE,
+                                        {48,128, CKF_DERIVE},   PR_FALSE},
+     {CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH,
+                                        {48,128, CKF_DERIVE},   PR_FALSE},
      /* ---------------------- PBE Key Derivations  ------------------------ */
      {CKM_PBE_MD2_DES_CBC,		{8, 8, CKF_DERIVE},   PR_TRUE},
      {CKM_PBE_MD5_DES_CBC,		{8, 8, CKF_DERIVE},   PR_TRUE},
@@ -1745,7 +1753,7 @@
 	crv = sftk_Attribute2SSecItem(arena,&pubKey->u.ec.publicValue,
 	                              object,CKA_EC_POINT);
 	if (crv == CKR_OK) {
-	    int keyLen,curveLen;
+	    unsigned int keyLen,curveLen;
 
 	    curveLen = (pubKey->u.ec.ecParams.fieldID.size +7)/8;
 	    keyLen = (2*curveLen)+1;
@@ -2220,7 +2228,7 @@
 static PLHashNumber
 sftk_HashNumber(const void *key)
 {
-    return (PLHashNumber) key;
+    return (PLHashNumber)((char *)key - (char *)NULL);
 }
 
 /*
@@ -2601,7 +2609,7 @@
 		--slot->sessionCount;
 		SKIP_AFTER_FORK(PZ_Unlock(slot->slotLock));
 		if (session->info.flags & CKF_RW_SESSION) {
-		    PR_ATOMIC_DECREMENT(&slot->rwSessionCount);
+		    (void)PR_ATOMIC_DECREMENT(&slot->rwSessionCount);
 		}
 	    } else {
 		SKIP_AFTER_FORK(PZ_Unlock(lock));
@@ -2756,7 +2764,7 @@
     case SECMOD_MODULE_DB_FUNCTION_FIND:
 	if (secmod == NULL) {
 	    PORT_SetError(SEC_ERROR_INVALID_ARGS);
-	    return NULL;
+	    goto loser;
 	}
 	if (rw && (dbType != NSS_DB_TYPE_LEGACY) && 
 	    (dbType != NSS_DB_TYPE_MULTIACCESS)) {
@@ -2799,7 +2807,7 @@
     case SECMOD_MODULE_DB_FUNCTION_ADD:
 	if (secmod == NULL) {
 	    PORT_SetError(SEC_ERROR_INVALID_ARGS);
-	    return NULL;
+	    goto loser;
 	}
 	rvstr = (sftkdbCall_AddSecmodDB(appName,filename,secmod,
 			(char *)args,rw) == SECSuccess) ? &success: NULL;
@@ -2807,7 +2815,7 @@
     case SECMOD_MODULE_DB_FUNCTION_DEL:
 	if (secmod == NULL) {
 	    PORT_SetError(SEC_ERROR_INVALID_ARGS);
-	    return NULL;
+	    goto loser;
 	}
 	rvstr = (sftkdbCall_DeleteSecmodDB(appName,filename,secmod,
 			(char *)args,rw) == SECSuccess) ? &success: NULL;
@@ -2817,6 +2825,8 @@
 			(char **)args,rw) == SECSuccess) ? &success: NULL;
 	break;
     }
+
+loser:
     if (secmod) PR_smprintf_free(secmod);
     if (appName) PORT_Free(appName);
     if (filename) PORT_Free(filename);
@@ -3138,17 +3148,16 @@
     return crv;
 }
 
-extern const char __nss_softokn_rcsid[];
-extern const char __nss_softokn_sccsid[];
+extern const char __nss_softokn_version[];
 
 /* NSC_GetInfo returns general information about Cryptoki. */
 CK_RV  NSC_GetInfo(CK_INFO_PTR pInfo)
 {
-    volatile char c; /* force a reference that won't get optimized away */
+#define NSS_VERSION_VARIABLE __nss_softokn_version
+#include "verref.h"
 
     CHECK_FORK();
     
-    c = __nss_softokn_rcsid[0] + __nss_softokn_sccsid[0]; 
     pInfo->cryptokiVersion.major = 2;
     pInfo->cryptokiVersion.minor = 20;
     PORT_Memcpy(pInfo->manufacturerID,manufacturerID,32);
@@ -3719,7 +3728,7 @@
     ++slot->sessionCount;
     PZ_Unlock(slot->slotLock);
     if (session->info.flags & CKF_RW_SESSION) {
-	PR_ATOMIC_INCREMENT(&slot->rwSessionCount);
+	(void)PR_ATOMIC_INCREMENT(&slot->rwSessionCount);
     }
 
     do {
@@ -3787,7 +3796,7 @@
 	    sftk_freeDB(handle);
 	}
 	if (session->info.flags & CKF_RW_SESSION) {
-	    PR_ATOMIC_DECREMENT(&slot->rwSessionCount);
+	    (void)PR_ATOMIC_DECREMENT(&slot->rwSessionCount);
 	}
     }
 
@@ -4005,7 +4014,7 @@
     PRBool isValidFIPSUserSlot = PR_FALSE;
     PRBool isValidSlot = PR_FALSE;
     PRBool isFIPS = PR_FALSE;
-    unsigned long moduleIndex;
+    unsigned long moduleIndex = NSC_NON_FIPS_MODULE;
     SFTKAttribute *attribute;
     sftk_parameters paramStrings;
     char *paramString;
@@ -4514,7 +4523,7 @@
 {
     PRBool isCert = PR_FALSE;
     int emailIndex = -1;
-    int i;
+    unsigned int i;
     SFTKSearchResults smime_search;
     CK_ATTRIBUTE smime_template[2];
     CK_OBJECT_CLASS smime_class = CKO_NETSCAPE_SMIME;
diff --git a/nss/lib/softoken/pkcs11c.c b/nss/lib/softoken/pkcs11c.c
index 955d4c9..992fba4 100644
--- a/nss/lib/softoken/pkcs11c.c
+++ b/nss/lib/softoken/pkcs11c.c
@@ -73,6 +73,7 @@
     } \
     printf("\n") 
 #else
+#undef EC_DEBUG
 #define SEC_PRINT(a, b, c, d) 
 #endif
 #endif /* NSS_DISABLE_ECC */
@@ -2637,10 +2638,52 @@
 					*(CK_ULONG *)pMechanism->pParameter);
 	break;
     case CKM_TLS_PRF_GENERAL:
-	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgNULL);
+	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgNULL, 0);
 	break;
+    case CKM_TLS_MAC: {
+	CK_TLS_MAC_PARAMS *tls12_mac_params;
+	HASH_HashType tlsPrfHash;
+	const char *label;
+
+	if (pMechanism->ulParameterLen != sizeof(CK_TLS_MAC_PARAMS)) {
+	    crv = CKR_MECHANISM_PARAM_INVALID;
+	    break;
+	}
+	tls12_mac_params = (CK_TLS_MAC_PARAMS *)pMechanism->pParameter;
+	if (tls12_mac_params->prfMechanism == CKM_TLS_PRF) {
+	    /* The TLS 1.0 and 1.1 PRF */
+	    tlsPrfHash = HASH_AlgNULL;
+	    if (tls12_mac_params->ulMacLength != 12) {
+		crv = CKR_MECHANISM_PARAM_INVALID;
+		break;
+	    }
+	} else {
+	    /* The hash function for the TLS 1.2 PRF */
+	    tlsPrfHash =
+		GetHashTypeFromMechanism(tls12_mac_params->prfMechanism);
+	    if (tlsPrfHash == HASH_AlgNULL ||
+		tls12_mac_params->ulMacLength < 12) {
+		crv = CKR_MECHANISM_PARAM_INVALID;
+		break;
+	    }
+	}
+	if (tls12_mac_params->ulServerOrClient == 1) {
+	    label = "server finished";
+	} else if (tls12_mac_params->ulServerOrClient == 2) {
+	    label = "client finished";
+	} else {
+	    crv = CKR_MECHANISM_PARAM_INVALID;
+	    break;
+	}
+	crv = sftk_TLSPRFInit(context, key, key_type, tlsPrfHash,
+			      tls12_mac_params->ulMacLength);
+	if (crv == CKR_OK) {
+	    context->hashUpdate(context->hashInfo, label, 15);
+	}
+	break;
+    }
     case CKM_NSS_TLS_PRF_GENERAL_SHA256:
-	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgSHA256);
+	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgSHA256, 0);
 	break;
 
     case CKM_NSS_HMAC_CONSTANT_TIME: {
@@ -2654,6 +2697,7 @@
 	}
 	intpointer = PORT_New(CK_ULONG);
 	if (intpointer == NULL) {
+	    PORT_Free(ctx);
 	    crv = CKR_HOST_MEMORY;
 	    break;
 	}
@@ -2683,6 +2727,7 @@
 	}
 	intpointer = PORT_New(CK_ULONG);
 	if (intpointer == NULL) {
+	    PORT_Free(ctx);
 	    crv = CKR_HOST_MEMORY;
 	    break;
 	}
@@ -3234,10 +3279,10 @@
 					*(CK_ULONG *)pMechanism->pParameter);
 	break;
     case CKM_TLS_PRF_GENERAL:
-	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgNULL);
+	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgNULL, 0);
 	break;
     case CKM_NSS_TLS_PRF_GENERAL_SHA256:
-	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgSHA256);
+	crv = sftk_TLSPRFInit(context, key, key_type, HASH_AlgSHA256, 0);
 	break;
 
     default:
@@ -3777,6 +3822,7 @@
 
     salt.data = (unsigned char *)pbe_params->pSalt;
     salt.len = (unsigned int)pbe_params->ulSaltLen;
+    salt.type = siBuffer;
     rv = SECITEM_CopyItem(arena,&params->salt,&salt);
     if (rv != SECSuccess) {
 	PORT_FreeArena(arena,PR_TRUE);
@@ -3921,7 +3967,7 @@
      * produce them any more.  The affected algorithm was 3DES.
      */
     PRBool faultyPBE3DES = PR_FALSE;
-    HASH_HashType hashType;
+    HASH_HashType hashType = HASH_AlgNULL;
 
     CHECK_FORK();
 
@@ -4163,8 +4209,8 @@
      */
     CK_MECHANISM mech = {0, NULL, 0};
 
-    CK_ULONG modulusLen;
-    CK_ULONG subPrimeLen;
+    CK_ULONG modulusLen = 0;
+    CK_ULONG subPrimeLen = 0;
     PRBool isEncryptable = PR_FALSE;
     PRBool canSignVerify = PR_FALSE;
     PRBool isDerivable = PR_FALSE;
@@ -4462,7 +4508,6 @@
     DSAPrivateKey *	dsaPriv;
 
     /* Diffie Hellman */
-    int 		private_value_bits = 0;
     DHPrivateKey *	dhPriv;
 
 #ifndef NSS_DISABLE_ECC
@@ -4514,7 +4559,6 @@
      */
     for (i=0; i < (int) ulPrivateKeyAttributeCount; i++) {
 	if (pPrivateKeyTemplate[i].type == CKA_VALUE_BITS) {
-	    private_value_bits = *(CK_ULONG *)pPrivateKeyTemplate[i].pValue;
 	    continue;
 	}
 
@@ -4984,7 +5028,9 @@
     SECStatus rv = SECSuccess;
     SECItem *encodedKey = NULL;
 #ifndef NSS_DISABLE_ECC
+#ifdef EC_DEBUG
     SECItem *fordebug;
+#endif
     int savelen;
 #endif
 
@@ -5057,9 +5103,11 @@
 	    lk->u.ec.ecParams.curveOID.len = savelen;
 	    lk->u.ec.publicValue.len >>= 3;
 
+#ifdef EC_DEBUG
 	    fordebug = &pki->privateKey;
 	    SEC_PRINT("sftk_PackagePrivateKey()", "PrivateKey", lk->keyType,
 		      fordebug);
+#endif
 
 	    param = SECITEM_DupItem(&lk->u.ec.ecParams.DEREncoding);
 
@@ -5098,7 +5146,7 @@
 				    nsslowkey_PrivateKeyInfoTemplate);
     *crvp = encodedKey ? CKR_OK : CKR_DEVICE_ERROR;
 
-#ifndef NSS_DISABLE_ECC
+#ifdef EC_DEBUG
     fordebug = encodedKey;
     SEC_PRINT("sftk_PackagePrivateKey()", "PrivateKeyInfo", lk->keyType,
 	      fordebug);
@@ -5947,9 +5995,10 @@
     CK_KEY_TYPE     keyType	= CKK_GENERIC_SECRET;
     CK_OBJECT_CLASS classType	= CKO_SECRET_KEY;
     CK_KEY_DERIVATION_STRING_DATA *stringPtr;
+    CK_MECHANISM_TYPE mechanism = pMechanism->mechanism;
     PRBool          isTLS = PR_FALSE;
-    PRBool          isSHA256 = PR_FALSE;
     PRBool          isDH = PR_FALSE;
+    HASH_HashType   tlsPrfHash = HASH_AlgNULL;
     SECStatus       rv;
     int             i;
     unsigned int    outLen;
@@ -5996,7 +6045,7 @@
 	keySize = sftk_MapKeySize(keyType);
     }
 
-    switch (pMechanism->mechanism) {
+    switch (mechanism) {
       case CKM_NSS_JPAKE_ROUND2_SHA1:   /* fall through */
       case CKM_NSS_JPAKE_ROUND2_SHA256: /* fall through */
       case CKM_NSS_JPAKE_ROUND2_SHA384: /* fall through */
@@ -6044,18 +6093,16 @@
         }
     }
 
-    switch (pMechanism->mechanism) {
+    switch (mechanism) {
     /*
      * generate the master secret 
      */
+    case CKM_TLS12_MASTER_KEY_DERIVE:
+    case CKM_TLS12_MASTER_KEY_DERIVE_DH:
     case CKM_NSS_TLS_MASTER_KEY_DERIVE_SHA256:
     case CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256:
-	isSHA256 = PR_TRUE;
-	/* fall thru */
     case CKM_TLS_MASTER_KEY_DERIVE:
     case CKM_TLS_MASTER_KEY_DERIVE_DH:
-	isTLS = PR_TRUE;
-	/* fall thru */
     case CKM_SSL3_MASTER_KEY_DERIVE:
     case CKM_SSL3_MASTER_KEY_DERIVE_DH:
       {
@@ -6063,12 +6110,32 @@
 	SSL3RSAPreMasterSecret *          rsa_pms;
 	unsigned char                     crsrdata[SSL3_RANDOM_LENGTH * 2];
 
-        if ((pMechanism->mechanism == CKM_SSL3_MASTER_KEY_DERIVE_DH) ||
-            (pMechanism->mechanism == CKM_TLS_MASTER_KEY_DERIVE_DH) ||
-            (pMechanism->mechanism == CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256))
-		isDH = PR_TRUE;
+	if ((mechanism == CKM_TLS12_MASTER_KEY_DERIVE) ||
+	    (mechanism == CKM_TLS12_MASTER_KEY_DERIVE_DH)) {
+	    CK_TLS12_MASTER_KEY_DERIVE_PARAMS *tls12_master =
+		(CK_TLS12_MASTER_KEY_DERIVE_PARAMS *) pMechanism->pParameter;
+	    tlsPrfHash = GetHashTypeFromMechanism(tls12_master->prfHashMechanism);
+	    if (tlsPrfHash == HASH_AlgNULL) {
+		crv = CKR_MECHANISM_PARAM_INVALID;
+		break;
+	    }
+	} else if ((mechanism == CKM_NSS_TLS_MASTER_KEY_DERIVE_SHA256) ||
+		   (mechanism == CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256)) {
+	    tlsPrfHash = HASH_AlgSHA256;
+	}
 
-	/* first do the consistancy checks */
+	if ((mechanism != CKM_SSL3_MASTER_KEY_DERIVE) &&
+	    (mechanism != CKM_SSL3_MASTER_KEY_DERIVE_DH)) {
+	    isTLS = PR_TRUE;
+	}
+	if ((mechanism == CKM_SSL3_MASTER_KEY_DERIVE_DH) ||
+	    (mechanism == CKM_TLS_MASTER_KEY_DERIVE_DH) ||
+	    (mechanism == CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256) ||
+	    (mechanism == CKM_TLS12_MASTER_KEY_DERIVE_DH)) {
+	    isDH = PR_TRUE;
+	}
+
+	/* first do the consistency checks */
 	if (!isDH && (att->attrib.ulValueLen != SSL3_PMS_LENGTH)) {
 	    crv = CKR_KEY_TYPE_INCONSISTENT;
 	    break;
@@ -6133,8 +6200,8 @@
  	    pms.data    = (unsigned char*)att->attrib.pValue;
 	    pms.len     =                 att->attrib.ulValueLen;
 
-	    if (isSHA256) {
-		status = TLS_P_hash(HASH_AlgSHA256, &pms, "master secret",
+	    if (tlsPrfHash != HASH_AlgNULL) {
+		status = TLS_P_hash(tlsPrfHash, &pms, "master secret",
 				    &crsr, &master, isFIPS);
 	    } else {
 		status = TLS_PRF(&pms, "master secret", &crsr, &master, isFIPS);
@@ -6197,12 +6264,108 @@
 	break;
       }
 
+    /* Extended master key derivation [draft-ietf-tls-session-hash] */
+    case CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE:
+    case CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH:
+      {
+        CK_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_PARAMS *ems_params;
+        SSL3RSAPreMasterSecret *rsa_pms;
+        SECStatus status;
+        SECItem pms    = { siBuffer, NULL, 0 };
+        SECItem seed   = { siBuffer, NULL, 0 };
+        SECItem master = { siBuffer, NULL, 0 };
+
+        ems_params = (CK_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_PARAMS*)
+            pMechanism->pParameter;
+
+        /* First do the consistency checks */
+        if ((mechanism == CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE) &&
+            (att->attrib.ulValueLen != SSL3_PMS_LENGTH)) {
+            crv = CKR_KEY_TYPE_INCONSISTENT;
+            break;
+        }
+        att2 = sftk_FindAttribute(sourceKey,CKA_KEY_TYPE);
+        if ((att2 == NULL) ||
+            (*(CK_KEY_TYPE *)att2->attrib.pValue != CKK_GENERIC_SECRET)) {
+            if (att2) sftk_FreeAttribute(att2);
+            crv = CKR_KEY_FUNCTION_NOT_PERMITTED;
+            break;
+        }
+        sftk_FreeAttribute(att2);
+        if (keyType != CKK_GENERIC_SECRET) {
+            crv = CKR_KEY_FUNCTION_NOT_PERMITTED;
+            break;
+        }
+        if ((keySize != 0) && (keySize != SSL3_MASTER_SECRET_LENGTH)) {
+            crv = CKR_KEY_FUNCTION_NOT_PERMITTED;
+            break;
+        }
+
+        /* Do the key derivation */
+        pms.data    = (unsigned char*) att->attrib.pValue;
+        pms.len     =                  att->attrib.ulValueLen;
+        seed.data   = ems_params->pSessionHash;
+        seed.len    = ems_params->ulSessionHashLen;
+        master.data = key_block;
+        master.len  = SSL3_MASTER_SECRET_LENGTH;
+        if (ems_params-> prfHashMechanism == CKM_TLS_PRF) {
+            /*
+             * In this case, the session hash is the concatenation of SHA-1
+             * and MD5, so it should be 36 bytes long.
+             */
+            if (seed.len != MD5_LENGTH + SHA1_LENGTH) {
+                crv = CKR_TEMPLATE_INCONSISTENT;
+                break;
+            }
+
+            status = TLS_PRF(&pms, "extended master secret",
+                             &seed, &master, isFIPS);
+        } else {
+            const SECHashObject *hashObj;
+
+            tlsPrfHash = GetHashTypeFromMechanism(ems_params->prfHashMechanism);
+            if (tlsPrfHash == HASH_AlgNULL) {
+                crv = CKR_MECHANISM_PARAM_INVALID;
+                break;
+            }
+
+            hashObj = HASH_GetRawHashObject(tlsPrfHash);
+            if (seed.len != hashObj->length) {
+                crv = CKR_TEMPLATE_INCONSISTENT;
+                break;
+            }
+
+            status = TLS_P_hash(tlsPrfHash, &pms, "extended master secret",
+                                &seed, &master, isFIPS);
+        }
+        if (status != SECSuccess) {
+            crv = CKR_FUNCTION_FAILED;
+            break;
+        }
+
+        /* Reflect the version if required */
+        if (ems_params->pVersion) {
+            SFTKSessionObject *sessKey = sftk_narrowToSessionObject(key);
+            rsa_pms = (SSL3RSAPreMasterSecret *) att->attrib.pValue;
+            /* don't leak more key material than necessary for SSL to work */
+            if ((sessKey == NULL) || sessKey->wasDerived) {
+                ems_params->pVersion->major = 0xff;
+                ems_params->pVersion->minor = 0xff;
+            } else {
+                ems_params->pVersion->major = rsa_pms->client_version[0];
+                ems_params->pVersion->minor = rsa_pms->client_version[1];
+            }
+        }
+
+        /* Store the results */
+        crv = sftk_forceAttribute(key, CKA_VALUE, key_block,
+                                  SSL3_MASTER_SECRET_LENGTH);
+        break;
+      }
+
+    case CKM_TLS12_KEY_AND_MAC_DERIVE:
     case CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256:
-	isSHA256 = PR_TRUE;
-	/* fall thru */
     case CKM_TLS_KEY_AND_MAC_DERIVE:
-	isTLS = PR_TRUE;
-	/* fall thru */
     case CKM_SSL3_KEY_AND_MAC_DERIVE:
       {
 	CK_SSL3_KEY_MAT_PARAMS *ssl3_keys;
@@ -6212,6 +6375,22 @@
 	unsigned char           srcrdata[SSL3_RANDOM_LENGTH * 2];
 	unsigned char           crsrdata[SSL3_RANDOM_LENGTH * 2];
 
+	if (mechanism == CKM_TLS12_KEY_AND_MAC_DERIVE) {
+	    CK_TLS12_KEY_MAT_PARAMS *tls12_keys =
+		(CK_TLS12_KEY_MAT_PARAMS *) pMechanism->pParameter;
+	    tlsPrfHash = GetHashTypeFromMechanism(tls12_keys->prfHashMechanism);
+	    if (tlsPrfHash == HASH_AlgNULL) {
+		crv = CKR_MECHANISM_PARAM_INVALID;
+		break;
+	    }
+	} else if (mechanism == CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256) {
+	    tlsPrfHash = HASH_AlgSHA256;
+	}
+
+	if (mechanism != CKM_SSL3_KEY_AND_MAC_DERIVE) {
+	    isTLS = PR_TRUE;
+	}
+
 	crv = sftk_DeriveSensitiveCheck(sourceKey,key);
 	if (crv != CKR_OK) break;
 
@@ -6291,8 +6470,8 @@
 	    master.data = (unsigned char*)att->attrib.pValue;
 	    master.len  =                 att->attrib.ulValueLen;
 
-	    if (isSHA256) {
-		status = TLS_P_hash(HASH_AlgSHA256, &master, "key expansion",
+	    if (tlsPrfHash != HASH_AlgNULL) {
+		status = TLS_P_hash(tlsPrfHash, &master, "key expansion",
 				    &srcr, &keyblk, isFIPS);
 	    } else {
 		status = TLS_PRF(&master, "key expansion", &srcr, &keyblk,
@@ -6856,7 +7035,7 @@
 	PRBool   withCofactor = PR_FALSE;
 	unsigned char *secret;
 	unsigned char *keyData = NULL;
-	int secretlen, curveLen, pubKeyLen;
+	unsigned int secretlen, curveLen, pubKeyLen;
 	CK_ECDH1_DERIVE_PARAMS *mechParams;
 	NSSLOWKEYPrivateKey *privKey;
 	PLArenaPool *arena = NULL;
@@ -6908,7 +7087,7 @@
 	    ecPoint = newPoint;
 	}
 
-	if (pMechanism->mechanism == CKM_ECDH1_COFACTOR_DERIVE) {
+	if (mechanism == CKM_ECDH1_COFACTOR_DERIVE) {
 	    withCofactor = PR_TRUE;
 	} else {
 	    /* When not using cofactor derivation, one should
diff --git a/nss/lib/softoken/pkcs11i.h b/nss/lib/softoken/pkcs11i.h
index 175bb78..4e8601b 100644
--- a/nss/lib/softoken/pkcs11i.h
+++ b/nss/lib/softoken/pkcs11i.h
@@ -114,7 +114,7 @@
 typedef SECStatus (*SFTKCipher)(void *,void *,unsigned int *,unsigned int,
 					void *, unsigned int);
 typedef SECStatus (*SFTKVerify)(void *,void *,unsigned int,void *,unsigned int);
-typedef void (*SFTKHash)(void *,void *,unsigned int);
+typedef void (*SFTKHash)(void *,const void *,unsigned int);
 typedef void (*SFTKEnd)(void *,void *,unsigned int *,unsigned int);
 typedef void (*SFTKFree)(void *);
 
@@ -736,8 +736,8 @@
 	CK_MECHANISM_PTR mech, SFTKObject *key);
 sftk_MACConstantTimeCtx* sftk_SSLv3MACConstantTime_New(
 	CK_MECHANISM_PTR mech, SFTKObject *key);
-void sftk_HMACConstantTime_Update(void *pctx, void *data, unsigned int len);
-void sftk_SSLv3MACConstantTime_Update(void *pctx, void *data, unsigned int len);
+void sftk_HMACConstantTime_Update(void *pctx, const void *data, unsigned int len);
+void sftk_SSLv3MACConstantTime_Update(void *pctx, const void *data, unsigned int len);
 void sftk_MACConstantTime_EndHash(
 	void *pctx, void *out, unsigned int *outLength, unsigned int maxLength);
 void sftk_MACConstantTime_DestroyContext(void *pctx, PRBool);
@@ -750,7 +750,8 @@
 sftk_TLSPRFInit(SFTKSessionContext *context, 
 		  SFTKObject *        key, 
 		  CK_KEY_TYPE         key_type,
-		  HASH_HashType       hash_alg);
+		  HASH_HashType       hash_alg,
+		  unsigned int        out_len);
 
 SEC_END_PROTOS
 
diff --git a/nss/lib/softoken/pkcs11u.c b/nss/lib/softoken/pkcs11u.c
index 78e2fdc..de5cbbc 100644
--- a/nss/lib/softoken/pkcs11u.c
+++ b/nss/lib/softoken/pkcs11u.c
@@ -1174,7 +1174,6 @@
 {
     SFTKSlot *slot = sftk_SlotFromSession(session);
     SFTKSessionObject *so = sftk_narrowToSessionObject(object);
-    SFTKTokenObject *to = sftk_narrowToTokenObject(object);
     CK_RV crv = CKR_OK;
     PRUint32 index = sftk_hash(object->handle, slot->sessObjHashSize);
 
@@ -1191,8 +1190,10 @@
 	sftk_FreeObject(object); /* free the reference owned by the queue */
     } else {
 	SFTKDBHandle *handle = sftk_getDBForTokenObject(slot, object->handle);
-
+#ifdef DEBUG
+        SFTKTokenObject *to = sftk_narrowToTokenObject(object);
 	PORT_Assert(to);
+#endif
 	crv = sftkdb_DestroyObject(handle, object->handle);
 	sftk_freeDB(handle);
     } 
@@ -1899,7 +1900,6 @@
 sftk_NewTokenObject(SFTKSlot *slot, SECItem *dbKey, CK_OBJECT_HANDLE handle)
 {
     SFTKObject *object = NULL;
-    SFTKTokenObject *tokObject = NULL;
     PRBool hasLocks = PR_FALSE;
     CK_RV crv;
 
@@ -1908,7 +1908,6 @@
     if (object == NULL) {
 	return NULL;
     }
-    tokObject = (SFTKTokenObject *) object;
 
     object->handle = handle;
     /* every object must have a class, if we can't get it, the object
diff --git a/nss/lib/softoken/sdb.c b/nss/lib/softoken/sdb.c
index 83150bb..1684860 100644
--- a/nss/lib/softoken/sdb.c
+++ b/nss/lib/softoken/sdb.c
@@ -689,7 +689,7 @@
     char *join="";
     int sqlerr = SQLITE_OK;
     CK_RV error = CKR_OK;
-    int i;
+    unsigned int i;
 
     LOCK_SQLITE()
     *find = NULL;
@@ -836,7 +836,7 @@
     CK_RV error = CKR_OK;
     int found = 0;
     int retry = 0;
-    int i;
+    unsigned int i;
 
 
     /* open a new db if necessary */
@@ -879,7 +879,7 @@
 		PR_Sleep(SDB_BUSY_RETRY_TIME);
 	    }
 	    if (sqlerr == SQLITE_ROW) {
-	    	int blobSize;
+	    	unsigned int blobSize;
 	    	const char *blobData;
 
 	    	blobSize = sqlite3_column_bytes(stmt, 0);
@@ -963,7 +963,7 @@
     int sqlerr = SQLITE_OK;
     int retry = 0;
     CK_RV error = CKR_OK;
-    int i;
+    unsigned int i;
 
     if ((sdb->sdb_flags & SDB_RDONLY) != 0) {
 	return CKR_TOKEN_WRITE_PROTECTED;
@@ -1115,7 +1115,7 @@
     CK_RV error = CKR_OK;
     CK_OBJECT_HANDLE this_object = CK_INVALID_HANDLE;
     int retry = 0;
-    int i;
+    unsigned int i;
 
     if ((sdb->sdb_flags & SDB_RDONLY) != 0) {
 	return CKR_TOKEN_WRITE_PROTECTED;
diff --git a/nss/lib/softoken/sftkdb.c b/nss/lib/softoken/sftkdb.c
index 1491910..61f1e9e 100644
--- a/nss/lib/softoken/sftkdb.c
+++ b/nss/lib/softoken/sftkdb.c
@@ -325,9 +325,7 @@
 	    if (sftkdb_isULONGAttribute(template[i].type)) {
 		if (template[i].pValue) {
 		    CK_ULONG value;
-		    unsigned char *data;
 
-		    data = (unsigned char *)ntemplate[i].pValue;
 		    value = sftk_SDBULong2ULong(ntemplate[i].pValue);
 		    if (length < sizeof(CK_ULONG)) {
 			template[i].ulValueLen = -1;
@@ -475,7 +473,7 @@
 		  CK_OBJECT_HANDLE objectID, const CK_ATTRIBUTE *template,
 		  CK_ULONG count)
 {
-    int i;
+    unsigned int i;
     CK_RV crv;
     SFTKDBHandle *keyHandle = handle;
     SDB *keyTarget = NULL;
@@ -573,11 +571,8 @@
 	SDB *db, CK_OBJECT_HANDLE *objectID,
         CK_ATTRIBUTE *template, CK_ULONG count)
 {
-    PRBool inTransaction = PR_FALSE;
     CK_RV crv;
 
-    inTransaction = PR_TRUE;
-    
     crv = (*db->sdb_CreateObject)(db, objectID, template, count);
     if (crv != CKR_OK) {
 	goto loser;
@@ -595,9 +590,9 @@
 		     SFTKDBHandle *handle,CK_ULONG *pcount, 
 		     CK_RV *crv)
 {
-    int count;
+    unsigned int count;
     CK_ATTRIBUTE *template;
-    int i, templateIndex;
+    unsigned int i, templateIndex;
     SFTKSessionObject *sessObject = sftk_narrowToSessionObject(object);
     PRBool doEnc = PR_TRUE;
 
@@ -1021,7 +1016,7 @@
 {
     CK_ATTRIBUTE *attr;
     char *nickname, *newNickname;
-    int end, digit;
+    unsigned int end, digit;
 
     /* sanity checks. We should never get here with these errors */
     if (objectType != CKO_CERTIFICATE) {
@@ -1060,9 +1055,11 @@
 	return CKR_OK;
     }
 
-    for (end = attr->ulValueLen - 1; 
-	 end >= 0 && (digit = nickname[end]) <= '9' &&  digit >= '0'; 
-	 end--) {
+    for (end = attr->ulValueLen; end-- > 0;) {
+	digit = nickname[end];
+        if (digit > '9' || digit < '0') {
+	    break;
+        }
 	if (digit < '9') {
 	    nickname[end]++;
 	    return CKR_OK;
@@ -1257,7 +1254,7 @@
     crv = (*db->sdb_FindObjects)(db, find, ids, 
 					    arraySize, count);
     if (crv == CKR_OK) {
-	int i;
+	unsigned int i;
 	for (i=0; i < *count; i++) {
 	    ids[i] |= (handle->type | SFTK_TOKEN_TYPE);
 	}
@@ -1600,14 +1597,14 @@
     CKA_NETSCAPE_DB, CKA_NETSCAPE_TRUST, CKA_NSS_OVERRIDE_EXTENSIONS
 };
 
-static int known_attributes_size= sizeof(known_attributes)/
+static unsigned int known_attributes_size= sizeof(known_attributes)/
 			   sizeof(known_attributes[0]);
 
 static CK_RV
 sftkdb_GetObjectTemplate(SDB *source, CK_OBJECT_HANDLE id,
 		CK_ATTRIBUTE *ptemplate, CK_ULONG *max)
 {
-    int i,j;
+    unsigned int i,j;
     CK_RV crv;
 
     if (*max < known_attributes_size) {
@@ -2011,7 +2008,6 @@
 	{CKA_ID, NULL, 0},
 	{CKA_LABEL, NULL, 0}
     };
-    CK_RV crv;
 
     attr1 = sftkdb_getAttributeFromTemplate(CKA_LABEL, ptemplate, *plen);
     attr2 = sftkdb_getAttributeFromTemplate(CKA_ID, ptemplate, *plen);
@@ -2023,7 +2019,7 @@
     }
 
     /* the source has either an id or a label, see what the target has */
-    crv = (*db->sdb_GetAttributeValue)(db, id, ttemplate, 2);
+    (void)(*db->sdb_GetAttributeValue)(db, id, ttemplate, 2);
 
     /* if the target has neither, update from the source */
     if ( ((ttemplate[0].ulValueLen == 0) || 
@@ -2168,7 +2164,7 @@
     CK_OBJECT_CLASS objectType;
     SDB *source = handle->update;
     SDB *target = handle->db;
-    int i;
+    unsigned int i;
     CK_RV crv;
     PLArenaPool *arena = NULL;
 
@@ -2257,7 +2253,7 @@
     SECItem *updatePasswordKey = NULL;
     CK_RV crv, crv2;
     PRBool inTransaction = PR_FALSE;
-    int i;
+    unsigned int i;
 
     if (handle == NULL) {
 	return CKR_OK;
@@ -2412,7 +2408,7 @@
     PZ_Lock(slot->slotLock);
     dbHandle = slot->certDB;
     if (dbHandle) {
-        PR_ATOMIC_INCREMENT(&dbHandle->ref);
+        (void)PR_ATOMIC_INCREMENT(&dbHandle->ref);
     }
     PZ_Unlock(slot->slotLock);
     return dbHandle;
@@ -2430,7 +2426,7 @@
     SKIP_AFTER_FORK(PZ_Lock(slot->slotLock));
     dbHandle = slot->keyDB;
     if (dbHandle) {
-        PR_ATOMIC_INCREMENT(&dbHandle->ref);
+        (void)PR_ATOMIC_INCREMENT(&dbHandle->ref);
     }
     SKIP_AFTER_FORK(PZ_Unlock(slot->slotLock));
     return dbHandle;
@@ -2448,7 +2444,7 @@
     PZ_Lock(slot->slotLock);
     dbHandle = objectID & SFTK_KEYDB_TYPE ? slot->keyDB : slot->certDB;
     if (dbHandle) {
-        PR_ATOMIC_INCREMENT(&dbHandle->ref);
+        (void)PR_ATOMIC_INCREMENT(&dbHandle->ref);
     }
     PZ_Unlock(slot->slotLock);
     return dbHandle;
diff --git a/nss/lib/softoken/sftkhmac.c b/nss/lib/softoken/sftkhmac.c
index 3b55a05..f4e859b 100644
--- a/nss/lib/softoken/sftkhmac.c
+++ b/nss/lib/softoken/sftkhmac.c
@@ -143,31 +143,29 @@
 }
 
 void
-sftk_HMACConstantTime_Update(void *pctx, void *data, unsigned int len)
+sftk_HMACConstantTime_Update(void *pctx, const void *data, unsigned int len)
 {
     sftk_MACConstantTimeCtx *ctx = (sftk_MACConstantTimeCtx *) pctx;
-    SECStatus rv = HMAC_ConstantTime(
+    PORT_CheckSuccess(HMAC_ConstantTime(
 	ctx->mac, NULL, sizeof(ctx->mac),
 	ctx->hash,
 	ctx->secret, ctx->secretLength,
 	ctx->header, ctx->headerLength,
 	data, len,
-	ctx->totalLength);
-    PORT_Assert(rv == SECSuccess);
+	ctx->totalLength));
 }
 
 void
-sftk_SSLv3MACConstantTime_Update(void *pctx, void *data, unsigned int len)
+sftk_SSLv3MACConstantTime_Update(void *pctx, const void *data, unsigned int len)
 {
     sftk_MACConstantTimeCtx *ctx = (sftk_MACConstantTimeCtx *) pctx;
-    SECStatus rv = SSLv3_MAC_ConstantTime(
+    PORT_CheckSuccess(SSLv3_MAC_ConstantTime(
 	ctx->mac, NULL, sizeof(ctx->mac),
 	ctx->hash,
 	ctx->secret, ctx->secretLength,
 	ctx->header, ctx->headerLength,
 	data, len,
-	ctx->totalLength);
-    PORT_Assert(rv == SECSuccess);
+	ctx->totalLength));
 }
 
 void
diff --git a/nss/lib/softoken/sftkpwd.c b/nss/lib/softoken/sftkpwd.c
index 4c9ac17..d8ce857 100644
--- a/nss/lib/softoken/sftkpwd.c
+++ b/nss/lib/softoken/sftkpwd.c
@@ -864,8 +864,6 @@
 sftk_updateMacs(PLArenaPool *arena, SFTKDBHandle *handle,
 		       CK_OBJECT_HANDLE id, SECItem *newKey)
 {
-    CK_RV crv = CKR_OK;
-    CK_RV crv2;
     CK_ATTRIBUTE authAttrs[] = {
 	{CKA_MODULUS, NULL, 0},
 	{CKA_PUBLIC_EXPONENT, NULL, 0},
@@ -879,7 +877,7 @@
 	{CKA_NSS_OVERRIDE_EXTENSIONS, NULL, 0},
     };
     CK_ULONG authAttrCount = sizeof(authAttrs)/sizeof(CK_ATTRIBUTE);
-    int i, count;
+    unsigned int i, count;
     SFTKDBHandle *keyHandle = handle;
     SDB *keyTarget = NULL;
 
@@ -902,7 +900,7 @@
     /*
      * STEP 1: find the MACed attributes of this object 
      */
-    crv2 = sftkdb_GetAttributeValue(handle, id, authAttrs, authAttrCount);
+    (void)sftkdb_GetAttributeValue(handle, id, authAttrs, authAttrCount);
     count = 0;
     /* allocate space for the attributes */
     for (i=0; i < authAttrCount; i++) {
@@ -912,7 +910,6 @@
 	count++;
         authAttrs[i].pValue = PORT_ArenaAlloc(arena,authAttrs[i].ulValueLen);
 	if (authAttrs[i].pValue == NULL) {
-	    crv = CKR_HOST_MEMORY;
 	    break;
 	}
     }
@@ -922,7 +919,7 @@
 	return CKR_OK;
     }
 
-    crv = sftkdb_GetAttributeValue(handle, id, authAttrs, authAttrCount);
+    (void)sftkdb_GetAttributeValue(handle, id, authAttrs, authAttrCount);
     /* ignore error code, we expect some possible errors */
 
     /* GetAttributeValue just verified the old macs, safe to write
@@ -969,7 +966,7 @@
 	{CKA_EXPONENT_2, NULL, 0},
 	{CKA_COEFFICIENT, NULL, 0} };
     CK_ULONG privAttrCount = sizeof(privAttrs)/sizeof(CK_ATTRIBUTE);
-    int i, count;
+    unsigned int i, count;
 
     /*
      * STEP 1. Read the old attributes in the clear.
@@ -1113,7 +1110,7 @@
     CK_ULONG idCount = SFTK_MAX_IDS;
     CK_OBJECT_HANDLE ids[SFTK_MAX_IDS];
     CK_RV crv, crv2;
-    int i;
+    unsigned int i;
 
     crv = sftkdb_FindObjectsInit(handle, template, count, &find);
 
@@ -1247,7 +1244,7 @@
 	PORT_ZFree(newKey.data,newKey.len);
     }
     if (result) {
-	SECITEM_FreeItem(result, PR_FALSE);
+	SECITEM_FreeItem(result, PR_TRUE);
     }
     if (rv != SECSuccess) {
         (*keydb->db->sdb_Abort)(keydb->db);
diff --git a/nss/lib/softoken/softkver.c b/nss/lib/softoken/softkver.c
index de21bfe..3f20fad 100644
--- a/nss/lib/softoken/softkver.c
+++ b/nss/lib/softoken/softkver.c
@@ -13,12 +13,6 @@
 #endif
 
 /*
- * Version information for the 'ident' and 'what commands
- *
- * NOTE: the first component of the concatenated rcsid string
- * must not end in a '$' to prevent rcs keyword substitution.
+ * Version information
  */
-const char __nss_softokn_rcsid[] = "$Header: NSS " SOFTOKEN_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__ " $";
-const char __nss_softokn_sccsid[] = "@(#)NSS " SOFTOKEN_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__;
+const char __nss_softokn_version[] = "Version: NSS " SOFTOKEN_VERSION _DEBUG_STRING;
diff --git a/nss/lib/softoken/softkver.h b/nss/lib/softoken/softkver.h
index 8448e57..c7e25e1 100644
--- a/nss/lib/softoken/softkver.h
+++ b/nss/lib/softoken/softkver.h
@@ -25,9 +25,9 @@
  * The format of the version string should be
  *     "<major version>.<minor version>[.<patch level>[.<build number>]][ <ECC>][ <Beta>]"
  */
-#define SOFTOKEN_VERSION  "3.19" SOFTOKEN_ECC_STRING
+#define SOFTOKEN_VERSION  "3.21" SOFTOKEN_ECC_STRING
 #define SOFTOKEN_VMAJOR   3
-#define SOFTOKEN_VMINOR   19
+#define SOFTOKEN_VMINOR   21
 #define SOFTOKEN_VPATCH   0
 #define SOFTOKEN_VBUILD   0
 #define SOFTOKEN_BETA     PR_FALSE
diff --git a/nss/lib/softoken/tlsprf.c b/nss/lib/softoken/tlsprf.c
index 8c97ad3..0ebad60 100644
--- a/nss/lib/softoken/tlsprf.c
+++ b/nss/lib/softoken/tlsprf.c
@@ -6,6 +6,7 @@
 
 #include "pkcs11i.h"
 #include "blapi.h"
+#include "secerr.h"
 
 #define SFTK_OFFSETOF(str, memb) ((PRPtrdiff)(&(((str *)0)->memb)))
 
@@ -23,6 +24,7 @@
     SECStatus	   cxRv;	/* records failure of void functions.        */
     PRBool	   cxIsFIPS;	/* true if conforming to FIPS 198.           */
     HASH_HashType  cxHashAlg;	/* hash algorithm to use for TLS 1.2+        */
+    unsigned int   cxOutLen;	/* bytes of output if nonzero                */
     unsigned char  cxBuf[512];	/* actual size may be larger than 512.       */
 } TLSPRFContext;
 
@@ -87,7 +89,14 @@
     seedItem.len  = cx->cxDataLen;
 
     sigItem.data = sig;
-    sigItem.len  = maxLen;
+    if (cx->cxOutLen == 0) {
+	sigItem.len = maxLen;
+    } else if (cx->cxOutLen <= maxLen) {
+	sigItem.len = cx->cxOutLen;
+    } else {
+	PORT_SetError(SEC_ERROR_OUTPUT_LEN);
+	return SECFailure;
+    }
 
     if (cx->cxHashAlg != HASH_AlgNULL) {
 	rv = TLS_P_hash(cx->cxHashAlg, &secretItem, NULL, &seedItem, &sigItem,
@@ -142,7 +151,8 @@
 sftk_TLSPRFInit(SFTKSessionContext *context, 
 		  SFTKObject *        key, 
 		  CK_KEY_TYPE         key_type,
-		  HASH_HashType       hash_alg)
+		  HASH_HashType       hash_alg,
+		  unsigned int        out_len)
 {
     SFTKAttribute * keyVal;
     TLSPRFContext * prf_cx;
@@ -169,6 +179,7 @@
     prf_cx->cxIsFIPS  = (key->slot->slotID == FIPS_SLOT_ID);
     prf_cx->cxBufPtr  = prf_cx->cxBuf;
     prf_cx->cxHashAlg = hash_alg;
+    prf_cx->cxOutLen  = out_len;
     if (keySize)
 	PORT_Memcpy(prf_cx->cxBufPtr, keyVal->attrib.pValue, keySize);
 
diff --git a/nss/lib/ssl/sslerr.h b/nss/lib/ssl/sslerr.h
index 12dbb1d..192a107 100644
--- a/nss/lib/ssl/sslerr.h
+++ b/nss/lib/ssl/sslerr.h
@@ -198,6 +198,16 @@
 
 SSL_ERROR_INAPPROPRIATE_FALLBACK_ALERT  = (SSL_ERROR_BASE + 131),
 
+SSL_ERROR_WEAK_SERVER_CERT_KEY          = (SSL_ERROR_BASE + 132),
+
+SSL_ERROR_RX_SHORT_DTLS_READ            = (SSL_ERROR_BASE + 133),
+
+SSL_ERROR_NO_SUPPORTED_SIGNATURE_ALGORITHM = (SSL_ERROR_BASE + 134),
+SSL_ERROR_UNSUPPORTED_SIGNATURE_ALGORITHM = (SSL_ERROR_BASE + 135),
+
+SSL_ERROR_MISSING_EXTENDED_MASTER_SECRET = (SSL_ERROR_BASE + 136),
+SSL_ERROR_UNEXPECTED_EXTENDED_MASTER_SECRET = (SSL_ERROR_BASE + 137),
+
 SSL_ERROR_END_OF_LIST   /* let the c compiler determine the value of this. */
 } SSLErrorCodes;
 #endif /* NO_SECURITY_ERROR_ENUM */
diff --git a/nss/lib/util/derdec.c b/nss/lib/util/derdec.c
index c621914..2c17ce9 100644
--- a/nss/lib/util/derdec.c
+++ b/nss/lib/util/derdec.c
@@ -175,7 +175,7 @@
 	return SECFailure;
     }
 
-    *header_len_p = bp - buf;
+    *header_len_p = (int)(bp - buf);
     *contents_len_p = contents_len;
 
     return SECSuccess;
diff --git a/nss/lib/util/derenc.c b/nss/lib/util/derenc.c
index 90a9d2d..4a02e1a 100644
--- a/nss/lib/util/derenc.c
+++ b/nss/lib/util/derenc.c
@@ -279,7 +279,7 @@
     int header_len;
     PRUint32 contents_len;
     unsigned long encode_kind, under_kind;
-    PRBool explicit, optional, universal;
+    PRBool explicit, universal;
 
 
     /*
@@ -301,7 +301,6 @@
     encode_kind = dtemplate->kind;
 
     explicit = (encode_kind & DER_EXPLICIT) ? PR_TRUE : PR_FALSE;
-    optional = (encode_kind & DER_OPTIONAL) ? PR_TRUE : PR_FALSE;
     encode_kind &= ~DER_OPTIONAL;
     universal = ((encode_kind & DER_CLASS_MASK) == DER_UNIVERSAL)
 		? PR_TRUE : PR_FALSE;
diff --git a/nss/lib/util/nssb64e.c b/nss/lib/util/nssb64e.c
index da0702c..5959982 100644
--- a/nss/lib/util/nssb64e.c
+++ b/nss/lib/util/nssb64e.c
@@ -632,7 +632,7 @@
 {
     char *out_string = outStrOpt;
     PRUint32 max_out_len;
-    PRUint32 out_len;
+    PRUint32 out_len = 0;
     void *mark = NULL;
     char *dummy;
 
diff --git a/nss/lib/util/nssrwlk.c b/nss/lib/util/nssrwlk.c
index 65fceda..fbbfbd6 100644
--- a/nss/lib/util/nssrwlk.c
+++ b/nss/lib/util/nssrwlk.c
@@ -91,7 +91,7 @@
 	goto loser;
     }
     if (lock_name != NULL) {
-        rwlock->rw_name = (char*) PR_Malloc(strlen(lock_name) + 1);
+        rwlock->rw_name = (char*) PR_Malloc((PRUint32)strlen(lock_name) + 1);
         if (rwlock->rw_name == NULL) {
 	    goto loser;
         }
diff --git a/nss/lib/util/nssutil.h b/nss/lib/util/nssutil.h
index 518f214..0c8b480 100644
--- a/nss/lib/util/nssutil.h
+++ b/nss/lib/util/nssutil.h
@@ -19,9 +19,9 @@
  * The format of the version string should be
  *     "<major version>.<minor version>[.<patch level>[.<build number>]][ <Beta>]"
  */
-#define NSSUTIL_VERSION  "3.19"
+#define NSSUTIL_VERSION  "3.21"
 #define NSSUTIL_VMAJOR   3
-#define NSSUTIL_VMINOR   19
+#define NSSUTIL_VMINOR   21
 #define NSSUTIL_VPATCH   0
 #define NSSUTIL_VBUILD   0
 #define NSSUTIL_BETA     PR_FALSE
diff --git a/nss/lib/util/pkcs11n.h b/nss/lib/util/pkcs11n.h
index d48cef6..86a396f 100644
--- a/nss/lib/util/pkcs11n.h
+++ b/nss/lib/util/pkcs11n.h
@@ -28,7 +28,7 @@
 
 /*
  * NSS-defined object classes
- * 
+ *
  */
 #define CKO_NSS (CKO_VENDOR_DEFINED|NSSCK_VENDOR_NSS)
 
@@ -166,7 +166,7 @@
 #define CKM_NSS_JPAKE_ROUND1_SHA512 (CKM_NSS + 10)
 
 /* J-PAKE round 2 key derivation mechanisms.
- * 
+ *
  * Required template attributes: CKA_NSS_JPAKE_PEERID
  * Input key type:  CKK_NSS_JPAKE_ROUND1
  * Output key type: CKK_NSS_JPAKE_ROUND2
@@ -178,14 +178,14 @@
 #define CKM_NSS_JPAKE_ROUND2_SHA384 (CKM_NSS + 13)
 #define CKM_NSS_JPAKE_ROUND2_SHA512 (CKM_NSS + 14)
 
-/* J-PAKE final key material derivation mechanisms 
+/* J-PAKE final key material derivation mechanisms
  *
  * Input key type:  CKK_NSS_JPAKE_ROUND2
  * Output key type: CKK_GENERIC_SECRET
  * Output key class: CKO_SECRET_KEY
  * Parameter type: CK_NSS_JPAKEFinalParams
  *
- * You must apply a KDF (e.g. CKM_NSS_HKDF_*) to resultant keying material 
+ * You must apply a KDF (e.g. CKM_NSS_HKDF_*) to resultant keying material
  * to get a key with uniformly distributed bits.
  */
 #define CKM_NSS_JPAKE_FINAL_SHA1    (CKM_NSS + 15)
@@ -216,8 +216,12 @@
 #define CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256   (CKM_NSS + 23)
 #define CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256 (CKM_NSS + 24)
 
-#define CKM_NSS_CHACHA20_KEY_GEN                (CKM_NSS + 25)
-#define CKM_NSS_CHACHA20_POLY1305               (CKM_NSS + 26)
+/* TLS extended master secret derivation */
+#define CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE    (CKM_NSS + 25)
+#define CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH (CKM_NSS + 26)
+
+#define CKM_NSS_CHACHA20_KEY_GEN                (CKM_NSS + 27)
+#define CKM_NSS_CHACHA20_POLY1305               (CKM_NSS + 28)
 
 /*
  * HISTORICAL:
@@ -305,7 +309,7 @@
 
 /* Mandatory parameter for the CKM_NSS_HKDF_* key deriviation mechanisms.
    See RFC 5869.
-   
+
     bExtract: If set, HKDF-Extract will be applied to the input key. If
               the optional salt is given, it is used; otherwise, the salt is
               set to a sequence of zeros equal in length to the HMAC output.
@@ -331,6 +335,31 @@
 } CK_NSS_HKDFParams;
 
 /*
+ * Parameter for the TLS extended master secret key derivation mechanisms:
+ *
+ *  * CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE
+ *  * CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH
+ *
+ * For the TLS 1.2 PRF, the prfHashMechanism parameter determines the hash
+ * function used. For earlier versions of the PRF, set the prfHashMechanism
+ * value to CKM_TLS_PRF.
+ *
+ * The session hash input is expected to be the output of the same hash
+ * function as the PRF uses (as required by draft-ietf-tls-session-hash).  So
+ * the ulSessionHashLen member must be equal the output length of the hash
+ * function specified by the prfHashMechanism member (or, for pre-TLS 1.2 PRF,
+ * the length of concatenated MD5 and SHA-1 digests).
+ *
+ */
+typedef struct CK_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_PARAMS {
+    CK_MECHANISM_TYPE prfHashMechanism;
+    CK_BYTE_PTR pSessionHash;
+    CK_ULONG ulSessionHashLen;
+    CK_VERSION_PTR pVersion;
+} CK_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_PARAMS;
+
+
+/*
  * Trust info
  *
  * This isn't part of the Cryptoki standard (yet), so I'm putting
@@ -354,7 +383,7 @@
 #define CKT_NSS_NOT_TRUSTED        (CKT_NSS + 10)
 #define CKT_NSS_TRUST_UNKNOWN      (CKT_NSS + 5) /* default */
 
-/* 
+/*
  * These may well remain NSS-specific; I'm only using them
  * to cache resolution data.
  */
@@ -465,7 +494,7 @@
 #define SECMOD_MODULE_DB_FUNCTION_FIND  0
 #define SECMOD_MODULE_DB_FUNCTION_ADD   1
 #define SECMOD_MODULE_DB_FUNCTION_DEL   2
-#define SECMOD_MODULE_DB_FUNCTION_RELEASE 3 
+#define SECMOD_MODULE_DB_FUNCTION_RELEASE 3
 typedef char ** (PR_CALLBACK *SECMODModuleDBFunc)(unsigned long function,
                                         char *parameters, void *moduleSpec);
 
diff --git a/nss/lib/util/pkcs11t.h b/nss/lib/util/pkcs11t.h
index b003461..2393141 100644
--- a/nss/lib/util/pkcs11t.h
+++ b/nss/lib/util/pkcs11t.h
@@ -824,6 +824,14 @@
 #define CKM_WTLS_SERVER_KEY_AND_MAC_DERIVE  0x000003D4
 #define CKM_WTLS_CLIENT_KEY_AND_MAC_DERIVE  0x000003D5
 
+/* TLS 1.2 mechanisms are new for v2.40 */
+#define CKM_TLS12_MASTER_KEY_DERIVE         0x000003E0
+#define CKM_TLS12_KEY_AND_MAC_DERIVE        0x000003E1
+#define CKM_TLS12_MASTER_KEY_DERIVE_DH      0x000003E2
+#define CKM_TLS12_KEY_SAFE_DERIVE           0x000003E3
+#define CKM_TLS_MAC                         0x000003E4
+#define CKM_TLS_KDF                         0x000003E5
+
 #define CKM_KEY_WRAP_LYNKS             0x00000400
 #define CKM_KEY_WRAP_SET_OAEP          0x00000401
 
@@ -1648,6 +1656,45 @@
 
 typedef CK_TLS_PRF_PARAMS CK_PTR CK_TLS_PRF_PARAMS_PTR;
 
+/* TLS 1.2 is new for version 2.40 */
+typedef struct CK_TLS12_MASTER_KEY_DERIVE_PARAMS {
+  CK_SSL3_RANDOM_DATA RandomInfo;
+  CK_VERSION_PTR pVersion;
+  CK_MECHANISM_TYPE prfHashMechanism;
+} CK_TLS12_MASTER_KEY_DERIVE_PARAMS;
+
+typedef CK_TLS12_MASTER_KEY_DERIVE_PARAMS CK_PTR \
+  CK_TLS12_MASTER_KEY_DERIVE_PARAMS_PTR;
+
+typedef struct CK_TLS12_KEY_MAT_PARAMS {
+  CK_ULONG ulMacSizeInBits;
+  CK_ULONG ulKeySizeInBits;
+  CK_ULONG ulIVSizeInBits;
+  CK_BBOOL bIsExport;  /* Unused. Must be set to CK_FALSE. */
+  CK_SSL3_RANDOM_DATA RandomInfo;
+  CK_SSL3_KEY_MAT_OUT_PTR pReturnedKeyMaterial;
+  CK_MECHANISM_TYPE prfHashMechanism;
+} CK_TLS12_KEY_MAT_PARAMS;
+
+typedef CK_TLS12_KEY_MAT_PARAMS CK_PTR CK_TLS12_KEY_MAT_PARAMS_PTR;
+
+typedef struct CK_TLS_KDF_PARAMS {
+  CK_MECHANISM_TYPE prfMechanism;
+  CK_BYTE_PTR pLabel;
+  CK_ULONG ulLabelLength;
+  CK_SSL3_RANDOM_DATA RandomInfo;
+  CK_BYTE_PTR pContextData;
+  CK_ULONG ulContextDataLength;
+} CK_TLS_KDF_PARAMS;
+
+typedef struct CK_TLS_MAC_PARAMS {
+  CK_MECHANISM_TYPE prfMechanism;
+  CK_ULONG ulMacLength;
+  CK_ULONG ulServerOrClient;
+} CK_TLS_MAC_PARAMS;
+
+typedef CK_TLS_MAC_PARAMS CK_PTR CK_TLS_MAC_PARAMS_PTR;
+
 /* WTLS is new for version 2.20 */
 typedef struct CK_WTLS_RANDOM_DATA {
   CK_BYTE_PTR pClientRandom;
diff --git a/nss/lib/util/quickder.c b/nss/lib/util/quickder.c
index f9776bb..fe72b29 100644
--- a/nss/lib/util/quickder.c
+++ b/nss/lib/util/quickder.c
@@ -146,7 +146,7 @@
         PORT_SetError(SEC_ERROR_BAD_DER);
         return SECFailure;
     }
-    src->len -= (dest->data - src->data) + dest->len;
+    src->len -= (int)(dest->data - src->data) + dest->len;
     src->data = dest->data + dest->len;
     return SECSuccess;
 }
@@ -270,13 +270,9 @@
     if ( (tag & SEC_ASN1_CLASS_MASK) !=
          (((unsigned char)kind) & SEC_ASN1_CLASS_MASK) )
     {
-#ifdef DEBUG
         /* this is only to help debugging of the decoder in case of problems */
-        unsigned char tagclass = tag & SEC_ASN1_CLASS_MASK;
-        unsigned char expectedclass = (unsigned char)kind & SEC_ASN1_CLASS_MASK;
-        tagclass = tagclass;
-        expectedclass = expectedclass;
-#endif
+        /* unsigned char tagclass = tag & SEC_ASN1_CLASS_MASK; */
+        /* unsigned char expectedclass = (unsigned char)kind & SEC_ASN1_CLASS_MASK; */
         *match = PR_FALSE;
         return SECSuccess;
     }
@@ -657,13 +653,12 @@
 {
     SECStatus rv = SECSuccess;
     SECItem temp;
-    SECItem mark;
+    SECItem mark = {siBuffer, NULL, 0};
     PRBool pop = PR_FALSE;
     PRBool decode = PR_TRUE;
     PRBool save = PR_FALSE;
     unsigned long kind;
     PRBool match = PR_TRUE;
-    PRBool optional = PR_FALSE;
 
     PR_ASSERT(src && dest && templateEntry && arena);
 #if 0
@@ -678,7 +673,6 @@
     {
         /* do the template validation */
         kind = templateEntry->kind;
-        optional = (0 != (kind & SEC_ASN1_OPTIONAL));
         if (!kind)
         {
             PORT_SetError(SEC_ERROR_BAD_TEMPLATE);
diff --git a/nss/lib/util/secasn1d.c b/nss/lib/util/secasn1d.c
index d85597b..7a5bcfd 100644
--- a/nss/lib/util/secasn1d.c
+++ b/nss/lib/util/secasn1d.c
@@ -985,6 +985,7 @@
     SECItem *item;
     PLArenaPool *poolp;
     unsigned long alloc_len;
+    sec_asn1d_state *parent;
 
 #ifdef DEBUG_ASN1D_STATES
     {
@@ -1020,7 +1021,7 @@
 
     /* Determine the maximum length available for this element by finding the
      * first definite length ancestor, if any. */
-    sec_asn1d_state *parent = sec_asn1d_get_enclosing_construct(state);
+    parent = sec_asn1d_get_enclosing_construct(state);
     while (parent && parent->indefinite) {
         parent = sec_asn1d_get_enclosing_construct(parent);
     }
@@ -1789,6 +1790,8 @@
 	if (state->pending == 0)
 	    done = PR_TRUE;
     } else {
+	PRBool preallocatedString;
+	sec_asn1d_state *temp_state;
 	PORT_Assert (state->indefinite);
 
 	item = (SECItem *)(child->dest);
@@ -1861,8 +1864,8 @@
 	 * indicating an in-place copy has already occurred, and Cases #2, #4,
 	 * and #5 all have the same behaviour of adding a new substring.
 	 */
-	PRBool preallocatedString = PR_FALSE;
-	sec_asn1d_state *temp_state = state;
+	preallocatedString = PR_FALSE;
+	temp_state = state;
 	while (temp_state && item == temp_state->dest && temp_state->indefinite) {
 	    sec_asn1d_state *parent = sec_asn1d_get_enclosing_construct(temp_state);
 	    if (!parent || parent->underlying_kind != temp_state->underlying_kind) {
diff --git a/nss/lib/util/secoid.c b/nss/lib/util/secoid.c
index 5b1714a..0020992 100644
--- a/nss/lib/util/secoid.c
+++ b/nss/lib/util/secoid.c
@@ -20,15 +20,9 @@
 #endif
 
 /*
- * Version information for the 'ident' and 'what commands
- *
- * NOTE: the first component of the concatenated rcsid string
- * must not end in a '$' to prevent rcs keyword substitution.
+ * Version information
  */
-const char __nss_util_rcsid[] = "$Header: NSS " NSSUTIL_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__ " $";
-const char __nss_util_sccsid[] = "@(#)NSS " NSSUTIL_VERSION _DEBUG_STRING
-        "  " __DATE__ " " __TIME__;
+const char __nss_util_version[] = "Version: NSS " NSSUTIL_VERSION _DEBUG_STRING;
 
 /* MISSI Mosaic Object ID space */
 /* USGov algorithm OID space: { 2 16 840 1 101 } */
@@ -492,9 +486,6 @@
 CONST_OID camellia128_CBC[]			= { CAMELLIA_ENCRYPT_OID, 2};
 CONST_OID camellia192_CBC[]			= { CAMELLIA_ENCRYPT_OID, 3};
 CONST_OID camellia256_CBC[]			= { CAMELLIA_ENCRYPT_OID, 4};
-CONST_OID camellia128_KEY_WRAP[]		= { CAMELLIA_WRAP_OID, 2};
-CONST_OID camellia192_KEY_WRAP[]		= { CAMELLIA_WRAP_OID, 3};
-CONST_OID camellia256_KEY_WRAP[]		= { CAMELLIA_WRAP_OID, 4};
 
 CONST_OID sha256[]                              = { SHAXXX, 1 };
 CONST_OID sha384[]                              = { SHAXXX, 2 };
@@ -1878,7 +1869,7 @@
 static PLHashNumber
 secoid_HashNumber(const void *key)
 {
-    return (PLHashNumber) key;
+    return (PLHashNumber)((char *)key - (char *)NULL);
 }
 
 static void
@@ -1896,14 +1887,14 @@
 		*nextArg++ = '\0';
 	    }
 	}
-	notEnable = (*arg == '-') ? NSS_USE_ALG_IN_CERT_SIGNATURE : 0;
+	notEnable = (*arg == '-') ? (NSS_USE_ALG_IN_CERT_SIGNATURE|NSS_USE_ALG_IN_SSL_KX) : 0;
 	if ((*arg == '+' || *arg == '-') && *++arg) { 
 	    int i;
 
 	    for (i = 1; i < SEC_OID_TOTAL; i++) {
 	        if (oids[i].desc && strstr(arg, oids[i].desc)) {
 		     xOids[i].notPolicyFlags = notEnable |
-		    (xOids[i].notPolicyFlags & ~NSS_USE_ALG_IN_CERT_SIGNATURE);
+		    (xOids[i].notPolicyFlags & ~(NSS_USE_ALG_IN_CERT_SIGNATURE|NSS_USE_ALG_IN_SSL_KX));
 		}
 	    }
 	}
@@ -1919,9 +1910,9 @@
     const SECOidData *oid;
     int i;
     char * envVal;
-    volatile char c; /* force a reference that won't get optimized away */
 
-    c = __nss_util_rcsid[0] + __nss_util_sccsid[0];
+#define NSS_VERSION_VARIABLE __nss_util_version
+#include "verref.h"
 
     if (oidhash) {
 	return SECSuccess; /* already initialized */
diff --git a/nss/lib/util/secoidt.h b/nss/lib/util/secoidt.h
index ff0f527..747450e 100644
--- a/nss/lib/util/secoidt.h
+++ b/nss/lib/util/secoidt.h
@@ -476,6 +476,7 @@
  */
 #define NSS_USE_ALG_IN_CERT_SIGNATURE  0x00000001  /* CRLs and OCSP, too */
 #define NSS_USE_ALG_IN_CMS_SIGNATURE   0x00000002  /* used in S/MIME */
+#define NSS_USE_ALG_IN_SSL_KX          0x00000004  /* used in SSL key exchange */
 #define NSS_USE_ALG_RESERVED           0xfffffffc  /* may be used in future */
 
 /* Code MUST NOT SET or CLEAR reserved bits, and must NOT depend on them
diff --git a/nss/lib/util/secport.c b/nss/lib/util/secport.c
index 106399d..723d89b 100644
--- a/nss/lib/util/secport.c
+++ b/nss/lib/util/secport.c
@@ -466,7 +466,7 @@
 	PZ_Lock(pool->lock);
 #ifdef THREADMARK
 	{
-	    threadmark_mark **pw, *tm;
+	    threadmark_mark **pw;
 
 	    if (PR_GetCurrentThread() != pool->marking_thread ) {
 		PZ_Unlock(pool->lock);
@@ -488,7 +488,6 @@
 		return /* no error indication available */ ;
 	    }
 
-	    tm = *pw;
 	    *pw = (threadmark_mark *)NULL;
 
 	    if (zero) {
@@ -536,7 +535,7 @@
 #ifdef THREADMARK
     PORTArenaPool *pool = (PORTArenaPool *)arena;
     if (ARENAPOOL_MAGIC == pool->magic ) {
-	threadmark_mark **pw, *tm;
+	threadmark_mark **pw;
 
 	PZ_Lock(pool->lock);
 
@@ -560,7 +559,6 @@
 	    return /* no error indication available */ ;
 	}
 
-	tm = *pw;
 	*pw = (threadmark_mark *)NULL;
 
 	if (! pool->first_mark ) {
diff --git a/nss/lib/util/secport.h b/nss/lib/util/secport.h
index f01eb74..95c73c8 100644
--- a/nss/lib/util/secport.h
+++ b/nss/lib/util/secport.h
@@ -87,6 +87,19 @@
 SEC_END_PROTOS
 
 #define PORT_Assert PR_ASSERT
+/* This runs a function that should return SECSuccess.
+ * Intended for NSS internal use only.
+ * The return value is asserted in a debug build, otherwise it is ignored.
+ * This is no substitute for proper error handling.  It is OK only if you
+ * have ensured that the function cannot fail by other means such as checking
+ * prerequisites.  In that case this can be used as a safeguard against
+ * unexpected changes in a function.
+ */
+#ifdef DEBUG
+#define PORT_CheckSuccess(f) PR_ASSERT((f) == SECSuccess)
+#else
+#define PORT_CheckSuccess(f) (f)
+#endif
 #define PORT_ZNew(type) (type*)PORT_ZAlloc(sizeof(type))
 #define PORT_New(type) (type*)PORT_Alloc(sizeof(type))
 #define PORT_ArenaNew(poolp, type)	\
diff --git a/nss/lib/util/utilmod.c b/nss/lib/util/utilmod.c
index 0f5970f..4be99ad 100644
--- a/nss/lib/util/utilmod.c
+++ b/nss/lib/util/utilmod.c
@@ -75,14 +75,15 @@
 
 /*
  * Smart string cat functions. Automatically manage the memory.
- * The first parameter is the source string. If it's null, we 
+ * The first parameter is the destination string. If it's null, we 
  * allocate memory for it. If it's not, we reallocate memory
  * so the the concanenated string fits.
  */
 static char *
 nssutil_DupnCat(char *baseString, const char *str, int str_len)
 {
-    int len = (baseString ? PORT_Strlen(baseString) : 0) + 1;
+    int baseStringLen = baseString ? PORT_Strlen(baseString) : 0;
+    int len = baseStringLen + 1;
     char *newString;
 
     len += str_len;
@@ -91,8 +92,9 @@
 	PORT_Free(baseString);
 	return NULL;
     }
-    if (baseString == NULL) *newString = 0;
-    return PORT_Strncat(newString,str, str_len);
+    PORT_Memcpy(&newString[baseStringLen], str, str_len);
+    newString[len - 1] = 0;
+    return newString;
 }
 
 /* Same as nssutil_DupnCat except it concatenates the full string, not a
@@ -480,7 +482,7 @@
     char *block = NULL;
     char *name = NULL;
     char *lib = NULL;
-    int name_len, lib_len;
+    int name_len = 0, lib_len = 0;
     PRBool skip = PR_FALSE;
     PRBool found = PR_FALSE;
 
diff --git a/nss/lib/util/utilpars.c b/nss/lib/util/utilpars.c
index d2cd3e0..278f9c4 100644
--- a/nss/lib/util/utilpars.c
+++ b/nss/lib/util/utilpars.c
@@ -767,6 +767,31 @@
  * and NSS specifi parameters.
  */
 SECStatus
+NSSUTIL_ArgParseModuleSpecEx(char *modulespec, char **lib, char **mod, 
+					char **parameters, char **nss,
+					char **config)
+{
+    int next;
+    modulespec = NSSUTIL_ArgStrip(modulespec);
+
+    *lib = *mod = *parameters = *nss = *config = 0;
+
+    while (*modulespec) {
+	NSSUTIL_HANDLE_STRING_ARG(modulespec,*lib,"library=",;)
+	NSSUTIL_HANDLE_STRING_ARG(modulespec,*mod,"name=",;)
+	NSSUTIL_HANDLE_STRING_ARG(modulespec,*parameters,"parameters=",;)
+	NSSUTIL_HANDLE_STRING_ARG(modulespec,*nss,"nss=",;)
+        NSSUTIL_HANDLE_STRING_ARG(modulespec,*config,"config=",;)
+	NSSUTIL_HANDLE_FINAL_ARG(modulespec)
+   }
+   return SECSuccess;
+}
+
+/************************************************************************
+ * Parse Full module specs into: library, commonName, module parameters,
+ * and NSS specifi parameters.
+ */
+SECStatus
 NSSUTIL_ArgParseModuleSpec(char *modulespec, char **lib, char **mod, 
 					char **parameters, char **nss)
 {
@@ -788,11 +813,12 @@
 /************************************************************************
  * make a new module spec from it's components */
 char *
-NSSUTIL_MkModuleSpec(char *dllName, char *commonName, char *parameters, 
-								char *NSS)
+NSSUTIL_MkModuleSpecEx(char *dllName, char *commonName, char *parameters, 
+								char *NSS,
+								char *config)
 {
     char *moduleSpec;
-    char *lib,*name,*param,*nss;
+    char *lib,*name,*param,*nss,*conf;
 
     /*
      * now the final spec
@@ -801,7 +827,13 @@
     name = nssutil_formatPair("name",commonName,'\"');
     param = nssutil_formatPair("parameters",parameters,'\"');
     nss = nssutil_formatPair("NSS",NSS,'\"');
-    moduleSpec = PR_smprintf("%s %s %s %s", lib,name,param,nss);
+    if (config) {
+        conf = nssutil_formatPair("config",config,'\"');
+        moduleSpec = PR_smprintf("%s %s %s %s %s", lib,name,param,nss,conf);
+        nssutil_freePair(conf);
+    } else {
+        moduleSpec = PR_smprintf("%s %s %s %s", lib,name,param,nss);
+    }
     nssutil_freePair(lib);
     nssutil_freePair(name);
     nssutil_freePair(param);
@@ -809,6 +841,15 @@
     return (moduleSpec);
 }
 
+/************************************************************************
+ * make a new module spec from it's components */
+char *
+NSSUTIL_MkModuleSpec(char *dllName, char *commonName, char *parameters, 
+								char *NSS)
+{
+    return NSSUTIL_MkModuleSpecEx(dllName, commonName, parameters, NSS, NULL);
+}
+
 
 #define NSSUTIL_ARG_FORTEZZA_FLAG "FORTEZZA"
 /******************************************************************************
diff --git a/nss/lib/util/utilpars.h b/nss/lib/util/utilpars.h
index e01ba14..7562bb6 100644
--- a/nss/lib/util/utilpars.h
+++ b/nss/lib/util/utilpars.h
@@ -39,8 +39,12 @@
                   PRBool hasRootCerts, PRBool hasRootTrust);
 SECStatus NSSUTIL_ArgParseModuleSpec(char *modulespec, char **lib, char **mod,
                                         char **parameters, char **nss);
+SECStatus NSSUTIL_ArgParseModuleSpecEx(char *modulespec, char **lib, char **mod,
+                                        char **parameters, char **nss, char **config);
 char *NSSUTIL_MkModuleSpec(char *dllName, char *commonName, 
 					char *parameters, char *NSS);
+char *NSSUTIL_MkModuleSpecEx(char *dllName, char *commonName, 
+				char *parameters, char *NSS, char *config);
 void NSSUTIL_ArgParseCipherFlags(unsigned long *newCiphers,char *cipherList);
 char * NSSUTIL_MkNSSString(char **slotStrings, int slotCount, PRBool internal,
           PRBool isFIPS, PRBool isModuleDB,  PRBool isModuleDBOnly,
diff --git a/nss/lib/util/verref.h b/nss/lib/util/verref.h
new file mode 100644
index 0000000..2d141bb
--- /dev/null
+++ b/nss/lib/util/verref.h
@@ -0,0 +1,40 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* This header is used inline in a function to ensure that a version string
+ * symbol is linked in and not optimized out. A volatile reference is added to
+ * the variable identified by NSS_VERSION_VARIABLE.
+ *
+ * Use this as follows:
+ *
+ * #define NSS_VERSION_VARIABLE __nss_ssl_version
+ * #include "verref.h"
+ */
+
+/* Suppress unused variable warnings. */
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable: 4101)
+#endif
+/* This works for both gcc and clang */
+#if defined(__GNUC__) && !defined(NSS_NO_GCC48)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#endif
+
+#ifndef NSS_VERSION_VARIABLE
+#error NSS_VERSION_VARIABLE must be set before including "verref.h"
+#endif
+{
+    extern const char NSS_VERSION_VARIABLE[];
+    volatile const char _nss_version_c = NSS_VERSION_VARIABLE[0];
+}
+#undef NSS_VERSION_VARIABLE
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+#if defined(__GNUC__) && !defined(NSS_NO_GCC48)
+#pragma GCC diagnostic pop
+#endif
diff --git a/patches/nspr-attach-as-system-thread.patch b/patches/nspr-attach-as-system-thread.patch
index e978b0a..26304bb 100644
--- a/patches/nspr-attach-as-system-thread.patch
+++ b/patches/nspr-attach-as-system-thread.patch
@@ -1,10 +1,7 @@
-Index: mozilla/nsprpub/pr/src/md/windows/w95thred.c
-===================================================================
-RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/windows/w95thred.c,v
-retrieving revision 3.22
-diff -p -u -r3.22 w95thred.c
---- mozilla/nsprpub/pr/src/md/windows/w95thred.c	13 Jun 2012 02:17:05 -0000	3.22
-+++ mozilla/nsprpub/pr/src/md/windows/w95thred.c	29 Jan 2013 01:16:53 -0000
+diff --git a/pr/src/md/windows/w95thred.c b/pr/src/md/windows/w95thred.c
+index f5c7703..b2cebae 100644
+--- a/pr/src/md/windows/w95thred.c
++++ b/pr/src/md/windows/w95thred.c
 @@ -313,7 +313,7 @@ PRThread *thread;
  
     	if (NULL == thread) {
diff --git a/patches/nspr-remove-io.patch b/patches/nspr-remove-io.patch
index fa626ce..3855ea1 100644
--- a/patches/nspr-remove-io.patch
+++ b/patches/nspr-remove-io.patch
@@ -1,10 +1,7 @@
-Index: mozilla/nsprpub/pr/include/md/_win95.h
-===================================================================
-RCS file: /cvsroot/mozilla/nsprpub/pr/include/md/_win95.h,v
-retrieving revision 3.41
-diff -p -u -r3.41 _win95.h
---- mozilla/nsprpub/pr/include/md/_win95.h	26 May 2012 00:15:23 -0000	3.41
-+++ mozilla/nsprpub/pr/include/md/_win95.h	29 Jan 2013 01:19:17 -0000
+diff --git a/pr/include/md/_win95.h b/pr/include/md/_win95.h
+index d65e264..1da2b55 100644
+--- a/pr/include/md/_win95.h
++++ b/pr/include/md/_win95.h
 @@ -32,8 +32,6 @@
  
  #define HAVE_DLL
@@ -14,13 +11,10 @@
  #ifndef _PR_INET6
  #define AF_INET6 23
  /* newer ws2tcpip.h provides these */
-Index: mozilla/nsprpub/pr/src/io/prio.c
-===================================================================
-RCS file: /cvsroot/mozilla/nsprpub/pr/src/io/prio.c,v
-retrieving revision 3.24
-diff -p -u -r3.24 prio.c
---- mozilla/nsprpub/pr/src/io/prio.c	6 Mar 2012 13:14:09 -0000	3.24
-+++ mozilla/nsprpub/pr/src/io/prio.c	29 Jan 2013 01:19:17 -0000
+diff --git a/pr/src/io/prio.c b/pr/src/io/prio.c
+index 78cbdf5..f69927f 100644
+--- a/pr/src/io/prio.c
++++ b/pr/src/io/prio.c
 @@ -58,8 +58,6 @@ void _PR_InitIO(void)
      _PR_MD_INIT_FD_INHERITABLE(_pr_stdin, PR_TRUE);
      _PR_MD_INIT_FD_INHERITABLE(_pr_stdout, PR_TRUE);
diff --git a/patches/nspr-static.patch b/patches/nspr-static.patch
index 5be8eb8..b6a4a38 100644
--- a/patches/nspr-static.patch
+++ b/patches/nspr-static.patch
@@ -1,16 +1,8 @@
-Index: mozilla/nsprpub/pr/include/prtypes.h
-===================================================================
-RCS file: /cvsroot/mozilla/nsprpub/pr/include/prtypes.h,v
-retrieving revision 3.52
-diff -p -u -8 -r3.52 prtypes.h
---- mozilla/nsprpub/pr/include/prtypes.h	7 Dec 2012 21:13:41 -0000	3.52
-+++ mozilla/nsprpub/pr/include/prtypes.h	29 Jan 2013 01:15:02 -0000
-@@ -43,17 +43,33 @@
- ** Example:
- **   in dowhim.h
- **     PR_EXTERN( void ) DoWhatIMean( void );
- **   in dowhim.c
- **     PR_IMPLEMENT( void ) DoWhatIMean( void ) { return; }
+diff --git a/pr/include/prtypes.h b/pr/include/prtypes.h
+index 52b3ab0..d78f580 100644
+--- a/pr/include/prtypes.h
++++ b/pr/include/prtypes.h
+@@ -48,7 +48,23 @@
  **
  **
  ***********************************************************************/
@@ -35,21 +27,11 @@
  
  #define PR_EXPORT(__type) extern __declspec(dllexport) __type
  #define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
- #define PR_IMPORT(__type) __declspec(dllimport) __type
- #define PR_IMPORT_DATA(__type) __declspec(dllimport) __type
- 
- #define PR_EXTERN(__type) extern __declspec(dllexport) __type
- #define PR_IMPLEMENT(__type) __declspec(dllexport) __type
-Index: mozilla/nsprpub/pr/src/md/windows/w95dllmain.c
-===================================================================
-RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/windows/w95dllmain.c,v
-retrieving revision 3.9
-diff -p -u -8 -r3.9 w95dllmain.c
---- mozilla/nsprpub/pr/src/md/windows/w95dllmain.c	6 Mar 2012 13:14:17 -0000	3.9
-+++ mozilla/nsprpub/pr/src/md/windows/w95dllmain.c	29 Jan 2013 01:15:02 -0000
-@@ -1,13 +1,15 @@
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
+diff --git a/pr/src/md/windows/w95dllmain.c b/pr/src/md/windows/w95dllmain.c
+index 73707a6..90957c1 100644
+--- a/pr/src/md/windows/w95dllmain.c
++++ b/pr/src/md/windows/w95dllmain.c
+@@ -3,6 +3,8 @@
   * License, v. 2.0. If a copy of the MPL was not distributed with this
   * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  
@@ -58,35 +40,17 @@
  /*
   * The DLL entry point (DllMain) for NSPR.
   *
-  * This is used to detach threads that were automatically attached by
-  * nspr.
-  */
- 
- #include <windows.h>
-@@ -32,8 +34,10 @@ PRThread *me;
-                     _PRI_DetachThread();
-             }
-             break;
-         case DLL_PROCESS_DETACH:
-             break;
+@@ -37,3 +39,5 @@ PRThread *me;
      }
      return TRUE;
  }
 +
 +#endif
-Index: mozilla/nsprpub/pr/src/md/windows/w95thred.c
-===================================================================
-RCS file: /cvsroot/mozilla/nsprpub/pr/src/md/windows/w95thred.c,v
-retrieving revision 3.22
-diff -p -u -8 -r3.22 w95thred.c
---- mozilla/nsprpub/pr/src/md/windows/w95thred.c	13 Jun 2012 02:17:05 -0000	3.22
-+++ mozilla/nsprpub/pr/src/md/windows/w95thred.c	29 Jan 2013 01:15:02 -0000
-@@ -313,8 +313,125 @@ PRThread *thread;
- 
-    	if (NULL == thread) {
- 		thread = _PRI_AttachThread(
-             PR_USER_THREAD, PR_PRIORITY_NORMAL, NULL, 0);
- 	}
+diff --git a/pr/src/md/windows/w95thred.c b/pr/src/md/windows/w95thred.c
+index 932c50c..f5c7703 100644
+--- a/pr/src/md/windows/w95thred.c
++++ b/pr/src/md/windows/w95thred.c
+@@ -318,3 +318,120 @@ PRThread *thread;
  	PR_ASSERT(thread != NULL);
  	return thread;
  }
diff --git a/patches/nss-ber-fixes.patch b/patches/nss-ber-fixes.patch
deleted file mode 100644
index b0d0836..0000000
--- a/patches/nss-ber-fixes.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-diff --git a/nss/lib/util/secasn1d.c b/nss/lib/util/secasn1d.c
-index d404b72..d85597b 100644
---- a/nss/lib/util/secasn1d.c
-+++ b/nss/lib/util/secasn1d.c
-@@ -951,6 +951,33 @@ sec_asn1d_parse_more_length (sec_asn1d_state *state,
-     return count;
- }
- 
-+/*
-+ * Helper function for sec_asn1d_prepare_for_contents.
-+ * Checks that a value representing a number of bytes consumed can be
-+ * subtracted from a remaining length. If so, returns PR_TRUE.
-+ * Otherwise, sets the error SEC_ERROR_BAD_DER, indicates that there was a
-+ * decoding error in the given SEC_ASN1DecoderContext, and returns PR_FALSE.
-+ */
-+static PRBool
-+sec_asn1d_check_and_subtract_length (unsigned long *remaining,
-+                                     unsigned long consumed,
-+                                     SEC_ASN1DecoderContext *cx)
-+{
-+    PORT_Assert(remaining);
-+    PORT_Assert(cx);
-+    if (!remaining || !cx) {
-+        PORT_SetError (SEC_ERROR_INVALID_ARGS);
-+        cx->status = decodeError;
-+        return PR_FALSE;
-+    }
-+    if (*remaining < consumed) {
-+        PORT_SetError (SEC_ERROR_BAD_DER);
-+        cx->status = decodeError;
-+        return PR_FALSE;
-+    }
-+    *remaining -= consumed;
-+    return PR_TRUE;
-+}
- 
- static void
- sec_asn1d_prepare_for_contents (sec_asn1d_state *state)
-@@ -966,6 +993,63 @@ sec_asn1d_prepare_for_contents (sec_asn1d_state *state)
-     }
- #endif
- 
-+    /**
-+     * The maximum length for a child element should be constrained to the
-+     * length remaining in the first definite length element in the ancestor
-+     * stack. If there is no definite length element in the ancestor stack,
-+     * there's nothing to constrain the length of the child, so there's no
-+     * further processing necessary.
-+     *
-+     * It's necessary to walk the ancestor stack, because it's possible to have
-+     * definite length children that are part of an indefinite length element,
-+     * which is itself part of an indefinite length element, and which is
-+     * ultimately part of a definite length element. A simple example of this
-+     * would be the handling of constructed OCTET STRINGs in BER encoding.
-+     *
-+     * This algorithm finds the first definite length element in the ancestor
-+     * stack, if any, and if so, ensures that the length of the child element
-+     * is consistent with the number of bytes remaining in the constraining
-+     * ancestor element (that is, after accounting for any other sibling
-+     * elements that may have been read).
-+     *
-+     * It's slightly complicated by the need to account both for integer
-+     * underflow and overflow, as well as ensure that for indefinite length
-+     * encodings, there's also enough space for the End-of-Contents (EOC)
-+     * octets (Tag = 0x00, Length = 0x00, or two bytes).
-+     */
-+
-+    /* Determine the maximum length available for this element by finding the
-+     * first definite length ancestor, if any. */
-+    sec_asn1d_state *parent = sec_asn1d_get_enclosing_construct(state);
-+    while (parent && parent->indefinite) {
-+        parent = sec_asn1d_get_enclosing_construct(parent);
-+    }
-+    /* If parent is null, state is either the outermost state / at the top of
-+     * the stack, or the outermost state uses indefinite length encoding. In
-+     * these cases, there's nothing external to constrain this element, so
-+     * there's nothing to check. */
-+    if (parent) {
-+        unsigned long remaining = parent->pending;
-+        parent = state;
-+        do {
-+            if (!sec_asn1d_check_and_subtract_length(
-+                     &remaining, parent->consumed, state->top) ||
-+                /* If parent->indefinite is true, parent->contents_length is
-+                 * zero and this is a no-op. */
-+                !sec_asn1d_check_and_subtract_length(
-+                     &remaining, parent->contents_length, state->top) ||
-+                /* If parent->indefinite is true, then ensure there is enough
-+                 * space for an EOC tag of 2 bytes. */
-+                (parent->indefinite && !sec_asn1d_check_and_subtract_length(
-+                                            &remaining, 2, state->top))) {
-+                /* This element is larger than its enclosing element, which is
-+                 * invalid. */
-+                return;
-+            }
-+        } while ((parent = sec_asn1d_get_enclosing_construct(parent)) &&
-+                 parent->indefinite);
-+    }
-+
-     /*
-      * XXX I cannot decide if this allocation should exclude the case
-      *     where state->endofcontents is true -- figure it out!
-@@ -1007,21 +1091,6 @@ sec_asn1d_prepare_for_contents (sec_asn1d_state *state)
-      */
-     state->pending = state->contents_length;
- 
--    /* If this item has definite length encoding, and 
--    ** is enclosed by a definite length constructed type,
--    ** make sure it isn't longer than the remaining space in that 
--    ** constructed type.  
--    */
--    if (state->contents_length > 0) {
--	sec_asn1d_state *parent = sec_asn1d_get_enclosing_construct(state);
--	if (parent && !parent->indefinite && 
--	    state->consumed + state->contents_length > parent->pending) {
--	    PORT_SetError (SEC_ERROR_BAD_DER);
--	    state->top->status = decodeError;
--	    return;
--	}
--    }
--
-     /*
-      * An EXPLICIT is nothing but an outer header, which we have
-      * already parsed and accepted.  Now we need to do the inner
-@@ -1723,7 +1792,102 @@ sec_asn1d_next_substring (sec_asn1d_state *state)
- 	PORT_Assert (state->indefinite);
- 
- 	item = (SECItem *)(child->dest);
--	if (item != NULL && item->data != NULL) {
-+
-+	/**
-+	 * At this point, there's three states at play:
-+	 *   child: The element that was just parsed
-+	 *   state: The currently processed element
-+	 *   'parent' (aka state->parent): The enclosing construct
-+	 *      of state, or NULL if this is the top-most element.
-+	 *
-+	 * This state handles both substrings of a constructed string AND
-+	 * child elements of items whose template type was that of
-+	 * SEC_ASN1_ANY, SEC_ASN1_SAVE, SEC_ASN1_ANY_CONTENTS, SEC_ASN1_SKIP
-+	 * template, as described in sec_asn1d_prepare_for_contents. For
-+	 * brevity, these will be referred to as 'string' and 'any' types.
-+	 *
-+	 * This leads to the following possibilities:
-+	 *   1: This element is an indefinite length string, part of a
-+	 *      definite length string.
-+	 *   2: This element is an indefinite length string, part of an
-+	 *      indefinite length string.
-+	 *   3: This element is an indefinite length any, part of a
-+	 *      definite length any.
-+	 *   4: This element is an indefinite length any, part of an
-+	 *      indefinite length any.
-+	 *   5: This element is an indefinite length any and does not
-+	 *      meet any of the above criteria. Note that this would include
-+	 *      an indefinite length string type matching an indefinite
-+	 *      length any template.
-+	 *
-+	 * In Cases #1 and #3, the definite length 'parent' element will
-+	 * have allocated state->dest based on the parent elements definite
-+	 * size. During the processing of 'child', sec_asn1d_parse_leaf will
-+	 * have copied the (string, any) data directly into the offset of
-+	 * dest, as appropriate, so there's no need for this class to still
-+	 * store the child - it's already been processed.
-+	 *
-+	 * In Cases #2 and #4, dest will be set to the parent element's dest,
-+	 * but dest->data will not have been allocated yet, due to the
-+	 * indefinite length encoding. In this situation, it's necessary to
-+	 * hold onto child (and all other children) until the EOC, at which
-+	 * point, it becomes possible to compute 'state's overall length. Once
-+	 * 'state' has a computed length, this can then be fed to 'parent' (via
-+	 * this state), and then 'parent' can similarly compute the length of
-+	 * all of its children up to the EOC, which will ultimately transit to
-+	 * sec_asn1d_concat_substrings, determine the overall size needed,
-+	 * allocate, and copy the contents (of all of parent's children, which
-+	 * would include 'state', just as 'state' will have copied all of its
-+	 * children via sec_asn1d_concat_substrings)
-+	 *
-+	 * The final case, Case #5, will manifest in that item->data and
-+	 * item->len will be NULL/0, respectively, since this element was
-+	 * indefinite-length encoded. In that case, both the tag and length will
-+	 * already exist in state's subitems, via sec_asn1d_record_any_header,
-+	 * and so the contents (aka 'child') should be added to that list of
-+	 * items to concatenate in sec_asn1d_concat_substrings once the EOC
-+	 * is encountered.
-+	 *
-+	 * To distinguish #2/#4 from #1/#3, it's sufficient to walk the ancestor
-+	 * tree. If the current type is a string type, then the enclosing
-+	 * construct will be that same type (#1/#2). If the current type is an
-+	 * any type, then the enclosing construct is either an any type (#3/#4)
-+	 * or some other type (#5). Since this is BER, this nesting relationship
-+	 * between 'state' and 'parent' may go through several levels of
-+	 * constructed encoding, so continue walking the ancestor chain until a
-+	 * clear determination can be made.
-+	 *
-+	 * The variable preallocatedString is used to indicate Case #1/#3,
-+	 * indicating an in-place copy has already occurred, and Cases #2, #4,
-+	 * and #5 all have the same behaviour of adding a new substring.
-+	 */
-+	PRBool preallocatedString = PR_FALSE;
-+	sec_asn1d_state *temp_state = state;
-+	while (temp_state && item == temp_state->dest && temp_state->indefinite) {
-+	    sec_asn1d_state *parent = sec_asn1d_get_enclosing_construct(temp_state);
-+	    if (!parent || parent->underlying_kind != temp_state->underlying_kind) {
-+	        /* Case #5 - Either this is a top-level construct or it is part
-+	         * of some other element (e.g. a SEQUENCE), in which case, a
-+	         * new item should be allocated. */
-+	        break;
-+	    }
-+	    if (!parent->indefinite) {
-+	        /* Cases #1 / #3 - A definite length ancestor exists, for which
-+	         * this is a substring that has already copied into dest. */
-+	        preallocatedString = PR_TRUE;
-+	        break;
-+	    }
-+	    if (!parent->substring) {
-+	        /* Cases #2 / #4 - If the parent is not a substring, but is
-+	         * indefinite, then there's nothing further up that may have
-+	         * preallocated dest, thus child will not have already
-+		 * been copied in place, therefore it's necessary to save child
-+		 * as a subitem. */
-+	        break;
-+	    }
-+	    temp_state = parent;
-+	}
-+	if (item != NULL && item->data != NULL && !preallocatedString) {
- 	    /*
- 	     * Save the string away for later concatenation.
- 	     */
diff --git a/patches/nss-chacha20-poly1305.patch b/patches/nss-chacha20-poly1305.patch
index e127a62..8fd77bd 100644
--- a/patches/nss-chacha20-poly1305.patch
+++ b/patches/nss-chacha20-poly1305.patch
@@ -1,7 +1,7 @@
-diff --git a/nss/lib/freebl/blapi.h b/nss/lib/freebl/blapi.h
+diff --git a/lib/freebl/blapi.h b/lib/freebl/blapi.h
 index 8324714..682be76 100644
---- a/nss/lib/freebl/blapi.h
-+++ b/nss/lib/freebl/blapi.h
+--- a/lib/freebl/blapi.h
++++ b/lib/freebl/blapi.h
 @@ -986,6 +986,38 @@ Camellia_Decrypt(CamelliaContext *cx, unsigned char *output,
  		 unsigned int *outputLen, unsigned int maxOutputLen,
  		 const unsigned char *input, unsigned int inputLen);
@@ -41,10 +41,10 @@
  
  /******************************************/
  /*
-diff --git a/nss/lib/freebl/blapit.h b/nss/lib/freebl/blapit.h
+diff --git a/lib/freebl/blapit.h b/lib/freebl/blapit.h
 index 8e172d4..5726dc7 100644
---- a/nss/lib/freebl/blapit.h
-+++ b/nss/lib/freebl/blapit.h
+--- a/lib/freebl/blapit.h
++++ b/lib/freebl/blapit.h
 @@ -222,6 +222,7 @@ struct SHA256ContextStr     ;
  struct SHA512ContextStr     ;
  struct AESKeyWrapContextStr ;
@@ -61,11 +61,11 @@
  
  /***************************************************************************
  ** RSA Public and Private Key structures
-diff --git a/nss/lib/freebl/chacha20/chacha20.c b/nss/lib/freebl/chacha20/chacha20.c
+diff --git a/lib/freebl/chacha20/chacha20.c b/lib/freebl/chacha20/chacha20.c
 new file mode 100644
 index 0000000..ca0b1ff
 --- /dev/null
-+++ b/nss/lib/freebl/chacha20/chacha20.c
++++ b/lib/freebl/chacha20/chacha20.c
 @@ -0,0 +1,108 @@
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -175,11 +175,11 @@
 +	}
 +    }
 +}
-diff --git a/nss/lib/freebl/chacha20/chacha20.h b/nss/lib/freebl/chacha20/chacha20.h
+diff --git a/lib/freebl/chacha20/chacha20.h b/lib/freebl/chacha20/chacha20.h
 new file mode 100644
 index 0000000..6336ba7
 --- /dev/null
-+++ b/nss/lib/freebl/chacha20/chacha20.h
++++ b/lib/freebl/chacha20/chacha20.h
 @@ -0,0 +1,22 @@
 +/*
 + * chacha20.h - header file for ChaCha20 implementation.
@@ -203,11 +203,11 @@
 +			uint64_t counter);
 +
 +#endif  /* FREEBL_CHACHA20_H_ */
-diff --git a/nss/lib/freebl/chacha20/chacha20_vec.c b/nss/lib/freebl/chacha20/chacha20_vec.c
+diff --git a/lib/freebl/chacha20/chacha20_vec.c b/lib/freebl/chacha20/chacha20_vec.c
 new file mode 100644
 index 0000000..c3573b3
 --- /dev/null
-+++ b/nss/lib/freebl/chacha20/chacha20_vec.c
++++ b/lib/freebl/chacha20/chacha20_vec.c
 @@ -0,0 +1,281 @@
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -490,11 +490,11 @@
 +	}
 +    }
 +}
-diff --git a/nss/lib/freebl/chacha20poly1305.c b/nss/lib/freebl/chacha20poly1305.c
+diff --git a/lib/freebl/chacha20poly1305.c b/lib/freebl/chacha20poly1305.c
 new file mode 100644
 index 0000000..6fa5c4b
 --- /dev/null
-+++ b/nss/lib/freebl/chacha20poly1305.c
++++ b/lib/freebl/chacha20poly1305.c
 @@ -0,0 +1,169 @@
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -665,11 +665,11 @@
 +
 +    return SECSuccess;
 +}
-diff --git a/nss/lib/freebl/chacha20poly1305.h b/nss/lib/freebl/chacha20poly1305.h
+diff --git a/lib/freebl/chacha20poly1305.h b/lib/freebl/chacha20poly1305.h
 new file mode 100644
 index 0000000..c77632a
 --- /dev/null
-+++ b/nss/lib/freebl/chacha20poly1305.h
++++ b/lib/freebl/chacha20poly1305.h
 @@ -0,0 +1,15 @@
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -686,11 +686,11 @@
 +};
 +
 +#endif /* _CHACHA20_POLY1305_H_ */
-diff --git a/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c b/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
+diff --git a/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c b/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
 new file mode 100644
 index 0000000..38cbf35
 --- /dev/null
-+++ b/nss/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
++++ b/lib/freebl/poly1305/poly1305-donna-x64-sse2-incremental-source.c
 @@ -0,0 +1,623 @@
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -1315,11 +1315,11 @@
 +	U64TO8_LE(mac + 0, ((h0      ) | (h1 << 44)));
 +	U64TO8_LE(mac + 8, ((h1 >> 20) | (h2 << 24)));
 +}
-diff --git a/nss/lib/freebl/poly1305/poly1305.c b/nss/lib/freebl/poly1305/poly1305.c
+diff --git a/lib/freebl/poly1305/poly1305.c b/lib/freebl/poly1305/poly1305.c
 new file mode 100644
 index 0000000..d86048a
 --- /dev/null
-+++ b/nss/lib/freebl/poly1305/poly1305.c
++++ b/lib/freebl/poly1305/poly1305.c
 @@ -0,0 +1,254 @@
 +/* This Source Code Form is subject to the terms of the Mozilla Public
 + * License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -1575,11 +1575,11 @@
 +	U32TO8_LE(&mac[ 8], (uint32_t)f2); f3 += (f2 >> 32);
 +	U32TO8_LE(&mac[12], (uint32_t)f3);
 +}
-diff --git a/nss/lib/freebl/poly1305/poly1305.h b/nss/lib/freebl/poly1305/poly1305.h
+diff --git a/lib/freebl/poly1305/poly1305.h b/lib/freebl/poly1305/poly1305.h
 new file mode 100644
 index 0000000..4beb172
 --- /dev/null
-+++ b/nss/lib/freebl/poly1305/poly1305.h
++++ b/lib/freebl/poly1305/poly1305.h
 @@ -0,0 +1,31 @@
 +/*
 + * poly1305.h - header file for Poly1305 implementation.
@@ -1612,10 +1612,10 @@
 +			   unsigned char mac[16]);
 +
 +#endif  /* FREEBL_POLY1305_H_ */
-diff --git a/nss/lib/pk11wrap/pk11mech.c b/nss/lib/pk11wrap/pk11mech.c
-index b7a7296..edc7a9b 100644
---- a/nss/lib/pk11wrap/pk11mech.c
-+++ b/nss/lib/pk11wrap/pk11mech.c
+diff --git a/lib/pk11wrap/pk11mech.c b/lib/pk11wrap/pk11mech.c
+index 29e86e6..0ebb075 100644
+--- a/lib/pk11wrap/pk11mech.c
++++ b/lib/pk11wrap/pk11mech.c
 @@ -152,6 +152,8 @@ PK11_GetKeyMechanism(CK_KEY_TYPE type)
  	return CKM_SEED_CBC;
      case CKK_CAMELLIA:
@@ -1634,7 +1634,7 @@
      case CKM_AES_ECB:
      case CKM_AES_CBC:
      case CKM_AES_CCM:
-@@ -429,6 +433,8 @@ PK11_GetKeyGenWithSize(CK_MECHANISM_TYPE type, int size)
+@@ -431,6 +435,8 @@ PK11_GetKeyGenWithSize(CK_MECHANISM_TYPE type, int size)
      case CKM_CAMELLIA_CBC_PAD:
      case CKM_CAMELLIA_KEY_GEN:
  	return CKM_CAMELLIA_KEY_GEN;
@@ -1643,10 +1643,10 @@
      case CKM_AES_ECB:
      case CKM_AES_CBC:
      case CKM_AES_CCM:
-diff --git a/nss/lib/softoken/pkcs11.c b/nss/lib/softoken/pkcs11.c
-index bd7c4bd..716922f 100644
---- a/nss/lib/softoken/pkcs11.c
-+++ b/nss/lib/softoken/pkcs11.c
+diff --git a/lib/softoken/pkcs11.c b/lib/softoken/pkcs11.c
+index 97d6d3f..75c9e8e 100644
+--- a/lib/softoken/pkcs11.c
++++ b/lib/softoken/pkcs11.c
 @@ -370,6 +370,9 @@ static const struct mechanismList mechanisms[] = {
       {CKM_SEED_MAC,		{16, 16, CKF_SN_VR},		PR_TRUE},
       {CKM_SEED_MAC_GENERAL,	{16, 16, CKF_SN_VR},		PR_TRUE},
@@ -1657,11 +1657,11 @@
       /* ------------------------- Hashing Operations ----------------------- */
       {CKM_MD2,			{0,   0, CKF_DIGEST},		PR_FALSE},
       {CKM_MD2_HMAC,		{1, 128, CKF_SN_VR},		PR_TRUE},
-diff --git a/nss/lib/softoken/pkcs11c.c b/nss/lib/softoken/pkcs11c.c
-index fc050f3..955d4c9 100644
---- a/nss/lib/softoken/pkcs11c.c
-+++ b/nss/lib/softoken/pkcs11c.c
-@@ -663,6 +663,97 @@ sftk_RSADecryptOAEP(SFTKOAEPDecryptInfo *info, unsigned char *output,
+diff --git a/lib/softoken/pkcs11c.c b/lib/softoken/pkcs11c.c
+index 8755f24..992fba4 100644
+--- a/lib/softoken/pkcs11c.c
++++ b/lib/softoken/pkcs11c.c
+@@ -664,6 +664,97 @@ sftk_RSADecryptOAEP(SFTKOAEPDecryptInfo *info, unsigned char *output,
      return rv;
  }
  
@@ -1759,7 +1759,7 @@
  /** NSC_CryptInit initializes an encryption/Decryption operation.
   *
   * Always called by NSC_EncryptInit, NSC_DecryptInit, NSC_WrapKey,NSC_UnwrapKey.
-@@ -1056,6 +1147,35 @@ finish_des:
+@@ -1057,6 +1148,35 @@ finish_des:
  	context->destroy = (SFTKDestroy) AES_DestroyContext;
  	break;
  
@@ -1795,7 +1795,7 @@
      case CKM_NETSCAPE_AES_KEY_WRAP_PAD:
      	context->doPad = PR_TRUE;
  	/* fall thru */
-@@ -3609,6 +3729,10 @@ nsc_SetupBulkKeyGen(CK_MECHANISM_TYPE mechanism, CK_KEY_TYPE *key_type,
+@@ -3654,6 +3774,10 @@ nsc_SetupBulkKeyGen(CK_MECHANISM_TYPE mechanism, CK_KEY_TYPE *key_type,
  	*key_type = CKK_AES;
  	if (*key_length == 0) crv = CKR_TEMPLATE_INCOMPLETE;
  	break;
@@ -1806,7 +1806,7 @@
      default:
  	PORT_Assert(0);
  	crv = CKR_MECHANISM_INVALID;
-@@ -3854,6 +3978,7 @@ CK_RV NSC_GenerateKey(CK_SESSION_HANDLE hSession,
+@@ -3900,6 +4024,7 @@ CK_RV NSC_GenerateKey(CK_SESSION_HANDLE hSession,
      case CKM_SEED_KEY_GEN:
      case CKM_CAMELLIA_KEY_GEN:
      case CKM_AES_KEY_GEN:
@@ -1814,10 +1814,10 @@
  #if NSS_SOFTOKEN_DOES_RC5
      case CKM_RC5_KEY_GEN:
  #endif
-diff --git a/nss/lib/softoken/pkcs11i.h b/nss/lib/softoken/pkcs11i.h
-index 9a00273..175bb78 100644
---- a/nss/lib/softoken/pkcs11i.h
-+++ b/nss/lib/softoken/pkcs11i.h
+diff --git a/lib/softoken/pkcs11i.h b/lib/softoken/pkcs11i.h
+index 1023a00..4e8601b 100644
+--- a/lib/softoken/pkcs11i.h
++++ b/lib/softoken/pkcs11i.h
 @@ -14,6 +14,7 @@
  #include "pkcs11t.h"
  
@@ -1851,10 +1851,10 @@
  /*
   * Template based on SECItems, suitable for passing as arrays
   */
-diff --git a/nss/lib/util/pkcs11n.h b/nss/lib/util/pkcs11n.h
-index a1a0ebb..d48cef6 100644
---- a/nss/lib/util/pkcs11n.h
-+++ b/nss/lib/util/pkcs11n.h
+diff --git a/lib/util/pkcs11n.h b/lib/util/pkcs11n.h
+index 5e13784..86a396f 100644
+--- a/lib/util/pkcs11n.h
++++ b/lib/util/pkcs11n.h
 @@ -51,6 +51,8 @@
  #define CKK_NSS_JPAKE_ROUND1       (CKK_NSS + 2)
  #define CKK_NSS_JPAKE_ROUND2       (CKK_NSS + 3)
@@ -1864,17 +1864,17 @@
  /*
   * NSS-defined certificate types
   *
-@@ -214,6 +216,9 @@
- #define CKM_NSS_TLS_KEY_AND_MAC_DERIVE_SHA256   (CKM_NSS + 23)
- #define CKM_NSS_TLS_MASTER_KEY_DERIVE_DH_SHA256 (CKM_NSS + 24)
+@@ -218,6 +220,9 @@
+ #define CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE    (CKM_NSS + 25)
+ #define CKM_NSS_TLS_EXTENDED_MASTER_KEY_DERIVE_DH (CKM_NSS + 26)
  
-+#define CKM_NSS_CHACHA20_KEY_GEN                (CKM_NSS + 25)
-+#define CKM_NSS_CHACHA20_POLY1305               (CKM_NSS + 26)
++#define CKM_NSS_CHACHA20_KEY_GEN                (CKM_NSS + 27)
++#define CKM_NSS_CHACHA20_POLY1305               (CKM_NSS + 28)
 +
  /*
   * HISTORICAL:
   * Do not attempt to use these. They are only used by NETSCAPE's internal
-@@ -281,6 +286,14 @@ typedef struct CK_NSS_MAC_CONSTANT_TIME_PARAMS {
+@@ -285,6 +290,14 @@ typedef struct CK_NSS_MAC_CONSTANT_TIME_PARAMS {
      CK_ULONG ulHeaderLen;       /* in */
  } CK_NSS_MAC_CONSTANT_TIME_PARAMS;
  
diff --git a/patches/nss-remove-fortezza.patch b/patches/nss-remove-fortezza.patch
index c51655a..a1e7607 100644
--- a/patches/nss-remove-fortezza.patch
+++ b/patches/nss-remove-fortezza.patch
@@ -1,7 +1,8 @@
-diff -r 3f0105dfc733 lib/pk11wrap/pk11akey.c
---- a/lib/pk11wrap/pk11akey.c	Mon Apr 22 14:22:48 2013 +0200
-+++ b/lib/pk11wrap/pk11akey.c	Mon Apr 22 14:41:49 2013 -0700
-@@ -136,20 +136,6 @@
+diff --git a/lib/pk11wrap/pk11akey.c b/lib/pk11wrap/pk11akey.c
+index b0604de..6fbfcbb 100644
+--- a/lib/pk11wrap/pk11akey.c
++++ b/lib/pk11wrap/pk11akey.c
+@@ -135,20 +135,6 @@ PK11_ImportPublicKey(PK11SlotInfo *slot, SECKEYPublicKey *pubKey,
  	    PK11_SETATTRS(attrs, CKA_VALUE,    pubKey->u.dsa.publicValue.data, 
  					pubKey->u.dsa.publicValue.len); attrs++;
  	    break;
@@ -22,7 +23,7 @@
          case dhKey:
  	    keyType = CKK_DH;
  	    PK11_SETATTRS(attrs, CKA_DERIVE, &cktrue, sizeof(CK_BBOOL));attrs++;
-@@ -210,6 +196,10 @@
+@@ -209,6 +195,10 @@ PK11_ImportPublicKey(PK11SlotInfo *slot, SECKEYPublicKey *pubKey,
  	    SECITEM_FreeItem(pubValue,PR_TRUE);
  	}
  	if ( rv != SECSuccess) {
diff --git a/patches/nss-static.patch b/patches/nss-static.patch
index 7bbf617..b59b189 100644
--- a/patches/nss-static.patch
+++ b/patches/nss-static.patch
@@ -1,8 +1,8 @@
-diff --git a/nss/lib/certhigh/certvfy.c b/nss/lib/certhigh/certvfy.c
-index 3141163..c9d26f0 100644
---- a/nss/lib/certhigh/certvfy.c
-+++ b/nss/lib/certhigh/certvfy.c
-@@ -13,9 +13,11 @@
+diff --git a/lib/certhigh/certvfy.c b/lib/certhigh/certvfy.c
+index d5dcbe8..855a62d 100644
+--- a/lib/certhigh/certvfy.c
++++ b/lib/certhigh/certvfy.c
+@@ -12,9 +12,11 @@
  #include "certdb.h"
  #include "certi.h"
  #include "cryptohi.h"
@@ -15,8 +15,8 @@
  
  #include "nsspki.h"
 @@ -24,6 +26,47 @@
- #include "pki3hack.h"
  #include "base.h"
+ #include "keyhi.h"
  
 +#ifdef NSS_DISABLE_LIBPKIX
 +SECStatus
@@ -62,10 +62,10 @@
  /*
   * Check the validity times of a certificate
   */
-diff --git a/nss/lib/ckfw/nssck.api b/nss/lib/ckfw/nssck.api
+diff --git a/lib/ckfw/nssck.api b/lib/ckfw/nssck.api
 index 55b4351..8364258 100644
---- a/nss/lib/ckfw/nssck.api
-+++ b/nss/lib/ckfw/nssck.api
+--- a/lib/ckfw/nssck.api
++++ b/lib/ckfw/nssck.api
 @@ -1752,7 +1752,7 @@ C_WaitForSlotEvent
  }
  #endif /* DECLARE_STRICT_CRYPTOKI_NAMES */
@@ -100,10 +100,10 @@
  
  #undef __ADJOIN
  
-diff --git a/nss/lib/freebl/rsa.c b/nss/lib/freebl/rsa.c
-index 498cc96..780c3c7 100644
---- a/nss/lib/freebl/rsa.c
-+++ b/nss/lib/freebl/rsa.c
+diff --git a/lib/freebl/rsa.c b/lib/freebl/rsa.c
+index f885acc..f1824ef 100644
+--- a/lib/freebl/rsa.c
++++ b/lib/freebl/rsa.c
 @@ -1535,6 +1535,13 @@ void BL_Cleanup(void)
      RSA_Cleanup();
  }
@@ -118,10 +118,10 @@
  PRBool bl_parentForkedAfterC_Initialize;
  
  /*
-diff --git a/nss/lib/freebl/shvfy.c b/nss/lib/freebl/shvfy.c
+diff --git a/lib/freebl/shvfy.c b/lib/freebl/shvfy.c
 index ad64a26..33714b8 100644
---- a/nss/lib/freebl/shvfy.c
-+++ b/nss/lib/freebl/shvfy.c
+--- a/lib/freebl/shvfy.c
++++ b/lib/freebl/shvfy.c
 @@ -273,9 +273,21 @@ readItem(PRFileDesc *fd, SECItem *item)
      return SECSuccess;
  }
@@ -168,10 +168,10 @@
  }
  
  PRBool
-diff --git a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
+diff --git a/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c b/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
 index 30aefb8..ac814cd 100755
---- a/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
-+++ b/nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
+--- a/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
++++ b/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c
 @@ -201,7 +201,10 @@ certCallback(void *arg, SECItem **secitemCerts, int numcerts)
  
  typedef SECStatus (*pkix_DecodeCertsFunc)(char *certbuf, int certlen,
@@ -205,10 +205,10 @@
  }
  
  /*
-diff --git a/nss/lib/nss/nssinit.c b/nss/lib/nss/nssinit.c
-index 6218a7e..208e71d 100644
---- a/nss/lib/nss/nssinit.c
-+++ b/nss/lib/nss/nssinit.c
+diff --git a/lib/nss/nssinit.c b/lib/nss/nssinit.c
+index b22f915..d490037 100644
+--- a/lib/nss/nssinit.c
++++ b/lib/nss/nssinit.c
 @@ -20,9 +20,11 @@
  #include "secerr.h"
  #include "nssbase.h"
@@ -221,7 +221,7 @@
  
  #include "pki3hack.h"
  #include "certi.h"
-@@ -530,8 +532,10 @@ nss_Init(const char *configdir, const char *certPrefix, const char *keyPrefix,
+@@ -526,8 +528,10 @@ nss_Init(const char *configdir, const char *certPrefix, const char *keyPrefix,
  		 PRBool dontFinalizeModules)
  {
      SECStatus rv = SECFailure;
@@ -232,7 +232,7 @@
      PRBool isReallyInitted;
      char *configStrings = NULL;
      char *configName = NULL;
-@@ -685,6 +689,7 @@ nss_Init(const char *configdir, const char *certPrefix, const char *keyPrefix,
+@@ -684,6 +688,7 @@ nss_Init(const char *configdir, const char *certPrefix, const char *keyPrefix,
  	pk11sdr_Init();
  	cert_CreateSubjectKeyIDHashTable();
  
@@ -240,7 +240,7 @@
  	pkixError = PKIX_Initialize
  	    (PKIX_FALSE, PKIX_MAJOR_VERSION, PKIX_MINOR_VERSION,
  	    PKIX_MINOR_VERSION, &actualMinorVersion, &plContext);
-@@ -697,6 +702,7 @@ nss_Init(const char *configdir, const char *certPrefix, const char *keyPrefix,
+@@ -696,6 +701,7 @@ nss_Init(const char *configdir, const char *certPrefix, const char *keyPrefix,
                  CERT_SetUsePKIXForValidation(PR_TRUE);
              }
          }
@@ -248,7 +248,7 @@
  
  
      }
-@@ -1081,7 +1087,9 @@ nss_Shutdown(void)
+@@ -1080,7 +1086,9 @@ nss_Shutdown(void)
      cert_DestroyLocks();
      ShutdownCRLCache();
      OCSP_ShutdownGlobal();
@@ -258,10 +258,10 @@
      SECOID_Shutdown();
      status = STAN_Shutdown();
      cert_DestroySubjectKeyIDHashTable();
-diff --git a/nss/lib/pk11wrap/pk11load.c b/nss/lib/pk11wrap/pk11load.c
-index 6700180..1811a1a 100644
---- a/nss/lib/pk11wrap/pk11load.c
-+++ b/nss/lib/pk11wrap/pk11load.c
+diff --git a/lib/pk11wrap/pk11load.c b/lib/pk11wrap/pk11load.c
+index e3ba122..bf7cc68 100644
+--- a/lib/pk11wrap/pk11load.c
++++ b/lib/pk11wrap/pk11load.c
 @@ -341,6 +341,12 @@ SECMOD_SetRootCerts(PK11SlotInfo *slot, SECMODModule *mod) {
      }
  }
@@ -357,7 +357,7 @@
          if (0 == PR_ATOMIC_DECREMENT(&softokenLoadCount)) {
            if (softokenLib) {
                disableUnload = PR_GetEnv("NSS_DISABLE_UNLOAD");
-@@ -596,12 +629,18 @@ SECMOD_UnloadModule(SECMODModule *mod) {
+@@ -600,12 +633,18 @@ SECMOD_UnloadModule(SECMODModule *mod) {
            }
            loadSoftokenOnce = pristineCallOnce;
          }
@@ -376,10 +376,10 @@
  	return SECFailure;
      }
  
-diff --git a/nss/lib/softoken/lgglue.c b/nss/lib/softoken/lgglue.c
+diff --git a/lib/softoken/lgglue.c b/lib/softoken/lgglue.c
 index c7b82bd..64e6415 100644
---- a/nss/lib/softoken/lgglue.c
-+++ b/nss/lib/softoken/lgglue.c
+--- a/lib/softoken/lgglue.c
++++ b/lib/softoken/lgglue.c
 @@ -23,6 +23,7 @@ static LGDeleteSecmodFunc legacy_glue_deleteSecmod = NULL;
  static LGAddSecmodFunc legacy_glue_addSecmod = NULL;
  static LGShutdownFunc legacy_glue_shutdown = NULL;
@@ -446,10 +446,10 @@
      legacy_glue_lib = NULL;
      legacy_glue_open = NULL;
      legacy_glue_readSecmod = NULL;
-diff --git a/nss/lib/softoken/lgglue.h b/nss/lib/softoken/lgglue.h
+diff --git a/lib/softoken/lgglue.h b/lib/softoken/lgglue.h
 index b87f756..c8c562f 100644
---- a/nss/lib/softoken/lgglue.h
-+++ b/nss/lib/softoken/lgglue.h
+--- a/lib/softoken/lgglue.h
++++ b/lib/softoken/lgglue.h
 @@ -38,6 +38,25 @@ typedef SECStatus (*LGShutdownFunc)(PRBool forked);
  typedef void (*LGSetForkStateFunc)(PRBool);
  typedef void (*LGSetCryptFunc)(LGEncryptFunc, LGDecryptFunc);
@@ -476,11 +476,11 @@
  /*
   * Softoken Glue Functions
   */
-diff --git a/nss/lib/util/secport.h b/nss/lib/util/secport.h
-index 5b09b9c..f01eb74 100644
---- a/nss/lib/util/secport.h
-+++ b/nss/lib/util/secport.h
-@@ -210,6 +210,7 @@ extern int NSS_PutEnv(const char * envVarName, const char * envValue);
+diff --git a/lib/util/secport.h b/lib/util/secport.h
+index 7d2f5e0..95c73c8 100644
+--- a/lib/util/secport.h
++++ b/lib/util/secport.h
+@@ -223,6 +223,7 @@ extern int NSS_PutEnv(const char * envVarName, const char * envValue);
  
  extern int NSS_SecureMemcmp(const void *a, const void *b, size_t n);
  
@@ -488,7 +488,7 @@
  /*
   * Load a shared library called "newShLibName" in the same directory as
   * a shared library that is already loaded, called existingShLibName.
-@@ -244,6 +245,7 @@ PRLibrary *
+@@ -257,6 +258,7 @@ PRLibrary *
  PORT_LoadLibraryFromOrigin(const char* existingShLibName,
                   PRFuncPtr staticShLibFunc,
                   const char *newShLibName);
diff --git a/patches/nss-urandom-abort.patch b/patches/nss-urandom-abort.patch
index a21ba6c..d5f55c8 100644
--- a/patches/nss-urandom-abort.patch
+++ b/patches/nss-urandom-abort.patch
@@ -1,7 +1,8 @@
-diff -r c3565a90b8c4 lib/freebl/unix_rand.c
---- a/lib/freebl/unix_rand.c	Fri Jan 03 20:59:10 2014 +0100
-+++ b/lib/freebl/unix_rand.c	Tue Jan 07 11:28:59 2014 -0800
-@@ -916,8 +916,19 @@
+diff --git a/lib/freebl/unix_rand.c b/lib/freebl/unix_rand.c
+index 579040e..2f9b3e5 100644
+--- a/lib/freebl/unix_rand.c
++++ b/lib/freebl/unix_rand.c
+@@ -916,8 +916,19 @@ void RNG_SystemInfoForRNG(void)
  #if defined(BSDI) || defined(FREEBSD) || defined(NETBSD) \
      || defined(OPENBSD) || defined(DARWIN) || defined(LINUX) \
      || defined(HPUX)
@@ -22,7 +23,7 @@
  #endif
  
  #ifdef SOLARIS
-@@ -1134,6 +1145,11 @@
+@@ -1134,6 +1145,11 @@ static void rng_systemJitter(void)
     }
  }
  
@@ -34,7 +35,7 @@
  size_t RNG_SystemRNG(void *dest, size_t maxLen)
  {
      FILE *file;
-@@ -1144,7 +1160,10 @@
+@@ -1144,7 +1160,10 @@ size_t RNG_SystemRNG(void *dest, size_t maxLen)
  
      file = fopen("/dev/urandom", "r");
      if (file == NULL) {
@@ -46,7 +47,7 @@
      }
      /* Read from the underlying file descriptor directly to bypass stdio
       * buffering and avoid reading more bytes than we need from /dev/urandom.
-@@ -1164,8 +1183,10 @@
+@@ -1164,8 +1183,10 @@ size_t RNG_SystemRNG(void *dest, size_t maxLen)
      }
      fclose(file);
      if (fileBytes != maxLen) {
diff --git a/scripts/nspr-checkout.sh b/scripts/nspr-checkout.sh
index ee0a137..bc89119 100755
--- a/scripts/nspr-checkout.sh
+++ b/scripts/nspr-checkout.sh
@@ -10,7 +10,7 @@
 set -ex
 
 rm -rf nspr
-hg clone -u NSPR_4_10_8_RTM https://hg.mozilla.org/projects/nspr
+hg clone -u NSPR_4_11_RTM https://hg.mozilla.org/projects/nspr
 
 rm -r nspr/.hg
 rm -r nspr/admin
diff --git a/scripts/nss-checkout.sh b/scripts/nss-checkout.sh
index 853d185..3cea122 100755
--- a/scripts/nss-checkout.sh
+++ b/scripts/nss-checkout.sh
@@ -12,7 +12,7 @@
 # We only need the nss/lib directory, but hg requires us to check out the
 # complete nss source tree.
 rm -rf nss
-hg clone -u NSS_3_19_RTM https://hg.mozilla.org/projects/nss
+hg clone -u NSS_3_21_RTM https://hg.mozilla.org/projects/nss
 
 # Rename one of the utf8.c files to avoid name conflict.
 mv nss/lib/base/utf8.c nss/lib/base/nssutf8.c