summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvs2hg <devnull@localhost>2005-01-15 00:03:02 +0000
committercvs2hg <devnull@localhost>2005-01-15 00:03:02 +0000
commit6513f55e2e90fdcd1693a86ef81a92e3876756b2 (patch)
treeae574ae8a02b55e2b94a921ee844f861be068ab7
parent91adfb9f606fd68c83f36ee109cf2375f9910222 (diff)
downloadnss-hg-6513f55e2e90fdcd1693a86ef81a92e3876756b2.tar.gz
fixup commit for branch 'PREFERENCES_20050201_BRANCH'PREFERENCES_20050201_BASE
-rw-r--r--dbm/include/mcom_db.h10
-rw-r--r--security/coreconf/AIX.mk18
-rw-r--r--security/coreconf/AIX3.2.mk35
-rw-r--r--security/coreconf/AIX4.1.mk55
-rw-r--r--security/coreconf/AIX4.2.mk50
-rw-r--r--security/coreconf/AIX4.3.mk55
-rw-r--r--security/coreconf/AIX5.1.mk54
-rw-r--r--security/coreconf/AIX5.2.mk54
-rw-r--r--security/coreconf/Linux.mk5
-rw-r--r--security/coreconf/OS2.mk3
-rwxr-xr-xsecurity/coreconf/SunOS5.10_i86pc.mk9
-rw-r--r--security/coreconf/SunOS5.mk42
-rw-r--r--security/coreconf/WIN32.mk11
-rw-r--r--security/coreconf/WIN954.0.mk5
-rw-r--r--security/coreconf/WINCE3.0.mk6
-rw-r--r--security/coreconf/WINNT3.51.mk7
-rw-r--r--security/coreconf/WINNT4.0.mk6
-rw-r--r--security/coreconf/WINNT5.0.mk6
-rw-r--r--security/coreconf/WINNT5.1.mk6
-rw-r--r--security/coreconf/config.mk2
-rw-r--r--security/coreconf/nsinstall/Makefile1
-rw-r--r--security/coreconf/rules.mk2
-rw-r--r--security/nss/cmd/certcgi/HOWTO.txt8
-rw-r--r--security/nss/cmd/certutil/certutil.c1
-rw-r--r--security/nss/cmd/crlutil/crlutil.c2
-rw-r--r--security/nss/cmd/lib/SECerrs.h87
-rw-r--r--security/nss/cmd/lib/secutil.c16
-rw-r--r--security/nss/cmd/pk11util/Makefile76
-rw-r--r--security/nss/cmd/pk11util/manifest.mn51
-rw-r--r--security/nss/cmd/pk11util/pk11table.c818
-rw-r--r--security/nss/cmd/pk11util/pk11util.c1677
-rw-r--r--security/nss/cmd/pk11util/pk11util.h144
-rw-r--r--security/nss/cmd/platlibs.mk12
-rw-r--r--security/nss/cmd/smimetools/cmsutil.c4
-rw-r--r--security/nss/cmd/symkeyutil/symkeyutil.c58
-rw-r--r--security/nss/lib/certdb/alg1485.c21
-rw-r--r--security/nss/lib/certdb/certdb.c29
-rw-r--r--security/nss/lib/certdb/certt.h4
-rw-r--r--security/nss/lib/certdb/genname.c12
-rw-r--r--security/nss/lib/certdb/polcyxtn.c4
-rw-r--r--security/nss/lib/certdb/stanpcertdb.c66
-rw-r--r--security/nss/lib/certhigh/certvfy.c73
-rw-r--r--security/nss/lib/ckfw/builtins/certdata.c3410
-rw-r--r--security/nss/lib/ckfw/builtins/certdata.txt3436
-rw-r--r--security/nss/lib/ckfw/builtins/ckbiver.c58
-rw-r--r--security/nss/lib/ckfw/builtins/config.mk11
-rw-r--r--security/nss/lib/ckfw/builtins/manifest.mn1
-rw-r--r--security/nss/lib/ckfw/builtins/nssckbi.h34
-rw-r--r--security/nss/lib/ckfw/builtins/nssckbi.rc97
-rw-r--r--security/nss/lib/ckfw/ckfw.h2
-rw-r--r--security/nss/lib/ckfw/ckfwm.h5
-rw-r--r--security/nss/lib/ckfw/instance.c17
-rw-r--r--security/nss/lib/ckfw/mutex.c84
-rw-r--r--security/nss/lib/ckfw/nsprstub.c75
-rw-r--r--security/nss/lib/ckfw/nssckfwt.h5
-rw-r--r--security/nss/lib/ckfw/wrap.c8
-rw-r--r--security/nss/lib/cryptohi/seckey.c15
-rw-r--r--security/nss/lib/dev/devutil.c2
-rw-r--r--security/nss/lib/fortcrypt/swfort/pkcs11/Makefile2
-rw-r--r--security/nss/lib/freebl/Makefile27
-rw-r--r--security/nss/lib/freebl/blapit.h2
-rw-r--r--security/nss/lib/freebl/sparcfix.c95
-rw-r--r--security/nss/lib/freebl/unix_rand.c2
-rw-r--r--security/nss/lib/nss/config.mk13
-rw-r--r--security/nss/lib/nss/nss.def26
-rw-r--r--security/nss/lib/nss/nss.h13
-rw-r--r--security/nss/lib/nss/nssinit.c5
-rw-r--r--security/nss/lib/pk11wrap/debug_module.c10
-rw-r--r--security/nss/lib/pk11wrap/pk11cert.c249
-rw-r--r--security/nss/lib/pk11wrap/pk11err.c2
-rw-r--r--security/nss/lib/pk11wrap/pk11func.h29
-rw-r--r--security/nss/lib/pk11wrap/pk11list.c88
-rw-r--r--security/nss/lib/pk11wrap/pk11load.c58
-rw-r--r--security/nss/lib/pk11wrap/pk11pars.c14
-rw-r--r--security/nss/lib/pk11wrap/pk11skey.c332
-rw-r--r--security/nss/lib/pk11wrap/pk11slot.c23
-rw-r--r--security/nss/lib/pk11wrap/pk11util.c510
-rw-r--r--security/nss/lib/pk11wrap/secmod.h20
-rw-r--r--security/nss/lib/pk11wrap/secmodi.h3
-rw-r--r--security/nss/lib/pk11wrap/secmodt.h30
-rw-r--r--security/nss/lib/pk11wrap/secmodti.h17
-rw-r--r--security/nss/lib/pkcs7/certread.c66
-rw-r--r--security/nss/lib/pki/pki3hack.c81
-rw-r--r--security/nss/lib/pki/pki3hack.h24
-rw-r--r--security/nss/lib/pki/pkit.h5
-rw-r--r--security/nss/lib/pki/trustdomain.c17
-rw-r--r--security/nss/lib/smime/config.mk5
-rw-r--r--security/nss/lib/smime/smime.def7
-rw-r--r--security/nss/lib/softoken/config.mk8
-rw-r--r--security/nss/lib/softoken/pk11db.c243
-rw-r--r--security/nss/lib/softoken/pkcs11.c12
-rw-r--r--security/nss/lib/softoken/pkcs11c.c33
-rw-r--r--security/nss/lib/softoken/pkcs11u.c87
-rw-r--r--security/nss/lib/ssl/config.mk6
-rw-r--r--security/nss/lib/ssl/ssl3con.c17
-rw-r--r--security/nss/lib/ssl/sslcon.c32
-rw-r--r--security/nss/lib/ssl/sslimpl.h4
-rw-r--r--security/nss/lib/ssl/sslnonce.c16
-rw-r--r--security/nss/lib/ssl/sslsnce.c6
-rw-r--r--security/nss/lib/ssl/sslsock.c8
-rw-r--r--security/nss/lib/util/nsslocks.c8
-rw-r--r--security/nss/lib/util/nssrwlk.c4
-rw-r--r--security/nss/lib/util/quickder.c5
-rw-r--r--security/nss/lib/util/secerr.h11
-rw-r--r--security/nss/lib/util/secport.h32
-rw-r--r--security/nss/pkg/linux/Makefile61
-rw-r--r--security/nss/pkg/linux/sun-nss.spec15
-rw-r--r--security/nss/pkg/solaris/Makefile75
-rwxr-xr-xsecurity/nss/pkg/solaris/Makefile-devl.com33
-rwxr-xr-xsecurity/nss/pkg/solaris/Makefile-devl.targ26
-rwxr-xr-xsecurity/nss/pkg/solaris/Makefile-tlsu.com33
-rwxr-xr-xsecurity/nss/pkg/solaris/Makefile-tlsu.targ34
-rw-r--r--security/nss/pkg/solaris/Makefile.com5
-rw-r--r--security/nss/pkg/solaris/Makefile.targ14
-rw-r--r--security/nss/pkg/solaris/SUNWtls/Makefile2
-rw-r--r--security/nss/pkg/solaris/SUNWtls/pkgdepend2
-rw-r--r--security/nss/pkg/solaris/SUNWtls/pkginfo.tmpl2
-rw-r--r--security/nss/pkg/solaris/SUNWtls/prototype_com9
-rw-r--r--security/nss/pkg/solaris/SUNWtls/prototype_i38618
-rw-r--r--security/nss/pkg/solaris/SUNWtls/prototype_sparc23
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsd/Makefile16
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsd/pkgdepend23
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsd/pkginfo.tmpl34
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsd/prototype127
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsu/Makefile16
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsu/pkgdepend22
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsu/pkginfo.tmpl34
-rwxr-xr-xsecurity/nss/pkg/solaris/SUNWtlsu/prototype_com36
-rw-r--r--security/nss/pkg/solaris/SUNWtlsu/prototype_i38641
-rw-r--r--security/nss/pkg/solaris/SUNWtlsu/prototype_sparc41
-rw-r--r--security/nss/pkg/solaris/proto64.mk14
-rw-r--r--security/nss/tests/ssl/ecssl.sh16
-rwxr-xr-xsecurity/nss/tests/ssl/ssl.sh16
133 files changed, 9910 insertions, 4050 deletions
diff --git a/dbm/include/mcom_db.h b/dbm/include/mcom_db.h
index 97e74260e..dcae849f2 100644
--- a/dbm/include/mcom_db.h
+++ b/dbm/include/mcom_db.h
@@ -190,7 +190,7 @@
#define LITTLE_ENDIAN 1234
#endif
-#if defined(_WINDOWS)
+#if defined(_WINDOWS) || defined(XP_OS2_VACPP)
#ifdef BYTE_ORDER
#undef BYTE_ORDER
#endif
@@ -222,6 +222,14 @@
#define MAXPATHLEN 1024
#endif
+#ifdef XP_OS2_VACPP
+#include <os2.h>
+#define MAXPATHLEN CCHMAXPATH
+#define EPERM EINVAL
+#define ENOTDIR EBADPOS
+#define S_ISDIR(s) ((s) & S_IFDIR)
+#endif
+
#define EFTYPE EINVAL /* POSIX 1003.1 format errno. */
#ifndef STDERR_FILENO
diff --git a/security/coreconf/AIX.mk b/security/coreconf/AIX.mk
index ff0a36f2b..9b8f4c82f 100644
--- a/security/coreconf/AIX.mk
+++ b/security/coreconf/AIX.mk
@@ -65,16 +65,30 @@ CPU_ARCH = rs6000
RANLIB = ranlib
OS_CFLAGS = -DAIX -DSYSV
+OS_LIBS += -blibpath:/usr/lib:/lib -lc -lm
+
+DSO_LDOPTS = -brtl -bnortllib -bM:SRE -bnoentry
+MKSHLIB = $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
AIX_WRAP = $(DIST)/lib/aixwrap.o
AIX_TMP = $(OBJDIR)/_aix_tmp.o
+
ifdef MAPFILE
-EXPORT_RULES = -bexport:$(MAPFILE)
+DSO_LDOPTS += -bexport:$(MAPFILE)
+else
+DSO_LDOPTS += -bexpall
endif
+
PROCESS_MAP_FILE = grep -v ';+' $(LIBRARY_NAME).def | grep -v ';-' | \
sed -e 's; DATA ;;' -e 's,;;,,' -e 's,;.*,,' > $@
ifdef BUILD_OPT
- OPTIMIZER += -qmaxmem=-1
+ OPTIMIZER += -qmaxmem=-1
+endif
+
+ifeq ($(USE_64), 1)
+ OS_CFLAGS += -DAIX_64BIT
+ OBJECT_MODE=64
+ export OBJECT_MODE
endif
diff --git a/security/coreconf/AIX3.2.mk b/security/coreconf/AIX3.2.mk
deleted file mode 100644
index c93a00eef..000000000
--- a/security/coreconf/AIX3.2.mk
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-# Config stuff for AIX3.2.5
-#
-include $(CORE_DEPTH)/coreconf/AIX.mk
diff --git a/security/coreconf/AIX4.1.mk b/security/coreconf/AIX4.1.mk
deleted file mode 100644
index 115ee8dc8..000000000
--- a/security/coreconf/AIX4.1.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-# Config stuff for AIX4.1
-#
-
-include $(CORE_DEPTH)/coreconf/AIX.mk
-
-
-AIX_LINK_OPTS += -bnso -berok
-#AIX_LINK_OPTS += -bnso -berok -brename:.select,.wrap_select -brename:.poll,.wrap_poll -bI:/usr/lib/syscalls.exp
-
-# The AIX4.1 linker had a bug which always looked for a dynamic library
-# with an extension of .a. AIX4.2 fixed this problem
-DLL_SUFFIX = a
-
-OS_LIBS += -lsvld
-
-# override default value set in suffix.mk, for AIX 4.1 only
-DYNAMIC_LIB_EXTENSION = _shr
-
-# override default value in ruleset.mk
-ifdef LIBRARY_NAME
- SHARED_LIBRARY = $(OBJDIR)/lib$(LIBRARY_NAME)$(LIBRARY_VERSION)_shr$(JDK_DEBUG_SUFFIX).a
-endif
-
diff --git a/security/coreconf/AIX4.2.mk b/security/coreconf/AIX4.2.mk
deleted file mode 100644
index 6975116b4..000000000
--- a/security/coreconf/AIX4.2.mk
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-
-#
-# Config stuff for AIX4.2
-#
-
-include $(CORE_DEPTH)/coreconf/AIX.mk
-
-OS_CFLAGS += -DAIX4_2
-DSO_LDOPTS = -brtl -bM:SRE -bnoentry
-MKSHLIB = $(LD) $(DSO_LDOPTS) -L/usr/lpp/xlC/lib -lc -lm
-
-OS_LIBS += -L/usr/lpp/xlC/lib -lc -lm
-ifdef MAPFILE
-DSO_LDOPTS += -bexport:$(MAPFILE)
-else
-DSO_LDOPTS += -bexpall
-endif
-
-
diff --git a/security/coreconf/AIX4.3.mk b/security/coreconf/AIX4.3.mk
deleted file mode 100644
index c3788c15d..000000000
--- a/security/coreconf/AIX4.3.mk
+++ /dev/null
@@ -1,55 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-# Config stuff for AIX4.3
-#
-
-include $(CORE_DEPTH)/coreconf/AIX.mk
-
-
-ifeq ($(USE_64), 1)
-# Next line replaced by generic name handling in arch.mk
-# COMPILER_TAG = _64
- OS_CFLAGS += -DAIX_64BIT
- OBJECT_MODE=64
- export OBJECT_MODE
-endif
-OS_CFLAGS += -DAIX4_3
-DSO_LDOPTS = -brtl -bM:SRE -bnoentry
-MKSHLIB = $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
-
-OS_LIBS += -blibpath:/usr/lib:/lib -lc -lm
-ifdef MAPFILE
-DSO_LDOPTS += -bexport:$(MAPFILE)
-else
-DSO_LDOPTS += -bexpall
-endif
diff --git a/security/coreconf/AIX5.1.mk b/security/coreconf/AIX5.1.mk
deleted file mode 100644
index 1d88c32e5..000000000
--- a/security/coreconf/AIX5.1.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-# Config stuff for AIX5.1
-#
-
-include $(CORE_DEPTH)/coreconf/AIX.mk
-
-
-ifeq ($(USE_64), 1)
-# Next line replaced by generic name handling in arch.mk
-# COMPILER_TAG = _64
- OS_CFLAGS += -DAIX_64BIT
- OBJECT_MODE=64
- export OBJECT_MODE
-endif
-DSO_LDOPTS = -brtl -bM:SRE -bnoentry
-MKSHLIB = $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
-
-OS_LIBS += -blibpath:/usr/lib:/lib -lc -lm
-ifdef MAPFILE
-DSO_LDOPTS += -bexport:$(MAPFILE)
-else
-DSO_LDOPTS += -bexpall
-endif
diff --git a/security/coreconf/AIX5.2.mk b/security/coreconf/AIX5.2.mk
deleted file mode 100644
index 319569c52..000000000
--- a/security/coreconf/AIX5.2.mk
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-# Config stuff for AIX5.2
-#
-
-include $(CORE_DEPTH)/coreconf/AIX.mk
-
-
-ifeq ($(USE_64), 1)
-# Next line replaced by generic name handling in arch.mk
-# COMPILER_TAG = _64
- OS_CFLAGS += -DAIX_64BIT
- OBJECT_MODE=64
- export OBJECT_MODE
-endif
-DSO_LDOPTS = -brtl -bM:SRE -bnoentry
-MKSHLIB = $(LD) $(DSO_LDOPTS) -blibpath:/usr/lib:/lib -lc -lm
-
-OS_LIBS += -blibpath:/usr/lib:/lib -lc -lm
-ifdef MAPFILE
-DSO_LDOPTS += -bexport:$(MAPFILE)
-else
-DSO_LDOPTS += -bexpall
-endif
diff --git a/security/coreconf/Linux.mk b/security/coreconf/Linux.mk
index 13f2f7715..6aab35b12 100644
--- a/security/coreconf/Linux.mk
+++ b/security/coreconf/Linux.mk
@@ -66,6 +66,10 @@ ifeq ($(OS_TEST),ia64)
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
CPU_ARCH = ia64
else
+ifeq ($(OS_TEST),x86_64)
+ OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
+ CPU_ARCH = x86_64
+else
ifeq ($(OS_TEST),sparc)
OS_REL_CFLAGS = -DLINUX1_2 -D_XOPEN_SOURCE
CPU_ARCH = sparc
@@ -112,6 +116,7 @@ endif
endif
endif
endif
+endif
LIBC_TAG = _glibc
diff --git a/security/coreconf/OS2.mk b/security/coreconf/OS2.mk
index a8eed088f..5b3b51d0b 100644
--- a/security/coreconf/OS2.mk
+++ b/security/coreconf/OS2.mk
@@ -54,7 +54,8 @@ LIB_PREFIX = $(NULL)
# Override suffix in suffix.mk
LIB_SUFFIX = lib
-DLL_SUFFIX = dll
+# the DLL_SUFFIX must be uppercase for FIPS mode to work. bugzilla 240784
+DLL_SUFFIX = DLL
PROG_SUFFIX = .exe
diff --git a/security/coreconf/SunOS5.10_i86pc.mk b/security/coreconf/SunOS5.10_i86pc.mk
index 9205e6448..39bd787d1 100755
--- a/security/coreconf/SunOS5.10_i86pc.mk
+++ b/security/coreconf/SunOS5.10_i86pc.mk
@@ -37,9 +37,12 @@ SOL_CFLAGS = -D_SVID_GETTOD
include $(CORE_DEPTH)/coreconf/SunOS5.mk
-CPU_ARCH = x86
-ARCHFLAG =
-OS_DEFINES += -Di386
+ifeq ($(USE_64),1)
+ CPU_ARCH = x86_64
+else
+ CPU_ARCH = x86
+ OS_DEFINES += -Di386
+endif
ifeq ($(OS_RELEASE),5.10_i86pc)
OS_DEFINES += -DSOLARIS2_10
diff --git a/security/coreconf/SunOS5.mk b/security/coreconf/SunOS5.mk
index ec7d94eda..15ac35363 100644
--- a/security/coreconf/SunOS5.mk
+++ b/security/coreconf/SunOS5.mk
@@ -53,22 +53,28 @@ endif
ifeq ($(USE_64), 1)
ifdef NS_USE_GCC
- ARCHFLAG= UNKNOWN
+ ARCHFLAG=-m64
else
- ARCHFLAG=-xarch=v9
+ ifeq ($(OS_TEST),i86pc)
+ ARCHFLAG=-xarch=amd64
+ else
+ ARCHFLAG=-xarch=v9
+ endif
endif
else
- ifdef NS_USE_GCC
- ifdef USE_HYBRID
- ARCHFLAG=-mcpu=v9 -Wa,-xarch=v8plus
+ ifneq ($(OS_TEST),i86pc)
+ ifdef NS_USE_GCC
+ ifdef USE_HYBRID
+ ARCHFLAG=-mcpu=v9 -Wa,-xarch=v8plus
+ else
+ ARCHFLAG=-mcpu=v8
+ endif
else
- ARCHFLAG=-mcpu=v8
- endif
- else
- ifdef USE_HYBRID
- ARCHFLAG=-xarch=v8plus
- else
- ARCHFLAG=-xarch=v8
+ ifdef USE_HYBRID
+ ARCHFLAG=-xarch=v8plus
+ else
+ ARCHFLAG=-xarch=v8
+ endif
endif
endif
endif
@@ -104,6 +110,9 @@ ifdef NS_USE_GCC
OS_CFLAGS += -MDupdate $(DEPENDENCIES)
endif
OS_CFLAGS += $(ARCHFLAG)
+ ifdef BUILD_OPT
+ OPTIMIZER = -O2
+ endif
else
CC = cc
CCC = CC
@@ -157,10 +166,17 @@ PROCESS_MAP_FILE = grep -v ';-' $(LIBRARY_NAME).def | \
# -G: produce a shared object
# -z defs: no unresolved symbols allowed
ifdef NS_USE_GCC
+ifeq ($(USE_64), 1)
+ DSO_LDOPTS += -m64
+endif
DSO_LDOPTS += -shared -h $(notdir $@)
else
ifeq ($(USE_64), 1)
- DSO_LDOPTS += -xarch=v9
+ ifeq ($(OS_TEST),i86pc)
+ DSO_LDOPTS +=-xarch=amd64
+ else
+ DSO_LDOPTS +=-xarch=v9
+ endif
endif
DSO_LDOPTS += -G -h $(notdir $@)
endif
diff --git a/security/coreconf/WIN32.mk b/security/coreconf/WIN32.mk
index d275300b2..18a027354 100644
--- a/security/coreconf/WIN32.mk
+++ b/security/coreconf/WIN32.mk
@@ -116,7 +116,12 @@ else # !NS_USE_GCC
#
ifdef MOZ_PROFILE
OPTIMIZER += -Z7
- DLLFLAGS += -DEBUG -DEBUGTYPE:CV
+ endif
+ ifdef MOZ_DEBUG_SYMBOLS
+ OPTIMIZER += -Zi
+ endif
+ ifneq (,$(MOZ_PROFILE)$(MOZ_DEBUG_SYMBOLS))
+ DLLFLAGS += -DEBUG -OPT:REF
endif
else
#
@@ -135,9 +140,9 @@ else # !NS_USE_GCC
USERNAME := $(subst $(SPACE),_,$(USERNAME))
USERNAME := $(subst -,_,$(USERNAME))
DEFINES += -DDEBUG -D_DEBUG -UNDEBUG -DDEBUG_$(USERNAME)
- DLLFLAGS += -DEBUG -DEBUGTYPE:CV -OUT:"$@"
+ DLLFLAGS += -DEBUG -OUT:"$@"
# Purify requires /FIXED:NO when linking EXEs.
- LDFLAGS += -DEBUG -DEBUGTYPE:CV -PDB:NONE /FIXED:NO
+ LDFLAGS += -DEBUG -PDB:NONE /FIXED:NO
endif
endif # NS_USE_GCC
diff --git a/security/coreconf/WIN954.0.mk b/security/coreconf/WIN954.0.mk
index e710f6e2e..13aa6519c 100644
--- a/security/coreconf/WIN954.0.mk
+++ b/security/coreconf/WIN954.0.mk
@@ -58,6 +58,9 @@ else
endif
ifndef NS_USE_GCC
-OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
+ifndef MOZ_DEBUG_SYMBOLS
+ OS_DLLFLAGS += -PDB:NONE
+endif
endif
DEFINES += -DWIN95
diff --git a/security/coreconf/WINCE3.0.mk b/security/coreconf/WINCE3.0.mk
index ddf7a4c7b..375cb4a5a 100644
--- a/security/coreconf/WINCE3.0.mk
+++ b/security/coreconf/WINCE3.0.mk
@@ -65,7 +65,7 @@ OS_CFLAGS += -W3 -nologo
OS_DLLFLAGS += -DLL
-LINKFLAGS = -nologo -PDB:NONE -subsystem:windowsce,3.00 \
+LINKFLAGS = -nologo -subsystem:windowsce,3.00 \
-nodefaultlib:libc.lib \
-nodefaultlib:libcd.lib \
-nodefaultlib:libcmt.lib \
@@ -75,6 +75,10 @@ LINKFLAGS = -nologo -PDB:NONE -subsystem:windowsce,3.00 \
-nodefaultlib:oldnames.lib \
$(NULL)
+ifndef MOZ_DEBUG_SYMBOLS
+ LINKFLAGS += -PDB:NONE
+endif
+
LINK += $(LINKFLAGS)
LDFLAGS += $(LINKFLAGS)
diff --git a/security/coreconf/WINNT3.51.mk b/security/coreconf/WINNT3.51.mk
index b422b2b56..42a268ed4 100644
--- a/security/coreconf/WINNT3.51.mk
+++ b/security/coreconf/WINNT3.51.mk
@@ -55,8 +55,11 @@ endif
OS_WIN_CFLAGS += -W3
OS_CFLAGS += -nologo $(OS_WIN_CFLAGS) $(OS_PROC_CFLAGS)
-#OS_DLLFLAGS += -nologo -DLL -PDB:NONE -SUBSYSTEM:WINDOWS
-OS_DLLFLAGS += -nologo -DLL -PDB:NONE -SUBSYSTEM:WINDOWS
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
+ifndef MOZ_DEBUG_SYMBOLS
+ OS_DLLFLAGS += -PDB:NONE
+endif
+
#
# Win NT needs -GT so that fibers can work
#
diff --git a/security/coreconf/WINNT4.0.mk b/security/coreconf/WINNT4.0.mk
index 7fc5a54d6..d15f547ee 100644
--- a/security/coreconf/WINNT4.0.mk
+++ b/security/coreconf/WINNT4.0.mk
@@ -55,7 +55,11 @@ else
endif
endif
-OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
+ifndef MOZ_DEBUG_SYMBOLS
+ OS_DLLFLAGS += -PDB:NONE
+endif
+
#
# Win NT needs -GT so that fibers can work
#
diff --git a/security/coreconf/WINNT5.0.mk b/security/coreconf/WINNT5.0.mk
index 303b98007..81cd668ed 100644
--- a/security/coreconf/WINNT5.0.mk
+++ b/security/coreconf/WINNT5.0.mk
@@ -55,7 +55,11 @@ else
endif
endif
-OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
+ifndef MOZ_DEBUG_SYMBOLS
+ OS_DLLFLAGS += -PDB:NONE
+endif
+
#
# Win NT needs -GT so that fibers can work
#
diff --git a/security/coreconf/WINNT5.1.mk b/security/coreconf/WINNT5.1.mk
index f9c7ed1c8..90b063a29 100644
--- a/security/coreconf/WINNT5.1.mk
+++ b/security/coreconf/WINNT5.1.mk
@@ -55,7 +55,11 @@ else
endif
endif
-OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS -PDB:NONE
+OS_DLLFLAGS += -nologo -DLL -SUBSYSTEM:WINDOWS
+ifndef MOZ_DEBUG_SYMBOLS
+ OS_DLLFLAGS += -PDB:NONE
+endif
+
#
# Win NT needs -GT so that fibers can work
#
diff --git a/security/coreconf/config.mk b/security/coreconf/config.mk
index 1bb3962f4..884915875 100644
--- a/security/coreconf/config.mk
+++ b/security/coreconf/config.mk
@@ -59,7 +59,7 @@ endif
#######################################################################
TARGET_OSES = FreeBSD BSD_OS NetBSD OpenUNIX OS2 QNX Darwin BeOS OpenBSD \
- OpenVMS
+ OpenVMS AIX
ifeq (,$(filter-out $(TARGET_OSES),$(OS_TARGET)))
include $(CORE_DEPTH)/coreconf/$(OS_TARGET).mk
diff --git a/security/coreconf/nsinstall/Makefile b/security/coreconf/nsinstall/Makefile
index 1bb7d728f..f8eb829de 100644
--- a/security/coreconf/nsinstall/Makefile
+++ b/security/coreconf/nsinstall/Makefile
@@ -52,6 +52,7 @@ ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
PROGRAM =
else
TARGETS = $(PROGRAM) $(PLSRCS:.pl=)
+INSTALL = true
endif
ifdef NATIVE_CC
diff --git a/security/coreconf/rules.mk b/security/coreconf/rules.mk
index ff380d472..1fc34a259 100644
--- a/security/coreconf/rules.mk
+++ b/security/coreconf/rules.mk
@@ -301,7 +301,7 @@ get_objs:
$(LIBRARY): $(OBJS)
@$(MAKE_OBJDIR)
rm -f $@
-ifeq (,$(filter-out WIN%,$(OS_TARGET)))
+ifeq (,$(filter-out _WIN%,$(NS_USE_GCC)_$(OS_TARGET)))
$(AR) $(subst /,\\,$(OBJS))
else
$(AR) $(OBJS)
diff --git a/security/nss/cmd/certcgi/HOWTO.txt b/security/nss/cmd/certcgi/HOWTO.txt
index f02ad32fd..6a6ae03c7 100644
--- a/security/nss/cmd/certcgi/HOWTO.txt
+++ b/security/nss/cmd/certcgi/HOWTO.txt
@@ -78,7 +78,7 @@ Instructions:
- In some web page (e.g. your server's home page), provide an html link to
$DOCROOT/certomatic/index.html. This is where users start to get their
own certs from certomatic.
-- give these files and directories appropriate permissions.
+- Give these files and directories appropriate permissions.
- Create directories $CGIBIN/certomatic and $CGIBIN/certomatic/bin
make sure that $CGIBIN/certomatic is writable by "nobody"
@@ -87,7 +87,7 @@ Instructions:
certutil -N -d $CGIBIN/certomatic
-- when certutil prompts you for the password, enter the word foo
+- When certutil prompts you for the password, enter the word foo
because that is compiled into the certcgi program.
- Create the new Root CA cert with this command
@@ -99,7 +99,7 @@ Instructions:
(adjust the -g, -m and -v parameters to taste. -s and -x must be as
shown.)
-- dump out the new root CA cert in base64 encoding:
+- Dump out the new root CA cert in base64 encoding:
certutil -d $CGIBIN/certomatic -L -n "Cert-O-Matic II" -a > \
$CGIBIN/certomatic/root.cacert
@@ -156,7 +156,7 @@ Known bugs:
they didn't all have to be called "Cert-O-Matic II", but that string is
presently hard coded into certcgi.c.
-2. the html files in this directory contain numerous extraneous <FORM> tags
+2. The html files in this directory contain numerous extraneous <FORM> tags
which appear to use the post method and have action URLS that are never
actually used. burp.cgi and echoform.cgi are never actually used. This
should be cleaned up.
diff --git a/security/nss/cmd/certutil/certutil.c b/security/nss/cmd/certutil/certutil.c
index e52f82a38..2fae170e1 100644
--- a/security/nss/cmd/certutil/certutil.c
+++ b/security/nss/cmd/certutil/certutil.c
@@ -2952,6 +2952,7 @@ secuCommandFlag certutil_options[] =
}
}
+ /* -A -E or -S Add the cert to the DB */
if (certutil.commands[cmd_CreateAndAddCert].activated ||
certutil.commands[cmd_AddCert].activated ||
certutil.commands[cmd_AddEmailCert].activated) {
diff --git a/security/nss/cmd/crlutil/crlutil.c b/security/nss/cmd/crlutil/crlutil.c
index d41dadde7..89d6676b8 100644
--- a/security/nss/cmd/crlutil/crlutil.c
+++ b/security/nss/cmd/crlutil/crlutil.c
@@ -144,6 +144,7 @@ static void ListCRLNames (CERTCertDBHandle *certHandle, int crlType, PRBool dele
if (acrl)
{
SEC_DeletePermCRL(acrl);
+ SEC_DestroyCrl(acrl);
}
}
crlNode = crlNode->next;
@@ -177,6 +178,7 @@ static SECStatus DeleteCRL (CERTCertDBHandle *certHandle, char *name, int type)
return SECFailure;
}
rv = SEC_DeletePermCRL (crl);
+ SEC_DestroyCrl(crl);
if (rv != SECSuccess) {
SECU_PrintError
(progName, "fail to delete the issuer %s's CRL from the perm database (reason: %s)",
diff --git a/security/nss/cmd/lib/SECerrs.h b/security/nss/cmd/lib/SECerrs.h
index 218d43be1..5fdc7fa51 100644
--- a/security/nss/cmd/lib/SECerrs.h
+++ b/security/nss/cmd/lib/SECerrs.h
@@ -1,35 +1,38 @@
-/*
- * The contents of this file are subject to the Mozilla Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
* The Original Code is the Netscape security libraries.
- *
- * The Initial Developer of the Original Code is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1994-2000 Netscape Communications Corporation. All
- * Rights Reserved.
- *
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1994-2000
+ * the Initial Developer. All Rights Reserved.
+ *
* Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License Version 2 or later (the
- * "GPL"), in which case the provisions of the GPL are applicable
- * instead of those above. If you wish to allow use of your
- * version of this file only under the terms of the GPL and not to
- * allow others to use your version of this file under the MPL,
- * indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by
- * the GPL. If you do not delete the provisions above, a recipient
- * may use your version of this file under either the MPL or the
- * GPL.
- */
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
/* General security error codes */
/* Caller must #include "secerr.h" */
@@ -477,3 +480,27 @@ ER3(SEC_ERROR_UNRECOGNIZED_OID, (SEC_ERROR_BASE + 143),
ER3(SEC_ERROR_OCSP_INVALID_SIGNING_CERT, (SEC_ERROR_BASE + 144),
"Invalid OCSP signing certificate in OCSP response.")
+
+ER3(SEC_ERROR_REVOKED_CERTIFICATE_CRL, (SEC_ERROR_BASE + 145),
+"Certificate is revoked in issuer's certificate revocation list.")
+
+ER3(SEC_ERROR_REVOKED_CERTIFICATE_OCSP, (SEC_ERROR_BASE + 146),
+"Issuer's OCSP responder reports certificate is revoked.")
+
+ER3(SEC_ERROR_CRL_INVALID_VERSION, (SEC_ERROR_BASE + 147),
+"Issuer's Certificate Revocation List has an unknown version number.")
+
+ER3(SEC_ERROR_CRL_V1_CRITICAL_EXTENSION, (SEC_ERROR_BASE + 148),
+"Issuer's V1 Certificate Revocation List has a critical extension.")
+
+ER3(SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION, (SEC_ERROR_BASE + 149),
+"Issuer's V2 Certificate Revocation List has an unknown critical extension.")
+
+ER3(SEC_ERROR_UNKNOWN_OBJECT_TYPE, (SEC_ERROR_BASE + 150),
+"Unknown object type specified.")
+
+ER3(SEC_ERROR_INCOMPATIBLE_PKCS11, (SEC_ERROR_BASE + 151),
+"PKCS #11 driver violates the spec in an incompatible way.")
+
+ER3(SEC_ERROR_NO_EVENT, (SEC_ERROR_BASE + 152),
+"No new slot event is available at this time.")
diff --git a/security/nss/cmd/lib/secutil.c b/security/nss/cmd/lib/secutil.c
index c21e8f56e..033ed98bc 100644
--- a/security/nss/cmd/lib/secutil.c
+++ b/security/nss/cmd/lib/secutil.c
@@ -632,10 +632,10 @@ SECStatus
SECU_ReadDERFromFile(SECItem *der, PRFileDesc *inFile, PRBool ascii)
{
SECStatus rv;
- char *asc, *body, *trailer;
if (ascii) {
/* First convert ascii to binary */
SECItem filedata;
+ char *asc, *body;
/* Read in ascii data */
rv = SECU_FileToItem(&filedata, inFile);
@@ -647,8 +647,13 @@ SECU_ReadDERFromFile(SECItem *der, PRFileDesc *inFile, PRBool ascii)
/* check for headers and trailers and remove them */
if ((body = strstr(asc, "-----BEGIN")) != NULL) {
- body = PORT_Strchr(body, '\n') + 1;
- trailer = strstr(body, "-----END");
+ char *trailer = NULL;
+ asc = body;
+ body = PORT_Strchr(body, '\n');
+ if (!body)
+ body = PORT_Strchr(asc, '\r'); /* maybe this is a MAC file */
+ if (body)
+ trailer = strstr(++body, "-----END");
if (trailer != NULL) {
*trailer = '\0';
} else {
@@ -1505,7 +1510,7 @@ secu_PrintPolicyInfo(FILE *out,CERTPolicyInfo *policyInfo,char *msg,int level)
policyQualifiers = policyInfo->policyQualifiers;
SECU_PrintObjectID(out, &policyInfo->policyID , "Policy Name", level);
- while (*policyQualifiers != NULL) {
+ while (policyQualifiers != NULL && *policyQualifiers != NULL) {
secu_PrintPolicyQualifier(out,*policyQualifiers,"",level+1);
policyQualifiers++;
}
@@ -2101,7 +2106,8 @@ SECU_PrintCRLInfo(FILE *out, CERTCrl *crl, char *m, int level)
level + 1);
SECU_PrintName(out, &(crl->name), "Issuer", level + 1);
SECU_PrintTimeChoice(out, &(crl->lastUpdate), "This Update", level + 1);
- SECU_PrintTimeChoice(out, &(crl->nextUpdate), "Next Update", level + 1);
+ if (crl->nextUpdate.data && crl->nextUpdate.len) /* is optional */
+ SECU_PrintTimeChoice(out, &(crl->nextUpdate), "Next Update", level + 1);
if (crl->entries != NULL) {
iv = 0;
diff --git a/security/nss/cmd/pk11util/Makefile b/security/nss/cmd/pk11util/Makefile
deleted file mode 100644
index 8650a607d..000000000
--- a/security/nss/cmd/pk11util/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-#! gmake
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-
-#######################################################################
-# (1) Include initial platform-independent assignments (MANDATORY). #
-#######################################################################
-
-include manifest.mn
-
-#######################################################################
-# (2) Include "global" configuration information. (OPTIONAL) #
-#######################################################################
-
-include $(CORE_DEPTH)/coreconf/config.mk
-
-#######################################################################
-# (3) Include "component" configuration information. (OPTIONAL) #
-#######################################################################
-
-#######################################################################
-# (4) Include "local" platform-dependent assignments (OPTIONAL). #
-#######################################################################
-
-include ../platlibs.mk
-
-
-#######################################################################
-# (5) Execute "global" rules. (OPTIONAL) #
-#######################################################################
-
-include $(CORE_DEPTH)/coreconf/rules.mk
-
-#######################################################################
-# (6) Execute "component" rules. (OPTIONAL) #
-#######################################################################
-
-
-
-#######################################################################
-# (7) Execute "local" rules. (OPTIONAL). #
-#######################################################################
-
-
-include ../platrules.mk
-
diff --git a/security/nss/cmd/pk11util/manifest.mn b/security/nss/cmd/pk11util/manifest.mn
deleted file mode 100644
index c2e6fa8b9..000000000
--- a/security/nss/cmd/pk11util/manifest.mn
+++ /dev/null
@@ -1,51 +0,0 @@
-#
-# The contents of this file are subject to the Mozilla Public
-# License Version 1.1 (the "License"); you may not use this file
-# except in compliance with the License. You may obtain a copy of
-# the License at http://www.mozilla.org/MPL/
-#
-# Software distributed under the License is distributed on an "AS
-# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-# implied. See the License for the specific language governing
-# rights and limitations under the License.
-#
-# The Original Code is the Netscape security libraries.
-#
-# The Initial Developer of the Original Code is Netscape
-# Communications Corporation. Portions created by Netscape are
-# Copyright (C) 1994-2000 Netscape Communications Corporation. All
-# Rights Reserved.
-#
-# Contributor(s):
-#
-# Alternatively, the contents of this file may be used under the
-# terms of the GNU General Public License Version 2 or later (the
-# "GPL"), in which case the provisions of the GPL are applicable
-# instead of those above. If you wish to allow use of your
-# version of this file only under the terms of the GPL and not to
-# allow others to use your version of this file under the MPL,
-# indicate your decision by deleting the provisions above and
-# replace them with the notice and other provisions required by
-# the GPL. If you do not delete the provisions above, a recipient
-# may use your version of this file under either the MPL or the
-# GPL.
-#
-
-CORE_DEPTH = ../../..
-
-DEFINES += -DNSPR20
-
-# MODULE public and private header directories are implicitly REQUIRED.
-MODULE = nss
-
-CSRCS = pk11util.c pk11table.c
-#CSRCS = symkeytest.c
-
-# The MODULE is always implicitly required.
-# Listing it here in REQUIRES makes it appear twice in the cc command line.
-REQUIRES = seccmd
-
-PROGRAM = pk11util
-#PROGRAM = symkeytest
-
-#USE_STATIC_LIBS = 1
diff --git a/security/nss/cmd/pk11util/pk11table.c b/security/nss/cmd/pk11util/pk11table.c
deleted file mode 100644
index a77ab2c32..000000000
--- a/security/nss/cmd/pk11util/pk11table.c
+++ /dev/null
@@ -1,818 +0,0 @@
-#include <pkcs11.h>
-#include "pk11util.h"
-
-const char *_valueString[] = {
- "None",
- "Variable",
- "CK_ULONG",
- "Data",
- "UTF8",
- "CK_INFO",
- "CK_SLOT_INFO",
- "CK_TOKEN_INFO",
- "CK_SESSION_INFO",
- "CK_ATTRIBUTE",
- "CK_MECHANISM",
- "CK_MECHANISM_INFO",
- "CK_C_INITIALIZE_ARGS",
- "CK_FUNCTION_LIST"
-};
-
-const char **valueString = &_valueString[0];
-const int valueCount = sizeof(_valueString)/sizeof(_valueString[0]);
-
-const char *_constTypeString[] = {
- "None",
- "Bool",
- "InfoFlags",
- "SlotFlags",
- "TokenFlags",
- "SessionFlags",
- "MechanismFlags",
- "InitializeFlags",
- "Users",
- "SessionState",
- "Object",
- "Hardware",
- "KeyType",
- "CertificateType",
- "Attribute",
- "Mechanism",
- "Result",
- "Trust"
-};
-
-const char **constTypeString = &_constTypeString[0];
-const int constTypeCount = sizeof(_constTypeString)/sizeof(_constTypeString[0]);
-
-#define mkEntry(x,t) { #x, x, Const##t, ConstNone }
-#define mkEntry2(x,t,t2) { #x, x, Const##t, Const##t2 }
-
-const Constant _consts[] = {
- mkEntry(CK_FALSE, Bool),
- mkEntry(CK_TRUE, Bool),
-
- mkEntry(CKF_TOKEN_PRESENT, SlotFlags),
- mkEntry(CKF_REMOVABLE_DEVICE, SlotFlags),
- mkEntry(CKF_HW_SLOT, SlotFlags),
-
- mkEntry(CKF_RNG, TokenFlags),
- mkEntry(CKF_WRITE_PROTECTED, TokenFlags),
- mkEntry(CKF_LOGIN_REQUIRED, TokenFlags),
- mkEntry(CKF_USER_PIN_INITIALIZED, TokenFlags),
- mkEntry(CKF_RESTORE_KEY_NOT_NEEDED, TokenFlags),
- mkEntry(CKF_CLOCK_ON_TOKEN, TokenFlags),
- mkEntry(CKF_PROTECTED_AUTHENTICATION_PATH, TokenFlags),
- mkEntry(CKF_DUAL_CRYPTO_OPERATIONS, TokenFlags),
- mkEntry(CKF_TOKEN_INITIALIZED, TokenFlags),
- mkEntry(CKF_SECONDARY_AUTHENTICATION, TokenFlags),
- mkEntry(CKF_USER_PIN_COUNT_LOW, TokenFlags),
- mkEntry(CKF_USER_PIN_FINAL_TRY, TokenFlags),
- mkEntry(CKF_USER_PIN_LOCKED, TokenFlags),
- mkEntry(CKF_USER_PIN_TO_BE_CHANGED, TokenFlags),
- mkEntry(CKF_SO_PIN_COUNT_LOW, TokenFlags),
- mkEntry(CKF_SO_PIN_FINAL_TRY, TokenFlags),
- mkEntry(CKF_SO_PIN_LOCKED, TokenFlags),
- mkEntry(CKF_SO_PIN_TO_BE_CHANGED, TokenFlags),
-
- mkEntry(CKF_RW_SESSION, SessionFlags),
- mkEntry(CKF_SERIAL_SESSION, SessionFlags),
-
- mkEntry(CKF_HW, MechanismFlags),
- mkEntry(CKF_ENCRYPT, MechanismFlags),
- mkEntry(CKF_DECRYPT, MechanismFlags),
- mkEntry(CKF_DIGEST, MechanismFlags),
- mkEntry(CKF_SIGN, MechanismFlags),
- mkEntry(CKF_SIGN_RECOVER, MechanismFlags),
- mkEntry(CKF_VERIFY, MechanismFlags),
- mkEntry(CKF_VERIFY_RECOVER, MechanismFlags),
- mkEntry(CKF_GENERATE, MechanismFlags),
- mkEntry(CKF_GENERATE_KEY_PAIR, MechanismFlags),
- mkEntry(CKF_WRAP, MechanismFlags),
- mkEntry(CKF_UNWRAP, MechanismFlags),
- mkEntry(CKF_DERIVE, MechanismFlags),
- mkEntry(CKF_EC_FP, MechanismFlags),
- mkEntry(CKF_EC_F_2M, MechanismFlags),
- mkEntry(CKF_EC_ECPARAMETERS, MechanismFlags),
- mkEntry(CKF_EC_NAMEDCURVE, MechanismFlags),
- mkEntry(CKF_EC_UNCOMPRESS, MechanismFlags),
- mkEntry(CKF_EC_COMPRESS, MechanismFlags),
-
- mkEntry(CKF_LIBRARY_CANT_CREATE_OS_THREADS, InitializeFlags),
- mkEntry(CKF_OS_LOCKING_OK, InitializeFlags),
-
- mkEntry(CKU_SO, Users),
- mkEntry(CKU_USER, Users),
-
- mkEntry(CKS_RO_PUBLIC_SESSION, SessionState),
- mkEntry(CKS_RO_USER_FUNCTIONS, SessionState),
- mkEntry(CKS_RW_PUBLIC_SESSION, SessionState),
- mkEntry(CKS_RW_USER_FUNCTIONS, SessionState),
- mkEntry(CKS_RW_SO_FUNCTIONS, SessionState),
-
- mkEntry(CKO_DATA, Object),
- mkEntry(CKO_CERTIFICATE, Object),
- mkEntry(CKO_PUBLIC_KEY, Object),
- mkEntry(CKO_PRIVATE_KEY, Object),
- mkEntry(CKO_SECRET_KEY, Object),
- mkEntry(CKO_HW_FEATURE, Object),
- mkEntry(CKO_DOMAIN_PARAMETERS, Object),
- mkEntry(CKO_KG_PARAMETERS, Object),
- mkEntry(CKO_NETSCAPE_CRL, Object),
- mkEntry(CKO_NETSCAPE_SMIME, Object),
- mkEntry(CKO_NETSCAPE_TRUST, Object),
- mkEntry(CKO_NETSCAPE_BUILTIN_ROOT_LIST, Object),
-
- mkEntry(CKH_MONOTONIC_COUNTER, Hardware),
- mkEntry(CKH_CLOCK, Hardware),
-
- mkEntry(CKK_RSA, KeyType),
- mkEntry(CKK_DSA, KeyType),
- mkEntry(CKK_DH, KeyType),
- mkEntry(CKK_ECDSA, KeyType),
- mkEntry(CKK_EC, KeyType),
- mkEntry(CKK_X9_42_DH, KeyType),
- mkEntry(CKK_KEA, KeyType),
- mkEntry(CKK_GENERIC_SECRET, KeyType),
- mkEntry(CKK_RC2, KeyType),
- mkEntry(CKK_RC4, KeyType),
- mkEntry(CKK_DES, KeyType),
- mkEntry(CKK_DES2, KeyType),
- mkEntry(CKK_DES3, KeyType),
- mkEntry(CKK_CAST, KeyType),
- mkEntry(CKK_CAST3, KeyType),
- mkEntry(CKK_CAST5, KeyType),
- mkEntry(CKK_CAST128, KeyType),
- mkEntry(CKK_RC5, KeyType),
- mkEntry(CKK_IDEA, KeyType),
- mkEntry(CKK_SKIPJACK, KeyType),
- mkEntry(CKK_BATON, KeyType),
- mkEntry(CKK_JUNIPER, KeyType),
- mkEntry(CKK_CDMF, KeyType),
- mkEntry(CKK_AES, KeyType),
- mkEntry(CKK_NETSCAPE_PKCS8, KeyType),
-
- mkEntry(CKC_X_509, CertType),
- mkEntry(CKC_X_509_ATTR_CERT, CertType),
-
- mkEntry2(CKA_CLASS, Attribute, Object),
- mkEntry2(CKA_TOKEN, Attribute, Bool),
- mkEntry2(CKA_PRIVATE, Attribute, Bool),
- mkEntry2(CKA_LABEL, Attribute, None),
- mkEntry2(CKA_APPLICATION, Attribute, None),
- mkEntry2(CKA_VALUE, Attribute, None),
- mkEntry2(CKA_OBJECT_ID, Attribute, None),
- mkEntry2(CKA_CERTIFICATE_TYPE, Attribute, CertType),
- mkEntry2(CKA_ISSUER, Attribute, None),
- mkEntry2(CKA_SERIAL_NUMBER, Attribute, None),
- mkEntry2(CKA_AC_ISSUER, Attribute, None),
- mkEntry2(CKA_OWNER, Attribute, None),
- mkEntry2(CKA_ATTR_TYPES, Attribute, None),
- mkEntry2(CKA_TRUSTED, Attribute, Bool),
- mkEntry2(CKA_KEY_TYPE, Attribute, KeyType),
- mkEntry2(CKA_SUBJECT, Attribute, None),
- mkEntry2(CKA_ID, Attribute, None),
- mkEntry2(CKA_SENSITIVE, Attribute, Bool),
- mkEntry2(CKA_ENCRYPT, Attribute, Bool),
- mkEntry2(CKA_DECRYPT, Attribute, Bool),
- mkEntry2(CKA_WRAP, Attribute, Bool),
- mkEntry2(CKA_UNWRAP, Attribute, Bool),
- mkEntry2(CKA_SIGN, Attribute, Bool),
- mkEntry2(CKA_SIGN_RECOVER, Attribute, Bool),
- mkEntry2(CKA_VERIFY, Attribute, Bool),
- mkEntry2(CKA_VERIFY_RECOVER, Attribute, Bool),
- mkEntry2(CKA_DERIVE, Attribute, Bool),
- mkEntry2(CKA_START_DATE, Attribute, None),
- mkEntry2(CKA_END_DATE, Attribute, None),
- mkEntry2(CKA_MODULUS, Attribute, None),
- mkEntry2(CKA_MODULUS_BITS, Attribute, None),
- mkEntry2(CKA_PUBLIC_EXPONENT, Attribute, None),
- mkEntry2(CKA_PRIVATE_EXPONENT, Attribute, None),
- mkEntry2(CKA_PRIME_1, Attribute, None),
- mkEntry2(CKA_PRIME_2, Attribute, None),
- mkEntry2(CKA_EXPONENT_1, Attribute, None),
- mkEntry2(CKA_EXPONENT_2, Attribute, None),
- mkEntry2(CKA_COEFFICIENT, Attribute, None),
- mkEntry2(CKA_PRIME, Attribute, None),
- mkEntry2(CKA_SUBPRIME, Attribute, None),
- mkEntry2(CKA_BASE, Attribute, None),
- mkEntry2(CKA_PRIME_BITS, Attribute, None),
- mkEntry2(CKA_SUB_PRIME_BITS, Attribute, None),
- mkEntry2(CKA_VALUE_BITS, Attribute, None),
- mkEntry2(CKA_VALUE_LEN, Attribute, None),
- mkEntry2(CKA_EXTRACTABLE, Attribute, Bool),
- mkEntry2(CKA_LOCAL, Attribute, Bool),
- mkEntry2(CKA_NEVER_EXTRACTABLE, Attribute, Bool),
- mkEntry2(CKA_ALWAYS_SENSITIVE, Attribute, Bool),
- mkEntry2(CKA_KEY_GEN_MECHANISM, Attribute, Mechanism),
- mkEntry2(CKA_MODIFIABLE, Attribute, Bool),
- mkEntry2(CKA_ECDSA_PARAMS, Attribute, None),
- mkEntry2(CKA_EC_PARAMS, Attribute, None),
- mkEntry2(CKA_EC_POINT, Attribute, None),
- mkEntry2(CKA_SECONDARY_AUTH, Attribute, None),
- mkEntry2(CKA_AUTH_PIN_FLAGS, Attribute, None),
- mkEntry2(CKA_HW_FEATURE_TYPE, Attribute, Hardware),
- mkEntry2(CKA_RESET_ON_INIT, Attribute, Bool),
- mkEntry2(CKA_HAS_RESET, Attribute, Bool),
- mkEntry2(CKA_NETSCAPE_URL, Attribute, None),
- mkEntry2(CKA_NETSCAPE_EMAIL, Attribute, None),
- mkEntry2(CKA_NETSCAPE_SMIME_INFO, Attribute, None),
- mkEntry2(CKA_NETSCAPE_SMIME_TIMESTAMP, Attribute, None),
- mkEntry2(CKA_NETSCAPE_PKCS8_SALT, Attribute, None),
- mkEntry2(CKA_NETSCAPE_PASSWORD_CHECK, Attribute, None),
- mkEntry2(CKA_NETSCAPE_EXPIRES, Attribute, None),
- mkEntry2(CKA_NETSCAPE_KRL, Attribute, None),
- mkEntry2(CKA_NETSCAPE_PQG_COUNTER, Attribute, None),
- mkEntry2(CKA_NETSCAPE_PQG_SEED, Attribute, None),
- mkEntry2(CKA_NETSCAPE_PQG_H, Attribute, None),
- mkEntry2(CKA_NETSCAPE_PQG_SEED_BITS, Attribute, None),
- mkEntry2(CKA_TRUST_DIGITAL_SIGNATURE, Attribute, Trust),
- mkEntry2(CKA_TRUST_NON_REPUDIATION, Attribute, Trust),
- mkEntry2(CKA_TRUST_KEY_ENCIPHERMENT, Attribute, Trust),
- mkEntry2(CKA_TRUST_DATA_ENCIPHERMENT, Attribute, Trust),
- mkEntry2(CKA_TRUST_KEY_AGREEMENT, Attribute, Trust),
- mkEntry2(CKA_TRUST_KEY_CERT_SIGN, Attribute, Trust),
- mkEntry2(CKA_TRUST_CRL_SIGN, Attribute, Trust),
- mkEntry2(CKA_TRUST_SERVER_AUTH, Attribute, Trust),
- mkEntry2(CKA_TRUST_CLIENT_AUTH, Attribute, Trust),
- mkEntry2(CKA_TRUST_CODE_SIGNING, Attribute, Trust),
- mkEntry2(CKA_TRUST_EMAIL_PROTECTION, Attribute, Trust),
- mkEntry2(CKA_TRUST_IPSEC_END_SYSTEM, Attribute, Trust),
- mkEntry2(CKA_TRUST_IPSEC_TUNNEL, Attribute, Trust),
- mkEntry2(CKA_TRUST_IPSEC_USER, Attribute, Trust),
- mkEntry2(CKA_TRUST_TIME_STAMPING, Attribute, Trust),
- mkEntry2(CKA_CERT_SHA1_HASH, Attribute, None),
- mkEntry2(CKA_CERT_MD5_HASH, Attribute, None),
- mkEntry2(CKA_NETSCAPE_DB, Attribute, None),
- mkEntry2(CKA_NETSCAPE_TRUST, Attribute, Trust),
-
- mkEntry(CKM_RSA_PKCS_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_RSA_PKCS, Mechanism),
- mkEntry(CKM_RSA_9796, Mechanism),
- mkEntry(CKM_RSA_X_509, Mechanism),
- mkEntry(CKM_MD2_RSA_PKCS, Mechanism),
- mkEntry(CKM_MD5_RSA_PKCS, Mechanism),
- mkEntry(CKM_SHA1_RSA_PKCS, Mechanism),
- mkEntry(CKM_RIPEMD128_RSA_PKCS, Mechanism),
- mkEntry(CKM_RIPEMD160_RSA_PKCS, Mechanism),
- mkEntry(CKM_RSA_PKCS_OAEP, Mechanism),
- mkEntry(CKM_RSA_X9_31_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_RSA_X9_31, Mechanism),
- mkEntry(CKM_SHA1_RSA_X9_31, Mechanism),
- mkEntry(CKM_DSA_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_DSA, Mechanism),
- mkEntry(CKM_DSA_SHA1, Mechanism),
- mkEntry(CKM_DH_PKCS_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_DH_PKCS_DERIVE, Mechanism),
- mkEntry(CKM_X9_42_DH_PKCS_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_X9_42_DH_DERIVE, Mechanism),
- mkEntry(CKM_X9_42_DH_HYBRID_DERIVE, Mechanism),
- mkEntry(CKM_X9_42_MQV_DERIVE, Mechanism),
- mkEntry(CKM_SHA256_RSA_PKCS, Mechanism),
- mkEntry(CKM_SHA384_RSA_PKCS, Mechanism),
- mkEntry(CKM_SHA512_RSA_PKCS, Mechanism),
- mkEntry(CKM_RC2_KEY_GEN, Mechanism),
- mkEntry(CKM_RC2_ECB, Mechanism),
- mkEntry(CKM_RC2_CBC, Mechanism),
- mkEntry(CKM_RC2_MAC, Mechanism),
- mkEntry(CKM_RC2_MAC_GENERAL, Mechanism),
- mkEntry(CKM_RC2_CBC_PAD, Mechanism),
- mkEntry(CKM_RC4_KEY_GEN, Mechanism),
- mkEntry(CKM_RC4, Mechanism),
- mkEntry(CKM_DES_KEY_GEN, Mechanism),
- mkEntry(CKM_DES_ECB, Mechanism),
- mkEntry(CKM_DES_CBC, Mechanism),
- mkEntry(CKM_DES_MAC, Mechanism),
- mkEntry(CKM_DES_MAC_GENERAL, Mechanism),
- mkEntry(CKM_DES_CBC_PAD, Mechanism),
- mkEntry(CKM_DES2_KEY_GEN, Mechanism),
- mkEntry(CKM_DES3_KEY_GEN, Mechanism),
- mkEntry(CKM_DES3_ECB, Mechanism),
- mkEntry(CKM_DES3_CBC, Mechanism),
- mkEntry(CKM_DES3_MAC, Mechanism),
- mkEntry(CKM_DES3_MAC_GENERAL, Mechanism),
- mkEntry(CKM_DES3_CBC_PAD, Mechanism),
- mkEntry(CKM_CDMF_KEY_GEN, Mechanism),
- mkEntry(CKM_CDMF_ECB, Mechanism),
- mkEntry(CKM_CDMF_CBC, Mechanism),
- mkEntry(CKM_CDMF_MAC, Mechanism),
- mkEntry(CKM_CDMF_MAC_GENERAL, Mechanism),
- mkEntry(CKM_CDMF_CBC_PAD, Mechanism),
- mkEntry(CKM_MD2, Mechanism),
- mkEntry(CKM_MD2_HMAC, Mechanism),
- mkEntry(CKM_MD2_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_MD5, Mechanism),
- mkEntry(CKM_MD5_HMAC, Mechanism),
- mkEntry(CKM_MD5_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_SHA_1, Mechanism),
- mkEntry(CKM_SHA_1_HMAC, Mechanism),
- mkEntry(CKM_SHA_1_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_RIPEMD128, Mechanism),
- mkEntry(CKM_RIPEMD128_HMAC, Mechanism),
- mkEntry(CKM_RIPEMD128_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_RIPEMD160, Mechanism),
- mkEntry(CKM_RIPEMD160_HMAC, Mechanism),
- mkEntry(CKM_RIPEMD160_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_SHA256, Mechanism),
- mkEntry(CKM_SHA256_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_SHA256_HMAC, Mechanism),
- mkEntry(CKM_SHA384, Mechanism),
- mkEntry(CKM_SHA384_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_SHA384_HMAC, Mechanism),
- mkEntry(CKM_SHA512, Mechanism),
- mkEntry(CKM_SHA512_HMAC_GENERAL, Mechanism),
- mkEntry(CKM_SHA512_HMAC, Mechanism),
- mkEntry(CKM_CAST_KEY_GEN, Mechanism),
- mkEntry(CKM_CAST_ECB, Mechanism),
- mkEntry(CKM_CAST_CBC, Mechanism),
- mkEntry(CKM_CAST_MAC, Mechanism),
- mkEntry(CKM_CAST_MAC_GENERAL, Mechanism),
- mkEntry(CKM_CAST_CBC_PAD, Mechanism),
- mkEntry(CKM_CAST3_KEY_GEN, Mechanism),
- mkEntry(CKM_CAST3_ECB, Mechanism),
- mkEntry(CKM_CAST3_CBC, Mechanism),
- mkEntry(CKM_CAST3_MAC, Mechanism),
- mkEntry(CKM_CAST3_MAC_GENERAL, Mechanism),
- mkEntry(CKM_CAST3_CBC_PAD, Mechanism),
- mkEntry(CKM_CAST5_KEY_GEN, Mechanism),
- mkEntry(CKM_CAST128_KEY_GEN, Mechanism),
- mkEntry(CKM_CAST5_ECB, Mechanism),
- mkEntry(CKM_CAST128_ECB, Mechanism),
- mkEntry(CKM_CAST5_CBC, Mechanism),
- mkEntry(CKM_CAST128_CBC, Mechanism),
- mkEntry(CKM_CAST5_MAC, Mechanism),
- mkEntry(CKM_CAST128_MAC, Mechanism),
- mkEntry(CKM_CAST5_MAC_GENERAL, Mechanism),
- mkEntry(CKM_CAST128_MAC_GENERAL, Mechanism),
- mkEntry(CKM_CAST5_CBC_PAD, Mechanism),
- mkEntry(CKM_CAST128_CBC_PAD, Mechanism),
- mkEntry(CKM_RC5_KEY_GEN, Mechanism),
- mkEntry(CKM_RC5_ECB, Mechanism),
- mkEntry(CKM_RC5_CBC, Mechanism),
- mkEntry(CKM_RC5_MAC, Mechanism),
- mkEntry(CKM_RC5_MAC_GENERAL, Mechanism),
- mkEntry(CKM_RC5_CBC_PAD, Mechanism),
- mkEntry(CKM_IDEA_KEY_GEN, Mechanism),
- mkEntry(CKM_IDEA_ECB, Mechanism),
- mkEntry(CKM_IDEA_CBC, Mechanism),
- mkEntry(CKM_IDEA_MAC, Mechanism),
- mkEntry(CKM_IDEA_MAC_GENERAL, Mechanism),
- mkEntry(CKM_IDEA_CBC_PAD, Mechanism),
- mkEntry(CKM_GENERIC_SECRET_KEY_GEN, Mechanism),
- mkEntry(CKM_CONCATENATE_BASE_AND_KEY, Mechanism),
- mkEntry(CKM_CONCATENATE_BASE_AND_DATA, Mechanism),
- mkEntry(CKM_CONCATENATE_DATA_AND_BASE, Mechanism),
- mkEntry(CKM_XOR_BASE_AND_DATA, Mechanism),
- mkEntry(CKM_EXTRACT_KEY_FROM_KEY, Mechanism),
- mkEntry(CKM_SSL3_PRE_MASTER_KEY_GEN, Mechanism),
- mkEntry(CKM_SSL3_MASTER_KEY_DERIVE, Mechanism),
- mkEntry(CKM_SSL3_KEY_AND_MAC_DERIVE, Mechanism),
- mkEntry(CKM_SSL3_MASTER_KEY_DERIVE_DH, Mechanism),
- mkEntry(CKM_TLS_PRE_MASTER_KEY_GEN, Mechanism),
- mkEntry(CKM_TLS_MASTER_KEY_DERIVE, Mechanism),
- mkEntry(CKM_TLS_KEY_AND_MAC_DERIVE, Mechanism),
- mkEntry(CKM_TLS_MASTER_KEY_DERIVE_DH, Mechanism),
- mkEntry(CKM_SSL3_MD5_MAC, Mechanism),
- mkEntry(CKM_SSL3_SHA1_MAC, Mechanism),
- mkEntry(CKM_MD5_KEY_DERIVATION, Mechanism),
- mkEntry(CKM_MD2_KEY_DERIVATION, Mechanism),
- mkEntry(CKM_SHA1_KEY_DERIVATION, Mechanism),
- mkEntry(CKM_SHA256_KEY_DERIVATION, Mechanism),
- mkEntry(CKM_SHA384_KEY_DERIVATION, Mechanism),
- mkEntry(CKM_SHA512_KEY_DERIVATION, Mechanism),
- mkEntry(CKM_PBE_MD2_DES_CBC, Mechanism),
- mkEntry(CKM_PBE_MD5_DES_CBC, Mechanism),
- mkEntry(CKM_PBE_MD5_CAST_CBC, Mechanism),
- mkEntry(CKM_PBE_MD5_CAST3_CBC, Mechanism),
- mkEntry(CKM_PBE_MD5_CAST5_CBC, Mechanism),
- mkEntry(CKM_PBE_MD5_CAST128_CBC, Mechanism),
- mkEntry(CKM_PBE_SHA1_CAST5_CBC, Mechanism),
- mkEntry(CKM_PBE_SHA1_CAST128_CBC, Mechanism),
- mkEntry(CKM_PBE_SHA1_RC4_128, Mechanism),
- mkEntry(CKM_PBE_SHA1_RC4_40, Mechanism),
- mkEntry(CKM_PBE_SHA1_DES3_EDE_CBC, Mechanism),
- mkEntry(CKM_PBE_SHA1_DES2_EDE_CBC, Mechanism),
- mkEntry(CKM_PBE_SHA1_RC2_128_CBC, Mechanism),
- mkEntry(CKM_PBE_SHA1_RC2_40_CBC, Mechanism),
- mkEntry(CKM_PKCS5_PBKD2, Mechanism),
- mkEntry(CKM_PBA_SHA1_WITH_SHA1_HMAC, Mechanism),
- mkEntry(CKM_KEY_WRAP_LYNKS, Mechanism),
- mkEntry(CKM_KEY_WRAP_SET_OAEP, Mechanism),
- mkEntry(CKM_SKIPJACK_KEY_GEN, Mechanism),
- mkEntry(CKM_SKIPJACK_ECB64, Mechanism),
- mkEntry(CKM_SKIPJACK_CBC64, Mechanism),
- mkEntry(CKM_SKIPJACK_OFB64, Mechanism),
- mkEntry(CKM_SKIPJACK_CFB64, Mechanism),
- mkEntry(CKM_SKIPJACK_CFB32, Mechanism),
- mkEntry(CKM_SKIPJACK_CFB16, Mechanism),
- mkEntry(CKM_SKIPJACK_CFB8, Mechanism),
- mkEntry(CKM_SKIPJACK_WRAP, Mechanism),
- mkEntry(CKM_SKIPJACK_PRIVATE_WRAP, Mechanism),
- mkEntry(CKM_SKIPJACK_RELAYX, Mechanism),
- mkEntry(CKM_KEA_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_KEA_KEY_DERIVE, Mechanism),
- mkEntry(CKM_FORTEZZA_TIMESTAMP, Mechanism),
- mkEntry(CKM_BATON_KEY_GEN, Mechanism),
- mkEntry(CKM_BATON_ECB128, Mechanism),
- mkEntry(CKM_BATON_ECB96, Mechanism),
- mkEntry(CKM_BATON_CBC128, Mechanism),
- mkEntry(CKM_BATON_COUNTER, Mechanism),
- mkEntry(CKM_BATON_SHUFFLE, Mechanism),
- mkEntry(CKM_BATON_WRAP, Mechanism),
- mkEntry(CKM_ECDSA_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_EC_KEY_PAIR_GEN, Mechanism),
- mkEntry(CKM_ECDSA, Mechanism),
- mkEntry(CKM_ECDSA_SHA1, Mechanism),
- mkEntry(CKM_ECDH1_DERIVE, Mechanism),
- mkEntry(CKM_ECDH1_COFACTOR_DERIVE, Mechanism),
- mkEntry(CKM_ECMQV_DERIVE, Mechanism),
- mkEntry(CKM_JUNIPER_KEY_GEN, Mechanism),
- mkEntry(CKM_JUNIPER_ECB128, Mechanism),
- mkEntry(CKM_JUNIPER_CBC128, Mechanism),
- mkEntry(CKM_JUNIPER_COUNTER, Mechanism),
- mkEntry(CKM_JUNIPER_SHUFFLE, Mechanism),
- mkEntry(CKM_JUNIPER_WRAP, Mechanism),
- mkEntry(CKM_FASTHASH, Mechanism),
- mkEntry(CKM_AES_KEY_GEN, Mechanism),
- mkEntry(CKM_AES_ECB, Mechanism),
- mkEntry(CKM_AES_CBC, Mechanism),
- mkEntry(CKM_AES_MAC, Mechanism),
- mkEntry(CKM_AES_MAC_GENERAL, Mechanism),
- mkEntry(CKM_AES_CBC_PAD, Mechanism),
- mkEntry(CKM_DSA_PARAMETER_GEN, Mechanism),
- mkEntry(CKM_DH_PKCS_PARAMETER_GEN, Mechanism),
- mkEntry(CKM_DH_X9_42_PARAMETER_GEN, Mechanism),
- mkEntry(CKM_NETSCAPE_AES_KEY_WRAP, Mechanism),
- mkEntry(CKM_NETSCAPE_AES_KEY_WRAP_PAD, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_DES_CBC, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_TRIPLE_DES_CBC, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_40_BIT_RC2_CBC, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_128_BIT_RC2_CBC, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_40_BIT_RC4, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_128_BIT_RC4, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_FAULTY_3DES_CBC, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_SHA1_HMAC_KEY_GEN, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_MD5_HMAC_KEY_GEN, Mechanism),
- mkEntry(CKM_NETSCAPE_PBE_MD2_HMAC_KEY_GEN, Mechanism),
- mkEntry(CKM_TLS_PRF_GENERAL, Mechanism),
-
- mkEntry(CKR_OK, Result),
- mkEntry(CKR_CANCEL, Result),
- mkEntry(CKR_HOST_MEMORY, Result),
- mkEntry(CKR_SLOT_ID_INVALID, Result),
- mkEntry(CKR_GENERAL_ERROR, Result),
- mkEntry(CKR_FUNCTION_FAILED, Result),
- mkEntry(CKR_ARGUMENTS_BAD, Result),
- mkEntry(CKR_NO_EVENT, Result),
- mkEntry(CKR_NEED_TO_CREATE_THREADS, Result),
- mkEntry(CKR_CANT_LOCK, Result),
- mkEntry(CKR_ATTRIBUTE_READ_ONLY, Result),
- mkEntry(CKR_ATTRIBUTE_SENSITIVE, Result),
- mkEntry(CKR_ATTRIBUTE_TYPE_INVALID, Result),
- mkEntry(CKR_ATTRIBUTE_VALUE_INVALID, Result),
- mkEntry(CKR_DATA_INVALID, Result),
- mkEntry(CKR_DATA_LEN_RANGE, Result),
- mkEntry(CKR_DEVICE_ERROR, Result),
- mkEntry(CKR_DEVICE_MEMORY, Result),
- mkEntry(CKR_DEVICE_REMOVED, Result),
- mkEntry(CKR_ENCRYPTED_DATA_INVALID, Result),
- mkEntry(CKR_ENCRYPTED_DATA_LEN_RANGE, Result),
- mkEntry(CKR_FUNCTION_CANCELED, Result),
- mkEntry(CKR_FUNCTION_NOT_PARALLEL, Result),
- mkEntry(CKR_FUNCTION_NOT_SUPPORTED, Result),
- mkEntry(CKR_KEY_HANDLE_INVALID, Result),
- mkEntry(CKR_KEY_SIZE_RANGE, Result),
- mkEntry(CKR_KEY_TYPE_INCONSISTENT, Result),
- mkEntry(CKR_KEY_NOT_NEEDED, Result),
- mkEntry(CKR_KEY_CHANGED, Result),
- mkEntry(CKR_KEY_NEEDED, Result),
- mkEntry(CKR_KEY_INDIGESTIBLE, Result),
- mkEntry(CKR_KEY_FUNCTION_NOT_PERMITTED, Result),
- mkEntry(CKR_KEY_NOT_WRAPPABLE, Result),
- mkEntry(CKR_KEY_UNEXTRACTABLE, Result),
- mkEntry(CKR_KEY_PARAMS_INVALID, Result),
- mkEntry(CKR_MECHANISM_INVALID, Result),
- mkEntry(CKR_MECHANISM_PARAM_INVALID, Result),
- mkEntry(CKR_OBJECT_HANDLE_INVALID, Result),
- mkEntry(CKR_OPERATION_ACTIVE, Result),
- mkEntry(CKR_OPERATION_NOT_INITIALIZED, Result),
- mkEntry(CKR_PIN_INCORRECT, Result),
- mkEntry(CKR_PIN_INVALID, Result),
- mkEntry(CKR_PIN_LEN_RANGE, Result),
- mkEntry(CKR_PIN_EXPIRED, Result),
- mkEntry(CKR_PIN_LOCKED, Result),
- mkEntry(CKR_SESSION_CLOSED, Result),
- mkEntry(CKR_SESSION_COUNT, Result),
- mkEntry(CKR_SESSION_HANDLE_INVALID, Result),
- mkEntry(CKR_SESSION_PARALLEL_NOT_SUPPORTED, Result),
- mkEntry(CKR_SESSION_READ_ONLY, Result),
- mkEntry(CKR_SESSION_EXISTS, Result),
- mkEntry(CKR_SESSION_READ_ONLY_EXISTS, Result),
- mkEntry(CKR_SESSION_READ_WRITE_SO_EXISTS, Result),
- mkEntry(CKR_SIGNATURE_INVALID, Result),
- mkEntry(CKR_SIGNATURE_LEN_RANGE, Result),
- mkEntry(CKR_TEMPLATE_INCOMPLETE, Result),
- mkEntry(CKR_TEMPLATE_INCONSISTENT, Result),
- mkEntry(CKR_TOKEN_NOT_PRESENT, Result),
- mkEntry(CKR_TOKEN_NOT_RECOGNIZED, Result),
- mkEntry(CKR_TOKEN_WRITE_PROTECTED, Result),
- mkEntry(CKR_UNWRAPPING_KEY_HANDLE_INVALID, Result),
- mkEntry(CKR_UNWRAPPING_KEY_SIZE_RANGE, Result),
- mkEntry(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT, Result),
- mkEntry(CKR_USER_ALREADY_LOGGED_IN, Result),
- mkEntry(CKR_USER_NOT_LOGGED_IN, Result),
- mkEntry(CKR_USER_PIN_NOT_INITIALIZED, Result),
- mkEntry(CKR_USER_TYPE_INVALID, Result),
- mkEntry(CKR_USER_ANOTHER_ALREADY_LOGGED_IN, Result),
- mkEntry(CKR_USER_TOO_MANY_TYPES, Result),
- mkEntry(CKR_WRAPPED_KEY_INVALID, Result),
- mkEntry(CKR_WRAPPED_KEY_LEN_RANGE, Result),
- mkEntry(CKR_WRAPPING_KEY_HANDLE_INVALID, Result),
- mkEntry(CKR_WRAPPING_KEY_SIZE_RANGE, Result),
- mkEntry(CKR_WRAPPING_KEY_TYPE_INCONSISTENT, Result),
- mkEntry(CKR_RANDOM_SEED_NOT_SUPPORTED, Result),
- mkEntry(CKR_RANDOM_NO_RNG, Result),
- mkEntry(CKR_DOMAIN_PARAMS_INVALID, Result),
- mkEntry(CKR_BUFFER_TOO_SMALL, Result),
- mkEntry(CKR_SAVED_STATE_INVALID, Result),
- mkEntry(CKR_INFORMATION_SENSITIVE, Result),
- mkEntry(CKR_STATE_UNSAVEABLE, Result),
- mkEntry(CKR_CRYPTOKI_NOT_INITIALIZED, Result),
- mkEntry(CKR_CRYPTOKI_ALREADY_INITIALIZED, Result),
- mkEntry(CKR_MUTEX_BAD, Result),
- mkEntry(CKR_MUTEX_NOT_LOCKED, Result),
- mkEntry(CKR_VENDOR_DEFINED, Result),
-
- mkEntry(CKT_NETSCAPE_TRUSTED, Trust),
- mkEntry(CKT_NETSCAPE_TRUSTED_DELEGATOR, Trust),
- mkEntry(CKT_NETSCAPE_UNTRUSTED, Trust),
- mkEntry(CKT_NETSCAPE_MUST_VERIFY, Trust),
- mkEntry(CKT_NETSCAPE_TRUST_UNKNOWN, Trust),
- mkEntry(CKT_NETSCAPE_VALID, Trust),
- mkEntry(CKT_NETSCAPE_VALID_DELEGATOR, Trust),
-};
-
-const Constant *consts = &_consts[0];
-const int constCount = sizeof(_consts)/sizeof(_consts[0]);
-
-const Commands _commands[] = {
- {"C_Initialize", F_C_Initialize,
- {ArgInitializeArgs, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Finalize", F_C_Finalize,
- {ArgInitializeArgs, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetInfo", F_C_GetInfo,
- {ArgInfo|ArgOut, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetFunctionList", F_C_GetFunctionList,
- {ArgFunctionList|ArgOut, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetSlotList", F_C_GetSlotList,
- {ArgULong, ArgULong|ArgArray|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetSlotInfo", F_C_GetSlotInfo,
- {ArgULong, ArgSlotInfo|ArgOut, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetTokenInfo", F_C_GetTokenInfo,
- {ArgULong, ArgTokenInfo|ArgOut, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetMechanismList", F_C_GetMechanismList,
- {ArgULong, ArgULong|ArgArray|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetMechanismInfo", F_C_GetMechanismInfo,
- {ArgULong, ArgULong, ArgMechanismInfo|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_InitToken", F_C_InitToken,
- {ArgULong, ArgUTF8, ArgULong, ArgUTF8, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_InitPIN", F_C_InitPIN,
- {ArgULong, ArgUTF8, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SetPIN", F_C_SetPIN,
- {ArgULong, ArgUTF8, ArgULong, ArgUTF8, ArgULong,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_OpenSession", F_C_OpenSession,
- {ArgULong, ArgULong, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_CloseSession", F_C_CloseSession,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_CloseAllSessions", F_C_CloseAllSessions,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetSessionInfo", F_C_GetSessionInfo,
- {ArgULong, ArgSessionInfo|ArgOut, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetOperationState", F_C_GetOperationState,
- {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SetOperationState", F_C_SetOperationState,
- {ArgULong, ArgChar|ArgOut, ArgULong, ArgULong, ArgULong,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Login", F_C_Login,
- {ArgULong, ArgULong, ArgVar, ArgULong, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Logout", F_C_Logout,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_CreateObject", F_C_CreateObject,
- {ArgULong, ArgAttribute|ArgArray, ArgULong, ArgULong|ArgOut, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_CopyObject", F_C_CopyObject,
- {ArgULong, ArgULong, ArgAttribute|ArgArray, ArgULong, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DestroyObject", F_C_DestroyObject,
- {ArgULong, ArgULong, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetObjectSize", F_C_GetObjectSize,
- {ArgULong, ArgULong, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetAttributeValue", F_C_GetAttributeValue,
- {ArgULong, ArgULong, ArgAttribute|ArgArray, ArgULong, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SetAttributeValue", F_C_SetAttributeValue,
- {ArgULong, ArgULong, ArgAttribute|ArgArray, ArgULong, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_FindObjectsInit", F_C_FindObjectsInit,
- {ArgULong, ArgAttribute|ArgArray, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_FindObjectsFinal", F_C_FindObjectsFinal,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_FindObjects", F_C_FindObjects,
- {ArgULong, ArgULong|ArgOut, ArgULong, ArgULong|ArgOut, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_EncryptInit", F_C_EncryptInit,
- {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_EncryptUpdate", F_C_EncryptUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_EncryptFinal", F_C_EncryptFinal,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Encrypt", F_C_Encrypt,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DecryptInit", F_C_DecryptInit,
- {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DecryptUpdate", F_C_DecryptUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DecryptFinal", F_C_DecryptFinal,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Decrypt", F_C_Decrypt,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DigestInit", F_C_DigestInit,
- {ArgULong, ArgMechanism, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DigestUpdate", F_C_DigestUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DigestKey", F_C_DigestKey,
- {ArgULong, ArgULong, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DigestFinal", F_C_DigestFinal,
- {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Digest", F_C_Digest,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SignInit", F_C_SignInit,
- {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SignUpdate", F_C_SignUpdate,
- {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SignFinal", F_C_SignFinal,
- {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SignRecoverInit", F_C_SignRecoverInit,
- {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SignRecover", F_C_SignRecover,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Sign", F_C_Sign,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_VerifyInit", F_C_VerifyInit,
- {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_VerifyUpdate", F_C_VerifyUpdate,
- {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_VerifyFinal", F_C_VerifyFinal,
- {ArgULong, ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_VerifyRecoverInit", F_C_VerifyRecoverInit,
- {ArgULong, ArgMechanism, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_VerifyRecover", F_C_VerifyRecover,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_Verify", F_C_Verify,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DigestEncryptUpdate", F_C_DigestEncryptUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DecryptDigestUpdate", F_C_DecryptDigestUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SignEncryptUpdate", F_C_SignEncryptUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_DecryptVerifyUpdate", F_C_DecryptVerifyUpdate,
- {ArgULong, ArgChar, ArgULong, ArgChar|ArgOut, ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GenerateKeyPair", F_C_GenerateKeyPair,
- {ArgULong, ArgMechanism, ArgAttribute|ArgArray, ArgULong,
- ArgAttribute|ArgArray,
- ArgULong, ArgULong|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone }},
- {"C_GenerateKey", F_C_GenerateKey,
- {ArgULong, ArgMechanism, ArgAttribute|ArgArray, ArgULong,
- ArgULong|ArgOut,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_WrapKey", F_C_WrapKey,
- {ArgULong, ArgMechanism, ArgULong, ArgULong, ArgULong,
- ArgChar|ArgOut, ArgULong|ArgOut, ArgNone, ArgNone, ArgNone }},
- {"C_UnwrapKey", F_C_UnwrapKey,
- {ArgULong, ArgMechanism, ArgULong, ArgChar, ArgULong,
- ArgAttribute|ArgArray, ArgULong, ArgULong|ArgOut, ArgNone, ArgNone }},
- {"C_DeriveKey", F_C_DeriveKey,
- {ArgULong, ArgMechanism, ArgULong, ArgAttribute|ArgArray, ArgULong,
- ArgULong|ArgOut, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_SeedRandom", F_C_SeedRandom,
- {ArgULong, ArgChar, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GenerateRandom", F_C_GenerateRandom,
- {ArgULong, ArgChar, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_GetFunctionStatus", F_C_GetFunctionStatus,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_CancelFunction", F_C_CancelFunction,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"C_WaitForSlotEvent", F_C_WaitForSlotEvent,
- {ArgULong, ArgULong|ArgArray, ArgVar, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"NewArray", F_NewArray,
- {ArgVar|ArgNew, ArgVar, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"NewTemplate", F_NewTemplate,
- {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"NewMechanism", F_NewMechanism,
- {ArgMechanism|ArgOut, ArgULong, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"BuildTemplate", F_BuildTemplate,
- {ArgAttribute, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"SetTemplate", F_SetTemplate,
- {ArgAttribute, ArgULong, ArgULong, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Set", F_SetVar,
- {ArgVar|ArgNew, ArgULong, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Print", F_Print,
- {ArgVar, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Delete", F_Delete,
- {ArgVar|ArgNew, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Load", F_Load,
- {ArgVar, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Save", F_SaveVar,
- {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Restore", F_RestoreVar,
- {ArgVar|ArgNew, ArgVar, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"List", F_List,
- {ArgNone, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Unload", F_Unload,
- {ArgNone, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Run", F_Run,
- {ArgVar|ArgNew, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"System", F_System,
- {ArgULong, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
- {"Quit", F_Quit,
- {ArgNone, ArgNone, ArgNone, ArgNone, ArgNone,
- ArgNone, ArgNone, ArgNone, ArgNone, ArgNone }},
-};
-
-const Commands *commands= &_commands[0];
-const int commandCount = sizeof(_commands) / sizeof(_commands[0]);
-
-
diff --git a/security/nss/cmd/pk11util/pk11util.c b/security/nss/cmd/pk11util/pk11util.c
deleted file mode 100644
index e77098202..000000000
--- a/security/nss/cmd/pk11util/pk11util.c
+++ /dev/null
@@ -1,1677 +0,0 @@
-/*
- * The contents of this file are subject to the Mozilla Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is the Netscape security libraries.
- *
- * The Initial Developer of the Original Code is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1994-2000 Netscape Communications Corporation. All
- * Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License Version 2 or later (the
- * "GPL", in which case the provisions of the GPL are applicable
- * instead of those above. If you wish to allow use of your
- * version of this file only under the terms of the GPL and not to
- * allow others to use your version of this file under the MPL,
- * indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by
- * the GPL. If you do not delete the provisions above, a recipient
- * may use your version of this file under either the MPL or the
- * GPL.
- */
-
-
-#include <stdio.h>
-#include <string.h>
-
-#if defined(WIN32)
-#undef __STDC__
-#include "fcntl.h"
-#include "io.h"
-#else
-#include <unistd.h>
-#include <sys/fcntl.h>
-#endif
-
-#include "secutil.h"
-
-
-#include "nspr.h"
-#include "prtypes.h"
-#include "prtime.h"
-#include "prlong.h"
-
-#include "pkcs11.h"
-
-#include "pk11util.h"
-
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-CK_ULONG systemFlags;
-#define FLAG_NEGATE 0x80000000
-#define FLAG_Verify 0x00000001
-#define FLAG_VerifyFile 0x00000002
-
-int ArgSize(ArgType type);
-char *constLookup(char *bp, CK_ULONG *value, ConstType *type);
-
-void printConst(CK_ULONG value, ConstType type, int newLine)
-{
- int i;
-
- for (i=0; i < constCount; i++) {
- if (consts[i].type == type && consts[i].value == value) {
- printf("%s",consts[i].name);
- break;
- }
- if (type == ConstNone && consts[i].value == value) {
- printf("%s",consts[i].name);
- break;
- }
- }
- if (i == constCount) {
- printf("Unknown %s (%lu:0x%lx)",constTypeString[type],value,value);
- }
- if (newLine) {
- printf("\n");
- }
-}
-
-ConstType getConstFromAttribute(CK_ATTRIBUTE_TYPE type)
-{
- int i;
-
- for (i=0; i < constCount; i++) {
- if (consts[i].type == ConstAttribute && consts[i].value == type) {
- return consts[i].attrType;
- }
- }
- return ConstNone;
-}
-
-void printChars(char *name, CK_ULONG size)
-{
- CK_ULONG i;
- for (i=0; i < size; i++) {
- if (name[i] == 0) {
- break;
- }
- printf("%c",name[i]);
- }
- printf("\n");
-}
-
-#define DUMP_LEN 16
-void printDump(unsigned char *buf, int size)
-{
- int i,j;
-
- for(i=0; i < size; i+= DUMP_LEN) {
- printf(" ");
- for (j=0; j< DUMP_LEN; j++) {
- if (i+j < size) {
- printf("%02x ",buf[i+j]);
- } else {
- printf(" ");
- }
- }
- for (j=0; j< DUMP_LEN; j++) {
- if (i+j < size) {
- if (buf[i+j] < ' ' || buf[i+j] >= 0x7f) {
- printf(".");
- } else {
- printf("%c",buf[i+j]);
- }
- } else {
- printf(" ");
- }
- }
- printf("\n");
- }
-}
-
-/*
- * free an argument structure
- */
-void argFree(Value *arg)
-{
- if (arg == NULL) return;
-
- arg->reference--;
- if (arg->reference == 0) {
- if (arg->type & ArgFile) {
- free(arg->filename);
- }
- if (arg->data) {
- if ((arg->type & ArgMask) == ArgAttribute) {
- int i;
- CK_ATTRIBUTE *template = (CK_ATTRIBUTE *)arg->data;
-
- for (i=0; i < arg->arraySize; i++) {
- free(template[i].pValue);
- }
- }
- free(arg->data);
- }
- free (arg);
- }
-}
-
-/*
- * free and argument list
- */
-void parseFree(Value **ap)
-{
- int i;
- for (i=0 ; i < MAX_ARGS; i++) {
- argFree(ap[i]);
- }
-}
-
-/*
- * getEnd: how for to the end of this argmument list?
- */
-int getEnd(char *bp)
-{
- int count = 0;
-
- while (*bp) {
- if (*bp == ' ' || *bp == '\t' || *bp == '\n') return count;
- count++;
- bp++;
- }
- return (count);
-}
-
-
-/*
- * strip: return the first none white space character
- */
-char *strip(char *bp)
-{
- while (*bp && (*bp == ' ' || *bp == '\t' || *bp == '\n')) bp++;
- return bp;
-}
-
-/*
- * read in the next argument into dp ... don't overflow
- */
-char *readChars(char *bp, char *dp, int max )
-{
- int count = 0;
- while (*bp) {
- if (*bp == ' ' || *bp == '\t' || *bp == '\n' ) {
- *dp = 0;
- return bp;
- }
- *dp++ = *bp++;
- if (++count == max) break;
- }
- while (*bp && (*bp != ' ' && *bp != '\t' && *bp != '\n')) bp++;
- *dp = 0;
- return (bp);
-}
-
-/*
- * look up a variable from the variable chain
- */
-static Variable *varHead = NULL;
-Value * varLookup(char *bp, char *vname, int max) {
- Variable *current;
- bp = readChars(bp, vname, max);
-
- for (current = varHead; current; current = current->next) {
- if (PL_strcasecmp(current->vname, vname) == 0) {
- return current->value;
- }
- }
- return NULL;
-}
-
-static CK_RV list(void)
-{
- Variable *current;
-
- if (varHead) {
- printf(" %10s\t%16s\t%8s\tSize\tElements\n","Name","Type","Const");
- } else {
- printf(" no variables set\n");
- }
-
- for (current = varHead; current; current = current->next) {
- printf(" %10s\t%16s\t%8s\t%d\t%d\n", current->vname,
- valueString[current->value->type&ArgMask],
- constTypeString[current->value->constType],
- current->value->size, current->value->arraySize);
- }
- return CKR_OK;
-}
-
-CK_RV printFlags(char *s, CK_ULONG flags, ConstType type)
-{
- CK_ULONG i;
- int needComma = 0;
-
- printf("%s",s);
- for (i=1; i ; i=i << 1) {
- if (flags & i) {
- printf("%s",needComma?",":"");
- printConst(i, type, 0);
- needComma=1;
- }
- }
- if (!needComma) {
- printf("Empty");
- }
- printf("\n");
- return CKR_OK;
-}
-
-Value *NewValue(ArgType type, CK_ULONG arraySize)
-{
- Value *value;
-
- value = (Value *)malloc(sizeof(Value));
- if (!value) return NULL;
- value->size = ArgSize(type)*arraySize;
- value->type = type;
- value->filename = NULL;
- value->constType = ConstNone;
- value->data = (void *)malloc(value->size);
- if (!value->data) {
- free(value);
- return NULL;
- }
- value->reference = 1;
- value->arraySize = arraySize;
-
- memset(value->data, 0, value->size);
- return value;
-}
-
-/*
- * add a new variable to the chain
- */
-char *AddVariable(char *bp, Value **ptr)
-{
- char vname[512];
- Variable *current;
- int size;
-
- bp = readChars(bp,vname,sizeof(vname));
-
- for (current = varHead; current; current = current->next) {
- if (PL_strcasecmp(current->vname,vname) == 0) {
- argFree(*ptr);
- *ptr = current->value;
- return bp;
- }
- }
-
- current = (Variable *)malloc(sizeof(Variable));
- size = strlen(vname);
- current->vname = (char *)malloc(size+1);
- strcpy(current->vname,vname);
- current->value = *ptr;
- (*ptr)->reference++;
-
- current->next = varHead;
- varHead = current;
- return bp;
-}
-
-ArgType FindTypeByName(char *typeName)
-{
- int i;
-
- for (i=0; i < valueCount; i++) {
- if (PL_strcasecmp(typeName,valueString[i]) == 0) {
- return (ArgType) i;
- }
- if (valueString[i][0] == 'C' && valueString[i][1] == 'K' &&
- valueString[i][2] == '_' &&
- (PL_strcasecmp(typeName,&valueString[i][3]) == 0)) {
- return (ArgType) i;
- }
- }
- return ArgNone;
-}
-
-CK_RV ArrayVariable(char *bp, char *typeName, CK_ULONG count)
-{
- ArgType type;
- Value *value; /* new Value */
-
- type = FindTypeByName(typeName);
- if (type == ArgNone) {
- fprintf(stderr,"Invalid type (%s)\n", typeName);
- return CKR_FUNCTION_FAILED;
- }
- value = NewValue(type, count);
- (void) AddVariable(bp, &value);
- return CKR_OK;
-}
-
-#define MAX_TEMPLATE 25
-
-CK_RV ArrayTemplate(char *bp, char *attributes)
-{
- char aname[512];
- CK_ULONG attributeTypes[MAX_TEMPLATE];
- CK_ATTRIBUTE *template;
- Value *value; /* new Value */
- char *ap;
- int i, count = 0;
-
- memcpy(aname,attributes,strlen(attributes)+1);
-
- for (ap = aname, count = 0; ap && *ap && count < MAX_TEMPLATE; count++) {
- char *cur = ap;
- ConstType type;
-
- ap = strchr(ap,',');
- if (ap) {
- *ap++ = 0;
- }
-
- (void)constLookup(cur, &attributeTypes[count], &type);
- if ((type != ConstAttribute) && (type != ConstNone)) {
- printf("Unknown Attribute %s\n", cur);
- return CKR_FUNCTION_FAILED;
- }
- }
-
- value = NewValue(ArgAttribute, count);
-
- template = (CK_ATTRIBUTE *)value->data;
- for (i=0; i < count ; i++) {
- template[i].type = attributeTypes[i];
- }
- (void) AddVariable(bp, &value);
- return CKR_OK;
-}
-
-CK_RV BuildTemplate(Value *vp)
-{
- CK_ATTRIBUTE *template = (CK_ATTRIBUTE *)vp->data;
- int i;
-
- for (i=0; i < vp->arraySize; i++) {
- if (((signed long)template[i].ulValueLen) > 0) {
- if (template[i].pValue) free(template[i].pValue);
- template[i].pValue = malloc(template[i].ulValueLen);
- }
- }
- return CKR_OK;
-}
-
-CK_RV SetTemplate(Value *vp, CK_ULONG index, CK_ULONG value)
-{
- CK_ATTRIBUTE *template = (CK_ATTRIBUTE *)vp->data;
- int isbool = 0;
- CK_ULONG len;
- ConstType attrType;
-
- if (index >= vp->arraySize) {
- fprintf(stderr,"index (%lu) greater than array (%d)\n",
- index, vp->arraySize);
- return CKR_ARGUMENTS_BAD;
- }
- attrType = getConstFromAttribute(template[index].type);
-
- if (attrType == ConstNone) {
- fprintf(stderr,"can't set index (%lu) because ", index);
- printConst(template[index].type,ConstAttribute, 0);
- printf(" is not a CK_BBOOL or CK_ULONG\n");
- return CKR_ARGUMENTS_BAD;
- }
- isbool = (attrType == ConstBool);
- len = isbool ? sizeof (CK_BBOOL) : sizeof(CK_ULONG);
- if ((template[index].ulValueLen != len) || (template[index].pValue)) {
- free(template[index].pValue);
- template[index].pValue = malloc(len);
- template[index].ulValueLen = len;
- }
- if (isbool) {
- *(CK_BBOOL *)template[index].pValue = (CK_BBOOL) value;
- } else {
- *(CK_ULONG *)template[index].pValue = (CK_ULONG) value;
- }
- return CKR_OK;
-
-}
-
-CK_RV NewMechanism(char *bp, CK_ULONG mechType)
-{
- Value *value; /* new Value */
- CK_MECHANISM *mechanism;
-
- value = NewValue(ArgMechanism, 1);
- mechanism = (CK_MECHANISM *)value->data;
- mechanism->mechanism = mechType;
- mechanism->pParameter = NULL;
- mechanism->ulParameterLen = 0;
- (void) AddVariable(bp, &value);
- return CKR_OK;
-}
-
-/*
- * add a new variable to the chain
- */
-CK_RV DeleteVariable(char *bp)
-{
- char vname[512];
- Variable **current;
-
- bp = readChars(bp,vname,sizeof(vname));
-
- for (current = &varHead; *current; current = &(*current)->next) {
- if (PL_strcasecmp((*current)->vname,vname) == 0) {
- argFree((*current)->value);
- *current = (*current)->next;
- }
- }
- return CKR_OK;
-}
-
-/*
- * convert an octal value to integer
- */
-CK_ULONG otoi(char *o)
-{
- CK_ULONG value = 0;
-
- while (*o) {
- if ((*o >= '0') && (*o <= '7')) {
- value = (value << 3) | (unsigned)(*o - '0');
- } else {
- break;
- }
- }
- return value;
-}
-
-/*
- * convert a hex value to integer
- */
-CK_ULONG htoi(char *x)
-{
- CK_ULONG value = 0;
-
- while (*x) {
- if ((*x >= '0') && (*x <= '9')) {
- value = (value << 4) | (unsigned)(*x - '0');
- } else if ((*x >= 'a') && (*x <= 'f')) {
- value = (value << 4) | (unsigned)(*x - 'a');
- } else if ((*x >= 'A') && (*x <= 'F')) {
- value = (value << 4) | (unsigned)(*x - 'A');
- } else {
- break;
- }
- }
- return value;
-}
-
-
-/*
- * look up or decode a constant value
- */
-char *constLookup(char *bp, CK_ULONG *value, ConstType *type)
-{
- char vname[512];
- int i;
-
- bp = readChars(bp,vname,sizeof(vname));
-
- for (i=0; i < constCount; i++) {
- if ((PL_strcasecmp(consts[i].name,vname) == 0) ||
- PL_strcasecmp(consts[i].name+5,vname) == 0) {
- *value = consts[i].value;
- *type = consts[i].type;
- return bp;
- }
- }
-
- *type = ConstNone;
- if (vname[0] == '0' && vname[1] == 'X') {
- *value = htoi(&vname[2]);
- } else if (vname[0] == '0') {
- *value = otoi(&vname[1]);
- } else {
- *value = atoi(vname);
- }
- return bp;
-}
-
-int ArgSize(ArgType type)
-{
- int size=0;
- type &= ArgMask;
-
- switch (type) {
- case ArgNone:
- size = 0;
- break;
- case ArgULong:
- size = sizeof(CK_ULONG);
- break;
- case ArgVar:
- size = 1; /* get's changed later */
- break;
- case ArgChar:
- case ArgUTF8:
- size = 1;
- break;
- case ArgInfo:
- size = sizeof(CK_INFO);
- break;
- case ArgSlotInfo:
- size = sizeof(CK_SLOT_INFO);
- break;
- case ArgTokenInfo:
- size = sizeof(CK_TOKEN_INFO);
- break;
- case ArgSessionInfo:
- size = sizeof(CK_SESSION_INFO);
- break;
- case ArgAttribute:
- size = sizeof(CK_ATTRIBUTE);
- break;
- case ArgMechanism:
- size = sizeof(CK_MECHANISM);
- break;
- case ArgMechanismInfo:
- size = sizeof(CK_MECHANISM_INFO);
- break;
- case ArgInitializeArgs:
- size = sizeof(CK_C_INITIALIZE_ARGS);
- break;
- case ArgFunctionList:
- size = sizeof(CK_FUNCTION_LIST);
- break;
- default:
- break;
- }
-
- return (size);
-}
-
-CK_RV
-restore(char *filename,Value *ptr)
-{
- int fd,size;
-
- fd = open(filename,O_RDONLY|O_BINARY);
- if (fd < 0) {
- perror(filename);
- return CKR_FUNCTION_FAILED;
- }
-
- size = read(fd,ptr->data,ptr->size);
- if (systemFlags & FLAG_VerifyFile) {
- printDump(ptr->data,ptr->size);
- }
- if (size < 0) {
- perror(filename);
- return CKR_FUNCTION_FAILED;
- } else if (size != ptr->size) {
- fprintf(stderr,"%s: only read %d bytes, needed to read %d bytes\n",
- filename,size,ptr->size);
- return CKR_FUNCTION_FAILED;
- }
- close(fd);
- return CKR_OK;
-}
-
-CK_RV
-save(char *filename,Value *ptr)
-{
- int fd,size;
-
- fd = open(filename,O_WRONLY|O_BINARY|O_CREAT,0666);
- if (fd < 0) {
- perror(filename);
- return CKR_FUNCTION_FAILED;
- }
-
- size = write(fd,ptr->data,ptr->size);
- if (size < 0) {
- perror(filename);
- return CKR_FUNCTION_FAILED;
- } else if (size != ptr->size) {
- fprintf(stderr,"%s: only wrote %d bytes, need to write %d bytes\n",
- filename,size,ptr->size);
- return CKR_FUNCTION_FAILED;
- }
- close(fd);
- return CKR_OK;
-}
-
-CK_RV printArg(Value *ptr,int arg_number)
-{
- ArgType type = ptr->type & ArgMask;
- CK_INFO *info;
- CK_SLOT_INFO *slotInfo;
- CK_TOKEN_INFO *tokenInfo;
- CK_SESSION_INFO *sessionInfo;
- CK_ATTRIBUTE *attribute;
- CK_MECHANISM *mechanism;
- CK_MECHANISM_INFO *mechanismInfo;
- CK_C_INITIALIZE_ARGS *initArgs;
- CK_FUNCTION_LIST *functionList;
- CK_RV ckrv = CKR_OK;
- ConstType constType;
-
- if (arg_number) {
- printf("Arg %d: \n",arg_number);
- }
- if (ptr->arraySize > 1) {
- Value element;
- int i;
- int elementSize = ptr->size/ptr->arraySize;
- char *dp = (char *)ptr->data;
-
- /* build a temporary Value to hold a single element */
- element.type = type;
- element.constType = ptr->constType;
- element.size = elementSize;
- element.filename = ptr->filename;
- element.reference = 1;
- element.arraySize = 1;
- for (i=0; i < ptr->arraySize; i++) {
- printf(" -----[ %d ] -----\n", i);
- element.data = (void *) &dp[i*elementSize];
- (void) printArg(&element, 0);
- }
- return ckrv;
- }
- if (ptr->data == NULL) {
- printf(" NULL ptr to a %s\n", valueString[type]);
- return ckrv;
- }
- switch (type) {
- case ArgNone:
- printf(" None\n");
- break;
- case ArgULong:
- printf(" %lu (0x%lx)\n", *((CK_ULONG *)ptr->data),
- *((CK_ULONG *)ptr->data));
- if (ptr->constType != ConstNone) {
- printf(" ");
- printConst(*(CK_ULONG *)ptr->data,ptr->constType,1);
- }
- break;
- case ArgVar:
- printf(" Variable.....error\n");
- ckrv = CKR_ARGUMENTS_BAD;
- break;
- case ArgUTF8:
- printf(" %s\n",(char *)ptr->data);
- break;
- case ArgChar:
- printDump(ptr->data,ptr->size);
- break;
- case ArgInfo:
-#define VERSION(x) (x).major, (x).minor
- info = (CK_INFO *)ptr->data;
- printf(" Cryptoki Version: %d.%02d\n",
- VERSION(info->cryptokiVersion));
- printf(" Manufacturer ID: ");
- printChars(info->manufacturerID,sizeof(info->manufacturerID));
- printFlags(" Flags: ", info->flags, ConstInfoFlags);
- printf(" Library Description: ");
- printChars(info->libraryDescription,sizeof(info->libraryDescription));
- printf(" Library Version: %d.%02d\n",
- VERSION(info->libraryVersion));
- break;
- case ArgSlotInfo:
- slotInfo = (CK_SLOT_INFO *)ptr->data;
- printf(" Slot Description: ");
- printChars(slotInfo->slotDescription,sizeof(slotInfo->slotDescription));
- printf(" Manufacturer ID: ");
- printChars(slotInfo->manufacturerID,sizeof(slotInfo->manufacturerID));
- printFlags(" Flags: ", slotInfo->flags, ConstSlotFlags);
- printf(" Hardware Version: %d.%02d\n",
- VERSION(slotInfo->hardwareVersion));
- printf(" Firmware Version: %d.%02d\n",
- VERSION(slotInfo->firmwareVersion));
- break;
- case ArgTokenInfo:
- tokenInfo = (CK_TOKEN_INFO *)ptr->data;
- printf(" Label: %s\n",tokenInfo->label);
- printf(" Manufacturer ID: ");
- printChars(tokenInfo->manufacturerID,sizeof(tokenInfo->manufacturerID));
- printf(" Model: ");
- printChars(tokenInfo->model,sizeof(tokenInfo->model));
- printf(" Serial Number: ");
- printChars(tokenInfo->serialNumber,sizeof(tokenInfo->serialNumber));
- printFlags(" Flags: ", tokenInfo->flags, ConstTokenFlags);
- printf(" Max Session Count: %lu\n",tokenInfo->ulMaxSessionCount);
- printf(" Session Count: %lu\n",tokenInfo->ulSessionCount);
- printf(" RW Session Count: %lu\n",tokenInfo->ulMaxRwSessionCount);
- printf(" Max Pin Length : %lu\n",tokenInfo->ulMaxPinLen);
- printf(" Min Pin Length : %lu\n",tokenInfo->ulMinPinLen);
- printf(" Total Public Memory: %lu\n",
- tokenInfo->ulTotalPublicMemory);
- printf(" Free Public Memory: %lu\n",
- tokenInfo->ulFreePublicMemory);
- printf(" Total Private Memory: %lu\n",
- tokenInfo->ulTotalPrivateMemory);
- printf(" Free Private Memory: %lu\n",
- tokenInfo->ulFreePrivateMemory);
- printf(" Hardware Version: %d.%02d\n",
- VERSION(tokenInfo->hardwareVersion));
- printf(" Firmware Version: %d.%02d\n",
- VERSION(tokenInfo->firmwareVersion));
- printf(" UTC Time: %s\n",tokenInfo->utcTime);
- break;
- case ArgSessionInfo:
- sessionInfo = (CK_SESSION_INFO *)ptr->data;
- printf(" SlotID: 0x%08lx\n", sessionInfo->slotID);
- printf(" State: ");
- printConst(sessionInfo->state, ConstSessionState, 1);
- printFlags(" Flags: ", sessionInfo->flags, ConstSessionFlags);
- printf(" Device error: %lu 0x%08lx\n",sessionInfo->ulDeviceError,
- sessionInfo->ulDeviceError);
- break;
- case ArgAttribute:
- attribute = (CK_ATTRIBUTE *)ptr->data;
- printf(" Attribute Type: ");
- printConst(attribute->type, ConstAttribute, 1);
- printf(" Attribute Data: ");
- if (attribute->pValue == NULL) {
- printf("NULL\n");
- printf("Attribute Len: %lu\n",attribute->ulValueLen);
- } else {
- constType = getConstFromAttribute(attribute->type);
- if (constType != ConstNone) {
- CK_ULONG value = (constType == ConstBool) ?
- *(CK_BBOOL *)attribute->pValue :
- *(CK_ULONG *)attribute->pValue;
- printConst(value, constType, 1);
- } else {
- printf("\n");
- printDump(attribute->pValue, attribute->ulValueLen);
- }
- }
- break;
- case ArgMechanism:
- mechanism = (CK_MECHANISM *)ptr->data;
- printf(" Mechanism Type: ");
- printConst(mechanism->mechanism, ConstMechanism, 1);
- printf(" Mechanism Data:\n");
- printDump(mechanism->pParameter, mechanism->ulParameterLen);
- break;
- case ArgMechanismInfo:
- mechanismInfo = (CK_MECHANISM_INFO *)ptr->data;
- printf(" Minimum Key Size: %ld\n",mechanismInfo->ulMinKeySize);
- printf(" Maximum Key Size: %ld\n",mechanismInfo->ulMaxKeySize);
- printFlags(" Flags: ", mechanismInfo->flags, ConstMechanismFlags);
- break;
- case ArgInitializeArgs:
- initArgs = (CK_C_INITIALIZE_ARGS *)ptr->data;
- printFlags(" Flags: ", initArgs->flags, ConstInitializeFlags);
- case ArgFunctionList:
- functionList = (CK_FUNCTION_LIST *)ptr->data;
- printf(" Version: %d.%02d\n", VERSION(functionList->version));
-#ifdef notdef
-#undef CK_NEED_ARG_LIST
-#define CK_PKCS11_FUNCTION_INFO(func) \
- printf(" %s: 0x%08lx\n", #func, (unsigned long) functionList->func );
-#include "pkcs11f.h"
-#undef CK_NEED_ARG_LIST
-#undef CK_PKCS11_FUNCTION_INFO
-#endif
- default:
- ckrv = CKR_ARGUMENTS_BAD;
- break;
- }
-
- return ckrv;
-}
-
-
-/*
- * Feeling ambitious? turn this whole thing into lexx yacc parser
- * with full expressions.
- */
-Value **
-parseArgs(int index, char * bp)
-{
- const Commands *cp = &commands[index];
- int size = strlen(cp->fname);
- int i;
- CK_ULONG value;
- char vname[512];
- Value **argList,*possible;
- ConstType constType;
-
- /*
- * skip pass the command
- */
- if ((cp->fname[0] == 'C') && (cp->fname[1] == '_') && (bp[1] != '_')) {
- size -= 2;
- }
- bp += size;
-
- /*
- * Initialize our argument list
- */
- argList = (Value **)malloc(sizeof(Value*)*MAX_ARGS);
- for (i=0; i < MAX_ARGS; i++) { argList[i] = NULL; }
-
- /*
- * Walk the argument list parsing it...
- */
- for (i=0 ;i < MAX_ARGS; i++) {
- ArgType type = cp->args[i] & ArgMask;
-
- /* strip blanks */
- bp = strip(bp);
-
- /* if we hit ArgNone, we've nabbed all the arguments we need */
- if (type == ArgNone) {
- break;
- }
-
- /* if we run out of space in the line, we weren't given enough
- * arguments... */
- if (*bp == '\0') {
- fprintf(stderr,"%s: only %d args found,\n",cp->fname,i);
- parseFree(argList);
- return NULL;
- }
-
- /*
- * look up the argument in our variable list first... only
- * exception is the new argument type for set...
- */
- if ((cp->args[i] != (ArgVar|ArgNew)) &&
- (possible = varLookup(bp,vname,sizeof(vname)))) {
- /* ints are only compatible with other ints... all other types
- * are interchangeable... */
- if (type != ArgVar) { /* ArgVar's match anyone */
- if ((type == ArgULong) ^
- ((possible->type & ArgMask) == ArgULong)) {
- fprintf(stderr,"%s: Arg %d incompatible type with <%s>\n",
- cp->fname,i+1,vname);
- parseFree(argList);
- return NULL;
- }
- /*
- * ... that is as long as they are big enough...
- */
- if (ArgSize(type) > possible->size) {
- fprintf(stderr,
- "%s: Arg %d %s is too small (%d bytes needs to be %d bytes)\n",
- cp->fname,i+1,vname,possible->size,ArgSize(type));
- parseFree(argList);
- return NULL;
- }
- }
-
- /* everything looks kosher here, use it */
- argList[i] = possible;
- possible->reference++;
-
- bp = readChars(bp,vname,sizeof(vname));
- if (cp->args[i] & ArgOut) {
- possible->type |= ArgOut;
- }
- continue;
- }
-
- /* create space for our argument */
- argList[i] = NewValue(type, 1);
-
- if ((PL_strncasecmp(bp, "null", 4) == 0) && ((bp[4] == 0)
- || (bp[4] == ' ') || (bp[4] =='\t') || (bp[4] =='\n'))) {
- if (cp->args[i] == ArgULong) {
- fprintf(stderr, "%s: Arg %d CK_ULONG can't be NULL\n",
- cp->fname,i+1);
- parseFree(argList);
- return NULL;
- }
- free(argList[i]->data);
- argList[i]->data = NULL;
- argList[i]->size = 0;
- bp += 4;
- if (*bp) bp++;
- continue;
- }
-
- /* if we're an output variable, we need to add it */
- if (cp->args[i] & ArgOut) {
- if (PL_strncasecmp(bp,"file(",5) == 0) {
- char filename[512];
- bp = readChars(bp+5,filename,sizeof(filename));
- size = strlen(filename);
- if ((size > 0) && (filename[size-1] == ')')) {
- filename[size-1] = 0;
- }
- filename[size] = 0;
- argList[i]->filename = (char *)malloc(size+1);
-
- strcpy(argList[i]->filename,filename);
-
- argList[i]->type |= ArgOut|ArgFile;
- break;
- }
- bp = AddVariable(bp,&argList[i]);
- argList[i]->type |= ArgOut;
- continue;
- }
-
- if (PL_strncasecmp(bp, "file(", 5) == 0) {
- char filename[512];
-
- bp = readChars(bp+5,filename,sizeof(filename));
- size = strlen(filename);
- if ((size > 0) && (filename[size-1] == ')')) filename[size-1] = 0;
-
- if (restore(filename,argList[i]) != CKR_OK) {
- parseFree(argList);
- return NULL;
- }
- continue;
- }
-
- if (PL_strncasecmp(bp, "size(", 5) == 0) {
- CK_ULONG *ulong = (CK_ULONG *)argList[i]->data;
- char tmpname[512];
-
- bp = readChars(bp+5,tmpname,sizeof(tmpname));
- size = strlen(tmpname);
- if ((size > 0) && (tmpname[size-1] == ')')) tmpname[size-1] = 0;
-
- if (argList[i]->size == sizeof(CK_ULONG) || ulong == NULL) {
- fprintf(stderr,
- "%s: size used for non-int argument,\n",cp->fname);
- parseFree(argList);
- return NULL;
- }
- *ulong = 0;
- varLookup(tmpname, vname,sizeof(vname));
- if (!possible) {
- fprintf(stderr,
- "%s: %s was not found\n",cp->fname, vname);
- parseFree(argList);
- return NULL;
- }
- *ulong = possible->arraySize;
- continue;
- }
-
- switch (type) {
- case ArgULong:
- bp = constLookup(bp, &value, &constType);
- *(int *)argList[i]->data = value;
- argList[i]->constType = constType;
- break;
- case ArgVar:
- free(argList[i]->data);
- size = getEnd(bp);
- argList[i]->data = (void *)malloc(size);
- argList[i]->size = size;
- /* fall through */
- case ArgInfo:
- case ArgSlotInfo:
- case ArgTokenInfo:
- case ArgSessionInfo:
- case ArgAttribute:
- case ArgMechanism:
- case ArgMechanismInfo:
- case ArgInitializeArgs:
- case ArgUTF8:
- case ArgChar:
- bp = readChars(bp,(char *)argList[i]->data,argList[i]->size);
- case ArgNone:
- default:
- break;
- }
- }
-
- return argList;
-}
-
-/* lookup the command in the array */
-int lookup(char *buf)
-{
- int size,i;
- int buflen;
-
- buflen = strlen(buf);
-
- for ( i = 0; i < commandCount; i++) {
- size = strlen(commands[i].fname);
-
- if (size > buflen) {
- continue;
- }
- if (PL_strncasecmp(buf,commands[i].fname,size) == 0) {
- return i;
- }
- if (size-2 > buflen) {
- continue;
- }
- if (commands[i].fname[0] == 'C' && commands[i].fname[1] == '_' &&
- (PL_strncasecmp(buf,&commands[i].fname[2],size-2) == 0)) {
- return i;
- }
- }
- fprintf(stderr,"Can't find command %s\n",buf);
- return -1;
-}
-
-void
-putOutput(Value **ptr)
-{
- int i;
-
- for (i=0; i < MAX_ARGS; i++) {
- ArgType type;
-
- if (ptr[i] == NULL) break;
-
- type = ptr[i]->type;
-
- ptr[i]->type &= ArgMask;
- if (type == ArgNone) {
- break;
- }
- if (type & ArgOut) {
- (void) printArg(ptr[i],i+1);
- }
- if (type & ArgFile) {
- save(ptr[i]->filename,ptr[i]);
- free(ptr[i]->filename);
- ptr[i]->filename= NULL; /* paranoia */
- }
- }
-}
-
-CK_RV unloadModule(Module *module) {
-
- if (module->library) {
- PR_UnloadLibrary(module->library);
- }
-
- module->library = NULL;
- module->functionList = NULL;
-
- return CKR_OK;
-}
-
-CK_RV loadModule(Module *module, char *library) {
- PRLibrary *newLibrary;
- CK_C_GetFunctionList getFunctionList;
- CK_FUNCTION_LIST *functionList;
- CK_RV ckrv;
-
- newLibrary = PR_LoadLibrary(library);
- if (!newLibrary) {
- fprintf(stderr,"Couldn't load library %s\n",library);
- return CKR_FUNCTION_FAILED;
- }
- getFunctionList = (CK_C_GetFunctionList)
- PR_FindSymbol(newLibrary,"C_GetFunctionList");
- if (!getFunctionList) {
- fprintf(stderr,"Couldn't find \"C_GetFunctionList\" in %s\n",library);
- return CKR_FUNCTION_FAILED;
- }
-
- ckrv = (*getFunctionList)(&functionList);
- if (ckrv != CKR_OK) {
- return ckrv;
- }
-
- if (module->library) {
- PR_UnloadLibrary(module->library);
- }
-
- module->library = newLibrary;
- module->functionList = functionList;
-
- return CKR_OK;
-}
-
-CK_RV run(char *);
-
-/*
- * Actually dispatch the function... Bad things happen
- * if these don't match the commands array.
- */
-CK_RV do_func(int index, Value **a)
-{
- int value;
- static Module module = { NULL, NULL} ;
- CK_FUNCTION_LIST *func = module.functionList;
-
- switch (commands[index].fType) {
- case F_C_Initialize:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Initialize((void *)a[0]->data);
- case F_C_Finalize:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Finalize((void *)a[0]->data);
- case F_C_GetInfo:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetInfo((CK_INFO *)a[0]->data);
- case F_C_GetFunctionList:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetFunctionList((CK_FUNCTION_LIST **)a[0]->data);
- case F_C_GetSlotList:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetSlotList(*(CK_ULONG *)a[0]->data,
- (CK_SLOT_ID *)a[1]->data,
- (CK_LONG *)a[2]->data);
- case F_C_GetSlotInfo:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetSlotInfo(*(CK_ULONG *)a[0]->data,
- (CK_SLOT_INFO *)a[1]->data);
- case F_C_GetTokenInfo:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetTokenInfo(*(CK_ULONG *)a[0]->data,
- (CK_TOKEN_INFO *)a[1]->data);
- case F_C_GetMechanismList:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- if (a[1]->data) {
- a[1]->constType = ConstMechanism;
- }
- return func->C_GetMechanismList(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM_TYPE*)a[1]->data,
- (CK_ULONG *)a[2]->data);
- case F_C_GetMechanismInfo:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetMechanismInfo(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data,
- (CK_MECHANISM_INFO *)a[2]->data);
- case F_C_InitToken:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_InitToken(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data);
- case F_C_InitPIN:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_InitPIN(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_SetPIN:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SetPIN(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- *(CK_ULONG *)a[4]->data);
- case F_C_OpenSession:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_OpenSession(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data,
- (void *)NULL,
- (CK_NOTIFY) NULL,
- (CK_ULONG *)a[2]->data);
- case F_C_CloseSession:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_CloseSession(*(CK_ULONG *)a[0]->data);
- case F_C_CloseAllSessions:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_CloseAllSessions(*(CK_ULONG *)a[0]->data);
- case F_C_GetSessionInfo:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetSessionInfo(*(CK_ULONG *)a[0]->data,
- (CK_SESSION_INFO *)a[1]->data);
- case F_C_GetOperationState:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetOperationState(*(CK_ULONG *)a[0]->data,
- (CK_BYTE *)a[1]->data,
- (CK_ULONG *)a[2]->data);
- case F_C_SetOperationState:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SetOperationState(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- *(CK_ULONG *)a[3]->data,
- *(CK_ULONG *)a[4]->data);
- case F_C_Login:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Login(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data,
- (CK_CHAR *)a[2]->data,
- *(CK_ULONG *)a[3]->data);
- case F_C_Logout:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Logout(*(CK_ULONG *)a[0]->data);
- case F_C_CreateObject:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_CreateObject(*(CK_ULONG *)a[0]->data,
- (CK_ATTRIBUTE *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_ULONG *)a[3]->data);
- case F_C_CopyObject:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_CopyObject(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[0]->data,
- (CK_ATTRIBUTE *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_ULONG *)a[3]->data);
- case F_C_DestroyObject:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DestroyObject(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data);
- case F_C_GetObjectSize:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetObjectSize(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data,
- (CK_ULONG *)a[2]->data);
- case F_C_GetAttributeValue:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetAttributeValue(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data,
- (CK_ATTRIBUTE *)a[2]->data,
- *(CK_ULONG *)a[3]->data);
- case F_C_SetAttributeValue:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SetAttributeValue(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data,
- (CK_ATTRIBUTE *)a[2]->data,
- *(CK_ULONG *)a[3]->data);
- case F_C_FindObjectsInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_FindObjectsInit(*(CK_ULONG *)a[0]->data,
- (CK_ATTRIBUTE *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_FindObjects:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_FindObjects(*(CK_ULONG *)a[0]->data,
- (CK_ULONG *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_ULONG *)a[3]->data);
- case F_C_FindObjectsFinal:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_FindObjectsFinal(*(CK_ULONG *)a[0]->data);
- case F_C_EncryptInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_EncryptInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_Encrypt:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Encrypt(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_EncryptUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_EncryptUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_EncryptFinal:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_EncryptFinal(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- (CK_ULONG *)a[2]->data);
- case F_C_DecryptInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DecryptInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_Decrypt:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Decrypt(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_DecryptUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DecryptUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_DecryptFinal:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DecryptFinal(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- (CK_ULONG *)a[2]->data);
- case F_C_DigestInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DigestInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data);
- case F_C_Digest:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Digest(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_DigestUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DigestUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_DigestKey:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DigestKey(*(CK_ULONG *)a[0]->data,
- *(CK_ULONG *)a[1]->data);
- case F_C_DigestFinal:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DigestFinal(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- (CK_ULONG *)a[2]->data);
- case F_C_SignInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SignInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_Sign:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Sign(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_SignUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SignUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_SignFinal:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SignFinal(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- (CK_ULONG *)a[2]->data);
-
- case F_C_SignRecoverInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SignRecoverInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_SignRecover:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SignRecover(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_VerifyInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_VerifyInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_Verify:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_Verify(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- *(CK_ULONG *)a[4]->data);
- case F_C_VerifyUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_VerifyUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_VerifyFinal:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_VerifyFinal(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
-
- case F_C_VerifyRecoverInit:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_VerifyRecoverInit(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_VerifyRecover:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_VerifyRecover(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_DigestEncryptUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DigestEncryptUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_DecryptDigestUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DecryptDigestUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_SignEncryptUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SignEncryptUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_DecryptVerifyUpdate:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DecryptVerifyUpdate(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_GenerateKey:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GenerateKey(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- (CK_ATTRIBUTE *)a[2]->data,
- *(CK_ULONG *)a[3]->data,
- (CK_ULONG *)a[4]->data);
- case F_C_GenerateKeyPair:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GenerateKeyPair(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- (CK_ATTRIBUTE *)a[2]->data,
- *(CK_ULONG *)a[3]->data,
- (CK_ATTRIBUTE *)a[4]->data,
- *(CK_ULONG *)a[5]->data,
- (CK_ULONG *)a[6]->data,
- (CK_ULONG *)a[7]->data);
- case F_C_WrapKey:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_WrapKey(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- *(CK_ULONG *)a[3]->data,
- (CK_CHAR *)a[5]->data,
- (CK_ULONG *)a[6]->data);
- case F_C_UnwrapKey:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_UnwrapKey(*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_CHAR *)a[3]->data,
- *(CK_ULONG *)a[4]->data,
- (CK_ATTRIBUTE *)a[5]->data,
- *(CK_ULONG *)a[6]->data,
- (CK_ULONG *)a[7]->data);
- case F_C_DeriveKey:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_DeriveKey (*(CK_ULONG *)a[0]->data,
- (CK_MECHANISM *)a[1]->data,
- *(CK_ULONG *)a[2]->data,
- (CK_ATTRIBUTE *)a[3]->data,
- *(CK_ULONG *)a[4]->data,
- (CK_ULONG *)a[5]->data);
- case F_C_SeedRandom:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_SeedRandom(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_GenerateRandom:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GenerateRandom(*(CK_ULONG *)a[0]->data,
- (CK_CHAR *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_C_GetFunctionStatus:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_GetFunctionStatus(*(CK_ULONG *)a[0]->data);
- case F_C_CancelFunction:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_CancelFunction(*(CK_ULONG *)a[0]->data);
- case F_C_WaitForSlotEvent:
- if (!func) return CKR_CRYPTOKI_NOT_INITIALIZED;
- return func->C_WaitForSlotEvent(*(CK_ULONG *)a[0]->data,
- (CK_ULONG *)a[1]->data,
- (void *)a[2]->data);
- /* set a variable */
- case F_SetVar:
- (void) DeleteVariable(a[0]->data);
- (void) AddVariable(a[0]->data,&a[1]);
- return CKR_OK;
- /* print a value */
- case F_Print:
- return printArg(a[0],0);
- case F_SaveVar:
- return save(a[0]->data,a[1]);
- case F_RestoreVar:
- return restore(a[0]->data,a[1]);
- case F_Delete:
- return DeleteVariable(a[0]->data);
- case F_List:
- return list();
- case F_Run:
- return run(a[0]->data);
- case F_Load:
- return loadModule(&module,a[0]->data);
- case F_Unload:
- return unloadModule(&module);
- case F_NewArray:
- (void) DeleteVariable(a[0]->data);
- return ArrayVariable(a[0]->data,a[1]->data,*(CK_ULONG *)a[2]->data);
- case F_NewTemplate:
- (void) DeleteVariable(a[0]->data);
- return ArrayTemplate(a[0]->data,a[1]->data);
- case F_BuildTemplate:
- return BuildTemplate(a[0]);
- case F_SetTemplate:
- return SetTemplate(a[0],
- *(CK_ULONG *)a[1]->data,
- *(CK_ULONG *)a[2]->data);
- case F_NewMechanism:
- (void) DeleteVariable(a[0]->data);
- return NewMechanism(a[0]->data,*(CK_ULONG *)a[1]->data);
- case F_System:
- value = *(int *)a[0]->data;
- if (value & 0x80000000) {
- systemFlags &= ~value;
- } else {
- systemFlags |= value;
- }
- return CKR_OK;
- case F_Quit:
- return 0x80000000;
- default:
- fprintf(stderr,
- "Function %s not yet supported\n",commands[index].fname );
- return CKR_OK;
- }
- /* Not Reached */
- return CKR_OK;
-}
-
-
-CK_RV process(FILE *inFile,int user)
-{
- char buf[2048];
- Value **arglist;
- CK_RV error;
- CK_RV ckrv = CKR_OK;
-
- if (user) { printf("pkcs11> "); fflush(stdout); }
-
- while (fgets(buf,2048,inFile) != NULL) {
- int index;
- char *bp;
-
- if (!user) printf("* %s",buf);
- bp = strip(buf);
- /* allow comments in scripts */
- if (*bp == '#') {
- if (user) { printf("pkcs11> "); fflush(stdout); }
- continue;
- }
-
-
- index = lookup(bp);
-
- if (index < 0) {
- if (user) { printf("pkcs11> "); fflush(stdout); }
- continue;
- }
-
- arglist = parseArgs(index,bp);
- if (arglist == NULL) {
- if (user) { printf("pkcs11> "); fflush(stdout); }
- continue;
- }
-
- error = do_func(index,arglist);
- if (error == 0x80000000) {
- parseFree(arglist);
- break;
- }
- if (error) {
- ckrv = error;
- printf(">> Error : ");
- printConst(error, ConstResult, 1);
- }
-
- putOutput(arglist);
-
- parseFree(arglist);
-
- if (user) { printf("pkcs11> "); fflush(stdout); }
- }
- return ckrv;
-}
-
-CK_RV run(char *filename)
-{
- FILE *infile;
- CK_RV ckrv;
-
- infile = fopen(filename,"r");
-
- if (infile == NULL) {
- perror(filename);
- return CKR_FUNCTION_FAILED;
- }
-
- ckrv = process(infile, 0);
-
- fclose(infile);
- return ckrv;
-}
-
-int
-main(int argc, char **argv)
-{
- /* I suppose that some day we could parse some arguments */
- (void) process(stdin, 1);
- return 0;
-}
diff --git a/security/nss/cmd/pk11util/pk11util.h b/security/nss/cmd/pk11util/pk11util.h
deleted file mode 100644
index 7fbc010ae..000000000
--- a/security/nss/cmd/pk11util/pk11util.h
+++ /dev/null
@@ -1,144 +0,0 @@
-
-/*
- * Supported functions..
- */
-#include <pkcs11.h>
-#include "nspr.h"
-#include "prtypes.h"
-
-typedef enum {
- F_No_Function,
-#undef CK_NEED_ARG_LIST
-#define CK_PKCS11_FUNCTION_INFO(func) F_##func,
-#include "pkcs11f.h"
-#undef CK_NEED_ARG_LISt
-#undef CK_PKCS11_FUNCTION_INFO
- F_SetVar,
- F_NewArray,
- F_NewTemplate,
- F_NewMechanism,
- F_BuildTemplate,
- F_SetTemplate,
- F_Print,
- F_SaveVar,
- F_RestoreVar,
- F_Delete,
- F_List,
- F_Run,
- F_Load,
- F_Unload,
- F_System,
- F_Quit,
-} FunctionType;
-
-/*
- * Supported Argument Types
- */
-typedef enum {
- ArgNone,
- ArgVar,
- ArgULong,
- ArgChar,
- ArgUTF8,
- ArgInfo,
- ArgSlotInfo,
- ArgTokenInfo,
- ArgSessionInfo,
- ArgAttribute,
- ArgMechanism,
- ArgMechanismInfo,
- ArgInitializeArgs,
- ArgFunctionList,
-/* Modifier Flags */
- ArgMask = 0xff,
- ArgOut = 0x100,
- ArgArray = 0x200,
- ArgNew = 0x400,
- ArgFile = 0x800,
-} ArgType;
-
-typedef enum _constType
-{
- ConstNone,
- ConstBool,
- ConstInfoFlags,
- ConstSlotFlags,
- ConstTokenFlags,
- ConstSessionFlags,
- ConstMechanismFlags,
- ConstInitializeFlags,
- ConstUsers,
- ConstSessionState,
- ConstObject,
- ConstHardware,
- ConstKeyType,
- ConstCertType,
- ConstAttribute,
- ConstMechanism,
- ConstResult,
- ConstTrust
-} ConstType;
-
-typedef struct _constant {
- const char *name;
- CK_ULONG value;
- ConstType type;
- ConstType attrType;
-} Constant ;
-
-/*
- * Values structures.
- */
-typedef struct _values {
- ArgType type;
- ConstType constType;
- int size;
- char *filename;
- void *data;
- int reference;
- int arraySize;
-} Value;
-
-/*
- * Variables
- */
-typedef struct _variable Variable;
-struct _variable {
- Variable *next;
- char *vname;
- Value *value;
-};
-
-/* NOTE: if you change MAX_ARGS, you need to change the commands array
- * below as well.
- */
-
-#define MAX_ARGS 10
-/*
- * structure for master command array
- */
-typedef struct _commands {
- char *fname;
- FunctionType fType;
- ArgType args[MAX_ARGS];
-} Commands;
-
-typedef struct _module {
- PRLibrary *library;
- CK_FUNCTION_LIST *functionList;
-} Module;
-
-
-/*
- * the command array itself. Make name to function and it's arguments
- */
-
-extern const char **valueString;
-extern const int valueCount;
-extern const char **constTypeString;
-extern const int constTypeCount;
-extern const Constant *consts;
-extern const int constCount;
-extern const Commands *commands;
-extern const int commandCount;
-
diff --git a/security/nss/cmd/platlibs.mk b/security/nss/cmd/platlibs.mk
index a160c3176..17db7c390 100644
--- a/security/nss/cmd/platlibs.mk
+++ b/security/nss/cmd/platlibs.mk
@@ -194,6 +194,18 @@ endif
endif
endif
+ifeq ($(OS_ARCH), SunOS)
+ifeq ($(BUILD_SUN_PKG), 1)
+ifeq ($(USE_64), 1)
+EXTRA_SHARED_LIBS += -R '$$ORIGIN/../lib:/usr/lib/mps/secv1/sparcv9:/usr/lib/mps/sparcv9'
+else
+EXTRA_SHARED_LIBS += -R '$$ORIGIN/../lib:/usr/lib/mps/secv1:/usr/lib/mps'
+endif
+else
+EXTRA_SHARED_LIBS += -R '$$ORIGIN/../lib'
+endif
+endif
+
ifeq ($(OS_ARCH), Darwin)
EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib
endif
diff --git a/security/nss/cmd/smimetools/cmsutil.c b/security/nss/cmd/smimetools/cmsutil.c
index ddaef6c83..0bfef1a56 100644
--- a/security/nss/cmd/smimetools/cmsutil.c
+++ b/security/nss/cmd/smimetools/cmsutil.c
@@ -1287,6 +1287,10 @@ main(int argc, char **argv)
}
break;
case 'i':
+ if (!optstate->value) {
+ fprintf(stderr, "-i option requires filename argument\n");
+ exit(1);
+ }
inFile = PR_Open(optstate->value, PR_RDONLY, 00660);
if (inFile == NULL) {
fprintf(stderr, "%s: unable to open \"%s\" for reading\n",
diff --git a/security/nss/cmd/symkeyutil/symkeyutil.c b/security/nss/cmd/symkeyutil/symkeyutil.c
index f1f3d1c41..05df00a0c 100644
--- a/security/nss/cmd/symkeyutil/symkeyutil.c
+++ b/security/nss/cmd/symkeyutil/symkeyutil.c
@@ -54,20 +54,9 @@
#include <stdio.h>
#include <string.h>
-#if defined(WIN32)
-#include "io.h"
-#endif
-
#include "secutil.h"
-#if defined(XP_UNIX)
-#include <unistd.h>
-#endif
-
#include "nspr.h"
-#include "prtypes.h"
-#include "prtime.h"
-#include "prlong.h"
#include "pk11func.h"
#include "secasn1.h"
@@ -76,9 +65,6 @@
#include "secoid.h"
#include "certdb.h"
#include "nss.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
typedef struct _KeyTypes {
CK_KEY_TYPE keyType;
@@ -119,35 +105,31 @@ static KeyTypes keyArray[] = {
static int keyArraySize = sizeof(keyArray)/sizeof(keyArray[0]);
int
-GetLen(int fd)
+GetLen(PRFileDesc* fd)
{
- struct stat buf;
- int ret;
+ PRFileInfo info;
- ret = fstat(fd,&buf);
- if (ret < 0) return ret;
+ if (PR_SUCCESS != PR_GetOpenFileInfo(fd, &info)) {
+ return -1;
+ }
- return buf.st_size;
+ return info.size;
}
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
int
ReadBuf(char *inFile, SECItem *item)
{
int len;
int ret;
- int fd = open(inFile, O_RDONLY|O_BINARY);
- if (fd < 0) {
- perror(inFile);
+ PRFileDesc* fd = PR_Open(inFile, PR_RDONLY, 0);
+ if (NULL == fd) {
+ SECU_PrintError("symkeyutil", "PR_Open failed");
return -1;
}
len = GetLen(fd);
if (len < 0) {
- perror(inFile);
+ SECU_PrintError("symkeyutil", "PR_GetOpenFileInfo failed");
return -1;
}
item->data = (unsigned char *)PORT_Alloc(len);
@@ -156,14 +138,14 @@ ReadBuf(char *inFile, SECItem *item)
return -1;
}
- ret = read(fd,item->data,item->len);
+ ret = PR_Read(fd,item->data,item->len);
if (ret < 0) {
+ SECU_PrintError("symkeyutil", "PR_Read failed");
PORT_Free(item->data);
item->data = NULL;
- perror(inFile);
return -1;
}
- close(fd);
+ PR_Close(fd);
item->len = len;
return 0;
}
@@ -172,18 +154,18 @@ int
WriteBuf(char *inFile, SECItem *item)
{
int ret;
- int fd = open(inFile, O_WRONLY|O_CREAT|O_BINARY);
- if (fd < 0) {
- perror(inFile);
+ PRFileDesc* fd = PR_Open(inFile, PR_WRONLY|PR_CREATE_FILE, 0x200);
+ if (NULL == fd) {
+ SECU_PrintError("symkeyutil", "PR_Open failed");
return -1;
}
- ret = write(fd,item->data,item->len);
+ ret = PR_Write(fd,item->data,item->len);
if (ret < 0) {
- perror(inFile);
+ SECU_PrintError("symkeyutil", "PR_Write failed");
return -1;
}
- close(fd);
+ PR_Close(fd);
return 0;
}
@@ -1012,7 +994,7 @@ main(int argc, char **argv)
goto shutdown;
}
- /* WriteBuf outputs it's own error using Perror */
+ /* WriteBuf outputs it's own error using SECU_PrintError */
ret = WriteBuf(symKeyUtil.options[opt_KeyFile].arg, &data);
if (ret < 0) {
goto shutdown;
diff --git a/security/nss/lib/certdb/alg1485.c b/security/nss/lib/certdb/alg1485.c
index 916f09cbe..1743bbb7a 100644
--- a/security/nss/lib/certdb/alg1485.c
+++ b/security/nss/lib/certdb/alg1485.c
@@ -695,11 +695,20 @@ AppendAVA(stringBuf *bufp, CERTAVA *ava)
}
/* Check value length */
- if (avaValue->len > maxLen) {
- if (unknownTag) PR_smprintf_free(unknownTag);
- SECITEM_FreeItem(avaValue, PR_TRUE);
- PORT_SetError(SEC_ERROR_INVALID_AVA);
- return SECFailure;
+ if (avaValue->len > maxLen + 3) { /* must be room for "..." */
+ /* avaValue is a UTF8 string, freshly allocated and returned to us
+ ** by CERT_DecodeAVAValue just above, so we can modify it here.
+ ** See if we're in the middle of a multi-byte UTF8 character.
+ */
+ while (((avaValue->data[maxLen] & 0xc0) == 0x80) && maxLen > 0) {
+ maxLen--;
+ }
+ /* add elipsis to signify truncation. */
+ avaValue->data[maxLen++] = '.';
+ avaValue->data[maxLen++] = '.';
+ avaValue->data[maxLen++] = '.';
+ avaValue->data[maxLen] = 0;
+ avaValue->len = maxLen;
}
len = PORT_Strlen(tagName);
@@ -720,7 +729,7 @@ AppendAVA(stringBuf *bufp, CERTAVA *ava)
PORT_SetError(SEC_ERROR_LIBRARY_FAILURE);
rv = SECFailure;
} else {
- PORT_Strcpy(tmpBuf+len, (char *)avaValue->data);
+ PORT_Strncpy(tmpBuf+len, (char *)avaValue->data, avaValue->len + 1);
rv = SECSuccess;
}
} else
diff --git a/security/nss/lib/certdb/certdb.c b/security/nss/lib/certdb/certdb.c
index 84039ea99..d9cd18449 100644
--- a/security/nss/lib/certdb/certdb.c
+++ b/security/nss/lib/certdb/certdb.c
@@ -986,6 +986,10 @@ CERT_CheckCertValidTimes(CERTCertificate *c, PRTime t, PRBool allowOverride)
PRTime notBefore, notAfter, llPendingSlop, tmp1;
SECStatus rv;
+ if (!c) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ return(secCertTimeUndetermined);
+ }
/* if cert is already marked OK, then don't bother to check */
if ( allowOverride && c->timeOK ) {
return(secCertTimeValid);
@@ -1136,6 +1140,7 @@ CERT_KeyUsageAndTypeForCertUsage(SECCertUsage usage,
requiredCertType = NS_CERT_TYPE_OBJECT_SIGNING_CA;
break;
case certUsageAnyCA:
+ case certUsageVerifyCA:
case certUsageStatusResponder:
requiredKeyUsage = KU_KEY_CERT_SIGN;
requiredCertType = NS_CERT_TYPE_OBJECT_SIGNING_CA |
@@ -1336,20 +1341,7 @@ CERT_AddOKDomainName(CERTCertificate *cert, const char *hn)
static SECStatus
cert_TestHostName(char * cn, const char * hn)
{
- char * hndomain;
- int regvalid;
-
- if ((hndomain = PORT_Strchr(hn, '.')) == NULL) {
- /* No domain in URI host name */
- char * cndomain;
- if ((cndomain = PORT_Strchr(cn, '.')) != NULL &&
- (cndomain - cn) > 0) {
- /* there is a domain in the cn string, so chop it off */
- *cndomain = '\0';
- }
- }
-
- regvalid = PORT_RegExpValid(cn);
+ int regvalid = PORT_RegExpValid(cn);
if (regvalid != NON_SXP) {
SECStatus rv;
/* cn is a regular expression, try to match the shexp */
@@ -1370,13 +1362,6 @@ cert_TestHostName(char * cn, const char * hn)
return SECSuccess;
}
- if ( hndomain ) {
- /* compare just domain name with cert name */
- if ( PORT_Strcasecmp(hndomain+1, cn) == 0 ) {
- return SECSuccess;
- }
- }
-
PORT_SetError(SSL_ERROR_BAD_CERT_DOMAIN);
return SECFailure;
}
@@ -2317,7 +2302,7 @@ CERT_ImportCerts(CERTCertDBHandle *certdb, SECCertUsage usage,
}
}
- return (fcerts ? SECSuccess : SECFailure);
+ return ((fcerts || !ncerts) ? SECSuccess : SECFailure);
}
/*
diff --git a/security/nss/lib/certdb/certt.h b/security/nss/lib/certdb/certt.h
index e502bfdda..4eb678bda 100644
--- a/security/nss/lib/certdb/certt.h
+++ b/security/nss/lib/certdb/certt.h
@@ -512,7 +512,9 @@ typedef enum CERTCertOwnerEnum {
typedef enum SECCertTimeValidityEnum {
secCertTimeValid = 0,
secCertTimeExpired = 1,
- secCertTimeNotValidYet = 2
+ secCertTimeNotValidYet = 2,
+ secCertTimeUndetermined = 3 /* validity could not be decoded from the
+ cert, most likely because it was NULL */
} SECCertTimeValidity;
/*
diff --git a/security/nss/lib/certdb/genname.c b/security/nss/lib/certdb/genname.c
index 18957509c..e9cc41ebd 100644
--- a/security/nss/lib/certdb/genname.c
+++ b/security/nss/lib/certdb/genname.c
@@ -75,9 +75,11 @@ const SEC_ASN1Template CERT_NameConstraintSubtreeExcludedTemplate[] = {
static const SEC_ASN1Template CERTNameConstraintsTemplate[] = {
{ SEC_ASN1_SEQUENCE, 0, NULL, sizeof(CERTNameConstraints) },
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 0,
- offsetof(CERTNameConstraints, DERPermited), CERT_NameConstraintSubtreeSubTemplate},
+ offsetof(CERTNameConstraints, DERPermited),
+ CERT_NameConstraintSubtreeSubTemplate},
{ SEC_ASN1_OPTIONAL | SEC_ASN1_CONTEXT_SPECIFIC | 1,
- offsetof(CERTNameConstraints, DERExcluded), CERT_NameConstraintSubtreeSubTemplate},
+ offsetof(CERTNameConstraints, DERExcluded),
+ CERT_NameConstraintSubtreeSubTemplate},
{ 0, }
};
@@ -92,7 +94,7 @@ static const SEC_ASN1Template CERTOthNameTemplate[] = {
};
static const SEC_ASN1Template CERTOtherNameTemplate[] = {
- { SEC_ASN1_CONTEXT_SPECIFIC | 0 ,
+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 0 ,
offsetof(CERTGeneralName, name.OthName), CERTOthNameTemplate,
sizeof(CERTGeneralName) }
};
@@ -120,7 +122,7 @@ static const SEC_ASN1Template CERT_DNSNameTemplate[] = {
};
static const SEC_ASN1Template CERT_X400AddressTemplate[] = {
- { SEC_ASN1_CONTEXT_SPECIFIC | 3,
+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 3,
offsetof(CERTGeneralName, name.other), SEC_AnyTemplate,
sizeof (CERTGeneralName)}
};
@@ -133,7 +135,7 @@ static const SEC_ASN1Template CERT_DirectoryNameTemplate[] = {
static const SEC_ASN1Template CERT_EDIPartyNameTemplate[] = {
- { SEC_ASN1_CONTEXT_SPECIFIC | 5,
+ { SEC_ASN1_CONTEXT_SPECIFIC | SEC_ASN1_CONSTRUCTED | 5,
offsetof(CERTGeneralName, name.other), SEC_AnyTemplate,
sizeof (CERTGeneralName)}
};
diff --git a/security/nss/lib/certdb/polcyxtn.c b/security/nss/lib/certdb/polcyxtn.c
index 507505256..b41e10690 100644
--- a/security/nss/lib/certdb/polcyxtn.c
+++ b/security/nss/lib/certdb/polcyxtn.c
@@ -178,7 +178,7 @@ CERT_DecodeCertificatePoliciesExtension(SECItem *extnValue)
policyInfo = *policyInfos;
policyInfo->oid = SECOID_FindOIDTag(&policyInfo->policyID);
policyQualifiers = policyInfo->policyQualifiers;
- while ( *policyQualifiers != NULL ) {
+ while ( policyQualifiers != NULL && *policyQualifiers != NULL ) {
policyQualifier = *policyQualifiers;
policyQualifier->oid =
SECOID_FindOIDTag(&policyQualifier->qualifierID);
@@ -416,7 +416,7 @@ CERT_GetCertCommentString(CERTCertificate *cert)
if ( (*policyInfos)->oid == SEC_OID_VERISIGN_USER_NOTICES ) {
policyQualifiers = (*policyInfos)->policyQualifiers;
/* search through the policy qualifiers looking for user notice */
- while ( *policyQualifiers != NULL ) {
+ while ( policyQualifiers != NULL && *policyQualifiers != NULL ) {
qualifier = *policyQualifiers;
if ( qualifier->oid == SEC_OID_PKIX_USER_NOTICE_QUALIFIER ) {
retstring =
diff --git a/security/nss/lib/certdb/stanpcertdb.c b/security/nss/lib/certdb/stanpcertdb.c
index a908c0f6d..dc2f6728b 100644
--- a/security/nss/lib/certdb/stanpcertdb.c
+++ b/security/nss/lib/certdb/stanpcertdb.c
@@ -195,7 +195,7 @@ __CERT_AddTempCertToPerm(CERTCertificate *cert, char *nickname,
nssTrustDomain_AddCertsToCache(STAN_GetDefaultTrustDomain(), &c, 1);
/* reset the CERTCertificate fields */
cert->nssCertificate = NULL;
- cert = STAN_GetCERTCertificate(c); /* will return same pointer */
+ cert = STAN_GetCERTCertificateOrRelease(c); /* should return same pointer */
if (!cert) {
return SECFailure;
}
@@ -248,7 +248,7 @@ __CERT_NewTempCertificate(CERTCertDBHandle *handle, SECItem *derCert,
PORT_SetError(SEC_ERROR_REUSED_ISSUER_AND_SERIAL);
cc = NULL;
} else {
- cc = STAN_GetCERTCertificate(c);
+ cc = STAN_GetCERTCertificateOrRelease(c);
}
return cc;
}
@@ -272,6 +272,8 @@ __CERT_NewTempCertificate(CERTCertDBHandle *handle, SECItem *derCert,
/* Forces a decoding of the cert in order to obtain the parts used
* below
*/
+ /* 'c' is not adopted here, if we fail loser frees what has been
+ * allocated so far for 'c' */
cc = STAN_GetCERTCertificate(c);
if (!cc) {
goto loser;
@@ -318,7 +320,7 @@ __CERT_NewTempCertificate(CERTCertDBHandle *handle, SECItem *derCert,
if (tempCert) {
/* and use the "official" entry */
c = tempCert;
- cc = STAN_GetCERTCertificate(c);
+ cc = STAN_GetCERTCertificateOrRelease(c);
if (!cc) {
return NULL;
}
@@ -389,24 +391,12 @@ CERT_FindCertByName(CERTCertDBHandle *handle, SECItem *name)
NULL, &usage, NULL);
c = get_best_temp_or_perm(ct, cp);
if (ct) {
- CERTCertificate *cert = STAN_GetCERTCertificate(ct);
- if (!cert) {
- return NULL;
- }
- CERT_DestroyCertificate(cert);
+ CERT_DestroyCertificate(STAN_GetCERTCertificateOrRelease(ct));
}
if (cp) {
- CERTCertificate *cert = STAN_GetCERTCertificate(cp);
- if (!cert) {
- return NULL;
- }
- CERT_DestroyCertificate(cert);
- }
- if (c) {
- return STAN_GetCERTCertificate(c);
- } else {
- return NULL;
+ CERT_DestroyCertificate(STAN_GetCERTCertificateOrRelease(cp));
}
+ return c ? STAN_GetCERTCertificateOrRelease(c) : NULL;
}
CERTCertificate *
@@ -445,20 +435,12 @@ CERT_FindCertByNickname(CERTCertDBHandle *handle, char *nickname)
c = get_best_temp_or_perm(ct, STAN_GetNSSCertificate(cert));
CERT_DestroyCertificate(cert);
if (ct) {
- CERTCertificate *cert2 = STAN_GetCERTCertificate(ct);
- if (!cert2) {
- return NULL;
- }
- CERT_DestroyCertificate(cert2);
+ CERT_DestroyCertificate(STAN_GetCERTCertificateOrRelease(ct));
}
} else {
c = ct;
}
- if (c) {
- return STAN_GetCERTCertificate(c);
- } else {
- return NULL;
- }
+ return c ? STAN_GetCERTCertificateOrRelease(c) : NULL;
}
CERTCertificate *
@@ -475,7 +457,7 @@ CERT_FindCertByDERCert(CERTCertDBHandle *handle, SECItem *derCert)
&encoding);
if (!c) return NULL;
}
- return STAN_GetCERTCertificate(c);
+ return STAN_GetCERTCertificateOrRelease(c);
}
CERTCertificate *
@@ -507,19 +489,12 @@ CERT_FindCertByNicknameOrEmailAddr(CERTCertDBHandle *handle, char *name)
c = get_best_temp_or_perm(ct, STAN_GetNSSCertificate(cert));
CERT_DestroyCertificate(cert);
if (ct) {
- CERTCertificate *cert2 = STAN_GetCERTCertificate(ct);
- if (!cert2) {
- return NULL;
- }
- CERT_DestroyCertificate(cert2);
+ CERT_DestroyCertificate(STAN_GetCERTCertificateOrRelease(ct));
}
} else {
c = ct;
}
- if (c) {
- return STAN_GetCERTCertificate(c);
- }
- return NULL;
+ return c ? STAN_GetCERTCertificateOrRelease(c) : NULL;
}
static void
@@ -575,8 +550,10 @@ CERT_CreateSubjectCertList(CERTCertList *certList, CERTCertDBHandle *handle,
/* Iterate over the matching temp certs. Add them to the list */
ci = tSubjectCerts;
while (ci && *ci) {
- cert = STAN_GetCERTCertificate(*ci);
+ cert = STAN_GetCERTCertificateOrRelease(*ci);
+ /* *ci may be invalid at this point, don't reference it again */
if (cert) {
+ /* NOTE: add_to_subject_list adopts the incoming cert. */
add_to_subject_list(certList, cert, validOnly, sorttime);
}
ci++;
@@ -584,18 +561,23 @@ CERT_CreateSubjectCertList(CERTCertList *certList, CERTCertDBHandle *handle,
/* Iterate over the matching perm certs. Add them to the list */
ci = pSubjectCerts;
while (ci && *ci) {
- cert = STAN_GetCERTCertificate(*ci);
+ cert = STAN_GetCERTCertificateOrRelease(*ci);
+ /* *ci may be invalid at this point, don't reference it again */
if (cert) {
+ /* NOTE: add_to_subject_list adopts the incoming cert. */
add_to_subject_list(certList, cert, validOnly, sorttime);
}
ci++;
}
+ /* all the references have been adopted or freed at this point, just
+ * free the arrays now */
nss_ZFreeIf(tSubjectCerts);
nss_ZFreeIf(pSubjectCerts);
return certList;
loser:
- nss_ZFreeIf(tSubjectCerts);
- nss_ZFreeIf(pSubjectCerts);
+ /* need to free the references in tSubjectCerts and pSubjectCerts! */
+ nssCertificateArray_Destroy(tSubjectCerts);
+ nssCertificateArray_Destroy(pSubjectCerts);
if (myList && certList != NULL) {
CERT_DestroyCertList(certList);
}
diff --git a/security/nss/lib/certhigh/certvfy.c b/security/nss/lib/certhigh/certvfy.c
index 3ace0076e..4bada1b40 100644
--- a/security/nss/lib/certhigh/certvfy.c
+++ b/security/nss/lib/certhigh/certvfy.c
@@ -665,10 +665,10 @@ cert_VerifyCertChain(CERTCertDBHandle *handle, CERTCertificate *cert,
unsigned int requiredFlags;
PRArenaPool *arena = NULL;
CERTGeneralName *namesList = NULL;
- CERTGeneralName *subjectNameList = NULL;
CERTCertificate **certsList = NULL;
int certsListLen = 16;
int namesCount = 0;
+ PRBool subjectCertIsSelfIssued;
cbd_FortezzaType last_type = cbd_None;
@@ -743,32 +743,42 @@ cert_VerifyCertChain(CERTCertDBHandle *handle, CERTCertificate *cert,
if (certsList == NULL)
goto loser;
+ /* RFC 3280 says that the name constraints will apply to the names
+ ** in the leaf (EE) cert, whether it is self issued or not, so
+ ** we pretend that it is not.
+ */
+ subjectCertIsSelfIssued = PR_FALSE;
for ( count = 0; count < CERT_MAX_CERT_CHAIN; count++ ) {
- int subjectNameListLen;
- int i;
PRBool validCAOverride = PR_FALSE;
/* Construct a list of names for the current and all previous
- * certifcates to be verified against the name constraints extension
- * of the issuer certificate.
+ * certifcates (except leaf (EE) certs, root CAs, and self-issued
+ * intermediate CAs) to be verified against the name constraints
+ * extension of the issuer certificate.
*/
- subjectNameList = CERT_GetCertificateNames(subjectCert, arena);
- subjectNameListLen = CERT_GetNamesLength(subjectNameList);
- if (certsListLen <= namesCount + subjectNameListLen) {
- certsListLen = (namesCount + subjectNameListLen) * 2;
- certsList =
- (CERTCertificate **)PORT_Realloc(certsList,
- certsListLen * sizeof(CERTCertificate *));
- if (certsList == NULL) {
- goto loser;
+ if (subjectCertIsSelfIssued == PR_FALSE) {
+ CERTGeneralName *subjectNameList;
+ int subjectNameListLen;
+ int i;
+ subjectNameList = CERT_GetCertificateNames(subjectCert, arena);
+ subjectNameListLen = CERT_GetNamesLength(subjectNameList);
+ if (certsListLen <= namesCount + subjectNameListLen) {
+ CERTCertificate **tmpCertsList;
+ certsListLen = (namesCount + subjectNameListLen) * 2;
+ tmpCertsList =
+ (CERTCertificate **)PORT_Realloc(certsList,
+ certsListLen * sizeof(CERTCertificate *));
+ if (tmpCertsList == NULL) {
+ goto loser;
+ }
+ certsList = tmpCertsList;
}
+ for (i = 0; i < subjectNameListLen; i++) {
+ certsList[namesCount + i] = subjectCert;
+ }
+ namesCount += subjectNameListLen;
+ namesList = cert_CombineNamesLists(namesList, subjectNameList);
}
- for (i = 0; i < subjectNameListLen; i++) {
- certsList[namesCount + i] = subjectCert;
- }
- namesCount += subjectNameListLen;
- namesList = cert_CombineNamesLists(namesList, subjectNameList);
-
/* find the certificate of the issuer */
issuerCert = CERT_FindCertIssuer(subjectCert, t, certUsage);
if ( ! issuerCert ) {
@@ -951,9 +961,15 @@ cert_VerifyCertChain(CERTCertDBHandle *handle, CERTCertificate *cert,
LOG_ERROR(log, issuerCert, count+1, 0);
goto loser;
}
- if (issuerCert->derIssuer.len == 0 ||
- !SECITEM_ItemsAreEqual(&issuerCert->derIssuer,
- &issuerCert->derSubject)) {
+ /* The issuer cert will be the subject cert in the next loop.
+ * A cert is self-issued if its subject and issuer are equal and
+ * both are of non-zero length.
+ */
+ subjectCertIsSelfIssued = (PRBool)
+ SECITEM_ItemsAreEqual(&issuerCert->derIssuer,
+ &issuerCert->derSubject) &&
+ issuerCert->derSubject.len > 0;
+ if (subjectCertIsSelfIssued == PR_FALSE) {
/* RFC 3280 says only non-self-issued intermediate CA certs
* count in path length.
*/
@@ -1867,7 +1883,7 @@ CERT_GetCertNicknameWithValidity(PRArenaPool *arena, CERTCertificate *cert,
char *expiredString, char *notYetGoodString)
{
SECCertTimeValidity validity;
- char *nickname, *tmpstr;
+ char *nickname = NULL, *tmpstr = NULL;
validity = CERT_CheckCertValidTimes(cert, PR_Now(), PR_FALSE);
@@ -1890,11 +1906,16 @@ CERT_GetCertNicknameWithValidity(PRArenaPool *arena, CERTCertificate *cert,
if ( validity == secCertTimeExpired ) {
tmpstr = PR_smprintf("%s%s", cert->nickname,
expiredString);
- } else {
+ } else if ( validity == secCertTimeNotValidYet ) {
/* not yet valid */
tmpstr = PR_smprintf("%s%s", cert->nickname,
notYetGoodString);
- }
+ } else {
+ /* undetermined */
+ tmpstr = PR_smprintf("%s",
+ "(NULL) (Validity Unknown)");
+ }
+
if ( tmpstr == NULL ) {
goto loser;
}
diff --git a/security/nss/lib/ckfw/builtins/certdata.c b/security/nss/lib/ckfw/builtins/certdata.c
index 5af3bb071..9b6b98417 100644
--- a/security/nss/lib/ckfw/builtins/certdata.c
+++ b/security/nss/lib/ckfw/builtins/certdata.c
@@ -39,15 +39,15 @@ static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$""; @(#) $R
#include "builtins.h"
#endif /* BUILTINS_H */
-static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE;
-static const CK_CERTIFICATE_TYPE ckc_x_509 = CKC_X_509;
-static const CK_BBOOL ck_false = CK_FALSE;
+static const CK_OBJECT_CLASS cko_netscape_trust = CKO_NETSCAPE_TRUST;
static const CK_TRUST ckt_netscape_valid = CKT_NETSCAPE_VALID;
+static const CK_OBJECT_CLASS cko_netscape_builtin_root_list = CKO_NETSCAPE_BUILTIN_ROOT_LIST;
static const CK_TRUST ckt_netscape_trusted_delegator = CKT_NETSCAPE_TRUSTED_DELEGATOR;
+static const CK_CERTIFICATE_TYPE ckc_x_509 = CKC_X_509;
static const CK_OBJECT_CLASS cko_data = CKO_DATA;
+static const CK_BBOOL ck_false = CK_FALSE;
static const CK_BBOOL ck_true = CK_TRUE;
-static const CK_OBJECT_CLASS cko_netscape_builtin_root_list = CKO_NETSCAPE_BUILTIN_ROOT_LIST;
-static const CK_OBJECT_CLASS cko_netscape_trust = CKO_NETSCAPE_TRUST;
+static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE;
#ifdef DEBUG
static const CK_ATTRIBUTE_TYPE nss_builtins_types_0 [] = {
CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL, CKA_APPLICATION, CKA_VALUE
@@ -440,6 +440,138 @@ static const CK_ATTRIBUTE_TYPE nss_builtins_types_128 [] = {
static const CK_ATTRIBUTE_TYPE nss_builtins_types_129 [] = {
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
};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_130 [] = {
+ 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_131 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_132 [] = {
+ 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_133 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_134 [] = {
+ 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_135 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_136 [] = {
+ 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_137 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_138 [] = {
+ 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_139 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_140 [] = {
+ 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_141 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_142 [] = {
+ 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_143 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_144 [] = {
+ 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_145 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_146 [] = {
+ 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_147 [] = {
+ 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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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
+};
+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 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_162 [] = {
+ 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_163 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_164 [] = {
+ 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_165 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_166 [] = {
+ 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_167 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_168 [] = {
+ 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_169 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_170 [] = {
+ 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_171 [] = {
+ 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
+};
+static const CK_ATTRIBUTE_TYPE nss_builtins_types_172 [] = {
+ 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_173 [] = {
+ 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
+};
#ifdef DEBUG
static const NSSItem nss_builtins_items_0 [] = {
{ (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
@@ -448,7 +580,7 @@ static const NSSItem nss_builtins_items_0 [] = {
{ (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
{ (void *)"CVS ID", (PRUint32)7 },
{ (void *)"NSS", (PRUint32)4 },
- { (void *)"@(#) $RCSfile$ $Revision$ $Date$ $Name$""; @(#) $RCSfile$ $Revision$ $Date$ $Name$", (PRUint32)179 }
+ { (void *)"@(#) $RCSfile$ $Revision$ $Date$ $Name$""; @(#) $RCSfile$ $Revision$ $Date$ $Name$", (PRUint32)212 }
};
#endif /* DEBUG */
static const NSSItem nss_builtins_items_1 [] = {
@@ -8075,6 +8207,3222 @@ static const NSSItem nss_builtins_items_129 [] = {
{ (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
{ (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
};
+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 *)"Certum Root CA", (PRUint32)15 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061"
+"\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164"
+"\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020"
+"\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101"
+, (PRUint32)64 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061"
+"\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164"
+"\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020"
+"\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101"
+, (PRUint32)64 },
+ { (void *)"\002\003\001\000\040"
+, (PRUint32)5 },
+ { (void *)"\060\202\003\014\060\202\001\364\240\003\002\001\002\002\003\001"
+"\000\040\060\015\006\011\052\206\110\206\367\015\001\001\005\005"
+"\000\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114"
+"\061\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145"
+"\164\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060"
+"\020\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103"
+"\101\060\036\027\015\060\062\060\066\061\061\061\060\064\066\063"
+"\071\132\027\015\062\067\060\066\061\061\061\060\064\066\063\071"
+"\132\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114"
+"\061\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145"
+"\164\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060"
+"\020\006\003\125\004\003\023\011\103\145\162\164\165\155\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\316\261\301\056\323\117\174\315\045\316\030\076\117\304"
+"\214\157\200\152\163\310\133\121\370\233\322\334\273\000\134\261"
+"\240\374\165\003\356\201\360\210\356\043\122\351\346\025\063\215"
+"\254\055\011\305\166\371\053\071\200\211\344\227\113\220\245\250"
+"\170\370\163\103\173\244\141\260\330\130\314\341\154\146\176\234"
+"\363\011\136\125\143\204\325\250\357\363\261\056\060\150\263\304"
+"\074\330\254\156\215\231\132\220\116\064\334\066\232\217\201\210"
+"\120\267\155\226\102\011\363\327\225\203\015\101\113\260\152\153"
+"\370\374\017\176\142\237\147\304\355\046\137\020\046\017\010\117"
+"\360\244\127\050\316\217\270\355\105\366\156\356\045\135\252\156"
+"\071\276\344\223\057\331\107\240\162\353\372\246\133\257\312\123"
+"\077\342\016\306\226\126\021\156\367\351\146\251\046\330\177\225"
+"\123\355\012\205\210\272\117\051\245\102\214\136\266\374\205\040"
+"\000\252\150\013\241\032\205\001\234\304\106\143\202\210\266\042"
+"\261\356\376\252\106\131\176\317\065\054\325\266\332\135\367\110"
+"\063\024\124\266\353\331\157\316\315\210\326\253\033\332\226\073"
+"\035\131\002\003\001\000\001\243\023\060\021\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"
+"\270\215\316\357\347\024\272\317\356\260\104\222\154\264\071\076"
+"\242\204\156\255\270\041\167\322\324\167\202\207\346\040\101\201"
+"\356\342\370\021\267\143\321\027\067\276\031\166\044\034\004\032"
+"\114\353\075\252\147\157\055\324\315\376\145\061\160\305\033\246"
+"\002\012\272\140\173\155\130\302\232\111\376\143\062\013\153\343"
+"\072\300\254\253\073\260\350\323\011\121\214\020\203\306\064\340"
+"\305\053\340\032\266\140\024\047\154\062\167\214\274\262\162\230"
+"\317\315\314\077\271\310\044\102\024\326\127\374\346\046\103\251"
+"\035\345\200\220\316\003\124\050\076\367\077\323\370\115\355\152"
+"\012\072\223\023\233\073\024\043\023\143\234\077\321\207\047\171"
+"\345\114\121\343\001\255\205\135\032\073\261\325\163\020\244\323"
+"\362\274\156\144\365\132\126\220\250\307\016\114\164\017\056\161"
+"\073\367\310\107\364\151\157\025\362\021\136\203\036\234\174\122"
+"\256\375\002\332\022\250\131\147\030\333\274\160\335\233\261\151"
+"\355\200\316\211\100\110\152\016\065\312\051\146\025\041\224\054"
+"\350\140\052\233\205\112\100\363\153\212\044\354\006\026\054\163"
+, (PRUint32)784 }
+};
+static const NSSItem nss_builtins_items_131 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Certum Root CA", (PRUint32)15 },
+ { (void *)"\142\122\334\100\367\021\103\242\057\336\236\367\064\216\006\102"
+"\121\261\201\030"
+, (PRUint32)20 },
+ { (void *)"\054\217\237\146\035\030\220\261\107\046\235\216\206\202\214\251"
+, (PRUint32)16 },
+ { (void *)"\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061"
+"\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164"
+"\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020"
+"\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101"
+, (PRUint32)64 },
+ { (void *)"\002\003\001\000\040"
+, (PRUint32)5 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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 *)"Comodo AAA Services root", (PRUint32)25 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003"
+"\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151"
+"\143\141\164\145\040\123\145\162\166\151\143\145\163"
+, (PRUint32)125 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003"
+"\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151"
+"\143\141\164\145\040\123\145\162\166\151\143\145\163"
+, (PRUint32)125 },
+ { (void *)"\002\001\001"
+, (PRUint32)3 },
+ { (void *)"\060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001"
+"\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\107\102\061\033"
+"\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162"
+"\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006"
+"\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060"
+"\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103"
+"\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125"
+"\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143"
+"\141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015"
+"\060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062"
+"\070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013"
+"\060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006"
+"\003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141"
+"\156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004"
+"\007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003"
+"\125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114"
+"\151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014"
+"\030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145"
+"\040\123\145\162\166\151\143\145\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\276\100\235\364\156\341"
+"\352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052"
+"\376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232"
+"\006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013"
+"\123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232"
+"\022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336"
+"\334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204"
+"\047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110"
+"\260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170"
+"\142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366"
+"\366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314"
+"\326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121"
+"\254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057"
+"\237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230"
+"\265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046"
+"\173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330"
+"\336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243"
+"\201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024"
+"\240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177"
+"\320\060\244\264\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\173\006\003\125\035\037\004\164\060\162"
+"\060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143"
+"\162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057"
+"\101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145"
+"\162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062"
+"\206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155"
+"\157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151"
+"\146\151\143\141\164\145\123\145\162\166\151\143\145\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\010\126\374\002\360\233\350\377\244\372"
+"\326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274"
+"\024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120"
+"\030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277"
+"\375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112"
+"\363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363"
+"\106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302"
+"\016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067"
+"\125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366"
+"\033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003"
+"\154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217"
+"\372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042"
+"\227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242"
+"\156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362"
+"\343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267"
+"\262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237"
+"\225\351\066\226\230\156"
+, (PRUint32)1078 }
+};
+static const NSSItem nss_builtins_items_133 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Comodo AAA Services root", (PRUint32)25 },
+ { (void *)"\321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027"
+"\144\330\343\111"
+, (PRUint32)20 },
+ { (void *)"\111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320"
+, (PRUint32)16 },
+ { (void *)"\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003"
+"\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151"
+"\143\141\164\145\040\123\145\162\166\151\143\145\163"
+, (PRUint32)125 },
+ { (void *)"\002\001\001"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Comodo Secure Services root", (PRUint32)28 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003"
+"\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164"
+"\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163"
+, (PRUint32)128 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003"
+"\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164"
+"\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163"
+, (PRUint32)128 },
+ { (void *)"\002\001\001"
+, (PRUint32)3 },
+ { (void *)"\060\202\004\077\060\202\003\047\240\003\002\001\002\002\001\001"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033"
+"\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162"
+"\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006"
+"\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060"
+"\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103"
+"\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003\125"
+"\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164\151"
+"\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163\060"
+"\036\027\015\060\064\060\061\060\061\060\060\060\060\060\060\132"
+"\027\015\062\070\061\062\063\061\062\063\065\071\065\071\132\060"
+"\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033"
+"\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162"
+"\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006"
+"\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060"
+"\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103"
+"\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003\125"
+"\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164\151"
+"\146\151\143\141\164\145\040\123\145\162\166\151\143\145\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"
+"\300\161\063\202\212\320\160\353\163\207\202\100\325\035\344\313"
+"\311\016\102\220\371\336\064\271\241\272\021\364\045\205\363\314"
+"\162\155\362\173\227\153\263\007\361\167\044\221\137\045\217\366"
+"\164\075\344\200\302\370\074\015\363\277\100\352\367\310\122\321"
+"\162\157\357\310\253\101\270\156\056\027\052\225\151\014\315\322"
+"\036\224\173\055\224\035\252\165\327\263\230\313\254\274\144\123"
+"\100\274\217\254\254\066\313\134\255\273\335\340\224\027\354\321"
+"\134\320\277\357\245\225\311\220\305\260\254\373\033\103\337\172"
+"\010\135\267\270\362\100\033\053\047\236\120\316\136\145\202\210"
+"\214\136\323\116\014\172\352\010\221\266\066\252\053\102\373\352"
+"\302\243\071\345\333\046\070\255\213\012\356\031\143\307\034\044"
+"\337\003\170\332\346\352\301\107\032\013\013\106\011\335\002\374"
+"\336\313\207\137\327\060\143\150\241\256\334\062\241\272\276\376"
+"\104\253\150\266\245\027\025\375\275\325\247\247\232\344\104\063"
+"\351\210\216\374\355\121\353\223\161\116\255\001\347\104\216\253"
+"\055\313\250\376\001\111\110\360\300\335\307\150\330\222\376\075"
+"\002\003\001\000\001\243\201\307\060\201\304\060\035\006\003\125"
+"\035\016\004\026\004\024\074\330\223\210\302\300\202\011\314\001"
+"\231\006\223\040\351\236\160\011\143\117\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\201\201\006\003"
+"\125\035\037\004\172\060\170\060\073\240\071\240\067\206\065\150"
+"\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157"
+"\143\141\056\143\157\155\057\123\145\143\165\162\145\103\145\162"
+"\164\151\146\151\143\141\164\145\123\145\162\166\151\143\145\163"
+"\056\143\162\154\060\071\240\067\240\065\206\063\150\164\164\160"
+"\072\057\057\143\162\154\056\143\157\155\157\144\157\056\156\145"
+"\164\057\123\145\143\165\162\145\103\145\162\164\151\146\151\143"
+"\141\164\145\123\145\162\166\151\143\145\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\207\001\155\043\035\176\133\027\175\301\141\062\317"
+"\217\347\363\212\224\131\146\340\236\050\250\136\323\267\364\064"
+"\346\252\071\262\227\026\305\202\157\062\244\351\214\347\257\375"
+"\357\302\350\271\113\252\243\364\346\332\215\145\041\373\272\200"
+"\353\046\050\205\032\376\071\214\336\133\004\004\264\124\371\243"
+"\147\236\101\372\011\122\314\005\110\250\311\077\041\004\036\316"
+"\110\153\374\205\350\302\173\257\177\267\314\370\137\072\375\065"
+"\306\015\357\227\334\114\253\021\341\153\313\061\321\154\373\110"
+"\200\253\334\234\067\270\041\024\113\015\161\075\354\203\063\156"
+"\321\156\062\026\354\230\307\026\213\131\246\064\253\005\127\055"
+"\223\367\252\023\313\322\023\342\267\056\073\315\153\120\027\011"
+"\150\076\265\046\127\356\266\340\266\335\271\051\200\171\175\217"
+"\243\360\244\050\244\025\304\205\364\047\324\153\277\345\134\344"
+"\145\002\166\124\264\343\067\146\044\323\031\141\310\122\020\345"
+"\213\067\232\271\251\371\035\277\352\231\222\141\226\377\001\315"
+"\241\137\015\274\161\274\016\254\013\035\107\105\035\301\354\174"
+"\354\375\051"
+, (PRUint32)1091 }
+};
+static const NSSItem nss_builtins_items_135 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Comodo Secure Services root", (PRUint32)28 },
+ { (void *)"\112\145\325\364\035\357\071\270\270\220\112\112\323\144\201\063"
+"\317\307\241\321"
+, (PRUint32)20 },
+ { (void *)"\323\331\275\256\237\254\147\044\263\310\033\122\341\271\251\275"
+, (PRUint32)16 },
+ { (void *)"\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003"
+"\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164"
+"\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163"
+, (PRUint32)128 },
+ { (void *)"\002\001\001"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Comodo Trusted Services root", (PRUint32)29 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162"
+"\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145"
+"\163"
+, (PRUint32)129 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162"
+"\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145"
+"\163"
+, (PRUint32)129 },
+ { (void *)"\002\001\001"
+, (PRUint32)3 },
+ { (void *)"\060\202\004\103\060\202\003\053\240\003\002\001\002\002\001\001"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033"
+"\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162"
+"\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006"
+"\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060"
+"\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103"
+"\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003\125"
+"\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162\164"
+"\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163"
+"\060\036\027\015\060\064\060\061\060\061\060\060\060\060\060\060"
+"\132\027\015\062\070\061\062\063\061\062\063\065\071\065\071\132"
+"\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162"
+"\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145"
+"\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\337\161\157\066\130\123\132\362\066\124\127\200\304\164"
+"\010\040\355\030\177\052\035\346\065\232\036\045\254\234\345\226"
+"\176\162\122\240\025\102\333\131\335\144\172\032\320\270\173\335"
+"\071\025\274\125\110\304\355\072\000\352\061\021\272\362\161\164"
+"\032\147\270\317\063\314\250\061\257\243\343\327\177\277\063\055"
+"\114\152\074\354\213\303\222\322\123\167\044\164\234\007\156\160"
+"\374\275\013\133\166\272\137\362\377\327\067\113\112\140\170\367"
+"\360\372\312\160\264\352\131\252\243\316\110\057\251\303\262\013"
+"\176\027\162\026\014\246\007\014\033\070\317\311\142\267\077\240"
+"\223\245\207\101\362\267\160\100\167\330\276\024\174\343\250\300"
+"\172\216\351\143\152\321\017\232\306\322\364\213\072\024\004\126"
+"\324\355\270\314\156\365\373\342\054\130\275\177\117\153\053\367"
+"\140\044\130\044\316\046\357\064\221\072\325\343\201\320\262\360"
+"\004\002\327\133\267\076\222\254\153\022\212\371\344\005\260\073"
+"\221\111\134\262\353\123\352\370\237\107\206\356\277\225\300\300"
+"\006\237\322\133\136\021\033\364\307\004\065\051\322\125\134\344"
+"\355\353\002\003\001\000\001\243\201\311\060\201\306\060\035\006"
+"\003\125\035\016\004\026\004\024\305\173\130\275\355\332\045\151"
+"\322\367\131\026\250\263\062\300\173\047\133\364\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\201\203"
+"\006\003\125\035\037\004\174\060\172\060\074\240\072\240\070\206"
+"\066\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157"
+"\144\157\143\141\056\143\157\155\057\124\162\165\163\164\145\144"
+"\103\145\162\164\151\146\151\143\141\164\145\123\145\162\166\151"
+"\143\145\163\056\143\162\154\060\072\240\070\240\066\206\064\150"
+"\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157"
+"\056\156\145\164\057\124\162\165\163\164\145\144\103\145\162\164"
+"\151\146\151\143\141\164\145\123\145\162\166\151\143\145\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\310\223\201\073\211\264\257\270\204"
+"\022\114\215\322\360\333\160\272\127\206\025\064\020\271\057\177"
+"\036\260\250\211\140\241\212\302\167\014\120\112\233\000\213\330"
+"\213\364\101\342\320\203\212\112\034\024\006\260\243\150\005\160"
+"\061\060\247\123\233\016\351\112\240\130\151\147\016\256\235\366"
+"\245\054\101\277\074\006\153\344\131\314\155\020\361\226\157\037"
+"\337\364\004\002\244\237\105\076\310\330\372\066\106\104\120\077"
+"\202\227\221\037\050\333\030\021\214\052\344\145\203\127\022\022"
+"\214\027\077\224\066\376\135\260\300\004\167\023\270\364\025\325"
+"\077\070\314\224\072\125\320\254\230\365\272\000\137\340\206\031"
+"\201\170\057\050\300\176\323\314\102\012\365\256\120\240\321\076"
+"\306\241\161\354\077\240\040\214\146\072\211\264\216\324\330\261"
+"\115\045\107\356\057\210\310\265\341\005\105\300\276\024\161\336"
+"\172\375\216\173\175\115\010\226\245\022\163\360\055\312\067\047"
+"\164\022\047\114\313\266\227\351\331\256\010\155\132\071\100\335"
+"\005\107\165\152\132\041\263\243\030\317\116\367\056\127\267\230"
+"\160\136\310\304\170\260\142"
+, (PRUint32)1095 }
+};
+static const NSSItem nss_builtins_items_137 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Comodo Trusted Services root", (PRUint32)29 },
+ { (void *)"\341\237\343\016\213\204\140\236\200\233\027\015\162\250\305\272"
+"\156\024\011\275"
+, (PRUint32)20 },
+ { (void *)"\221\033\077\156\315\236\253\356\007\376\037\161\322\263\141\047"
+, (PRUint32)16 },
+ { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061"
+"\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145"
+"\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016"
+"\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032"
+"\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040"
+"\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162"
+"\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145"
+"\163"
+, (PRUint32)129 },
+ { (void *)"\002\001\001"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS Chained CAs root", (PRUint32)21 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023"
+"\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040"
+"\103\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006"
+"\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141"
+"\151\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151"
+"\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171"
+"\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026"
+"\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163"
+, (PRUint32)288 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023"
+"\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040"
+"\103\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006"
+"\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141"
+"\151\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151"
+"\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171"
+"\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026"
+"\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163"
+, (PRUint32)288 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023\052"
+"\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040\103"
+"\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157\156"
+"\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006\003"
+"\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141\151"
+"\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151\143"
+"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061"
+"\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017"
+"\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060"
+"\036\027\015\060\061\061\062\062\071\060\060\065\063\065\070\132"
+"\027\015\062\065\061\062\062\067\060\060\065\063\065\070\132\060"
+"\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023\052"
+"\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040\103"
+"\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157\156"
+"\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006\003"
+"\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141\151"
+"\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151\143"
+"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061"
+"\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017"
+"\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060"
+"\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001\005"
+"\000\003\201\215\000\060\201\211\002\201\201\000\334\126\222\111"
+"\262\224\040\274\230\117\120\353\150\244\247\111\013\277\322\061"
+"\350\307\117\302\206\013\372\150\375\103\132\212\363\140\222\065"
+"\231\070\273\115\003\122\041\133\360\067\231\065\341\101\040\201"
+"\205\201\005\161\201\235\264\225\031\251\137\166\064\056\143\067"
+"\065\127\216\264\037\102\077\025\134\341\172\301\137\023\030\062"
+"\061\311\255\276\243\307\203\146\036\271\234\004\023\313\151\301"
+"\006\336\060\006\273\063\243\265\037\360\217\157\316\377\226\350"
+"\124\276\146\200\256\153\333\101\204\066\242\075\002\003\001\000"
+"\001\243\202\004\103\060\202\004\077\060\035\006\003\125\035\016"
+"\004\026\004\024\241\255\061\261\371\076\341\027\246\310\253\064"
+"\374\122\207\011\036\142\122\101\060\202\001\116\006\003\125\035"
+"\043\004\202\001\105\060\202\001\101\200\024\241\255\061\261\371"
+"\076\341\027\246\310\253\064\374\122\207\011\036\142\122\101\241"
+"\202\001\044\244\202\001\040\060\202\001\034\061\013\060\011\006"
+"\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004"
+"\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020"
+"\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141"
+"\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111"
+"\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151"
+"\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056"
+"\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106"
+"\056\040\040\102\055\066\060\071\062\071\064\065\062\061\063\060"
+"\061\006\003\125\004\013\023\052\111\120\123\040\103\101\040\103"
+"\150\141\151\156\145\144\040\103\101\163\040\103\145\162\164\151"
+"\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151"
+"\164\171\061\063\060\061\006\003\125\004\003\023\052\111\120\123"
+"\040\103\101\040\103\150\141\151\156\145\144\040\103\101\163\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110"
+"\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154"
+"\056\151\160\163\056\145\163\202\001\000\060\014\006\003\125\035"
+"\023\004\005\060\003\001\001\377\060\014\006\003\125\035\017\004"
+"\005\003\003\007\377\200\060\153\006\003\125\035\045\004\144\060"
+"\142\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001"
+"\005\005\007\003\002\006\010\053\006\001\005\005\007\003\003\006"
+"\010\053\006\001\005\005\007\003\004\006\010\053\006\001\005\005"
+"\007\003\010\006\012\053\006\001\004\001\202\067\002\001\025\006"
+"\012\053\006\001\004\001\202\067\002\001\026\006\012\053\006\001"
+"\004\001\202\067\012\003\001\006\012\053\006\001\004\001\202\067"
+"\012\003\004\060\021\006\011\140\206\110\001\206\370\102\001\001"
+"\004\004\003\002\000\007\060\032\006\003\125\035\021\004\023\060"
+"\021\201\017\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\060\032\006\003\125\035\022\004\023\060\021\201\017\151"
+"\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060\102"
+"\006\011\140\206\110\001\206\370\102\001\015\004\065\026\063\103"
+"\150\141\151\156\145\144\040\103\101\040\103\145\162\164\151\146"
+"\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171\040"
+"\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145"
+"\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002\004"
+"\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151\160"
+"\163\056\145\163\057\151\160\163\062\060\060\062\057\060\067\006"
+"\011\140\206\110\001\206\370\102\001\004\004\052\026\050\150\164"
+"\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163\057"
+"\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062\103"
+"\101\103\056\143\162\154\060\074\006\011\140\206\110\001\206\370"
+"\102\001\003\004\057\026\055\150\164\164\160\072\057\057\167\167"
+"\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062"
+"\057\162\145\166\157\143\141\164\151\157\156\103\101\103\056\150"
+"\164\155\154\077\060\071\006\011\140\206\110\001\206\370\102\001"
+"\007\004\054\026\052\150\164\164\160\072\057\057\167\167\167\056"
+"\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162"
+"\145\156\145\167\141\154\103\101\103\056\150\164\155\154\077\060"
+"\067\006\011\140\206\110\001\206\370\102\001\010\004\052\026\050"
+"\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145"
+"\163\057\151\160\163\062\060\060\062\057\160\157\154\151\143\171"
+"\103\101\103\056\150\164\155\154\060\155\006\003\125\035\037\004"
+"\146\060\144\060\056\240\054\240\052\206\050\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\151\160\163\062\060\060\062\103\101\103\056"
+"\143\162\154\060\062\240\060\240\056\206\054\150\164\164\160\072"
+"\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163"
+"\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062"
+"\103\101\103\056\143\162\154\060\057\006\010\053\006\001\005\005"
+"\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005"
+"\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160"
+"\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206"
+"\367\015\001\001\005\005\000\003\201\201\000\104\162\060\235\126"
+"\130\242\101\033\050\267\225\341\246\032\225\137\247\170\100\053"
+"\357\333\226\112\374\114\161\143\331\163\225\275\002\342\242\006"
+"\307\276\227\052\223\200\064\206\003\372\334\330\075\036\007\315"
+"\036\163\103\044\140\365\035\141\334\334\226\240\274\373\035\343"
+"\347\022\000\047\063\002\300\300\053\123\075\330\153\003\201\243"
+"\333\326\223\225\040\357\323\226\176\046\220\211\234\046\233\315"
+"\157\146\253\355\003\042\104\070\314\131\275\237\333\366\007\242"
+"\001\177\046\304\143\365\045\102\136\142\275"
+, (PRUint32)2043 }
+};
+static const NSSItem nss_builtins_items_139 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS Chained CAs root", (PRUint32)21 },
+ { (void *)"\310\302\137\026\236\370\120\164\325\276\350\315\242\324\074\256"
+"\347\137\322\127"
+, (PRUint32)20 },
+ { (void *)"\215\162\121\333\240\072\317\040\167\337\362\145\006\136\337\357"
+, (PRUint32)16 },
+ { (void *)"\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023"
+"\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040"
+"\103\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006"
+"\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141"
+"\151\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151"
+"\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171"
+"\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026"
+"\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163"
+, (PRUint32)288 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASE1 root", (PRUint32)16 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)278 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)278 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\007\352\060\202\007\123\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023\045"
+"\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103\145"
+"\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150"
+"\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045"
+"\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103\145"
+"\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150"
+"\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206\367"
+"\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056\151"
+"\160\163\056\145\163\060\036\027\015\060\061\061\062\062\071\060"
+"\060\065\071\063\070\132\027\015\062\065\061\062\062\067\060\060"
+"\065\071\063\070\132\060\202\001\022\061\013\060\011\006\003\125"
+"\004\006\023\002\105\123\061\022\060\020\006\003\125\004\010\023"
+"\011\102\141\162\143\145\154\157\156\141\061\022\060\020\006\003"
+"\125\004\007\023\011\102\141\162\143\145\154\157\156\141\061\056"
+"\060\054\006\003\125\004\012\023\045\111\120\123\040\111\156\164"
+"\145\162\156\145\164\040\160\165\142\154\151\163\150\151\156\147"
+"\040\123\145\162\166\151\143\145\163\040\163\056\154\056\061\053"
+"\060\051\006\003\125\004\012\024\042\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163\040\103\056\111\056\106\056\040"
+"\040\102\055\066\060\071\062\071\064\065\062\061\056\060\054\006"
+"\003\125\004\013\023\045\111\120\123\040\103\101\040\103\114\101"
+"\123\105\061\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006"
+"\003\125\004\003\023\045\111\120\123\040\103\101\040\103\114\101"
+"\123\105\061\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\036\060\034\006"
+"\011\052\206\110\206\367\015\001\011\001\026\017\151\160\163\100"
+"\155\141\151\154\056\151\160\163\056\145\163\060\201\237\060\015"
+"\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215"
+"\000\060\201\211\002\201\201\000\340\121\047\247\013\335\257\321"
+"\271\103\133\202\067\105\126\162\357\232\266\302\022\357\054\022"
+"\314\166\371\006\131\257\135\041\324\322\132\270\240\324\363\152"
+"\375\312\151\215\146\110\367\164\346\356\066\275\350\226\221\165"
+"\246\161\050\312\347\042\022\062\151\260\076\036\153\364\120\122"
+"\142\142\375\143\073\175\176\354\356\070\352\142\364\154\250\161"
+"\215\341\351\213\311\077\306\265\315\224\102\157\335\202\105\074"
+"\350\337\011\350\357\012\125\251\126\107\141\114\111\144\163\020"
+"\050\077\312\277\011\377\306\057\002\003\001\000\001\243\202\004"
+"\112\060\202\004\106\060\035\006\003\125\035\016\004\026\004\024"
+"\353\263\031\171\363\301\245\034\254\334\272\037\146\242\262\233"
+"\151\320\170\010\060\202\001\104\006\003\125\035\043\004\202\001"
+"\073\060\202\001\067\200\024\353\263\031\171\363\301\245\034\254"
+"\334\272\037\146\242\262\233\151\320\170\010\241\202\001\032\244"
+"\202\001\026\060\202\001\022\061\013\060\011\006\003\125\004\006"
+"\023\002\105\123\061\022\060\020\006\003\125\004\010\023\011\102"
+"\141\162\143\145\154\157\156\141\061\022\060\020\006\003\125\004"
+"\007\023\011\102\141\162\143\145\154\157\156\141\061\056\060\054"
+"\006\003\125\004\012\023\045\111\120\123\040\111\156\164\145\162"
+"\156\145\164\040\160\165\142\154\151\163\150\151\156\147\040\123"
+"\145\162\166\151\143\145\163\040\163\056\154\056\061\053\060\051"
+"\006\003\125\004\012\024\042\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163\040\103\056\111\056\106\056\040\040\102"
+"\055\066\060\071\062\071\064\065\062\061\056\060\054\006\003\125"
+"\004\013\023\045\111\120\123\040\103\101\040\103\114\101\123\105"
+"\061\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040"
+"\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003\125"
+"\004\003\023\045\111\120\123\040\103\101\040\103\114\101\123\105"
+"\061\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040"
+"\101\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052"
+"\206\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141"
+"\151\154\056\151\160\163\056\145\163\202\001\000\060\014\006\003"
+"\125\035\023\004\005\060\003\001\001\377\060\014\006\003\125\035"
+"\017\004\005\003\003\007\377\200\060\153\006\003\125\035\045\004"
+"\144\060\142\006\010\053\006\001\005\005\007\003\001\006\010\053"
+"\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007\003"
+"\003\006\010\053\006\001\005\005\007\003\004\006\010\053\006\001"
+"\005\005\007\003\010\006\012\053\006\001\004\001\202\067\002\001"
+"\025\006\012\053\006\001\004\001\202\067\002\001\026\006\012\053"
+"\006\001\004\001\202\067\012\003\001\006\012\053\006\001\004\001"
+"\202\067\012\003\004\060\021\006\011\140\206\110\001\206\370\102"
+"\001\001\004\004\003\002\000\007\060\032\006\003\125\035\021\004"
+"\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160"
+"\163\056\145\163\060\032\006\003\125\035\022\004\023\060\021\201"
+"\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163"
+"\060\101\006\011\140\206\110\001\206\370\102\001\015\004\064\026"
+"\062\103\114\101\123\105\061\040\103\101\040\103\145\162\164\151"
+"\146\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171"
+"\040\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056"
+"\145\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002"
+"\004\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151"
+"\160\163\056\145\163\057\151\160\163\062\060\060\062\057\060\072"
+"\006\011\140\206\110\001\206\370\102\001\004\004\055\026\053\150"
+"\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163"
+"\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062"
+"\103\114\101\123\105\061\056\143\162\154\060\077\006\011\140\206"
+"\110\001\206\370\102\001\003\004\062\026\060\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\103"
+"\114\101\123\105\061\056\150\164\155\154\077\060\074\006\011\140"
+"\206\110\001\206\370\102\001\007\004\057\026\055\150\164\164\160"
+"\072\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160"
+"\163\062\060\060\062\057\162\145\156\145\167\141\154\103\114\101"
+"\123\105\061\056\150\164\155\154\077\060\072\006\011\140\206\110"
+"\001\206\370\102\001\010\004\055\026\053\150\164\164\160\072\057"
+"\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062"
+"\060\060\062\057\160\157\154\151\143\171\103\114\101\123\105\061"
+"\056\150\164\155\154\060\163\006\003\125\035\037\004\154\060\152"
+"\060\061\240\057\240\055\206\053\150\164\164\160\072\057\057\167"
+"\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060"
+"\062\057\151\160\163\062\060\060\062\103\114\101\123\105\061\056"
+"\143\162\154\060\065\240\063\240\061\206\057\150\164\164\160\072"
+"\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163"
+"\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062"
+"\103\114\101\123\105\061\056\143\162\154\060\057\006\010\053\006"
+"\001\005\005\007\001\001\004\043\060\041\060\037\006\010\053\006"
+"\001\005\005\007\060\001\206\023\150\164\164\160\072\057\057\157"
+"\143\163\160\056\151\160\163\056\145\163\057\060\015\006\011\052"
+"\206\110\206\367\015\001\001\005\005\000\003\201\201\000\053\320"
+"\353\375\332\310\312\131\152\332\323\314\062\056\311\124\033\212"
+"\142\176\025\055\351\331\061\323\056\364\047\043\377\133\253\305"
+"\112\266\162\100\256\123\164\364\274\005\264\306\331\310\311\167"
+"\373\267\371\064\177\170\000\370\326\244\344\122\077\054\112\143"
+"\127\201\165\132\216\350\214\373\002\300\224\306\051\272\263\334"
+"\034\350\262\257\322\056\142\133\032\251\216\016\314\305\127\105"
+"\121\024\351\116\034\210\245\221\364\243\367\216\121\310\251\276"
+"\206\063\076\346\057\110\156\257\124\220\116\255\261\045"
+, (PRUint32)2030 }
+};
+static const NSSItem nss_builtins_items_141 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASE1 root", (PRUint32)16 },
+ { (void *)"\103\236\122\137\132\152\107\303\054\353\304\134\143\355\071\061"
+"\174\345\364\337"
+, (PRUint32)20 },
+ { (void *)"\204\220\035\225\060\111\126\374\101\201\360\105\327\166\304\153"
+, (PRUint32)16 },
+ { (void *)"\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)278 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASE3 root", (PRUint32)16 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)278 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)278 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\007\352\060\202\007\123\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023\045"
+"\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103\145"
+"\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150"
+"\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045"
+"\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103\145"
+"\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150"
+"\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206\367"
+"\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056\151"
+"\160\163\056\145\163\060\036\027\015\060\061\061\062\062\071\060"
+"\061\060\061\064\064\132\027\015\062\065\061\062\062\067\060\061"
+"\060\061\064\064\132\060\202\001\022\061\013\060\011\006\003\125"
+"\004\006\023\002\105\123\061\022\060\020\006\003\125\004\010\023"
+"\011\102\141\162\143\145\154\157\156\141\061\022\060\020\006\003"
+"\125\004\007\023\011\102\141\162\143\145\154\157\156\141\061\056"
+"\060\054\006\003\125\004\012\023\045\111\120\123\040\111\156\164"
+"\145\162\156\145\164\040\160\165\142\154\151\163\150\151\156\147"
+"\040\123\145\162\166\151\143\145\163\040\163\056\154\056\061\053"
+"\060\051\006\003\125\004\012\024\042\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163\040\103\056\111\056\106\056\040"
+"\040\102\055\066\060\071\062\071\064\065\062\061\056\060\054\006"
+"\003\125\004\013\023\045\111\120\123\040\103\101\040\103\114\101"
+"\123\105\063\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006"
+"\003\125\004\003\023\045\111\120\123\040\103\101\040\103\114\101"
+"\123\105\063\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\036\060\034\006"
+"\011\052\206\110\206\367\015\001\011\001\026\017\151\160\163\100"
+"\155\141\151\154\056\151\160\163\056\145\163\060\201\237\060\015"
+"\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215"
+"\000\060\201\211\002\201\201\000\253\027\376\016\260\306\150\033"
+"\123\360\122\276\237\372\332\372\213\023\004\273\001\217\062\331"
+"\037\217\115\316\066\230\332\344\000\104\214\050\330\023\104\052"
+"\244\153\116\027\044\102\234\323\210\244\101\202\326\043\373\213"
+"\311\206\345\271\251\202\005\334\361\336\037\340\014\231\125\230"
+"\362\070\354\154\235\040\003\300\357\252\243\306\144\004\121\055"
+"\170\015\243\322\250\072\326\044\114\351\226\172\030\254\023\043"
+"\042\033\174\350\061\021\263\137\011\252\060\160\161\106\045\153"
+"\111\161\200\053\225\001\262\037\002\003\001\000\001\243\202\004"
+"\112\060\202\004\106\060\035\006\003\125\035\016\004\026\004\024"
+"\270\223\377\056\313\334\054\216\242\347\172\376\066\121\041\243"
+"\230\133\014\064\060\202\001\104\006\003\125\035\043\004\202\001"
+"\073\060\202\001\067\200\024\270\223\377\056\313\334\054\216\242"
+"\347\172\376\066\121\041\243\230\133\014\064\241\202\001\032\244"
+"\202\001\026\060\202\001\022\061\013\060\011\006\003\125\004\006"
+"\023\002\105\123\061\022\060\020\006\003\125\004\010\023\011\102"
+"\141\162\143\145\154\157\156\141\061\022\060\020\006\003\125\004"
+"\007\023\011\102\141\162\143\145\154\157\156\141\061\056\060\054"
+"\006\003\125\004\012\023\045\111\120\123\040\111\156\164\145\162"
+"\156\145\164\040\160\165\142\154\151\163\150\151\156\147\040\123"
+"\145\162\166\151\143\145\163\040\163\056\154\056\061\053\060\051"
+"\006\003\125\004\012\024\042\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163\040\103\056\111\056\106\056\040\040\102"
+"\055\066\060\071\062\071\064\065\062\061\056\060\054\006\003\125"
+"\004\013\023\045\111\120\123\040\103\101\040\103\114\101\123\105"
+"\063\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040"
+"\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003\125"
+"\004\003\023\045\111\120\123\040\103\101\040\103\114\101\123\105"
+"\063\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040"
+"\101\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052"
+"\206\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141"
+"\151\154\056\151\160\163\056\145\163\202\001\000\060\014\006\003"
+"\125\035\023\004\005\060\003\001\001\377\060\014\006\003\125\035"
+"\017\004\005\003\003\007\377\200\060\153\006\003\125\035\045\004"
+"\144\060\142\006\010\053\006\001\005\005\007\003\001\006\010\053"
+"\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007\003"
+"\003\006\010\053\006\001\005\005\007\003\004\006\010\053\006\001"
+"\005\005\007\003\010\006\012\053\006\001\004\001\202\067\002\001"
+"\025\006\012\053\006\001\004\001\202\067\002\001\026\006\012\053"
+"\006\001\004\001\202\067\012\003\001\006\012\053\006\001\004\001"
+"\202\067\012\003\004\060\021\006\011\140\206\110\001\206\370\102"
+"\001\001\004\004\003\002\000\007\060\032\006\003\125\035\021\004"
+"\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160"
+"\163\056\145\163\060\032\006\003\125\035\022\004\023\060\021\201"
+"\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163"
+"\060\101\006\011\140\206\110\001\206\370\102\001\015\004\064\026"
+"\062\103\114\101\123\105\063\040\103\101\040\103\145\162\164\151"
+"\146\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171"
+"\040\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056"
+"\145\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002"
+"\004\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151"
+"\160\163\056\145\163\057\151\160\163\062\060\060\062\057\060\072"
+"\006\011\140\206\110\001\206\370\102\001\004\004\055\026\053\150"
+"\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163"
+"\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062"
+"\103\114\101\123\105\063\056\143\162\154\060\077\006\011\140\206"
+"\110\001\206\370\102\001\003\004\062\026\060\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\103"
+"\114\101\123\105\063\056\150\164\155\154\077\060\074\006\011\140"
+"\206\110\001\206\370\102\001\007\004\057\026\055\150\164\164\160"
+"\072\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160"
+"\163\062\060\060\062\057\162\145\156\145\167\141\154\103\114\101"
+"\123\105\063\056\150\164\155\154\077\060\072\006\011\140\206\110"
+"\001\206\370\102\001\010\004\055\026\053\150\164\164\160\072\057"
+"\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062"
+"\060\060\062\057\160\157\154\151\143\171\103\114\101\123\105\063"
+"\056\150\164\155\154\060\163\006\003\125\035\037\004\154\060\152"
+"\060\061\240\057\240\055\206\053\150\164\164\160\072\057\057\167"
+"\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060"
+"\062\057\151\160\163\062\060\060\062\103\114\101\123\105\063\056"
+"\143\162\154\060\065\240\063\240\061\206\057\150\164\164\160\072"
+"\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163"
+"\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062"
+"\103\114\101\123\105\063\056\143\162\154\060\057\006\010\053\006"
+"\001\005\005\007\001\001\004\043\060\041\060\037\006\010\053\006"
+"\001\005\005\007\060\001\206\023\150\164\164\160\072\057\057\157"
+"\143\163\160\056\151\160\163\056\145\163\057\060\015\006\011\052"
+"\206\110\206\367\015\001\001\005\005\000\003\201\201\000\027\145"
+"\134\231\225\103\003\047\257\046\345\353\320\263\027\043\367\103"
+"\252\307\360\175\354\017\306\251\256\256\226\017\166\051\034\342"
+"\006\055\176\046\305\074\372\241\301\201\316\123\260\102\321\227"
+"\127\032\027\176\244\121\141\306\356\351\136\357\005\272\353\275"
+"\017\247\222\157\330\243\006\150\051\216\171\365\377\277\371\247"
+"\257\344\261\316\302\321\200\102\047\005\004\064\370\303\177\026"
+"\170\043\014\007\044\362\106\107\255\073\124\320\257\325\061\262"
+"\257\175\310\352\351\324\126\331\016\023\262\305\105\120"
+, (PRUint32)2030 }
+};
+static const NSSItem nss_builtins_items_143 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASE3 root", (PRUint32)16 },
+ { (void *)"\101\170\253\114\277\316\173\101\002\254\332\304\223\076\157\365"
+"\015\317\161\134"
+, (PRUint32)20 },
+ { (void *)"\102\166\227\150\317\246\264\070\044\252\241\033\362\147\336\312"
+, (PRUint32)16 },
+ { (void *)"\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023"
+"\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)278 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASEA1 root", (PRUint32)17 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003"
+"\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061"
+"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
+"\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206"
+"\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163"
+, (PRUint32)280 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003"
+"\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061"
+"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
+"\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206"
+"\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163"
+, (PRUint32)280 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023\046"
+"\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110"
+"\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154"
+"\056\151\160\163\056\145\163\060\036\027\015\060\061\061\062\062"
+"\071\060\061\060\065\063\062\132\027\015\062\065\061\062\062\067"
+"\060\061\060\065\063\062\132\060\202\001\024\061\013\060\011\006"
+"\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004"
+"\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020"
+"\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141"
+"\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111"
+"\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151"
+"\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056"
+"\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106"
+"\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060"
+"\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103"
+"\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143\141"
+"\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057"
+"\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040"
+"\103\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143"
+"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061"
+"\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017"
+"\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060"
+"\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001\005"
+"\000\003\201\215\000\060\201\211\002\201\201\000\273\060\327\334"
+"\320\124\275\065\116\237\305\114\202\352\321\120\074\107\230\374"
+"\233\151\235\167\315\156\340\077\356\353\062\137\137\237\322\320"
+"\171\345\225\163\104\041\062\340\012\333\235\327\316\215\253\122"
+"\213\053\170\340\233\133\175\364\375\155\011\345\256\341\154\035"
+"\007\043\240\027\321\371\175\250\106\106\221\042\250\262\151\306"
+"\255\367\365\365\224\241\060\224\275\000\314\104\177\356\304\236"
+"\311\301\346\217\012\066\301\375\044\075\001\240\365\173\342\174"
+"\170\146\103\213\117\131\362\233\331\372\111\263\002\003\001\000"
+"\001\243\202\004\123\060\202\004\117\060\035\006\003\125\035\016"
+"\004\026\004\024\147\046\226\347\241\277\330\265\003\235\376\073"
+"\334\376\362\212\346\025\335\060\060\202\001\106\006\003\125\035"
+"\043\004\202\001\075\060\202\001\071\200\024\147\046\226\347\241"
+"\277\330\265\003\235\376\073\334\376\362\212\346\025\335\060\241"
+"\202\001\034\244\202\001\030\060\202\001\024\061\013\060\011\006"
+"\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004"
+"\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020"
+"\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141"
+"\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111"
+"\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151"
+"\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056"
+"\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106"
+"\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060"
+"\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103"
+"\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143\141"
+"\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057"
+"\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040"
+"\103\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143"
+"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061"
+"\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017"
+"\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\202"
+"\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377"
+"\060\014\006\003\125\035\017\004\005\003\003\007\377\200\060\153"
+"\006\003\125\035\045\004\144\060\142\006\010\053\006\001\005\005"
+"\007\003\001\006\010\053\006\001\005\005\007\003\002\006\010\053"
+"\006\001\005\005\007\003\003\006\010\053\006\001\005\005\007\003"
+"\004\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001"
+"\004\001\202\067\002\001\025\006\012\053\006\001\004\001\202\067"
+"\002\001\026\006\012\053\006\001\004\001\202\067\012\003\001\006"
+"\012\053\006\001\004\001\202\067\012\003\004\060\021\006\011\140"
+"\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\032"
+"\006\003\125\035\021\004\023\060\021\201\017\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\060\032\006\003\125\035"
+"\022\004\023\060\021\201\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163\060\102\006\011\140\206\110\001\206\370"
+"\102\001\015\004\065\026\063\103\114\101\123\105\101\061\040\103"
+"\101\040\103\145\162\164\151\146\151\143\141\164\145\040\151\163"
+"\163\165\145\144\040\142\171\040\150\164\164\160\072\057\057\167"
+"\167\167\056\151\160\163\056\145\163\057\060\051\006\011\140\206"
+"\110\001\206\370\102\001\002\004\034\026\032\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\060\073\006\011\140\206\110\001\206\370\102"
+"\001\004\004\056\026\054\150\164\164\160\072\057\057\167\167\167"
+"\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057"
+"\151\160\163\062\060\060\062\103\114\101\123\105\101\061\056\143"
+"\162\154\060\100\006\011\140\206\110\001\206\370\102\001\003\004"
+"\063\026\061\150\164\164\160\072\057\057\167\167\167\056\151\160"
+"\163\056\145\163\057\151\160\163\062\060\060\062\057\162\145\166"
+"\157\143\141\164\151\157\156\103\114\101\123\105\101\061\056\150"
+"\164\155\154\077\060\075\006\011\140\206\110\001\206\370\102\001"
+"\007\004\060\026\056\150\164\164\160\072\057\057\167\167\167\056"
+"\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162"
+"\145\156\145\167\141\154\103\114\101\123\105\101\061\056\150\164"
+"\155\154\077\060\073\006\011\140\206\110\001\206\370\102\001\010"
+"\004\056\026\054\150\164\164\160\072\057\057\167\167\167\056\151"
+"\160\163\056\145\163\057\151\160\163\062\060\060\062\057\160\157"
+"\154\151\143\171\103\114\101\123\105\101\061\056\150\164\155\154"
+"\060\165\006\003\125\035\037\004\156\060\154\060\062\240\060\240"
+"\056\206\054\150\164\164\160\072\057\057\167\167\167\056\151\160"
+"\163\056\145\163\057\151\160\163\062\060\060\062\057\151\160\163"
+"\062\060\060\062\103\114\101\123\105\101\061\056\143\162\154\060"
+"\066\240\064\240\062\206\060\150\164\164\160\072\057\057\167\167"
+"\167\142\141\143\153\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\151\160\163\062\060\060\062\103\114\101\123"
+"\105\101\061\056\143\162\154\060\057\006\010\053\006\001\005\005"
+"\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005"
+"\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160"
+"\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206"
+"\367\015\001\001\005\005\000\003\201\201\000\176\272\212\254\200"
+"\000\204\025\012\325\230\121\014\144\305\234\002\130\203\146\312"
+"\255\036\007\315\176\152\332\200\007\337\003\064\112\034\223\304"
+"\113\130\040\065\066\161\355\242\012\065\022\245\246\145\247\205"
+"\151\012\016\343\141\356\352\276\050\223\063\325\354\350\276\304"
+"\333\137\177\250\371\143\061\310\153\226\342\051\302\133\240\347"
+"\227\066\235\167\136\061\153\376\323\247\333\052\333\333\226\213"
+"\037\146\336\266\003\300\053\263\170\326\125\007\345\217\071\120"
+"\336\007\043\162\346\275\040\024\113\264\206"
+, (PRUint32)2043 }
+};
+static const NSSItem nss_builtins_items_145 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASEA1 root", (PRUint32)17 },
+ { (void *)"\063\243\065\302\074\350\003\113\004\341\075\345\304\216\171\032"
+"\353\214\062\004"
+, (PRUint32)20 },
+ { (void *)"\014\370\236\027\374\324\003\275\346\215\233\074\005\207\376\204"
+, (PRUint32)16 },
+ { (void *)"\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003"
+"\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061"
+"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
+"\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206"
+"\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163"
+, (PRUint32)280 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+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) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASEA3 root", (PRUint32)17 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003"
+"\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063"
+"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
+"\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206"
+"\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163"
+, (PRUint32)280 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003"
+"\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063"
+"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
+"\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206"
+"\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163"
+, (PRUint32)280 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023\046"
+"\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040\103"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164"
+"\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110"
+"\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154"
+"\056\151\160\163\056\145\163\060\036\027\015\060\061\061\062\062"
+"\071\060\061\060\067\065\060\132\027\015\062\065\061\062\062\067"
+"\060\061\060\067\065\060\132\060\202\001\024\061\013\060\011\006"
+"\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004"
+"\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020"
+"\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141"
+"\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111"
+"\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151"
+"\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056"
+"\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106"
+"\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060"
+"\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103"
+"\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143\141"
+"\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057"
+"\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040"
+"\103\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143"
+"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061"
+"\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017"
+"\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060"
+"\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001\005"
+"\000\003\201\215\000\060\201\211\002\201\201\000\356\200\000\366"
+"\032\144\056\255\152\310\203\261\213\247\356\217\331\266\333\315"
+"\033\273\206\006\042\166\063\014\022\155\110\126\141\322\334\202"
+"\045\142\057\237\322\151\060\145\003\102\043\130\274\107\334\153"
+"\326\165\135\027\074\341\377\362\130\147\171\240\301\201\261\324"
+"\126\242\362\215\021\231\375\366\175\361\307\304\136\002\052\232"
+"\342\112\265\023\212\000\375\214\167\206\346\327\224\365\040\165"
+"\056\016\114\277\164\304\077\201\076\203\264\243\070\066\051\347"
+"\350\052\365\214\210\101\252\200\246\343\154\357\002\003\001\000"
+"\001\243\202\004\123\060\202\004\117\060\035\006\003\125\035\016"
+"\004\026\004\024\036\237\127\120\107\266\141\223\071\323\054\374"
+"\332\135\075\005\165\267\231\002\060\202\001\106\006\003\125\035"
+"\043\004\202\001\075\060\202\001\071\200\024\036\237\127\120\107"
+"\266\141\223\071\323\054\374\332\135\075\005\165\267\231\002\241"
+"\202\001\034\244\202\001\030\060\202\001\024\061\013\060\011\006"
+"\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004"
+"\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020"
+"\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141"
+"\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111"
+"\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151"
+"\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056"
+"\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106"
+"\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060"
+"\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103"
+"\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143\141"
+"\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057"
+"\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040"
+"\103\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143"
+"\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061"
+"\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017"
+"\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\202"
+"\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377"
+"\060\014\006\003\125\035\017\004\005\003\003\007\377\200\060\153"
+"\006\003\125\035\045\004\144\060\142\006\010\053\006\001\005\005"
+"\007\003\001\006\010\053\006\001\005\005\007\003\002\006\010\053"
+"\006\001\005\005\007\003\003\006\010\053\006\001\005\005\007\003"
+"\004\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001"
+"\004\001\202\067\002\001\025\006\012\053\006\001\004\001\202\067"
+"\002\001\026\006\012\053\006\001\004\001\202\067\012\003\001\006"
+"\012\053\006\001\004\001\202\067\012\003\004\060\021\006\011\140"
+"\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\032"
+"\006\003\125\035\021\004\023\060\021\201\017\151\160\163\100\155"
+"\141\151\154\056\151\160\163\056\145\163\060\032\006\003\125\035"
+"\022\004\023\060\021\201\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163\060\102\006\011\140\206\110\001\206\370"
+"\102\001\015\004\065\026\063\103\114\101\123\105\101\063\040\103"
+"\101\040\103\145\162\164\151\146\151\143\141\164\145\040\151\163"
+"\163\165\145\144\040\142\171\040\150\164\164\160\072\057\057\167"
+"\167\167\056\151\160\163\056\145\163\057\060\051\006\011\140\206"
+"\110\001\206\370\102\001\002\004\034\026\032\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\060\073\006\011\140\206\110\001\206\370\102"
+"\001\004\004\056\026\054\150\164\164\160\072\057\057\167\167\167"
+"\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057"
+"\151\160\163\062\060\060\062\103\114\101\123\105\101\063\056\143"
+"\162\154\060\100\006\011\140\206\110\001\206\370\102\001\003\004"
+"\063\026\061\150\164\164\160\072\057\057\167\167\167\056\151\160"
+"\163\056\145\163\057\151\160\163\062\060\060\062\057\162\145\166"
+"\157\143\141\164\151\157\156\103\114\101\123\105\101\063\056\150"
+"\164\155\154\077\060\075\006\011\140\206\110\001\206\370\102\001"
+"\007\004\060\026\056\150\164\164\160\072\057\057\167\167\167\056"
+"\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162"
+"\145\156\145\167\141\154\103\114\101\123\105\101\063\056\150\164"
+"\155\154\077\060\073\006\011\140\206\110\001\206\370\102\001\010"
+"\004\056\026\054\150\164\164\160\072\057\057\167\167\167\056\151"
+"\160\163\056\145\163\057\151\160\163\062\060\060\062\057\160\157"
+"\154\151\143\171\103\114\101\123\105\101\063\056\150\164\155\154"
+"\060\165\006\003\125\035\037\004\156\060\154\060\062\240\060\240"
+"\056\206\054\150\164\164\160\072\057\057\167\167\167\056\151\160"
+"\163\056\145\163\057\151\160\163\062\060\060\062\057\151\160\163"
+"\062\060\060\062\103\114\101\123\105\101\063\056\143\162\154\060"
+"\066\240\064\240\062\206\060\150\164\164\160\072\057\057\167\167"
+"\167\142\141\143\153\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\151\160\163\062\060\060\062\103\114\101\123"
+"\105\101\063\056\143\162\154\060\057\006\010\053\006\001\005\005"
+"\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005"
+"\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160"
+"\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206"
+"\367\015\001\001\005\005\000\003\201\201\000\112\075\040\107\032"
+"\332\211\364\172\053\061\171\354\001\300\314\001\365\326\301\374"
+"\310\303\363\120\002\121\220\130\052\237\347\065\011\133\060\012"
+"\201\000\045\107\257\324\017\016\236\140\046\250\225\247\203\010"
+"\337\055\254\351\016\367\234\310\237\313\223\105\361\272\152\306"
+"\147\121\112\151\117\153\376\175\013\057\122\051\302\120\255\044"
+"\104\355\043\263\110\313\104\100\301\003\225\014\012\170\006\022"
+"\001\365\221\061\055\111\215\273\077\105\116\054\340\350\315\265"
+"\311\024\025\014\343\007\203\233\046\165\357"
+, (PRUint32)2043 }
+};
+static const NSSItem nss_builtins_items_147 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS CLASEA3 root", (PRUint32)17 },
+ { (void *)"\026\324\044\376\226\020\341\165\031\257\043\053\266\207\164\342"
+"\101\104\276\156"
+, (PRUint32)20 },
+ { (void *)"\006\371\353\354\314\126\235\210\272\220\365\272\260\032\340\002"
+, (PRUint32)16 },
+ { (void *)"\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023"
+"\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003"
+"\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063"
+"\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101"
+"\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206"
+"\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163"
+, (PRUint32)280 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_148 [] = {
+ { (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 *)"IPS Servidores root", (PRUint32)20 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105"
+"\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102"
+"\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004"
+"\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144"
+"\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145"
+"\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060"
+"\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126"
+"\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)166 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105"
+"\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102"
+"\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004"
+"\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144"
+"\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145"
+"\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060"
+"\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126"
+"\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)166 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\002\267\060\202\002\040\002\001\000\060\015\006\011\052"
+"\206\110\206\367\015\001\001\004\005\000\060\201\243\061\013\060"
+"\011\006\003\125\004\006\023\002\105\123\061\022\060\020\006\003"
+"\125\004\010\023\011\102\101\122\103\105\114\117\116\101\061\022"
+"\060\020\006\003\125\004\007\023\011\102\101\122\103\105\114\117"
+"\116\101\061\031\060\027\006\003\125\004\012\023\020\111\120\123"
+"\040\123\145\147\165\162\151\144\141\144\040\103\101\061\030\060"
+"\026\006\003\125\004\013\023\017\103\145\162\164\151\146\151\143"
+"\141\143\151\157\156\145\163\061\027\060\025\006\003\125\004\003"
+"\023\016\111\120\123\040\123\105\122\126\111\104\117\122\105\123"
+"\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026"
+"\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163"
+"\060\036\027\015\071\070\060\061\060\061\062\063\062\061\060\067"
+"\132\027\015\060\071\061\062\062\071\062\063\062\061\060\067\132"
+"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105"
+"\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102"
+"\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004"
+"\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144"
+"\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145"
+"\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060"
+"\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126"
+"\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163\060\201\237\060\015\006\011\052\206\110"
+"\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002"
+"\201\201\000\254\117\122\164\237\071\352\216\334\045\304\274\230"
+"\135\230\144\044\011\074\041\263\314\031\265\216\224\216\207\321"
+"\370\067\076\241\310\055\130\244\200\065\133\241\165\154\035\105"
+"\014\037\141\143\152\136\157\233\012\114\301\310\270\141\043\065"
+"\201\377\376\254\170\160\055\150\341\072\007\230\225\002\124\335"
+"\315\043\267\200\123\327\310\067\105\162\006\044\022\272\023\141"
+"\041\212\156\165\050\340\305\017\064\375\066\330\105\177\341\270"
+"\066\357\263\341\306\040\216\350\264\070\274\341\076\366\021\336"
+"\214\235\001\002\003\001\000\001\060\015\006\011\052\206\110\206"
+"\367\015\001\001\004\005\000\003\201\201\000\054\363\303\171\130"
+"\044\336\306\073\321\340\102\151\270\356\144\263\075\142\001\271"
+"\263\204\337\043\175\335\230\317\020\251\376\000\330\042\226\005"
+"\023\007\124\127\305\247\336\313\331\270\210\102\366\231\333\024"
+"\167\037\266\376\045\075\341\242\076\003\251\201\322\055\154\107"
+"\365\226\106\214\042\253\310\314\015\016\227\136\213\101\264\073"
+"\304\012\006\100\035\335\106\364\001\335\272\202\056\074\075\170"
+"\160\236\174\030\320\253\370\270\167\007\106\161\361\312\013\143"
+"\134\152\371\162\224\325\001\117\240\333\102"
+, (PRUint32)699 }
+};
+static const NSSItem nss_builtins_items_149 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS Servidores root", (PRUint32)20 },
+ { (void *)"\044\272\155\154\212\133\130\067\244\215\265\372\351\031\352\147"
+"\134\224\322\027"
+, (PRUint32)20 },
+ { (void *)"\173\265\010\231\232\214\030\277\205\047\175\016\256\332\262\253"
+, (PRUint32)16 },
+ { (void *)"\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105"
+"\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102"
+"\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004"
+"\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144"
+"\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145"
+"\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060"
+"\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126"
+"\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206"
+"\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056"
+"\151\160\163\056\145\163"
+, (PRUint32)166 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_150 [] = {
+ { (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 *)"IPS Timestamping root", (PRUint32)22 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023"
+"\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155"
+"\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151"
+"\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062"
+"\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151"
+"\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151"
+"\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151"
+"\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011"
+"\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163"
+, (PRUint32)290 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023"
+"\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155"
+"\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151"
+"\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062"
+"\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151"
+"\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151"
+"\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151"
+"\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011"
+"\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163"
+, (PRUint32)290 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\010\070\060\202\007\241\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105\123"
+"\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145"
+"\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102"
+"\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004"
+"\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040"
+"\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151"
+"\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004"
+"\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071"
+"\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023\053"
+"\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155\160"
+"\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151\157"
+"\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062\006"
+"\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151\155"
+"\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001"
+"\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145"
+"\163\060\036\027\015\060\061\061\062\062\071\060\061\061\060\061"
+"\070\132\027\015\062\065\061\062\062\067\060\061\061\060\061\070"
+"\132\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002"
+"\105\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162"
+"\143\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023"
+"\011\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003"
+"\125\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145"
+"\164\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162"
+"\166\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003"
+"\125\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160"
+"\163\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066"
+"\060\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013"
+"\023\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141"
+"\155\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164"
+"\151\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060"
+"\062\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124"
+"\151\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164"
+"\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162"
+"\151\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001"
+"\011\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\060\201\237\060\015\006\011\052\206\110\206\367\015"
+"\001\001\001\005\000\003\201\215\000\060\201\211\002\201\201\000"
+"\274\270\356\126\245\232\214\346\066\311\302\142\240\146\201\215"
+"\032\325\172\322\163\237\016\204\144\272\225\264\220\247\170\257"
+"\312\376\124\141\133\316\262\040\127\001\256\104\222\103\020\070"
+"\021\367\150\374\027\100\245\150\047\062\073\304\247\346\102\161"
+"\305\231\357\166\377\053\225\044\365\111\222\030\150\312\000\265"
+"\244\132\057\156\313\326\033\054\015\124\147\153\172\051\241\130"
+"\253\242\132\000\326\133\273\030\302\337\366\036\023\126\166\233"
+"\245\150\342\230\316\306\003\212\064\333\114\203\101\246\251\243"
+"\002\003\001\000\001\243\202\004\200\060\202\004\174\060\035\006"
+"\003\125\035\016\004\026\004\024\213\320\020\120\011\201\362\235"
+"\011\325\016\140\170\003\042\242\077\310\312\146\060\202\001\120"
+"\006\003\125\035\043\004\202\001\107\060\202\001\103\200\024\213"
+"\320\020\120\011\201\362\235\011\325\016\140\170\003\042\242\077"
+"\310\312\146\241\202\001\046\244\202\001\042\060\202\001\036\061"
+"\013\060\011\006\003\125\004\006\023\002\105\123\061\022\060\020"
+"\006\003\125\004\010\023\011\102\141\162\143\145\154\157\156\141"
+"\061\022\060\020\006\003\125\004\007\023\011\102\141\162\143\145"
+"\154\157\156\141\061\056\060\054\006\003\125\004\012\023\045\111"
+"\120\123\040\111\156\164\145\162\156\145\164\040\160\165\142\154"
+"\151\163\150\151\156\147\040\123\145\162\166\151\143\145\163\040"
+"\163\056\154\056\061\053\060\051\006\003\125\004\012\024\042\151"
+"\160\163\100\155\141\151\154\056\151\160\163\056\145\163\040\103"
+"\056\111\056\106\056\040\040\102\055\066\060\071\062\071\064\065"
+"\062\061\064\060\062\006\003\125\004\013\023\053\111\120\123\040"
+"\103\101\040\124\151\155\145\163\164\141\155\160\151\156\147\040"
+"\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165"
+"\164\150\157\162\151\164\171\061\064\060\062\006\003\125\004\003"
+"\023\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141"
+"\155\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164"
+"\151\157\156\040\101\165\164\150\157\162\151\164\171\061\036\060"
+"\034\006\011\052\206\110\206\367\015\001\011\001\026\017\151\160"
+"\163\100\155\141\151\154\056\151\160\163\056\145\163\202\001\000"
+"\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060\014"
+"\006\003\125\035\017\004\005\003\003\007\377\200\060\153\006\003"
+"\125\035\045\004\144\060\142\006\010\053\006\001\005\005\007\003"
+"\001\006\010\053\006\001\005\005\007\003\002\006\010\053\006\001"
+"\005\005\007\003\003\006\010\053\006\001\005\005\007\003\004\006"
+"\010\053\006\001\005\005\007\003\010\006\012\053\006\001\004\001"
+"\202\067\002\001\025\006\012\053\006\001\004\001\202\067\002\001"
+"\026\006\012\053\006\001\004\001\202\067\012\003\001\006\012\053"
+"\006\001\004\001\202\067\012\003\004\060\021\006\011\140\206\110"
+"\001\206\370\102\001\001\004\004\003\002\000\007\060\032\006\003"
+"\125\035\021\004\023\060\021\201\017\151\160\163\100\155\141\151"
+"\154\056\151\160\163\056\145\163\060\032\006\003\125\035\022\004"
+"\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160"
+"\163\056\145\163\060\107\006\011\140\206\110\001\206\370\102\001"
+"\015\004\072\026\070\124\151\155\145\163\164\141\155\160\151\156"
+"\147\040\103\101\040\103\145\162\164\151\146\151\143\141\164\145"
+"\040\151\163\163\165\145\144\040\142\171\040\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\060\051\006"
+"\011\140\206\110\001\206\370\102\001\002\004\034\026\032\150\164"
+"\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163\057"
+"\151\160\163\062\060\060\062\057\060\100\006\011\140\206\110\001"
+"\206\370\102\001\004\004\063\026\061\150\164\164\160\072\057\057"
+"\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060"
+"\060\062\057\151\160\163\062\060\060\062\124\151\155\145\163\164"
+"\141\155\160\151\156\147\056\143\162\154\060\105\006\011\140\206"
+"\110\001\206\370\102\001\003\004\070\026\066\150\164\164\160\072"
+"\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163"
+"\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\124"
+"\151\155\145\163\164\141\155\160\151\156\147\056\150\164\155\154"
+"\077\060\102\006\011\140\206\110\001\206\370\102\001\007\004\065"
+"\026\063\150\164\164\160\072\057\057\167\167\167\056\151\160\163"
+"\056\145\163\057\151\160\163\062\060\060\062\057\162\145\156\145"
+"\167\141\154\124\151\155\145\163\164\141\155\160\151\156\147\056"
+"\150\164\155\154\077\060\100\006\011\140\206\110\001\206\370\102"
+"\001\010\004\063\026\061\150\164\164\160\072\057\057\167\167\167"
+"\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057"
+"\160\157\154\151\143\171\124\151\155\145\163\164\141\155\160\151"
+"\156\147\056\150\164\155\154\060\177\006\003\125\035\037\004\170"
+"\060\166\060\067\240\065\240\063\206\061\150\164\164\160\072\057"
+"\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062"
+"\060\060\062\057\151\160\163\062\060\060\062\124\151\155\145\163"
+"\164\141\155\160\151\156\147\056\143\162\154\060\073\240\071\240"
+"\067\206\065\150\164\164\160\072\057\057\167\167\167\142\141\143"
+"\153\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062"
+"\057\151\160\163\062\060\060\062\124\151\155\145\163\164\141\155"
+"\160\151\156\147\056\143\162\154\060\057\006\010\053\006\001\005"
+"\005\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005"
+"\005\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163"
+"\160\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110"
+"\206\367\015\001\001\005\005\000\003\201\201\000\145\272\301\314"
+"\000\032\225\221\312\351\154\072\277\072\036\024\010\174\373\203"
+"\356\153\142\121\323\063\221\265\140\171\176\004\330\135\171\067"
+"\350\303\133\260\304\147\055\150\132\262\137\016\012\372\315\077"
+"\072\105\241\352\066\317\046\036\247\021\050\305\224\217\204\114"
+"\123\010\305\223\263\374\342\177\365\215\363\261\251\205\137\210"
+"\336\221\226\356\027\133\256\245\352\160\145\170\054\041\144\001"
+"\225\316\316\114\076\120\364\266\131\313\143\215\266\275\030\324"
+"\207\112\137\334\357\351\126\360\012\014\350\165"
+, (PRUint32)2108 }
+};
+static const NSSItem nss_builtins_items_151 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"IPS Timestamping root", (PRUint32)22 },
+ { (void *)"\226\231\134\167\021\350\345\055\371\343\113\354\354\147\323\313"
+"\361\266\304\322"
+, (PRUint32)20 },
+ { (void *)"\056\003\375\305\365\327\053\224\144\301\276\211\061\361\026\233"
+, (PRUint32)16 },
+ { (void *)"\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105"
+"\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143"
+"\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011"
+"\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125"
+"\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164"
+"\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166"
+"\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125"
+"\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163"
+"\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060"
+"\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023"
+"\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155"
+"\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151"
+"\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062"
+"\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151"
+"\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151"
+"\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151"
+"\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011"
+"\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056"
+"\145\163"
+, (PRUint32)290 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_152 [] = {
+ { (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 *)"QuoVadis Root CA", (PRUint32)17 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061"
+"\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144"
+"\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126"
+"\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171"
+, (PRUint32)129 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061"
+"\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144"
+"\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126"
+"\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171"
+, (PRUint32)129 },
+ { (void *)"\002\004\072\266\120\213"
+, (PRUint32)6 },
+ { (void *)"\060\202\005\320\060\202\004\270\240\003\002\001\002\002\004\072"
+"\266\120\213\060\015\006\011\052\206\110\206\367\015\001\001\005"
+"\005\000\060\177\061\013\060\011\006\003\125\004\006\023\002\102"
+"\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157\126"
+"\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060\043"
+"\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162\164"
+"\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162"
+"\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121\165"
+"\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162\164"
+"\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162"
+"\151\164\171\060\036\027\015\060\061\060\063\061\071\061\070\063"
+"\063\063\063\132\027\015\062\061\060\063\061\067\061\070\063\063"
+"\063\063\132\060\177\061\013\060\011\006\003\125\004\006\023\002"
+"\102\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157"
+"\126\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060"
+"\043\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162"
+"\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157"
+"\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121"
+"\165\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162"
+"\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157"
+"\162\151\164\171\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\277\141\265\225\123\272\127\374\372\362\147"
+"\013\072\032\337\021\200\144\225\264\321\274\315\172\317\366\051"
+"\226\056\044\124\100\044\070\367\032\205\334\130\114\313\244\047"
+"\102\227\320\237\203\212\303\344\006\003\133\000\245\121\036\160"
+"\004\164\342\301\324\072\253\327\255\073\007\030\005\216\375\203"
+"\254\352\146\331\030\033\150\212\365\127\032\230\272\365\355\166"
+"\075\174\331\336\224\152\073\113\027\301\325\217\275\145\070\072"
+"\225\320\075\125\066\116\337\171\127\061\052\036\330\131\145\111"
+"\130\040\230\176\253\137\176\237\351\326\115\354\203\164\251\307"
+"\154\330\356\051\112\205\052\006\024\371\124\346\323\332\145\007"
+"\213\143\067\022\327\320\354\303\173\040\101\104\243\355\313\240"
+"\027\341\161\145\316\035\146\061\367\166\001\031\310\175\003\130"
+"\266\225\111\035\246\022\046\350\306\014\166\340\343\146\313\352"
+"\135\246\046\356\345\314\137\275\147\247\001\047\016\242\312\124"
+"\305\261\172\225\035\161\036\112\051\212\003\334\152\105\301\244"
+"\031\136\157\066\315\303\242\260\267\376\134\070\342\122\274\370"
+"\104\103\346\220\273\002\003\001\000\001\243\202\002\122\060\202"
+"\002\116\060\075\006\010\053\006\001\005\005\007\001\001\004\061"
+"\060\057\060\055\006\010\053\006\001\005\005\007\060\001\206\041"
+"\150\164\164\160\163\072\057\057\157\143\163\160\056\161\165\157"
+"\166\141\144\151\163\157\146\146\163\150\157\162\145\056\143\157"
+"\155\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001"
+"\001\377\060\202\001\032\006\003\125\035\040\004\202\001\021\060"
+"\202\001\015\060\202\001\011\006\011\053\006\001\004\001\276\130"
+"\000\001\060\201\373\060\201\324\006\010\053\006\001\005\005\007"
+"\002\002\060\201\307\032\201\304\122\145\154\151\141\156\143\145"
+"\040\157\156\040\164\150\145\040\121\165\157\126\141\144\151\163"
+"\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141\164"
+"\145\040\142\171\040\141\156\171\040\160\141\162\164\171\040\141"
+"\163\163\165\155\145\163\040\141\143\143\145\160\164\141\156\143"
+"\145\040\157\146\040\164\150\145\040\164\150\145\156\040\141\160"
+"\160\154\151\143\141\142\154\145\040\163\164\141\156\144\141\162"
+"\144\040\164\145\162\155\163\040\141\156\144\040\143\157\156\144"
+"\151\164\151\157\156\163\040\157\146\040\165\163\145\054\040\143"
+"\145\162\164\151\146\151\143\141\164\151\157\156\040\160\162\141"
+"\143\164\151\143\145\163\054\040\141\156\144\040\164\150\145\040"
+"\121\165\157\126\141\144\151\163\040\103\145\162\164\151\146\151"
+"\143\141\164\145\040\120\157\154\151\143\171\056\060\042\006\010"
+"\053\006\001\005\005\007\002\001\026\026\150\164\164\160\072\057"
+"\057\167\167\167\056\161\165\157\166\141\144\151\163\056\142\155"
+"\060\035\006\003\125\035\016\004\026\004\024\213\113\155\355\323"
+"\051\271\006\031\354\071\071\251\360\227\204\152\313\357\337\060"
+"\201\256\006\003\125\035\043\004\201\246\060\201\243\200\024\213"
+"\113\155\355\323\051\271\006\031\354\071\071\251\360\227\204\152"
+"\313\357\337\241\201\204\244\201\201\060\177\061\013\060\011\006"
+"\003\125\004\006\023\002\102\115\061\031\060\027\006\003\125\004"
+"\012\023\020\121\165\157\126\141\144\151\163\040\114\151\155\151"
+"\164\145\144\061\045\060\043\006\003\125\004\013\023\034\122\157"
+"\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156"
+"\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003"
+"\125\004\003\023\045\121\165\157\126\141\144\151\163\040\122\157"
+"\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156"
+"\040\101\165\164\150\157\162\151\164\171\202\004\072\266\120\213"
+"\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\212\324\024\265\376\364\232\222\247\031\324\244"
+"\176\162\030\217\331\150\174\122\044\335\147\157\071\172\304\252"
+"\136\075\342\130\260\115\160\230\204\141\350\033\343\151\030\016"
+"\316\373\107\120\240\116\377\360\044\037\275\262\316\365\047\374"
+"\354\057\123\252\163\173\003\075\164\156\346\026\236\353\245\056"
+"\304\277\126\047\120\053\142\272\276\113\034\074\125\134\101\035"
+"\044\276\202\040\107\135\325\104\176\172\026\150\337\175\115\121"
+"\160\170\127\035\063\036\375\002\231\234\014\315\012\005\117\307"
+"\273\216\244\165\372\112\155\261\200\216\011\126\271\234\032\140"
+"\376\135\301\327\172\334\021\170\320\326\135\301\267\325\255\062"
+"\231\003\072\212\314\124\045\071\061\201\173\023\042\121\272\106"
+"\154\241\273\236\372\004\154\111\046\164\217\322\163\353\314\060"
+"\242\346\352\131\042\207\370\227\365\016\375\352\314\222\244\026"
+"\304\122\030\352\041\316\261\361\346\204\201\345\272\251\206\050"
+"\362\103\132\135\022\235\254\036\331\250\345\012\152\247\177\240"
+"\207\051\317\362\211\115\324\354\305\342\346\172\320\066\043\212"
+"\112\164\066\371"
+, (PRUint32)1492 }
+};
+static const NSSItem nss_builtins_items_153 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"QuoVadis Root CA", (PRUint32)17 },
+ { (void *)"\336\077\100\275\120\223\323\233\154\140\366\332\274\007\142\001"
+"\000\211\166\311"
+, (PRUint32)20 },
+ { (void *)"\047\336\066\376\162\267\000\003\000\235\364\360\036\154\004\044"
+, (PRUint32)16 },
+ { (void *)"\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061"
+"\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144"
+"\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003"
+"\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126"
+"\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146"
+"\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164"
+"\171"
+, (PRUint32)129 },
+ { (void *)"\002\004\072\266\120\213"
+, (PRUint32)6 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_154 [] = {
+ { (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 *)"Security Communication Root CA", (PRUint32)31 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061"
+"\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040"
+"\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125"
+"\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155"
+"\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103"
+"\101\061"
+, (PRUint32)82 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061"
+"\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040"
+"\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125"
+"\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155"
+"\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103"
+"\101\061"
+, (PRUint32)82 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)"\060\202\003\132\060\202\002\102\240\003\002\001\002\002\001\000"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061\030"
+"\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040\124"
+"\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125\004"
+"\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155\155"
+"\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103\101"
+"\061\060\036\027\015\060\063\060\071\063\060\060\064\062\060\064"
+"\071\132\027\015\062\063\060\071\063\060\060\064\062\060\064\071"
+"\132\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120"
+"\061\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115"
+"\040\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003"
+"\125\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157"
+"\155\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164"
+"\103\101\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\263\263\376\177\323\155\261\357\026\174\127\245"
+"\014\155\166\212\057\113\277\144\373\114\356\212\360\363\051\174"
+"\365\377\356\052\340\351\351\272\133\144\042\232\232\157\054\072"
+"\046\151\121\005\231\046\334\325\034\152\161\306\232\175\036\235"
+"\335\174\154\306\214\147\147\112\076\370\161\260\031\047\251\011"
+"\014\246\225\277\113\214\014\372\125\230\073\330\350\042\241\113"
+"\161\070\171\254\227\222\151\263\211\176\352\041\150\006\230\024"
+"\226\207\322\141\066\274\155\047\126\236\127\356\300\300\126\375"
+"\062\317\244\331\216\302\043\327\215\250\363\330\045\254\227\344"
+"\160\070\364\266\072\264\235\073\227\046\103\243\241\274\111\131"
+"\162\114\043\060\207\001\130\366\116\276\034\150\126\146\257\315"
+"\101\135\310\263\115\052\125\106\253\037\332\036\342\100\075\333"
+"\315\175\271\222\200\234\067\335\014\226\144\235\334\042\367\144"
+"\213\337\141\336\025\224\122\025\240\175\122\311\113\250\041\311"
+"\306\261\355\313\303\225\140\321\017\360\253\160\370\337\313\115"
+"\176\354\326\372\253\331\275\177\124\362\245\351\171\372\331\326"
+"\166\044\050\163\002\003\001\000\001\243\077\060\075\060\035\006"
+"\003\125\035\016\004\026\004\024\240\163\111\231\150\334\205\133"
+"\145\343\233\050\057\127\237\275\063\274\007\110\060\013\006\003"
+"\125\035\017\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\005\005\000\003\202\001\001\000\150\100"
+"\251\250\273\344\117\135\171\263\005\265\027\263\140\023\353\306"
+"\222\135\340\321\323\152\376\373\276\233\155\277\307\005\155\131"
+"\040\304\034\360\267\332\204\130\002\143\372\110\026\357\117\245"
+"\013\367\112\230\362\077\236\033\255\107\153\143\316\010\107\353"
+"\122\077\170\234\257\115\256\370\325\117\317\232\230\052\020\101"
+"\071\122\304\335\331\233\016\357\223\001\256\262\056\312\150\102"
+"\044\102\154\260\263\072\076\315\351\332\110\304\025\313\351\371"
+"\007\017\222\120\111\212\335\061\227\137\311\351\067\252\073\131"
+"\145\227\224\062\311\263\237\076\072\142\130\305\111\255\142\016"
+"\161\245\062\252\057\306\211\166\103\100\023\023\147\075\242\124"
+"\045\020\313\361\072\362\331\372\333\111\126\273\246\376\247\101"
+"\065\303\340\210\141\311\210\307\337\066\020\042\230\131\352\260"
+"\112\373\126\026\163\156\254\115\367\042\241\117\255\035\172\055"
+"\105\047\345\060\301\136\362\332\023\313\045\102\121\225\107\003"
+"\214\154\041\314\164\102\355\123\377\063\213\217\017\127\001\026"
+"\057\317\246\356\311\160\042\024\275\375\276\154\013\003"
+, (PRUint32)862 }
+};
+static const NSSItem nss_builtins_items_155 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Security Communication Root CA", (PRUint32)31 },
+ { (void *)"\066\261\053\111\371\201\236\327\114\236\274\070\017\306\126\217"
+"\135\254\262\367"
+, (PRUint32)20 },
+ { (void *)"\361\274\143\152\124\340\265\047\365\315\347\032\343\115\156\112"
+, (PRUint32)16 },
+ { (void *)"\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061"
+"\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040"
+"\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125"
+"\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155"
+"\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103"
+"\101\061"
+, (PRUint32)82 },
+ { (void *)"\002\001\000"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_156 [] = {
+ { (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 *)"Sonera Class 1 Root CA", (PRUint32)23 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061"
+"\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141"
+"\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162"
+"\141\040\103\154\141\163\163\061\040\103\101"
+, (PRUint32)59 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061"
+"\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141"
+"\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162"
+"\141\040\103\154\141\163\163\061\040\103\101"
+, (PRUint32)59 },
+ { (void *)"\002\001\044"
+, (PRUint32)3 },
+ { (void *)"\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\044"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017"
+"\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061"
+"\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141"
+"\040\103\154\141\163\163\061\040\103\101\060\036\027\015\060\061"
+"\060\064\060\066\061\060\064\071\061\063\132\027\015\062\061\060"
+"\064\060\066\061\060\064\071\061\063\132\060\071\061\013\060\011"
+"\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125"
+"\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003"
+"\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163"
+"\163\061\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\265\211\037\053\117\147\012\171\377\305"
+"\036\370\177\074\355\321\176\332\260\315\155\057\066\254\064\306"
+"\333\331\144\027\010\143\060\063\042\212\114\356\216\273\017\015"
+"\102\125\311\235\056\245\357\367\247\214\303\253\271\227\313\216"
+"\357\077\025\147\250\202\162\143\123\017\101\214\175\020\225\044"
+"\241\132\245\006\372\222\127\235\372\245\001\362\165\351\037\274"
+"\126\046\122\116\170\031\145\130\125\003\130\300\024\256\214\174"
+"\125\137\160\133\167\043\006\066\227\363\044\265\232\106\225\344"
+"\337\015\013\005\105\345\321\362\035\202\273\306\023\340\376\252"
+"\172\375\151\060\224\363\322\105\205\374\362\062\133\062\336\350"
+"\154\135\037\313\244\042\164\260\200\216\135\224\367\006\000\113"
+"\251\324\136\056\065\120\011\363\200\227\364\014\027\256\071\330"
+"\137\315\063\301\034\312\211\302\042\367\105\022\355\136\022\223"
+"\235\143\253\202\056\271\353\102\101\104\313\112\032\000\202\015"
+"\236\371\213\127\076\114\307\027\355\054\213\162\063\137\162\172"
+"\070\126\325\346\331\256\005\032\035\165\105\261\313\245\045\034"
+"\022\127\066\375\042\067\002\003\001\000\001\243\063\060\061\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\107\342\014\213\366"
+"\123\210\122\060\013\006\003\125\035\017\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\213\032\262\311\135\141\264\341\271\053\271\123"
+"\321\262\205\235\167\216\026\356\021\075\333\302\143\331\133\227"
+"\145\373\022\147\330\052\134\266\253\345\136\303\267\026\057\310"
+"\350\253\035\212\375\253\032\174\325\137\143\317\334\260\335\167"
+"\271\250\346\322\042\070\207\007\024\331\377\276\126\265\375\007"
+"\016\074\125\312\026\314\247\246\167\067\373\333\134\037\116\131"
+"\006\207\243\003\103\365\026\253\267\204\275\116\357\237\061\067"
+"\360\106\361\100\266\321\014\245\144\370\143\136\041\333\125\116"
+"\117\061\166\234\020\141\216\266\123\072\243\021\276\257\155\174"
+"\036\275\256\055\342\014\151\307\205\123\150\242\141\272\305\076"
+"\264\171\124\170\236\012\307\002\276\142\321\021\202\113\145\057"
+"\221\132\302\250\207\261\126\150\224\171\371\045\367\301\325\256"
+"\032\270\273\075\217\251\212\070\025\367\163\320\132\140\321\200"
+"\260\360\334\325\120\315\116\356\222\110\151\355\262\043\036\060"
+"\314\310\224\310\266\365\073\206\177\077\246\056\237\366\076\054"
+"\265\222\226\076\337\054\223\212\377\201\214\017\017\131\041\031"
+"\127\275\125\232"
+, (PRUint32)804 }
+};
+static const NSSItem nss_builtins_items_157 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Sonera Class 1 Root CA", (PRUint32)23 },
+ { (void *)"\007\107\042\001\231\316\164\271\174\260\075\171\262\144\242\310"
+"\125\351\063\377"
+, (PRUint32)20 },
+ { (void *)"\063\267\204\365\137\047\327\150\047\336\024\336\022\052\355\157"
+, (PRUint32)16 },
+ { (void *)"\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061"
+"\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141"
+"\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162"
+"\141\040\103\154\141\163\163\061\040\103\101"
+, (PRUint32)59 },
+ { (void *)"\002\001\044"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_158 [] = {
+ { (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 *)"Sonera Class 2 Root CA", (PRUint32)23 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061"
+"\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141"
+"\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162"
+"\141\040\103\154\141\163\163\062\040\103\101"
+, (PRUint32)59 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061"
+"\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141"
+"\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162"
+"\141\040\103\154\141\163\163\062\040\103\101"
+, (PRUint32)59 },
+ { (void *)"\002\001\035"
+, (PRUint32)3 },
+ { (void *)"\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\035"
+"\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060"
+"\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017"
+"\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061"
+"\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141"
+"\040\103\154\141\163\163\062\040\103\101\060\036\027\015\060\061"
+"\060\064\060\066\060\067\062\071\064\060\132\027\015\062\061\060"
+"\064\060\066\060\067\062\071\064\060\132\060\071\061\013\060\011"
+"\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125"
+"\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003"
+"\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163"
+"\163\062\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\220\027\112\065\235\312\360\015\226\307"
+"\104\372\026\067\374\110\275\275\177\200\055\065\073\341\157\250"
+"\147\251\277\003\034\115\214\157\062\107\325\101\150\244\023\004"
+"\301\065\014\232\204\103\374\134\035\377\211\263\350\027\030\315"
+"\221\137\373\211\343\352\277\116\135\174\033\046\323\165\171\355"
+"\346\204\343\127\345\255\051\304\364\072\050\347\245\173\204\066"
+"\151\263\375\136\166\275\243\055\231\323\220\116\043\050\175\030"
+"\143\361\124\073\046\235\166\133\227\102\262\377\256\360\116\354"
+"\335\071\225\116\203\006\177\347\111\100\310\305\001\262\124\132"
+"\146\035\075\374\371\351\074\012\236\201\270\160\360\001\213\344"
+"\043\124\174\310\256\370\220\036\000\226\162\324\124\317\141\043"
+"\274\352\373\235\002\225\321\266\271\161\072\151\010\077\017\264"
+"\341\102\307\210\365\077\230\250\247\272\034\340\161\161\357\130"
+"\127\201\120\172\134\153\164\106\016\203\003\230\303\216\250\156"
+"\362\166\062\156\047\203\302\163\363\334\030\350\264\223\352\165"
+"\104\153\004\140\040\161\127\207\235\363\276\240\220\043\075\212"
+"\044\341\332\041\333\303\002\003\001\000\001\243\063\060\061\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\112\240\252\130\204"
+"\323\136\074\060\013\006\003\125\035\017\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\132\316\207\371\026\162\025\127\113\035\331\233"
+"\347\242\046\060\354\223\147\337\326\055\322\064\257\367\070\245"
+"\316\253\026\271\253\057\174\065\313\254\320\017\264\114\053\374"
+"\200\357\153\214\221\137\066\166\367\333\263\033\031\352\364\262"
+"\021\375\141\161\104\277\050\263\072\035\277\263\103\350\237\277"
+"\334\061\010\161\260\235\215\326\064\107\062\220\306\145\044\367"
+"\240\112\174\004\163\217\071\157\027\214\162\265\275\113\310\172"
+"\370\173\203\303\050\116\234\011\352\147\077\262\147\004\033\303"
+"\024\332\370\347\111\044\221\320\035\152\372\141\071\357\153\347"
+"\041\165\006\007\330\022\264\041\040\160\102\161\201\332\074\232"
+"\066\276\246\133\015\152\154\232\037\221\173\371\371\357\102\272"
+"\116\116\236\314\014\215\224\334\331\105\234\136\354\102\120\143"
+"\256\364\135\304\261\022\334\312\073\250\056\235\024\132\005\165"
+"\267\354\327\143\342\272\065\266\004\010\221\350\332\235\234\366"
+"\146\265\030\254\012\246\124\046\064\063\322\033\301\324\177\032"
+"\072\216\013\252\062\156\333\374\117\045\237\331\062\307\226\132"
+"\160\254\337\114"
+, (PRUint32)804 }
+};
+static const NSSItem nss_builtins_items_159 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Sonera Class 2 Root CA", (PRUint32)23 },
+ { (void *)"\067\367\155\346\007\174\220\305\261\076\223\032\267\101\020\264"
+"\362\344\232\047"
+, (PRUint32)20 },
+ { (void *)"\243\354\165\017\056\210\337\372\110\001\116\013\134\110\157\373"
+, (PRUint32)16 },
+ { (void *)"\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061"
+"\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141"
+"\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162"
+"\141\040\103\154\141\163\163\062\040\103\101"
+, (PRUint32)59 },
+ { (void *)"\002\001\035"
+, (PRUint32)3 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_160 [] = {
+ { (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 *)"Staat der Nederlanden Root CA", (PRUint32)30 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+"\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040"
+"\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061"
+"\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040"
+"\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040"
+"\122\157\157\164\040\103\101"
+, (PRUint32)87 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+"\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040"
+"\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061"
+"\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040"
+"\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040"
+"\122\157\157\164\040\103\101"
+, (PRUint32)87 },
+ { (void *)"\002\004\000\230\226\212"
+, (PRUint32)6 },
+ { (void *)"\060\202\003\272\060\202\002\242\240\003\002\001\002\002\004\000"
+"\230\226\212\060\015\006\011\052\206\110\206\367\015\001\001\005"
+"\005\000\060\125\061\013\060\011\006\003\125\004\006\023\002\116"
+"\114\061\036\060\034\006\003\125\004\012\023\025\123\164\141\141"
+"\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145"
+"\156\061\046\060\044\006\003\125\004\003\023\035\123\164\141\141"
+"\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145"
+"\156\040\122\157\157\164\040\103\101\060\036\027\015\060\062\061"
+"\062\061\067\060\071\062\063\064\071\132\027\015\061\065\061\062"
+"\061\066\060\071\061\065\063\070\132\060\125\061\013\060\011\006"
+"\003\125\004\006\023\002\116\114\061\036\060\034\006\003\125\004"
+"\012\023\025\123\164\141\141\164\040\144\145\162\040\116\145\144"
+"\145\162\154\141\156\144\145\156\061\046\060\044\006\003\125\004"
+"\003\023\035\123\164\141\141\164\040\144\145\162\040\116\145\144"
+"\145\162\154\141\156\144\145\156\040\122\157\157\164\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\230\322\265\121\021\172\201\246\024\230\161\155\276\314\347"
+"\023\033\326\047\016\172\263\152\030\034\266\141\132\325\141\011"
+"\277\336\220\023\307\147\356\335\363\332\305\014\022\236\065\125"
+"\076\054\047\210\100\153\367\334\335\042\141\365\302\307\016\365"
+"\366\325\166\123\115\217\214\274\030\166\067\205\235\350\312\111"
+"\307\322\117\230\023\011\242\076\042\210\234\177\326\362\020\145"
+"\264\356\137\030\325\027\343\370\305\375\342\235\242\357\123\016"
+"\205\167\242\017\341\060\107\356\000\347\063\175\104\147\032\013"
+"\121\350\213\240\236\120\230\150\064\122\037\056\155\001\362\140"
+"\105\362\061\353\251\061\150\051\273\172\101\236\306\031\177\224"
+"\264\121\071\003\177\262\336\247\062\233\264\107\216\157\264\112"
+"\256\345\257\261\334\260\033\141\274\231\162\336\344\211\267\172"
+"\046\135\332\063\111\133\122\234\016\365\212\255\303\270\075\350"
+"\006\152\302\325\052\013\154\173\204\275\126\005\313\206\145\222"
+"\354\104\053\260\216\271\334\160\013\106\332\255\274\143\210\071"
+"\372\333\152\376\043\372\274\344\110\364\147\053\152\021\020\041"
+"\111\002\003\001\000\001\243\201\221\060\201\216\060\014\006\003"
+"\125\035\023\004\005\060\003\001\001\377\060\117\006\003\125\035"
+"\040\004\110\060\106\060\104\006\004\125\035\040\000\060\074\060"
+"\072\006\010\053\006\001\005\005\007\002\001\026\056\150\164\164"
+"\160\072\057\057\167\167\167\056\160\153\151\157\166\145\162\150"
+"\145\151\144\056\156\154\057\160\157\154\151\143\151\145\163\057"
+"\162\157\157\164\055\160\157\154\151\143\171\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\250\175\353\274\143\244\164\023\164\000"
+"\354\226\340\323\064\301\054\277\154\370\060\015\006\011\052\206"
+"\110\206\367\015\001\001\005\005\000\003\202\001\001\000\005\204"
+"\207\125\164\066\141\301\273\321\324\306\025\250\023\264\237\244"
+"\376\273\356\025\264\057\006\014\051\362\250\222\244\141\015\374"
+"\253\134\010\133\121\023\053\115\302\052\141\310\370\011\130\374"
+"\055\002\262\071\175\231\146\201\277\156\134\225\105\040\154\346"
+"\171\247\321\330\034\051\374\302\040\047\121\310\361\174\135\064"
+"\147\151\205\021\060\306\000\322\327\363\323\174\266\360\061\127"
+"\050\022\202\163\351\063\057\246\125\264\013\221\224\107\234\372"
+"\273\172\102\062\350\256\176\055\310\274\254\024\277\331\017\331"
+"\133\374\301\371\172\225\341\175\176\226\374\161\260\302\114\310"
+"\337\105\064\311\316\015\362\234\144\010\320\073\303\051\305\262"
+"\355\220\004\301\261\051\221\305\060\157\301\251\162\063\314\376"
+"\135\026\027\054\021\151\347\176\376\305\203\010\337\274\334\042"
+"\072\056\040\151\043\071\126\140\147\220\213\056\166\071\373\021"
+"\210\227\366\174\275\113\270\040\026\147\005\215\342\073\301\162"
+"\077\224\225\067\307\135\271\236\330\223\241\027\217\377\014\146"
+"\025\301\044\174\062\174\003\035\073\241\130\105\062\223"
+, (PRUint32)958 }
+};
+static const NSSItem nss_builtins_items_161 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"Staat der Nederlanden Root CA", (PRUint32)30 },
+ { (void *)"\020\035\372\077\325\013\313\273\233\265\140\014\031\125\244\032"
+"\364\163\072\004"
+, (PRUint32)20 },
+ { (void *)"\140\204\174\132\316\333\014\324\313\247\351\376\002\306\251\300"
+, (PRUint32)16 },
+ { (void *)"\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061"
+"\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040"
+"\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061"
+"\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040"
+"\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040"
+"\122\157\157\164\040\103\101"
+, (PRUint32)87 },
+ { (void *)"\002\004\000\230\226\212"
+, (PRUint32)6 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_162 [] = {
+ { (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 *)"TDC Internet Root CA", (PRUint32)21 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156"
+"\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023"
+"\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157"
+"\157\164\040\103\101"
+, (PRUint32)69 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156"
+"\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023"
+"\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157"
+"\157\164\040\103\101"
+, (PRUint32)69 },
+ { (void *)"\002\004\072\314\245\114"
+, (PRUint32)6 },
+ { (void *)"\060\202\004\053\060\202\003\023\240\003\002\001\002\002\004\072"
+"\314\245\114\060\015\006\011\052\206\110\206\367\015\001\001\005"
+"\005\000\060\103\061\013\060\011\006\003\125\004\006\023\002\104"
+"\113\061\025\060\023\006\003\125\004\012\023\014\124\104\103\040"
+"\111\156\164\145\162\156\145\164\061\035\060\033\006\003\125\004"
+"\013\023\024\124\104\103\040\111\156\164\145\162\156\145\164\040"
+"\122\157\157\164\040\103\101\060\036\027\015\060\061\060\064\060"
+"\065\061\066\063\063\061\067\132\027\015\062\061\060\064\060\065"
+"\061\067\060\063\061\067\132\060\103\061\013\060\011\006\003\125"
+"\004\006\023\002\104\113\061\025\060\023\006\003\125\004\012\023"
+"\014\124\104\103\040\111\156\164\145\162\156\145\164\061\035\060"
+"\033\006\003\125\004\013\023\024\124\104\103\040\111\156\164\145"
+"\162\156\145\164\040\122\157\157\164\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\304\270\100"
+"\274\221\325\143\037\327\231\240\213\014\100\036\164\267\110\235"
+"\106\214\002\262\340\044\137\360\031\023\247\067\203\153\135\307"
+"\216\371\204\060\316\032\073\372\373\316\213\155\043\306\303\156"
+"\146\237\211\245\337\340\102\120\147\372\037\154\036\364\320\005"
+"\326\277\312\326\116\344\150\140\154\106\252\034\135\143\341\007"
+"\206\016\145\000\247\056\246\161\306\274\271\201\250\072\175\032"
+"\322\371\321\254\113\313\316\165\257\334\173\372\201\163\324\374"
+"\272\275\101\210\324\164\263\371\136\070\072\074\103\250\322\225"
+"\116\167\155\023\014\235\217\170\001\267\132\040\037\003\067\065"
+"\342\054\333\113\053\054\170\271\111\333\304\320\307\234\234\344"
+"\212\040\011\041\026\126\146\377\005\354\133\343\360\317\253\044"
+"\044\136\303\177\160\172\022\304\322\265\020\240\266\041\341\215"
+"\170\151\125\104\151\365\312\226\034\064\205\027\045\167\342\366"
+"\057\047\230\170\375\171\006\072\242\326\132\103\301\377\354\004"
+"\073\356\023\357\323\130\132\377\222\353\354\256\332\362\067\003"
+"\107\101\266\227\311\055\012\101\042\273\273\346\247\002\003\001"
+"\000\001\243\202\001\045\060\202\001\041\060\021\006\011\140\206"
+"\110\001\206\370\102\001\001\004\004\003\002\000\007\060\145\006"
+"\003\125\035\037\004\136\060\134\060\132\240\130\240\126\244\124"
+"\060\122\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156"
+"\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023"
+"\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157"
+"\157\164\040\103\101\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\062\060\060\061\060\064\060\065\061\066\063\063\061\067\132"
+"\201\017\062\060\062\061\060\064\060\065\061\067\060\063\061\067"
+"\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\154\144\001\307\375"
+"\205\155\254\310\332\236\120\010\205\010\265\074\126\250\120\060"
+"\035\006\003\125\035\016\004\026\004\024\154\144\001\307\375\205"
+"\155\254\310\332\236\120\010\205\010\265\074\126\250\120\060\014"
+"\006\003\125\035\023\004\005\060\003\001\001\377\060\035\006\011"
+"\052\206\110\206\366\175\007\101\000\004\020\060\016\033\010\126"
+"\065\056\060\072\064\056\060\003\002\004\220\060\015\006\011\052"
+"\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\116"
+"\103\314\321\335\035\020\033\006\177\267\244\372\323\331\115\373"
+"\043\237\043\124\133\346\213\057\004\050\213\265\047\155\211\241"
+"\354\230\151\334\347\215\046\203\005\171\164\354\264\271\243\227"
+"\301\065\000\375\025\332\071\201\072\225\061\220\336\227\351\206"
+"\250\231\167\014\345\132\240\204\377\022\026\254\156\270\215\303"
+"\173\222\302\254\056\320\175\050\354\266\363\140\070\151\157\076"
+"\330\004\125\076\236\314\125\322\272\376\273\107\004\327\012\331"
+"\026\012\064\051\365\130\023\325\117\317\217\126\113\263\036\356"
+"\323\230\171\332\010\036\014\157\270\370\026\047\357\302\157\075"
+"\366\243\113\076\016\344\155\154\333\073\101\022\233\275\015\107"
+"\043\177\074\112\320\257\300\257\366\357\033\265\025\304\353\203"
+"\304\011\137\164\213\331\021\373\302\126\261\074\370\160\312\064"
+"\215\103\100\023\214\375\231\003\124\171\306\056\352\206\241\366"
+"\072\324\011\274\364\274\146\314\075\130\320\127\111\012\356\045"
+"\342\101\356\023\371\233\070\064\321\000\365\176\347\224\035\374"
+"\151\003\142\270\231\005\005\075\153\170\022\275\260\157\145"
+, (PRUint32)1071 }
+};
+static const NSSItem nss_builtins_items_163 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"TDC Internet Root CA", (PRUint32)21 },
+ { (void *)"\041\374\275\216\177\154\257\005\033\321\263\103\354\250\347\141"
+"\107\362\017\212"
+, (PRUint32)20 },
+ { (void *)"\221\364\003\125\040\241\370\143\054\142\336\254\373\141\034\216"
+, (PRUint32)16 },
+ { (void *)"\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156"
+"\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023"
+"\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157"
+"\157\164\040\103\101"
+, (PRUint32)69 },
+ { (void *)"\002\004\072\314\245\114"
+, (PRUint32)6 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_164 [] = {
+ { (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 *)"TDC OCES Root CA", (PRUint32)17 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060"
+"\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123"
+"\040\103\101"
+, (PRUint32)51 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060"
+"\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123"
+"\040\103\101"
+, (PRUint32)51 },
+ { (void *)"\002\004\076\110\275\304"
+, (PRUint32)6 },
+ { (void *)"\060\202\005\031\060\202\004\001\240\003\002\001\002\002\004\076"
+"\110\275\304\060\015\006\011\052\206\110\206\367\015\001\001\005"
+"\005\000\060\061\061\013\060\011\006\003\125\004\006\023\002\104"
+"\113\061\014\060\012\006\003\125\004\012\023\003\124\104\103\061"
+"\024\060\022\006\003\125\004\003\023\013\124\104\103\040\117\103"
+"\105\123\040\103\101\060\036\027\015\060\063\060\062\061\061\060"
+"\070\063\071\063\060\132\027\015\063\067\060\062\061\061\060\071"
+"\060\071\063\060\132\060\061\061\013\060\011\006\003\125\004\006"
+"\023\002\104\113\061\014\060\012\006\003\125\004\012\023\003\124"
+"\104\103\061\024\060\022\006\003\125\004\003\023\013\124\104\103"
+"\040\117\103\105\123\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\254\142\366\141\040\262\317"
+"\300\306\205\327\343\171\346\314\355\362\071\222\244\227\056\144"
+"\243\204\133\207\234\114\375\244\363\304\137\041\275\126\020\353"
+"\333\056\141\354\223\151\343\243\314\275\231\303\005\374\006\270"
+"\312\066\034\376\220\216\111\114\304\126\232\057\126\274\317\173"
+"\014\361\157\107\246\015\103\115\342\351\035\071\064\315\215\054"
+"\331\022\230\371\343\341\301\112\174\206\070\304\251\304\141\210"
+"\322\136\257\032\046\115\325\344\240\042\107\204\331\144\267\031"
+"\226\374\354\031\344\262\227\046\116\112\114\313\217\044\213\124"
+"\030\034\110\141\173\325\210\150\332\135\265\352\315\032\060\301"
+"\200\203\166\120\252\117\321\324\335\070\360\357\026\364\341\014"
+"\120\006\277\352\373\172\111\241\050\053\034\366\374\025\062\243"
+"\164\152\217\251\303\142\051\161\061\345\073\244\140\027\136\164"
+"\346\332\023\355\351\037\037\033\321\262\150\163\306\020\064\165"
+"\106\020\020\343\220\000\166\100\313\213\267\103\011\041\377\253"
+"\116\223\306\130\351\245\202\333\167\304\072\231\261\162\225\111"
+"\004\360\267\053\372\173\131\216\335\002\003\001\000\001\243\202"
+"\002\067\060\202\002\063\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\201\354\006\003\125\035\040\004"
+"\201\344\060\201\341\060\201\336\006\010\052\201\120\201\051\001"
+"\001\001\060\201\321\060\057\006\010\053\006\001\005\005\007\002"
+"\001\026\043\150\164\164\160\072\057\057\167\167\167\056\143\145"
+"\162\164\151\146\151\153\141\164\056\144\153\057\162\145\160\157"
+"\163\151\164\157\162\171\060\201\235\006\010\053\006\001\005\005"
+"\007\002\002\060\201\220\060\012\026\003\124\104\103\060\003\002"
+"\001\001\032\201\201\103\145\162\164\151\146\151\153\141\164\145"
+"\162\040\146\162\141\040\144\145\156\156\145\040\103\101\040\165"
+"\144\163\164\145\144\145\163\040\165\156\144\145\162\040\117\111"
+"\104\040\061\056\062\056\062\060\070\056\061\066\071\056\061\056"
+"\061\056\061\056\040\103\145\162\164\151\146\151\143\141\164\145"
+"\163\040\146\162\157\155\040\164\150\151\163\040\103\101\040\141"
+"\162\145\040\151\163\163\165\145\144\040\165\156\144\145\162\040"
+"\117\111\104\040\061\056\062\056\062\060\070\056\061\066\071\056"
+"\061\056\061\056\061\056\060\021\006\011\140\206\110\001\206\370"
+"\102\001\001\004\004\003\002\000\007\060\201\201\006\003\125\035"
+"\037\004\172\060\170\060\110\240\106\240\104\244\102\060\100\061"
+"\013\060\011\006\003\125\004\006\023\002\104\113\061\014\060\012"
+"\006\003\125\004\012\023\003\124\104\103\061\024\060\022\006\003"
+"\125\004\003\023\013\124\104\103\040\117\103\105\123\040\103\101"
+"\061\015\060\013\006\003\125\004\003\023\004\103\122\114\061\060"
+"\054\240\052\240\050\206\046\150\164\164\160\072\057\057\143\162"
+"\154\056\157\143\145\163\056\143\145\162\164\151\146\151\153\141"
+"\164\056\144\153\057\157\143\145\163\056\143\162\154\060\053\006"
+"\003\125\035\020\004\044\060\042\200\017\062\060\060\063\060\062"
+"\061\061\060\070\063\071\063\060\132\201\017\062\060\063\067\060"
+"\062\061\061\060\071\060\071\063\060\132\060\037\006\003\125\035"
+"\043\004\030\060\026\200\024\140\265\205\354\126\144\176\022\031"
+"\047\147\035\120\025\113\163\256\073\371\022\060\035\006\003\125"
+"\035\016\004\026\004\024\140\265\205\354\126\144\176\022\031\047"
+"\147\035\120\025\113\163\256\073\371\022\060\035\006\011\052\206"
+"\110\206\366\175\007\101\000\004\020\060\016\033\010\126\066\056"
+"\060\072\064\056\060\003\002\004\220\060\015\006\011\052\206\110"
+"\206\367\015\001\001\005\005\000\003\202\001\001\000\012\272\046"
+"\046\106\323\163\250\011\363\153\013\060\231\375\212\341\127\172"
+"\021\323\270\224\327\011\020\156\243\261\070\003\321\266\362\103"
+"\101\051\142\247\162\330\373\174\005\346\061\160\047\124\030\116"
+"\212\174\116\345\321\312\214\170\210\317\033\323\220\213\346\043"
+"\370\013\016\063\103\175\234\342\012\031\217\311\001\076\164\135"
+"\164\311\213\034\003\345\030\310\001\114\077\313\227\005\135\230"
+"\161\246\230\157\266\174\275\067\177\276\341\223\045\155\157\360"
+"\012\255\027\030\341\003\274\007\051\310\255\046\350\370\141\360"
+"\375\041\011\176\232\216\251\150\175\110\142\162\275\000\352\001"
+"\231\270\006\202\121\201\116\361\365\264\221\124\271\043\172\000"
+"\232\237\135\215\340\074\144\271\032\022\222\052\307\202\104\162"
+"\071\334\342\074\306\330\125\365\025\116\310\005\016\333\306\320"
+"\142\246\354\025\264\265\002\202\333\254\214\242\201\360\233\231"
+"\061\365\040\040\250\210\141\012\007\237\224\374\320\327\033\314"
+"\056\027\363\004\047\166\147\353\124\203\375\244\220\176\006\075"
+"\004\243\103\055\332\374\013\142\352\057\137\142\123"
+, (PRUint32)1309 }
+};
+static const NSSItem nss_builtins_items_165 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"TDC OCES Root CA", (PRUint32)17 },
+ { (void *)"\207\201\302\132\226\275\302\373\114\145\006\117\371\071\013\046"
+"\004\212\016\001"
+, (PRUint32)20 },
+ { (void *)"\223\177\220\034\355\204\147\027\244\145\137\233\313\060\002\227"
+, (PRUint32)16 },
+ { (void *)"\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061"
+"\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060"
+"\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123"
+"\040\103\101"
+, (PRUint32)51 },
+ { (void *)"\002\004\076\110\275\304"
+, (PRUint32)6 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_166 [] = {
+ { (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_167 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"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_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_168 [] = {
+ { (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 USERFirst Email Root CA", (PRUint32)28 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\201\256\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\066\060\064\006\003\125"
+"\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164"
+"\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151"
+"\154"
+, (PRUint32)177 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\201\256\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\066\060\064\006\003\125"
+"\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164"
+"\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151"
+"\154"
+, (PRUint32)177 },
+ { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\045\045\147"
+"\311\211"
+, (PRUint32)18 },
+ { (void *)"\060\202\004\242\060\202\003\212\240\003\002\001\002\002\020\104"
+"\276\014\213\120\000\044\264\021\323\066\045\045\147\311\211\060"
+"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201"
+"\256\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\066\060\064\006\003\125\004\003"
+"\023\055\125\124\116\055\125\123\105\122\106\151\162\163\164\055"
+"\103\154\151\145\156\164\040\101\165\164\150\145\156\164\151\143"
+"\141\164\151\157\156\040\141\156\144\040\105\155\141\151\154\060"
+"\036\027\015\071\071\060\067\060\071\061\067\062\070\065\060\132"
+"\027\015\061\071\060\067\060\071\061\067\063\066\065\070\132\060"
+"\201\256\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\066\060\064\006\003\125\004"
+"\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163\164"
+"\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164\151"
+"\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151\154"
+"\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\262\071\205\244\362\175\253\101\073\142\106\067\256\315\301"
+"\140\165\274\071\145\371\112\032\107\242\271\314\110\314\152\230"
+"\325\115\065\031\271\244\102\345\316\111\342\212\057\036\174\322"
+"\061\007\307\116\264\203\144\235\056\051\325\242\144\304\205\275"
+"\205\121\065\171\244\116\150\220\173\034\172\244\222\250\027\362"
+"\230\025\362\223\314\311\244\062\225\273\014\117\060\275\230\240"
+"\013\213\345\156\033\242\106\372\170\274\242\157\253\131\136\245"
+"\057\317\312\332\155\252\057\353\254\241\263\152\252\267\056\147"
+"\065\213\171\341\036\151\210\342\346\106\315\240\245\352\276\013"
+"\316\166\072\172\016\233\352\374\332\047\133\075\163\037\042\346"
+"\110\141\306\114\363\151\261\250\056\033\266\324\061\040\054\274"
+"\202\212\216\244\016\245\327\211\103\374\026\132\257\035\161\327"
+"\021\131\332\272\207\015\257\372\363\341\302\360\244\305\147\214"
+"\326\326\124\072\336\012\244\272\003\167\263\145\310\375\036\323"
+"\164\142\252\030\312\150\223\036\241\205\176\365\107\145\313\370"
+"\115\127\050\164\322\064\377\060\266\356\366\142\060\024\214\054"
+"\353\002\003\001\000\001\243\201\271\060\201\266\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\211\202\147\175\304\235\046\160\000\113\264"
+"\120\110\174\336\075\256\004\156\175\060\130\006\003\125\035\037"
+"\004\121\060\117\060\115\240\113\240\111\206\107\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\103\154\151\145\156\164\101\165\164\150\145\156\164"
+"\151\143\141\164\151\157\156\141\156\144\105\155\141\151\154\056"
+"\143\162\154\060\035\006\003\125\035\045\004\026\060\024\006\010"
+"\053\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007"
+"\003\004\060\015\006\011\052\206\110\206\367\015\001\001\005\005"
+"\000\003\202\001\001\000\261\155\141\135\246\032\177\174\253\112"
+"\344\060\374\123\157\045\044\306\312\355\342\061\134\053\016\356"
+"\356\141\125\157\004\076\317\071\336\305\033\111\224\344\353\040"
+"\114\264\346\236\120\056\162\331\215\365\252\243\263\112\332\126"
+"\034\140\227\200\334\202\242\255\112\275\212\053\377\013\011\264"
+"\306\327\040\004\105\344\315\200\001\272\272\053\156\316\252\327"
+"\222\376\344\257\353\364\046\035\026\052\177\154\060\225\067\057"
+"\063\022\254\177\335\307\321\021\214\121\230\262\320\243\221\320"
+"\255\366\237\236\203\223\036\035\102\270\106\257\153\146\360\233"
+"\177\352\343\003\002\345\002\121\301\252\325\065\235\162\100\003"
+"\211\272\061\035\305\020\150\122\236\337\242\205\305\134\010\246"
+"\170\346\123\117\261\350\267\323\024\236\223\246\303\144\343\254"
+"\176\161\315\274\237\351\003\033\314\373\351\254\061\301\257\174"
+"\025\164\002\231\303\262\107\246\302\062\141\327\307\157\110\044"
+"\121\047\241\325\207\125\362\173\217\230\075\026\236\356\165\266"
+"\370\320\216\362\363\306\256\050\133\247\360\363\066\027\374\303"
+"\005\323\312\003\112\124"
+, (PRUint32)1190 }
+};
+static const NSSItem nss_builtins_items_169 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"UTN USERFirst Email Root CA", (PRUint32)28 },
+ { (void *)"\261\162\261\245\155\225\371\037\345\002\207\341\115\067\352\152"
+"\104\143\166\212"
+, (PRUint32)20 },
+ { (void *)"\327\064\075\357\035\047\011\050\341\061\002\133\023\053\335\367"
+, (PRUint32)16 },
+ { (void *)"\060\201\256\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\066\060\064\006\003\125"
+"\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164"
+"\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151"
+"\154"
+, (PRUint32)177 },
+ { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\045\045\147"
+"\311\211"
+, (PRUint32)18 },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_170 [] = {
+ { (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 USERFirst Hardware Root CA", (PRUint32)31 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\201\227\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\037\060\035\006\003\125"
+"\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\110\141\162\144\167\141\162\145"
+, (PRUint32)154 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\201\227\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\037\060\035\006\003\125"
+"\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\110\141\162\144\167\141\162\145"
+, (PRUint32)154 },
+ { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\052\376\145"
+"\012\375"
+, (PRUint32)18 },
+ { (void *)"\060\202\004\164\060\202\003\134\240\003\002\001\002\002\020\104"
+"\276\014\213\120\000\044\264\021\323\066\052\376\145\012\375\060"
+"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201"
+"\227\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\037\060\035\006\003\125\004\003"
+"\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055"
+"\110\141\162\144\167\141\162\145\060\036\027\015\071\071\060\067"
+"\060\071\061\070\061\060\064\062\132\027\015\061\071\060\067\060"
+"\071\061\070\061\071\062\062\132\060\201\227\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\037\060\035\006\003\125\004\003\023\026\125\124\116\055"
+"\125\123\105\122\106\151\162\163\164\055\110\141\162\144\167\141"
+"\162\145\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\261\367\303\070\077\264\250\177\317\071\202\121\147"
+"\320\155\237\322\377\130\363\347\237\053\354\015\211\124\231\271"
+"\070\231\026\367\340\041\171\110\302\273\141\164\022\226\035\074"
+"\152\162\325\074\020\147\072\071\355\053\023\315\146\353\225\011"
+"\063\244\154\227\261\350\306\354\301\165\171\234\106\136\215\253"
+"\320\152\375\271\052\125\027\020\124\263\031\360\232\366\361\261"
+"\135\266\247\155\373\340\161\027\153\242\210\373\000\337\376\032"
+"\061\167\014\232\001\172\261\062\343\053\001\007\070\156\303\245"
+"\136\043\274\105\233\173\120\301\311\060\217\333\345\053\172\323"
+"\133\373\063\100\036\240\325\230\027\274\213\207\303\211\323\135"
+"\240\216\262\252\252\366\216\151\210\006\305\372\211\041\363\010"
+"\235\151\056\011\063\233\051\015\106\017\214\314\111\064\260\151"
+"\121\275\371\006\315\150\255\146\114\274\076\254\141\275\012\210"
+"\016\310\337\075\356\174\004\114\235\012\136\153\221\326\356\307"
+"\355\050\215\253\115\207\211\163\320\156\244\320\036\026\213\024"
+"\341\166\104\003\177\143\254\344\315\111\234\305\222\364\253\062"
+"\241\110\133\002\003\001\000\001\243\201\271\060\201\266\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\241\162\137\046\033\050\230\103\225"
+"\135\007\067\325\205\226\235\113\322\303\105\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\125\124\116\055\125\123\105\122\106"
+"\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143\162"
+"\154\060\061\006\003\125\035\045\004\052\060\050\006\010\053\006"
+"\001\005\005\007\003\001\006\010\053\006\001\005\005\007\003\005"
+"\006\010\053\006\001\005\005\007\003\006\006\010\053\006\001\005"
+"\005\007\003\007\060\015\006\011\052\206\110\206\367\015\001\001"
+"\005\005\000\003\202\001\001\000\107\031\017\336\164\306\231\227"
+"\257\374\255\050\136\165\216\353\055\147\356\116\173\053\327\014"
+"\377\366\336\313\125\242\012\341\114\124\145\223\140\153\237\022"
+"\234\255\136\203\054\353\132\256\300\344\055\364\000\143\035\270"
+"\300\154\362\317\111\273\115\223\157\006\246\012\042\262\111\142"
+"\010\116\377\310\310\024\262\210\026\135\347\001\344\022\225\345"
+"\105\064\263\213\151\275\317\264\205\217\165\121\236\175\072\070"
+"\072\024\110\022\306\373\247\073\032\215\015\202\100\007\350\004"
+"\010\220\241\211\313\031\120\337\312\034\001\274\035\004\031\173"
+"\020\166\227\073\356\220\220\312\304\016\037\026\156\165\357\063"
+"\370\323\157\133\036\226\343\340\164\167\164\173\212\242\156\055"
+"\335\166\326\071\060\202\360\253\234\122\362\052\307\257\111\136"
+"\176\307\150\345\202\201\310\152\047\371\047\210\052\325\130\120"
+"\225\037\360\073\034\127\273\175\024\071\142\053\232\311\224\222"
+"\052\243\042\014\377\211\046\175\137\043\053\107\327\025\035\251"
+"\152\236\121\015\052\121\236\201\371\324\073\136\160\022\177\020"
+"\062\234\036\273\235\370\146\250"
+, (PRUint32)1144 }
+};
+static const NSSItem nss_builtins_items_171 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"UTN USERFirst Hardware Root CA", (PRUint32)31 },
+ { (void *)"\004\203\355\063\231\254\066\010\005\207\042\355\274\136\106\000"
+"\343\276\371\327"
+, (PRUint32)20 },
+ { (void *)"\114\126\101\345\015\273\053\350\312\243\355\030\010\255\103\071"
+, (PRUint32)16 },
+ { (void *)"\060\201\227\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\037\060\035\006\003\125"
+"\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\110\141\162\144\167\141\162\145"
+, (PRUint32)154 },
+ { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\052\376\145"
+"\012\375"
+, (PRUint32)18 },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) }
+};
+static const NSSItem nss_builtins_items_172 [] = {
+ { (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 USERFirst Object Root CA", (PRUint32)29 },
+ { (void *)&ckc_x_509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) },
+ { (void *)"\060\201\225\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\035\060\033\006\003\125"
+"\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\117\142\152\145\143\164"
+, (PRUint32)152 },
+ { (void *)"0", (PRUint32)2 },
+ { (void *)"\060\201\225\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\035\060\033\006\003\125"
+"\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\117\142\152\145\143\164"
+, (PRUint32)152 },
+ { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\055\340\263"
+"\137\033"
+, (PRUint32)18 },
+ { (void *)"\060\202\004\146\060\202\003\116\240\003\002\001\002\002\020\104"
+"\276\014\213\120\000\044\264\021\323\066\055\340\263\137\033\060"
+"\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201"
+"\225\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\035\060\033\006\003\125\004\003"
+"\023\024\125\124\116\055\125\123\105\122\106\151\162\163\164\055"
+"\117\142\152\145\143\164\060\036\027\015\071\071\060\067\060\071"
+"\061\070\063\061\062\060\132\027\015\061\071\060\067\060\071\061"
+"\070\064\060\063\066\132\060\201\225\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"
+"\035\060\033\006\003\125\004\003\023\024\125\124\116\055\125\123"
+"\105\122\106\151\162\163\164\055\117\142\152\145\143\164\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\316"
+"\252\201\077\243\243\141\170\252\061\000\125\225\021\236\047\017"
+"\037\034\337\072\233\202\150\060\300\112\141\035\361\057\016\372"
+"\276\171\367\245\043\357\125\121\226\204\315\333\343\271\156\076"
+"\061\330\012\040\147\307\364\331\277\224\353\107\004\076\002\316"
+"\052\242\135\207\004\011\366\060\235\030\212\227\262\252\034\374"
+"\101\322\241\066\313\373\075\221\272\347\331\160\065\372\344\347"
+"\220\303\233\243\233\323\074\365\022\231\167\261\267\011\340\150"
+"\346\034\270\363\224\143\210\152\152\376\013\166\311\276\364\042"
+"\344\147\271\253\032\136\167\301\205\007\335\015\154\277\356\006"
+"\307\167\152\101\236\247\017\327\373\356\224\027\267\374\205\276"
+"\244\253\304\034\061\335\327\266\321\344\360\357\337\026\217\262"
+"\122\223\327\241\324\211\241\007\056\277\341\001\022\102\036\032"
+"\341\330\225\064\333\144\171\050\377\272\056\021\302\345\350\133"
+"\222\110\373\107\013\302\154\332\255\062\203\101\363\245\345\101"
+"\160\375\145\220\155\372\372\121\304\371\275\226\053\031\004\054"
+"\323\155\247\334\360\177\157\203\145\342\152\253\207\206\165\002"
+"\003\001\000\001\243\201\257\060\201\254\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\332\355\144\164\024\234\024\074\253\335\231\251\275"
+"\133\050\115\213\074\311\330\060\102\006\003\125\035\037\004\073"
+"\060\071\060\067\240\065\240\063\206\061\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\117\142\152\145\143\164\056\143\162\154\060\051\006\003\125"
+"\035\045\004\042\060\040\006\010\053\006\001\005\005\007\003\003"
+"\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001\004"
+"\001\202\067\012\003\004\060\015\006\011\052\206\110\206\367\015"
+"\001\001\005\005\000\003\202\001\001\000\010\037\122\261\067\104"
+"\170\333\375\316\271\332\225\226\230\252\125\144\200\265\132\100"
+"\335\041\245\305\301\363\137\054\114\310\107\132\151\352\350\360"
+"\065\065\364\320\045\363\310\246\244\207\112\275\033\261\163\010"
+"\275\324\303\312\266\065\273\131\206\167\061\315\247\200\024\256"
+"\023\357\374\261\110\371\153\045\045\055\121\266\054\155\105\301"
+"\230\310\212\126\135\076\356\103\116\076\153\047\216\320\072\113"
+"\205\013\137\323\355\152\247\165\313\321\132\207\057\071\165\023"
+"\132\162\260\002\201\237\276\360\017\204\124\040\142\154\151\324"
+"\341\115\306\015\231\103\001\015\022\226\214\170\235\277\120\242"
+"\261\104\252\152\317\027\172\317\157\017\324\370\044\125\137\360"
+"\064\026\111\146\076\120\106\311\143\161\070\061\142\270\142\271"
+"\363\123\255\154\265\053\242\022\252\031\117\011\332\136\347\223"
+"\306\216\024\010\376\360\060\200\030\240\206\205\115\310\175\327"
+"\213\003\376\156\325\367\235\026\254\222\054\240\043\345\234\221"
+"\122\037\224\337\027\224\163\303\263\301\301\161\005\040\000\170"
+"\275\023\122\035\250\076\315\000\037\310"
+, (PRUint32)1130 }
+};
+static const NSSItem nss_builtins_items_173 [] = {
+ { (void *)&cko_netscape_trust, (PRUint32)sizeof(CK_OBJECT_CLASS) },
+ { (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
+ { (void *)"UTN USERFirst Object Root CA", (PRUint32)29 },
+ { (void *)"\341\055\373\113\101\327\331\303\053\060\121\113\254\035\201\330"
+"\070\136\055\106"
+, (PRUint32)20 },
+ { (void *)"\247\362\344\026\006\101\021\120\060\153\234\343\264\234\260\311"
+, (PRUint32)16 },
+ { (void *)"\060\201\225\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\035\060\033\006\003\125"
+"\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163"
+"\164\055\117\142\152\145\143\164"
+, (PRUint32)152 },
+ { (void *)"\002\020\104\276\014\213\120\000\044\264\021\323\066\055\340\263"
+"\137\033"
+, (PRUint32)18 },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_valid, (PRUint32)sizeof(CK_TRUST) },
+ { (void *)&ckt_netscape_trusted_delegator, (PRUint32)sizeof(CK_TRUST) }
+};
PR_IMPLEMENT_DATA(builtinsInternalObject)
nss_builtins_data[] = {
@@ -8209,11 +11557,55 @@ nss_builtins_data[] = {
{ 11, nss_builtins_types_126, nss_builtins_items_126, {NULL} },
{ 12, nss_builtins_types_127, nss_builtins_items_127, {NULL} },
{ 11, nss_builtins_types_128, nss_builtins_items_128, {NULL} },
- { 12, nss_builtins_types_129, nss_builtins_items_129, {NULL} }
+ { 12, nss_builtins_types_129, nss_builtins_items_129, {NULL} },
+ { 11, nss_builtins_types_130, nss_builtins_items_130, {NULL} },
+ { 12, nss_builtins_types_131, nss_builtins_items_131, {NULL} },
+ { 11, nss_builtins_types_132, nss_builtins_items_132, {NULL} },
+ { 12, nss_builtins_types_133, nss_builtins_items_133, {NULL} },
+ { 11, nss_builtins_types_134, nss_builtins_items_134, {NULL} },
+ { 12, nss_builtins_types_135, nss_builtins_items_135, {NULL} },
+ { 11, nss_builtins_types_136, nss_builtins_items_136, {NULL} },
+ { 12, nss_builtins_types_137, nss_builtins_items_137, {NULL} },
+ { 11, nss_builtins_types_138, nss_builtins_items_138, {NULL} },
+ { 12, nss_builtins_types_139, nss_builtins_items_139, {NULL} },
+ { 11, nss_builtins_types_140, nss_builtins_items_140, {NULL} },
+ { 12, nss_builtins_types_141, nss_builtins_items_141, {NULL} },
+ { 11, nss_builtins_types_142, nss_builtins_items_142, {NULL} },
+ { 12, nss_builtins_types_143, nss_builtins_items_143, {NULL} },
+ { 11, nss_builtins_types_144, nss_builtins_items_144, {NULL} },
+ { 12, nss_builtins_types_145, nss_builtins_items_145, {NULL} },
+ { 11, nss_builtins_types_146, nss_builtins_items_146, {NULL} },
+ { 12, nss_builtins_types_147, nss_builtins_items_147, {NULL} },
+ { 11, nss_builtins_types_148, nss_builtins_items_148, {NULL} },
+ { 12, nss_builtins_types_149, nss_builtins_items_149, {NULL} },
+ { 11, nss_builtins_types_150, nss_builtins_items_150, {NULL} },
+ { 12, nss_builtins_types_151, nss_builtins_items_151, {NULL} },
+ { 11, nss_builtins_types_152, nss_builtins_items_152, {NULL} },
+ { 12, nss_builtins_types_153, nss_builtins_items_153, {NULL} },
+ { 11, nss_builtins_types_154, nss_builtins_items_154, {NULL} },
+ { 12, nss_builtins_types_155, nss_builtins_items_155, {NULL} },
+ { 11, nss_builtins_types_156, nss_builtins_items_156, {NULL} },
+ { 12, nss_builtins_types_157, nss_builtins_items_157, {NULL} },
+ { 11, nss_builtins_types_158, nss_builtins_items_158, {NULL} },
+ { 12, nss_builtins_types_159, nss_builtins_items_159, {NULL} },
+ { 11, nss_builtins_types_160, nss_builtins_items_160, {NULL} },
+ { 12, nss_builtins_types_161, nss_builtins_items_161, {NULL} },
+ { 11, nss_builtins_types_162, nss_builtins_items_162, {NULL} },
+ { 12, nss_builtins_types_163, nss_builtins_items_163, {NULL} },
+ { 11, nss_builtins_types_164, nss_builtins_items_164, {NULL} },
+ { 12, nss_builtins_types_165, nss_builtins_items_165, {NULL} },
+ { 11, nss_builtins_types_166, nss_builtins_items_166, {NULL} },
+ { 12, nss_builtins_types_167, nss_builtins_items_167, {NULL} },
+ { 11, nss_builtins_types_168, nss_builtins_items_168, {NULL} },
+ { 12, nss_builtins_types_169, nss_builtins_items_169, {NULL} },
+ { 11, nss_builtins_types_170, nss_builtins_items_170, {NULL} },
+ { 12, nss_builtins_types_171, nss_builtins_items_171, {NULL} },
+ { 11, nss_builtins_types_172, nss_builtins_items_172, {NULL} },
+ { 12, nss_builtins_types_173, nss_builtins_items_173, {NULL} }
};
PR_IMPLEMENT_DATA(const PRUint32)
#ifdef DEBUG
- nss_builtins_nObjects = 129+1;
+ nss_builtins_nObjects = 173+1;
#else
- nss_builtins_nObjects = 129;
+ nss_builtins_nObjects = 173;
#endif /* DEBUG */
diff --git a/security/nss/lib/ckfw/builtins/certdata.txt b/security/nss/lib/ckfw/builtins/certdata.txt
index f4f9566b4..7346603ab 100644
--- a/security/nss/lib/ckfw/builtins/certdata.txt
+++ b/security/nss/lib/ckfw/builtins/certdata.txt
@@ -8353,3 +8353,3439 @@ END
CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Certum Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Certum Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164
+\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020
+\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164
+\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020
+\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\003\001\000\040
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\003\014\060\202\001\364\240\003\002\001\002\002\003\001
+\000\040\060\015\006\011\052\206\110\206\367\015\001\001\005\005
+\000\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114
+\061\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145
+\164\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060
+\020\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103
+\101\060\036\027\015\060\062\060\066\061\061\061\060\064\066\063
+\071\132\027\015\062\067\060\066\061\061\061\060\064\066\063\071
+\132\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114
+\061\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145
+\164\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060
+\020\006\003\125\004\003\023\011\103\145\162\164\165\155\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\316\261\301\056\323\117\174\315\045\316\030\076\117\304
+\214\157\200\152\163\310\133\121\370\233\322\334\273\000\134\261
+\240\374\165\003\356\201\360\210\356\043\122\351\346\025\063\215
+\254\055\011\305\166\371\053\071\200\211\344\227\113\220\245\250
+\170\370\163\103\173\244\141\260\330\130\314\341\154\146\176\234
+\363\011\136\125\143\204\325\250\357\363\261\056\060\150\263\304
+\074\330\254\156\215\231\132\220\116\064\334\066\232\217\201\210
+\120\267\155\226\102\011\363\327\225\203\015\101\113\260\152\153
+\370\374\017\176\142\237\147\304\355\046\137\020\046\017\010\117
+\360\244\127\050\316\217\270\355\105\366\156\356\045\135\252\156
+\071\276\344\223\057\331\107\240\162\353\372\246\133\257\312\123
+\077\342\016\306\226\126\021\156\367\351\146\251\046\330\177\225
+\123\355\012\205\210\272\117\051\245\102\214\136\266\374\205\040
+\000\252\150\013\241\032\205\001\234\304\106\143\202\210\266\042
+\261\356\376\252\106\131\176\317\065\054\325\266\332\135\367\110
+\063\024\124\266\353\331\157\316\315\210\326\253\033\332\226\073
+\035\131\002\003\001\000\001\243\023\060\021\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
+\270\215\316\357\347\024\272\317\356\260\104\222\154\264\071\076
+\242\204\156\255\270\041\167\322\324\167\202\207\346\040\101\201
+\356\342\370\021\267\143\321\027\067\276\031\166\044\034\004\032
+\114\353\075\252\147\157\055\324\315\376\145\061\160\305\033\246
+\002\012\272\140\173\155\130\302\232\111\376\143\062\013\153\343
+\072\300\254\253\073\260\350\323\011\121\214\020\203\306\064\340
+\305\053\340\032\266\140\024\047\154\062\167\214\274\262\162\230
+\317\315\314\077\271\310\044\102\024\326\127\374\346\046\103\251
+\035\345\200\220\316\003\124\050\076\367\077\323\370\115\355\152
+\012\072\223\023\233\073\024\043\023\143\234\077\321\207\047\171
+\345\114\121\343\001\255\205\135\032\073\261\325\163\020\244\323
+\362\274\156\144\365\132\126\220\250\307\016\114\164\017\056\161
+\073\367\310\107\364\151\157\025\362\021\136\203\036\234\174\122
+\256\375\002\332\022\250\131\147\030\333\274\160\335\233\261\151
+\355\200\316\211\100\110\152\016\065\312\051\146\025\041\224\054
+\350\140\052\233\205\112\100\363\153\212\044\354\006\026\054\163
+END
+
+# Trust for Certificate "Certum Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Certum Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\142\122\334\100\367\021\103\242\057\336\236\367\064\216\006\102
+\121\261\201\030
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\054\217\237\146\035\030\220\261\107\046\235\216\206\202\214\251
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\076\061\013\060\011\006\003\125\004\006\023\002\120\114\061
+\033\060\031\006\003\125\004\012\023\022\125\156\151\172\145\164
+\157\040\123\160\056\040\172\040\157\056\157\056\061\022\060\020
+\006\003\125\004\003\023\011\103\145\162\164\165\155\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\003\001\000\040
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Comodo AAA Services root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Comodo AAA Services root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
+\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
+\143\141\164\145\040\123\145\162\166\151\143\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
+\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
+\143\141\164\145\040\123\145\162\166\151\143\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\001
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\062\060\202\003\032\240\003\002\001\002\002\001\001
+\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\107\102\061\033
+\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
+\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
+\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
+\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
+\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003\125
+\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151\143
+\141\164\145\040\123\145\162\166\151\143\145\163\060\036\027\015
+\060\064\060\061\060\061\060\060\060\060\060\060\132\027\015\062
+\070\061\062\063\061\062\063\065\071\065\071\132\060\173\061\013
+\060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006
+\003\125\004\010\014\022\107\162\145\141\164\145\162\040\115\141
+\156\143\150\145\163\164\145\162\061\020\060\016\006\003\125\004
+\007\014\007\123\141\154\146\157\162\144\061\032\060\030\006\003
+\125\004\012\014\021\103\157\155\157\144\157\040\103\101\040\114
+\151\155\151\164\145\144\061\041\060\037\006\003\125\004\003\014
+\030\101\101\101\040\103\145\162\164\151\146\151\143\141\164\145
+\040\123\145\162\166\151\143\145\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\276\100\235\364\156\341
+\352\166\207\034\115\105\104\216\276\106\310\203\006\235\301\052
+\376\030\037\216\344\002\372\363\253\135\120\212\026\061\013\232
+\006\320\305\160\042\315\111\055\124\143\314\266\156\150\106\013
+\123\352\313\114\044\300\274\162\116\352\361\025\256\364\124\232
+\022\012\303\172\262\063\140\342\332\211\125\363\042\130\363\336
+\334\317\357\203\206\242\214\224\117\237\150\362\230\220\106\204
+\047\307\166\277\343\314\065\054\213\136\007\144\145\202\300\110
+\260\250\221\371\141\237\166\040\120\250\221\307\146\265\353\170
+\142\003\126\360\212\032\023\352\061\243\036\240\231\375\070\366
+\366\047\062\130\157\007\365\153\270\373\024\053\257\267\252\314
+\326\143\137\163\214\332\005\231\250\070\250\313\027\170\066\121
+\254\351\236\364\170\072\215\317\017\331\102\342\230\014\253\057
+\237\016\001\336\357\237\231\111\361\055\337\254\164\115\033\230
+\265\107\305\345\051\321\371\220\030\307\142\234\276\203\307\046
+\173\076\212\045\307\300\335\235\346\065\150\020\040\235\217\330
+\336\322\303\204\234\015\136\350\057\311\002\003\001\000\001\243
+\201\300\060\201\275\060\035\006\003\125\035\016\004\026\004\024
+\240\021\012\043\076\226\361\007\354\342\257\051\357\202\245\177
+\320\060\244\264\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\173\006\003\125\035\037\004\164\060\162
+\060\070\240\066\240\064\206\062\150\164\164\160\072\057\057\143
+\162\154\056\143\157\155\157\144\157\143\141\056\143\157\155\057
+\101\101\101\103\145\162\164\151\146\151\143\141\164\145\123\145
+\162\166\151\143\145\163\056\143\162\154\060\066\240\064\240\062
+\206\060\150\164\164\160\072\057\057\143\162\154\056\143\157\155
+\157\144\157\056\156\145\164\057\101\101\101\103\145\162\164\151
+\146\151\143\141\164\145\123\145\162\166\151\143\145\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\010\126\374\002\360\233\350\377\244\372
+\326\173\306\104\200\316\117\304\305\366\000\130\314\246\266\274
+\024\111\150\004\166\350\346\356\135\354\002\017\140\326\215\120
+\030\117\046\116\001\343\346\260\245\356\277\274\164\124\101\277
+\375\374\022\270\307\117\132\364\211\140\005\177\140\267\005\112
+\363\366\361\302\277\304\271\164\206\266\055\175\153\314\322\363
+\106\335\057\306\340\152\303\303\064\003\054\175\226\335\132\302
+\016\247\012\231\301\005\213\253\014\057\363\134\072\317\154\067
+\125\011\207\336\123\100\154\130\357\374\266\253\145\156\004\366
+\033\334\074\340\132\025\306\236\331\361\131\110\060\041\145\003
+\154\354\351\041\163\354\233\003\241\340\067\255\240\025\030\217
+\372\272\002\316\247\054\251\020\023\054\324\345\010\046\253\042
+\227\140\370\220\136\164\324\242\232\123\275\362\251\150\340\242
+\156\302\327\154\261\243\017\236\277\353\150\347\126\362\256\362
+\343\053\070\072\011\201\265\153\205\327\276\055\355\077\032\267
+\262\143\342\365\142\054\202\324\152\000\101\120\361\071\203\237
+\225\351\066\226\230\156
+END
+
+# Trust for Certificate "Comodo AAA Services root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Comodo AAA Services root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\321\353\043\244\155\027\326\217\331\045\144\302\361\361\140\027
+\144\330\343\111
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\111\171\004\260\353\207\031\254\107\260\274\021\121\233\164\320
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\173\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\041\060\037\006\003
+\125\004\003\014\030\101\101\101\040\103\145\162\164\151\146\151
+\143\141\164\145\040\123\145\162\166\151\143\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\001
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Comodo Secure Services root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Comodo Secure Services root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003
+\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164
+\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003
+\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164
+\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\001
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\077\060\202\003\047\240\003\002\001\002\002\001\001
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
+\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
+\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
+\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
+\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
+\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003\125
+\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164\151
+\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163\060
+\036\027\015\060\064\060\061\060\061\060\060\060\060\060\060\132
+\027\015\062\070\061\062\063\061\062\063\065\071\065\071\132\060
+\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
+\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
+\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
+\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
+\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
+\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003\125
+\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164\151
+\146\151\143\141\164\145\040\123\145\162\166\151\143\145\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
+\300\161\063\202\212\320\160\353\163\207\202\100\325\035\344\313
+\311\016\102\220\371\336\064\271\241\272\021\364\045\205\363\314
+\162\155\362\173\227\153\263\007\361\167\044\221\137\045\217\366
+\164\075\344\200\302\370\074\015\363\277\100\352\367\310\122\321
+\162\157\357\310\253\101\270\156\056\027\052\225\151\014\315\322
+\036\224\173\055\224\035\252\165\327\263\230\313\254\274\144\123
+\100\274\217\254\254\066\313\134\255\273\335\340\224\027\354\321
+\134\320\277\357\245\225\311\220\305\260\254\373\033\103\337\172
+\010\135\267\270\362\100\033\053\047\236\120\316\136\145\202\210
+\214\136\323\116\014\172\352\010\221\266\066\252\053\102\373\352
+\302\243\071\345\333\046\070\255\213\012\356\031\143\307\034\044
+\337\003\170\332\346\352\301\107\032\013\013\106\011\335\002\374
+\336\313\207\137\327\060\143\150\241\256\334\062\241\272\276\376
+\104\253\150\266\245\027\025\375\275\325\247\247\232\344\104\063
+\351\210\216\374\355\121\353\223\161\116\255\001\347\104\216\253
+\055\313\250\376\001\111\110\360\300\335\307\150\330\222\376\075
+\002\003\001\000\001\243\201\307\060\201\304\060\035\006\003\125
+\035\016\004\026\004\024\074\330\223\210\302\300\202\011\314\001
+\231\006\223\040\351\236\160\011\143\117\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\201\201\006\003
+\125\035\037\004\172\060\170\060\073\240\071\240\067\206\065\150
+\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157
+\143\141\056\143\157\155\057\123\145\143\165\162\145\103\145\162
+\164\151\146\151\143\141\164\145\123\145\162\166\151\143\145\163
+\056\143\162\154\060\071\240\067\240\065\206\063\150\164\164\160
+\072\057\057\143\162\154\056\143\157\155\157\144\157\056\156\145
+\164\057\123\145\143\165\162\145\103\145\162\164\151\146\151\143
+\141\164\145\123\145\162\166\151\143\145\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\207\001\155\043\035\176\133\027\175\301\141\062\317
+\217\347\363\212\224\131\146\340\236\050\250\136\323\267\364\064
+\346\252\071\262\227\026\305\202\157\062\244\351\214\347\257\375
+\357\302\350\271\113\252\243\364\346\332\215\145\041\373\272\200
+\353\046\050\205\032\376\071\214\336\133\004\004\264\124\371\243
+\147\236\101\372\011\122\314\005\110\250\311\077\041\004\036\316
+\110\153\374\205\350\302\173\257\177\267\314\370\137\072\375\065
+\306\015\357\227\334\114\253\021\341\153\313\061\321\154\373\110
+\200\253\334\234\067\270\041\024\113\015\161\075\354\203\063\156
+\321\156\062\026\354\230\307\026\213\131\246\064\253\005\127\055
+\223\367\252\023\313\322\023\342\267\056\073\315\153\120\027\011
+\150\076\265\046\127\356\266\340\266\335\271\051\200\171\175\217
+\243\360\244\050\244\025\304\205\364\047\324\153\277\345\134\344
+\145\002\166\124\264\343\067\146\044\323\031\141\310\122\020\345
+\213\067\232\271\251\371\035\277\352\231\222\141\226\377\001\315
+\241\137\015\274\161\274\016\254\013\035\107\105\035\301\354\174
+\354\375\051
+END
+
+# Trust for Certificate "Comodo Secure Services root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Comodo Secure Services root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\112\145\325\364\035\357\071\270\270\220\112\112\323\144\201\063
+\317\307\241\321
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\323\331\275\256\237\254\147\044\263\310\033\122\341\271\251\275
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\176\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\044\060\042\006\003
+\125\004\003\014\033\123\145\143\165\162\145\040\103\145\162\164
+\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\001
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Comodo Trusted Services root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Comodo Trusted Services root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162
+\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145
+\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162
+\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145
+\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\001
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\103\060\202\003\053\240\003\002\001\002\002\001\001
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033
+\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145\162
+\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016\006
+\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032\060
+\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040\103
+\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003\125
+\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162\164
+\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145\163
+\060\036\027\015\060\064\060\061\060\061\060\060\060\060\060\060
+\132\027\015\062\070\061\062\063\061\062\063\065\071\065\071\132
+\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162
+\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145
+\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\337\161\157\066\130\123\132\362\066\124\127\200\304\164
+\010\040\355\030\177\052\035\346\065\232\036\045\254\234\345\226
+\176\162\122\240\025\102\333\131\335\144\172\032\320\270\173\335
+\071\025\274\125\110\304\355\072\000\352\061\021\272\362\161\164
+\032\147\270\317\063\314\250\061\257\243\343\327\177\277\063\055
+\114\152\074\354\213\303\222\322\123\167\044\164\234\007\156\160
+\374\275\013\133\166\272\137\362\377\327\067\113\112\140\170\367
+\360\372\312\160\264\352\131\252\243\316\110\057\251\303\262\013
+\176\027\162\026\014\246\007\014\033\070\317\311\142\267\077\240
+\223\245\207\101\362\267\160\100\167\330\276\024\174\343\250\300
+\172\216\351\143\152\321\017\232\306\322\364\213\072\024\004\126
+\324\355\270\314\156\365\373\342\054\130\275\177\117\153\053\367
+\140\044\130\044\316\046\357\064\221\072\325\343\201\320\262\360
+\004\002\327\133\267\076\222\254\153\022\212\371\344\005\260\073
+\221\111\134\262\353\123\352\370\237\107\206\356\277\225\300\300
+\006\237\322\133\136\021\033\364\307\004\065\051\322\125\134\344
+\355\353\002\003\001\000\001\243\201\311\060\201\306\060\035\006
+\003\125\035\016\004\026\004\024\305\173\130\275\355\332\045\151
+\322\367\131\026\250\263\062\300\173\047\133\364\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\201\203
+\006\003\125\035\037\004\174\060\172\060\074\240\072\240\070\206
+\066\150\164\164\160\072\057\057\143\162\154\056\143\157\155\157
+\144\157\143\141\056\143\157\155\057\124\162\165\163\164\145\144
+\103\145\162\164\151\146\151\143\141\164\145\123\145\162\166\151
+\143\145\163\056\143\162\154\060\072\240\070\240\066\206\064\150
+\164\164\160\072\057\057\143\162\154\056\143\157\155\157\144\157
+\056\156\145\164\057\124\162\165\163\164\145\144\103\145\162\164
+\151\146\151\143\141\164\145\123\145\162\166\151\143\145\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\310\223\201\073\211\264\257\270\204
+\022\114\215\322\360\333\160\272\127\206\025\064\020\271\057\177
+\036\260\250\211\140\241\212\302\167\014\120\112\233\000\213\330
+\213\364\101\342\320\203\212\112\034\024\006\260\243\150\005\160
+\061\060\247\123\233\016\351\112\240\130\151\147\016\256\235\366
+\245\054\101\277\074\006\153\344\131\314\155\020\361\226\157\037
+\337\364\004\002\244\237\105\076\310\330\372\066\106\104\120\077
+\202\227\221\037\050\333\030\021\214\052\344\145\203\127\022\022
+\214\027\077\224\066\376\135\260\300\004\167\023\270\364\025\325
+\077\070\314\224\072\125\320\254\230\365\272\000\137\340\206\031
+\201\170\057\050\300\176\323\314\102\012\365\256\120\240\321\076
+\306\241\161\354\077\240\040\214\146\072\211\264\216\324\330\261
+\115\045\107\356\057\210\310\265\341\005\105\300\276\024\161\336
+\172\375\216\173\175\115\010\226\245\022\163\360\055\312\067\047
+\164\022\047\114\313\266\227\351\331\256\010\155\132\071\100\335
+\005\107\165\152\132\041\263\243\030\317\116\367\056\127\267\230
+\160\136\310\304\170\260\142
+END
+
+# Trust for Certificate "Comodo Trusted Services root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Comodo Trusted Services root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\341\237\343\016\213\204\140\236\200\233\027\015\162\250\305\272
+\156\024\011\275
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\221\033\077\156\315\236\253\356\007\376\037\161\322\263\141\047
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\177\061\013\060\011\006\003\125\004\006\023\002\107\102\061
+\033\060\031\006\003\125\004\010\014\022\107\162\145\141\164\145
+\162\040\115\141\156\143\150\145\163\164\145\162\061\020\060\016
+\006\003\125\004\007\014\007\123\141\154\146\157\162\144\061\032
+\060\030\006\003\125\004\012\014\021\103\157\155\157\144\157\040
+\103\101\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\003\014\034\124\162\165\163\164\145\144\040\103\145\162
+\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145
+\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\001
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS Chained CAs root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS Chained CAs root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023
+\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040
+\103\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006
+\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141
+\151\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151
+\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171
+\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026
+\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023
+\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040
+\103\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006
+\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141
+\151\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151
+\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171
+\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026
+\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023\052
+\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040\103
+\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157\156
+\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006\003
+\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141\151
+\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151\143
+\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061
+\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017
+\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060
+\036\027\015\060\061\061\062\062\071\060\060\065\063\065\070\132
+\027\015\062\065\061\062\062\067\060\060\065\063\065\070\132\060
+\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023\052
+\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040\103
+\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157\156
+\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006\003
+\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141\151
+\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151\143
+\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061
+\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017
+\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060
+\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001\005
+\000\003\201\215\000\060\201\211\002\201\201\000\334\126\222\111
+\262\224\040\274\230\117\120\353\150\244\247\111\013\277\322\061
+\350\307\117\302\206\013\372\150\375\103\132\212\363\140\222\065
+\231\070\273\115\003\122\041\133\360\067\231\065\341\101\040\201
+\205\201\005\161\201\235\264\225\031\251\137\166\064\056\143\067
+\065\127\216\264\037\102\077\025\134\341\172\301\137\023\030\062
+\061\311\255\276\243\307\203\146\036\271\234\004\023\313\151\301
+\006\336\060\006\273\063\243\265\037\360\217\157\316\377\226\350
+\124\276\146\200\256\153\333\101\204\066\242\075\002\003\001\000
+\001\243\202\004\103\060\202\004\077\060\035\006\003\125\035\016
+\004\026\004\024\241\255\061\261\371\076\341\027\246\310\253\064
+\374\122\207\011\036\142\122\101\060\202\001\116\006\003\125\035
+\043\004\202\001\105\060\202\001\101\200\024\241\255\061\261\371
+\076\341\027\246\310\253\064\374\122\207\011\036\142\122\101\241
+\202\001\044\244\202\001\040\060\202\001\034\061\013\060\011\006
+\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004
+\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020
+\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141
+\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111
+\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151
+\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056
+\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106
+\056\040\040\102\055\066\060\071\062\071\064\065\062\061\063\060
+\061\006\003\125\004\013\023\052\111\120\123\040\103\101\040\103
+\150\141\151\156\145\144\040\103\101\163\040\103\145\162\164\151
+\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151
+\164\171\061\063\060\061\006\003\125\004\003\023\052\111\120\123
+\040\103\101\040\103\150\141\151\156\145\144\040\103\101\163\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110
+\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154
+\056\151\160\163\056\145\163\202\001\000\060\014\006\003\125\035
+\023\004\005\060\003\001\001\377\060\014\006\003\125\035\017\004
+\005\003\003\007\377\200\060\153\006\003\125\035\045\004\144\060
+\142\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001
+\005\005\007\003\002\006\010\053\006\001\005\005\007\003\003\006
+\010\053\006\001\005\005\007\003\004\006\010\053\006\001\005\005
+\007\003\010\006\012\053\006\001\004\001\202\067\002\001\025\006
+\012\053\006\001\004\001\202\067\002\001\026\006\012\053\006\001
+\004\001\202\067\012\003\001\006\012\053\006\001\004\001\202\067
+\012\003\004\060\021\006\011\140\206\110\001\206\370\102\001\001
+\004\004\003\002\000\007\060\032\006\003\125\035\021\004\023\060
+\021\201\017\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\060\032\006\003\125\035\022\004\023\060\021\201\017\151
+\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060\102
+\006\011\140\206\110\001\206\370\102\001\015\004\065\026\063\103
+\150\141\151\156\145\144\040\103\101\040\103\145\162\164\151\146
+\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171\040
+\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145
+\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002\004
+\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151\160
+\163\056\145\163\057\151\160\163\062\060\060\062\057\060\067\006
+\011\140\206\110\001\206\370\102\001\004\004\052\026\050\150\164
+\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163\057
+\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062\103
+\101\103\056\143\162\154\060\074\006\011\140\206\110\001\206\370
+\102\001\003\004\057\026\055\150\164\164\160\072\057\057\167\167
+\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062
+\057\162\145\166\157\143\141\164\151\157\156\103\101\103\056\150
+\164\155\154\077\060\071\006\011\140\206\110\001\206\370\102\001
+\007\004\054\026\052\150\164\164\160\072\057\057\167\167\167\056
+\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162
+\145\156\145\167\141\154\103\101\103\056\150\164\155\154\077\060
+\067\006\011\140\206\110\001\206\370\102\001\010\004\052\026\050
+\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145
+\163\057\151\160\163\062\060\060\062\057\160\157\154\151\143\171
+\103\101\103\056\150\164\155\154\060\155\006\003\125\035\037\004
+\146\060\144\060\056\240\054\240\052\206\050\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\151\160\163\062\060\060\062\103\101\103\056
+\143\162\154\060\062\240\060\240\056\206\054\150\164\164\160\072
+\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163
+\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062
+\103\101\103\056\143\162\154\060\057\006\010\053\006\001\005\005
+\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005
+\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160
+\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206
+\367\015\001\001\005\005\000\003\201\201\000\104\162\060\235\126
+\130\242\101\033\050\267\225\341\246\032\225\137\247\170\100\053
+\357\333\226\112\374\114\161\143\331\163\225\275\002\342\242\006
+\307\276\227\052\223\200\064\206\003\372\334\330\075\036\007\315
+\036\163\103\044\140\365\035\141\334\334\226\240\274\373\035\343
+\347\022\000\047\063\002\300\300\053\123\075\330\153\003\201\243
+\333\326\223\225\040\357\323\226\176\046\220\211\234\046\233\315
+\157\146\253\355\003\042\104\070\314\131\275\237\333\366\007\242
+\001\177\046\304\143\365\045\102\136\142\275
+END
+
+# Trust for Certificate "IPS Chained CAs root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS Chained CAs root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\310\302\137\026\236\370\120\164\325\276\350\315\242\324\074\256
+\347\137\322\127
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\215\162\121\333\240\072\317\040\167\337\362\145\006\136\337\357
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\034\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\063\060\061\006\003\125\004\013\023
+\052\111\120\123\040\103\101\040\103\150\141\151\156\145\144\040
+\103\101\163\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\063\060\061\006
+\003\125\004\003\023\052\111\120\123\040\103\101\040\103\150\141
+\151\156\145\144\040\103\101\163\040\103\145\162\164\151\146\151
+\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171
+\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026
+\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS CLASE1 root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASE1 root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\007\352\060\202\007\123\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023\045
+\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103\145
+\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
+\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045
+\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103\145
+\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
+\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206\367
+\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056\151
+\160\163\056\145\163\060\036\027\015\060\061\061\062\062\071\060
+\060\065\071\063\070\132\027\015\062\065\061\062\062\067\060\060
+\065\071\063\070\132\060\202\001\022\061\013\060\011\006\003\125
+\004\006\023\002\105\123\061\022\060\020\006\003\125\004\010\023
+\011\102\141\162\143\145\154\157\156\141\061\022\060\020\006\003
+\125\004\007\023\011\102\141\162\143\145\154\157\156\141\061\056
+\060\054\006\003\125\004\012\023\045\111\120\123\040\111\156\164
+\145\162\156\145\164\040\160\165\142\154\151\163\150\151\156\147
+\040\123\145\162\166\151\143\145\163\040\163\056\154\056\061\053
+\060\051\006\003\125\004\012\024\042\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163\040\103\056\111\056\106\056\040
+\040\102\055\066\060\071\062\071\064\065\062\061\056\060\054\006
+\003\125\004\013\023\045\111\120\123\040\103\101\040\103\114\101
+\123\105\061\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006
+\003\125\004\003\023\045\111\120\123\040\103\101\040\103\114\101
+\123\105\061\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\036\060\034\006
+\011\052\206\110\206\367\015\001\011\001\026\017\151\160\163\100
+\155\141\151\154\056\151\160\163\056\145\163\060\201\237\060\015
+\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215
+\000\060\201\211\002\201\201\000\340\121\047\247\013\335\257\321
+\271\103\133\202\067\105\126\162\357\232\266\302\022\357\054\022
+\314\166\371\006\131\257\135\041\324\322\132\270\240\324\363\152
+\375\312\151\215\146\110\367\164\346\356\066\275\350\226\221\165
+\246\161\050\312\347\042\022\062\151\260\076\036\153\364\120\122
+\142\142\375\143\073\175\176\354\356\070\352\142\364\154\250\161
+\215\341\351\213\311\077\306\265\315\224\102\157\335\202\105\074
+\350\337\011\350\357\012\125\251\126\107\141\114\111\144\163\020
+\050\077\312\277\011\377\306\057\002\003\001\000\001\243\202\004
+\112\060\202\004\106\060\035\006\003\125\035\016\004\026\004\024
+\353\263\031\171\363\301\245\034\254\334\272\037\146\242\262\233
+\151\320\170\010\060\202\001\104\006\003\125\035\043\004\202\001
+\073\060\202\001\067\200\024\353\263\031\171\363\301\245\034\254
+\334\272\037\146\242\262\233\151\320\170\010\241\202\001\032\244
+\202\001\026\060\202\001\022\061\013\060\011\006\003\125\004\006
+\023\002\105\123\061\022\060\020\006\003\125\004\010\023\011\102
+\141\162\143\145\154\157\156\141\061\022\060\020\006\003\125\004
+\007\023\011\102\141\162\143\145\154\157\156\141\061\056\060\054
+\006\003\125\004\012\023\045\111\120\123\040\111\156\164\145\162
+\156\145\164\040\160\165\142\154\151\163\150\151\156\147\040\123
+\145\162\166\151\143\145\163\040\163\056\154\056\061\053\060\051
+\006\003\125\004\012\024\042\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163\040\103\056\111\056\106\056\040\040\102
+\055\066\060\071\062\071\064\065\062\061\056\060\054\006\003\125
+\004\013\023\045\111\120\123\040\103\101\040\103\114\101\123\105
+\061\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040
+\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003\125
+\004\003\023\045\111\120\123\040\103\101\040\103\114\101\123\105
+\061\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040
+\101\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052
+\206\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141
+\151\154\056\151\160\163\056\145\163\202\001\000\060\014\006\003
+\125\035\023\004\005\060\003\001\001\377\060\014\006\003\125\035
+\017\004\005\003\003\007\377\200\060\153\006\003\125\035\045\004
+\144\060\142\006\010\053\006\001\005\005\007\003\001\006\010\053
+\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007\003
+\003\006\010\053\006\001\005\005\007\003\004\006\010\053\006\001
+\005\005\007\003\010\006\012\053\006\001\004\001\202\067\002\001
+\025\006\012\053\006\001\004\001\202\067\002\001\026\006\012\053
+\006\001\004\001\202\067\012\003\001\006\012\053\006\001\004\001
+\202\067\012\003\004\060\021\006\011\140\206\110\001\206\370\102
+\001\001\004\004\003\002\000\007\060\032\006\003\125\035\021\004
+\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160
+\163\056\145\163\060\032\006\003\125\035\022\004\023\060\021\201
+\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163
+\060\101\006\011\140\206\110\001\206\370\102\001\015\004\064\026
+\062\103\114\101\123\105\061\040\103\101\040\103\145\162\164\151
+\146\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171
+\040\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056
+\145\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002
+\004\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151
+\160\163\056\145\163\057\151\160\163\062\060\060\062\057\060\072
+\006\011\140\206\110\001\206\370\102\001\004\004\055\026\053\150
+\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163
+\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062
+\103\114\101\123\105\061\056\143\162\154\060\077\006\011\140\206
+\110\001\206\370\102\001\003\004\062\026\060\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\103
+\114\101\123\105\061\056\150\164\155\154\077\060\074\006\011\140
+\206\110\001\206\370\102\001\007\004\057\026\055\150\164\164\160
+\072\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160
+\163\062\060\060\062\057\162\145\156\145\167\141\154\103\114\101
+\123\105\061\056\150\164\155\154\077\060\072\006\011\140\206\110
+\001\206\370\102\001\010\004\055\026\053\150\164\164\160\072\057
+\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062
+\060\060\062\057\160\157\154\151\143\171\103\114\101\123\105\061
+\056\150\164\155\154\060\163\006\003\125\035\037\004\154\060\152
+\060\061\240\057\240\055\206\053\150\164\164\160\072\057\057\167
+\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060
+\062\057\151\160\163\062\060\060\062\103\114\101\123\105\061\056
+\143\162\154\060\065\240\063\240\061\206\057\150\164\164\160\072
+\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163
+\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062
+\103\114\101\123\105\061\056\143\162\154\060\057\006\010\053\006
+\001\005\005\007\001\001\004\043\060\041\060\037\006\010\053\006
+\001\005\005\007\060\001\206\023\150\164\164\160\072\057\057\157
+\143\163\160\056\151\160\163\056\145\163\057\060\015\006\011\052
+\206\110\206\367\015\001\001\005\005\000\003\201\201\000\053\320
+\353\375\332\310\312\131\152\332\323\314\062\056\311\124\033\212
+\142\176\025\055\351\331\061\323\056\364\047\043\377\133\253\305
+\112\266\162\100\256\123\164\364\274\005\264\306\331\310\311\167
+\373\267\371\064\177\170\000\370\326\244\344\122\077\054\112\143
+\127\201\165\132\216\350\214\373\002\300\224\306\051\272\263\334
+\034\350\262\257\322\056\142\133\032\251\216\016\314\305\127\105
+\121\024\351\116\034\210\245\221\364\243\367\216\121\310\251\276
+\206\063\076\346\057\110\156\257\124\220\116\255\261\045
+END
+
+# Trust for Certificate "IPS CLASE1 root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASE1 root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\103\236\122\137\132\152\107\303\054\353\304\134\143\355\071\061
+\174\345\364\337
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\204\220\035\225\060\111\126\374\101\201\360\105\327\166\304\153
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS CLASE3 root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASE3 root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\007\352\060\202\007\123\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023\045
+\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103\145
+\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
+\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045
+\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103\145
+\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
+\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206\367
+\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056\151
+\160\163\056\145\163\060\036\027\015\060\061\061\062\062\071\060
+\061\060\061\064\064\132\027\015\062\065\061\062\062\067\060\061
+\060\061\064\064\132\060\202\001\022\061\013\060\011\006\003\125
+\004\006\023\002\105\123\061\022\060\020\006\003\125\004\010\023
+\011\102\141\162\143\145\154\157\156\141\061\022\060\020\006\003
+\125\004\007\023\011\102\141\162\143\145\154\157\156\141\061\056
+\060\054\006\003\125\004\012\023\045\111\120\123\040\111\156\164
+\145\162\156\145\164\040\160\165\142\154\151\163\150\151\156\147
+\040\123\145\162\166\151\143\145\163\040\163\056\154\056\061\053
+\060\051\006\003\125\004\012\024\042\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163\040\103\056\111\056\106\056\040
+\040\102\055\066\060\071\062\071\064\065\062\061\056\060\054\006
+\003\125\004\013\023\045\111\120\123\040\103\101\040\103\114\101
+\123\105\063\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006
+\003\125\004\003\023\045\111\120\123\040\103\101\040\103\114\101
+\123\105\063\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\036\060\034\006
+\011\052\206\110\206\367\015\001\011\001\026\017\151\160\163\100
+\155\141\151\154\056\151\160\163\056\145\163\060\201\237\060\015
+\006\011\052\206\110\206\367\015\001\001\001\005\000\003\201\215
+\000\060\201\211\002\201\201\000\253\027\376\016\260\306\150\033
+\123\360\122\276\237\372\332\372\213\023\004\273\001\217\062\331
+\037\217\115\316\066\230\332\344\000\104\214\050\330\023\104\052
+\244\153\116\027\044\102\234\323\210\244\101\202\326\043\373\213
+\311\206\345\271\251\202\005\334\361\336\037\340\014\231\125\230
+\362\070\354\154\235\040\003\300\357\252\243\306\144\004\121\055
+\170\015\243\322\250\072\326\044\114\351\226\172\030\254\023\043
+\042\033\174\350\061\021\263\137\011\252\060\160\161\106\045\153
+\111\161\200\053\225\001\262\037\002\003\001\000\001\243\202\004
+\112\060\202\004\106\060\035\006\003\125\035\016\004\026\004\024
+\270\223\377\056\313\334\054\216\242\347\172\376\066\121\041\243
+\230\133\014\064\060\202\001\104\006\003\125\035\043\004\202\001
+\073\060\202\001\067\200\024\270\223\377\056\313\334\054\216\242
+\347\172\376\066\121\041\243\230\133\014\064\241\202\001\032\244
+\202\001\026\060\202\001\022\061\013\060\011\006\003\125\004\006
+\023\002\105\123\061\022\060\020\006\003\125\004\010\023\011\102
+\141\162\143\145\154\157\156\141\061\022\060\020\006\003\125\004
+\007\023\011\102\141\162\143\145\154\157\156\141\061\056\060\054
+\006\003\125\004\012\023\045\111\120\123\040\111\156\164\145\162
+\156\145\164\040\160\165\142\154\151\163\150\151\156\147\040\123
+\145\162\166\151\143\145\163\040\163\056\154\056\061\053\060\051
+\006\003\125\004\012\024\042\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163\040\103\056\111\056\106\056\040\040\102
+\055\066\060\071\062\071\064\065\062\061\056\060\054\006\003\125
+\004\013\023\045\111\120\123\040\103\101\040\103\114\101\123\105
+\063\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040
+\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003\125
+\004\003\023\045\111\120\123\040\103\101\040\103\114\101\123\105
+\063\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040
+\101\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052
+\206\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141
+\151\154\056\151\160\163\056\145\163\202\001\000\060\014\006\003
+\125\035\023\004\005\060\003\001\001\377\060\014\006\003\125\035
+\017\004\005\003\003\007\377\200\060\153\006\003\125\035\045\004
+\144\060\142\006\010\053\006\001\005\005\007\003\001\006\010\053
+\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007\003
+\003\006\010\053\006\001\005\005\007\003\004\006\010\053\006\001
+\005\005\007\003\010\006\012\053\006\001\004\001\202\067\002\001
+\025\006\012\053\006\001\004\001\202\067\002\001\026\006\012\053
+\006\001\004\001\202\067\012\003\001\006\012\053\006\001\004\001
+\202\067\012\003\004\060\021\006\011\140\206\110\001\206\370\102
+\001\001\004\004\003\002\000\007\060\032\006\003\125\035\021\004
+\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160
+\163\056\145\163\060\032\006\003\125\035\022\004\023\060\021\201
+\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163
+\060\101\006\011\140\206\110\001\206\370\102\001\015\004\064\026
+\062\103\114\101\123\105\063\040\103\101\040\103\145\162\164\151
+\146\151\143\141\164\145\040\151\163\163\165\145\144\040\142\171
+\040\150\164\164\160\072\057\057\167\167\167\056\151\160\163\056
+\145\163\057\060\051\006\011\140\206\110\001\206\370\102\001\002
+\004\034\026\032\150\164\164\160\072\057\057\167\167\167\056\151
+\160\163\056\145\163\057\151\160\163\062\060\060\062\057\060\072
+\006\011\140\206\110\001\206\370\102\001\004\004\055\026\053\150
+\164\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163
+\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062
+\103\114\101\123\105\063\056\143\162\154\060\077\006\011\140\206
+\110\001\206\370\102\001\003\004\062\026\060\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\103
+\114\101\123\105\063\056\150\164\155\154\077\060\074\006\011\140
+\206\110\001\206\370\102\001\007\004\057\026\055\150\164\164\160
+\072\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160
+\163\062\060\060\062\057\162\145\156\145\167\141\154\103\114\101
+\123\105\063\056\150\164\155\154\077\060\072\006\011\140\206\110
+\001\206\370\102\001\010\004\055\026\053\150\164\164\160\072\057
+\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062
+\060\060\062\057\160\157\154\151\143\171\103\114\101\123\105\063
+\056\150\164\155\154\060\163\006\003\125\035\037\004\154\060\152
+\060\061\240\057\240\055\206\053\150\164\164\160\072\057\057\167
+\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060\060
+\062\057\151\160\163\062\060\060\062\103\114\101\123\105\063\056
+\143\162\154\060\065\240\063\240\061\206\057\150\164\164\160\072
+\057\057\167\167\167\142\141\143\153\056\151\160\163\056\145\163
+\057\151\160\163\062\060\060\062\057\151\160\163\062\060\060\062
+\103\114\101\123\105\063\056\143\162\154\060\057\006\010\053\006
+\001\005\005\007\001\001\004\043\060\041\060\037\006\010\053\006
+\001\005\005\007\060\001\206\023\150\164\164\160\072\057\057\157
+\143\163\160\056\151\160\163\056\145\163\057\060\015\006\011\052
+\206\110\206\367\015\001\001\005\005\000\003\201\201\000\027\145
+\134\231\225\103\003\047\257\046\345\353\320\263\027\043\367\103
+\252\307\360\175\354\017\306\251\256\256\226\017\166\051\034\342
+\006\055\176\046\305\074\372\241\301\201\316\123\260\102\321\227
+\127\032\027\176\244\121\141\306\356\351\136\357\005\272\353\275
+\017\247\222\157\330\243\006\150\051\216\171\365\377\277\371\247
+\257\344\261\316\302\321\200\102\047\005\004\064\370\303\177\026
+\170\043\014\007\044\362\106\107\255\073\124\320\257\325\061\262
+\257\175\310\352\351\324\126\331\016\023\262\305\105\120
+END
+
+# Trust for Certificate "IPS CLASE3 root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASE3 root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\101\170\253\114\277\316\173\101\002\254\332\304\223\076\157\365
+\015\317\161\134
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\102\166\227\150\317\246\264\070\044\252\241\033\362\147\336\312
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\022\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\056\060\054\006\003\125\004\013\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\056\060\054\006\003\125\004\003\023
+\045\111\120\123\040\103\101\040\103\114\101\123\105\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS CLASEA1 root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASEA1 root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003
+\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061
+\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101
+\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206
+\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003
+\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061
+\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101
+\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206
+\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023\046
+\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110
+\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154
+\056\151\160\163\056\145\163\060\036\027\015\060\061\061\062\062
+\071\060\061\060\065\063\062\132\027\015\062\065\061\062\062\067
+\060\061\060\065\063\062\132\060\202\001\024\061\013\060\011\006
+\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004
+\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020
+\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141
+\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111
+\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151
+\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056
+\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106
+\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060
+\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103
+\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143\141
+\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057
+\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040
+\103\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143
+\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061
+\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017
+\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060
+\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001\005
+\000\003\201\215\000\060\201\211\002\201\201\000\273\060\327\334
+\320\124\275\065\116\237\305\114\202\352\321\120\074\107\230\374
+\233\151\235\167\315\156\340\077\356\353\062\137\137\237\322\320
+\171\345\225\163\104\041\062\340\012\333\235\327\316\215\253\122
+\213\053\170\340\233\133\175\364\375\155\011\345\256\341\154\035
+\007\043\240\027\321\371\175\250\106\106\221\042\250\262\151\306
+\255\367\365\365\224\241\060\224\275\000\314\104\177\356\304\236
+\311\301\346\217\012\066\301\375\044\075\001\240\365\173\342\174
+\170\146\103\213\117\131\362\233\331\372\111\263\002\003\001\000
+\001\243\202\004\123\060\202\004\117\060\035\006\003\125\035\016
+\004\026\004\024\147\046\226\347\241\277\330\265\003\235\376\073
+\334\376\362\212\346\025\335\060\060\202\001\106\006\003\125\035
+\043\004\202\001\075\060\202\001\071\200\024\147\046\226\347\241
+\277\330\265\003\235\376\073\334\376\362\212\346\025\335\060\241
+\202\001\034\244\202\001\030\060\202\001\024\061\013\060\011\006
+\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004
+\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020
+\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141
+\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111
+\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151
+\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056
+\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106
+\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060
+\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103
+\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143\141
+\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057
+\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040
+\103\114\101\123\105\101\061\040\103\145\162\164\151\146\151\143
+\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061
+\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017
+\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\202
+\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377
+\060\014\006\003\125\035\017\004\005\003\003\007\377\200\060\153
+\006\003\125\035\045\004\144\060\142\006\010\053\006\001\005\005
+\007\003\001\006\010\053\006\001\005\005\007\003\002\006\010\053
+\006\001\005\005\007\003\003\006\010\053\006\001\005\005\007\003
+\004\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001
+\004\001\202\067\002\001\025\006\012\053\006\001\004\001\202\067
+\002\001\026\006\012\053\006\001\004\001\202\067\012\003\001\006
+\012\053\006\001\004\001\202\067\012\003\004\060\021\006\011\140
+\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\032
+\006\003\125\035\021\004\023\060\021\201\017\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\060\032\006\003\125\035
+\022\004\023\060\021\201\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163\060\102\006\011\140\206\110\001\206\370
+\102\001\015\004\065\026\063\103\114\101\123\105\101\061\040\103
+\101\040\103\145\162\164\151\146\151\143\141\164\145\040\151\163
+\163\165\145\144\040\142\171\040\150\164\164\160\072\057\057\167
+\167\167\056\151\160\163\056\145\163\057\060\051\006\011\140\206
+\110\001\206\370\102\001\002\004\034\026\032\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\060\073\006\011\140\206\110\001\206\370\102
+\001\004\004\056\026\054\150\164\164\160\072\057\057\167\167\167
+\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057
+\151\160\163\062\060\060\062\103\114\101\123\105\101\061\056\143
+\162\154\060\100\006\011\140\206\110\001\206\370\102\001\003\004
+\063\026\061\150\164\164\160\072\057\057\167\167\167\056\151\160
+\163\056\145\163\057\151\160\163\062\060\060\062\057\162\145\166
+\157\143\141\164\151\157\156\103\114\101\123\105\101\061\056\150
+\164\155\154\077\060\075\006\011\140\206\110\001\206\370\102\001
+\007\004\060\026\056\150\164\164\160\072\057\057\167\167\167\056
+\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162
+\145\156\145\167\141\154\103\114\101\123\105\101\061\056\150\164
+\155\154\077\060\073\006\011\140\206\110\001\206\370\102\001\010
+\004\056\026\054\150\164\164\160\072\057\057\167\167\167\056\151
+\160\163\056\145\163\057\151\160\163\062\060\060\062\057\160\157
+\154\151\143\171\103\114\101\123\105\101\061\056\150\164\155\154
+\060\165\006\003\125\035\037\004\156\060\154\060\062\240\060\240
+\056\206\054\150\164\164\160\072\057\057\167\167\167\056\151\160
+\163\056\145\163\057\151\160\163\062\060\060\062\057\151\160\163
+\062\060\060\062\103\114\101\123\105\101\061\056\143\162\154\060
+\066\240\064\240\062\206\060\150\164\164\160\072\057\057\167\167
+\167\142\141\143\153\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\151\160\163\062\060\060\062\103\114\101\123
+\105\101\061\056\143\162\154\060\057\006\010\053\006\001\005\005
+\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005
+\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160
+\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206
+\367\015\001\001\005\005\000\003\201\201\000\176\272\212\254\200
+\000\204\025\012\325\230\121\014\144\305\234\002\130\203\146\312
+\255\036\007\315\176\152\332\200\007\337\003\064\112\034\223\304
+\113\130\040\065\066\161\355\242\012\065\022\245\246\145\247\205
+\151\012\016\343\141\356\352\276\050\223\063\325\354\350\276\304
+\333\137\177\250\371\143\061\310\153\226\342\051\302\133\240\347
+\227\066\235\167\136\061\153\376\323\247\333\052\333\333\226\213
+\037\146\336\266\003\300\053\263\170\326\125\007\345\217\071\120
+\336\007\043\162\346\275\040\024\113\264\206
+END
+
+# Trust for Certificate "IPS CLASEA1 root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASEA1 root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\063\243\065\302\074\350\003\113\004\341\075\345\304\216\171\032
+\353\214\062\004
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\014\370\236\027\374\324\003\275\346\215\233\074\005\207\376\204
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003
+\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\061
+\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101
+\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206
+\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS CLASEA3 root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASEA3 root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003
+\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063
+\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101
+\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206
+\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003
+\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063
+\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101
+\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206
+\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\007\367\060\202\007\140\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023\046
+\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040\103
+\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164
+\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206\110
+\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154
+\056\151\160\163\056\145\163\060\036\027\015\060\061\061\062\062
+\071\060\061\060\067\065\060\132\027\015\062\065\061\062\062\067
+\060\061\060\067\065\060\132\060\202\001\024\061\013\060\011\006
+\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004
+\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020
+\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141
+\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111
+\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151
+\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056
+\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106
+\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060
+\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103
+\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143\141
+\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057
+\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040
+\103\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143
+\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061
+\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017
+\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\060
+\201\237\060\015\006\011\052\206\110\206\367\015\001\001\001\005
+\000\003\201\215\000\060\201\211\002\201\201\000\356\200\000\366
+\032\144\056\255\152\310\203\261\213\247\356\217\331\266\333\315
+\033\273\206\006\042\166\063\014\022\155\110\126\141\322\334\202
+\045\142\057\237\322\151\060\145\003\102\043\130\274\107\334\153
+\326\165\135\027\074\341\377\362\130\147\171\240\301\201\261\324
+\126\242\362\215\021\231\375\366\175\361\307\304\136\002\052\232
+\342\112\265\023\212\000\375\214\167\206\346\327\224\365\040\165
+\056\016\114\277\164\304\077\201\076\203\264\243\070\066\051\347
+\350\052\365\214\210\101\252\200\246\343\154\357\002\003\001\000
+\001\243\202\004\123\060\202\004\117\060\035\006\003\125\035\016
+\004\026\004\024\036\237\127\120\107\266\141\223\071\323\054\374
+\332\135\075\005\165\267\231\002\060\202\001\106\006\003\125\035
+\043\004\202\001\075\060\202\001\071\200\024\036\237\127\120\107
+\266\141\223\071\323\054\374\332\135\075\005\165\267\231\002\241
+\202\001\034\244\202\001\030\060\202\001\024\061\013\060\011\006
+\003\125\004\006\023\002\105\123\061\022\060\020\006\003\125\004
+\010\023\011\102\141\162\143\145\154\157\156\141\061\022\060\020
+\006\003\125\004\007\023\011\102\141\162\143\145\154\157\156\141
+\061\056\060\054\006\003\125\004\012\023\045\111\120\123\040\111
+\156\164\145\162\156\145\164\040\160\165\142\154\151\163\150\151
+\156\147\040\123\145\162\166\151\143\145\163\040\163\056\154\056
+\061\053\060\051\006\003\125\004\012\024\042\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\040\103\056\111\056\106
+\056\040\040\102\055\066\060\071\062\071\064\065\062\061\057\060
+\055\006\003\125\004\013\023\046\111\120\123\040\103\101\040\103
+\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143\141
+\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061\057
+\060\055\006\003\125\004\003\023\046\111\120\123\040\103\101\040
+\103\114\101\123\105\101\063\040\103\145\162\164\151\146\151\143
+\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\061
+\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026\017
+\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163\202
+\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377
+\060\014\006\003\125\035\017\004\005\003\003\007\377\200\060\153
+\006\003\125\035\045\004\144\060\142\006\010\053\006\001\005\005
+\007\003\001\006\010\053\006\001\005\005\007\003\002\006\010\053
+\006\001\005\005\007\003\003\006\010\053\006\001\005\005\007\003
+\004\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001
+\004\001\202\067\002\001\025\006\012\053\006\001\004\001\202\067
+\002\001\026\006\012\053\006\001\004\001\202\067\012\003\001\006
+\012\053\006\001\004\001\202\067\012\003\004\060\021\006\011\140
+\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060\032
+\006\003\125\035\021\004\023\060\021\201\017\151\160\163\100\155
+\141\151\154\056\151\160\163\056\145\163\060\032\006\003\125\035
+\022\004\023\060\021\201\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163\060\102\006\011\140\206\110\001\206\370
+\102\001\015\004\065\026\063\103\114\101\123\105\101\063\040\103
+\101\040\103\145\162\164\151\146\151\143\141\164\145\040\151\163
+\163\165\145\144\040\142\171\040\150\164\164\160\072\057\057\167
+\167\167\056\151\160\163\056\145\163\057\060\051\006\011\140\206
+\110\001\206\370\102\001\002\004\034\026\032\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\060\073\006\011\140\206\110\001\206\370\102
+\001\004\004\056\026\054\150\164\164\160\072\057\057\167\167\167
+\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057
+\151\160\163\062\060\060\062\103\114\101\123\105\101\063\056\143
+\162\154\060\100\006\011\140\206\110\001\206\370\102\001\003\004
+\063\026\061\150\164\164\160\072\057\057\167\167\167\056\151\160
+\163\056\145\163\057\151\160\163\062\060\060\062\057\162\145\166
+\157\143\141\164\151\157\156\103\114\101\123\105\101\063\056\150
+\164\155\154\077\060\075\006\011\140\206\110\001\206\370\102\001
+\007\004\060\026\056\150\164\164\160\072\057\057\167\167\167\056
+\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057\162
+\145\156\145\167\141\154\103\114\101\123\105\101\063\056\150\164
+\155\154\077\060\073\006\011\140\206\110\001\206\370\102\001\010
+\004\056\026\054\150\164\164\160\072\057\057\167\167\167\056\151
+\160\163\056\145\163\057\151\160\163\062\060\060\062\057\160\157
+\154\151\143\171\103\114\101\123\105\101\063\056\150\164\155\154
+\060\165\006\003\125\035\037\004\156\060\154\060\062\240\060\240
+\056\206\054\150\164\164\160\072\057\057\167\167\167\056\151\160
+\163\056\145\163\057\151\160\163\062\060\060\062\057\151\160\163
+\062\060\060\062\103\114\101\123\105\101\063\056\143\162\154\060
+\066\240\064\240\062\206\060\150\164\164\160\072\057\057\167\167
+\167\142\141\143\153\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\151\160\163\062\060\060\062\103\114\101\123
+\105\101\063\056\143\162\154\060\057\006\010\053\006\001\005\005
+\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005\005
+\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163\160
+\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110\206
+\367\015\001\001\005\005\000\003\201\201\000\112\075\040\107\032
+\332\211\364\172\053\061\171\354\001\300\314\001\365\326\301\374
+\310\303\363\120\002\121\220\130\052\237\347\065\011\133\060\012
+\201\000\045\107\257\324\017\016\236\140\046\250\225\247\203\010
+\337\055\254\351\016\367\234\310\237\313\223\105\361\272\152\306
+\147\121\112\151\117\153\376\175\013\057\122\051\302\120\255\044
+\104\355\043\263\110\313\104\100\301\003\225\014\012\170\006\022
+\001\365\221\061\055\111\215\273\077\105\116\054\340\350\315\265
+\311\024\025\014\343\007\203\233\046\165\357
+END
+
+# Trust for Certificate "IPS CLASEA3 root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS CLASEA3 root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\026\324\044\376\226\020\341\165\031\257\043\053\266\207\164\342
+\101\104\276\156
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\006\371\353\354\314\126\235\210\272\220\365\272\260\032\340\002
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\024\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\057\060\055\006\003\125\004\013\023
+\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\057\060\055\006\003\125\004\003
+\023\046\111\120\123\040\103\101\040\103\114\101\123\105\101\063
+\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101
+\165\164\150\157\162\151\164\171\061\036\060\034\006\011\052\206
+\110\206\367\015\001\011\001\026\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS Servidores root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS Servidores root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105
+\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102
+\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004
+\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144
+\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145
+\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060
+\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126
+\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105
+\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102
+\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004
+\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144
+\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145
+\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060
+\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126
+\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\002\267\060\202\002\040\002\001\000\060\015\006\011\052
+\206\110\206\367\015\001\001\004\005\000\060\201\243\061\013\060
+\011\006\003\125\004\006\023\002\105\123\061\022\060\020\006\003
+\125\004\010\023\011\102\101\122\103\105\114\117\116\101\061\022
+\060\020\006\003\125\004\007\023\011\102\101\122\103\105\114\117
+\116\101\061\031\060\027\006\003\125\004\012\023\020\111\120\123
+\040\123\145\147\165\162\151\144\141\144\040\103\101\061\030\060
+\026\006\003\125\004\013\023\017\103\145\162\164\151\146\151\143
+\141\143\151\157\156\145\163\061\027\060\025\006\003\125\004\003
+\023\016\111\120\123\040\123\105\122\126\111\104\117\122\105\123
+\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001\026
+\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145\163
+\060\036\027\015\071\070\060\061\060\061\062\063\062\061\060\067
+\132\027\015\060\071\061\062\062\071\062\063\062\061\060\067\132
+\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105
+\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102
+\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004
+\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144
+\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145
+\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060
+\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126
+\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163\060\201\237\060\015\006\011\052\206\110
+\206\367\015\001\001\001\005\000\003\201\215\000\060\201\211\002
+\201\201\000\254\117\122\164\237\071\352\216\334\045\304\274\230
+\135\230\144\044\011\074\041\263\314\031\265\216\224\216\207\321
+\370\067\076\241\310\055\130\244\200\065\133\241\165\154\035\105
+\014\037\141\143\152\136\157\233\012\114\301\310\270\141\043\065
+\201\377\376\254\170\160\055\150\341\072\007\230\225\002\124\335
+\315\043\267\200\123\327\310\067\105\162\006\044\022\272\023\141
+\041\212\156\165\050\340\305\017\064\375\066\330\105\177\341\270
+\066\357\263\341\306\040\216\350\264\070\274\341\076\366\021\336
+\214\235\001\002\003\001\000\001\060\015\006\011\052\206\110\206
+\367\015\001\001\004\005\000\003\201\201\000\054\363\303\171\130
+\044\336\306\073\321\340\102\151\270\356\144\263\075\142\001\271
+\263\204\337\043\175\335\230\317\020\251\376\000\330\042\226\005
+\023\007\124\127\305\247\336\313\331\270\210\102\366\231\333\024
+\167\037\266\376\045\075\341\242\076\003\251\201\322\055\154\107
+\365\226\106\214\042\253\310\314\015\016\227\136\213\101\264\073
+\304\012\006\100\035\335\106\364\001\335\272\202\056\074\075\170
+\160\236\174\030\320\253\370\270\167\007\106\161\361\312\013\143
+\134\152\371\162\224\325\001\117\240\333\102
+END
+
+# Trust for Certificate "IPS Servidores root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS Servidores root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\044\272\155\154\212\133\130\067\244\215\265\372\351\031\352\147
+\134\224\322\027
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\173\265\010\231\232\214\030\277\205\047\175\016\256\332\262\253
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\243\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\101\122\103\105
+\114\117\116\101\061\022\060\020\006\003\125\004\007\023\011\102
+\101\122\103\105\114\117\116\101\061\031\060\027\006\003\125\004
+\012\023\020\111\120\123\040\123\145\147\165\162\151\144\141\144
+\040\103\101\061\030\060\026\006\003\125\004\013\023\017\103\145
+\162\164\151\146\151\143\141\143\151\157\156\145\163\061\027\060
+\025\006\003\125\004\003\023\016\111\120\123\040\123\105\122\126
+\111\104\117\122\105\123\061\036\060\034\006\011\052\206\110\206
+\367\015\001\011\001\026\017\151\160\163\100\155\141\151\154\056
+\151\160\163\056\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "IPS Timestamping root"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS Timestamping root"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023
+\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155
+\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151
+\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062
+\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151
+\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151
+\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151
+\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011
+\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023
+\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155
+\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151
+\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062
+\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151
+\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151
+\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151
+\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011
+\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\010\070\060\202\007\241\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105\123
+\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143\145
+\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011\102
+\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125\004
+\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164\040
+\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166\151
+\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125\004
+\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060\071
+\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023\053
+\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155\160
+\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151\157
+\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062\006
+\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151\155
+\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011\001
+\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056\145
+\163\060\036\027\015\060\061\061\062\062\071\060\061\061\060\061
+\070\132\027\015\062\065\061\062\062\067\060\061\061\060\061\070
+\132\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002
+\105\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162
+\143\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023
+\011\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003
+\125\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145
+\164\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162
+\166\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003
+\125\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160
+\163\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066
+\060\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013
+\023\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141
+\155\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164
+\151\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060
+\062\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124
+\151\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164
+\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162
+\151\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001
+\011\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\060\201\237\060\015\006\011\052\206\110\206\367\015
+\001\001\001\005\000\003\201\215\000\060\201\211\002\201\201\000
+\274\270\356\126\245\232\214\346\066\311\302\142\240\146\201\215
+\032\325\172\322\163\237\016\204\144\272\225\264\220\247\170\257
+\312\376\124\141\133\316\262\040\127\001\256\104\222\103\020\070
+\021\367\150\374\027\100\245\150\047\062\073\304\247\346\102\161
+\305\231\357\166\377\053\225\044\365\111\222\030\150\312\000\265
+\244\132\057\156\313\326\033\054\015\124\147\153\172\051\241\130
+\253\242\132\000\326\133\273\030\302\337\366\036\023\126\166\233
+\245\150\342\230\316\306\003\212\064\333\114\203\101\246\251\243
+\002\003\001\000\001\243\202\004\200\060\202\004\174\060\035\006
+\003\125\035\016\004\026\004\024\213\320\020\120\011\201\362\235
+\011\325\016\140\170\003\042\242\077\310\312\146\060\202\001\120
+\006\003\125\035\043\004\202\001\107\060\202\001\103\200\024\213
+\320\020\120\011\201\362\235\011\325\016\140\170\003\042\242\077
+\310\312\146\241\202\001\046\244\202\001\042\060\202\001\036\061
+\013\060\011\006\003\125\004\006\023\002\105\123\061\022\060\020
+\006\003\125\004\010\023\011\102\141\162\143\145\154\157\156\141
+\061\022\060\020\006\003\125\004\007\023\011\102\141\162\143\145
+\154\157\156\141\061\056\060\054\006\003\125\004\012\023\045\111
+\120\123\040\111\156\164\145\162\156\145\164\040\160\165\142\154
+\151\163\150\151\156\147\040\123\145\162\166\151\143\145\163\040
+\163\056\154\056\061\053\060\051\006\003\125\004\012\024\042\151
+\160\163\100\155\141\151\154\056\151\160\163\056\145\163\040\103
+\056\111\056\106\056\040\040\102\055\066\060\071\062\071\064\065
+\062\061\064\060\062\006\003\125\004\013\023\053\111\120\123\040
+\103\101\040\124\151\155\145\163\164\141\155\160\151\156\147\040
+\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165
+\164\150\157\162\151\164\171\061\064\060\062\006\003\125\004\003
+\023\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141
+\155\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164
+\151\157\156\040\101\165\164\150\157\162\151\164\171\061\036\060
+\034\006\011\052\206\110\206\367\015\001\011\001\026\017\151\160
+\163\100\155\141\151\154\056\151\160\163\056\145\163\202\001\000
+\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060\014
+\006\003\125\035\017\004\005\003\003\007\377\200\060\153\006\003
+\125\035\045\004\144\060\142\006\010\053\006\001\005\005\007\003
+\001\006\010\053\006\001\005\005\007\003\002\006\010\053\006\001
+\005\005\007\003\003\006\010\053\006\001\005\005\007\003\004\006
+\010\053\006\001\005\005\007\003\010\006\012\053\006\001\004\001
+\202\067\002\001\025\006\012\053\006\001\004\001\202\067\002\001
+\026\006\012\053\006\001\004\001\202\067\012\003\001\006\012\053
+\006\001\004\001\202\067\012\003\004\060\021\006\011\140\206\110
+\001\206\370\102\001\001\004\004\003\002\000\007\060\032\006\003
+\125\035\021\004\023\060\021\201\017\151\160\163\100\155\141\151
+\154\056\151\160\163\056\145\163\060\032\006\003\125\035\022\004
+\023\060\021\201\017\151\160\163\100\155\141\151\154\056\151\160
+\163\056\145\163\060\107\006\011\140\206\110\001\206\370\102\001
+\015\004\072\026\070\124\151\155\145\163\164\141\155\160\151\156
+\147\040\103\101\040\103\145\162\164\151\146\151\143\141\164\145
+\040\151\163\163\165\145\144\040\142\171\040\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\060\051\006
+\011\140\206\110\001\206\370\102\001\002\004\034\026\032\150\164
+\164\160\072\057\057\167\167\167\056\151\160\163\056\145\163\057
+\151\160\163\062\060\060\062\057\060\100\006\011\140\206\110\001
+\206\370\102\001\004\004\063\026\061\150\164\164\160\072\057\057
+\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062\060
+\060\062\057\151\160\163\062\060\060\062\124\151\155\145\163\164
+\141\155\160\151\156\147\056\143\162\154\060\105\006\011\140\206
+\110\001\206\370\102\001\003\004\070\026\066\150\164\164\160\072
+\057\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163
+\062\060\060\062\057\162\145\166\157\143\141\164\151\157\156\124
+\151\155\145\163\164\141\155\160\151\156\147\056\150\164\155\154
+\077\060\102\006\011\140\206\110\001\206\370\102\001\007\004\065
+\026\063\150\164\164\160\072\057\057\167\167\167\056\151\160\163
+\056\145\163\057\151\160\163\062\060\060\062\057\162\145\156\145
+\167\141\154\124\151\155\145\163\164\141\155\160\151\156\147\056
+\150\164\155\154\077\060\100\006\011\140\206\110\001\206\370\102
+\001\010\004\063\026\061\150\164\164\160\072\057\057\167\167\167
+\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062\057
+\160\157\154\151\143\171\124\151\155\145\163\164\141\155\160\151
+\156\147\056\150\164\155\154\060\177\006\003\125\035\037\004\170
+\060\166\060\067\240\065\240\063\206\061\150\164\164\160\072\057
+\057\167\167\167\056\151\160\163\056\145\163\057\151\160\163\062
+\060\060\062\057\151\160\163\062\060\060\062\124\151\155\145\163
+\164\141\155\160\151\156\147\056\143\162\154\060\073\240\071\240
+\067\206\065\150\164\164\160\072\057\057\167\167\167\142\141\143
+\153\056\151\160\163\056\145\163\057\151\160\163\062\060\060\062
+\057\151\160\163\062\060\060\062\124\151\155\145\163\164\141\155
+\160\151\156\147\056\143\162\154\060\057\006\010\053\006\001\005
+\005\007\001\001\004\043\060\041\060\037\006\010\053\006\001\005
+\005\007\060\001\206\023\150\164\164\160\072\057\057\157\143\163
+\160\056\151\160\163\056\145\163\057\060\015\006\011\052\206\110
+\206\367\015\001\001\005\005\000\003\201\201\000\145\272\301\314
+\000\032\225\221\312\351\154\072\277\072\036\024\010\174\373\203
+\356\153\142\121\323\063\221\265\140\171\176\004\330\135\171\067
+\350\303\133\260\304\147\055\150\132\262\137\016\012\372\315\077
+\072\105\241\352\066\317\046\036\247\021\050\305\224\217\204\114
+\123\010\305\223\263\374\342\177\365\215\363\261\251\205\137\210
+\336\221\226\356\027\133\256\245\352\160\145\170\054\041\144\001
+\225\316\316\114\076\120\364\266\131\313\143\215\266\275\030\324
+\207\112\137\334\357\351\126\360\012\014\350\165
+END
+
+# Trust for Certificate "IPS Timestamping root"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "IPS Timestamping root"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\226\231\134\167\021\350\345\055\371\343\113\354\354\147\323\313
+\361\266\304\322
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\056\003\375\305\365\327\053\224\144\301\276\211\061\361\026\233
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\202\001\036\061\013\060\011\006\003\125\004\006\023\002\105
+\123\061\022\060\020\006\003\125\004\010\023\011\102\141\162\143
+\145\154\157\156\141\061\022\060\020\006\003\125\004\007\023\011
+\102\141\162\143\145\154\157\156\141\061\056\060\054\006\003\125
+\004\012\023\045\111\120\123\040\111\156\164\145\162\156\145\164
+\040\160\165\142\154\151\163\150\151\156\147\040\123\145\162\166
+\151\143\145\163\040\163\056\154\056\061\053\060\051\006\003\125
+\004\012\024\042\151\160\163\100\155\141\151\154\056\151\160\163
+\056\145\163\040\103\056\111\056\106\056\040\040\102\055\066\060
+\071\062\071\064\065\062\061\064\060\062\006\003\125\004\013\023
+\053\111\120\123\040\103\101\040\124\151\155\145\163\164\141\155
+\160\151\156\147\040\103\145\162\164\151\146\151\143\141\164\151
+\157\156\040\101\165\164\150\157\162\151\164\171\061\064\060\062
+\006\003\125\004\003\023\053\111\120\123\040\103\101\040\124\151
+\155\145\163\164\141\155\160\151\156\147\040\103\145\162\164\151
+\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151
+\164\171\061\036\060\034\006\011\052\206\110\206\367\015\001\011
+\001\026\017\151\160\163\100\155\141\151\154\056\151\160\163\056
+\145\163
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "QuoVadis Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "QuoVadis Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061
+\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144
+\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126
+\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061
+\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144
+\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126
+\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\072\266\120\213
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\320\060\202\004\270\240\003\002\001\002\002\004\072
+\266\120\213\060\015\006\011\052\206\110\206\367\015\001\001\005
+\005\000\060\177\061\013\060\011\006\003\125\004\006\023\002\102
+\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157\126
+\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060\043
+\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162\164
+\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162
+\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121\165
+\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162\164
+\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162
+\151\164\171\060\036\027\015\060\061\060\063\061\071\061\070\063
+\063\063\063\132\027\015\062\061\060\063\061\067\061\070\063\063
+\063\063\132\060\177\061\013\060\011\006\003\125\004\006\023\002
+\102\115\061\031\060\027\006\003\125\004\012\023\020\121\165\157
+\126\141\144\151\163\040\114\151\155\151\164\145\144\061\045\060
+\043\006\003\125\004\013\023\034\122\157\157\164\040\103\145\162
+\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157
+\162\151\164\171\061\056\060\054\006\003\125\004\003\023\045\121
+\165\157\126\141\144\151\163\040\122\157\157\164\040\103\145\162
+\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157
+\162\151\164\171\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\277\141\265\225\123\272\127\374\372\362\147
+\013\072\032\337\021\200\144\225\264\321\274\315\172\317\366\051
+\226\056\044\124\100\044\070\367\032\205\334\130\114\313\244\047
+\102\227\320\237\203\212\303\344\006\003\133\000\245\121\036\160
+\004\164\342\301\324\072\253\327\255\073\007\030\005\216\375\203
+\254\352\146\331\030\033\150\212\365\127\032\230\272\365\355\166
+\075\174\331\336\224\152\073\113\027\301\325\217\275\145\070\072
+\225\320\075\125\066\116\337\171\127\061\052\036\330\131\145\111
+\130\040\230\176\253\137\176\237\351\326\115\354\203\164\251\307
+\154\330\356\051\112\205\052\006\024\371\124\346\323\332\145\007
+\213\143\067\022\327\320\354\303\173\040\101\104\243\355\313\240
+\027\341\161\145\316\035\146\061\367\166\001\031\310\175\003\130
+\266\225\111\035\246\022\046\350\306\014\166\340\343\146\313\352
+\135\246\046\356\345\314\137\275\147\247\001\047\016\242\312\124
+\305\261\172\225\035\161\036\112\051\212\003\334\152\105\301\244
+\031\136\157\066\315\303\242\260\267\376\134\070\342\122\274\370
+\104\103\346\220\273\002\003\001\000\001\243\202\002\122\060\202
+\002\116\060\075\006\010\053\006\001\005\005\007\001\001\004\061
+\060\057\060\055\006\010\053\006\001\005\005\007\060\001\206\041
+\150\164\164\160\163\072\057\057\157\143\163\160\056\161\165\157
+\166\141\144\151\163\157\146\146\163\150\157\162\145\056\143\157
+\155\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001
+\001\377\060\202\001\032\006\003\125\035\040\004\202\001\021\060
+\202\001\015\060\202\001\011\006\011\053\006\001\004\001\276\130
+\000\001\060\201\373\060\201\324\006\010\053\006\001\005\005\007
+\002\002\060\201\307\032\201\304\122\145\154\151\141\156\143\145
+\040\157\156\040\164\150\145\040\121\165\157\126\141\144\151\163
+\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141\164
+\145\040\142\171\040\141\156\171\040\160\141\162\164\171\040\141
+\163\163\165\155\145\163\040\141\143\143\145\160\164\141\156\143
+\145\040\157\146\040\164\150\145\040\164\150\145\156\040\141\160
+\160\154\151\143\141\142\154\145\040\163\164\141\156\144\141\162
+\144\040\164\145\162\155\163\040\141\156\144\040\143\157\156\144
+\151\164\151\157\156\163\040\157\146\040\165\163\145\054\040\143
+\145\162\164\151\146\151\143\141\164\151\157\156\040\160\162\141
+\143\164\151\143\145\163\054\040\141\156\144\040\164\150\145\040
+\121\165\157\126\141\144\151\163\040\103\145\162\164\151\146\151
+\143\141\164\145\040\120\157\154\151\143\171\056\060\042\006\010
+\053\006\001\005\005\007\002\001\026\026\150\164\164\160\072\057
+\057\167\167\167\056\161\165\157\166\141\144\151\163\056\142\155
+\060\035\006\003\125\035\016\004\026\004\024\213\113\155\355\323
+\051\271\006\031\354\071\071\251\360\227\204\152\313\357\337\060
+\201\256\006\003\125\035\043\004\201\246\060\201\243\200\024\213
+\113\155\355\323\051\271\006\031\354\071\071\251\360\227\204\152
+\313\357\337\241\201\204\244\201\201\060\177\061\013\060\011\006
+\003\125\004\006\023\002\102\115\061\031\060\027\006\003\125\004
+\012\023\020\121\165\157\126\141\144\151\163\040\114\151\155\151
+\164\145\144\061\045\060\043\006\003\125\004\013\023\034\122\157
+\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156
+\040\101\165\164\150\157\162\151\164\171\061\056\060\054\006\003
+\125\004\003\023\045\121\165\157\126\141\144\151\163\040\122\157
+\157\164\040\103\145\162\164\151\146\151\143\141\164\151\157\156
+\040\101\165\164\150\157\162\151\164\171\202\004\072\266\120\213
+\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\212\324\024\265\376\364\232\222\247\031\324\244
+\176\162\030\217\331\150\174\122\044\335\147\157\071\172\304\252
+\136\075\342\130\260\115\160\230\204\141\350\033\343\151\030\016
+\316\373\107\120\240\116\377\360\044\037\275\262\316\365\047\374
+\354\057\123\252\163\173\003\075\164\156\346\026\236\353\245\056
+\304\277\126\047\120\053\142\272\276\113\034\074\125\134\101\035
+\044\276\202\040\107\135\325\104\176\172\026\150\337\175\115\121
+\160\170\127\035\063\036\375\002\231\234\014\315\012\005\117\307
+\273\216\244\165\372\112\155\261\200\216\011\126\271\234\032\140
+\376\135\301\327\172\334\021\170\320\326\135\301\267\325\255\062
+\231\003\072\212\314\124\045\071\061\201\173\023\042\121\272\106
+\154\241\273\236\372\004\154\111\046\164\217\322\163\353\314\060
+\242\346\352\131\042\207\370\227\365\016\375\352\314\222\244\026
+\304\122\030\352\041\316\261\361\346\204\201\345\272\251\206\050
+\362\103\132\135\022\235\254\036\331\250\345\012\152\247\177\240
+\207\051\317\362\211\115\324\354\305\342\346\172\320\066\043\212
+\112\164\066\371
+END
+
+# Trust for Certificate "QuoVadis Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "QuoVadis Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\336\077\100\275\120\223\323\233\154\140\366\332\274\007\142\001
+\000\211\166\311
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\047\336\066\376\162\267\000\003\000\235\364\360\036\154\004\044
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\177\061\013\060\011\006\003\125\004\006\023\002\102\115\061
+\031\060\027\006\003\125\004\012\023\020\121\165\157\126\141\144
+\151\163\040\114\151\155\151\164\145\144\061\045\060\043\006\003
+\125\004\013\023\034\122\157\157\164\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171\061\056\060\054\006\003\125\004\003\023\045\121\165\157\126
+\141\144\151\163\040\122\157\157\164\040\103\145\162\164\151\146
+\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164
+\171
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\072\266\120\213
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Security Communication Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Security Communication Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061
+\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040
+\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125
+\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155
+\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103
+\101\061
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061
+\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040
+\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125
+\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155
+\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103
+\101\061
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\003\132\060\202\002\102\240\003\002\001\002\002\001\000
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061\030
+\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040\124
+\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125\004
+\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155\155
+\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103\101
+\061\060\036\027\015\060\063\060\071\063\060\060\064\062\060\064
+\071\132\027\015\062\063\060\071\063\060\060\064\062\060\064\071
+\132\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120
+\061\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115
+\040\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003
+\125\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157
+\155\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164
+\103\101\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\263\263\376\177\323\155\261\357\026\174\127\245
+\014\155\166\212\057\113\277\144\373\114\356\212\360\363\051\174
+\365\377\356\052\340\351\351\272\133\144\042\232\232\157\054\072
+\046\151\121\005\231\046\334\325\034\152\161\306\232\175\036\235
+\335\174\154\306\214\147\147\112\076\370\161\260\031\047\251\011
+\014\246\225\277\113\214\014\372\125\230\073\330\350\042\241\113
+\161\070\171\254\227\222\151\263\211\176\352\041\150\006\230\024
+\226\207\322\141\066\274\155\047\126\236\127\356\300\300\126\375
+\062\317\244\331\216\302\043\327\215\250\363\330\045\254\227\344
+\160\070\364\266\072\264\235\073\227\046\103\243\241\274\111\131
+\162\114\043\060\207\001\130\366\116\276\034\150\126\146\257\315
+\101\135\310\263\115\052\125\106\253\037\332\036\342\100\075\333
+\315\175\271\222\200\234\067\335\014\226\144\235\334\042\367\144
+\213\337\141\336\025\224\122\025\240\175\122\311\113\250\041\311
+\306\261\355\313\303\225\140\321\017\360\253\160\370\337\313\115
+\176\354\326\372\253\331\275\177\124\362\245\351\171\372\331\326
+\166\044\050\163\002\003\001\000\001\243\077\060\075\060\035\006
+\003\125\035\016\004\026\004\024\240\163\111\231\150\334\205\133
+\145\343\233\050\057\127\237\275\063\274\007\110\060\013\006\003
+\125\035\017\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\005\005\000\003\202\001\001\000\150\100
+\251\250\273\344\117\135\171\263\005\265\027\263\140\023\353\306
+\222\135\340\321\323\152\376\373\276\233\155\277\307\005\155\131
+\040\304\034\360\267\332\204\130\002\143\372\110\026\357\117\245
+\013\367\112\230\362\077\236\033\255\107\153\143\316\010\107\353
+\122\077\170\234\257\115\256\370\325\117\317\232\230\052\020\101
+\071\122\304\335\331\233\016\357\223\001\256\262\056\312\150\102
+\044\102\154\260\263\072\076\315\351\332\110\304\025\313\351\371
+\007\017\222\120\111\212\335\061\227\137\311\351\067\252\073\131
+\145\227\224\062\311\263\237\076\072\142\130\305\111\255\142\016
+\161\245\062\252\057\306\211\166\103\100\023\023\147\075\242\124
+\045\020\313\361\072\362\331\372\333\111\126\273\246\376\247\101
+\065\303\340\210\141\311\210\307\337\066\020\042\230\131\352\260
+\112\373\126\026\163\156\254\115\367\042\241\117\255\035\172\055
+\105\047\345\060\301\136\362\332\023\313\045\102\121\225\107\003
+\214\154\041\314\164\102\355\123\377\063\213\217\017\127\001\026
+\057\317\246\356\311\160\042\024\275\375\276\154\013\003
+END
+
+# Trust for Certificate "Security Communication Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Security Communication Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\066\261\053\111\371\201\236\327\114\236\274\070\017\306\126\217
+\135\254\262\367
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\361\274\143\152\124\340\265\047\365\315\347\032\343\115\156\112
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\120\061\013\060\011\006\003\125\004\006\023\002\112\120\061
+\030\060\026\006\003\125\004\012\023\017\123\105\103\117\115\040
+\124\162\165\163\164\056\156\145\164\061\047\060\045\006\003\125
+\004\013\023\036\123\145\143\165\162\151\164\171\040\103\157\155
+\155\165\156\151\143\141\164\151\157\156\040\122\157\157\164\103
+\101\061
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\000
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Sonera Class 1 Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Sonera Class 1 Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
+\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
+\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
+\141\040\103\154\141\163\163\061\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
+\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
+\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
+\141\040\103\154\141\163\163\061\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\044
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\044
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017
+\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061
+\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141
+\040\103\154\141\163\163\061\040\103\101\060\036\027\015\060\061
+\060\064\060\066\061\060\064\071\061\063\132\027\015\062\061\060
+\064\060\066\061\060\064\071\061\063\132\060\071\061\013\060\011
+\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125
+\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003
+\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163
+\163\061\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\265\211\037\053\117\147\012\171\377\305
+\036\370\177\074\355\321\176\332\260\315\155\057\066\254\064\306
+\333\331\144\027\010\143\060\063\042\212\114\356\216\273\017\015
+\102\125\311\235\056\245\357\367\247\214\303\253\271\227\313\216
+\357\077\025\147\250\202\162\143\123\017\101\214\175\020\225\044
+\241\132\245\006\372\222\127\235\372\245\001\362\165\351\037\274
+\126\046\122\116\170\031\145\130\125\003\130\300\024\256\214\174
+\125\137\160\133\167\043\006\066\227\363\044\265\232\106\225\344
+\337\015\013\005\105\345\321\362\035\202\273\306\023\340\376\252
+\172\375\151\060\224\363\322\105\205\374\362\062\133\062\336\350
+\154\135\037\313\244\042\164\260\200\216\135\224\367\006\000\113
+\251\324\136\056\065\120\011\363\200\227\364\014\027\256\071\330
+\137\315\063\301\034\312\211\302\042\367\105\022\355\136\022\223
+\235\143\253\202\056\271\353\102\101\104\313\112\032\000\202\015
+\236\371\213\127\076\114\307\027\355\054\213\162\063\137\162\172
+\070\126\325\346\331\256\005\032\035\165\105\261\313\245\045\034
+\022\127\066\375\042\067\002\003\001\000\001\243\063\060\061\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\107\342\014\213\366
+\123\210\122\060\013\006\003\125\035\017\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\213\032\262\311\135\141\264\341\271\053\271\123
+\321\262\205\235\167\216\026\356\021\075\333\302\143\331\133\227
+\145\373\022\147\330\052\134\266\253\345\136\303\267\026\057\310
+\350\253\035\212\375\253\032\174\325\137\143\317\334\260\335\167
+\271\250\346\322\042\070\207\007\024\331\377\276\126\265\375\007
+\016\074\125\312\026\314\247\246\167\067\373\333\134\037\116\131
+\006\207\243\003\103\365\026\253\267\204\275\116\357\237\061\067
+\360\106\361\100\266\321\014\245\144\370\143\136\041\333\125\116
+\117\061\166\234\020\141\216\266\123\072\243\021\276\257\155\174
+\036\275\256\055\342\014\151\307\205\123\150\242\141\272\305\076
+\264\171\124\170\236\012\307\002\276\142\321\021\202\113\145\057
+\221\132\302\250\207\261\126\150\224\171\371\045\367\301\325\256
+\032\270\273\075\217\251\212\070\025\367\163\320\132\140\321\200
+\260\360\334\325\120\315\116\356\222\110\151\355\262\043\036\060
+\314\310\224\310\266\365\073\206\177\077\246\056\237\366\076\054
+\265\222\226\076\337\054\223\212\377\201\214\017\017\131\041\031
+\127\275\125\232
+END
+
+# Trust for Certificate "Sonera Class 1 Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Sonera Class 1 Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\007\107\042\001\231\316\164\271\174\260\075\171\262\144\242\310
+\125\351\063\377
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\063\267\204\365\137\047\327\150\047\336\024\336\022\052\355\157
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
+\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
+\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
+\141\040\103\154\141\163\163\061\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\044
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Sonera Class 2 Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Sonera Class 2 Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
+\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
+\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
+\141\040\103\154\141\163\163\062\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
+\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
+\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
+\141\040\103\154\141\163\163\062\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\035
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\003\040\060\202\002\010\240\003\002\001\002\002\001\035
+\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060
+\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061\017
+\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141\061
+\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162\141
+\040\103\154\141\163\163\062\040\103\101\060\036\027\015\060\061
+\060\064\060\066\060\067\062\071\064\060\132\027\015\062\061\060
+\064\060\066\060\067\062\071\064\060\132\060\071\061\013\060\011
+\006\003\125\004\006\023\002\106\111\061\017\060\015\006\003\125
+\004\012\023\006\123\157\156\145\162\141\061\031\060\027\006\003
+\125\004\003\023\020\123\157\156\145\162\141\040\103\154\141\163
+\163\062\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\220\027\112\065\235\312\360\015\226\307
+\104\372\026\067\374\110\275\275\177\200\055\065\073\341\157\250
+\147\251\277\003\034\115\214\157\062\107\325\101\150\244\023\004
+\301\065\014\232\204\103\374\134\035\377\211\263\350\027\030\315
+\221\137\373\211\343\352\277\116\135\174\033\046\323\165\171\355
+\346\204\343\127\345\255\051\304\364\072\050\347\245\173\204\066
+\151\263\375\136\166\275\243\055\231\323\220\116\043\050\175\030
+\143\361\124\073\046\235\166\133\227\102\262\377\256\360\116\354
+\335\071\225\116\203\006\177\347\111\100\310\305\001\262\124\132
+\146\035\075\374\371\351\074\012\236\201\270\160\360\001\213\344
+\043\124\174\310\256\370\220\036\000\226\162\324\124\317\141\043
+\274\352\373\235\002\225\321\266\271\161\072\151\010\077\017\264
+\341\102\307\210\365\077\230\250\247\272\034\340\161\161\357\130
+\127\201\120\172\134\153\164\106\016\203\003\230\303\216\250\156
+\362\166\062\156\047\203\302\163\363\334\030\350\264\223\352\165
+\104\153\004\140\040\161\127\207\235\363\276\240\220\043\075\212
+\044\341\332\041\333\303\002\003\001\000\001\243\063\060\061\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\112\240\252\130\204
+\323\136\074\060\013\006\003\125\035\017\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\132\316\207\371\026\162\025\127\113\035\331\233
+\347\242\046\060\354\223\147\337\326\055\322\064\257\367\070\245
+\316\253\026\271\253\057\174\065\313\254\320\017\264\114\053\374
+\200\357\153\214\221\137\066\166\367\333\263\033\031\352\364\262
+\021\375\141\161\104\277\050\263\072\035\277\263\103\350\237\277
+\334\061\010\161\260\235\215\326\064\107\062\220\306\145\044\367
+\240\112\174\004\163\217\071\157\027\214\162\265\275\113\310\172
+\370\173\203\303\050\116\234\011\352\147\077\262\147\004\033\303
+\024\332\370\347\111\044\221\320\035\152\372\141\071\357\153\347
+\041\165\006\007\330\022\264\041\040\160\102\161\201\332\074\232
+\066\276\246\133\015\152\154\232\037\221\173\371\371\357\102\272
+\116\116\236\314\014\215\224\334\331\105\234\136\354\102\120\143
+\256\364\135\304\261\022\334\312\073\250\056\235\024\132\005\165
+\267\354\327\143\342\272\065\266\004\010\221\350\332\235\234\366
+\146\265\030\254\012\246\124\046\064\063\322\033\301\324\177\032
+\072\216\013\252\062\156\333\374\117\045\237\331\062\307\226\132
+\160\254\337\114
+END
+
+# Trust for Certificate "Sonera Class 2 Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Sonera Class 2 Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\067\367\155\346\007\174\220\305\261\076\223\032\267\101\020\264
+\362\344\232\047
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\243\354\165\017\056\210\337\372\110\001\116\013\134\110\157\373
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\071\061\013\060\011\006\003\125\004\006\023\002\106\111\061
+\017\060\015\006\003\125\004\012\023\006\123\157\156\145\162\141
+\061\031\060\027\006\003\125\004\003\023\020\123\157\156\145\162
+\141\040\103\154\141\163\163\062\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\001\035
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "Staat der Nederlanden Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Staat der Nederlanden Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040
+\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061
+\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040
+\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040
+\122\157\157\164\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040
+\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061
+\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040
+\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040
+\122\157\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\000\230\226\212
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\003\272\060\202\002\242\240\003\002\001\002\002\004\000
+\230\226\212\060\015\006\011\052\206\110\206\367\015\001\001\005
+\005\000\060\125\061\013\060\011\006\003\125\004\006\023\002\116
+\114\061\036\060\034\006\003\125\004\012\023\025\123\164\141\141
+\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145
+\156\061\046\060\044\006\003\125\004\003\023\035\123\164\141\141
+\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145
+\156\040\122\157\157\164\040\103\101\060\036\027\015\060\062\061
+\062\061\067\060\071\062\063\064\071\132\027\015\061\065\061\062
+\061\066\060\071\061\065\063\070\132\060\125\061\013\060\011\006
+\003\125\004\006\023\002\116\114\061\036\060\034\006\003\125\004
+\012\023\025\123\164\141\141\164\040\144\145\162\040\116\145\144
+\145\162\154\141\156\144\145\156\061\046\060\044\006\003\125\004
+\003\023\035\123\164\141\141\164\040\144\145\162\040\116\145\144
+\145\162\154\141\156\144\145\156\040\122\157\157\164\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\230\322\265\121\021\172\201\246\024\230\161\155\276\314\347
+\023\033\326\047\016\172\263\152\030\034\266\141\132\325\141\011
+\277\336\220\023\307\147\356\335\363\332\305\014\022\236\065\125
+\076\054\047\210\100\153\367\334\335\042\141\365\302\307\016\365
+\366\325\166\123\115\217\214\274\030\166\067\205\235\350\312\111
+\307\322\117\230\023\011\242\076\042\210\234\177\326\362\020\145
+\264\356\137\030\325\027\343\370\305\375\342\235\242\357\123\016
+\205\167\242\017\341\060\107\356\000\347\063\175\104\147\032\013
+\121\350\213\240\236\120\230\150\064\122\037\056\155\001\362\140
+\105\362\061\353\251\061\150\051\273\172\101\236\306\031\177\224
+\264\121\071\003\177\262\336\247\062\233\264\107\216\157\264\112
+\256\345\257\261\334\260\033\141\274\231\162\336\344\211\267\172
+\046\135\332\063\111\133\122\234\016\365\212\255\303\270\075\350
+\006\152\302\325\052\013\154\173\204\275\126\005\313\206\145\222
+\354\104\053\260\216\271\334\160\013\106\332\255\274\143\210\071
+\372\333\152\376\043\372\274\344\110\364\147\053\152\021\020\041
+\111\002\003\001\000\001\243\201\221\060\201\216\060\014\006\003
+\125\035\023\004\005\060\003\001\001\377\060\117\006\003\125\035
+\040\004\110\060\106\060\104\006\004\125\035\040\000\060\074\060
+\072\006\010\053\006\001\005\005\007\002\001\026\056\150\164\164
+\160\072\057\057\167\167\167\056\160\153\151\157\166\145\162\150
+\145\151\144\056\156\154\057\160\157\154\151\143\151\145\163\057
+\162\157\157\164\055\160\157\154\151\143\171\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\250\175\353\274\143\244\164\023\164\000
+\354\226\340\323\064\301\054\277\154\370\060\015\006\011\052\206
+\110\206\367\015\001\001\005\005\000\003\202\001\001\000\005\204
+\207\125\164\066\141\301\273\321\324\306\025\250\023\264\237\244
+\376\273\356\025\264\057\006\014\051\362\250\222\244\141\015\374
+\253\134\010\133\121\023\053\115\302\052\141\310\370\011\130\374
+\055\002\262\071\175\231\146\201\277\156\134\225\105\040\154\346
+\171\247\321\330\034\051\374\302\040\047\121\310\361\174\135\064
+\147\151\205\021\060\306\000\322\327\363\323\174\266\360\061\127
+\050\022\202\163\351\063\057\246\125\264\013\221\224\107\234\372
+\273\172\102\062\350\256\176\055\310\274\254\024\277\331\017\331
+\133\374\301\371\172\225\341\175\176\226\374\161\260\302\114\310
+\337\105\064\311\316\015\362\234\144\010\320\073\303\051\305\262
+\355\220\004\301\261\051\221\305\060\157\301\251\162\063\314\376
+\135\026\027\054\021\151\347\176\376\305\203\010\337\274\334\042
+\072\056\040\151\043\071\126\140\147\220\213\056\166\071\373\021
+\210\227\366\174\275\113\270\040\026\147\005\215\342\073\301\162
+\077\224\225\067\307\135\271\236\330\223\241\027\217\377\014\146
+\025\301\044\174\062\174\003\035\073\241\130\105\062\223
+END
+
+# Trust for Certificate "Staat der Nederlanden Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "Staat der Nederlanden Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\020\035\372\077\325\013\313\273\233\265\140\014\031\125\244\032
+\364\163\072\004
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\140\204\174\132\316\333\014\324\313\247\351\376\002\306\251\300
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\125\061\013\060\011\006\003\125\004\006\023\002\116\114\061
+\036\060\034\006\003\125\004\012\023\025\123\164\141\141\164\040
+\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061
+\046\060\044\006\003\125\004\003\023\035\123\164\141\141\164\040
+\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040
+\122\157\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\000\230\226\212
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "TDC Internet Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "TDC Internet Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156
+\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023
+\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157
+\157\164\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156
+\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023
+\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157
+\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\072\314\245\114
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\053\060\202\003\023\240\003\002\001\002\002\004\072
+\314\245\114\060\015\006\011\052\206\110\206\367\015\001\001\005
+\005\000\060\103\061\013\060\011\006\003\125\004\006\023\002\104
+\113\061\025\060\023\006\003\125\004\012\023\014\124\104\103\040
+\111\156\164\145\162\156\145\164\061\035\060\033\006\003\125\004
+\013\023\024\124\104\103\040\111\156\164\145\162\156\145\164\040
+\122\157\157\164\040\103\101\060\036\027\015\060\061\060\064\060
+\065\061\066\063\063\061\067\132\027\015\062\061\060\064\060\065
+\061\067\060\063\061\067\132\060\103\061\013\060\011\006\003\125
+\004\006\023\002\104\113\061\025\060\023\006\003\125\004\012\023
+\014\124\104\103\040\111\156\164\145\162\156\145\164\061\035\060
+\033\006\003\125\004\013\023\024\124\104\103\040\111\156\164\145
+\162\156\145\164\040\122\157\157\164\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\304\270\100
+\274\221\325\143\037\327\231\240\213\014\100\036\164\267\110\235
+\106\214\002\262\340\044\137\360\031\023\247\067\203\153\135\307
+\216\371\204\060\316\032\073\372\373\316\213\155\043\306\303\156
+\146\237\211\245\337\340\102\120\147\372\037\154\036\364\320\005
+\326\277\312\326\116\344\150\140\154\106\252\034\135\143\341\007
+\206\016\145\000\247\056\246\161\306\274\271\201\250\072\175\032
+\322\371\321\254\113\313\316\165\257\334\173\372\201\163\324\374
+\272\275\101\210\324\164\263\371\136\070\072\074\103\250\322\225
+\116\167\155\023\014\235\217\170\001\267\132\040\037\003\067\065
+\342\054\333\113\053\054\170\271\111\333\304\320\307\234\234\344
+\212\040\011\041\026\126\146\377\005\354\133\343\360\317\253\044
+\044\136\303\177\160\172\022\304\322\265\020\240\266\041\341\215
+\170\151\125\104\151\365\312\226\034\064\205\027\045\167\342\366
+\057\047\230\170\375\171\006\072\242\326\132\103\301\377\354\004
+\073\356\023\357\323\130\132\377\222\353\354\256\332\362\067\003
+\107\101\266\227\311\055\012\101\042\273\273\346\247\002\003\001
+\000\001\243\202\001\045\060\202\001\041\060\021\006\011\140\206
+\110\001\206\370\102\001\001\004\004\003\002\000\007\060\145\006
+\003\125\035\037\004\136\060\134\060\132\240\130\240\126\244\124
+\060\122\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156
+\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023
+\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157
+\157\164\040\103\101\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\062\060\060\061\060\064\060\065\061\066\063\063\061\067\132
+\201\017\062\060\062\061\060\064\060\065\061\067\060\063\061\067
+\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\154\144\001\307\375
+\205\155\254\310\332\236\120\010\205\010\265\074\126\250\120\060
+\035\006\003\125\035\016\004\026\004\024\154\144\001\307\375\205
+\155\254\310\332\236\120\010\205\010\265\074\126\250\120\060\014
+\006\003\125\035\023\004\005\060\003\001\001\377\060\035\006\011
+\052\206\110\206\366\175\007\101\000\004\020\060\016\033\010\126
+\065\056\060\072\064\056\060\003\002\004\220\060\015\006\011\052
+\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\116
+\103\314\321\335\035\020\033\006\177\267\244\372\323\331\115\373
+\043\237\043\124\133\346\213\057\004\050\213\265\047\155\211\241
+\354\230\151\334\347\215\046\203\005\171\164\354\264\271\243\227
+\301\065\000\375\025\332\071\201\072\225\061\220\336\227\351\206
+\250\231\167\014\345\132\240\204\377\022\026\254\156\270\215\303
+\173\222\302\254\056\320\175\050\354\266\363\140\070\151\157\076
+\330\004\125\076\236\314\125\322\272\376\273\107\004\327\012\331
+\026\012\064\051\365\130\023\325\117\317\217\126\113\263\036\356
+\323\230\171\332\010\036\014\157\270\370\026\047\357\302\157\075
+\366\243\113\076\016\344\155\154\333\073\101\022\233\275\015\107
+\043\177\074\112\320\257\300\257\366\357\033\265\025\304\353\203
+\304\011\137\164\213\331\021\373\302\126\261\074\370\160\312\064
+\215\103\100\023\214\375\231\003\124\171\306\056\352\206\241\366
+\072\324\011\274\364\274\146\314\075\130\320\127\111\012\356\045
+\342\101\356\023\371\233\070\064\321\000\365\176\347\224\035\374
+\151\003\142\270\231\005\005\075\153\170\022\275\260\157\145
+END
+
+# Trust for Certificate "TDC Internet Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "TDC Internet Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\041\374\275\216\177\154\257\005\033\321\263\103\354\250\347\141
+\107\362\017\212
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\221\364\003\125\040\241\370\143\054\142\336\254\373\141\034\216
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\103\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\025\060\023\006\003\125\004\012\023\014\124\104\103\040\111\156
+\164\145\162\156\145\164\061\035\060\033\006\003\125\004\013\023
+\024\124\104\103\040\111\156\164\145\162\156\145\164\040\122\157
+\157\164\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\072\314\245\114
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "TDC OCES Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "TDC OCES Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060
+\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123
+\040\103\101
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060
+\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123
+\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\076\110\275\304
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\005\031\060\202\004\001\240\003\002\001\002\002\004\076
+\110\275\304\060\015\006\011\052\206\110\206\367\015\001\001\005
+\005\000\060\061\061\013\060\011\006\003\125\004\006\023\002\104
+\113\061\014\060\012\006\003\125\004\012\023\003\124\104\103\061
+\024\060\022\006\003\125\004\003\023\013\124\104\103\040\117\103
+\105\123\040\103\101\060\036\027\015\060\063\060\062\061\061\060
+\070\063\071\063\060\132\027\015\063\067\060\062\061\061\060\071
+\060\071\063\060\132\060\061\061\013\060\011\006\003\125\004\006
+\023\002\104\113\061\014\060\012\006\003\125\004\012\023\003\124
+\104\103\061\024\060\022\006\003\125\004\003\023\013\124\104\103
+\040\117\103\105\123\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\254\142\366\141\040\262\317
+\300\306\205\327\343\171\346\314\355\362\071\222\244\227\056\144
+\243\204\133\207\234\114\375\244\363\304\137\041\275\126\020\353
+\333\056\141\354\223\151\343\243\314\275\231\303\005\374\006\270
+\312\066\034\376\220\216\111\114\304\126\232\057\126\274\317\173
+\014\361\157\107\246\015\103\115\342\351\035\071\064\315\215\054
+\331\022\230\371\343\341\301\112\174\206\070\304\251\304\141\210
+\322\136\257\032\046\115\325\344\240\042\107\204\331\144\267\031
+\226\374\354\031\344\262\227\046\116\112\114\313\217\044\213\124
+\030\034\110\141\173\325\210\150\332\135\265\352\315\032\060\301
+\200\203\166\120\252\117\321\324\335\070\360\357\026\364\341\014
+\120\006\277\352\373\172\111\241\050\053\034\366\374\025\062\243
+\164\152\217\251\303\142\051\161\061\345\073\244\140\027\136\164
+\346\332\023\355\351\037\037\033\321\262\150\163\306\020\064\165
+\106\020\020\343\220\000\166\100\313\213\267\103\011\041\377\253
+\116\223\306\130\351\245\202\333\167\304\072\231\261\162\225\111
+\004\360\267\053\372\173\131\216\335\002\003\001\000\001\243\202
+\002\067\060\202\002\063\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\201\354\006\003\125\035\040\004
+\201\344\060\201\341\060\201\336\006\010\052\201\120\201\051\001
+\001\001\060\201\321\060\057\006\010\053\006\001\005\005\007\002
+\001\026\043\150\164\164\160\072\057\057\167\167\167\056\143\145
+\162\164\151\146\151\153\141\164\056\144\153\057\162\145\160\157
+\163\151\164\157\162\171\060\201\235\006\010\053\006\001\005\005
+\007\002\002\060\201\220\060\012\026\003\124\104\103\060\003\002
+\001\001\032\201\201\103\145\162\164\151\146\151\153\141\164\145
+\162\040\146\162\141\040\144\145\156\156\145\040\103\101\040\165
+\144\163\164\145\144\145\163\040\165\156\144\145\162\040\117\111
+\104\040\061\056\062\056\062\060\070\056\061\066\071\056\061\056
+\061\056\061\056\040\103\145\162\164\151\146\151\143\141\164\145
+\163\040\146\162\157\155\040\164\150\151\163\040\103\101\040\141
+\162\145\040\151\163\163\165\145\144\040\165\156\144\145\162\040
+\117\111\104\040\061\056\062\056\062\060\070\056\061\066\071\056
+\061\056\061\056\061\056\060\021\006\011\140\206\110\001\206\370
+\102\001\001\004\004\003\002\000\007\060\201\201\006\003\125\035
+\037\004\172\060\170\060\110\240\106\240\104\244\102\060\100\061
+\013\060\011\006\003\125\004\006\023\002\104\113\061\014\060\012
+\006\003\125\004\012\023\003\124\104\103\061\024\060\022\006\003
+\125\004\003\023\013\124\104\103\040\117\103\105\123\040\103\101
+\061\015\060\013\006\003\125\004\003\023\004\103\122\114\061\060
+\054\240\052\240\050\206\046\150\164\164\160\072\057\057\143\162
+\154\056\157\143\145\163\056\143\145\162\164\151\146\151\153\141
+\164\056\144\153\057\157\143\145\163\056\143\162\154\060\053\006
+\003\125\035\020\004\044\060\042\200\017\062\060\060\063\060\062
+\061\061\060\070\063\071\063\060\132\201\017\062\060\063\067\060
+\062\061\061\060\071\060\071\063\060\132\060\037\006\003\125\035
+\043\004\030\060\026\200\024\140\265\205\354\126\144\176\022\031
+\047\147\035\120\025\113\163\256\073\371\022\060\035\006\003\125
+\035\016\004\026\004\024\140\265\205\354\126\144\176\022\031\047
+\147\035\120\025\113\163\256\073\371\022\060\035\006\011\052\206
+\110\206\366\175\007\101\000\004\020\060\016\033\010\126\066\056
+\060\072\064\056\060\003\002\004\220\060\015\006\011\052\206\110
+\206\367\015\001\001\005\005\000\003\202\001\001\000\012\272\046
+\046\106\323\163\250\011\363\153\013\060\231\375\212\341\127\172
+\021\323\270\224\327\011\020\156\243\261\070\003\321\266\362\103
+\101\051\142\247\162\330\373\174\005\346\061\160\047\124\030\116
+\212\174\116\345\321\312\214\170\210\317\033\323\220\213\346\043
+\370\013\016\063\103\175\234\342\012\031\217\311\001\076\164\135
+\164\311\213\034\003\345\030\310\001\114\077\313\227\005\135\230
+\161\246\230\157\266\174\275\067\177\276\341\223\045\155\157\360
+\012\255\027\030\341\003\274\007\051\310\255\046\350\370\141\360
+\375\041\011\176\232\216\251\150\175\110\142\162\275\000\352\001
+\231\270\006\202\121\201\116\361\365\264\221\124\271\043\172\000
+\232\237\135\215\340\074\144\271\032\022\222\052\307\202\104\162
+\071\334\342\074\306\330\125\365\025\116\310\005\016\333\306\320
+\142\246\354\025\264\265\002\202\333\254\214\242\201\360\233\231
+\061\365\040\040\250\210\141\012\007\237\224\374\320\327\033\314
+\056\027\363\004\047\166\147\353\124\203\375\244\220\176\006\075
+\004\243\103\055\332\374\013\142\352\057\137\142\123
+END
+
+# Trust for Certificate "TDC OCES Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "TDC OCES Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\207\201\302\132\226\275\302\373\114\145\006\117\371\071\013\046
+\004\212\016\001
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\223\177\220\034\355\204\147\027\244\145\137\233\313\060\002\227
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\061\061\013\060\011\006\003\125\004\006\023\002\104\113\061
+\014\060\012\006\003\125\004\012\023\003\124\104\103\061\024\060
+\022\006\003\125\004\003\023\013\124\104\103\040\117\103\105\123
+\040\103\101
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\004\076\110\275\304
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+
+#
+# Certificate "UTN DATACorp SGC Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN DATACorp SGC Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\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
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\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
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\041\264\021\323\052\150\006\251
+\255\151
+END
+CKA_VALUE MULTILINE_OCTAL
+\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
+END
+
+# Trust for Certificate "UTN DATACorp SGC Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN DATACorp SGC Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\130\021\237\016\022\202\207\352\120\375\331\207\105\157\117\170
+\334\372\326\324
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\263\245\076\167\041\155\254\112\300\311\373\325\101\075\312\006
+END
+CKA_ISSUER MULTILINE_OCTAL
+\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
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\041\264\021\323\052\150\006\251
+\255\151
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_VALID
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_VALID
+
+#
+# Certificate "UTN USERFirst Email Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN USERFirst Email Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\201\256\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\066\060\064\006\003\125
+\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164
+\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151
+\154
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\256\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\066\060\064\006\003\125
+\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164
+\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151
+\154
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\044\264\021\323\066\045\045\147
+\311\211
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\242\060\202\003\212\240\003\002\001\002\002\020\104
+\276\014\213\120\000\044\264\021\323\066\045\045\147\311\211\060
+\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201
+\256\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\066\060\064\006\003\125\004\003
+\023\055\125\124\116\055\125\123\105\122\106\151\162\163\164\055
+\103\154\151\145\156\164\040\101\165\164\150\145\156\164\151\143
+\141\164\151\157\156\040\141\156\144\040\105\155\141\151\154\060
+\036\027\015\071\071\060\067\060\071\061\067\062\070\065\060\132
+\027\015\061\071\060\067\060\071\061\067\063\066\065\070\132\060
+\201\256\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\066\060\064\006\003\125\004
+\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163\164
+\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164\151
+\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151\154
+\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\262\071\205\244\362\175\253\101\073\142\106\067\256\315\301
+\140\165\274\071\145\371\112\032\107\242\271\314\110\314\152\230
+\325\115\065\031\271\244\102\345\316\111\342\212\057\036\174\322
+\061\007\307\116\264\203\144\235\056\051\325\242\144\304\205\275
+\205\121\065\171\244\116\150\220\173\034\172\244\222\250\027\362
+\230\025\362\223\314\311\244\062\225\273\014\117\060\275\230\240
+\013\213\345\156\033\242\106\372\170\274\242\157\253\131\136\245
+\057\317\312\332\155\252\057\353\254\241\263\152\252\267\056\147
+\065\213\171\341\036\151\210\342\346\106\315\240\245\352\276\013
+\316\166\072\172\016\233\352\374\332\047\133\075\163\037\042\346
+\110\141\306\114\363\151\261\250\056\033\266\324\061\040\054\274
+\202\212\216\244\016\245\327\211\103\374\026\132\257\035\161\327
+\021\131\332\272\207\015\257\372\363\341\302\360\244\305\147\214
+\326\326\124\072\336\012\244\272\003\167\263\145\310\375\036\323
+\164\142\252\030\312\150\223\036\241\205\176\365\107\145\313\370
+\115\127\050\164\322\064\377\060\266\356\366\142\060\024\214\054
+\353\002\003\001\000\001\243\201\271\060\201\266\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\211\202\147\175\304\235\046\160\000\113\264
+\120\110\174\336\075\256\004\156\175\060\130\006\003\125\035\037
+\004\121\060\117\060\115\240\113\240\111\206\107\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\103\154\151\145\156\164\101\165\164\150\145\156\164
+\151\143\141\164\151\157\156\141\156\144\105\155\141\151\154\056
+\143\162\154\060\035\006\003\125\035\045\004\026\060\024\006\010
+\053\006\001\005\005\007\003\002\006\010\053\006\001\005\005\007
+\003\004\060\015\006\011\052\206\110\206\367\015\001\001\005\005
+\000\003\202\001\001\000\261\155\141\135\246\032\177\174\253\112
+\344\060\374\123\157\045\044\306\312\355\342\061\134\053\016\356
+\356\141\125\157\004\076\317\071\336\305\033\111\224\344\353\040
+\114\264\346\236\120\056\162\331\215\365\252\243\263\112\332\126
+\034\140\227\200\334\202\242\255\112\275\212\053\377\013\011\264
+\306\327\040\004\105\344\315\200\001\272\272\053\156\316\252\327
+\222\376\344\257\353\364\046\035\026\052\177\154\060\225\067\057
+\063\022\254\177\335\307\321\021\214\121\230\262\320\243\221\320
+\255\366\237\236\203\223\036\035\102\270\106\257\153\146\360\233
+\177\352\343\003\002\345\002\121\301\252\325\065\235\162\100\003
+\211\272\061\035\305\020\150\122\236\337\242\205\305\134\010\246
+\170\346\123\117\261\350\267\323\024\236\223\246\303\144\343\254
+\176\161\315\274\237\351\003\033\314\373\351\254\061\301\257\174
+\025\164\002\231\303\262\107\246\302\062\141\327\307\157\110\044
+\121\047\241\325\207\125\362\173\217\230\075\026\236\356\165\266
+\370\320\216\362\363\306\256\050\133\247\360\363\066\027\374\303
+\005\323\312\003\112\124
+END
+
+# Trust for Certificate "UTN USERFirst Email Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN USERFirst Email Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\261\162\261\245\155\225\371\037\345\002\207\341\115\067\352\152
+\104\143\166\212
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\327\064\075\357\035\047\011\050\341\061\002\133\023\053\335\367
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\256\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\066\060\064\006\003\125
+\004\003\023\055\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\103\154\151\145\156\164\040\101\165\164\150\145\156\164
+\151\143\141\164\151\157\156\040\141\156\144\040\105\155\141\151
+\154
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\044\264\021\323\066\045\045\147
+\311\211
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_VALID
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_VALID
+
+#
+# Certificate "UTN USERFirst Hardware Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN USERFirst Hardware Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\201\227\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\037\060\035\006\003\125
+\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\110\141\162\144\167\141\162\145
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\227\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\037\060\035\006\003\125
+\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\110\141\162\144\167\141\162\145
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\044\264\021\323\066\052\376\145
+\012\375
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\164\060\202\003\134\240\003\002\001\002\002\020\104
+\276\014\213\120\000\044\264\021\323\066\052\376\145\012\375\060
+\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201
+\227\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\037\060\035\006\003\125\004\003
+\023\026\125\124\116\055\125\123\105\122\106\151\162\163\164\055
+\110\141\162\144\167\141\162\145\060\036\027\015\071\071\060\067
+\060\071\061\070\061\060\064\062\132\027\015\061\071\060\067\060
+\071\061\070\061\071\062\062\132\060\201\227\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\037\060\035\006\003\125\004\003\023\026\125\124\116\055
+\125\123\105\122\106\151\162\163\164\055\110\141\162\144\167\141
+\162\145\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\261\367\303\070\077\264\250\177\317\071\202\121\147
+\320\155\237\322\377\130\363\347\237\053\354\015\211\124\231\271
+\070\231\026\367\340\041\171\110\302\273\141\164\022\226\035\074
+\152\162\325\074\020\147\072\071\355\053\023\315\146\353\225\011
+\063\244\154\227\261\350\306\354\301\165\171\234\106\136\215\253
+\320\152\375\271\052\125\027\020\124\263\031\360\232\366\361\261
+\135\266\247\155\373\340\161\027\153\242\210\373\000\337\376\032
+\061\167\014\232\001\172\261\062\343\053\001\007\070\156\303\245
+\136\043\274\105\233\173\120\301\311\060\217\333\345\053\172\323
+\133\373\063\100\036\240\325\230\027\274\213\207\303\211\323\135
+\240\216\262\252\252\366\216\151\210\006\305\372\211\041\363\010
+\235\151\056\011\063\233\051\015\106\017\214\314\111\064\260\151
+\121\275\371\006\315\150\255\146\114\274\076\254\141\275\012\210
+\016\310\337\075\356\174\004\114\235\012\136\153\221\326\356\307
+\355\050\215\253\115\207\211\163\320\156\244\320\036\026\213\024
+\341\166\104\003\177\143\254\344\315\111\234\305\222\364\253\062
+\241\110\133\002\003\001\000\001\243\201\271\060\201\266\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\241\162\137\046\033\050\230\103\225
+\135\007\067\325\205\226\235\113\322\303\105\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\125\124\116\055\125\123\105\122\106
+\151\162\163\164\055\110\141\162\144\167\141\162\145\056\143\162
+\154\060\061\006\003\125\035\045\004\052\060\050\006\010\053\006
+\001\005\005\007\003\001\006\010\053\006\001\005\005\007\003\005
+\006\010\053\006\001\005\005\007\003\006\006\010\053\006\001\005
+\005\007\003\007\060\015\006\011\052\206\110\206\367\015\001\001
+\005\005\000\003\202\001\001\000\107\031\017\336\164\306\231\227
+\257\374\255\050\136\165\216\353\055\147\356\116\173\053\327\014
+\377\366\336\313\125\242\012\341\114\124\145\223\140\153\237\022
+\234\255\136\203\054\353\132\256\300\344\055\364\000\143\035\270
+\300\154\362\317\111\273\115\223\157\006\246\012\042\262\111\142
+\010\116\377\310\310\024\262\210\026\135\347\001\344\022\225\345
+\105\064\263\213\151\275\317\264\205\217\165\121\236\175\072\070
+\072\024\110\022\306\373\247\073\032\215\015\202\100\007\350\004
+\010\220\241\211\313\031\120\337\312\034\001\274\035\004\031\173
+\020\166\227\073\356\220\220\312\304\016\037\026\156\165\357\063
+\370\323\157\133\036\226\343\340\164\167\164\173\212\242\156\055
+\335\166\326\071\060\202\360\253\234\122\362\052\307\257\111\136
+\176\307\150\345\202\201\310\152\047\371\047\210\052\325\130\120
+\225\037\360\073\034\127\273\175\024\071\142\053\232\311\224\222
+\052\243\042\014\377\211\046\175\137\043\053\107\327\025\035\251
+\152\236\121\015\052\121\236\201\371\324\073\136\160\022\177\020
+\062\234\036\273\235\370\146\250
+END
+
+# Trust for Certificate "UTN USERFirst Hardware Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN USERFirst Hardware Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\004\203\355\063\231\254\066\010\005\207\042\355\274\136\106\000
+\343\276\371\327
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\114\126\101\345\015\273\053\350\312\243\355\030\010\255\103\071
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\227\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\037\060\035\006\003\125
+\004\003\023\026\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\110\141\162\144\167\141\162\145
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\044\264\021\323\066\052\376\145
+\012\375
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_VALID
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_VALID
+
+#
+# Certificate "UTN USERFirst Object Root CA"
+#
+CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN USERFirst Object Root CA"
+CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
+CKA_SUBJECT MULTILINE_OCTAL
+\060\201\225\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\035\060\033\006\003\125
+\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\117\142\152\145\143\164
+END
+CKA_ID UTF8 "0"
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\225\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\035\060\033\006\003\125
+\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\117\142\152\145\143\164
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\044\264\021\323\066\055\340\263
+\137\033
+END
+CKA_VALUE MULTILINE_OCTAL
+\060\202\004\146\060\202\003\116\240\003\002\001\002\002\020\104
+\276\014\213\120\000\044\264\021\323\066\055\340\263\137\033\060
+\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201
+\225\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\035\060\033\006\003\125\004\003
+\023\024\125\124\116\055\125\123\105\122\106\151\162\163\164\055
+\117\142\152\145\143\164\060\036\027\015\071\071\060\067\060\071
+\061\070\063\061\062\060\132\027\015\061\071\060\067\060\071\061
+\070\064\060\063\066\132\060\201\225\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
+\035\060\033\006\003\125\004\003\023\024\125\124\116\055\125\123
+\105\122\106\151\162\163\164\055\117\142\152\145\143\164\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\316
+\252\201\077\243\243\141\170\252\061\000\125\225\021\236\047\017
+\037\034\337\072\233\202\150\060\300\112\141\035\361\057\016\372
+\276\171\367\245\043\357\125\121\226\204\315\333\343\271\156\076
+\061\330\012\040\147\307\364\331\277\224\353\107\004\076\002\316
+\052\242\135\207\004\011\366\060\235\030\212\227\262\252\034\374
+\101\322\241\066\313\373\075\221\272\347\331\160\065\372\344\347
+\220\303\233\243\233\323\074\365\022\231\167\261\267\011\340\150
+\346\034\270\363\224\143\210\152\152\376\013\166\311\276\364\042
+\344\147\271\253\032\136\167\301\205\007\335\015\154\277\356\006
+\307\167\152\101\236\247\017\327\373\356\224\027\267\374\205\276
+\244\253\304\034\061\335\327\266\321\344\360\357\337\026\217\262
+\122\223\327\241\324\211\241\007\056\277\341\001\022\102\036\032
+\341\330\225\064\333\144\171\050\377\272\056\021\302\345\350\133
+\222\110\373\107\013\302\154\332\255\062\203\101\363\245\345\101
+\160\375\145\220\155\372\372\121\304\371\275\226\053\031\004\054
+\323\155\247\334\360\177\157\203\145\342\152\253\207\206\165\002
+\003\001\000\001\243\201\257\060\201\254\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\332\355\144\164\024\234\024\074\253\335\231\251\275
+\133\050\115\213\074\311\330\060\102\006\003\125\035\037\004\073
+\060\071\060\067\240\065\240\063\206\061\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\117\142\152\145\143\164\056\143\162\154\060\051\006\003\125
+\035\045\004\042\060\040\006\010\053\006\001\005\005\007\003\003
+\006\010\053\006\001\005\005\007\003\010\006\012\053\006\001\004
+\001\202\067\012\003\004\060\015\006\011\052\206\110\206\367\015
+\001\001\005\005\000\003\202\001\001\000\010\037\122\261\067\104
+\170\333\375\316\271\332\225\226\230\252\125\144\200\265\132\100
+\335\041\245\305\301\363\137\054\114\310\107\132\151\352\350\360
+\065\065\364\320\045\363\310\246\244\207\112\275\033\261\163\010
+\275\324\303\312\266\065\273\131\206\167\061\315\247\200\024\256
+\023\357\374\261\110\371\153\045\045\055\121\266\054\155\105\301
+\230\310\212\126\135\076\356\103\116\076\153\047\216\320\072\113
+\205\013\137\323\355\152\247\165\313\321\132\207\057\071\165\023
+\132\162\260\002\201\237\276\360\017\204\124\040\142\154\151\324
+\341\115\306\015\231\103\001\015\022\226\214\170\235\277\120\242
+\261\104\252\152\317\027\172\317\157\017\324\370\044\125\137\360
+\064\026\111\146\076\120\106\311\143\161\070\061\142\270\142\271
+\363\123\255\154\265\053\242\022\252\031\117\011\332\136\347\223
+\306\216\024\010\376\360\060\200\030\240\206\205\115\310\175\327
+\213\003\376\156\325\367\235\026\254\222\054\240\043\345\234\221
+\122\037\224\337\027\224\163\303\263\301\301\161\005\040\000\170
+\275\023\122\035\250\076\315\000\037\310
+END
+
+# Trust for Certificate "UTN USERFirst Object Root CA"
+CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
+CKA_TOKEN CK_BBOOL CK_TRUE
+CKA_PRIVATE CK_BBOOL CK_FALSE
+CKA_MODIFIABLE CK_BBOOL CK_FALSE
+CKA_LABEL UTF8 "UTN USERFirst Object Root CA"
+CKA_CERT_SHA1_HASH MULTILINE_OCTAL
+\341\055\373\113\101\327\331\303\053\060\121\113\254\035\201\330
+\070\136\055\106
+END
+CKA_CERT_MD5_HASH MULTILINE_OCTAL
+\247\362\344\026\006\101\021\120\060\153\234\343\264\234\260\311
+END
+CKA_ISSUER MULTILINE_OCTAL
+\060\201\225\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\035\060\033\006\003\125
+\004\003\023\024\125\124\116\055\125\123\105\122\106\151\162\163
+\164\055\117\142\152\145\143\164
+END
+CKA_SERIAL_NUMBER MULTILINE_OCTAL
+\002\020\104\276\014\213\120\000\044\264\021\323\066\055\340\263
+\137\033
+END
+CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_VALID
+CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_VALID
+CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
diff --git a/security/nss/lib/ckfw/builtins/ckbiver.c b/security/nss/lib/ckfw/builtins/ckbiver.c
new file mode 100644
index 000000000..f9b1a87ce
--- /dev/null
+++ b/security/nss/lib/ckfw/builtins/ckbiver.c
@@ -0,0 +1,58 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is the Netscape security libraries.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2004
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/* Library identity and versioning */
+
+#include "nssckbi.h"
+
+#if defined(DEBUG)
+#define _DEBUG_STRING " (debug)"
+#else
+#define _DEBUG_STRING ""
+#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.
+ */
+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__;
diff --git a/security/nss/lib/ckfw/builtins/config.mk b/security/nss/lib/ckfw/builtins/config.mk
index f4d64b0f0..e816baaa2 100644
--- a/security/nss/lib/ckfw/builtins/config.mk
+++ b/security/nss/lib/ckfw/builtins/config.mk
@@ -42,8 +42,10 @@ LIBRARY =
IMPORT_LIBRARY =
PROGRAM =
-ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
+ifeq (,$(filter-out WIN%,$(OS_TARGET)))
SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX)
+ RES = $(OBJDIR)/$(LIBRARY_NAME).res
+ RESNAME = $(LIBRARY_NAME).rc
endif
ifdef BUILD_IDG
@@ -56,3 +58,10 @@ endif
ifeq ($(OS_TARGET),Darwin)
DSO_LDOPTS = -bundle
endif
+
+ifeq ($(OS_TARGET),SunOS)
+# The -R '$ORIGIN' linker option instructs this library to search for its
+# dependencies in the same directory where it resides.
+MKSHLIB += -R '$$ORIGIN'
+endif
+
diff --git a/security/nss/lib/ckfw/builtins/manifest.mn b/security/nss/lib/ckfw/builtins/manifest.mn
index 86a794fbd..5a3813fd4 100644
--- a/security/nss/lib/ckfw/builtins/manifest.mn
+++ b/security/nss/lib/ckfw/builtins/manifest.mn
@@ -51,6 +51,7 @@ CSRCS = \
bslot.c \
btoken.c \
certdata.c \
+ ckbiver.c \
$(NULL)
REQUIRES = nspr
diff --git a/security/nss/lib/ckfw/builtins/nssckbi.h b/security/nss/lib/ckfw/builtins/nssckbi.h
index 1354854aa..03c596ea6 100644
--- a/security/nss/lib/ckfw/builtins/nssckbi.h
+++ b/security/nss/lib/ckfw/builtins/nssckbi.h
@@ -41,22 +41,44 @@
* this release on NSS. To determine the version numbers of the builtin
* module you are using, use the appropriate PKCS #11 calls.
*
- * These version number details changes to the PKCS #11 interface. They map
+ * These version numbers detail changes to the PKCS #11 interface. They map
* to the PKCS #11 spec versions.
*/
#define NSS_BUILTINS_CRYPTOKI_VERSION_MAJOR 2
#define NSS_BUILTINS_CRYPTOKI_VERSION_MINOR 1
-/* These are the correct verion numbers that details the changes
- * to the list of trusted certificates. */
+/* These version numbers detail the changes
+ * to the list of trusted certificates.
+ *
+ * The NSS_BUILTINS_LIBRARY_VERSION_MINOR macro needs to be bumped
+ * for each NSS minor release AND whenever we change the list of
+ * trusted certificates. 10 minor versions are allocated for each
+ * NSS 3.x branch as follows, allowing us to change the list of
+ * trusted certificates up to 9 times on each branch.
+ * - NSS 3.5 branch: 3-9
+ * - NSS 3.6 branch: 10-19
+ * - NSS 3.7 branch: 20-29
+ * - NSS 3.8 branch: 30-39
+ * - NSS 3.9 branch: 40-49
+ * - NSS 3.10 branch: 50-59
+ * ...
+ * - NSS 3.14 branch: 90-99
+ * ...
+ * - NSS 3.30 branch: 250-255
+ *
+ * NSS_BUILTINS_LIBRARY_VERSION_MINOR is a CK_BYTE. It's not clear
+ * whether we may use its full range (0-255) or only 0-99 because
+ * of the comment in the CK_VERSION type definition.
+ */
#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 1
-#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 40
+#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 42
+#define NSS_BUILTINS_LIBRARY_VERSION "1.42"
-/* These verion numbers that details the semantic changes to the ckfw engine. */
+/* These version numbers detail the semantic changes to the ckfw engine. */
#define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
#define NSS_BUILTINS_HARDWARE_VERSION_MINOR 0
-/* These verion numbers that details the semantic changes to ckbi itself
+/* These version numbers detail the semantic changes to ckbi itself
* (new PKCS #11 objects), etc. */
#define NSS_BUILTINS_FIRMWARE_VERSION_MAJOR 1
#define NSS_BUILTINS_FIRMWARE_VERSION_MINOR 0
diff --git a/security/nss/lib/ckfw/builtins/nssckbi.rc b/security/nss/lib/ckfw/builtins/nssckbi.rc
new file mode 100644
index 000000000..1ff4fa9c1
--- /dev/null
+++ b/security/nss/lib/ckfw/builtins/nssckbi.rc
@@ -0,0 +1,97 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is the Netscape security libraries.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 2004
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#include "nssckbi.h"
+#include <winver.h>
+
+#define MY_LIBNAME "nssckbi"
+#define MY_FILEDESCRIPTION "NSS Builtin Trusted Root CAs"
+
+#ifdef _DEBUG
+#define MY_DEBUG_STR " (debug)"
+#define MY_FILEFLAGS_1 VS_FF_DEBUG
+#else
+#define MY_DEBUG_STR ""
+#define MY_FILEFLAGS_1 0x0L
+#endif
+#if NSS_BETA
+#define MY_FILEFLAGS_2 MY_FILEFLAGS_1|VS_FF_PRERELEASE
+#else
+#define MY_FILEFLAGS_2 MY_FILEFLAGS_1
+#endif
+
+#ifdef WINNT
+#define MY_FILEOS VOS_NT_WINDOWS32
+#else
+#define MY_FILEOS VOS__WINDOWS32
+#endif
+
+#define MY_INTERNAL_NAME MY_LIBNAME
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version-information resource
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION NSS_BUILTINS_LIBRARY_VERSION_MAJOR,NSS_BUILTINS_LIBRARY_VERSION_MINOR,0,0
+ PRODUCTVERSION NSS_BUILTINS_LIBRARY_VERSION_MAJOR,NSS_BUILTINS_LIBRARY_VERSION_MINOR,0,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+ FILEFLAGS MY_FILEFLAGS_2
+ FILEOS MY_FILEOS
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0x0L // not used
+
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904B0" // Lang=US English, CharSet=Unicode
+ BEGIN
+ VALUE "CompanyName", "Netscape Communications Corporation\0"
+ VALUE "FileDescription", MY_FILEDESCRIPTION MY_DEBUG_STR "\0"
+ VALUE "FileVersion", NSS_BUILTINS_LIBRARY_VERSION "\0"
+ VALUE "InternalName", MY_INTERNAL_NAME "\0"
+ VALUE "LegalCopyright", "Copyright \251 1994-2001 Netscape Communications Corporation\0"
+ VALUE "OriginalFilename", MY_INTERNAL_NAME ".dll\0"
+ VALUE "ProductName", "Network Security Services\0"
+ VALUE "ProductVersion", NSS_BUILTINS_LIBRARY_VERSION "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
diff --git a/security/nss/lib/ckfw/ckfw.h b/security/nss/lib/ckfw/ckfw.h
index 2e83f8c35..719b6fa4a 100644
--- a/security/nss/lib/ckfw/ckfw.h
+++ b/security/nss/lib/ckfw/ckfw.h
@@ -107,6 +107,7 @@ NSS_EXTERN NSSCKFWInstance *
nssCKFWInstance_Create
(
CK_C_INITIALIZE_ARGS_PTR pInitArgs,
+ CryptokiLockingState LockingState,
NSSCKMDInstance *mdInstance,
CK_RV *pError
);
@@ -1821,6 +1822,7 @@ NSS_EXTERN NSSCKFWMutex *
nssCKFWMutex_Create
(
CK_C_INITIALIZE_ARGS_PTR pInitArgs,
+ CryptokiLockingState LockingState,
NSSArena *arena,
CK_RV *pError
);
diff --git a/security/nss/lib/ckfw/ckfwm.h b/security/nss/lib/ckfw/ckfwm.h
index 615efe2b6..8940cdc96 100644
--- a/security/nss/lib/ckfw/ckfwm.h
+++ b/security/nss/lib/ckfw/ckfwm.h
@@ -158,9 +158,10 @@ nssCKFWHash_Iterate
void *closure
);
-NSS_EXTERN void
+NSS_EXTERN CK_RV
nssSetLockArgs(
- CK_C_INITIALIZE_ARGS_PTR pInitArgs
+ CK_C_INITIALIZE_ARGS_PTR pInitArgs,
+ CryptokiLockingState* returned
);
diff --git a/security/nss/lib/ckfw/instance.c b/security/nss/lib/ckfw/instance.c
index 103726573..93011b30d 100644
--- a/security/nss/lib/ckfw/instance.c
+++ b/security/nss/lib/ckfw/instance.c
@@ -97,6 +97,8 @@ struct NSSCKFWInstanceStr {
NSSArena *arena;
NSSCKMDInstance *mdInstance;
CK_C_INITIALIZE_ARGS_PTR pInitArgs;
+ CK_C_INITIALIZE_ARGS initArgs;
+ CryptokiLockingState LockingState;
CK_BBOOL mayCreatePthreads;
NSSUTF8 *configurationData;
CK_ULONG nSlots;
@@ -188,6 +190,7 @@ NSS_IMPLEMENT NSSCKFWInstance *
nssCKFWInstance_Create
(
CK_C_INITIALIZE_ARGS_PTR pInitArgs,
+ CryptokiLockingState LockingState,
NSSCKMDInstance *mdInstance,
CK_RV *pError
)
@@ -221,9 +224,11 @@ nssCKFWInstance_Create
fwInstance->arena = arena;
fwInstance->mdInstance = mdInstance;
- fwInstance->pInitArgs = pInitArgs;
+ fwInstance->LockingState = LockingState;
if( (CK_C_INITIALIZE_ARGS_PTR)NULL != pInitArgs ) {
+ fwInstance->initArgs = *pInitArgs;
+ fwInstance->pInitArgs = &fwInstance->initArgs;
if( pInitArgs->flags & CKF_LIBRARY_CANT_CREATE_OS_THREADS ) {
fwInstance->mayCreatePthreads = CK_FALSE;
} else {
@@ -234,7 +239,8 @@ nssCKFWInstance_Create
fwInstance->mayCreatePthreads = CK_TRUE;
}
- fwInstance->mutex = nssCKFWMutex_Create(pInitArgs, arena, pError);
+ fwInstance->mutex = nssCKFWMutex_Create(pInitArgs, LockingState, arena,
+ pError);
if( (NSSCKFWMutex *)NULL == fwInstance->mutex ) {
if( CKR_OK == *pError ) {
*pError = CKR_GENERAL_ERROR;
@@ -358,7 +364,9 @@ nssCKFWInstance_Create
}
}
- (void)NSSArena_Destroy(arena);
+ if (arena) {
+ (void)NSSArena_Destroy(arena);
+ }
return (NSSCKFWInstance *)NULL;
}
@@ -499,7 +507,8 @@ nssCKFWInstance_CreateMutex
}
#endif /* NSSDEBUG */
- mutex = nssCKFWMutex_Create(fwInstance->pInitArgs, arena, pError);
+ mutex = nssCKFWMutex_Create(fwInstance->pInitArgs, fwInstance->LockingState,
+ arena, pError);
if( (NSSCKFWMutex *)NULL == mutex ) {
if( CKR_OK == *pError ) {
*pError = CKR_GENERAL_ERROR;
diff --git a/security/nss/lib/ckfw/mutex.c b/security/nss/lib/ckfw/mutex.c
index 789616683..15308fe5b 100644
--- a/security/nss/lib/ckfw/mutex.c
+++ b/security/nss/lib/ckfw/mutex.c
@@ -129,79 +129,40 @@ NSS_EXTERN NSSCKFWMutex *
nssCKFWMutex_Create
(
CK_C_INITIALIZE_ARGS_PTR pInitArgs,
+ CryptokiLockingState LockingState,
NSSArena *arena,
CK_RV *pError
)
{
NSSCKFWMutex *mutex;
- CK_ULONG count = (CK_ULONG)0;
- CK_BBOOL os_ok = CK_FALSE;
-
- if( (CK_C_INITIALIZE_ARGS_PTR)NULL != pInitArgs ) {
- if( (CK_CREATEMUTEX )NULL != pInitArgs->CreateMutex ) count++;
- if( (CK_DESTROYMUTEX)NULL != pInitArgs->DestroyMutex ) count++;
- if( (CK_LOCKMUTEX )NULL != pInitArgs->LockMutex ) count++;
- if( (CK_UNLOCKMUTEX )NULL != pInitArgs->UnlockMutex ) count++;
- os_ok = (pInitArgs->flags & CKF_OS_LOCKING_OK) ? CK_TRUE : CK_FALSE;
-
- if( (0 != count) && (4 != count) ) {
- *pError = CKR_ARGUMENTS_BAD;
- return (NSSCKFWMutex *)NULL;
- }
- }
-
- if( (0 == count) && (CK_TRUE == os_ok) ) {
- /*
- * This is case #2 in the description of C_Initialize:
- * The library will be called in a multithreaded way, but
- * no routines were specified: os locking calls should be
- * used. Unfortunately, this can be hard.. like, I think
- * I may have to dynamically look up the entry points in
- * the instance of NSPR already going in the application.
- *
- * I know that *we* always specify routines, so this only
- * comes up if someone is using NSS to create their own
- * PCKS#11 modules for other products. Oh, heck, I'll
- * worry about this then.
- */
- *pError = CKR_CANT_LOCK;
- return (NSSCKFWMutex *)NULL;
- }
-
+
mutex = nss_ZNEW(arena, NSSCKFWMutex);
if( (NSSCKFWMutex *)NULL == mutex ) {
*pError = CKR_HOST_MEMORY;
return (NSSCKFWMutex *)NULL;
}
- if( 0 == count ) {
- /*
- * With the above test out of the way, we know this is case
- * #1 in the description of C_Initialize: this library will
- * not be called in a multithreaded way. I'll just return
- * an object with noop calls.
- */
-
- mutex->Destroy = (CK_DESTROYMUTEX)mutex_noop;
- mutex->Lock = (CK_LOCKMUTEX )mutex_noop;
- mutex->Unlock = (CK_UNLOCKMUTEX )mutex_noop;
- } else {
- /*
- * We know that we're in either case #3 or #4 in the description
- * of C_Initialize. Case #3 says we should use the specified
- * functions, case #4 cays we can use either the specified ones
- * or the OS ones. I'll use the specified ones.
- */
-
- mutex->Destroy = pInitArgs->DestroyMutex;
- mutex->Lock = pInitArgs->LockMutex;
- mutex->Unlock = pInitArgs->UnlockMutex;
+ switch (LockingState)
+ {
+ default:
+ case SingleThreaded:
+ *pError = CKR_OK;
+ mutex->Destroy = (CK_DESTROYMUTEX)mutex_noop;
+ mutex->Lock = (CK_LOCKMUTEX )mutex_noop;
+ mutex->Unlock = (CK_UNLOCKMUTEX )mutex_noop;
+ break;
+
+ case MultiThreaded:
+ *pError = pInitArgs->CreateMutex(&mutex->etc);
+ mutex->Destroy = pInitArgs->DestroyMutex;
+ mutex->Lock = pInitArgs->LockMutex;
+ mutex->Unlock = pInitArgs->UnlockMutex;
+ break;
+ }
- *pError = pInitArgs->CreateMutex(&mutex->etc);
- if( CKR_OK != *pError ) {
- (void)nss_ZFreeIf(mutex);
- return (NSSCKFWMutex *)NULL;
- }
+ if( CKR_OK != *pError ) {
+ (void)nss_ZFreeIf(mutex);
+ return (NSSCKFWMutex *)NULL;
}
#ifdef DEBUG
@@ -343,3 +304,4 @@ NSSCKFWMutex_Unlock
return nssCKFWMutex_Unlock(mutex);
}
+
diff --git a/security/nss/lib/ckfw/nsprstub.c b/security/nss/lib/ckfw/nsprstub.c
index 0801023d4..68549357f 100644
--- a/security/nss/lib/ckfw/nsprstub.c
+++ b/security/nss/lib/ckfw/nsprstub.c
@@ -345,15 +345,76 @@ PR_IMPLEMENT(PRInt32) PR_AtomicSet(PRInt32 *val) { return ++(*val); }
PR_IMPLEMENT(PRInt32) PR_AtomicIncrement(PRInt32 *val) { return ++(*val); }
#endif /* ! (WIN32 && GCC) */
-CK_C_INITIALIZE_ARGS_PTR nssstub_initArgs = NULL;
-NSSArena *nssstub_arena = NULL;
-PR_IMPLEMENT(void)
-nssSetLockArgs(CK_C_INITIALIZE_ARGS_PTR pInitArgs)
+static CK_C_INITIALIZE_ARGS_PTR nssstub_pInitArgs = NULL;
+static CK_C_INITIALIZE_ARGS nssstub_initArgs;
+static NSSArena *nssstub_arena = NULL;
+static CryptokiLockingState nssstub_LockingState = SingleThreaded;
+
+PR_IMPLEMENT(CK_RV)
+nssSetLockArgs(CK_C_INITIALIZE_ARGS_PTR pInitArgs, CryptokiLockingState* returned)
{
- if (nssstub_initArgs == NULL) {
- nssstub_initArgs = pInitArgs;
+ CK_ULONG count = (CK_ULONG)0;
+ CK_BBOOL os_ok = CK_FALSE;
+ CK_RV rv = CKR_OK;
+ if (nssstub_pInitArgs == NULL) {
+ if (pInitArgs != NULL) {
+ nssstub_initArgs = *pInitArgs;
+ nssstub_pInitArgs = &nssstub_initArgs;
+ if( (CK_CREATEMUTEX )NULL != pInitArgs->CreateMutex ) count++;
+ if( (CK_DESTROYMUTEX)NULL != pInitArgs->DestroyMutex ) count++;
+ if( (CK_LOCKMUTEX )NULL != pInitArgs->LockMutex ) count++;
+ if( (CK_UNLOCKMUTEX )NULL != pInitArgs->UnlockMutex ) count++;
+ os_ok = (pInitArgs->flags & CKF_OS_LOCKING_OK) ? CK_TRUE : CK_FALSE;
+
+ if( (0 != count) && (4 != count) ) {
+ rv = CKR_ARGUMENTS_BAD;
+ goto loser;
+ }
+ } else {
+ nssstub_pInitArgs = pInitArgs;
+ }
/* nssstub_arena = NSSArena_Create(); */
}
+
+ if( (0 == count) && (CK_TRUE == os_ok) ) {
+ /*
+ * This is case #2 in the description of C_Initialize:
+ * The library will be called in a multithreaded way, but
+ * no routines were specified: os locking calls should be
+ * used. Unfortunately, this can be hard.. like, I think
+ * I may have to dynamically look up the entry points in
+ * the instance of NSPR already going in the application.
+ *
+ * I know that *we* always specify routines, so this only
+ * comes up if someone is using NSS to create their own
+ * PCKS#11 modules for other products. Oh, heck, I'll
+ * worry about this then.
+ */
+ rv = CKR_CANT_LOCK;
+ goto loser;
+ }
+
+ if( 0 == count ) {
+ /*
+ * With the above test out of the way, we know this is case
+ * #1 in the description of C_Initialize: this library will
+ * not be called in a multithreaded way.
+ */
+
+ nssstub_LockingState = SingleThreaded;
+ } else {
+ /*
+ * We know that we're in either case #3 or #4 in the description
+ * of C_Initialize. Case #3 says we should use the specified
+ * functions, case #4 cays we can use either the specified ones
+ * or the OS ones. I'll use the specified ones.
+ */
+ nssstub_LockingState = MultiThreaded;
+ }
+
+ loser:
+ *returned = nssstub_LockingState;
+ return rv;
}
/*
@@ -369,7 +430,7 @@ PR_NewLock(void) {
NSSCKFWMutex *mlock = NULL;
CK_RV error;
- mlock = nssCKFWMutex_Create(nssstub_initArgs,nssstub_arena,&error);
+ mlock = nssCKFWMutex_Create(nssstub_pInitArgs,nssstub_LockingState,nssstub_arena,&error);
lock = (PRLock *)mlock;
/* if we don't have a lock, nssCKFWMutex can deal with things */
diff --git a/security/nss/lib/ckfw/nssckfwt.h b/security/nss/lib/ckfw/nssckfwt.h
index 13be0f325..f8855be0e 100644
--- a/security/nss/lib/ckfw/nssckfwt.h
+++ b/security/nss/lib/ckfw/nssckfwt.h
@@ -108,4 +108,9 @@ typedef struct NSSCKFWFindObjectsStr NSSCKFWFindObjects;
struct NSSCKFWMutexStr;
typedef struct NSSCKFWMutexStr NSSCKFWMutex;
+typedef enum {
+ SingleThreaded,
+ MultiThreaded
+} CryptokiLockingState ;
+
#endif /* NSSCKFWT_H */
diff --git a/security/nss/lib/ckfw/wrap.c b/security/nss/lib/ckfw/wrap.c
index 08ad62baf..caba8c45d 100644
--- a/security/nss/lib/ckfw/wrap.c
+++ b/security/nss/lib/ckfw/wrap.c
@@ -135,6 +135,7 @@ NSSCKFWC_Initialize
)
{
CK_RV error = CKR_OK;
+ CryptokiLockingState locking_state;
if( (NSSCKFWInstance **)NULL == pFwInstance ) {
error = CKR_GENERAL_ERROR;
@@ -154,9 +155,12 @@ NSSCKFWC_Initialize
/* remember the locking args for those times we need to get a lock in code
* outside the framework.
*/
- nssSetLockArgs(pInitArgs);
+ error = nssSetLockArgs(pInitArgs, &locking_state);
+ if (CKR_OK != error) {
+ goto loser;
+ }
- *pFwInstance = nssCKFWInstance_Create(pInitArgs, mdInstance, &error);
+ *pFwInstance = nssCKFWInstance_Create(pInitArgs, locking_state, mdInstance, &error);
if( (NSSCKFWInstance *)NULL == *pFwInstance ) {
goto loser;
}
diff --git a/security/nss/lib/cryptohi/seckey.c b/security/nss/lib/cryptohi/seckey.c
index d1b3f6a05..b9cebc80a 100644
--- a/security/nss/lib/cryptohi/seckey.c
+++ b/security/nss/lib/cryptohi/seckey.c
@@ -514,10 +514,12 @@ seckey_UpdateCertPQGChain(CERTCertificate * subjectCert, int count)
(tag != SEC_OID_BOGUS_DSA_SIGNATURE_WITH_SHA1_DIGEST) &&
(tag != SEC_OID_SDN702_DSA_SIGNATURE) &&
(tag != SEC_OID_ANSIX962_EC_PUBLIC_KEY) ) {
- return SECFailure;
+ rv = SECFailure;
+ goto loser;
}
} else {
- return SECFailure; /* return failure if oid is NULL */
+ rv = SECFailure; /* return failure if oid is NULL */
+ goto loser;
}
@@ -526,7 +528,10 @@ seckey_UpdateCertPQGChain(CERTCertificate * subjectCert, int count)
* pqg parameters with a recursive call to this same function. */
rv = seckey_UpdateCertPQGChain(issuerCert, count);
- if (rv != SECSuccess) return rv;
+ if (rv != SECSuccess) {
+ rv = SECFailure;
+ goto loser;
+ }
/* ensure issuer has pqg parameters */
@@ -544,6 +549,10 @@ seckey_UpdateCertPQGChain(CERTCertificate * subjectCert, int count)
&issuerSpki->algorithm.parameters);
}
+loser:
+ if (issuerCert) {
+ CERT_DestroyCertificate(issuerCert);
+ }
return rv;
}
diff --git a/security/nss/lib/dev/devutil.c b/security/nss/lib/dev/devutil.c
index 48847a74b..f3ca9b3ed 100644
--- a/security/nss/lib/dev/devutil.c
+++ b/security/nss/lib/dev/devutil.c
@@ -582,6 +582,7 @@ clear_cache (
nssCryptokiObjectAndAttributes **oa;
PRUint32 objectType;
for (objectType = cachedCerts; objectType <= cachedCRLs; objectType++) {
+ cache->searchedObjectType[objectType] = PR_FALSE;
if (!cache->objects[objectType]) {
continue;
}
@@ -593,7 +594,6 @@ clear_cache (
}
nss_ZFreeIf(cache->objects[objectType]);
cache->objects[objectType] = NULL;
- cache->searchedObjectType[objectType] = PR_FALSE;
}
}
diff --git a/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile b/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile
index 44e50063b..cc57d8c5f 100644
--- a/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile
+++ b/security/nss/lib/fortcrypt/swfort/pkcs11/Makefile
@@ -63,7 +63,7 @@ EXTRA_LIBS = \
-lplc4 \
-lplds4 \
-lnspr4 \
- -lws2_32 \
+ -lwsock32 \
-lwinmm \
$(NULL)
else # ! NS_USE_GCC
diff --git a/security/nss/lib/freebl/Makefile b/security/nss/lib/freebl/Makefile
index eb6e33d78..55d8f3b49 100644
--- a/security/nss/lib/freebl/Makefile
+++ b/security/nss/lib/freebl/Makefile
@@ -179,26 +179,28 @@ endif
# Note: -xarch=v8 or v9 is now done in coreconf
ifeq ($(OS_TARGET),SunOS)
+
+# The -R '$ORIGIN' linker option instructs this library to search for its
+# dependencies in the same directory where it resides.
+MKSHLIB += -R '$$ORIGIN'
+
ifeq ($(CPU_ARCH),sparc)
ifndef NS_USE_GCC
ifdef USE_HYBRID
OS_CFLAGS += -xchip=ultra2
-endif
-endif
-ifeq (5.5.1,$(firstword $(sort 5.5.1 $(OS_RELEASE))))
- SYSV_SPARC = 1
-endif
-ifeq ($(SYSV_SPARC),1)
+endif # USE_HYBRID
+endif # NS_USE_GCC
+SYSV_SPARC=1
SOLARIS_AS = /usr/ccs/bin/as
ifdef NS_USE_GCC
ifdef GCC_USE_GNU_LD
MKSHLIB += -Wl,-Bsymbolic,-z,defs,-z,now,-z,text,--version-script,mapfile.Solaris
else
MKSHLIB += -Wl,-B,symbolic,-z,defs,-z,now,-z,text,-M,mapfile.Solaris
-endif
+endif # GCC_USE_GNU_LD
else
MKSHLIB += -B symbolic -z defs -z now -z text -M mapfile.Solaris
-endif
+endif # NS_USE_GCC
ifdef USE_PURE_32
# this builds for Sparc v8 pure 32-bit architecture
DEFINES += -DMP_USE_LONG_LONG_MULTIPLY -DMP_USE_UINT_DIGIT -DMP_NO_MP_WORD
@@ -222,20 +224,21 @@ else
DEFINES += -DMP_USE_UINT_DIGIT
SOLARIS_AS_FLAGS = -xarch=v8plusa -K PIC
# ASM_SUFFIX = .S
-endif
-endif
+endif # USE_64
+endif # USE_PURE_32
ifdef NSS_ENABLE_ECC
DEFINES += -DECL_USE_FP
ECL_SRCS += ecp_fp160.c ecp_fp192.c ecp_fp224.c ecp_fp.c
ECL_HDRS += ecp_fp.h
-endif
-endif
+endif # NSS_ENABLE_ECC
else
# Solaris x86
+ifneq ($(USE_64),1)
DEFINES += -D_X86_
DEFINES += -DMP_USE_UINT_DIGIT
DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_ASSEMBLY_SQUARE -DMP_ASSEMBLY_DIV_2DX1D
ASFILES = mpi_i86pc.s
+endif
ifdef NS_USE_GCC
LD = gcc
AS = gcc
diff --git a/security/nss/lib/freebl/blapit.h b/security/nss/lib/freebl/blapit.h
index 6ef924902..c16ec9db3 100644
--- a/security/nss/lib/freebl/blapit.h
+++ b/security/nss/lib/freebl/blapit.h
@@ -113,7 +113,7 @@
*/
#define RSA_MIN_MODULUS_BITS 128
#define DH_MIN_P_BITS 128
-#define DH_MAX_P_BITS 1024
+#define DH_MAX_P_BITS 2236
/*
* The FIPS 186 algorithm for generating primes P and Q allows only 9
diff --git a/security/nss/lib/freebl/sparcfix.c b/security/nss/lib/freebl/sparcfix.c
deleted file mode 100644
index 6ebc41cf0..000000000
--- a/security/nss/lib/freebl/sparcfix.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * The contents of this file are subject to the Mozilla Public
- * License Version 1.1 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS
- * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
- * implied. See the License for the specific language governing
- * rights and limitations under the License.
- *
- * The Original Code is a program to modify v8+vis objects for linking.
- *
- * The Initial Developer of the Original Code is Sun Microsystems Inc.
- * Portions created by Sun Microsystems Inc. are
- * Copyright (C) 1999-2000 Sun Microsystems Inc. All Rights Reserved.
- *
- * Contributor(s):
- * Netscape Communications Corporation
- *
- * Alternatively, the contents of this file may be used under the
- * terms of the GNU General Public License Version 2 or later (the
- * "GPL"), in which case the provisions of the GPL are applicable
- * instead of those above. If you wish to allow use of your
- * version of this file only under the terms of the GPL and not to
- * allow others to use your version of this file under the MPL,
- * indicate your decision by deleting the provisions above and
- * replace them with the notice and other provisions required by
- * the GPL. If you do not delete the provisions above, a recipient
- * may use your version of this file under either the MPL or the
- * GPL.
- * $Id$
- */
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#if defined(SOLARIS2_6) || defined(SOLARIS2_7) || defined(SOLARIS2_8)
-#define NEW_SYSV_SPARC 1
-#include <gelf.h>
-#endif
-#include <libelf.h>
-#include <sys/elf_SPARC.h>
-
-int
-main(int argc, char *argv[])
-{
- Elf * elf;
- off_t size;
- int fd;
- int count;
-#if defined(NEW_SYSV_SPARC)
- GElf_Ehdr hdr;
- GElf_Ehdr *ehdr = &hdr;
-#else
- Elf32_Ehdr *ehdr;
-#endif
-
-
- elf_version(EV_CURRENT);
- fd = open(argv[1], O_RDWR);
- if (fd < 0)
- goto loser;
- elf = elf_begin(fd, ELF_C_RDWR, (Elf *)0);
- if (!elf)
- goto loser;
-
-#if defined(NEW_SYSV_SPARC)
- gelf_getehdr(elf, ehdr);
-#else
- ehdr = elf32_getehdr(elf);
- if (!ehdr)
- goto loser;
-#endif
-
- if (ehdr->e_machine == EM_SPARC32PLUS) {
- ehdr->e_machine = EM_SPARC;
- ehdr->e_flags &= ~(EF_SPARC_32PLUS | EF_SPARC_SUN_US1);
-#if defined(NEW_SYSV_SPARC)
- count = gelf_update_ehdr(elf, ehdr);
- if (count < 0)
- goto loser;
-#endif
- size = elf_update(elf, ELF_C_WRITE);
- if (size < 0)
- goto loser;
- }
-
- do {
- count = elf_end(elf);
- } while (count > 0);
- return count;
-
-loser:
- return 1;
-}
diff --git a/security/nss/lib/freebl/unix_rand.c b/security/nss/lib/freebl/unix_rand.c
index cd6726530..661cd3e11 100644
--- a/security/nss/lib/freebl/unix_rand.c
+++ b/security/nss/lib/freebl/unix_rand.c
@@ -692,7 +692,7 @@ safe_popen(char *cmd)
if (p[1] != 1) dup2(p[1], 1);
if (p[1] != 2) dup2(p[1], 2);
close(0);
- for (fd = getdtablesize(); --fd > 2; close(fd))
+ for (fd = PR_MIN(65536,getdtablesize()); --fd > 2; close(fd))
;
/* clean up environment in the child process */
diff --git a/security/nss/lib/nss/config.mk b/security/nss/lib/nss/config.mk
index 4ca5480f3..0300f82bc 100644
--- a/security/nss/lib/nss/config.mk
+++ b/security/nss/lib/nss/config.mk
@@ -103,10 +103,19 @@ SHARED_LIBRARY_DIRS = \
ifeq ($(OS_TARGET),SunOS)
-# The -R '$ORIGIN' linker option instructs libnss3.so to search for its
-# dependencies (libsoftokn3.so) in the same directory where it resides.
+ifeq ($(BUILD_SUN_PKG), 1)
+# The -R '$ORIGIN' linker option instructs this library to search for its
+# dependencies in the same directory where it resides.
+ifeq ($(USE_64), 1)
+MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1/sparcv9:/usr/lib/mps/sparcv9'
+else
+MKSHLIB += -R '$$ORIGIN:/usr/lib/mps/secv1:/usr/lib/mps'
+endif
+else
MKSHLIB += -R '$$ORIGIN'
endif
+endif
+
ifeq (,$(filter-out WINNT WIN95,$(OS_TARGET)))
ifndef NS_USE_GCC
diff --git a/security/nss/lib/nss/nss.def b/security/nss/lib/nss/nss.def
index 40e959697..7fd954eac 100644
--- a/security/nss/lib/nss/nss.def
+++ b/security/nss/lib/nss/nss.def
@@ -783,3 +783,29 @@ SEC_DupCrl;
;+ local:
;+ *;
;+};
+;+NSS_3.9.2 { # NSS 3.9.2 release
+;+ global:
+NSS_IsInitialized;
+PK11_DestroyGenericObject;
+PK11_DestroyGenericObjects;
+PK11_FindGenericObjects;
+PK11_GetNextGenericObject;
+PK11_GetPrevGenericObject;
+PK11_LinkGenericObject;
+PK11_ReadRawAttribute;
+PK11_UnlinkGenericObject;
+;+ local:
+;+ *;
+;+};
+;+NSS_3.9.3 { # NSS 3.9.3 release
+;+ global:
+PK11_GetCertFromPrivateKey;
+PK11_PrivDecryptPKCS1;
+PK11_PubEncryptPKCS1;
+SECMOD_CancelWait;
+SECMOD_HasRemovableSlots;
+SECMOD_UpdateSlotList;
+SECMOD_WaitForAnyTokenEvent;
+;+ local:
+;+ *;
+;+};
diff --git a/security/nss/lib/nss/nss.h b/security/nss/lib/nss/nss.h
index 70425272f..a5e74ab4b 100644
--- a/security/nss/lib/nss/nss.h
+++ b/security/nss/lib/nss/nss.h
@@ -49,11 +49,11 @@ SEC_BEGIN_PROTOS
* The format of the version string should be
* "<major version>.<minor version>[.<patch level>] [<Beta>]"
*/
-#define NSS_VERSION "3.10 Beta"
+#define NSS_VERSION "3.9.5"
#define NSS_VMAJOR 3
-#define NSS_VMINOR 10
-#define NSS_VPATCH 0
-#define NSS_BETA PR_TRUE
+#define NSS_VMINOR 9
+#define NSS_VPATCH 5
+#define NSS_BETA PR_FALSE
/*
@@ -85,6 +85,11 @@ extern SECStatus NSS_Init(const char *configdir);
extern SECStatus NSS_InitReadWrite(const char *configdir);
/*
+ * Returns whether NSS has already been initialized or not.
+ */
+extern PRBool NSS_IsInitialized(void);
+
+/*
* Open the Cert, Key, and Security Module databases, read/write.
* Initialize the Random Number Generator.
* Does not initialize the cipher policies or enables.
diff --git a/security/nss/lib/nss/nssinit.c b/security/nss/lib/nss/nssinit.c
index dce2bed09..9468d456b 100644
--- a/security/nss/lib/nss/nssinit.c
+++ b/security/nss/lib/nss/nssinit.c
@@ -568,6 +568,11 @@ NSS_Shutdown(void)
extern const char __nss_base_rcsid[];
+PRBool
+NSS_IsInitialized(void)
+{
+ return nss_IsInitted;
+}
extern const char __nss_base_sccsid[];
PRBool
diff --git a/security/nss/lib/pk11wrap/debug_module.c b/security/nss/lib/pk11wrap/debug_module.c
index 34cd54384..62542756d 100644
--- a/security/nss/lib/pk11wrap/debug_module.c
+++ b/security/nss/lib/pk11wrap/debug_module.c
@@ -149,11 +149,11 @@ static void get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len)
}
}
-static void get_obj_class(CK_OBJECT_CLASS class, char *str, int len)
+static void get_obj_class(CK_OBJECT_CLASS objClass, char *str, int len)
{
#define SETO(objc) \
PR_snprintf(str, len, "%s", objc); break;
- switch (class) {
+ switch (objClass) {
#ifndef AIX_64BIT
case CKO_DATA: SETO("CKO_DATA");
case CKO_CERTIFICATE: SETO("CKO_CERTIFICATE");
@@ -167,7 +167,7 @@ static void get_obj_class(CK_OBJECT_CLASS class, char *str, int len)
case CKO_NETSCAPE_TRUST: SETO("CKO_NETSCAPE_TRUST");
case CKO_NETSCAPE_BUILTIN_ROOT_LIST: SETO("CKO_NETSCAPE_BUILTIN_ROOT_LIST");
#endif
- default: PR_snprintf(str, len, "0x%p", class); break;
+ default: PR_snprintf(str, len, "0x%p", objClass); break;
}
}
@@ -223,8 +223,8 @@ static void print_attr_value(CK_ATTRIBUTE_PTR attr)
}
case CKA_CLASS:
if (attr->ulValueLen > 0 && attr->pValue) {
- CK_OBJECT_CLASS class = *((CK_OBJECT_CLASS *)attr->pValue);
- get_obj_class(class, valstr, sizeof valstr);
+ CK_OBJECT_CLASS objClass = *((CK_OBJECT_CLASS *)attr->pValue);
+ get_obj_class(objClass, valstr, sizeof valstr);
PR_LOG(modlog, 4, (" %s = %s [%d]",
atype, valstr, attr->ulValueLen));
break;
diff --git a/security/nss/lib/pk11wrap/pk11cert.c b/security/nss/lib/pk11wrap/pk11cert.c
index a100caca3..2780f1c8e 100644
--- a/security/nss/lib/pk11wrap/pk11cert.c
+++ b/security/nss/lib/pk11wrap/pk11cert.c
@@ -94,6 +94,7 @@ static PRStatus convert_cert(NSSCertificate *c, void *arg)
CERTCertificate *nss3cert;
SECStatus secrv;
struct nss3_cert_cbstr *nss3cb = (struct nss3_cert_cbstr *)arg;
+ /* 'c' is not adopted. caller will free it */
nss3cert = STAN_GetCERTCertificate(c);
if (!nss3cert) return PR_FAILURE;
secrv = (*nss3cb->callback)(nss3cert, nss3cb->arg);
@@ -327,7 +328,7 @@ PK11_IsUserCert(PK11SlotInfo *slot, CERTCertificate *cert,
if (cert == NULL) return PR_FALSE;
theClass = CKO_PRIVATE_KEY;
- if (!PK11_IsLoggedIn(slot,NULL) && PK11_NeedLogin(slot)) {
+ if (pk11_LoginStillRequired(slot,NULL)) {
theClass = CKO_PUBLIC_KEY;
}
if (PK11_MatchItem(slot, certID , theClass) != CK_INVALID_HANDLE) {
@@ -467,7 +468,7 @@ static CERTCertificate
id.ulValueLen = c->id.size;
*nickptr = pk11_buildNickname(slot, &label, privateLabel, &id);
}
- return STAN_GetCERTCertificate(c);
+ return STAN_GetCERTCertificateOrRelease(c);
}
CK_TRUST
@@ -991,6 +992,21 @@ typedef struct pk11CertCallbackStr {
void *callbackArg;
} pk11CertCallback;
+
+/*
+ * Authenticate to "unfriendly" tokens (tokens which need to be logged
+ * in to find the certs.
+ */
+static SECStatus
+pk11_AuthenticateUnfriendly(PK11SlotInfo *slot, PRBool loadCerts, void *wincx)
+{
+ SECStatus rv = SECSuccess;
+ if (!PK11_IsFriendly(slot)) {
+ rv = PK11_Authenticate(slot, loadCerts, wincx);
+ }
+ return rv;
+}
+
/*
* Extract all the certs on a card from a slot.
*/
@@ -1007,9 +1023,9 @@ pk11_TraverseAllSlots( SECStatus (*callback)(PK11SlotInfo *,void *),
/* look at each slot and authenticate as necessary */
for (le = list->head ; le; le = le->next) {
- if (!PK11_IsFriendly(le->slot)) {
- rv = PK11_Authenticate(le->slot, PR_FALSE, wincx);
- if (rv != SECSuccess) continue;
+ rv = pk11_AuthenticateUnfriendly(le->slot, PR_FALSE, wincx);
+ if (rv != SECSuccess) {
+ continue;
}
if (callback) {
(*callback)(le->slot,arg);
@@ -1186,13 +1202,11 @@ PK11_FindObjectsFromNickname(char *nickname,PK11SlotInfo **slotptr,
return CK_INVALID_HANDLE;
}
- if (!PK11_IsFriendly(slot)) {
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
- if (rv != SECSuccess) {
- PK11_FreeSlot(slot);
- *slotptr = NULL;
- return CK_INVALID_HANDLE;
- }
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) {
+ PK11_FreeSlot(slot);
+ *slotptr = NULL;
+ return CK_INVALID_HANDLE;
}
findTemplate[0].pValue = nickname;
@@ -1244,8 +1258,7 @@ transfer_token_certs_to_collection(nssList *certList, NSSToken *token,
}
nssTokenArray_Destroy(tokens);
}
- /* *must* be a valid CERTCertificate, came from cache */
- CERT_DestroyCertificate(STAN_GetCERTCertificate(certs[i]));
+ CERT_DestroyCertificate(STAN_GetCERTCertificateOrRelease(certs[i]));
}
nss_ZFreeIf(certs);
}
@@ -1272,11 +1285,13 @@ PK11_FindCertFromNickname(char *nickname, void *wincx)
NSSCertificate **certs = NULL;
NSSUsage usage;
NSSToken *token;
+ NSSTrustDomain *defaultTD = STAN_GetDefaultTrustDomain();
PK11SlotInfo *slot = NULL;
+ SECStatus rv;
char *nickCopy;
char *delimit = NULL;
char *tokenName;
- NSSTrustDomain *defaultTD = STAN_GetDefaultTrustDomain();
+
usage.anyUsage = PR_TRUE;
nickCopy = PORT_Strdup(nickname);
if ((delimit = PORT_Strchr(nickCopy,':')) != NULL) {
@@ -1301,10 +1316,9 @@ PK11_FindCertFromNickname(char *nickname, void *wincx)
if (!PK11_IsPresent(slot)) {
goto loser;
}
- if (!PK11_IsFriendly(slot)) {
- if (PK11_Authenticate(slot, PR_TRUE, wincx) != SECSuccess) {
- goto loser;
- }
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) {
+ goto loser;
}
collection = nssCertificateCollection_Create(defaultTD, NULL);
if (!collection) {
@@ -1355,7 +1369,7 @@ PK11_FindCertFromNickname(char *nickname, void *wincx)
cert = nssCertificateArray_FindBestCertificate(certs, NULL,
&usage, NULL);
if (cert) {
- rvCert = STAN_GetCERTCertificate(cert);
+ rvCert = STAN_GetCERTCertificateOrRelease(cert);
}
nssCertificateArray_Destroy(certs);
}
@@ -1413,6 +1427,8 @@ PK11_FindCertsFromNickname(char *nickname, void *wincx) {
NSSCertificate *c;
NSSToken *token;
PK11SlotInfo *slot;
+ SECStatus rv;
+
nickCopy = PORT_Strdup(nickname);
if ((delimit = PORT_Strchr(nickCopy,':')) != NULL) {
tokenName = nickCopy;
@@ -1435,12 +1451,11 @@ PK11_FindCertsFromNickname(char *nickname, void *wincx) {
nssList *nameList;
nssCryptokiObject **instances;
nssTokenSearchType tokenOnly = nssTokenSearchType_TokenOnly;
- if (!PK11_IsFriendly(slot)) {
- if (PK11_Authenticate(slot, PR_TRUE, wincx) != SECSuccess) {
- PK11_FreeSlot(slot);
- if (nickCopy) PORT_Free(nickCopy);
- return NULL;
- }
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) {
+ PK11_FreeSlot(slot);
+ if (nickCopy) PORT_Free(nickCopy);
+ return NULL;
}
collection = nssCertificateCollection_Create(defaultTD, NULL);
if (!collection) {
@@ -1479,8 +1494,10 @@ PK11_FindCertsFromNickname(char *nickname, void *wincx) {
PRTime now = PR_Now();
certList = CERT_NewCertList();
for (i=0, c = *foundCerts; c; c = foundCerts[++i]) {
- CERTCertificate *certCert = STAN_GetCERTCertificate(c);
+ CERTCertificate *certCert = STAN_GetCERTCertificateOrRelease(c);
+ /* c may be invalid after this, don't reference it */
if (certCert) {
+ /* CERT_AddCertToListSorted adopts certCert */
CERT_AddCertToListSorted(certList, certCert,
CERT_SortCBValidity, &now);
}
@@ -1489,6 +1506,7 @@ PK11_FindCertsFromNickname(char *nickname, void *wincx) {
CERT_DestroyCertList(certList);
certList = NULL;
}
+ /* all the certs have been adopted or freed, free the raw array */
nss_ZFreeIf(foundCerts);
}
return certList;
@@ -1909,7 +1927,7 @@ PK11_FindPrivateKeyFromCert(PK11SlotInfo *slot, CERTCertificate *cert,
/*
* issue the find
*/
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
if (rv != SECSuccess) {
return NULL;
}
@@ -1919,7 +1937,19 @@ PK11_FindPrivateKeyFromCert(PK11SlotInfo *slot, CERTCertificate *cert,
return NULL;
}
keyh = PK11_MatchItem(slot,certh,CKO_PRIVATE_KEY);
- if (keyh == CK_INVALID_HANDLE) { return NULL; }
+ if ((keyh == CK_INVALID_HANDLE) &&
+ (PORT_GetError() == SSL_ERROR_NO_CERTIFICATE) &&
+ pk11_LoginStillRequired(slot, wincx)) {
+ /* try it again authenticated */
+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) {
+ return NULL;
+ }
+ keyh = PK11_MatchItem(slot,certh,CKO_PRIVATE_KEY);
+ }
+ if (keyh == CK_INVALID_HANDLE) {
+ return NULL;
+ }
return PK11_MakePrivKey(slot, nullKey, PR_TRUE, keyh, wincx);
}
@@ -1969,10 +1999,15 @@ PK11_KeyForCertExists(CERTCertificate *cert, CK_OBJECT_HANDLE *keyPtr,
/* Look for the slot that holds the Key */
for (le = list->head ; le; le = le->next) {
- rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
- if (rv != SECSuccess) continue;
-
key = pk11_FindPrivateKeyFromCertID(le->slot,keyID);
+ if ((key == CK_INVALID_HANDLE) &&
+ (PORT_GetError() == SSL_ERROR_NO_CERTIFICATE) &&
+ pk11_LoginStillRequired(le->slot,wincx)) {
+ /* authenticate and try again */
+ rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) continue;
+ key = pk11_FindPrivateKeyFromCertID(le->slot,keyID);
+ }
if (key != CK_INVALID_HANDLE) {
slot = PK11_ReferenceSlot(le->slot);
if (keyPtr) *keyPtr = key;
@@ -2060,10 +2095,8 @@ pk11_FindCertObjectByTemplate(PK11SlotInfo **slotPtr,
/* Look for the slot that holds the Key */
for (le = list->head ; le; le = le->next) {
- if (!PK11_IsFriendly(le->slot)) {
- rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
- if (rv != SECSuccess) continue;
- }
+ rv = pk11_AuthenticateUnfriendly(le->slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) continue;
certHandle = pk11_FindObjectByTemplate(le->slot,searchTemplate,count);
if (certHandle != CK_INVALID_HANDLE) {
@@ -2141,6 +2174,7 @@ PK11_FindCertByIssuerAndSNOnToken(PK11SlotInfo *slot,
}
object = NULL; /* adopted by the previous call */
nssTrustDomain_AddCertsToCache(td, &cert,1);
+ /* on failure, cert is freed below */
rvCert = STAN_GetCERTCertificate(cert);
if (!rvCert) {
goto loser;
@@ -2224,10 +2258,8 @@ pk11_AllFindCertObjectByRecipientNew(NSSCMSRecipient **recipientlist, void *winc
/* Look for the slot that holds the Key */
for (le = list->head ; le; le = le->next) {
- if ( !PK11_IsFriendly(le->slot)) {
- rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
- if (rv != SECSuccess) continue;
- }
+ rv = pk11_AuthenticateUnfriendly(le->slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) continue;
cert = pk11_FindCertObjectByRecipientNew(le->slot,
recipientlist, rlIndex, wincx);
@@ -2299,10 +2331,8 @@ pk11_AllFindCertObjectByRecipient(PK11SlotInfo **slotPtr,
/* Look for the slot that holds the Key */
for (le = list->head ; le; le = le->next) {
- if ( !PK11_IsFriendly(le->slot)) {
- rv = PK11_Authenticate(le->slot, PR_TRUE, wincx);
- if (rv != SECSuccess) continue;
- }
+ rv = pk11_AuthenticateUnfriendly(le->slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) continue;
cert = pk11_FindCertObjectByRecipient(le->slot, recipientArray,
rip, wincx);
@@ -2335,7 +2365,6 @@ PK11_FindCertAndKeyByRecipientList(PK11SlotInfo **slotPtr,
SECKEYPrivateKey**privKey, void *wincx)
{
CERTCertificate *cert = NULL;
- SECStatus rv;
*privKey = NULL;
*slotPtr = NULL;
@@ -2344,11 +2373,6 @@ PK11_FindCertAndKeyByRecipientList(PK11SlotInfo **slotPtr,
return NULL;
}
- rv = PK11_Authenticate(*slotPtr,PR_TRUE,wincx);
- if (rv != SECSuccess) {
- goto loser;
- }
-
*privKey = PK11_FindKeyByAnyCert(cert, wincx);
if (*privKey == NULL) {
goto loser;
@@ -2416,11 +2440,6 @@ PK11_FindCertAndKeyByRecipientListNew(NSSCMSRecipient **recipientlist, void *win
/* at this point, rl->slot is set */
- /* authenticate to the token */
- if (PK11_Authenticate(rl->slot, PR_TRUE, wincx) != SECSuccess) {
- goto loser;
- }
-
rl->privkey = PK11_FindKeyByAnyCert(cert, wincx);
if (rl->privkey == NULL) {
goto loser;
@@ -2499,22 +2518,34 @@ PK11_FindCertByIssuerAndSN(PK11SlotInfo **slotPtr, CERTIssuerAndSN *issuerSN,
&serial);
if (cert) {
SECITEM_FreeItem(derSerial, PR_TRUE);
- return STAN_GetCERTCertificate(cert);
+ return STAN_GetCERTCertificateOrRelease(cert);
}
-retry:
- cert = NSSTrustDomain_FindCertificateByIssuerAndSerialNumber(
+
+ do {
+ /* free the old cert on retry. Associated slot was not present */
+ if (rvCert) {
+ CERT_DestroyCertificate(rvCert);
+ rvCert = NULL;
+ }
+
+ cert = NSSTrustDomain_FindCertificateByIssuerAndSerialNumber(
STAN_GetDefaultTrustDomain(),
&issuer,
&serial);
- if (cert) {
- rvCert = STAN_GetCERTCertificate(cert);
- /* Check to see if the cert's token is still there */
- if (!PK11_IsPresent(rvCert->slot)) {
- CERT_DestroyCertificate(rvCert);
- goto retry;
+ if (!cert) {
+ break;
}
- if (slotPtr) *slotPtr = PK11_ReferenceSlot(rvCert->slot);
- }
+
+ rvCert = STAN_GetCERTCertificateOrRelease(cert);
+ if (rvCert == NULL) {
+ break;
+ }
+
+ /* Check to see if the cert's token is still there */
+ } while (!PK11_IsPresent(rvCert->slot));
+
+ if (rvCert && slotPtr) *slotPtr = PK11_ReferenceSlot(rvCert->slot);
+
SECITEM_FreeItem(derSerial, PR_TRUE);
return rvCert;
#endif
@@ -2556,25 +2587,29 @@ PK11_FindKeyByAnyCert(CERTCertificate *cert, void *wincx)
CK_OBJECT_HANDLE certHandle;
CK_OBJECT_HANDLE keyHandle;
PK11SlotInfo *slot = NULL;
- SECKEYPrivateKey *privKey;
+ SECKEYPrivateKey *privKey = NULL;
SECStatus rv;
certHandle = PK11_FindObjectForCert(cert, wincx, &slot);
if (certHandle == CK_INVALID_HANDLE) {
return NULL;
}
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
- if (rv != SECSuccess) {
- PK11_FreeSlot(slot);
- return NULL;
- }
keyHandle = PK11_MatchItem(slot,certHandle,CKO_PRIVATE_KEY);
- if (keyHandle == CK_INVALID_HANDLE) {
+ if ((keyHandle == CK_INVALID_HANDLE) &&
+ (PORT_GetError() == SSL_ERROR_NO_CERTIFICATE) &&
+ pk11_LoginStillRequired(slot,wincx)) {
+ /* authenticate and try again */
+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+ if (rv == SECSuccess) {
+ keyHandle = PK11_MatchItem(slot,certHandle,CKO_PRIVATE_KEY);
+ }
+ }
+ if (keyHandle != CK_INVALID_HANDLE) {
+ privKey = PK11_MakePrivKey(slot, nullKey, PR_TRUE, keyHandle, wincx);
+ }
+ if (slot) {
PK11_FreeSlot(slot);
- return NULL;
}
- privKey = PK11_MakePrivKey(slot, nullKey, PR_TRUE, keyHandle, wincx);
- PK11_FreeSlot(slot);
return privKey;
}
@@ -2659,7 +2694,7 @@ PK11_TraverseCertsForSubject(CERTCertificate *cert,
PR_FALSE,PR_TRUE,NULL);
PK11SlotListElement *le;
- /* loop through all the fortezza tokens */
+ /* loop through all the tokens */
for (le = list->head; le; le = le->next) {
PK11_TraverseCertsForSubjectInSlot(cert,le->slot,callback,arg);
}
@@ -2744,6 +2779,9 @@ PK11_TraverseCertsForSubjectInSlot(CERTCertificate *cert, PK11SlotInfo *slot,
NSSCertificate **cp;
for (cp = certs; *cp; cp++) {
oldie = STAN_GetCERTCertificate(*cp);
+ if (!oldie) {
+ continue;
+ }
if ((*callback)(oldie, arg) != SECSuccess) {
nssrv = PR_FAILURE;
break;
@@ -2841,6 +2879,9 @@ PK11_TraverseCertsForNicknameInSlot(SECItem *nickname, PK11SlotInfo *slot,
NSSCertificate **cp;
for (cp = certs; *cp; cp++) {
oldie = STAN_GetCERTCertificate(*cp);
+ if (!oldie) {
+ continue;
+ }
if ((*callback)(oldie, arg) != SECSuccess) {
nssrv = PR_FAILURE;
break;
@@ -2930,6 +2971,9 @@ PK11_TraverseCertsInSlot(PK11SlotInfo *slot,
NSSCertificate **cp;
for (cp = certs; *cp; cp++) {
oldie = STAN_GetCERTCertificate(*cp);
+ if (!oldie) {
+ continue;
+ }
if ((*callback)(oldie, arg) != SECSuccess) {
nssrv = PR_FAILURE;
break;
@@ -2961,13 +3005,15 @@ PK11_FindCertFromDERCertItem(PK11SlotInfo *slot, SECItem *inDerCert,
NSSDER derCert;
NSSToken *tok;
NSSTrustDomain *td = STAN_GetDefaultTrustDomain();
+ SECStatus rv;
+
tok = PK11Slot_GetNSSToken(slot);
+
NSSITEM_FROM_SECITEM(&derCert, inDerCert);
- if (!PK11_IsFriendly(slot)) {
- if (PK11_Authenticate(slot, PR_TRUE, wincx) != SECSuccess) {
- PK11_FreeSlot(slot);
- return NULL;
- }
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) {
+ PK11_FreeSlot(slot);
+ return NULL;
}
c = NSSTrustDomain_FindCertificateByEncodedCertificate(td, &derCert);
if (c) {
@@ -2988,10 +3034,7 @@ PK11_FindCertFromDERCertItem(PK11SlotInfo *slot, SECItem *inDerCert,
nssTokenArray_Destroy(tokens);
}
}
- if (c) {
- rvCert = STAN_GetCERTCertificate(c);
- }
- return rvCert;
+ return c ? STAN_GetCERTCertificateOrRelease(c) : NULL;
}
/* mcgreer 3.4 -- nobody uses this, ignoring */
@@ -3023,10 +3066,8 @@ PK11_FindCertFromDERSubjectAndNickname(PK11SlotInfo *slot,
/*
* issue the find
*/
- if ( !PK11_IsFriendly(slot)) {
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
- if (rv != SECSuccess) return NULL;
- }
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) return NULL;
certh = pk11_getcerthandle(slot,cert,theTemplate,tsize);
if (certh == CK_INVALID_HANDLE) {
@@ -3057,12 +3098,15 @@ pk11_findKeyObjectByDERCert(PK11SlotInfo *slot, CERTCertificate *cert,
return CK_INVALID_HANDLE;
}
- key = CK_INVALID_HANDLE;
-
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
- if (rv != SECSuccess) goto loser;
-
key = pk11_FindPrivateKeyFromCertID(slot, keyID);
+ if ((key == CK_INVALID_HANDLE) &&
+ (PORT_GetError() == SSL_ERROR_NO_CERTIFICATE) &&
+ pk11_LoginStillRequired(slot,wincx)) {
+ /* authenticate and try again */
+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) goto loser;
+ key = pk11_FindPrivateKeyFromCertID(slot, keyID);
+ }
loser:
SECITEM_ZfreeItem(keyID, PR_TRUE);
@@ -3252,7 +3296,7 @@ PK11_FindCertInSlot(PK11SlotInfo *slot, CERTCertificate *cert, void *wincx)
/*
* issue the find
*/
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
if (rv != SECSuccess) {
return CK_INVALID_HANDLE;
}
@@ -3277,7 +3321,6 @@ PK11_GetKeyIDFromCert(CERTCertificate *cert, void *wincx)
goto loser;
}
-
crv = PK11_GetAttributes(NULL,slot,handle,theTemplate,tsize);
if (crv != CKR_OK) {
PORT_SetError( PK11_MapError(crv) );
@@ -3290,7 +3333,6 @@ PK11_GetKeyIDFromCert(CERTCertificate *cert, void *wincx)
item->len = theTemplate[0].ulValueLen;
}
-
loser:
PK11_FreeSlot(slot);
return item;
@@ -3319,7 +3361,6 @@ PK11_GetKeyIDFromPrivateKey(SECKEYPrivateKey *key, void *wincx)
item->len = theTemplate[0].ulValueLen;
}
-
loser:
return item;
}
@@ -3366,6 +3407,7 @@ pk11ListCertCallback(NSSCertificate *c, void *arg)
return PR_SUCCESS;
}
+ /* caller still owns the reference to 'c' */
newCert = STAN_GetCERTCertificate(c);
if (!newCert) {
return PR_SUCCESS;
@@ -3496,8 +3538,8 @@ PK11_GetLowLevelKeyIDForCert(PK11SlotInfo *slot,
if (slot) {
PK11_SETATTRS(attrs, CKA_VALUE, cert->derCert.data,
cert->derCert.len); attrs++;
-
- rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+
+ rv = pk11_AuthenticateUnfriendly(slot, PR_TRUE, wincx);
if (rv != SECSuccess) {
return NULL;
}
@@ -4166,6 +4208,7 @@ CERTSignedCrl* PK11_ImportCRL(PK11SlotInfo * slot, SECItem *derCRL, char *url,
{
CERTSignedCrl *newCrl, *crl;
SECStatus rv;
+ CERTCertificate *caCert = NULL;
newCrl = crl = NULL;
@@ -4184,7 +4227,6 @@ CERTSignedCrl* PK11_ImportCRL(PK11SlotInfo * slot, SECItem *derCRL, char *url,
}
if (0 == (importOptions & CRL_IMPORT_BYPASS_CHECKS)){
- CERTCertificate *caCert;
CERTCertDBHandle* handle = CERT_GetDefaultCertDB();
PR_ASSERT(handle != NULL);
caCert = CERT_FindCertByName (handle,
@@ -4220,5 +4262,8 @@ CERTSignedCrl* PK11_ImportCRL(PK11SlotInfo * slot, SECItem *derCRL, char *url,
if (crl == NULL) {
SEC_DestroyCrl (newCrl);
}
+ if (caCert) {
+ CERT_DestroyCertificate(caCert);
+ }
return (crl);
}
diff --git a/security/nss/lib/pk11wrap/pk11err.c b/security/nss/lib/pk11wrap/pk11err.c
index b6846af84..f4b07f508 100644
--- a/security/nss/lib/pk11wrap/pk11err.c
+++ b/security/nss/lib/pk11wrap/pk11err.c
@@ -87,6 +87,7 @@ PK11_MapError(CK_RV rv) {
MAPERROR(CKR_KEY_TYPE_INCONSISTENT, SEC_ERROR_INVALID_KEY)
MAPERROR(CKR_MECHANISM_INVALID, SEC_ERROR_BAD_DATA)
MAPERROR(CKR_MECHANISM_PARAM_INVALID, SEC_ERROR_BAD_DATA)
+ MAPERROR(CKR_NO_EVENT, SEC_ERROR_NO_EVENT)
MAPERROR(CKR_OBJECT_HANDLE_INVALID, SEC_ERROR_BAD_DATA)
MAPERROR(CKR_OPERATION_ACTIVE, SEC_ERROR_LIBRARY_FAILURE)
MAPERROR(CKR_OPERATION_NOT_INITIALIZED,SEC_ERROR_LIBRARY_FAILURE )
@@ -121,6 +122,7 @@ PK11_MapError(CK_RV rv) {
#ifdef PK11_ERROR_USE_ARRAY
+};
int
PK11_MapError(CK_RV rv) {
diff --git a/security/nss/lib/pk11wrap/pk11func.h b/security/nss/lib/pk11wrap/pk11func.h
index ddd968d22..fde449762 100644
--- a/security/nss/lib/pk11wrap/pk11func.h
+++ b/security/nss/lib/pk11wrap/pk11func.h
@@ -137,7 +137,7 @@ SECStatus PK11_TokenRefresh(PK11SlotInfo *slot);
/******************************************************************
* Slot info functions
******************************************************************/
-PK11SlotInfo *PK11_FindSlotByName(char *name);
+PK11SlotInfo *PK11_FindSlotByName(const char *name);
PK11SlotInfo *PK11_FindSlotBySerial(char *serial);
/******************************************************************
* PK11_FindSlotsByNames searches for a PK11SlotInfo using one or
@@ -415,11 +415,21 @@ SECKEYPrivateKey * PK11_FindKeyByKeyID(PK11SlotInfo *slot, SECItem *keyID,
CK_OBJECT_HANDLE PK11_FindObjectForCert(CERTCertificate *cert,
void *wincx, PK11SlotInfo **pSlot);
int PK11_GetPrivateModulusLen(SECKEYPrivateKey *key);
+
+/* note: despite the name, this function takes a private key. */
SECStatus PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
unsigned *outLen, unsigned int maxLen, unsigned char *enc, unsigned encLen);
-/* The encrypt version of the above function */
+#define PK11_PrivDecryptRaw PK11_PubDecryptRaw
+/* The encrypt function that complements the above decrypt function. */
SECStatus PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
unsigned char *data, unsigned dataLen, void *wincx);
+
+SECStatus PK11_PrivDecryptPKCS1(SECKEYPrivateKey *key, unsigned char *data,
+ unsigned *outLen, unsigned int maxLen, unsigned char *enc, unsigned encLen);
+/* The encrypt function that complements the above decrypt function. */
+SECStatus PK11_PubEncryptPKCS1(SECKEYPublicKey *key, unsigned char *enc,
+ unsigned char *data, unsigned dataLen, void *wincx);
+
SECStatus PK11_ImportPrivateKeyInfo(PK11SlotInfo *slot,
SECKEYPrivateKeyInfo *pki, SECItem *nickname,
SECItem *publicValue, PRBool isPerm, PRBool isPrivate,
@@ -652,6 +662,21 @@ PK11DefaultArrayEntry * PK11_GetDefaultArray(int *);
SECStatus PK11_UpdateSlotAttribute(PK11SlotInfo *, PK11DefaultArrayEntry *,
PRBool );
+/**********************************************************************
+ * Functions to look at PKCS #11 dependent data
+ **********************************************************************/
+PK11GenericObject *PK11_FindGenericObjects(PK11SlotInfo *slot,
+ CK_OBJECT_CLASS objClass);
+PK11GenericObject *PK11_GetNextGenericObject(PK11GenericObject *object);
+PK11GenericObject *PK11_GetPrevtGenericObject(PK11GenericObject *object);
+SECStatus PK11_UnlinkGenericObject(PK11GenericObject *object);
+SECStatus PK11_LinkGenericObject(PK11GenericObject *list,
+ PK11GenericObject *object);
+SECStatus PK11_DestroyGenericObjects(PK11GenericObject *object);
+SECStatus PK11_DestroyGenericObject(PK11GenericObject *object);
+SECStatus PK11_ReadRawAttribute(PK11ObjectType type, void *object,
+ CK_ATTRIBUTE_TYPE attr, SECItem *item);
+
/**********************************************************************
* New fucntions which are already depricated....
diff --git a/security/nss/lib/pk11wrap/pk11list.c b/security/nss/lib/pk11wrap/pk11list.c
index 67bef9573..695990e5d 100644
--- a/security/nss/lib/pk11wrap/pk11list.c
+++ b/security/nss/lib/pk11wrap/pk11list.c
@@ -41,37 +41,26 @@
#include "secmod.h"
#include "secmodi.h"
#include "prlong.h"
-
-#define ISREADING 1
-#define ISWRITING 2
-#define WANTWRITE 4
-#define ISLOCKED 3
+#include "nssrwlk.h"
/*
* create a new lock for a Module List
*/
-SECMODListLock *SECMOD_NewListLock() {
- SECMODListLock *modLock;
-
- modLock = (SECMODListLock*)PORT_Alloc(sizeof(SECMODListLock));
+SECMODListLock *SECMOD_NewListLock()
+{
#ifdef PKCS11_USE_THREADS
- modLock->mutex = NULL;
- modLock->monitor = PZ_NewMonitor(nssILockList);
+ return (SECMODListLock *)NSSRWLock_New( 10, "moduleListLock");
#else
- modLock->mutex = NULL;
- modLock->monitor = NULL;
+ return (SECMODListLock *)1;
#endif
- modLock->state = 0;
- modLock->count = 0;
- return modLock;
}
/*
* destroy the lock
*/
-void SECMOD_DestroyListLock(SECMODListLock *lock) {
- PK11_USE_THREADS(PZ_DestroyMonitor(lock->monitor);)
- PORT_Free(lock);
+void SECMOD_DestroyListLock(SECMODListLock *lock)
+{
+ PK11_USE_THREADS(NSSRWLock_Destroy((NSSRWLock *)lock);)
}
@@ -79,52 +68,26 @@ void SECMOD_DestroyListLock(SECMODListLock *lock) {
* Lock the List for Read: NOTE: this assumes the reading isn't so common
* the writing will be starved.
*/
-void SECMOD_GetReadLock(SECMODListLock *modLock) {
-#ifdef PKCS11_USE_THREADS
- if (modLock == NULL) return;
- PZ_EnterMonitor(modLock->monitor);
- while (modLock->state & ISWRITING) {
- PZ_Wait(modLock->monitor,PR_INTERVAL_NO_TIMEOUT); /* wait until woken up */
- }
- modLock->state |= ISREADING;
- modLock->count++;
- PZ_ExitMonitor(modLock->monitor);
-#endif
+void SECMOD_GetReadLock(SECMODListLock *modLock)
+{
+ PK11_USE_THREADS(NSSRWLock_LockRead((NSSRWLock *)modLock);)
}
/*
* Release the Read lock
*/
-void SECMOD_ReleaseReadLock(SECMODListLock *modLock) {
-#ifdef PKCS11_USE_THREADS
- if (modLock == NULL) return;
- PZ_EnterMonitor(modLock->monitor);
- modLock->count--;
- if (modLock->count == 0) {
- modLock->state &= ~ISREADING;
- if (modLock->state & WANTWRITE) {
- PZ_Notify(modLock->monitor); /* only one writer at a time */
- }
- }
- PZ_ExitMonitor(modLock->monitor);
-#endif
+void SECMOD_ReleaseReadLock(SECMODListLock *modLock)
+{
+ PK11_USE_THREADS(NSSRWLock_UnlockRead((NSSRWLock *)modLock);)
}
/*
* lock the list for Write
*/
-void SECMOD_GetWriteLock(SECMODListLock *modLock) {
-#ifdef PKCS11_USE_THREADS
- if (modLock == NULL) return;
- PZ_EnterMonitor(modLock->monitor);
- while (modLock->state & ISLOCKED) {
- modLock->state |= WANTWRITE;
- PZ_Wait(modLock->monitor,PR_INTERVAL_NO_TIMEOUT); /* wait until woken up */
- }
- modLock->state = ISWRITING;
- PZ_ExitMonitor(modLock->monitor);
-#endif
+void SECMOD_GetWriteLock(SECMODListLock *modLock)
+{
+ PK11_USE_THREADS(NSSRWLock_LockWrite((NSSRWLock *)modLock);)
}
@@ -132,14 +95,9 @@ void SECMOD_GetWriteLock(SECMODListLock *modLock) {
* Release the Write Lock: NOTE, this code is pretty inefficient if you have
* lots of write collisions.
*/
-void SECMOD_ReleaseWriteLock(SECMODListLock *modLock) {
-#ifdef PKCS11_USE_THREADS
- if (modLock == NULL) return;
- PZ_EnterMonitor(modLock->monitor);
- modLock->state = 0;
- PR_NotifyAll(modLock->monitor); /* enable all the readers */
- PZ_ExitMonitor(modLock->monitor);
-#endif
+void SECMOD_ReleaseWriteLock(SECMODListLock *modLock)
+{
+ PK11_USE_THREADS(NSSRWLock_UnlockWrite((NSSRWLock *)modLock);)
}
@@ -147,7 +105,8 @@ void SECMOD_ReleaseWriteLock(SECMODListLock *modLock) {
* must Hold the Write lock
*/
void
-SECMOD_RemoveList(SECMODModuleList **parent, SECMODModuleList *child) {
+SECMOD_RemoveList(SECMODModuleList **parent, SECMODModuleList *child)
+{
*parent = child->next;
child->next = NULL;
}
@@ -157,7 +116,8 @@ SECMOD_RemoveList(SECMODModuleList **parent, SECMODModuleList *child) {
*/
void
SECMOD_AddList(SECMODModuleList *parent, SECMODModuleList *child,
- SECMODListLock *lock) {
+ SECMODListLock *lock)
+{
if (lock) { SECMOD_GetWriteLock(lock); }
child->next = parent->next;
diff --git a/security/nss/lib/pk11wrap/pk11load.c b/security/nss/lib/pk11wrap/pk11load.c
index 4da327680..b1a59563e 100644
--- a/security/nss/lib/pk11wrap/pk11load.c
+++ b/security/nss/lib/pk11wrap/pk11load.c
@@ -79,7 +79,7 @@ CK_RV PR_CALLBACK secmodUnlockMutext(CK_VOID_PTR mutext) {
}
static SECMODModuleID nextModuleID = 1;
-static CK_C_INITIALIZE_ARGS secmodLockFunctions = {
+static const CK_C_INITIALIZE_ARGS secmodLockFunctions = {
secmodCreateMutext, secmodDestroyMutext, secmodLockMutext,
secmodUnlockMutext, CKF_LIBRARY_CANT_CREATE_OS_THREADS|
CKF_OS_LOCKING_OK
@@ -87,6 +87,41 @@ static CK_C_INITIALIZE_ARGS secmodLockFunctions = {
};
/*
+ * collect the steps we need to initialize a module in a single function
+ */
+SECStatus
+secmod_ModuleInit(SECMODModule *mod)
+{
+ CK_C_INITIALIZE_ARGS moduleArgs;
+ CK_VOID_PTR pInitArgs;
+ CK_RV crv;
+
+ if (mod->isThreadSafe == PR_FALSE) {
+ pInitArgs = NULL;
+ } else if (mod->libraryParams == NULL) {
+ pInitArgs = (void *) &secmodLockFunctions;
+ } else {
+ moduleArgs = secmodLockFunctions;
+ moduleArgs.LibraryParameters = (void *) mod->libraryParams;
+ pInitArgs = &moduleArgs;
+ }
+ crv = PK11_GETTAB(mod)->C_Initialize(pInitArgs);
+ if (crv != CKR_OK) {
+ if (pInitArgs == NULL) {
+ PORT_SetError(PK11_MapError(crv));
+ return SECFailure;
+ }
+ mod->isThreadSafe = PR_FALSE;
+ crv = PK11_GETTAB(mod)->C_Initialize(NULL);
+ if (crv != CKR_OK) {
+ PORT_SetError(PK11_MapError(crv));
+ return SECFailure;
+ }
+ }
+ return SECSuccess;
+}
+
+/*
* set the hasRootCerts flags in the module so it can be stored back
* into the database.
*/
@@ -138,7 +173,7 @@ SECMOD_LoadPKCS11Module(SECMODModule *mod) {
char * full_name;
CK_INFO info;
CK_ULONG slotCount = 0;
-
+ SECStatus rv;
if (mod->loaded) return SECSuccess;
@@ -223,17 +258,12 @@ SECMOD_LoadPKCS11Module(SECMODModule *mod) {
#endif
mod->isThreadSafe = PR_TRUE;
+
/* Now we initialize the module */
- if (mod->libraryParams) {
- secmodLockFunctions.LibraryParameters = (void *) mod->libraryParams;
- } else {
- secmodLockFunctions.LibraryParameters = NULL;
+ rv = secmod_ModuleInit(mod);
+ if (rv != SECSuccess) {
+ goto fail;
}
- if (PK11_GETTAB(mod)->C_Initialize(&secmodLockFunctions) != CKR_OK) {
- mod->isThreadSafe = PR_FALSE;
- if (PK11_GETTAB(mod)->C_Initialize(NULL) != CKR_OK) goto fail;
- }
-
/* check the version number */
if (PK11_GETTAB(mod)->C_GetInfo(&info) != CKR_OK) goto fail2;
if (info.cryptokiVersion.major != 2) goto fail2;
@@ -253,7 +283,7 @@ SECMOD_LoadPKCS11Module(SECMODModule *mod) {
if (PK11_GETTAB(mod)->C_GetSlotList(CK_FALSE, NULL, &slotCount) == CKR_OK) {
CK_SLOT_ID *slotIDs;
int i;
- CK_RV rv;
+ CK_RV crv;
mod->slots = (PK11SlotInfo **)PORT_ArenaAlloc(mod->arena,
sizeof(PK11SlotInfo *) * slotCount);
@@ -263,8 +293,8 @@ SECMOD_LoadPKCS11Module(SECMODModule *mod) {
if (slotIDs == NULL) {
goto fail2;
}
- rv = PK11_GETTAB(mod)->C_GetSlotList(CK_FALSE, slotIDs, &slotCount);
- if (rv != CKR_OK) {
+ crv = PK11_GETTAB(mod)->C_GetSlotList(CK_FALSE, slotIDs, &slotCount);
+ if (crv != CKR_OK) {
PORT_Free(slotIDs);
goto fail2;
}
diff --git a/security/nss/lib/pk11wrap/pk11pars.c b/security/nss/lib/pk11wrap/pk11pars.c
index bdbe87f33..cd28bbf6e 100644
--- a/security/nss/lib/pk11wrap/pk11pars.c
+++ b/security/nss/lib/pk11wrap/pk11pars.c
@@ -93,6 +93,7 @@ secmod_NewModule(void)
newMod->moduleDBOnly = PR_FALSE;
newMod->trustOrder = 0;
newMod->cipherOrder = 0;
+ newMod->evControlMask = 0;
#ifdef PKCS11_USE_THREADS
newMod->refLock = (void *)PZ_NewLock(nssILockRefLock);
if (newMod->refLock == NULL) {
@@ -159,9 +160,12 @@ pk11_mkModuleSpec(SECMODModule * module)
{
char *nss = NULL, *modSpec = NULL, **slotStrings = NULL;
int slotCount, i, si;
+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
/* allocate target slot info strings */
slotCount = 0;
+
+ SECMOD_GetReadLock(moduleLock);
if (module->slotCount) {
for (i=0; i < module->slotCount; i++) {
if (module->slots[i]->defaultFlags !=0) {
@@ -174,6 +178,7 @@ pk11_mkModuleSpec(SECMODModule * module)
slotStrings = (char **)PORT_ZAlloc(slotCount*sizeof(char *));
if (slotStrings == NULL) {
+ SECMOD_ReleaseReadLock(moduleLock);
goto loser;
}
@@ -204,6 +209,7 @@ pk11_mkModuleSpec(SECMODModule * module)
}
}
+ SECMOD_ReleaseReadLock(moduleLock);
nss = pk11_mkNSS(slotStrings,slotCount,module->internal, module->isFIPS,
module->isModuleDB, module->moduleDBOnly, module->isCritical,
module->trustOrder,module->cipherOrder,module->ssl[0],module->ssl[1]);
@@ -382,8 +388,12 @@ SECMOD_LoadUserModule(char *modulespec,SECMODModule *parent, PRBool recurse)
{
SECStatus rv = SECSuccess;
SECMODModule * newmod = SECMOD_LoadModule(modulespec, parent, recurse);
+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
+
if (newmod) {
+ SECMOD_GetReadLock(moduleLock);
rv = STAN_AddModuleToDefaultTrustDomain(newmod);
+ SECMOD_ReleaseReadLock(moduleLock);
if (SECSuccess != rv) {
SECMOD_DestroyModule(newmod);
return NULL;
@@ -400,10 +410,14 @@ SECStatus SECMOD_UnloadUserModule(SECMODModule *mod)
{
SECStatus rv = SECSuccess;
int atype = 0;
+ SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
if (!mod) {
return SECFailure;
}
+
+ SECMOD_GetReadLock(moduleLock);
rv = STAN_RemoveModuleFromDefaultTrustDomain(mod);
+ SECMOD_ReleaseReadLock(moduleLock);
if (SECSuccess != rv) {
return SECFailure;
}
diff --git a/security/nss/lib/pk11wrap/pk11skey.c b/security/nss/lib/pk11wrap/pk11skey.c
index 7998c81e7..ed39a22c3 100644
--- a/security/nss/lib/pk11wrap/pk11skey.c
+++ b/security/nss/lib/pk11wrap/pk11skey.c
@@ -1004,6 +1004,8 @@ PK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,
{
PRArenaPool *arena;
SECKEYPrivateKey *privKey;
+ PRBool isPrivate;
+ SECStatus rv;
/* don't know? look it up */
if (keyType == nullKey) {
@@ -1024,6 +1026,16 @@ PK11_MakePrivKey(PK11SlotInfo *slot, KeyType keyType,
}
}
+ /* if the key is private, make sure we are authenticated to the
+ * token before we try to use it */
+ isPrivate = (PRBool)PK11_HasAttributeSet(slot,privID,CKA_PRIVATE);
+ if (isPrivate) {
+ rv = PK11_Authenticate(slot, PR_TRUE, wincx);
+ if (rv != SECSuccess) {
+ return NULL;
+ }
+ }
+
/* now we need to create space for the private key */
arena = PORT_NewArena( DER_DEFAULT_CHUNKSIZE);
if (arena == NULL) return NULL;
@@ -3395,10 +3407,13 @@ PK11_PubUnwrapSymKey(SECKEYPrivateKey *wrappingKey, SECItem *wrappedKey,
CK_MECHANISM_TYPE target, CK_ATTRIBUTE_TYPE operation, int keySize)
{
CK_MECHANISM_TYPE wrapType = pk11_mapWrapKeyType(wrappingKey->keyType);
+ PK11SlotInfo *slot = wrappingKey->pkcs11Slot;
- PK11_HandlePasswordCheck(wrappingKey->pkcs11Slot,wrappingKey->wincx);
+ if (!PK11_HasAttributeSet(slot,wrappingKey->pkcs11ID,CKA_PRIVATE)) {
+ PK11_HandlePasswordCheck(slot,wrappingKey->wincx);
+ }
- return pk11_AnyUnwrapKey(wrappingKey->pkcs11Slot, wrappingKey->pkcs11ID,
+ return pk11_AnyUnwrapKey(slot, wrappingKey->pkcs11ID,
wrapType, NULL, wrappedKey, target, operation, keySize,
wrappingKey->wincx, NULL, 0, PR_FALSE);
}
@@ -3413,12 +3428,15 @@ PK11_PubUnwrapSymKeyWithFlags(SECKEYPrivateKey *wrappingKey,
CK_BBOOL ckTrue = CK_TRUE;
CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
unsigned int templateCount;
+ PK11SlotInfo *slot = wrappingKey->pkcs11Slot;
templateCount = pk11_FlagsToAttributes(flags, keyTemplate, &ckTrue);
- PK11_HandlePasswordCheck(wrappingKey->pkcs11Slot,wrappingKey->wincx);
+ if (!PK11_HasAttributeSet(slot,wrappingKey->pkcs11ID,CKA_PRIVATE)) {
+ PK11_HandlePasswordCheck(slot,wrappingKey->wincx);
+ }
- return pk11_AnyUnwrapKey(wrappingKey->pkcs11Slot, wrappingKey->pkcs11ID,
+ return pk11_AnyUnwrapKey(slot, wrappingKey->pkcs11ID,
wrapType, NULL, wrappedKey, target, operation, keySize,
wrappingKey->wincx, keyTemplate, templateCount, PR_FALSE);
}
@@ -3434,6 +3452,7 @@ PK11_PubUnwrapSymKeyWithFlagsPerm(SECKEYPrivateKey *wrappingKey,
CK_ATTRIBUTE keyTemplate[MAX_TEMPL_ATTRS];
CK_ATTRIBUTE *attrs;
unsigned int templateCount;
+ PK11SlotInfo *slot = wrappingKey->pkcs11Slot;
attrs = keyTemplate;
if (isPerm) {
@@ -3443,9 +3462,11 @@ PK11_PubUnwrapSymKeyWithFlagsPerm(SECKEYPrivateKey *wrappingKey,
templateCount += pk11_FlagsToAttributes(flags, attrs, &cktrue);
- PK11_HandlePasswordCheck(wrappingKey->pkcs11Slot,wrappingKey->wincx);
+ if (!PK11_HasAttributeSet(slot,wrappingKey->pkcs11ID,CKA_PRIVATE)) {
+ PK11_HandlePasswordCheck(slot,wrappingKey->wincx);
+ }
- return pk11_AnyUnwrapKey(wrappingKey->pkcs11Slot, wrappingKey->pkcs11ID,
+ return pk11_AnyUnwrapKey(slot, wrappingKey->pkcs11ID,
wrapType, NULL, wrappedKey, target, operation, keySize,
wrappingKey->wincx, keyTemplate, templateCount, isPerm);
}
@@ -3569,7 +3590,9 @@ PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, SECItem *hash)
mech.mechanism = pk11_mapSignKeyType(key->keyType);
- PK11_HandlePasswordCheck(slot, key->wincx);
+ if (!PK11_HasAttributeSet(slot,key->pkcs11ID,CKA_PRIVATE)) {
+ PK11_HandlePasswordCheck(slot, key->wincx);
+ }
session = pk11_GetNewSession(slot,&owner);
if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
@@ -3600,13 +3623,12 @@ PK11_Sign(SECKEYPrivateKey *key, SECItem *sig, SECItem *hash)
* then we need to move this check into some of PK11_PubDecrypt callers,
* (namely SSL 2.0).
*/
-SECStatus
-PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
+static SECStatus
+pk11_PrivDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
unsigned *outLen, unsigned int maxLen, unsigned char *enc,
- unsigned encLen)
+ unsigned encLen, CK_MECHANISM_PTR mech)
{
PK11SlotInfo *slot = key->pkcs11Slot;
- CK_MECHANISM mech = {CKM_RSA_X_509, NULL, 0 };
CK_ULONG out = maxLen;
PRBool owner = PR_TRUE;
CK_SESSION_HANDLE session;
@@ -3621,10 +3643,12 @@ PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
* decryption? .. because the user may have asked for 'ask always'
* and this is a private key operation. In practice, thought, it's mute
* since only servers wind up using this function */
- PK11_HandlePasswordCheck(slot, key->wincx);
+ if (!PK11_HasAttributeSet(slot,key->pkcs11ID,CKA_PRIVATE)) {
+ PK11_HandlePasswordCheck(slot, key->wincx);
+ }
session = pk11_GetNewSession(slot,&owner);
if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
- crv = PK11_GETTAB(slot)->C_DecryptInit(session,&mech,key->pkcs11ID);
+ crv = PK11_GETTAB(slot)->C_DecryptInit(session, mech, key->pkcs11ID);
if (crv != CKR_OK) {
if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
pk11_CloseSession(slot,session,owner);
@@ -3643,25 +3667,43 @@ PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
return SECSuccess;
}
-/* The encrypt version of the above function */
SECStatus
-PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
- unsigned char *data, unsigned dataLen, void *wincx)
+PK11_PubDecryptRaw(SECKEYPrivateKey *key, unsigned char *data,
+ unsigned *outLen, unsigned int maxLen, unsigned char *enc,
+ unsigned encLen)
{
- PK11SlotInfo *slot;
CK_MECHANISM mech = {CKM_RSA_X_509, NULL, 0 };
+ return pk11_PrivDecryptRaw(key, data, outLen, maxLen, enc, encLen, &mech);
+}
+
+SECStatus
+PK11_PrivDecryptPKCS1(SECKEYPrivateKey *key, unsigned char *data,
+ unsigned *outLen, unsigned int maxLen, unsigned char *enc,
+ unsigned encLen)
+{
+ CK_MECHANISM mech = {CKM_RSA_PKCS, NULL, 0 };
+ return pk11_PrivDecryptRaw(key, data, outLen, maxLen, enc, encLen, &mech);
+}
+
+SECStatus
+pk11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
+ unsigned char *data, unsigned dataLen,
+ CK_MECHANISM_PTR mech, void *wincx)
+{
+ PK11SlotInfo *slot;
CK_OBJECT_HANDLE id;
- CK_ULONG out = dataLen;
+ CK_ULONG out;
PRBool owner = PR_TRUE;
CK_SESSION_HANDLE session;
CK_RV crv;
- if (key->keyType != rsaKey) {
+ if (!key || key->keyType != rsaKey) {
PORT_SetError( SEC_ERROR_BAD_KEY );
return SECFailure;
}
+ out = SECKEY_PublicKeyStrength(key);
- slot = PK11_GetBestSlot(mech.mechanism, wincx);
+ slot = PK11_GetBestSlot(mech->mechanism, wincx);
if (slot == NULL) {
PORT_SetError( SEC_ERROR_NO_MODULE );
return SECFailure;
@@ -3671,7 +3713,7 @@ PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
session = pk11_GetNewSession(slot,&owner);
if (!owner || !(slot->isThreadSafe)) PK11_EnterSlotMonitor(slot);
- crv = PK11_GETTAB(slot)->C_EncryptInit(session,&mech,id);
+ crv = PK11_GETTAB(slot)->C_EncryptInit(session, mech, id);
if (crv != CKR_OK) {
if (!owner || !(slot->isThreadSafe)) PK11_ExitSlotMonitor(slot);
pk11_CloseSession(slot,session,owner);
@@ -3690,7 +3732,22 @@ PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
return SECSuccess;
}
-
+SECStatus
+PK11_PubEncryptRaw(SECKEYPublicKey *key, unsigned char *enc,
+ unsigned char *data, unsigned dataLen, void *wincx)
+{
+ CK_MECHANISM mech = {CKM_RSA_X_509, NULL, 0 };
+ return pk11_PubEncryptRaw(key, enc, data, dataLen, &mech, wincx);
+}
+
+SECStatus
+PK11_PubEncryptPKCS1(SECKEYPublicKey *key, unsigned char *enc,
+ unsigned char *data, unsigned dataLen, void *wincx)
+{
+ CK_MECHANISM mech = {CKM_RSA_PKCS, NULL, 0 };
+ return pk11_PubEncryptRaw(key, enc, data, dataLen, &mech, wincx);
+}
+
/**********************************************************************
*
* Now Deal with Crypto Contexts
@@ -4476,6 +4533,11 @@ PK11_DigestKey(PK11Context *context, PK11SymKey *key)
SECStatus rv = SECSuccess;
PK11SymKey *newKey = NULL;
+ if (!context || !key) {
+ PORT_SetError(SEC_ERROR_INVALID_ARGS);
+ return SECFailure;
+ }
+
/* if we ran out of session, we need to restore our previously stored
* state.
*/
@@ -5365,9 +5427,12 @@ PK11_UnwrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,
if (newKey) {
if (perm) {
+ /* Get RW Session will either lock the monitor if necessary,
+ * or return a thread safe session handle. */
rwsession = PK11_GetRWSession(slot);
} else {
rwsession = slot->session;
+ PK11_EnterSlotMonitor(slot);
}
crv = PK11_GETTAB(slot)->C_UnwrapKey(rwsession, &mechanism,
newKey->objectID,
@@ -5375,7 +5440,11 @@ PK11_UnwrapPrivKey(PK11SlotInfo *slot, PK11SymKey *wrappingKey,
wrappedKey->len, keyTemplate,
templateCount, &privKeyID);
- if (perm) PK11_RestoreROSession(slot, rwsession);
+ if (perm) {
+ PK11_RestoreROSession(slot, rwsession);
+ } else {
+ PK11_ExitSlotMonitor(slot);
+ }
PK11_FreeSymKey(newKey);
} else {
crv = CKR_FUNCTION_NOT_SUPPORTED;
@@ -5702,3 +5771,220 @@ PK11_ConvertSessionSymKeyToTokenSymKey(PK11SymKey *symk, void *wincx)
return PK11_SymKeyFromHandle(slot, NULL /*parent*/, symk->origin,
symk->type, newKeyID, PR_FALSE /*owner*/, NULL /*wincx*/);
}
+
+
+/*
+ * return a linked, non-circular list of generic objects.
+ * If you are only interested
+ * in one object, just use the first object in the list. To find the
+ * rest of the list use PK11_GetNextGenericObject() to return the next object.
+ *
+ * You can walk the list with the following code:
+ * firstObj = PK11_FindGenericObjects(slot, objClass);
+ * for (thisObj=firstObj; thisObj;
+ * thisObj=PK11_GetNextGenericObject(thisObj)) {
+ * /* operate on thisObj */
+/* }
+ *
+ * If you want a particular object from the list...
+ * firstObj = PK11_FindGenericObjects(slot, objClass);
+ * for (thisObj=firstObj; thisObj;
+ * thisObj=PK11_GetNextGenericObject(thisObj)) {
+ * if (isMyObj(thisObj)) {
+ * if ( thisObj == firstObj) {
+ * /* NOTE: firstObj could be NULL at this point */
+/* firstObj = PK11_GetNextGenericObject(thsObj);
+ * }
+ * PK11_UnlinkGenericObject(thisObj);
+ * myObj = thisObj;
+ * break;
+ * }
+ *
+ * PK11_DestroyGenericObjects(firstObj);
+ *
+ * /* use myObj */
+/* PK11_DestroyGenericObject(myObj);
+ */
+PK11GenericObject *
+PK11_FindGenericObjects(PK11SlotInfo *slot, CK_OBJECT_CLASS objClass)
+{
+ CK_ATTRIBUTE template[1];
+ CK_ATTRIBUTE *attrs = template;
+ CK_OBJECT_HANDLE *objectIDs = NULL;
+ PK11GenericObject *lastObj, *obj;
+ PK11GenericObject *firstObj = NULL;
+ int i, count = 0;
+
+
+ PK11_SETATTRS(attrs, CKA_CLASS, &objClass, sizeof(objClass)); attrs++;
+
+ objectIDs = pk11_FindObjectsByTemplate(slot,template,1,&count);
+ if (objectIDs == NULL) {
+ return NULL;
+ }
+
+ /* where we connect our object once we've created it.. */
+ for (i=0; i < count; i++) {
+ obj = PORT_New(PK11GenericObject);
+ if ( !obj ) {
+ PK11_DestroyGenericObjects(firstObj);
+ PORT_Free(objectIDs);
+ return NULL;
+ }
+ /* initialize it */
+ obj->slot = PK11_ReferenceSlot(slot);
+ obj->objectID = objectIDs[i];
+ obj->next = NULL;
+ obj->prev = NULL;
+
+ /* link it in */
+ if (firstObj == NULL) {
+ firstObj = obj;
+ } else {
+ PK11_LinkGenericObject(lastObj, obj);
+ }
+ lastObj = obj;
+ }
+ PORT_Free(objectIDs);
+ return firstObj;
+}
+
+/*
+ * get the Next Object in the list.
+ */
+PK11GenericObject *
+PK11_GetNextGenericObject(PK11GenericObject *object)
+{
+ return object->next;
+}
+
+PK11GenericObject *
+PK11_GetPrevGenericObject(PK11GenericObject *object)
+{
+ return object->prev;
+}
+
+/*
+ * Link a single object into a new list.
+ * if the object is already in another list, remove it first.
+ */
+SECStatus
+PK11_LinkGenericObject(PK11GenericObject *list, PK11GenericObject *object)
+{
+ PK11_UnlinkGenericObject(object);
+ object->prev = list;
+ object->next = list->next;
+ list->next = object;
+ if (object->next != NULL) {
+ object->next->prev = object;
+ }
+ return SECSuccess;
+}
+
+/*
+ * remove an object from the list. If the object isn't already in
+ * a list unlink becomes a noop.
+ */
+SECStatus
+PK11_UnlinkGenericObject(PK11GenericObject *object)
+{
+ if (object->prev != NULL) {
+ object->prev->next = object->next;
+ }
+ if (object->next != NULL) {
+ object->next->prev = object->prev;
+ }
+
+ object->next = NULL;
+ object->prev = NULL;
+ return SECSuccess;
+}
+
+/*
+ * This function removes a single object from the list and destroys it.
+ * For an already unlinked object there is no difference between
+ * PK11_DestroyGenericObject and PK11_DestroyGenericObjects
+ */
+SECStatus
+PK11_DestroyGenericObject(PK11GenericObject *object)
+{
+ if (object == NULL) {
+ return SECSuccess;
+ }
+
+ PK11_UnlinkGenericObject(object);
+ if (object->slot) {
+ PK11_FreeSlot(object->slot);
+ }
+ PORT_Free(object);
+ return SECSuccess;
+}
+
+/*
+ * walk down a link list of generic objects destroying them.
+ * This will destroy all objects in a list that the object is linked into.
+ * (the list is traversed in both directions).
+ */
+SECStatus
+PK11_DestroyGenericObjects(PK11GenericObject *objects)
+{
+ PK11GenericObject *nextObject;
+ PK11GenericObject *prevObject = objects->prev;
+
+ if (objects == NULL) {
+ return SECSuccess;
+ }
+
+ nextObject = objects->next;
+ prevObject = objects->prev;
+
+ /* delete all the objects after it in the list */
+ for (; objects; objects = nextObject) {
+ nextObject = objects->next;
+ PK11_DestroyGenericObject(objects);
+ }
+ /* delete all the objects before it in the list */
+ for (objects = prevObject; objects; objects = nextObject) {
+ prevObject = objects->prev;
+ PK11_DestroyGenericObject(objects);
+ }
+ return SECSuccess;
+}
+
+
+SECStatus
+PK11_ReadRawAttribute(PK11ObjectType objType, void *objSpec,
+ CK_ATTRIBUTE_TYPE attrType, SECItem *item)
+{
+ PK11SlotInfo *slot = NULL;
+ CK_OBJECT_HANDLE handle;
+
+ switch (objType) {
+ case PK11_TypeGeneric:
+ slot = ((PK11GenericObject *)objSpec)->slot;
+ handle = ((PK11GenericObject *)objSpec)->objectID;
+ break;
+ case PK11_TypePrivKey:
+ slot = ((SECKEYPrivateKey *)objSpec)->pkcs11Slot;
+ handle = ((SECKEYPrivateKey *)objSpec)->pkcs11ID;
+ break;
+ case PK11_TypePubKey:
+ slot = ((SECKEYPublicKey *)objSpec)->pkcs11Slot;
+ handle = ((SECKEYPublicKey *)objSpec)->pkcs11ID;
+ break;
+ case PK11_TypeSymKey:
+ slot = ((PK11SymKey *)objSpec)->slot;
+ handle = ((PK11SymKey *)objSpec)->objectID;
+ break;
+ case PK11_TypeCert: /* don't handle cert case for now */
+ default:
+ break;
+ }
+ if (slot == NULL) {
+ PORT_SetError(SEC_ERROR_UNKNOWN_OBJECT_TYPE);
+ return SECFailure;
+ }
+
+ return PK11_ReadAttribute(slot, handle, attrType, NULL, item);
+}
+
diff --git a/security/nss/lib/pk11wrap/pk11slot.c b/security/nss/lib/pk11wrap/pk11slot.c
index 875495940..1a4df7684 100644
--- a/security/nss/lib/pk11wrap/pk11slot.c
+++ b/security/nss/lib/pk11wrap/pk11slot.c
@@ -638,7 +638,7 @@ PK11_FindSlotsByNames(const char *dllName, const char* slotName,
}
PK11SlotInfo *
-PK11_FindSlotByName(char *name)
+PK11_FindSlotByName(const char *name)
{
SECMODModuleList *mlp;
SECMODModuleList *modules = SECMOD_GetDefaultModuleList();
@@ -906,11 +906,23 @@ PK11_GetSlotPWValues(PK11SlotInfo *slot,int *askpw, int *timeout)
}
/*
+ * Returns true if the token is needLogin and isn't logged in.
+ * This function is used to determine if authentication is needed
+ * before attempting a potentially privelleged operation.
+ */
+PRBool
+pk11_LoginStillRequired(PK11SlotInfo *slot, void *wincx)
+{
+ return slot->needLogin && !PK11_IsLoggedIn(slot,wincx);
+}
+
+/*
* make sure a slot is authenticated...
+ * This function only does the authentication if it is needed.
*/
SECStatus
PK11_Authenticate(PK11SlotInfo *slot, PRBool loadCerts, void *wincx) {
- if (slot->needLogin && !PK11_IsLoggedIn(slot,wincx)) {
+ if (pk11_LoginStillRequired(slot,wincx)) {
return PK11_DoPassword(slot,loadCerts,wincx);
}
return SECSuccess;
@@ -1244,6 +1256,11 @@ void PK11_LogoutAll(void)
SECMODModuleList *mlp = NULL;
int i;
+ /* NSS is not initialized, there are not tokens to log out */
+ if (lock == NULL) {
+ return;
+ }
+
SECMOD_GetReadLock(lock);
/* find the number of entries */
for (mlp = modList; mlp != NULL; mlp = mlp->next) {
@@ -2644,7 +2661,7 @@ PK11_GetAllTokens(CK_MECHANISM_TYPE type, PRBool needRW, PRBool loadCerts,
if (needRW && slot->readOnly) continue;
if ((type == CKM_INVALID_MECHANISM)
|| PK11_DoesMechanism(slot, type)) {
- if (slot->needLogin && !PK11_IsLoggedIn(slot, wincx)) {
+ if (pk11_LoginStillRequired(slot,wincx)) {
if (PK11_IsFriendly(slot)) {
PK11_AddSlotToList(friendlyList, slot);
} else {
diff --git a/security/nss/lib/pk11wrap/pk11util.c b/security/nss/lib/pk11wrap/pk11util.c
index 30c828a1d..322b212f0 100644
--- a/security/nss/lib/pk11wrap/pk11util.c
+++ b/security/nss/lib/pk11wrap/pk11util.c
@@ -58,7 +58,8 @@ extern int num_pk11_default_mechanisms;
void
-SECMOD_Init() {
+SECMOD_Init()
+{
/* don't initialize twice */
if (moduleLock) return;
@@ -68,7 +69,8 @@ SECMOD_Init() {
SECStatus
-SECMOD_Shutdown() {
+SECMOD_Shutdown()
+{
/* destroy the lock */
if (moduleLock) {
SECMOD_DestroyListLock(moduleLock);
@@ -124,13 +126,15 @@ SECMOD_Shutdown() {
* retrieve the internal module
*/
SECMODModule *
-SECMOD_GetInternalModule(void) {
+SECMOD_GetInternalModule(void)
+{
return internalModule;
}
SECStatus
-secmod_AddModuleToList(SECMODModuleList **moduleList,SECMODModule *newModule) {
+secmod_AddModuleToList(SECMODModuleList **moduleList,SECMODModule *newModule)
+{
SECMODModuleList *mlp, *newListElement, *last = NULL;
newListElement = SECMOD_NewModuleListElement();
@@ -158,7 +162,8 @@ secmod_AddModuleToList(SECMODModuleList **moduleList,SECMODModule *newModule) {
}
SECStatus
-SECMOD_AddModuleToList(SECMODModule *newModule) {
+SECMOD_AddModuleToList(SECMODModule *newModule)
+{
if (newModule->internal && !internalModule) {
internalModule = SECMOD_ReferenceModule(newModule);
}
@@ -166,7 +171,8 @@ SECMOD_AddModuleToList(SECMODModule *newModule) {
}
SECStatus
-SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule) {
+SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule)
+{
if (defaultDBModule == NULL) {
defaultDBModule = SECMOD_ReferenceModule(newModule);
}
@@ -174,16 +180,29 @@ SECMOD_AddModuleToDBOnlyList(SECMODModule *newModule) {
}
SECStatus
-SECMOD_AddModuleToUnloadList(SECMODModule *newModule) {
+SECMOD_AddModuleToUnloadList(SECMODModule *newModule)
+{
return secmod_AddModuleToList(&modulesUnload,newModule);
}
/*
* get the list of PKCS11 modules that are available.
*/
-SECMODModuleList *SECMOD_GetDefaultModuleList() { return modules; }
+SECMODModuleList * SECMOD_GetDefaultModuleList() { return modules; }
SECMODModuleList *SECMOD_GetDeadModuleList() { return modulesUnload; }
SECMODModuleList *SECMOD_GetDBModuleList() { return modulesDB; }
+
+/*
+ * This lock protects the global module lists.
+ * it also protects changes to the slot array (module->slots[]) and slot count
+ * (module->slotCount) in each module. It is a read/write lock with multiple
+ * readers or one writer. Writes are uncommon.
+ * Because of legacy considerations protection of the slot array and count is
+ * only necessary in applications if the application calls
+ * SECMOD_UpdateSlotList() or SECMOD_WaitForAnyTokenEvent(), though all new
+ * applications are encouraged to acquire this lock when reading the
+ * slot array information directly.
+ */
SECMODListLock *SECMOD_GetDefaultModuleListLock() { return moduleLock; }
@@ -192,7 +211,9 @@ SECMODListLock *SECMOD_GetDefaultModuleListLock() { return moduleLock; }
* find a module by name, and add a reference to it.
* return that module.
*/
-SECMODModule *SECMOD_FindModule(const char *name) {
+SECMODModule *
+SECMOD_FindModule(const char *name)
+{
SECMODModuleList *mlp;
SECMODModule *module = NULL;
@@ -225,7 +246,9 @@ found:
* find a module by ID, and add a reference to it.
* return that module.
*/
-SECMODModule *SECMOD_FindModuleByID(SECMODModuleID id) {
+SECMODModule *
+SECMOD_FindModuleByID(SECMODModuleID id)
+{
SECMODModuleList *mlp;
SECMODModule *module = NULL;
@@ -238,30 +261,53 @@ SECMODModule *SECMOD_FindModuleByID(SECMODModuleID id) {
}
}
SECMOD_ReleaseReadLock(moduleLock);
-
+ if (module == NULL) {
+ PORT_SetError(SEC_ERROR_NO_MODULE);
+ }
return module;
}
/*
- * lookup the Slot module based on it's module ID and slot ID.
+ * Find the Slot based on ID and the module.
*/
-PK11SlotInfo *SECMOD_LookupSlot(SECMODModuleID moduleID,CK_SLOT_ID slotID) {
+PK11SlotInfo *
+SECMOD_FindSlotByID(SECMODModule *module, CK_SLOT_ID slotID)
+{
int i;
- SECMODModule *module;
-
- module = SECMOD_FindModuleByID(moduleID);
- if (module == NULL) return NULL;
+ PK11SlotInfo *slot = NULL;
+ SECMOD_GetReadLock(moduleLock);
for (i=0; i < module->slotCount; i++) {
- PK11SlotInfo *slot = module->slots[i];
+ PK11SlotInfo *cSlot = module->slots[i];
- if (slot->slotID == slotID) {
- SECMOD_DestroyModule(module);
- return PK11_ReferenceSlot(slot);
+ if (cSlot->slotID == slotID) {
+ slot = PK11_ReferenceSlot(cSlot);
+ break;
}
}
+ SECMOD_ReleaseReadLock(moduleLock);
+
+ if (slot == NULL) {
+ PORT_SetError(SEC_ERROR_NO_SLOT_SELECTED);
+ }
+ return slot;
+}
+
+/*
+ * lookup the Slot module based on it's module ID and slot ID.
+ */
+PK11SlotInfo *
+SECMOD_LookupSlot(SECMODModuleID moduleID,CK_SLOT_ID slotID)
+{
+ SECMODModule *module;
+ PK11SlotInfo *slot;
+
+ module = SECMOD_FindModuleByID(moduleID);
+ if (module == NULL) return NULL;
+
+ slot = SECMOD_FindSlotByID(module, slotID);
SECMOD_DestroyModule(module);
- return NULL;
+ return slot;
}
@@ -334,7 +380,8 @@ found:
* find a module by name and delete it off the module list
*/
SECStatus
-SECMOD_DeleteModule(const char *name, int *type) {
+SECMOD_DeleteModule(const char *name, int *type)
+{
return SECMOD_DeleteModuleEx(name, NULL, type, PR_TRUE);
}
@@ -342,7 +389,8 @@ SECMOD_DeleteModule(const char *name, int *type) {
* find a module by name and delete it off the module list
*/
SECStatus
-SECMOD_DeleteInternalModule(const char *name) {
+SECMOD_DeleteInternalModule(const char *name)
+{
SECMODModuleList *mlp;
SECMODModuleList **mlpp;
SECStatus rv = SECFailure;
@@ -414,7 +462,8 @@ SECMOD_DeleteInternalModule(const char *name) {
}
SECStatus
-SECMOD_AddModule(SECMODModule *newModule) {
+SECMOD_AddModule(SECMODModule *newModule)
+{
SECStatus rv;
SECMODModule *oldModule;
@@ -446,10 +495,14 @@ SECMOD_AddModule(SECMODModule *newModule) {
return rv;
}
-PK11SlotInfo *SECMOD_FindSlot(SECMODModule *module,const char *name) {
+PK11SlotInfo *
+SECMOD_FindSlot(SECMODModule *module,const char *name)
+{
int i;
char *string;
+ PK11SlotInfo *retSlot = NULL;
+ SECMOD_GetReadLock(moduleLock);
for (i=0; i < module->slotCount; i++) {
PK11SlotInfo *slot = module->slots[i];
@@ -459,10 +512,16 @@ PK11SlotInfo *SECMOD_FindSlot(SECMODModule *module,const char *name) {
string = PK11_GetSlotName(slot);
}
if (PORT_Strcmp(name,string) == 0) {
- return PK11_ReferenceSlot(slot);
+ retSlot = PK11_ReferenceSlot(slot);
+ break;
}
}
- return NULL;
+ SECMOD_ReleaseReadLock(moduleLock);
+
+ if (retSlot == NULL) {
+ PORT_SetError(SEC_ERROR_NO_SLOT_SELECTED);
+ }
+ return retSlot;
}
SECStatus
@@ -497,11 +556,12 @@ PK11_IsFIPS(void)
/* combines NewModule() & AddModule */
/* give a string for the module name & the full-path for the dll, */
/* installs the PKCS11 module & update registry */
-SECStatus SECMOD_AddNewModuleEx(const char* moduleName, const char* dllPath,
+SECStatus
+SECMOD_AddNewModuleEx(const char* moduleName, const char* dllPath,
unsigned long defaultMechanismFlags,
unsigned long cipherEnableFlags,
- char* modparms,
- char* nssparms) {
+ char* modparms, char* nssparms)
+{
SECMODModule *module;
SECStatus result = SECFailure;
int s,i;
@@ -522,26 +582,28 @@ SECStatus SECMOD_AddNewModuleEx(const char* moduleName, const char* dllPath,
/* turn on SSL cipher enable flags */
module->ssl[0] = cipherEnableFlags;
+ SECMOD_GetReadLock(moduleLock);
/* check each slot to turn on appropriate mechanisms */
for (s = 0; s < module->slotCount; s++) {
slot = (module->slots)[s];
/* for each possible mechanism */
for (i=0; i < num_pk11_default_mechanisms; i++) {
/* we are told to turn it on by default ? */
- if (PK11_DefaultArray[i].flag & defaultMechanismFlags) {
- /* it ignores if slot attribute update failes */
- result = PK11_UpdateSlotAttribute(slot, &(PK11_DefaultArray[i]), PR_TRUE);
- } else { /* turn this mechanism of the slot off by default */
- result = PK11_UpdateSlotAttribute(slot, &(PK11_DefaultArray[i]), PR_FALSE);
- }
+ PRBool add =
+ (PK11_DefaultArray[i].flag & defaultMechanismFlags) ?
+ PR_TRUE: PR_FALSE;
+ result = PK11_UpdateSlotAttribute(slot,
+ &(PK11_DefaultArray[i]), add);
} /* for each mechanism */
/* disable each slot if the defaultFlags say so */
if (defaultMechanismFlags & PK11_DISABLE_FLAG) {
PK11_UserDisableSlot(slot);
}
} /* for each slot of this module */
+ SECMOD_ReleaseReadLock(moduleLock);
- /* delete and re-add module in order to save changes to the module */
+ /* delete and re-add module in order to save changes
+ * to the module */
result = SECMOD_UpdateModule(module);
}
}
@@ -550,7 +612,8 @@ SECStatus SECMOD_AddNewModuleEx(const char* moduleName, const char* dllPath,
return result;
}
-SECStatus SECMOD_AddNewModule(const char* moduleName, const char* dllPath,
+SECStatus
+SECMOD_AddNewModule(const char* moduleName, const char* dllPath,
unsigned long defaultMechanismFlags,
unsigned long cipherEnableFlags)
{
@@ -559,7 +622,8 @@ SECStatus SECMOD_AddNewModule(const char* moduleName, const char* dllPath,
NULL, NULL); /* don't pass module or nss params */
}
-SECStatus SECMOD_UpdateModule(SECMODModule *module)
+SECStatus
+SECMOD_UpdateModule(SECMODModule *module)
{
SECStatus result;
@@ -578,7 +642,9 @@ SECStatus SECMOD_UpdateModule(SECMODModule *module)
* puts RANDOM_FLAG at bit 31 (Most-significant bit), but
* public representation puts this bit at bit 28
*/
-unsigned long SECMOD_PubMechFlagstoInternal(unsigned long publicFlags) {
+unsigned long
+SECMOD_PubMechFlagstoInternal(unsigned long publicFlags)
+{
unsigned long internalFlags = publicFlags;
if (publicFlags & PUBLIC_MECH_RANDOM_FLAG) {
@@ -588,7 +654,9 @@ unsigned long SECMOD_PubMechFlagstoInternal(unsigned long publicFlags) {
return internalFlags;
}
-unsigned long SECMOD_InternaltoPubMechFlags(unsigned long internalFlags) {
+unsigned long
+SECMOD_InternaltoPubMechFlags(unsigned long internalFlags)
+{
unsigned long publicFlags = internalFlags;
if (internalFlags & SECMOD_RANDOM_FLAG) {
@@ -602,11 +670,15 @@ unsigned long SECMOD_InternaltoPubMechFlags(unsigned long internalFlags) {
/* Public & Internal(Security Library) representation of */
/* cipher flags conversion */
/* Note: currently they are just stubs */
-unsigned long SECMOD_PubCipherFlagstoInternal(unsigned long publicFlags) {
+unsigned long
+SECMOD_PubCipherFlagstoInternal(unsigned long publicFlags)
+{
return publicFlags;
}
-unsigned long SECMOD_InternaltoPubCipherFlags(unsigned long internalFlags) {
+unsigned long
+SECMOD_InternaltoPubCipherFlags(unsigned long internalFlags)
+{
return internalFlags;
}
@@ -620,7 +692,8 @@ SECMOD_IsModulePresent( unsigned long int pubCipherEnableFlags )
for ( ; mods != NULL; mods = mods->next) {
- if (mods->module->ssl[0] & SECMOD_PubCipherFlagstoInternal(pubCipherEnableFlags)) {
+ if (mods->module->ssl[0] &
+ SECMOD_PubCipherFlagstoInternal(pubCipherEnableFlags)) {
result = PR_TRUE;
}
}
@@ -630,7 +703,8 @@ SECMOD_IsModulePresent( unsigned long int pubCipherEnableFlags )
}
/* create a new ModuleListElement */
-SECMODModuleList *SECMOD_NewModuleListElement(void) {
+SECMODModuleList *SECMOD_NewModuleListElement(void)
+{
SECMODModuleList *newModList;
newModList= (SECMODModuleList *) PORT_Alloc(sizeof(SECMODModuleList));
@@ -640,11 +714,13 @@ SECMODModuleList *SECMOD_NewModuleListElement(void) {
}
return newModList;
}
+
/*
* make a new reference to a module so It doesn't go away on us
*/
SECMODModule *
-SECMOD_ReferenceModule(SECMODModule *module) {
+SECMOD_ReferenceModule(SECMODModule *module)
+{
PK11_USE_THREADS(PZ_Lock((PZLock *)module->refLock);)
PORT_Assert(module->refCount > 0);
@@ -656,7 +732,8 @@ SECMOD_ReferenceModule(SECMODModule *module) {
/* destroy an existing module */
void
-SECMOD_DestroyModule(SECMODModule *module) {
+SECMOD_DestroyModule(SECMODModule *module)
+{
PRBool willfree = PR_FALSE;
int slotCount;
int i;
@@ -703,7 +780,8 @@ SECMOD_DestroyModule(SECMODModule *module) {
/* we can only get here if we've destroyed the module, or some one has
* erroneously freed a slot that wasn't referenced. */
void
-SECMOD_SlotDestroyModule(SECMODModule *module, PRBool fromSlot) {
+SECMOD_SlotDestroyModule(SECMODModule *module, PRBool fromSlot)
+{
PRBool willfree = PR_FALSE;
if (fromSlot) {
PORT_Assert(module->refCount == 0);
@@ -733,7 +811,8 @@ SECMOD_SlotDestroyModule(SECMODModule *module, PRBool fromSlot) {
* on the chain. It makes it easy to implement for loops to delete
* the chain. It also make deleting a single element easy */
SECMODModuleList *
-SECMOD_DestroyModuleListElement(SECMODModuleList *element) {
+SECMOD_DestroyModuleListElement(SECMODModuleList *element)
+{
SECMODModuleList *next = element->next;
if (element->module) {
@@ -749,7 +828,8 @@ SECMOD_DestroyModuleListElement(SECMODModuleList *element) {
* Destroy an entire module list
*/
void
-SECMOD_DestroyModuleList(SECMODModuleList *list) {
+SECMOD_DestroyModuleList(SECMODModuleList *list)
+{
SECMODModuleList *lp;
for ( lp = list; lp != NULL; lp = SECMOD_DestroyModuleListElement(lp)) ;
@@ -760,3 +840,331 @@ SECMOD_CanDeleteInternalModule(void)
{
return (PRBool) (pendingModule == NULL);
}
+
+/*
+ * check to see if the module has added new slots. PKCS 11 v2.20 allows for
+ * modules to add new slots, but never remove them. Slots cannot be added
+ * between a call to C_GetSlotLlist(Flag, NULL, &count) and the subsequent
+ * C_GetSlotList(flag, &data, &count) so that the array doesn't accidently
+ * grow on the caller. It is permissible for the slots to increase between
+ * successive calls with NULL to get the size.
+ */
+SECStatus
+SECMOD_UpdateSlotList(SECMODModule *mod)
+{
+ CK_RV crv;
+ CK_ULONG count;
+ int i, oldCount;
+ PRBool freeRef = PR_FALSE;
+ void *mark;
+ CK_ULONG *slotIDs = NULL;
+ PK11SlotInfo **newSlots = NULL;
+ PK11SlotInfo **oldSlots = NULL;
+
+ /* C_GetSlotList is not a session function, make sure
+ * calls are serialized */
+ PZ_Lock(mod->refLock);
+ freeRef = PR_TRUE;
+ /* see if the number of slots have changed */
+ crv = PK11_GETTAB(mod)->C_GetSlotList(PR_FALSE, NULL, &count);
+ if (crv != CKR_OK) {
+ PORT_SetError(PK11_MapError(crv));
+ goto loser;
+ }
+ /* nothing new, blow out early, we want this function to be quick
+ * and cheap in the normal case */
+ if (count == mod->slotCount) {
+ PZ_Unlock(mod->refLock);
+ return SECSuccess;
+ }
+ if (count < mod->slotCount) {
+ /* shouldn't happen with a properly functioning PKCS #11 module */
+ PORT_SetError( SEC_ERROR_INCOMPATIBLE_PKCS11 );
+ goto loser;
+ }
+
+ /* get the new slot list */
+ slotIDs = PORT_NewArray(CK_SLOT_ID, count);
+ if (slotIDs == NULL) {
+ goto loser;
+ }
+
+ crv = PK11_GETTAB(mod)->C_GetSlotList(PR_FALSE, slotIDs, &count);
+ if (crv != CKR_OK) {
+ PORT_SetError(PK11_MapError(crv));
+ goto loser;
+ }
+ freeRef = PR_FALSE;
+ PZ_Unlock(mod->refLock);
+ mark = PORT_ArenaMark(mod->arena);
+ if (mark == NULL) {
+ goto loser;
+ }
+ newSlots = PORT_ArenaZNewArray(mod->arena,PK11SlotInfo *,count);
+
+ /* walk down the new slot ID list returned from the module. We keep
+ * the old slots which match a returned ID, and we initialize the new
+ * slots. */
+ for (i=0; i < count; i++) {
+ PK11SlotInfo *slot = SECMOD_FindSlotByID(mod,slotIDs[i]);
+
+ if (!slot) {
+ /* we have a new slot create a new slot data structure */
+ slot = PK11_NewSlotInfo(mod);
+ if (!slot) {
+ goto loser;
+ }
+ PK11_InitSlot(mod, slotIDs[i], slot);
+ STAN_InitTokenForSlotInfo(NULL, slot);
+ }
+ newSlots[i] = slot;
+ }
+ STAN_ResetTokenInterator(NULL);
+ PORT_Free(slotIDs);
+ slotIDs = NULL;
+ PORT_ArenaUnmark(mod->arena, mark);
+
+ /* until this point we're still using the old slot list. Now we update
+ * module slot list. We update the slots (array) first then the count,
+ * since we've already guarrenteed that count has increased (just in case
+ * someone is looking at the slots field of module without holding the
+ * moduleLock */
+ SECMOD_GetWriteLock(moduleLock);
+ oldCount =mod->slotCount;
+ oldSlots = mod->slots;
+ mod->slots = newSlots; /* typical arena 'leak'... old mod->slots is
+ * allocated out of the module arena and won't
+ * be freed until the module is freed */
+ mod->slotCount = count;
+ SECMOD_ReleaseWriteLock(moduleLock);
+ /* free our old references before forgetting about oldSlot*/
+ for (i=0; i < oldCount; i++) {
+ PK11_FreeSlot(oldSlots[i]);
+ }
+ return SECSuccess;
+
+loser:
+ if (freeRef) {
+ PZ_Unlock(mod->refLock);
+ }
+ if (slotIDs) {
+ PORT_Free(slotIDs);
+ }
+ /* free all the slots we allocated. newSlots are part of the
+ * mod arena. NOTE: the newSlots array contain both new and old
+ * slots, but we kept a reference to the old slots when we built the new
+ * array, so we need to free all the slots in newSlots array. */
+ if (newSlots) {
+ for (i=0; i < count; i++) {
+ if (newSlots[i] == NULL) {
+ break; /* hit the last one */
+ }
+ PK11_FreeSlot(newSlots[i]);
+ }
+ }
+ /* must come after freeing newSlots */
+ if (mark) {
+ PORT_ArenaRelease(mod->arena, mark);
+ }
+ return SECFailure;
+}
+
+/*
+ * this handles modules that do not support C_WaitForSlotEvent().
+ * The internal flags are stored. Note that C_WaitForSlotEvent() does not
+ * have a timeout, so we don't have one for handleWaitForSlotEvent() either.
+ */
+PK11SlotInfo *
+secmod_HandleWaitForSlotEvent(SECMODModule *mod, unsigned long flags,
+ PRIntervalTime latency)
+{
+ PRBool removableSlotsFound = PR_FALSE;
+ int i;
+ int error = SEC_ERROR_NO_EVENT;
+
+ PZ_Lock(mod->refLock);
+ if (mod->evControlMask & SECMOD_END_WAIT) {
+ mod->evControlMask &= ~SECMOD_END_WAIT;
+ PZ_Unlock(mod->refLock);
+ PORT_SetError(SEC_ERROR_NO_EVENT);
+ return NULL;
+ }
+ mod->evControlMask |= SECMOD_WAIT_SIMULATED_EVENT;
+ while (mod->evControlMask & SECMOD_WAIT_SIMULATED_EVENT) {
+ PZ_Unlock(mod->refLock);
+ /* now is a good time to see if new slots have been added */
+ SECMOD_UpdateSlotList(mod);
+
+ /* loop through all the slots on a module */
+ SECMOD_GetReadLock(moduleLock);
+ for (i=0; i < mod->slotCount; i++) {
+ PK11SlotInfo *slot = mod->slots[i];
+ uint16 series;
+ PRBool present;
+
+ /* perm modules do not change */
+ if (slot->isPerm) {
+ continue;
+ }
+ removableSlotsFound = PR_TRUE;
+ /* simulate the PKCS #11 module flags. are the flags different
+ * from the last time we called? */
+ series = slot->series;
+ present = PK11_IsPresent(slot);
+ if ((slot->flagSeries != series) || (slot->flagState != present)) {
+ slot->flagState = present;
+ slot->flagSeries = series;
+ SECMOD_ReleaseReadLock(moduleLock);
+ PZ_Lock(mod->refLock);
+ mod->evControlMask &= ~SECMOD_END_WAIT;
+ PZ_Unlock(mod->refLock);
+ return PK11_ReferenceSlot(slot);
+ }
+ }
+ SECMOD_ReleaseReadLock(moduleLock);
+ /* if everything was perm modules, don't lock up forever */
+ if (!removableSlotsFound) {
+ error =SEC_ERROR_NO_SLOT_SELECTED;
+ PZ_Lock(mod->refLock);
+ break;
+ }
+ if (flags & CKF_DONT_BLOCK) {
+ PZ_Lock(mod->refLock);
+ break;
+ }
+ PR_Sleep(latency);
+ PZ_Lock(mod->refLock);
+ }
+ mod->evControlMask &= ~SECMOD_END_WAIT;
+ PZ_Unlock(mod->refLock);
+ PORT_SetError(error);
+ return NULL;
+}
+
+/*
+ * this function waits for a token event on any slot of a given module
+ * This function should not be called from more than one thread of the
+ * same process (though other threads can make other library calls
+ * on this module while this call is blocked).
+ */
+PK11SlotInfo *
+SECMOD_WaitForAnyTokenEvent(SECMODModule *mod, unsigned long flags,
+ PRIntervalTime latency)
+{
+ CK_SLOT_ID id;
+ CK_RV crv;
+ PK11SlotInfo *slot;
+
+ /* first the the PKCS #11 call */
+ PZ_Lock(mod->refLock);
+ if (mod->evControlMask & SECMOD_END_WAIT) {
+ goto end_wait;
+ }
+ mod->evControlMask |= SECMOD_WAIT_PKCS11_EVENT;
+ PZ_Unlock(mod->refLock);
+ crv = PK11_GETTAB(mod)->C_WaitForSlotEvent(flags, &id, NULL);
+ PZ_Lock(mod->refLock);
+ mod->evControlMask &= ~SECMOD_WAIT_PKCS11_EVENT;
+ /* if we are in end wait, short circuit now, don't even risk
+ * going into secmod_HandleWaitForSlotEvent */
+ if (mod->evControlMask & SECMOD_END_WAIT) {
+ goto end_wait;
+ }
+ PZ_Unlock(mod->refLock);
+ if (crv == CKR_FUNCTION_NOT_SUPPORTED) {
+ /* module doesn't support that call, simulate it */
+ return secmod_HandleWaitForSlotEvent(mod, flags, latency);
+ }
+ if (crv != CKR_OK) {
+ /* we can get this error if finalize was called while we were
+ * still running. This is the only way to force a C_WaitForSlotEvent()
+ * to return in PKCS #11. In this case, just return that there
+ * was no event. */
+ if (crv == CKR_CRYPTOKI_NOT_INITIALIZED) {
+ PORT_SetError(SEC_ERROR_NO_EVENT);
+ } else {
+ PORT_SetError(PK11_MapError(crv));
+ }
+ return NULL;
+ }
+ slot = SECMOD_FindSlotByID(mod, id);
+ if (slot == NULL) {
+ /* possibly a new slot that was added? */
+ SECMOD_UpdateSlotList(mod);
+ slot = SECMOD_FindSlotByID(mod, id);
+ }
+ return slot;
+
+ /* must be called with the lock on. */
+end_wait:
+ mod->evControlMask &= ~SECMOD_END_WAIT;
+ PZ_Unlock(mod->refLock);
+ PORT_SetError(SEC_ERROR_NO_EVENT);
+ return NULL;
+}
+
+/*
+ * This function "wakes up" WaitForAnyTokenEvent. It's a pretty drastic
+ * function, possibly bringing down the pkcs #11 module in question. This
+ * should be OK because 1) it does reinitialize, and 2) it should only be
+ * called when we are on our way to tear the whole system down anyway.
+ */
+SECStatus
+SECMOD_CancelWait(SECMODModule *mod)
+{
+ unsigned long controlMask = mod->evControlMask;
+ SECStatus rv = SECSuccess;
+ CK_RV crv;
+
+ PZ_Lock(mod->refLock);
+ mod->evControlMask |= SECMOD_END_WAIT;
+ controlMask = mod->evControlMask;
+ if (controlMask & SECMOD_WAIT_PKCS11_EVENT) {
+ /* NOTE: this call will drop all transient keys, in progress
+ * operations, and any authentication. This is the only documented
+ * way to get WaitForSlotEvent to return. Also note: for non-thread
+ * safe tokens, we need to hold the module lock, this is not yet at
+ * system shutdown/starup time, so we need to protect these calls */
+ crv = PK11_GETTAB(mod)->C_Finalize(NULL);
+ /* ok, we slammed the module down, now we need to reinit it in case
+ * we intend to use it again */
+ if (crv = CKR_OK) {
+ secmod_ModuleInit(mod);
+ } else {
+ /* Finalized failed for some reason, notify the application
+ * so maybe it has a prayer of recovering... */
+ PORT_SetError(PK11_MapError(crv));
+ rv = SECFailure;
+ }
+ } else if (controlMask & SECMOD_WAIT_SIMULATED_EVENT) {
+ mod->evControlMask &= ~SECMOD_WAIT_SIMULATED_EVENT;
+ /* Simulated events will eventually timeout
+ * and wake up in the loop */
+ }
+ PZ_Unlock(mod->refLock);
+ return rv;
+}
+
+/*
+ * check to see if the module has removable slots that we may need to
+ * watch for.
+ */
+PRBool
+SECMOD_HasRemovableSlots(SECMODModule *mod)
+{
+ int i;
+ PRBool ret = PR_FALSE;
+
+ SECMOD_GetReadLock(moduleLock);
+ for (i=0; i < mod->slotCount; i++) {
+ PK11SlotInfo *slot = mod->slots[i];
+ /* perm modules are not inserted or removed */
+ if (slot->isPerm) {
+ continue;
+ }
+ ret = PR_TRUE;
+ break;
+ }
+ SECMOD_ReleaseReadLock(moduleLock);
+ return ret;
+}
diff --git a/security/nss/lib/pk11wrap/secmod.h b/security/nss/lib/pk11wrap/secmod.h
index 1c29486ab..a973de0d8 100644
--- a/security/nss/lib/pk11wrap/secmod.h
+++ b/security/nss/lib/pk11wrap/secmod.h
@@ -37,6 +37,7 @@
#define _SEDMOD_H_
#include "seccomon.h"
#include "secmodt.h"
+#include "prinrval.h"
#define PKCS11_USE_THREADS
@@ -157,6 +158,25 @@ extern unsigned long SECMOD_InternaltoPubMechFlags(unsigned long internalFlags);
extern unsigned long SECMOD_PubCipherFlagstoInternal(unsigned long publicFlags);
extern unsigned long SECMOD_InternaltoPubCipherFlags(unsigned long internalFlags);
+PRBool SECMOD_HasRemovableSlots(SECMODModule *mod);
+PK11SlotInfo *SECMOD_WaitForAnyTokenEvent(SECMODModule *mod,
+ unsigned long flags, PRIntervalTime latency);
+/*
+ * Warning: the SECMOD_CancelWait function is highly destructive, potentially
+ * finalizing the module 'mod' (causing inprogress operations to fail,
+ * and session key material to disappear). It should only be called when
+ * shutting down the module.
+ */
+SECStatus SECMOD_CancelWait(SECMODModule *mod);
+/*
+ * check to see if the module has added new slots. PKCS 11 v2.20 allows for
+ * modules to add new slots, but never remove them. Slots not be added between
+ * a call to C_GetSlotLlist(Flag, NULL, &count) and the corresponding
+ * C_GetSlotList(flag, &data, &count) so that the array doesn't accidently
+ * grow on the caller. It is permissible for the slots to increase between
+ * corresponding calls with NULL to get the size.
+ */
+SECStatus SECMOD_UpdateSlotList(SECMODModule *mod);
SEC_END_PROTOS
#endif
diff --git a/security/nss/lib/pk11wrap/secmodi.h b/security/nss/lib/pk11wrap/secmodi.h
index 82e9cb2c7..8542e6f33 100644
--- a/security/nss/lib/pk11wrap/secmodi.h
+++ b/security/nss/lib/pk11wrap/secmodi.h
@@ -60,6 +60,7 @@ extern SECStatus SECMOD_AddPermDB(SECMODModule *module);
extern int secmod_PrivateModuleCount;
extern void SECMOD_Init(void);
+SECStatus secmod_ModuleInit(SECMODModule *mod);
/* list managment */
extern SECStatus SECMOD_AddModuleToList(SECMODModule *newModule);
@@ -114,4 +115,6 @@ extern void pk11sdr_Shutdown(void);
SEC_END_PROTOS
#endif
+PRBool pk11_LoginStillRequired(PK11SlotInfo *slot, void *wincx);
+
diff --git a/security/nss/lib/pk11wrap/secmodt.h b/security/nss/lib/pk11wrap/secmodt.h
index 4d34e87c3..01743944b 100644
--- a/security/nss/lib/pk11wrap/secmodt.h
+++ b/security/nss/lib/pk11wrap/secmodt.h
@@ -62,6 +62,7 @@ typedef struct PK11SlotListElementStr PK11SlotListElement;
typedef struct PK11RSAGenParamsStr PK11RSAGenParams;
typedef unsigned long SECMODModuleID;
typedef struct PK11DefaultArrayEntryStr PK11DefaultArrayEntry;
+typedef struct PK11GenericObjectStr PK11GenericObject;
struct SECMODModuleStr {
PRArenaPool *arena;
@@ -92,8 +93,26 @@ struct SECMODModuleStr {
PRBool moduleDBOnly; /* this module only has lists of PKCS #11 modules */
int trustOrder; /* order for this module's certificate trust rollup */
int cipherOrder; /* order for cipher operations */
+ unsigned long evControlMask; /* control the running and shutdown of slot
+ * events (SECMOD_WaitForAnyTokenEvent) */
};
+/* evControlMask flags */
+/*
+ * These bits tell the current state of a SECMOD_WaitForAnyTokenEvent.
+ *
+ * SECMOD_WAIT_PKCS11_EVENT - we're waiting in the PKCS #11 module in
+ * C_WaitForSlotEvent().
+ * SECMOD_WAIT_SIMULATED_EVENT - we're waiting in the NSS simulation code
+ * which polls for token insertion and removal events.
+ * SECMOD_END_WAIT - SECMOD_CancelWait has been called while the module is
+ * waiting in SECMOD_WaitForAnyTokenEvent. SECMOD_WaitForAnyTokenEvent
+ * should return immediately to it's caller.
+ */
+#define SECMOD_END_WAIT 0x01
+#define SECMOD_WAIT_SIMULATED_EVENT 0x02
+#define SECMOD_WAIT_PKCS11_EVENT 0x04
+
struct SECMODModuleListStr {
SECMODModuleList *next;
SECMODModule *module;
@@ -212,6 +231,17 @@ typedef enum {
PK11_DIS_TOKEN_NOT_PRESENT = 4
} PK11DisableReasons;
+/* types of PKCS #11 objects */
+typedef enum {
+ PK11_TypeGeneric = 0,
+ PK11_TypePrivKey = 1,
+ PK11_TypePubKey = 2,
+ PK11_TypeCert = 3,
+ PK11_TypeSymKey = 4
+} PK11ObjectType;
+
+
+
/* function pointer type for password callback function.
* This type is passed in to PK11_SetPasswordFunc()
*/
diff --git a/security/nss/lib/pk11wrap/secmodti.h b/security/nss/lib/pk11wrap/secmodti.h
index b991b46e8..5763bc28c 100644
--- a/security/nss/lib/pk11wrap/secmodti.h
+++ b/security/nss/lib/pk11wrap/secmodti.h
@@ -44,6 +44,8 @@
#ifndef NSS_3_4_CODE
#define NSS_3_4_CODE
+#include "secmodt.h"
+#include "pkcs11t.h"
#endif /* NSS_3_4_CODE */
#include "nssdevt.h"
@@ -108,6 +110,10 @@ struct PK11SlotInfoStr {
uint16 series; /* break up the slot info into various groups of
* inserted tokens so that keys and certs can be
* invalidated */
+ uint16 flagSeries; /* record the last series for the last event
+ * returned for this slot */
+ PRBool flagState; /* record the state of the last event returned for this
+ * slot. */
uint16 wrapKey; /* current wrapping key for SSL master secrets */
CK_MECHANISM_TYPE wrapMechanism;
/* current wrapping mechanism for current wrapKey */
@@ -189,3 +195,14 @@ struct PK11ContextStr {
};
#endif /* _SECMODTI_H_ */
+/*
+ * structure to hold a pointer to a unique PKCS #11 object
+ * (pointer to the slot and the object id).
+ */
+struct PK11GenericObjectStr {
+ PK11GenericObject *prev;
+ PK11GenericObject *next;
+ PK11SlotInfo *slot;
+ CK_OBJECT_HANDLE objectID;
+};
+
diff --git a/security/nss/lib/pkcs7/certread.c b/security/nss/lib/pkcs7/certread.c
index af5504f94..7a856df64 100644
--- a/security/nss/lib/pkcs7/certread.c
+++ b/security/nss/lib/pkcs7/certread.c
@@ -294,27 +294,22 @@ CERT_DecodeCertPackage(char *certbuf,
void *arg)
{
unsigned char *cp;
- int seqLen, seqLenLen;
- int cl;
- unsigned char *bincert = NULL, *certbegin = NULL, *certend = NULL;
- unsigned int binLen;
- char *ascCert = NULL;
- int asciilen;
- CERTCertificate *cert;
- SECItem certitem, oiditem;
- SECStatus rv;
- SECOidData *oiddata;
- SECItem *pcertitem = &certitem;
+ unsigned char *bincert = NULL;
+ char * ascCert = NULL;
+ SECStatus rv;
if ( certbuf == NULL ) {
return(SECFailure);
}
- cert = 0;
cp = (unsigned char *)certbuf;
/* is a DER encoded certificate of some type? */
if ( ( *cp & 0x1f ) == SEC_ASN1_SEQUENCE ) {
+ SECItem certitem;
+ SECItem *pcertitem = &certitem;
+ int seqLen, seqLenLen;
+
cp++;
if ( *cp & 0x80) {
@@ -370,6 +365,8 @@ CERT_DecodeCertPackage(char *certbuf,
return(rv);
} else if ( cp[0] == SEC_ASN1_OBJECT_ID ) {
+ SECOidData *oiddata;
+ SECItem oiditem;
/* XXX - assume DER encoding of OID len!! */
oiditem.len = cp[1];
oiditem.data = (unsigned char *)&cp[2];
@@ -404,10 +401,32 @@ CERT_DecodeCertPackage(char *certbuf,
/* now look for a netscape base64 ascii encoded cert */
notder:
- cp = (unsigned char *)certbuf;
+ {
+ unsigned char *certbegin = NULL;
+ unsigned char *certend = NULL;
+ char *pc;
+ int cl;
+
+ /* Convert the ASCII data into a nul-terminated string */
+ ascCert = (char *)PORT_Alloc(certlen + 1);
+ if (!ascCert) {
+ rv = SECFailure;
+ goto loser;
+ }
+
+ PORT_Memcpy(ascCert, certbuf, certlen);
+ ascCert[certlen] = '\0';
+
+ pc = PORT_Strchr(ascCert, '\n'); /* find an EOL */
+ if (!pc) { /* maybe this is a MAC file */
+ pc = ascCert;
+ while (*pc && NULL != (pc = PORT_Strchr(pc, '\r'))) {
+ *pc++ = '\n';
+ }
+ }
+
+ cp = (unsigned char *)ascCert;
cl = certlen;
- certbegin = 0;
- certend = 0;
/* find the beginning marker */
while ( cl > sizeof(NS_CERT_HEADER) ) {
@@ -432,7 +451,6 @@ notder:
}
if ( certbegin ) {
-
/* find the ending marker */
while ( cl > sizeof(NS_CERT_TRAILER) ) {
if ( !PORT_Strncasecmp((char *)cp, NS_CERT_TRAILER,
@@ -456,20 +474,11 @@ notder:
}
if ( certbegin && certend ) {
+ unsigned int binLen;
- /* Convert the ASCII data into a nul-terminated string */
- asciilen = certend - certbegin;
- ascCert = (char *)PORT_Alloc(asciilen+1);
- if (!ascCert) {
- rv = SECFailure;
- goto loser;
- }
-
- PORT_Memcpy(ascCert, certbegin, asciilen);
- ascCert[asciilen] = '\0';
-
+ *certend = 0;
/* convert to binary */
- bincert = ATOB_AsciiToData(ascCert, &binLen);
+ bincert = ATOB_AsciiToData(certbegin, &binLen);
if (!bincert) {
rv = SECFailure;
goto loser;
@@ -481,6 +490,7 @@ notder:
} else {
rv = SECFailure;
}
+ }
loser:
diff --git a/security/nss/lib/pki/pki3hack.c b/security/nss/lib/pki/pki3hack.c
index eb8dd7f78..01f87fcb1 100644
--- a/security/nss/lib/pki/pki3hack.c
+++ b/security/nss/lib/pki/pki3hack.c
@@ -70,6 +70,7 @@ static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
#include "pk11func.h"
#include "pkistore.h"
#include "secmod.h"
+#include "nssrwlk.h"
NSSTrustDomain *g_default_trust_domain = NULL;
@@ -91,12 +92,39 @@ extern const NSSError NSS_ERROR_ALREADY_INITIALIZED;
extern const NSSError NSS_ERROR_INTERNAL_ERROR;
NSS_IMPLEMENT PRStatus
+STAN_InitTokenForSlotInfo(NSSTrustDomain *td, PK11SlotInfo *slot)
+{
+ NSSToken *token;
+ if (!td) {
+ td = g_default_trust_domain;
+ }
+ token = nssToken_CreateFromPK11SlotInfo(td, slot);
+ PK11Slot_SetNSSToken(slot, token);
+ NSSRWLock_LockWrite(td->tokensLock);
+ nssList_Add(td->tokenList, token);
+ NSSRWLock_UnlockWrite(td->tokensLock);
+ return PR_SUCCESS;
+}
+
+NSS_IMPLEMENT PRStatus
+STAN_ResetTokenInterator(NSSTrustDomain *td)
+{
+ if (!td) {
+ td = g_default_trust_domain;
+ }
+ NSSRWLock_LockWrite(td->tokensLock);
+ nssListIterator_Destroy(td->tokens);
+ td->tokens = nssList_CreateIterator(td->tokenList);
+ NSSRWLock_UnlockWrite(td->tokensLock);
+ return PR_SUCCESS;
+}
+
+NSS_IMPLEMENT PRStatus
STAN_LoadDefaultNSS3TrustDomain (
void
)
{
NSSTrustDomain *td;
- NSSToken *token;
SECMODModuleList *mlp;
SECMODListLock *moduleLock = SECMOD_GetDefaultModuleListLock();
int i;
@@ -110,41 +138,48 @@ STAN_LoadDefaultNSS3TrustDomain (
if (!td) {
return PR_FAILURE;
}
- td->tokenList = nssList_Create(td->arena, PR_TRUE);
+ /*
+ * Deadlock warning: we should never acquire the moduleLock while
+ * we hold the tokensLock. We can use the NSSRWLock Rank feature to
+ * guarrentee this. tokensLock have a higher rank than module lock.
+ */
SECMOD_GetReadLock(moduleLock);
+ NSSRWLock_LockWrite(td->tokensLock);
+ td->tokenList = nssList_Create(td->arena, PR_TRUE);
for (mlp = SECMOD_GetDefaultModuleList(); mlp != NULL; mlp=mlp->next) {
for (i=0; i < mlp->module->slotCount; i++) {
- token = nssToken_CreateFromPK11SlotInfo(td, mlp->module->slots[i]);
- PK11Slot_SetNSSToken(mlp->module->slots[i], token);
- nssList_Add(td->tokenList, token);
+ STAN_InitTokenForSlotInfo(td, mlp->module->slots[i]);
}
}
- SECMOD_ReleaseReadLock(moduleLock);
td->tokens = nssList_CreateIterator(td->tokenList);
+ NSSRWLock_UnlockWrite(td->tokensLock);
+ SECMOD_ReleaseReadLock(moduleLock);
g_default_trust_domain = td;
g_default_crypto_context = NSSTrustDomain_CreateCryptoContext(td, NULL);
return PR_SUCCESS;
}
+/*
+ * must be called holding the ModuleListLock (either read or write).
+ */
NSS_IMPLEMENT SECStatus
STAN_AddModuleToDefaultTrustDomain (
SECMODModule *module
)
{
- NSSToken *token;
NSSTrustDomain *td;
int i;
td = STAN_GetDefaultTrustDomain();
for (i=0; i<module->slotCount; i++) {
- token = nssToken_CreateFromPK11SlotInfo(td, module->slots[i]);
- PK11Slot_SetNSSToken(module->slots[i], token);
- nssList_Add(td->tokenList, token);
+ STAN_InitTokenForSlotInfo(td, module->slots[i]);
}
- nssListIterator_Destroy(td->tokens);
- td->tokens = nssList_CreateIterator(td->tokenList);
+ STAN_ResetTokenInterator(td);
return SECSuccess;
}
+/*
+ * must be called holding the ModuleListLock (either read or write).
+ */
NSS_IMPLEMENT SECStatus
STAN_RemoveModuleFromDefaultTrustDomain (
SECMODModule *module
@@ -154,6 +189,7 @@ STAN_RemoveModuleFromDefaultTrustDomain (
NSSTrustDomain *td;
int i;
td = STAN_GetDefaultTrustDomain();
+ NSSRWLock_LockWrite(td->tokensLock);
for (i=0; i<module->slotCount; i++) {
token = PK11Slot_GetNSSToken(module->slots[i]);
if (token) {
@@ -165,6 +201,7 @@ STAN_RemoveModuleFromDefaultTrustDomain (
}
nssListIterator_Destroy(td->tokens);
td->tokens = nssList_CreateIterator(td->tokenList);
+ NSSRWLock_UnlockWrite(td->tokensLock);
return SECSuccess;
}
@@ -792,6 +829,23 @@ STAN_GetCERTCertificate(NSSCertificate *c)
{
return stan_GetCERTCertificate(c, PR_FALSE);
}
+/*
+ * Many callers of STAN_GetCERTCertificate() intend that
+ * the CERTCertificate returned inherits the reference to the
+ * NSSCertificate. For these callers it's convenient to have
+ * this function 'own' the reference and either return a valid
+ * CERTCertificate structure which inherits the reference or
+ * destroy the reference to NSSCertificate and returns NULL.
+ */
+NSS_IMPLEMENT CERTCertificate *
+STAN_GetCERTCertificateOrRelease(NSSCertificate *c)
+{
+ CERTCertificate *nss3cert = stan_GetCERTCertificate(c, PR_FALSE);
+ if (!nss3cert) {
+ nssCertificate_Destroy(c);
+ }
+ return nss3cert;
+}
static nssTrustLevel
get_stan_trust(unsigned int t, PRBool isClientAuth)
@@ -989,9 +1043,11 @@ STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust)
tok = stan_GetTrustToken(c);
moving_object = PR_FALSE;
if (tok && PK11_IsReadOnly(tok->pk11slot)) {
+ NSSRWLock_LockRead(td->tokensLock);
tokens = nssList_CreateIterator(td->tokenList);
if (!tokens) {
nssrv = PR_FAILURE;
+ NSSRWLock_UnlockRead(td->tokensLock);
goto done;
}
for (tok = (NSSToken *)nssListIterator_Start(tokens);
@@ -1002,6 +1058,7 @@ STAN_ChangeCertTrust(CERTCertificate *cc, CERTCertTrust *trust)
}
nssListIterator_Finish(tokens);
nssListIterator_Destroy(tokens);
+ NSSRWLock_UnlockRead(td->tokensLock);
moving_object = PR_TRUE;
}
if (tok) {
diff --git a/security/nss/lib/pki/pki3hack.h b/security/nss/lib/pki/pki3hack.h
index 6e50725d3..85e8d92ab 100644
--- a/security/nss/lib/pki/pki3hack.h
+++ b/security/nss/lib/pki/pki3hack.h
@@ -71,25 +71,22 @@ NSS_EXTERN NSSCryptoContext *
STAN_GetDefaultCryptoContext();
NSS_EXTERN PRStatus
-STAN_LoadDefaultNSS3TrustDomain
-(
- void
-);
+STAN_InitTokenForSlotInfo(NSSTrustDomain *td, PK11SlotInfo *slot);
+
+NSS_EXTERN PRStatus
+STAN_ResetTokenInterator(NSSTrustDomain *td);
+
+NSS_EXTERN PRStatus
+STAN_LoadDefaultNSS3TrustDomain(void);
NSS_EXTERN PRStatus
STAN_Shutdown();
NSS_EXTERN SECStatus
-STAN_AddModuleToDefaultTrustDomain
-(
- SECMODModule *module
-);
+STAN_AddModuleToDefaultTrustDomain(SECMODModule *module);
NSS_EXTERN SECStatus
-STAN_RemoveModuleFromDefaultTrustDomain
-(
- SECMODModule *module
-);
+STAN_RemoveModuleFromDefaultTrustDomain(SECMODModule *module);
NSS_EXTERN CERTCertificate *
STAN_ForceCERTCertificateUpdate(NSSCertificate *c);
@@ -97,6 +94,9 @@ STAN_ForceCERTCertificateUpdate(NSSCertificate *c);
NSS_EXTERN CERTCertificate *
STAN_GetCERTCertificate(NSSCertificate *c);
+NSS_EXTERN CERTCertificate *
+STAN_GetCERTCertificateOrRelease(NSSCertificate *c);
+
NSS_EXTERN NSSCertificate *
STAN_GetNSSCertificate(CERTCertificate *c);
diff --git a/security/nss/lib/pki/pkit.h b/security/nss/lib/pki/pkit.h
index f8bd067b9..918cb0b9b 100644
--- a/security/nss/lib/pki/pkit.h
+++ b/security/nss/lib/pki/pkit.h
@@ -69,6 +69,10 @@ static const char PKIT_CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
#include "devt.h"
#endif /* DEVT_H */
+#ifndef nssrwlkt_h__
+#include "nssrwlkt.h"
+#endif /* nssrwlkt_h__ */
+
PR_BEGIN_EXTERN_C
/*
@@ -170,6 +174,7 @@ struct NSSTrustDomainStr {
nssList *tokenList;
nssListIterator *tokens;
nssTDCertificateCache *cache;
+ NSSRWLock *tokensLock;
#ifdef NSS_3_4_CODE
void *spkDigestInfo;
CERTStatusConfig *statusConfig;
diff --git a/security/nss/lib/pki/trustdomain.c b/security/nss/lib/pki/trustdomain.c
index 24e249264..ca39bdeb0 100644
--- a/security/nss/lib/pki/trustdomain.c
+++ b/security/nss/lib/pki/trustdomain.c
@@ -52,6 +52,8 @@ static const char CVS_ID[] = "@(#) $RCSfile$ $Revision$ $Date$ $Name$";
#include "pki3hack.h"
#endif
+#include "nssrwlk.h"
+
#define NSSTRUSTDOMAIN_DEFAULT_CACHE_SIZE 32
#ifdef PURE_STAN_BUILD
@@ -90,6 +92,11 @@ NSSTrustDomain_Create (
if (!rvTD) {
goto loser;
}
+ /* protect the token list and the token iterator */
+ rvTD->tokensLock = NSSRWLock_New(100, "tokens");
+ if (!rvTD->tokensLock) {
+ goto loser;
+ }
nssTrustDomain_InitializeCache(rvTD, NSSTRUSTDOMAIN_DEFAULT_CACHE_SIZE);
rvTD->arena = arena;
rvTD->refCount = 1;
@@ -98,6 +105,9 @@ NSSTrustDomain_Create (
#endif
return rvTD;
loser:
+ if (rvTD && rvTD->tokensLock) {
+ NSSRWLock_Destroy(rvTD->tokensLock);
+ }
nssArena_Destroy(arena);
return (NSSTrustDomain *)NULL;
}
@@ -124,6 +134,7 @@ NSSTrustDomain_Destroy (
nssList_Clear(td->tokenList, token_destructor);
nssList_Destroy(td->tokenList);
}
+ NSSRWLock_Destroy(td->tokensLock);
status = nssTrustDomain_DestroyCache(td);
if (status == PR_FAILURE) {
return status;
@@ -145,17 +156,21 @@ nssTrustDomain_GetActiveSlots (
NSSSlot **slots = NULL;
NSSToken **tp, **tokens;
*updateLevel = 1;
+ NSSRWLock_LockRead(td->tokensLock);
count = nssList_Count(td->tokenList);
tokens = nss_ZNEWARRAY(NULL, NSSToken *, count + 1);
if (!tokens) {
+ NSSRWLock_UnlockRead(td->tokensLock);
return NULL;
}
slots = nss_ZNEWARRAY(NULL, NSSSlot *, count + 1);
if (!slots) {
+ NSSRWLock_UnlockRead(td->tokensLock);
nss_ZFreeIf(tokens);
return NULL;
}
nssList_GetArray(td->tokenList, (void **)tokens, count);
+ NSSRWLock_UnlockRead(td->tokensLock);
count = 0;
for (tp = tokens; *tp; tp++) {
slots[count++] = nssToken_GetSlot(*tp);
@@ -272,6 +287,7 @@ NSSTrustDomain_FindTokenByName (
PRStatus nssrv;
NSSUTF8 *myName;
NSSToken *tok = NULL;
+ NSSRWLock_LockRead(td->tokensLock);
for (tok = (NSSToken *)nssListIterator_Start(td->tokens);
tok != (NSSToken *)NULL;
tok = (NSSToken *)nssListIterator_Next(td->tokens))
@@ -282,6 +298,7 @@ NSSTrustDomain_FindTokenByName (
}
}
nssListIterator_Finish(td->tokens);
+ NSSRWLock_UnlockRead(td->tokensLock);
return tok;
}
diff --git a/security/nss/lib/smime/config.mk b/security/nss/lib/smime/config.mk
index cd5c893a5..7bf4898a7 100644
--- a/security/nss/lib/smime/config.mk
+++ b/security/nss/lib/smime/config.mk
@@ -86,4 +86,9 @@ SHARED_LIBRARY_DIRS = \
../pkcs7 \
$(NULL)
+ifeq ($(OS_TARGET),SunOS)
+# The -R '$ORIGIN' linker option instructs this library to search for its
+# dependencies in the same directory where it resides.
+MKSHLIB += -R '$$ORIGIN'
+endif
diff --git a/security/nss/lib/smime/smime.def b/security/nss/lib/smime/smime.def
index 78c79501b..15c302a6e 100644
--- a/security/nss/lib/smime/smime.def
+++ b/security/nss/lib/smime/smime.def
@@ -247,3 +247,10 @@ SEC_PKCS7EncoderAbort;
;+ local:
;+ *;
;+};
+;+NSS_3.9.3 { # NSS 3.9.3 release
+;+ global:
+CERT_ConvertAndDecodeCertificate;
+SEC_PKCS7EncodeItem;
+;+ local:
+;+ *;
+;+};
diff --git a/security/nss/lib/softoken/config.mk b/security/nss/lib/softoken/config.mk
index adf0ea0df..81b5aadd8 100644
--- a/security/nss/lib/softoken/config.mk
+++ b/security/nss/lib/softoken/config.mk
@@ -84,14 +84,10 @@ EXTRA_SHARED_LIBS += \
endif
ifeq ($(OS_TARGET),SunOS)
-ifndef USE_64
-ifeq ($(CPU_ARCH),sparc)
-# The -R '$ORIGIN' linker option instructs libsoftokn3.so to search for its
-# dependencies (libfreebl_*.so) in the same directory where it resides.
+# The -R '$ORIGIN' linker option instructs this library to search for its
+# dependencies in the same directory where it resides.
MKSHLIB += -R '$$ORIGIN'
endif
-endif
-endif
ifeq ($(OS_TARGET),WINCE)
DEFINES += -DDBM_USING_NSPR
diff --git a/security/nss/lib/softoken/pk11db.c b/security/nss/lib/softoken/pk11db.c
index 220e897ba..b5ee79231 100644
--- a/security/nss/lib/softoken/pk11db.c
+++ b/security/nss/lib/softoken/pk11db.c
@@ -40,6 +40,7 @@
#include "pkcs11i.h"
#include "mcom_db.h"
#include "cdbhdl.h"
+#include "secerr.h"
#define FREE_CLEAR(p) if (p) { PORT_Free(p); p = NULL; }
@@ -510,6 +511,19 @@ secmod_FreeData(DBT *data)
}
}
+static void
+secmod_FreeSlotStrings(char **slotStrings, int count)
+{
+ int i;
+
+ for (i=0; i < count; i++) {
+ if (slotStrings[i]) {
+ PR_smprintf_free(slotStrings[i]);
+ slotStrings[i] = NULL;
+ }
+ }
+}
+
/*
* build a module from the data base entry.
*/
@@ -518,128 +532,229 @@ secmod_DecodeData(char *defParams, DBT *data, PRBool *retInternal)
{
secmodData *encoded;
secmodSlotData *slots;
- char *commonName = NULL,*dllName = NULL,*parameters = NULL;
+ PLArenaPool *arena;
+ char *commonName = NULL;
+ char *dllName = NULL;
+ char *parameters = NULL;
+ char *nss;
+ char *moduleSpec;
+ char **slotStrings = NULL;
unsigned char *names;
- unsigned short len;
unsigned long slotCount;
- unsigned short offset;
- PRBool isOldVersion = PR_FALSE;
- PRBool internal, isFIPS, isModuleDB=PR_FALSE, isModuleDBOnly=PR_FALSE;
- PRBool extended=PR_FALSE;
- PRBool hasRootCerts=PR_FALSE,hasRootTrust=PR_FALSE;
- unsigned long trustOrder=PK11_DEFAULT_TRUST_ORDER,
- cipherOrder=PK11_DEFAULT_CIPHER_ORDER;
- unsigned long ssl0=0, ssl1=0;
- char **slotStrings = NULL;
- unsigned long slotID,defaultFlags,timeout;
- char *nss,*moduleSpec;
+ unsigned long ssl0 =0;
+ unsigned long ssl1 =0;
+ unsigned long slotID;
+ unsigned long defaultFlags;
+ unsigned long timeout;
+ unsigned long trustOrder =PK11_DEFAULT_TRUST_ORDER;
+ unsigned long cipherOrder =PK11_DEFAULT_CIPHER_ORDER;
+ unsigned short len;
+ unsigned short namesOffset = 0; /* start of the names block */
+ unsigned long namesRunningOffset; /* offset to name we are
+ * currently processing */
+ unsigned short slotOffset;
+ PRBool isOldVersion = PR_FALSE;
+ PRBool internal;
+ PRBool isFIPS;
+ PRBool isModuleDB =PR_FALSE;
+ PRBool isModuleDBOnly =PR_FALSE;
+ PRBool extended =PR_FALSE;
int i;
- PLArenaPool *arena;
arena = PORT_NewArena(SEC_ASN1_DEFAULT_ARENA_SIZE);
- if (arena == NULL) return NULL;
+ if (arena == NULL)
+ return NULL;
+
+#define CHECK_SIZE(x) \
+ if ((unsigned int) data->size < (unsigned int)(x)) goto db_loser
+
+ /* -------------------------------------------------------------
+ ** Process the buffer header, which is the secmodData struct.
+ ** It may be an old or new version. Check the length for each.
+ */
+
+ CHECK_SIZE( offsetof(secmodData, trustOrder[0]) );
encoded = (secmodData *)data->data;
- names = (unsigned char *)data->data;
- offset = SECMOD_GETSHORT(encoded->slotOffset);
- slots = (secmodSlotData *) (names + offset + 2);
- slotCount = SECMOD_GETSHORT(names + offset);
- names += SECMOD_GETSHORT(encoded->nameStart);
- * retInternal = internal = (encoded->internal != 0) ? PR_TRUE: PR_FALSE;
- isFIPS = (encoded->fips != 0) ? PR_TRUE: PR_FALSE;
- len = SECMOD_GETSHORT(names);
+ internal = (encoded->internal != 0) ? PR_TRUE: PR_FALSE;
+ isFIPS = (encoded->fips != 0) ? PR_TRUE: PR_FALSE;
+ if (retInternal)
+ *retInternal = internal;
+ if (internal) {
+ parameters = PORT_ArenaStrdup(arena,defParams);
+ if (parameters == NULL)
+ goto loser;
+ }
if (internal && (encoded->major == SECMOD_DB_NOUI_VERSION_MAJOR) &&
(encoded->minor <= SECMOD_DB_NOUI_VERSION_MINOR)) {
isOldVersion = PR_TRUE;
}
-
if ((encoded->major == SECMOD_DB_EXT1_VERSION_MAJOR) &&
(encoded->minor >= SECMOD_DB_EXT1_VERSION_MINOR)) {
- trustOrder = SECMOD_GETLONG(encoded->trustOrder);
- cipherOrder = SECMOD_GETLONG(encoded->cipherOrder);
- isModuleDB = (encoded->isModuleDB != 0) ? PR_TRUE: PR_FALSE;
+ CHECK_SIZE( sizeof(secmodData));
+ trustOrder = SECMOD_GETLONG(encoded->trustOrder);
+ cipherOrder = SECMOD_GETLONG(encoded->cipherOrder);
+ isModuleDB = (encoded->isModuleDB != 0) ? PR_TRUE: PR_FALSE;
isModuleDBOnly = (encoded->isModuleDBOnly != 0) ? PR_TRUE: PR_FALSE;
- extended = PR_TRUE;
+ extended = PR_TRUE;
}
-
if (internal && !extended) {
trustOrder = 0;
cipherOrder = 100;
}
+ /* decode SSL cipher enable flags */
+ ssl0 = SECMOD_GETLONG(encoded->ssl);
+ ssl1 = SECMOD_GETLONG(encoded->ssl + 4);
+
+ slotOffset = SECMOD_GETSHORT(encoded->slotOffset);
+ namesOffset = SECMOD_GETSHORT(encoded->nameStart);
+
+
+ /*--------------------------------------------------------------
+ ** Now process the variable length set of names.
+ ** The names have this structure:
+ ** struct {
+ ** BYTE commonNameLen[ 2 ];
+ ** BYTE commonName [ commonNameLen ];
+ ** BTTE libNameLen [ 2 ];
+ ** BYTE libName [ libNameLen ];
+ ** If it is "extended" it also has these members:
+ ** BYTE initStringLen[ 2 ];
+ ** BYTE initString [ initStringLen ];
+ ** }
+ */
+
+ namesRunningOffset = namesOffset;
+ /* copy the module's common name */
+ CHECK_SIZE( namesRunningOffset + 2);
+ names = (unsigned char *)data->data;
+ len = SECMOD_GETSHORT(names+namesRunningOffset);
- /* decode the common name */
+ CHECK_SIZE( namesRunningOffset + 2 + len);
commonName = (char*)PORT_ArenaAlloc(arena,len+1);
- if (commonName == NULL) {
- PORT_FreeArena(arena,PR_TRUE);
- return NULL;
- }
- PORT_Memcpy(commonName,&names[2],len);
+ if (commonName == NULL)
+ goto loser;
+ PORT_Memcpy(commonName, names + namesRunningOffset + 2, len);
commonName[len] = 0;
+ namesRunningOffset += len + 2;
- /* decode the DLL name */
- names += len+2;
- len = SECMOD_GETSHORT(names);
+ /* copy the module's shared library file name. */
+ CHECK_SIZE( namesRunningOffset + 2);
+ len = SECMOD_GETSHORT(names + namesRunningOffset);
if (len) {
+ CHECK_SIZE( namesRunningOffset + 2 + len);
dllName = (char*)PORT_ArenaAlloc(arena,len + 1);
- if (dllName == NULL) {
- PORT_FreeArena(arena,PR_TRUE);
- return NULL;
- }
- PORT_Memcpy(dllName,&names[2],len);
+ if (dllName == NULL)
+ goto loser;
+ PORT_Memcpy(dllName, names + namesRunningOffset + 2, len);
dllName[len] = 0;
}
+ namesRunningOffset += len + 2;
+
+ /* copy the module's initialization string, if present. */
if (!internal && extended) {
- names += len+2;
- len = SECMOD_GETSHORT(names);
+ CHECK_SIZE( namesRunningOffset + 2);
+ len = SECMOD_GETSHORT(names+namesRunningOffset);
if (len) {
+ CHECK_SIZE( namesRunningOffset + 2 + len );
parameters = (char*)PORT_ArenaAlloc(arena,len + 1);
- if (parameters == NULL) {
- PORT_FreeArena(arena,PR_TRUE);
- return NULL;
- }
- PORT_Memcpy(parameters,&names[2],len);
+ if (parameters == NULL)
+ goto loser;
+ PORT_Memcpy(parameters,names + namesRunningOffset + 2, len);
parameters[len] = 0;
}
+ namesRunningOffset += len + 2;
+ }
+
+ /*
+ * Consistency check: Make sure the slot and names blocks don't
+ * overlap. These blocks can occur in any order, so this check is made
+ * in 2 parts. First we check the case where the slot block starts
+ * after the name block. Later, when we have the slot block length,
+ * we check the case where slot block starts before the name block.
+ * NOTE: in most cases any overlap will likely be detected by invalid
+ * data read from the blocks, but it's better to find out sooner
+ * than later.
+ */
+ if (slotOffset >= namesOffset) { /* slot block starts after name block */
+ if (slotOffset < namesRunningOffset) {
+ goto db_loser;
+ }
}
- if (internal) {
- parameters = PORT_ArenaStrdup(arena,defParams);
+
+ /* ------------------------------------------------------------------
+ ** Part 3, process the slot table.
+ ** This part has this structure:
+ ** struct {
+ ** BYTE slotCount [ 2 ];
+ ** secmodSlotData [ slotCount ];
+ ** {
+ */
+
+ CHECK_SIZE( slotOffset + 2 );
+ slotCount = SECMOD_GETSHORT((unsigned char *)data->data + slotOffset);
+
+ /*
+ * Consistency check: Part 2. We now have the slot block length, we can
+ * check the case where the slotblock procedes the name block.
+ */
+ if (slotOffset < namesOffset) { /* slot block starts before name block */
+ if (namesOffset < slotOffset + 2 + slotCount*sizeof(secmodSlotData)) {
+ goto db_loser;
+ }
}
- /* decode SSL cipher enable flags */
- ssl0 = SECMOD_GETLONG(encoded->ssl);
- ssl1 = SECMOD_GETLONG(&encoded->ssl[4]);
+ CHECK_SIZE( (slotOffset + 2 + slotCount * sizeof(secmodSlotData)));
+ slots = (secmodSlotData *) ((unsigned char *)data->data + slotOffset + 2);
/* slotCount; */
- slotStrings = (char **)PORT_ArenaAlloc(arena, slotCount * sizeof(char *));
- for (i=0; i < (int) slotCount; i++) {
- slotID = SECMOD_GETLONG(slots[i].slotID);
- defaultFlags = SECMOD_GETLONG(slots[i].defaultFlags);
+ slotStrings = (char **)PORT_ArenaZAlloc(arena, slotCount * sizeof(char *));
+ if (slotStrings == NULL)
+ goto loser;
+ for (i=0; i < (int) slotCount; i++, slots++) {
+ PRBool hasRootCerts =PR_FALSE;
+ PRBool hasRootTrust =PR_FALSE;
+ slotID = SECMOD_GETLONG(slots->slotID);
+ defaultFlags = SECMOD_GETLONG(slots->defaultFlags);
+ timeout = SECMOD_GETLONG(slots->timeout);
+ hasRootCerts = slots->hasRootCerts;
if (isOldVersion && internal && (slotID != 2)) {
unsigned long internalFlags=
pk11_argSlotFlags("slotFlags",SECMOD_SLOT_FLAGS);
defaultFlags |= internalFlags;
}
- timeout = SECMOD_GETLONG(slots[i].timeout);
- hasRootCerts = slots[i].hasRootCerts;
if (hasRootCerts && !extended) {
trustOrder = 100;
}
slotStrings[i] = pk11_mkSlotString(slotID, defaultFlags, timeout,
- (unsigned char)slots[i].askpw,
+ (unsigned char)slots->askpw,
hasRootCerts, hasRootTrust);
+ if (slotStrings[i] == NULL) {
+ secmod_FreeSlotStrings(slotStrings,i);
+ goto loser;
+ }
}
nss = pk11_mkNSS(slotStrings, slotCount, internal, isFIPS, isModuleDB,
- isModuleDBOnly, internal, trustOrder, cipherOrder, ssl0, ssl1);
+ isModuleDBOnly, internal, trustOrder, cipherOrder,
+ ssl0, ssl1);
+ secmod_FreeSlotStrings(slotStrings,slotCount);
+ /* it's permissible (and normal) for nss to be NULL. it simply means
+ * there are no NSS specific parameters in the database */
moduleSpec = pk11_mkNewModuleSpec(dllName,commonName,parameters,nss);
PR_smprintf_free(nss);
PORT_FreeArena(arena,PR_TRUE);
+ return moduleSpec;
- return (moduleSpec);
+db_loser:
+ PORT_SetError(SEC_ERROR_BAD_DATABASE);
+loser:
+ PORT_FreeArena(arena,PR_TRUE);
+ return NULL;
}
diff --git a/security/nss/lib/softoken/pkcs11.c b/security/nss/lib/softoken/pkcs11.c
index 0d77670f2..31a5f3aec 100644
--- a/security/nss/lib/softoken/pkcs11.c
+++ b/security/nss/lib/softoken/pkcs11.c
@@ -2160,6 +2160,7 @@ pk11_mkSecretKeyRep(PK11Object *object)
NSSLOWKEYPrivateKey *privKey = 0;
PLArenaPool *arena = 0;
CK_KEY_TYPE keyType;
+ PRUint32 keyTypeStorage;
SECItem keyTypeItem;
CK_RV crv;
SECStatus rv;
@@ -2212,10 +2213,13 @@ pk11_mkSecretKeyRep(PK11Object *object)
/* Coeficient set to KEY_TYPE */
crv = pk11_GetULongAttribute(object, CKA_KEY_TYPE, &keyType);
- if (crv != CKR_OK) goto loser;
- keyType = PR_htonl(keyType);
- keyTypeItem.data = (unsigned char *)&keyType;
- keyTypeItem.len = sizeof (keyType);
+ if (crv != CKR_OK) goto loser;
+ /* on 64 bit platforms, we still want to store 32 bits of keyType (This is
+ * safe since the PKCS #11 defines for all types are 32 bits or less). */
+ keyTypeStorage = (PRUint32) keyType;
+ keyTypeStorage = PR_htonl(keyTypeStorage);
+ keyTypeItem.data = (unsigned char *)&keyTypeStorage;
+ keyTypeItem.len = sizeof (keyTypeStorage);
rv = SECITEM_CopyItem(arena, &privKey->u.rsa.coefficient, &keyTypeItem);
if (rv != SECSuccess) {
crv = CKR_HOST_MEMORY;
diff --git a/security/nss/lib/softoken/pkcs11c.c b/security/nss/lib/softoken/pkcs11c.c
index 50788e5c6..e4cb96bdd 100644
--- a/security/nss/lib/softoken/pkcs11c.c
+++ b/security/nss/lib/softoken/pkcs11c.c
@@ -363,30 +363,17 @@ pk11_InitGeneric(PK11Session *session,PK11SessionContext **contextPtr,
}
/* get the key type */
att = pk11_FindAttribute(key,CKA_KEY_TYPE);
- PORT_Assert(att != NULL);
- size = sizeof(CK_KEY_TYPE);
- if (att->attrib.ulValueLen < size) {
- CK_KEY_TYPE kt;
- int i;
- int shift;
-#ifdef IS_LITTLE_ENDIAN
- shift = 0;
-#else
- shift = (att->attrib.ulValueLen - 1) * 8;
-#endif
- kt = 0;
- for (i=att->attrib.ulValueLen - 1; i>=0; i--) {
- kt |= ((unsigned char *)att->attrib.pValue)[i] << shift;
-#ifdef IS_LITTLE_ENDIAN
- shift += 8;
-#else
- shift -= 8;
-#endif
- }
- *keyTypePtr = kt;
- } else {
- *keyTypePtr = *((CK_KEY_TYPE *)att->attrib.pValue);
+ if (att == NULL) {
+ pk11_FreeObject(key);
+ return CKR_KEY_TYPE_INCONSISTENT;
+ }
+ PORT_Assert(att->attrib.ulValueLen == sizeof(CK_KEY_TYPE));
+ if (att->attrib.ulValueLen != sizeof(CK_KEY_TYPE)) {
+ pk11_FreeAttribute(att);
+ pk11_FreeObject(key);
+ return CKR_ATTRIBUTE_VALUE_INVALID;
}
+ PORT_Memcpy(keyTypePtr, att->attrib.pValue, sizeof(CK_KEY_TYPE));
pk11_FreeAttribute(att);
*keyPtr = key;
}
diff --git a/security/nss/lib/softoken/pkcs11u.c b/security/nss/lib/softoken/pkcs11u.c
index 24e162a23..235fb92d8 100644
--- a/security/nss/lib/softoken/pkcs11u.c
+++ b/security/nss/lib/softoken/pkcs11u.c
@@ -688,6 +688,7 @@ pk11_FindSecretKeyAttribute(PK11TokenObject *object, CK_ATTRIBUTE_TYPE type)
int keyTypeLen;
CK_ULONG keyLen;
CK_KEY_TYPE keyType;
+ PRUint32 keyTypeStorage;
switch (type) {
case CKA_PRIVATE:
@@ -732,25 +733,72 @@ pk11_FindSecretKeyAttribute(PK11TokenObject *object, CK_ATTRIBUTE_TYPE type)
* in host order, with any leading zeros stripped off. Only key types
* under 0x1f (AES) were stored. We assume that any values which are
* either 1 byte long (big endian), or have byte[0] between 0 and
- * 0x1f and bytes[1]-bytes[3] equal to '0' (little endian). All other
+ * 0x7f and bytes[1]-bytes[3] equal to '0' (little endian). All other
* values are assumed to be from the new database, which is always 4
- * bytes in host order */
+ * bytes in network order */
keyType=0;
keyString = key->u.rsa.coefficient.data;
keyTypeLen = key->u.rsa.coefficient.len;
- /* only length of 1 or 4 are valid */
- if ((keyTypeLen != sizeof(keyType)) && (keyTypeLen != 1)) {
- PORT_SetError(SEC_ERROR_BAD_DATABASE);
- return NULL;
+
+
+ /*
+ * Because of various endian and word lengths, the database may have
+ * stored the keyType value in one of the following formats:
+ * (kt) <= 0x1f
+ * length data
+ * Big Endian, pre-3.9, all lengths: 1 (kt)
+ * Little Endian, pre-3.9, 32 bits: 4 (kt) 0 0 0
+ * Little Endian, pre-3.9, 64 bits: 8 (kt) 0 0 0 0 0 0 0
+ * All platforms, 3.9, 32 bits: 4 0 0 0 (kt)
+ * Big Endian, 3.9, 64 bits: 8 0 0 0 (kt) 0 0 0 0
+ * Little Endian, 3.9, 64 bits: 8 0 0 0 0 0 0 0 (kt)
+ * All platforms, >= 3.9.1, all lengths: 4 (a) k1 k2 k3
+ * where (a) is 0 or >= 0x80. currently (a) can only be 0.
+ */
+ /*
+ * This key was written on a 64 bit platform with a using NSS 3.9
+ * or earlier. Reduce the 64 bit possibilities above. When through,
+ * we will only have:
+ *
+ * Big Endian, pre-3.9, all lengths: 1 (kt)
+ * Little Endian, pre-3.9, all lengths: 4 (kt) 0 0 0
+ * All platforms, 3.9, all lengths: 4 0 0 0 (kt)
+ * All platforms, => 3.9.1, all lengths: 4 (a) k1 k2 k3
+ */
+ if (keyTypeLen == 8) {
+ keyTypeStorage = *(PRUint32 *) keyString;
+ if (keyTypeStorage == 0) {
+ keyString += sizeof(PRUint32);
+ }
+ keyTypeLen = 4;
}
- if ((keyTypeLen == 1) ||
- ((keyString[0] <= 0x1f) && (keyString[1] == 0) &&
- (keyString[2] == 0) && (keyString[3] == 0))) {
- keyType = (CK_KEY_TYPE) keyString[0] ;
+ /*
+ * Now Handle:
+ *
+ * All platforms, 3.9, all lengths: 4 0 0 0 (kt)
+ * All platforms, => 3.9.1, all lengths: 4 (a) k1 k2 k3
+ *
+ * NOTE: if kt == 0 or ak1k2k3 == 0, the test fails and
+ * we handle it as:
+ *
+ * Little Endian, pre-3.9, all lengths: 4 (kt) 0 0 0
+ */
+ if (keyTypeLen == sizeof(keyTypeStorage) &&
+ (((keyString[0] & 0x80) == 0x80) ||
+ !((keyString[1] == 0) && (keyString[2] == 0)
+ && (keyString[3] == 0))) ) {
+ PORT_Memcpy(&keyTypeStorage, keyString, sizeof(keyTypeStorage));
+ keyType = (CK_KEY_TYPE) PR_ntohl(keyTypeStorage);
} else {
- keyType = *(CK_KEY_TYPE *) keyString;
- keyType = PR_ntohl(keyType);
- }
+ /*
+ * Now Handle:
+ *
+ * Big Endian, pre-3.9, all lengths: 1 (kt)
+ * Little Endian, pre-3.9, all lengths: 4 (kt) 0 0 0
+ * -- KeyType == 0 all other cases ---: 4 0 0 0 0
+ */
+ keyType = (CK_KEY_TYPE) keyString[0] ;
+ }
return pk11_NewTokenAttribute(type,&keyType,sizeof(keyType),PR_TRUE);
case CKA_VALUE:
return pk11_NewTokenAttribute(type,key->u.rsa.privateExponent.data,
@@ -1656,6 +1704,11 @@ pk11_forceTokenAttribute(PK11Object *object,CK_ATTRIBUTE_TYPE type,
* allow it to happen. Let label setting go through so
* we have the opportunity to repair any database corruption. */
attribute=pk11_FindAttribute(object,type);
+ PORT_Assert(attribute);
+ if (!attribute) {
+ return CKR_ATTRIBUTE_TYPE_INVALID;
+
+ }
if ((type != CKA_LABEL) && (attribute->attrib.ulValueLen == len) &&
PORT_Memcmp(attribute->attrib.pValue,value,len) == 0) {
pk11_FreeAttribute(attribute);
@@ -1693,6 +1746,14 @@ pk11_forceAttribute(PK11Object *object,CK_ATTRIBUTE_TYPE type, void *value,
void *att_val = NULL;
PRBool freeData = PR_FALSE;
+ PORT_Assert(object);
+ PORT_Assert(object->refCount);
+ PORT_Assert(object->slot);
+ if (!object ||
+ !object->refCount ||
+ !object->slot) {
+ return CKR_DEVICE_ERROR;
+ }
if (pk11_isToken(object->handle)) {
return pk11_forceTokenAttribute(object,type,value,len);
}
diff --git a/security/nss/lib/ssl/config.mk b/security/nss/lib/ssl/config.mk
index 3917eaba1..cf341b4c0 100644
--- a/security/nss/lib/ssl/config.mk
+++ b/security/nss/lib/ssl/config.mk
@@ -78,4 +78,10 @@ ifeq ($(OS_ARCH), Darwin)
EXTRA_SHARED_LIBS += -dylib_file @executable_path/libsoftokn3.dylib:$(DIST)/lib/libsoftokn3.dylib
endif
+ifeq ($(OS_TARGET),SunOS)
+# The -R '$ORIGIN' linker option instructs this library to search for its
+# dependencies in the same directory where it resides.
+MKSHLIB += -R '$$ORIGIN'
+endif
+
endif
diff --git a/security/nss/lib/ssl/ssl3con.c b/security/nss/lib/ssl/ssl3con.c
index 1b2cd4fc1..6db9a7641 100644
--- a/security/nss/lib/ssl/ssl3con.c
+++ b/security/nss/lib/ssl/ssl3con.c
@@ -2776,6 +2776,10 @@ ssl3_ComputeHandshakeHashes(sslSocket * ss,
PORT_Assert( ssl_HaveSSL3HandshakeLock(ss) );
isTLS = (PRBool)(spec->version > SSL_LIBRARY_VERSION_3_0);
+ if (!spec->master_secret) {
+ PORT_SetError(SSL_ERROR_RX_UNEXPECTED_HANDSHAKE);
+ return SECFailure;
+ }
md5StateBuf = PK11_SaveContextAlloc(ssl3->hs.md5, md5StackBuf,
sizeof md5StackBuf, &md5StateLen);
@@ -3329,7 +3333,7 @@ typedef struct {
PK11SymKey * symWrapKey[kt_kea_size];
} ssl3SymWrapKey;
-static PZLock * symWrapKeysLock;
+static PZLock * symWrapKeysLock = NULL;
static ssl3SymWrapKey symWrapKeys[SSL_NUM_WRAP_MECHS];
SECStatus
@@ -3356,6 +3360,13 @@ SSL3_ShutdownServerCache(void)
return SECSuccess;
}
+void ssl_InitSymWrapKeysLock(void)
+{
+ /* atomically initialize the lock */
+ if (!symWrapKeysLock)
+ nss_InitLock(&symWrapKeysLock, nssILockOther);
+}
+
/* Try to get wrapping key for mechanism from in-memory array.
* If that fails, look for one on disk.
* If that fails, generate a new one, put the new one on disk,
@@ -3393,9 +3404,7 @@ getWrappingKey( sslSocket * ss,
pSymWrapKey = &symWrapKeys[symWrapMechIndex].symWrapKey[exchKeyType];
- /* atomically initialize the lock */
- if (!symWrapKeysLock)
- nss_InitLock(&symWrapKeysLock, nssILockOther);
+ ssl_InitSymWrapKeysLock();
PZ_Lock(symWrapKeysLock);
diff --git a/security/nss/lib/ssl/sslcon.c b/security/nss/lib/ssl/sslcon.c
index e373fa28b..115ef4de5 100644
--- a/security/nss/lib/ssl/sslcon.c
+++ b/security/nss/lib/ssl/sslcon.c
@@ -2573,7 +2573,7 @@ ssl2_HandleMessage(sslSocket *ss)
case SSL_MT_REQUEST_CERTIFICATE:
len = ss->gs.recordLen - 2;
- if ((len != SSL_MIN_CHALLENGE_BYTES) ||
+ if ((len < SSL_MIN_CHALLENGE_BYTES) ||
(len > SSL_MAX_CHALLENGE_BYTES)) {
/* Bad challenge */
SSL_DBG(("%d: SSL[%d]: bad cert request message: code len=%d",
@@ -2617,6 +2617,11 @@ ssl2_HandleMessage(sslSocket *ss)
PORT_SetError(SSL_ERROR_UNSUPPORTED_CERTIFICATE_TYPE);
goto loser;
}
+ if (certLen + responseLen + SSL_HL_CLIENT_CERTIFICATE_HBYTES
+ > ss->gs.recordLen) {
+ /* prevent overflow crash. */
+ rv = SECFailure;
+ } else
rv = ssl2_HandleClientCertificate(ss, data[1],
data + SSL_HL_CLIENT_CERTIFICATE_HBYTES,
certLen,
@@ -2808,9 +2813,22 @@ ssl2_HandleServerHelloMessage(sslSocket *ss)
}
}
- /* Save connection-id for later */
- PORT_Memcpy(ss->sec.ci.connectionID, cs + csLen,
- sizeof(ss->sec.ci.connectionID));
+ if ((SSL_HL_SERVER_HELLO_HBYTES + certLen + csLen + cidLen
+ > ss->gs.recordLen)
+ || (csLen % 3) != 0
+ /* || cidLen < SSL_CONNECTIONID_BYTES || cidLen > 32 */
+ ) {
+ goto bad_server;
+ }
+
+ /* Save connection-id.
+ ** This code only saves the first 16 byte of the connectionID.
+ ** If the connectionID is shorter than 16 bytes, it is zero-padded.
+ */
+ if (cidLen < sizeof ss->sec.ci.connectionID)
+ memset(ss->sec.ci.connectionID, 0, sizeof ss->sec.ci.connectionID);
+ cidLen = PR_MIN(cidLen, sizeof ss->sec.ci.connectionID);
+ PORT_Memcpy(ss->sec.ci.connectionID, cs + csLen, cidLen);
/* See if session-id hit */
needed = CIS_HAVE_MASTER_KEY | CIS_HAVE_FINISHED | CIS_HAVE_VERIFY;
@@ -3494,7 +3512,11 @@ ssl2_HandleClientHelloMessage(sslSocket *ss)
challenge = sd + sdLen;
PRINT_BUF(7, (ss, "server, client session-id value:", sd, sdLen));
- if ((unsigned)ss->gs.recordLen !=
+ if (!csLen || (csLen % 3) != 0 ||
+ (sdLen != 0 && sdLen != SSL2_SESSIONID_BYTES) ||
+ challengeLen < SSL_MIN_CHALLENGE_BYTES ||
+ challengeLen > SSL_MAX_CHALLENGE_BYTES ||
+ (unsigned)ss->gs.recordLen !=
SSL_HL_CLIENT_HELLO_HBYTES + csLen + sdLen + challengeLen) {
SSL_DBG(("%d: SSL[%d]: bad client hello message, len=%d should=%d",
SSL_GETPID(), ss->fd, ss->gs.recordLen,
diff --git a/security/nss/lib/ssl/sslimpl.h b/security/nss/lib/ssl/sslimpl.h
index 90a99100e..b17c40672 100644
--- a/security/nss/lib/ssl/sslimpl.h
+++ b/security/nss/lib/ssl/sslimpl.h
@@ -1264,6 +1264,10 @@ ssl_SetWrappingKey(SSLWrappedSymWrappingKey *wswk);
/* get rid of the symmetric wrapping key references. */
extern SECStatus SSL3_ShutdownServerCache(void);
+extern void ssl_InitClientSessionCacheLock(void);
+
+extern void ssl_InitSymWrapKeysLock(void);
+
/********************** misc calls *********************/
extern int ssl_MapLowLevelError(int hiLevelError);
diff --git a/security/nss/lib/ssl/sslnonce.c b/security/nss/lib/ssl/sslnonce.c
index ac79c6d66..9ae45de1a 100644
--- a/security/nss/lib/ssl/sslnonce.c
+++ b/security/nss/lib/ssl/sslnonce.c
@@ -51,8 +51,8 @@
PRUint32 ssl_sid_timeout = 100;
PRUint32 ssl3_sid_timeout = 86400L; /* 24 hours */
-static sslSessionID *cache;
-static PZLock * cacheLock;
+static sslSessionID *cache = NULL;
+static PZLock * cacheLock = NULL;
/* sids can be in one of 4 states:
*
@@ -65,14 +65,16 @@ static PZLock * cacheLock;
#define LOCK_CACHE lock_cache()
#define UNLOCK_CACHE PZ_Unlock(cacheLock)
-static void
-lock_cache(void)
+void ssl_InitClientSessionCacheLock(void)
{
- /* XXX Since the client session cache has no init function, we must
- * XXX init the cacheLock on the first call. Fix in NSS 3.0.
- */
if (!cacheLock)
nss_InitLock(&cacheLock, nssILockCache);
+}
+
+static void
+lock_cache(void)
+{
+ ssl_InitClientSessionCacheLock();
PZ_Lock(cacheLock);
}
diff --git a/security/nss/lib/ssl/sslsnce.c b/security/nss/lib/ssl/sslsnce.c
index 6604c2896..8d5a853b1 100644
--- a/security/nss/lib/ssl/sslsnce.c
+++ b/security/nss/lib/ssl/sslsnce.c
@@ -1169,6 +1169,8 @@ SSL_ConfigServerSessionIDCache( int maxCacheEntries,
PRUint32 ssl3_timeout,
const char * directory)
{
+ ssl_InitClientSessionCacheLock();
+ ssl_InitSymWrapKeysLock();
return SSL_ConfigServerSessionIDCacheInstance(&globalCache,
maxCacheEntries, ssl2_timeout, ssl3_timeout, directory, PR_FALSE);
}
@@ -1276,6 +1278,10 @@ SSL_InheritMPServerSIDCacheInstance(cacheDesc *cache, const char * envString)
}
return SECSuccess; /* already done. */
}
+
+ ssl_InitClientSessionCacheLock();
+ ssl_InitSymWrapKeysLock();
+
ssl_sid_lookup = ServerSessionIDLookup;
ssl_sid_cache = ServerSessionIDCache;
ssl_sid_uncache = ServerSessionIDUncache;
diff --git a/security/nss/lib/ssl/sslsock.c b/security/nss/lib/ssl/sslsock.c
index e4f01898d..df29616b0 100644
--- a/security/nss/lib/ssl/sslsock.c
+++ b/security/nss/lib/ssl/sslsock.c
@@ -459,13 +459,17 @@ SECStatus
ssl_EnableNagleDelay(sslSocket *ss, PRBool enabled)
{
PRFileDesc * osfd = ss->fd->lower;
- int rv;
+ SECStatus rv = SECFailure;
PRSocketOptionData opt;
opt.option = PR_SockOpt_NoDelay;
opt.value.no_delay = (PRBool)!enabled;
- rv = osfd->methods->setsocketoption(osfd, &opt);
+ if (osfd->methods->setsocketoption) {
+ rv = (SECStatus) osfd->methods->setsocketoption(osfd, &opt);
+ } else {
+ PR_SetError(PR_NOT_IMPLEMENTED_ERROR, 0);
+ }
return rv;
}
diff --git a/security/nss/lib/util/nsslocks.c b/security/nss/lib/util/nsslocks.c
index ce9072c68..8b158e025 100644
--- a/security/nss/lib/util/nsslocks.c
+++ b/security/nss/lib/util/nsslocks.c
@@ -60,7 +60,9 @@ __nss_InitLock( PZLock **ppLock, nssILockType ltype )
while (!*ppLock) {
PRInt32 myAttempt = PR_AtomicIncrement(&initializers);
if (myAttempt == 1) {
- *ppLock = PZ_NewLock(ltype);
+ if (!*ppLock) {
+ *ppLock = PZ_NewLock(ltype);
+ }
(void) PR_AtomicDecrement(&initializers);
break;
}
@@ -93,7 +95,9 @@ nss_InitMonitor(PZMonitor **ppMonitor, nssILockType ltype )
while (!*ppMonitor) {
PRInt32 myAttempt = PR_AtomicIncrement(&initializers);
if (myAttempt == 1) {
- *ppMonitor = PZ_NewMonitor(ltype);
+ if (!*ppMonitor) {
+ *ppMonitor = PZ_NewMonitor(ltype);
+ }
(void) PR_AtomicDecrement(&initializers);
break;
}
diff --git a/security/nss/lib/util/nssrwlk.c b/security/nss/lib/util/nssrwlk.c
index 33aaaa713..421d43d87 100644
--- a/security/nss/lib/util/nssrwlk.c
+++ b/security/nss/lib/util/nssrwlk.c
@@ -185,7 +185,9 @@ nssRWLock_AtomicCreate( NSSRWLock ** prwlock,
while (NULL == (rwlock = *prwlock)) {
PRInt32 myAttempt = PR_AtomicIncrement(&initializers);
if (myAttempt == 1) {
- *prwlock = rwlock = NSSRWLock_New(lock_rank, lock_name);
+ if (NULL == (rwlock = *prwlock)) {
+ *prwlock = rwlock = NSSRWLock_New(lock_rank, lock_name);
+ }
(void) PR_AtomicDecrement(&initializers);
break;
}
diff --git a/security/nss/lib/util/quickder.c b/security/nss/lib/util/quickder.c
index 42acedf5b..c94368f14 100644
--- a/security/nss/lib/util/quickder.c
+++ b/security/nss/lib/util/quickder.c
@@ -213,8 +213,9 @@ static SECStatus MatchComponentType(const SEC_ASN1Template* templateEntry,
return SECSuccess;
}
}
- PORT_SetError(SEC_ERROR_BAD_DER);
- return SECFailure;
+ /* no match, caller must decide if this is BAD DER, or not. */
+ *match = PR_FALSE;
+ return SECSuccess;
}
if (kind & SEC_ASN1_ANY)
diff --git a/security/nss/lib/util/secerr.h b/security/nss/lib/util/secerr.h
index d1bb335fc..57382588e 100644
--- a/security/nss/lib/util/secerr.h
+++ b/security/nss/lib/util/secerr.h
@@ -190,7 +190,16 @@ SEC_ERROR_EXTRA_INPUT = (SEC_ERROR_BASE + 140),
SEC_ERROR_UNSUPPORTED_ELLIPTIC_CURVE = (SEC_ERROR_BASE + 141),
SEC_ERROR_UNSUPPORTED_EC_POINT_FORM = (SEC_ERROR_BASE + 142),
SEC_ERROR_UNRECOGNIZED_OID = (SEC_ERROR_BASE + 143),
-SEC_ERROR_OCSP_INVALID_SIGNING_CERT = (SEC_ERROR_BASE + 144)
+SEC_ERROR_OCSP_INVALID_SIGNING_CERT = (SEC_ERROR_BASE + 144),
+/* new revocation errors */
+SEC_ERROR_REVOKED_CERTIFICATE_CRL = (SEC_ERROR_BASE + 145),
+SEC_ERROR_REVOKED_CERTIFICATE_OCSP = (SEC_ERROR_BASE + 146),
+SEC_ERROR_CRL_INVALID_VERSION = (SEC_ERROR_BASE + 147),
+SEC_ERROR_CRL_V1_CRITICAL_EXTENSION = (SEC_ERROR_BASE + 148),
+SEC_ERROR_CRL_UNKNOWN_CRITICAL_EXTENSION = (SEC_ERROR_BASE + 149),
+SEC_ERROR_UNKNOWN_OBJECT_TYPE = (SEC_ERROR_BASE + 150),
+SEC_ERROR_INCOMPATIBLE_PKCS11 = (SEC_ERROR_BASE + 151),
+SEC_ERROR_NO_EVENT = (SEC_ERROR_BASE + 152)
} SECErrorCodes;
#endif /* NO_SECURITY_ERROR_ENUM */
diff --git a/security/nss/lib/util/secport.h b/security/nss/lib/util/secport.h
index 693b35110..ffdbddbe4 100644
--- a/security/nss/lib/util/secport.h
+++ b/security/nss/lib/util/secport.h
@@ -131,6 +131,7 @@ extern void PORT_FreeBlock(void *ptr);
extern void *PORT_ZAlloc(size_t len);
extern void PORT_Free(void *ptr);
extern void PORT_ZFree(void *ptr, size_t len);
+extern char *PORT_Strdup(const char *s);
extern time_t PORT_Time(void);
extern void PORT_SetError(int value);
extern int PORT_GetError(void);
@@ -168,34 +169,6 @@ extern char *PORT_ArenaStrdup(PLArenaPool *arena, const char *str);
/* Please, keep these defines sorted alphbetically. Thanks! */
-#ifdef XP_STRING_FUNCS
-
-#define PORT_Atoi XP_ATOI
-
-#define PORT_Memcmp XP_MEMCMP
-#define PORT_Memcpy XP_MEMCPY
-#define PORT_Memmove XP_MEMMOVE
-#define PORT_Memset XP_MEMSET
-
-#define PORT_Strcasecmp XP_STRCASECMP
-#define PORT_Strcat XP_STRCAT
-#define PORT_Strchr XP_STRCHR
-#define PORT_Strrchr XP_STRRCHR
-#define PORT_Strcmp XP_STRCMP
-#define PORT_Strcpy XP_STRCPY
-#define PORT_Strdup XP_STRDUP
-#define PORT_Strlen(s) XP_STRLEN(s)
-#define PORT_Strncasecmp XP_STRNCASECMP
-#define PORT_Strncat strncat
-#define PORT_Strncmp XP_STRNCMP
-#define PORT_Strncpy strncpy
-#define PORT_Strstr XP_STRSTR
-#define PORT_Strtok XP_STRTOK_R
-
-#define PORT_Tolower XP_TO_LOWER
-
-#else /* XP_STRING_FUNCS */
-
#define PORT_Atoi atoi
#define PORT_Memcmp memcmp
@@ -213,7 +186,6 @@ extern char *PORT_ArenaStrdup(PLArenaPool *arena, const char *str);
#define PORT_Strrchr strrchr
#define PORT_Strcmp strcmp
#define PORT_Strcpy strcpy
-extern char *PORT_Strdup(const char *s);
#define PORT_Strlen(s) strlen(s)
#define PORT_Strncasecmp PL_strncasecmp
#define PORT_Strncat strncat
@@ -225,8 +197,6 @@ extern char *PORT_Strdup(const char *s);
#define PORT_Tolower tolower
-#endif /* XP_STRING_FUNCS */
-
typedef PRBool (PR_CALLBACK * PORTCharConversionWSwapFunc) (PRBool toUnicode,
unsigned char *inBuf, unsigned int inBufLen,
unsigned char *outBuf, unsigned int maxOutBufLen,
diff --git a/security/nss/pkg/linux/Makefile b/security/nss/pkg/linux/Makefile
index f25d09f71..164227916 100644
--- a/security/nss/pkg/linux/Makefile
+++ b/security/nss/pkg/linux/Makefile
@@ -9,50 +9,65 @@ CORE_DEPTH = ../../..
NAME = sun-nss
RELEASE = 1
-TOPDIR = /usr/src/redhat
VERSION = `grep NSS_VERSION $(CORE_DEPTH)/../dist/public/nss/nss.h \
- | sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//'`
+ | sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//'`
+PWD = `pwd`
+BUILDROOT = $(PWD)\/$(NAME)-root
include $(CORE_DEPTH)/coreconf/config.mk
publish:
$(MAKE) clean
- mkdir -p usr/lib/mps
+ mkdir -p SOURCES SRPMS RPMS BUILD
+ mkdir -p opt/sun/private/lib
find $(CORE_DEPTH)/../dist/$(OBJDIR)/lib -type l \
\( -name "*.so" -o -name "*.chk" \) \
- -exec cp -L {} usr/lib/mps \;
- mkdir -p usr/include/mps
- cp -Lr $(CORE_DEPTH)/../dist/public/* usr/include/mps
- tar czvf $(NAME)-$(VERSION).tar.gz usr
+ -exec cp {} opt/sun/private/lib \;
+ rm -f opt/sun/private/lib/libnspr4.so \
+ opt/sun/private/lib/libplc4.so \
+ opt/sun/private/lib/libplds4.so \
+ opt/sun/private/lib/libjss*.so
+ mkdir -p opt/sun/private/bin
+ (cd $(CORE_DEPTH)/../dist/$(OBJDIR)/bin && tar cphf - \
+ certutil cmsutil crlutil modutil pk12util signtool \
+ signver ssltap ) | (cd opt/sun/private/bin && tar xvfBp -)
+ (cd $(CORE_DEPTH)/../dist/public && tar cphf - .) \
+ | (mkdir -p opt/sun/private/include && cd opt/sun/private/include && tar xvfBp -)
+ rm -rf opt/sun/private/include/seccmd
+ rm -rf opt/sun/private/include/dbm
+
+ tar czvf $(NAME)-$(VERSION).tar.gz opt
+ echo "%define _topdir `pwd`" >temp.spec
sed -e "s/NAME_REPLACE/$(NAME)/" \
-e "s/VERSION_REPLACE/$(VERSION)/" \
-e "s/RELEASE_REPLACE/$(RELEASE)/" \
- <$(NAME).spec >temp.spec
+ <$(NAME).spec >>temp.spec
echo "" >>temp.spec
echo "%files" >>temp.spec
echo "%defattr(-,root,root)" >>temp.spec
- echo "%dir /usr" >>temp.spec
- echo "%dir /usr/lib" >>temp.spec
- echo "%dir /usr/lib/mps" >>temp.spec
- find usr \( -name "*.so" -o -name "*.chk" \) \
- | sed -e "s-^-/-" >>temp.spec
+ echo "%dir /opt" >>temp.spec
+ echo "%dir /opt/sun" >>temp.spec
+ echo "%dir /opt/sun/private" >>temp.spec
+ echo "%dir /opt/sun/private/lib" >>temp.spec
+ echo "%dir /opt/sun/private/bin" >>temp.spec
+ find opt \( -name "*.so" -o -name "*.chk" -o -type f \
+ -perm u=rwx,g=rx,o=rx \) | sed -e "s-^-/-" >>temp.spec
echo "" >>temp.spec
echo "%files devel" >>temp.spec
echo "%defattr(-,root,root)" >>temp.spec
- find usr -type d | sed -e "s-^-%dir /-" >>temp.spec
- find usr -type f ! \( -name "*.so" -o -name "*.chk" \) \
+ echo "%dir /opt" >>temp.spec
+ echo "%dir /opt/sun" >>temp.spec
+ echo "%dir /opt/sun/private" >>temp.spec
+ echo "%dir /opt/sun/private/include" >>temp.spec
+ echo "%dir /opt/sun/private/include/nss" >>temp.spec
+ find opt -type f \( -name "*.h" \) \
| sed -e "s-^-/-" >>temp.spec
- cp $(NAME)-$(VERSION).tar.gz $(TOPDIR)/SOURCES
+ cp $(NAME)-$(VERSION).tar.gz SOURCES
rpm -ba temp.spec
- if [ ! -d RPMS ] ; then mkdir -p RPMS ; fi
- if [ ! -d SRPMS ] ; then mkdir -p SRPMS ; fi
- cp -v $(TOPDIR)/RPMS/i386/$(NAME)-$(VERSION)-* RPMS
- cp -v $(TOPDIR)/RPMS/i386/$(NAME)-devel-$(VERSION)-* RPMS
- cp -v $(TOPDIR)/SRPMS/$(NAME)-$(VERSION)-* SRPMS
clean::
- rm -rf $(TOPDIR)/BUILD/$(NAME)
- rm -rf RPMS SRPMS usr
+ rm -rf SOURCES SRPMS RPMS BUILD
+ rm -rf opt
rm -f temp.spec
rm -f $(NAME)-$(VERSION).tar.gz
diff --git a/security/nss/pkg/linux/sun-nss.spec b/security/nss/pkg/linux/sun-nss.spec
index 1c3563332..4c814f36a 100644
--- a/security/nss/pkg/linux/sun-nss.spec
+++ b/security/nss/pkg/linux/sun-nss.spec
@@ -1,14 +1,17 @@
Summary: Network Security Services
Name: NAME_REPLACE
-Vendor: Sun Microsystems
+Vendor: Sun Microsystems, Inc.
Version: VERSION_REPLACE
Release: RELEASE_REPLACE
-Copyright: MPL/GPL
+Copyright: Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also under other license(s) as shown at the Description field.
+Distribution: Sun Java(TM) Enterprise System
+URL: http://www.sun.com
Group: System Environment/Base
Source: %{name}-%{version}.tar.gz
ExclusiveOS: Linux
-BuildRoot: /var/tmp/%{name}-root
-Requires: sun-nspr >= 4.3
+BuildRoot: %_topdir/%{name}-root
+
+Requires: sun-nspr >= 4.1.2
%description
Network Security Services (NSS) is a set of libraries designed
@@ -18,6 +21,8 @@ and v3, TLS, PKCS #5, PKCS #7, PKCS #11, PKCS #12, S/MIME,
X.509 v3 certificates, and other security standards. See:
http://www.mozilla.org/projects/security/pki/nss/overview.html
+Under "MPL/GPL" license.
+
%package devel
Summary: Development Libraries for Network Security Services
Group: Development/Libraries
@@ -26,6 +31,8 @@ Requires: %{name} = %{version}-%{release}
%description devel
Header files for doing development with Network Security Services.
+Under "MPL/GPL" license.
+
%prep
%setup -c
diff --git a/security/nss/pkg/solaris/Makefile b/security/nss/pkg/solaris/Makefile
index 2d2ff6ff4..71d121a9f 100644
--- a/security/nss/pkg/solaris/Makefile
+++ b/security/nss/pkg/solaris/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
@@ -12,26 +12,42 @@ CORE_DEPTH = ../../..
cp $< $@
chmod +x $@
+HEADER_DIR = public/nss
-ifeq ($(USE_64), 1)
-DIRS = \
- SUNWtlsx
-else
DIRS = \
- SUNWtls
-endif
+ SUNWtls \
+ SUNWtlsu \
+ SUNWtlsd
+
+include Makefile.com
PROTO = \
$(ROOT) \
- $(ROOT)/usr \
- $(ROOT)/usr/lib \
- $(ROOT)/usr/lib/mps
+ $(ROOT)/usr/lib/mps \
+ $(ROOT)/usr/include/mps \
+ $(ROOT)/usr/sfw/bin
-ifdef USE_64
-PROTO += $(ROOT)/usr/lib/mps/sparcv9
+ifeq ($(MACH), sparc)
+ PROTO += $(ROOT)/usr/lib/mps/sparcv9 \
+ $(ROOT)/usr/sfw/bin/sparcv9
endif
-include Makefile.com
+ifeq ($(USE_64), 1)
+ifeq ($(MACH), sparc)
+# Sparc
+ PROTO += $(ROOT)/usr/lib/mps/sparcv9 \
+ $(ROOT)/usr/sfw/bin/sparcv9
+else
+# AMD64
+ PROTO += $(ROOT)/usr/lib/mps/amd64 \
+ $(ROOT)/usr/sfw/bin/amd64
+endif
+ DIST64 = $(DIST)
+ DIST32 = $(shell echo $(DIST) | sed -e "s|_64_OPT|_OPT|g" -e "s|_64_DBG|_DBG|g")
+else
+ DIST32 = $(DIST)
+ DIST64 = $(shell echo $(DIST) | sed -e "s|_OPT|_64_OPT|g" -e "s|_DBG|_64_DBG|g")
+endif
awk_pkginfo: bld_awk_pkginfo
./bld_awk_pkginfo -m $(MACH) -p "$(PRODUCT_VERSION)" -o $@ -v $(PRODUCT_VERSION)
@@ -44,13 +60,30 @@ clean clobber::
$(RM) awk_pkginfo bld_awk_pkginfo
$(RM) -r $(ROOT)
-$(ROOT) $(ROOT)/%:
+$(ROOT):
mkdir -p $@
-ifdef USE_64
-$(ROOT)/usr/lib/mps/sparcv9: $(ROOT)/usr/lib
- $(LN) -sf ../../../../$(DIST)/lib $@
-else
-$(ROOT)/usr/lib/mps: $(ROOT)/usr/lib
- $(LN) -sf ../../../$(DIST)/lib $@
-endif
+$(ROOT)/usr/lib/mps:
+ mkdir -p $@
+ $(CP) -r $(DIST32)/lib/*.so $@
+ $(CP) -r $(DIST32)/lib/*.chk $@
+$(ROOT)/usr/sfw/bin:
+ mkdir -p $@
+ -$(CP) -r $(DIST32)/bin/* $@
+$(ROOT)/usr/include/mps:
+ mkdir -p $@
+ $(CP) -r $(SOURCE_PREFIX)/$(HEADER_DIR)/*.h $@
+$(ROOT)/usr/lib/mps/sparcv9:
+ mkdir -p $@
+ $(CP) -r $(DIST64)/lib/*.so $@
+ $(CP) -r $(DIST64)/lib/*.chk $@
+$(ROOT)/usr/sfw/bin/sparcv9:
+ mkdir -p $@
+ $(CP) -r $(DIST64)/bin/* $@
+$(ROOT)/usr/lib/mps/amd64:
+ mkdir -p $@
+ $(CP) -r $(DIST64)/lib/*.so $@
+ $(CP) -r $(DIST64)/lib/*.chk $@
+$(ROOT)/usr/sfw/bin/amd64:
+ mkdir -p $@
+ $(CP) -r $(DIST64)/bin/* $@
diff --git a/security/nss/pkg/solaris/Makefile-devl.com b/security/nss/pkg/solaris/Makefile-devl.com
new file mode 100755
index 000000000..372d6e557
--- /dev/null
+++ b/security/nss/pkg/solaris/Makefile-devl.com
@@ -0,0 +1,33 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+MACH = $(shell mach)
+
+PUBLISH_ROOT = $(DIST)
+ifeq ($(CORE_DEPTH),../../..)
+ROOT = ROOT
+else
+ROOT = $(subst ../../../,,$(CORE_DEPTH))/ROOT
+endif
+
+PKGARCHIVE = $(PUBLISH_ROOT)/pkgarchive
+DATAFILES = copyright
+FILES = $(DATAFILES) pkginfo
+
+
+PACKAGE = $(shell basename `pwd`)
+
+PRODUCT_VERSION = $(shell grep NSS_VERSION $(CORE_DEPTH)/nss/lib/nss/nss.h | sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//')
+
+LN = /usr/bin/ln
+
+CLOBBERFILES = $(FILES)
+
+include $(CORE_DEPTH)/coreconf/config.mk
+include $(CORE_DEPTH)/coreconf/rules.mk
+
+# vim: ft=make
diff --git a/security/nss/pkg/solaris/Makefile-devl.targ b/security/nss/pkg/solaris/Makefile-devl.targ
new file mode 100755
index 000000000..84283d89b
--- /dev/null
+++ b/security/nss/pkg/solaris/Makefile-devl.targ
@@ -0,0 +1,26 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+pkginfo: pkginfo.tmpl ../awk_pkginfo
+ $(RM) $@; nawk -f ../awk_pkginfo $@.tmpl > $@
+
+pkg: $(PKGARCHIVE) prototype
+ pkgmk -f prototype -d $(PKGARCHIVE) -r $(ROOT) -o $(PACKAGE)
+
+$(PKGARCHIVE):
+ [ -d $(PKGARCHIVE) ] || mkdir -p $(PKGARCHIVE)
+
+$(DATAFILES):: %: ../common_files/%
+ $(RM) $@; cp ../common_files/$@ $@
+
+$(MACHDATAFILES): %: ../common_files/%_$(MACH)
+ $(RM) $@; cp ../common_files/$@_$(MACH) $@
+
+clobber clean::
+ -$(RM) $(CLOBBERFILES) $(CLEANFILES)
+
+.PHONY: pkg
diff --git a/security/nss/pkg/solaris/Makefile-tlsu.com b/security/nss/pkg/solaris/Makefile-tlsu.com
new file mode 100755
index 000000000..372d6e557
--- /dev/null
+++ b/security/nss/pkg/solaris/Makefile-tlsu.com
@@ -0,0 +1,33 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+MACH = $(shell mach)
+
+PUBLISH_ROOT = $(DIST)
+ifeq ($(CORE_DEPTH),../../..)
+ROOT = ROOT
+else
+ROOT = $(subst ../../../,,$(CORE_DEPTH))/ROOT
+endif
+
+PKGARCHIVE = $(PUBLISH_ROOT)/pkgarchive
+DATAFILES = copyright
+FILES = $(DATAFILES) pkginfo
+
+
+PACKAGE = $(shell basename `pwd`)
+
+PRODUCT_VERSION = $(shell grep NSS_VERSION $(CORE_DEPTH)/nss/lib/nss/nss.h | sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//')
+
+LN = /usr/bin/ln
+
+CLOBBERFILES = $(FILES)
+
+include $(CORE_DEPTH)/coreconf/config.mk
+include $(CORE_DEPTH)/coreconf/rules.mk
+
+# vim: ft=make
diff --git a/security/nss/pkg/solaris/Makefile-tlsu.targ b/security/nss/pkg/solaris/Makefile-tlsu.targ
new file mode 100755
index 000000000..8f4ecb6b6
--- /dev/null
+++ b/security/nss/pkg/solaris/Makefile-tlsu.targ
@@ -0,0 +1,34 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+include ../proto64.mk
+
+pkginfo: pkginfo.tmpl ../awk_pkginfo
+ $(RM) $@; nawk -f ../awk_pkginfo $@.tmpl > $@
+
+prototype: prototype_com prototype_$(MACH)
+ cat prototype_$(MACH) | sed -e \
+'/^!include[ ][ ]*prototype_com/ r ./prototype_com' \
+-e 's/^!include[ ][ ]*prototype_com//g' \
+ | sed $(sed_proto64) >prototype
+
+pkg: $(PKGARCHIVE) prototype
+ pkgmk -f prototype -d $(PKGARCHIVE) -r $(ROOT) -o $(PACKAGE)
+
+$(PKGARCHIVE):
+ [ -d $(PKGARCHIVE) ] || mkdir -p $(PKGARCHIVE)
+
+$(DATAFILES):: %: ../common_files/%
+ $(RM) $@; cp ../common_files/$@ $@
+
+$(MACHDATAFILES): %: ../common_files/%_$(MACH)
+ $(RM) $@; cp ../common_files/$@_$(MACH) $@
+
+clobber clean::
+ -$(RM) $(CLOBBERFILES) $(CLEANFILES)
+
+.PHONY: pkg
diff --git a/security/nss/pkg/solaris/Makefile.com b/security/nss/pkg/solaris/Makefile.com
index 7d445459e..9e4d4fc04 100644
--- a/security/nss/pkg/solaris/Makefile.com
+++ b/security/nss/pkg/solaris/Makefile.com
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
@@ -16,7 +16,7 @@ endif
PKGARCHIVE = $(PUBLISH_ROOT)/pkgarchive
DATAFILES = copyright
-FILES = $(DATAFILES) pkginfo
+FILES = $(DATAFILES) pkginfo prototype
PACKAGE = $(shell basename `pwd`)
@@ -24,6 +24,7 @@ PRODUCT_VERSION = $(shell grep NSS_VERSION $(CORE_DEPTH)/../dist/public/nss/nss.
| sed -e 's/"$$//' -e 's/.*"//' -e 's/ .*//')
LN = /usr/bin/ln
+CP = /usr/bin/cp
CLOBBERFILES = $(FILES)
diff --git a/security/nss/pkg/solaris/Makefile.targ b/security/nss/pkg/solaris/Makefile.targ
index 279a7bca6..8f4ecb6b6 100644
--- a/security/nss/pkg/solaris/Makefile.targ
+++ b/security/nss/pkg/solaris/Makefile.targ
@@ -1,15 +1,23 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
#
+include ../proto64.mk
+
pkginfo: pkginfo.tmpl ../awk_pkginfo
$(RM) $@; nawk -f ../awk_pkginfo $@.tmpl > $@
-pkg: $(PKGARCHIVE)
- pkgmk -f prototype_$(MACH) -d $(PKGARCHIVE) -r $(ROOT) -o $(PACKAGE)
+prototype: prototype_com prototype_$(MACH)
+ cat prototype_$(MACH) | sed -e \
+'/^!include[ ][ ]*prototype_com/ r ./prototype_com' \
+-e 's/^!include[ ][ ]*prototype_com//g' \
+ | sed $(sed_proto64) >prototype
+
+pkg: $(PKGARCHIVE) prototype
+ pkgmk -f prototype -d $(PKGARCHIVE) -r $(ROOT) -o $(PACKAGE)
$(PKGARCHIVE):
[ -d $(PKGARCHIVE) ] || mkdir -p $(PKGARCHIVE)
diff --git a/security/nss/pkg/solaris/SUNWtls/Makefile b/security/nss/pkg/solaris/SUNWtls/Makefile
index 5058a1f68..a299d6321 100644
--- a/security/nss/pkg/solaris/SUNWtls/Makefile
+++ b/security/nss/pkg/solaris/SUNWtls/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
diff --git a/security/nss/pkg/solaris/SUNWtls/pkgdepend b/security/nss/pkg/solaris/SUNWtls/pkgdepend
index 966ba0556..51b7ba8b3 100644
--- a/security/nss/pkg/solaris/SUNWtls/pkgdepend
+++ b/security/nss/pkg/solaris/SUNWtls/pkgdepend
@@ -1,4 +1,4 @@
-# Copyright 2002 Microsystems, Inc. All Rights Reserved.
+# Copyright 2004 Microsystems, Inc. All Rights Reserved.
# Use is subject to license terms.
#
# $Id$
diff --git a/security/nss/pkg/solaris/SUNWtls/pkginfo.tmpl b/security/nss/pkg/solaris/SUNWtls/pkginfo.tmpl
index e0a697529..fd2235b9d 100644
--- a/security/nss/pkg/solaris/SUNWtls/pkginfo.tmpl
+++ b/security/nss/pkg/solaris/SUNWtls/pkginfo.tmpl
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
diff --git a/security/nss/pkg/solaris/SUNWtls/prototype_com b/security/nss/pkg/solaris/SUNWtls/prototype_com
index c5e00d3e2..3e2df6253 100644
--- a/security/nss/pkg/solaris/SUNWtls/prototype_com
+++ b/security/nss/pkg/solaris/SUNWtls/prototype_com
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
@@ -26,9 +26,16 @@ i depend=pkgdepend
d none usr 755 root sys
d none usr/lib 755 root bin
d none usr/lib/mps 755 root bin
+d none usr/lib/mps/secv1 755 root bin
f none usr/lib/mps/libnss3.so 755 root bin
f none usr/lib/mps/libsmime3.so 755 root bin
f none usr/lib/mps/libssl3.so 755 root bin
f none usr/lib/mps/libnssckbi.so 755 root bin
f none usr/lib/mps/libsoftokn3.chk 755 root bin
f none usr/lib/mps/libsoftokn3.so 755 root bin
+s none usr/lib/mps/secv1/libnss3.so=../libnss3.so
+s none usr/lib/mps/secv1/libsmime3.so=../libsmime3.so
+s none usr/lib/mps/secv1/libssl3.so=../libssl3.so
+s none usr/lib/mps/secv1/libnssckbi.so=../libnssckbi.so
+s none usr/lib/mps/secv1/libsoftokn3.chk=../libsoftokn3.chk
+s none usr/lib/mps/secv1/libsoftokn3.so=../libsoftokn3.so
diff --git a/security/nss/pkg/solaris/SUNWtls/prototype_i386 b/security/nss/pkg/solaris/SUNWtls/prototype_i386
index d2718ee05..458434fcb 100644
--- a/security/nss/pkg/solaris/SUNWtls/prototype_i386
+++ b/security/nss/pkg/solaris/SUNWtls/prototype_i386
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
@@ -28,3 +28,19 @@
#
# SUNWtls
#
+#64#s none usr/lib/mps/64=amd64
+#64#s none usr/lib/mps/secv1/64=amd64
+#64#d none usr/lib/mps/amd64 755 root bin
+#64#d none usr/lib/mps/secv1/amd64 755 root bin
+#64#f none usr/lib/mps/amd64/libnss3.so 755 root bin
+#64#f none usr/lib/mps/amd64/libsmime3.so 755 root bin
+#64#f none usr/lib/mps/amd64/libssl3.so 755 root bin
+#64#f none usr/lib/mps/amd64/libnssckbi.so 755 root bin
+#64#f none usr/lib/mps/amd64/libsoftokn3.chk 755 root bin
+#64#f none usr/lib/mps/amd64/libsoftokn3.so 755 root bin
+#64#s none usr/lib/mps/secv1/amd64/libnss3.so=../../amd64/libnss3.so
+#64#s none usr/lib/mps/secv1/amd64/libsmime3.so=../../amd64/libsmime3.so
+#64#s none usr/lib/mps/secv1/amd64/libssl3.so=../../amd64/libssl3.so
+#64#s none usr/lib/mps/secv1/amd64/libnssckbi.so=../../amd64/libnssckbi.so
+#64#s none usr/lib/mps/secv1/amd64/libsoftokn3.chk=../../amd64/libsoftokn3.chk
+#64#s none usr/lib/mps/secv1/amd64/libsoftokn3.so=../../amd64/libsoftokn3.so
diff --git a/security/nss/pkg/solaris/SUNWtls/prototype_sparc b/security/nss/pkg/solaris/SUNWtls/prototype_sparc
index d916457c6..f82f6b5e2 100644
--- a/security/nss/pkg/solaris/SUNWtls/prototype_sparc
+++ b/security/nss/pkg/solaris/SUNWtls/prototype_sparc
@@ -1,5 +1,5 @@
#
-# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "$Id$"
@@ -32,3 +32,24 @@ f none usr/lib/mps/libfreebl_hybrid_3.chk 755 root bin
f none usr/lib/mps/libfreebl_hybrid_3.so 755 root bin
f none usr/lib/mps/libfreebl_pure32_3.chk 755 root bin
f none usr/lib/mps/libfreebl_pure32_3.so 755 root bin
+s none usr/lib/mps/secv1/libfreebl_hybrid_3.chk=../libfreebl_hybrid_3.chk
+s none usr/lib/mps/secv1/libfreebl_hybrid_3.so=../libfreebl_hybrid_3.so
+s none usr/lib/mps/secv1/libfreebl_pure32_3.chk=../libfreebl_pure32_3.chk
+s none usr/lib/mps/secv1/libfreebl_pure32_3.so=../libfreebl_pure32_3.so
+#64#s none usr/lib/mps/64=sparcv9
+#64#s none usr/lib/mps/secv1/64=sparcv9
+#64#d none usr/lib/mps/sparcv9 755 root bin
+#64#d none usr/lib/mps/secv1/sparcv9 755 root bin
+#64#f none usr/lib/mps/sparcv9/libnss3.so 755 root bin
+#64#f none usr/lib/mps/sparcv9/libsmime3.so 755 root bin
+#64#f none usr/lib/mps/sparcv9/libssl3.so 755 root bin
+#64#f none usr/lib/mps/sparcv9/libnssckbi.so 755 root bin
+#64#f none usr/lib/mps/sparcv9/libsoftokn3.chk 755 root bin
+#64#f none usr/lib/mps/sparcv9/libsoftokn3.so 755 root bin
+#64#s none usr/lib/mps/secv1/sparcv9/libnss3.so=../../sparcv9/libnss3.so
+#64#s none usr/lib/mps/secv1/sparcv9/libsmime3.so=../../sparcv9/libsmime3.so
+#64#s none usr/lib/mps/secv1/sparcv9/libssl3.so=../../sparcv9/libssl3.so
+#64#s none usr/lib/mps/secv1/sparcv9/libnssckbi.so=../../sparcv9/libnssckbi.so
+#64#s none usr/lib/mps/secv1/sparcv9/libsoftokn3.chk=../../sparcv9/libsoftokn3.chk
+#64#s none usr/lib/mps/secv1/sparcv9/libsoftokn3.so=../../sparcv9/libsoftokn3.so
+
diff --git a/security/nss/pkg/solaris/SUNWtlsd/Makefile b/security/nss/pkg/solaris/SUNWtlsd/Makefile
new file mode 100755
index 000000000..3a1bd83b3
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsd/Makefile
@@ -0,0 +1,16 @@
+#
+# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+CORE_DEPTH = ../../../..
+include ../Makefile-devl.com
+
+DATAFILES +=
+
+all:: $(FILES)
+publish:: all pkg
+
+include ../Makefile-devl.targ
diff --git a/security/nss/pkg/solaris/SUNWtlsd/pkgdepend b/security/nss/pkg/solaris/SUNWtlsd/pkgdepend
new file mode 100755
index 000000000..fe0695db7
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsd/pkgdepend
@@ -0,0 +1,23 @@
+# Copyright 2002 Microsystems, Inc. All Rights Reserved.
+# Use is subject to license terms.
+#
+# $Id$
+#
+# This package information file defines software dependencies associated
+# with the pkg. You can define three types of pkg dependencies with this file:
+# P indicates a prerequisite for installation
+# I indicates an incompatible package
+# R indicates a reverse dependency
+# <pkg.abbr> see pkginfo(4), PKG parameter
+# <name> see pkginfo(4), NAME parameter
+# <version> see pkginfo(4), VERSION parameter
+# <arch> see pkginfo(4), ARCH parameter
+# <type> <pkg.abbr> <name>
+# (<arch>)<version>
+# (<arch>)<version>
+# ...
+# <type> <pkg.abbr> <name>
+# ...
+
+P SUNWprd Netscape Portable Runtime Development
+P SUNWtls Netscape Security Services
diff --git a/security/nss/pkg/solaris/SUNWtlsd/pkginfo.tmpl b/security/nss/pkg/solaris/SUNWtlsd/pkginfo.tmpl
new file mode 100755
index 000000000..c47b89069
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsd/pkginfo.tmpl
@@ -0,0 +1,34 @@
+#
+# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+#
+# This required package information file describes characteristics of the
+# package, such as package abbreviation, full package name, package version,
+# and package architecture.
+#
+PKG="SUNWtlsd"
+NAME="Network Security Services Development"
+ARCH="ISA"
+VERSION="NSSVERS,REV=0.0.0"
+SUNW_PRODNAME="Network Security Services Development"
+SUNW_PRODVERS="RELEASE/VERSION"
+SUNW_PKGTYPE="usr"
+MAXINST="1000"
+CATEGORY="system"
+DESC="Network Security Services Files for Development"
+VENDOR="Sun Microsystems, Inc."
+HOTLINE="Please contact your local service provider"
+EMAIL=""
+CLASSES="none"
+BASEDIR=/
+SUNW_PKGVERS="1.0"
+#VSTOCK="<reserved by Release Engineering for package part #>"
+#ISTATES="<developer defined>"
+#RSTATES='<developer defined>'
+#ULIMIT="<developer defined>"
+#ORDER="<developer defined>"
+#PSTAMP="<developer defined>"
+#INTONLY="<developer defined>"
diff --git a/security/nss/pkg/solaris/SUNWtlsd/prototype b/security/nss/pkg/solaris/SUNWtlsd/prototype
new file mode 100755
index 000000000..23429a6d8
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsd/prototype
@@ -0,0 +1,127 @@
+#
+# Copyright 2002 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...> # where to find pkg objects
+#!include <filename> # include another 'prototype' file
+#!default <mode> <owner> <group> # default used if not specified on entry
+#!<param>=<value> # puts parameter in pkg environment
+
+# packaging files
+i copyright
+i pkginfo
+i depend=pkgdepend
+#
+# source locations relative to the prototype file
+#
+# SUNWtlsd
+#
+d none usr 0755 root sys
+d none usr/include 0755 root bin
+d none usr/include/mps 0755 root bin
+f none usr/include/mps/base64.h 0644 root bin
+#f none usr/include/mps/blapi.h 0644 root bin
+f none usr/include/mps/blapit.h 0644 root bin
+f none usr/include/mps/cert.h 0644 root bin
+f none usr/include/mps/certdb.h 0644 root bin
+f none usr/include/mps/certt.h 0644 root bin
+f none usr/include/mps/ciferfam.h 0644 root bin
+f none usr/include/mps/cmmf.h 0644 root bin
+f none usr/include/mps/cmmft.h 0644 root bin
+f none usr/include/mps/cms.h 0644 root bin
+f none usr/include/mps/cmsreclist.h 0644 root bin
+f none usr/include/mps/cmst.h 0644 root bin
+f none usr/include/mps/crmf.h 0644 root bin
+f none usr/include/mps/crmft.h 0644 root bin
+f none usr/include/mps/cryptohi.h 0644 root bin
+f none usr/include/mps/cryptoht.h 0644 root bin
+f none usr/include/mps/ecl-exp.h 0644 root bin
+f none usr/include/mps/hasht.h 0644 root bin
+f none usr/include/mps/jar-ds.h 0644 root bin
+f none usr/include/mps/jar.h 0644 root bin
+f none usr/include/mps/jarfile.h 0644 root bin
+f none usr/include/mps/key.h 0644 root bin
+#f none usr/include/mps/keydbt.h 0644 root bin
+f none usr/include/mps/keyhi.h 0644 root bin
+#f none usr/include/mps/keylow.h 0644 root bin
+f none usr/include/mps/keyt.h 0644 root bin
+#f none usr/include/mps/keytboth.h 0644 root bin
+f none usr/include/mps/keythi.h 0644 root bin
+#f none usr/include/mps/keytlow.h 0644 root bin
+f none usr/include/mps/nss.h 0644 root bin
+f none usr/include/mps/nssb64.h 0644 root bin
+f none usr/include/mps/nssb64t.h 0644 root bin
+f none usr/include/mps/nssbase.h 0644 root bin
+f none usr/include/mps/nssbaset.h 0644 root bin
+f none usr/include/mps/nssckepv.h 0644 root bin
+f none usr/include/mps/nssckbi.h 0644 root bin
+f none usr/include/mps/nssckft.h 0644 root bin
+f none usr/include/mps/nssckfw.h 0644 root bin
+f none usr/include/mps/nssckfwc.h 0644 root bin
+f none usr/include/mps/nssckfwt.h 0644 root bin
+f none usr/include/mps/nssckg.h 0644 root bin
+f none usr/include/mps/nssckmdt.h 0644 root bin
+#f none usr/include/mps/nssckp.h 0644 root bin
+f none usr/include/mps/nssckt.h 0644 root bin
+#f none usr/include/mps/nsscku.h 0644 root bin
+f none usr/include/mps/nssilckt.h 0644 root bin
+f none usr/include/mps/nssilock.h 0644 root bin
+f none usr/include/mps/nsslocks.h 0644 root bin
+f none usr/include/mps/nssrwlk.h 0644 root bin
+f none usr/include/mps/nssrwlkt.h 0644 root bin
+f none usr/include/mps/ocsp.h 0644 root bin
+f none usr/include/mps/ocspt.h 0644 root bin
+f none usr/include/mps/p12.h 0644 root bin
+f none usr/include/mps/p12plcy.h 0644 root bin
+f none usr/include/mps/p12t.h 0644 root bin
+f none usr/include/mps/pk11func.h 0644 root bin
+f none usr/include/mps/pk11pqg.h 0644 root bin
+f none usr/include/mps/pk11sdr.h 0644 root bin
+f none usr/include/mps/pkcs11.h 0644 root bin
+f none usr/include/mps/pkcs11f.h 0644 root bin
+f none usr/include/mps/pkcs11p.h 0644 root bin
+f none usr/include/mps/pkcs11t.h 0644 root bin
+f none usr/include/mps/pkcs11u.h 0644 root bin
+f none usr/include/mps/pkcs11n.h 0644 root bin
+f none usr/include/mps/pkcs12.h 0644 root bin
+f none usr/include/mps/pkcs12t.h 0644 root bin
+f none usr/include/mps/pkcs7t.h 0644 root bin
+f none usr/include/mps/portreg.h 0644 root bin
+#f none usr/include/mps/pqgutil.h 0644 root bin
+f none usr/include/mps/preenc.h 0644 root bin
+f none usr/include/mps/secasn1.h 0644 root bin
+f none usr/include/mps/secasn1t.h 0644 root bin
+f none usr/include/mps/seccomon.h 0644 root bin
+f none usr/include/mps/secder.h 0644 root bin
+f none usr/include/mps/secdert.h 0644 root bin
+f none usr/include/mps/secdig.h 0644 root bin
+f none usr/include/mps/secdigt.h 0644 root bin
+f none usr/include/mps/secerr.h 0644 root bin
+f none usr/include/mps/sechash.h 0644 root bin
+f none usr/include/mps/secitem.h 0644 root bin
+f none usr/include/mps/secmime.h 0644 root bin
+f none usr/include/mps/secmod.h 0644 root bin
+f none usr/include/mps/secmodt.h 0644 root bin
+f none usr/include/mps/secoid.h 0644 root bin
+f none usr/include/mps/secoidt.h 0644 root bin
+f none usr/include/mps/secpkcs5.h 0644 root bin
+f none usr/include/mps/secpkcs7.h 0644 root bin
+f none usr/include/mps/secport.h 0644 root bin
+#f none usr/include/mps/secrng.h 0644 root bin
+#f none usr/include/mps/secrngt.h 0644 root bin
+f none usr/include/mps/shsign.h 0644 root bin
+f none usr/include/mps/smime.h 0644 root bin
+f none usr/include/mps/ssl.h 0644 root bin
+f none usr/include/mps/sslerr.h 0644 root bin
+f none usr/include/mps/sslproto.h 0644 root bin
+f none usr/include/mps/sslt.h 0644 root bin
+f none usr/include/mps/swfort.h 0644 root bin
+f none usr/include/mps/swfortt.h 0644 root bin
+f none usr/include/mps/watcomfx.h 0644 root bin
diff --git a/security/nss/pkg/solaris/SUNWtlsu/Makefile b/security/nss/pkg/solaris/SUNWtlsu/Makefile
new file mode 100755
index 000000000..bc2795e27
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsu/Makefile
@@ -0,0 +1,16 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+CORE_DEPTH = ../../../..
+include ../Makefile-tlsu.com
+
+DATAFILES +=
+
+all:: $(FILES)
+publish:: all pkg
+
+include ../Makefile-tlsu.targ
diff --git a/security/nss/pkg/solaris/SUNWtlsu/pkgdepend b/security/nss/pkg/solaris/SUNWtlsu/pkgdepend
new file mode 100755
index 000000000..ae7d398c1
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsu/pkgdepend
@@ -0,0 +1,22 @@
+# Copyright 2004 Microsystems, Inc. All Rights Reserved.
+# Use is subject to license terms.
+#
+# $Id$
+#
+# This package information file defines software dependencies associated
+# with the pkg. You can define three types of pkg dependencies with this file:
+# P indicates a prerequisite for installation
+# I indicates an incompatible package
+# R indicates a reverse dependency
+# <pkg.abbr> see pkginfo(4), PKG parameter
+# <name> see pkginfo(4), NAME parameter
+# <version> see pkginfo(4), VERSION parameter
+# <arch> see pkginfo(4), ARCH parameter
+# <type> <pkg.abbr> <name>
+# (<arch>)<version>
+# (<arch>)<version>
+# ...
+# <type> <pkg.abbr> <name>
+# ...
+
+P SUNWtls Netscape Security Services
diff --git a/security/nss/pkg/solaris/SUNWtlsu/pkginfo.tmpl b/security/nss/pkg/solaris/SUNWtlsu/pkginfo.tmpl
new file mode 100755
index 000000000..19b7e8766
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsu/pkginfo.tmpl
@@ -0,0 +1,34 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+#
+# This required package information file describes characteristics of the
+# package, such as package abbreviation, full package name, package version,
+# and package architecture.
+#
+PKG="SUNWtlsu"
+NAME="Network Security Services Utilities"
+ARCH="ISA"
+VERSION="NSSVERS,REV=0.0.0"
+SUNW_PRODNAME="Network Security Services Utilities"
+SUNW_PRODVERS="RELEASE/VERSION"
+SUNW_PKGTYPE="usr"
+MAXINST="1000"
+CATEGORY="system"
+DESC="Network Security Services Utilities Programs"
+VENDOR="Sun Microsystems, Inc."
+HOTLINE="Please contact your local service provider"
+EMAIL=""
+CLASSES="none"
+BASEDIR=/
+SUNW_PKGVERS="1.0"
+#VSTOCK="<reserved by Release Engineering for package part #>"
+#ISTATES="<developer defined>"
+#RSTATES='<developer defined>'
+#ULIMIT="<developer defined>"
+#ORDER="<developer defined>"
+#PSTAMP="<developer defined>"
+#INTONLY="<developer defined>"
diff --git a/security/nss/pkg/solaris/SUNWtlsu/prototype_com b/security/nss/pkg/solaris/SUNWtlsu/prototype_com
new file mode 100755
index 000000000..48f8387dd
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsu/prototype_com
@@ -0,0 +1,36 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...> # where to find pkg objects
+#!include <filename> # include another 'prototype' file
+#!default <mode> <owner> <group> # default used if not specified on entry
+#!<param>=<value> # puts parameter in pkg environment
+
+# packaging files
+i copyright
+i pkginfo
+i depend=pkgdepend
+#
+# source locations relative to the prototype file
+#
+# SUNWtlsu
+#
+d none usr 0755 root sys
+d none usr/sfw 0755 root bin
+d none usr/sfw/bin 0755 root bin
+f none usr/sfw/bin/certutil 0755 root bin
+f none usr/sfw/bin/crlutil 0755 root bin
+f none usr/sfw/bin/cmsutil 0755 root bin
+f none usr/sfw/bin/modutil 0755 root bin
+f none usr/sfw/bin/pk12util 0755 root bin
+f none usr/sfw/bin/signtool 0755 root bin
+f none usr/sfw/bin/signver 0755 root bin
+f none usr/sfw/bin/ssltap 0755 root bin
diff --git a/security/nss/pkg/solaris/SUNWtlsu/prototype_i386 b/security/nss/pkg/solaris/SUNWtlsu/prototype_i386
new file mode 100644
index 000000000..8c02db360
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsu/prototype_i386
@@ -0,0 +1,41 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...> # where to find pkg objects
+#!include <filename> # include another 'prototype' file
+#!default <mode> <owner> <group> # default used if not specified on entry
+#!<param>=<value> # puts parameter in pkg environment
+
+#
+# Include ISA independent files (prototype_com)
+#
+!include prototype_com
+#
+#
+#
+# List files which are i386 specific here
+#
+# source locations relative to the prototype file
+#
+#
+# SUNWtlsu
+#
+#64#s none usr/sfw/bin/64=amd64
+#64#d none usr/sfw/bin/amd64 0755 root bin
+#64#f none usr/sfw/bin/amd64/certutil 0755 root bin
+#64#f none usr/sfw/bin/amd64/crlutil 0755 root bin
+#64#f none usr/sfw/bin/amd64/cmsutil 0755 root bin
+#64#f none usr/sfw/bin/amd64/modutil 0755 root bin
+#64#f none usr/sfw/bin/amd64/pk12util 0755 root bin
+#64#f none usr/sfw/bin/amd64/signtool 0755 root bin
+#64#f none usr/sfw/bin/amd64/signver 0755 root bin
+#64#f none usr/sfw/bin/amd64/ssltap 0755 root bin
+
diff --git a/security/nss/pkg/solaris/SUNWtlsu/prototype_sparc b/security/nss/pkg/solaris/SUNWtlsu/prototype_sparc
new file mode 100644
index 000000000..02cd02c39
--- /dev/null
+++ b/security/nss/pkg/solaris/SUNWtlsu/prototype_sparc
@@ -0,0 +1,41 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+# This required package information file contains a list of package contents.
+# The 'pkgmk' command uses this file to identify the contents of a package
+# and their location on the development machine when building the package.
+# Can be created via a text editor or through use of the 'pkgproto' command.
+
+#!search <pathname pathname ...> # where to find pkg objects
+#!include <filename> # include another 'prototype' file
+#!default <mode> <owner> <group> # default used if not specified on entry
+#!<param>=<value> # puts parameter in pkg environment
+
+#
+# Include ISA independent files (prototype_com)
+#
+!include prototype_com
+#
+#
+#
+# List files which are SPARC specific here
+#
+# source locations relative to the prototype file
+#
+#
+# SUNWtlsu
+#
+#64#s none usr/sfw/bin/64=sparcv9
+#64#d none usr/sfw/bin/sparcv9 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/certutil 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/crlutil 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/cmsutil 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/modutil 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/pk12util 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/signtool 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/signver 0755 root bin
+#64#f none usr/sfw/bin/sparcv9/ssltap 0755 root bin
+
diff --git a/security/nss/pkg/solaris/proto64.mk b/security/nss/pkg/solaris/proto64.mk
new file mode 100644
index 000000000..48e3bebc3
--- /dev/null
+++ b/security/nss/pkg/solaris/proto64.mk
@@ -0,0 +1,14 @@
+#
+# Copyright 2004 Sun Microsystems, Inc. All rights reserved.
+# Use is subject to license terms.
+#
+#ident "$Id$"
+#
+
+ifeq ($(USE_64), 1)
+ # Remove 64 tag
+ sed_proto64='s/\#64\#//g'
+else
+ # Strip 64 lines
+ sed_proto64='/\#64\#/d'
+endif
diff --git a/security/nss/tests/ssl/ecssl.sh b/security/nss/tests/ssl/ecssl.sh
index 512ed3fbb..f6658d775 100644
--- a/security/nss/tests/ssl/ecssl.sh
+++ b/security/nss/tests/ssl/ecssl.sh
@@ -131,15 +131,15 @@ is_selfserv_alive()
########################################################################
wait_for_selfserv()
{
- echo "tstclnt -p ${PORT} -h ${HOST} -q "
+ echo "tstclnt -p ${PORT} -h ${HOSTADDR} -q "
echo " -d ${P_R_CLIENTDIR} < ${REQUEST_FILE} \\"
#echo "tstclnt -q started at `date`"
- tstclnt -p ${PORT} -h ${HOST} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
+ tstclnt -p ${PORT} -h ${HOSTADDR} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
if [ $? -ne 0 ]; then
html_failed "<TR><TD> Wait for Server "
- echo "RETRY: tstclnt -p ${PORT} -h ${HOST} -q \\"
+ echo "RETRY: tstclnt -p ${PORT} -h ${HOSTADDR} -q \\"
echo " -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}"
- tstclnt -p ${PORT} -h ${HOST} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
+ tstclnt -p ${PORT} -h ${HOSTADDR} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
elif [ sparam = "-c ABCDEFGHIJKLMNOPQRSTabcdefghijklmnvy" ] ; then # "$1" = "cov" ] ; then
html_passed "<TR><TD> Wait for Server"
fi
@@ -221,11 +221,11 @@ ssl_cov()
fi
is_selfserv_alive
- echo "tstclnt -p ${PORT} -h ${HOST} -c ${param} ${TLS_FLAG} \\"
+ echo "tstclnt -p ${PORT} -h ${HOSTADDR} -c ${param} ${TLS_FLAG} \\"
echo " -f -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}"
rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- tstclnt -p ${PORT} -h ${HOST} -c ${param} ${TLS_FLAG} -f \
+ tstclnt -p ${PORT} -h ${HOSTADDR} -c ${param} ${TLS_FLAG} -f \
-d ${P_R_CLIENTDIR} < ${REQUEST_FILE} \
>${TMP}/$HOST.tmp.$$ 2>&1
ret=$?
@@ -252,10 +252,10 @@ ssl_auth()
cparam=`echo $cparam | sed -e 's;_; ;g' -e "s/TestUser/$USER_NICKNAME/g" `
start_selfserv
- echo "tstclnt -p ${PORT} -h ${HOST} -f -d ${P_R_CLIENTDIR} \\"
+ echo "tstclnt -p ${PORT} -h ${HOSTADDR} -f -d ${P_R_CLIENTDIR} \\"
echo " ${cparam} < ${REQUEST_FILE}"
rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- tstclnt -p ${PORT} -h ${HOST} -f ${cparam} \
+ tstclnt -p ${PORT} -h ${HOSTADDR} -f ${cparam} \
-d ${P_R_CLIENTDIR} < ${REQUEST_FILE} \
>${TMP}/$HOST.tmp.$$ 2>&1
ret=$?
diff --git a/security/nss/tests/ssl/ssl.sh b/security/nss/tests/ssl/ssl.sh
index 5af782ac6..d921fb02f 100755
--- a/security/nss/tests/ssl/ssl.sh
+++ b/security/nss/tests/ssl/ssl.sh
@@ -127,15 +127,15 @@ is_selfserv_alive()
########################################################################
wait_for_selfserv()
{
- echo "tstclnt -p ${PORT} -h ${HOST} -q "
+ echo "tstclnt -p ${PORT} -h ${HOSTADDR} -q "
echo " -d ${P_R_CLIENTDIR} < ${REQUEST_FILE} \\"
#echo "tstclnt -q started at `date`"
- tstclnt -p ${PORT} -h ${HOST} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
+ tstclnt -p ${PORT} -h ${HOSTADDR} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
if [ $? -ne 0 ]; then
html_failed "<TR><TD> Wait for Server "
- echo "RETRY: tstclnt -p ${PORT} -h ${HOST} -q \\"
+ echo "RETRY: tstclnt -p ${PORT} -h ${HOSTADDR} -q \\"
echo " -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}"
- tstclnt -p ${PORT} -h ${HOST} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
+ tstclnt -p ${PORT} -h ${HOSTADDR} -q -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}
elif [ sparam = "-c ABCDEFabcdefghijklmnvy" ] ; then # "$1" = "cov" ] ; then
html_passed "<TR><TD> Wait for Server"
fi
@@ -214,11 +214,11 @@ ssl_cov()
fi
is_selfserv_alive
- echo "tstclnt -p ${PORT} -h ${HOST} -c ${param} ${TLS_FLAG} \\"
+ echo "tstclnt -p ${PORT} -h ${HOSTADDR} -c ${param} ${TLS_FLAG} \\"
echo " -f -d ${P_R_CLIENTDIR} < ${REQUEST_FILE}"
rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- tstclnt -p ${PORT} -h ${HOST} -c ${param} ${TLS_FLAG} -f \
+ tstclnt -p ${PORT} -h ${HOSTADDR} -c ${param} ${TLS_FLAG} -f \
-d ${P_R_CLIENTDIR} < ${REQUEST_FILE} \
>${TMP}/$HOST.tmp.$$ 2>&1
ret=$?
@@ -245,10 +245,10 @@ ssl_auth()
cparam=`echo $cparam | sed -e 's;_; ;g' -e "s/TestUser/$USER_NICKNAME/g" `
start_selfserv
- echo "tstclnt -p ${PORT} -h ${HOST} -f -d ${P_R_CLIENTDIR} \\"
+ echo "tstclnt -p ${PORT} -h ${HOSTADDR} -f -d ${P_R_CLIENTDIR} \\"
echo " ${cparam} < ${REQUEST_FILE}"
rm ${TMP}/$HOST.tmp.$$ 2>/dev/null
- tstclnt -p ${PORT} -h ${HOST} -f ${cparam} \
+ tstclnt -p ${PORT} -h ${HOSTADDR} -f ${cparam} \
-d ${P_R_CLIENTDIR} < ${REQUEST_FILE} \
>${TMP}/$HOST.tmp.$$ 2>&1
ret=$?