diff options
Diffstat (limited to 'security/nss/lib/ckfw')
104 files changed, 66548 insertions, 0 deletions
diff --git a/security/nss/lib/ckfw/Makefile b/security/nss/lib/ckfw/Makefile new file mode 100644 index 000000000..484dbb511 --- /dev/null +++ b/security/nss/lib/ckfw/Makefile @@ -0,0 +1,39 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include manifest.mn +include $(CORE_DEPTH)/coreconf/config.mk +include config.mk +include $(CORE_DEPTH)/coreconf/rules.mk + +ifdef NOTDEF # was ifdef MOZILLA_CLIENT +NSS_BUILD_CAPI = 1 +endif + +# This'll need some help from a build person. + +# The generated files are checked in, and differ from what ckapi.perl +# will produce. ckapi.perl is currently newer than the targets, so +# these rules are invoked, causing the wrong files to be generated. +# Turning off to fix builds. +# +# nssckepv.h: ck.api ckapi.perl +# nssckft.h: ck.api ckapi.perl +# nssckg.h: ck.api ckapi.perl +# nssck.api: ck.api ckapi.perl +# $(PERL) ckapi.perl ck.api + +export:: private_export + +# can't do this in manifest.mn because OS_TARGET isn't defined there. +ifeq (,$(filter-out WINNT WIN95,$(OS_TARGET))) +ifdef NSS_BUILD_CAPI +DIRS += capi +endif +endif + +#ifeq ($(OS_ARCH), Darwin) +#DIRS += nssmkey +#endif diff --git a/security/nss/lib/ckfw/builtins/Makefile b/security/nss/lib/ckfw/builtins/Makefile new file mode 100644 index 000000000..22726e286 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/Makefile @@ -0,0 +1,54 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include manifest.mn +include $(CORE_DEPTH)/coreconf/config.mk +include config.mk + +EXTRA_LIBS = \ + $(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \ + $(NULL) + +# can't do this in manifest.mn because OS_TARGET isn't defined there. +ifeq (,$(filter-out WIN%,$(OS_TARGET))) + +ifdef NS_USE_GCC +EXTRA_SHARED_LIBS += \ + -L$(NSPR_LIB_DIR) \ + -lplc4 \ + -lplds4 \ + -lnspr4 \ + $(NULL) +else +EXTRA_SHARED_LIBS += \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.lib \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.lib \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4.lib \ + $(NULL) +endif # NS_USE_GCC +else + +EXTRA_SHARED_LIBS += \ + -L$(NSPR_LIB_DIR) \ + -lplc4 \ + -lplds4 \ + -lnspr4 \ + $(NULL) +endif + + +include $(CORE_DEPTH)/coreconf/rules.mk + +# Generate certdata.c. + +# By default, use the unmodified certdata.txt. +ifndef NSS_CERTDATA_TXT +NSS_CERTDATA_TXT = certdata.txt +endif + +$(OBJDIR)/certdata.c: $(NSS_CERTDATA_TXT) certdata.perl + @$(MAKE_OBJDIR) + $(PERL) certdata.perl $(NSS_CERTDATA_TXT) $@ diff --git a/security/nss/lib/ckfw/builtins/README b/security/nss/lib/ckfw/builtins/README new file mode 100644 index 000000000..fc0393c38 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/README @@ -0,0 +1,45 @@ +This README file explains how to add a builtin root CA certificate to NSS +or remove a builtin root CA certificate from NSS. + +The builtin root CA certificates in NSS are stored in the nssckbi PKCS #11 +module. The sources to the nssckbi module are in this directory. + +I. Adding a Builtin Root CA Certificate + +You need to use the addbuiltin command-line tool to add a root CA certificate +to the nssckbi module. In the procedure described below, we assume that the +new root CA certificate is distributed in DER format in the file newroot.der. + +1. Add the directory where the addbuiltin executable resides to your PATH +environment variable. Then, add the directory where the NSPR and NSS shared +libraries (DLLs) reside to the platform-specific environment variable that +specifies your shared library search path: LD_LIBRARY_PATH (most Unix +variants), SHLIB_PATH (32-bit HP-UX), LIBPATH (AIX), or PATH (Windows). + +2. Copy newroot.der to this directory. + +3. In this directory, run addbuiltin to add the new root certificate. The +argument to the -n option should be replaced by the nickname of the root +certificate. + + % addbuiltin -n "Nickname of the Root Certificate" -t C,C,C < newroot.der >> certdata.txt + +4. Edit nssckbi.h to bump the version of the module. + +5. Run gmake in this directory to build the nssckbi module. + +6. After you verify that the new nssckbi module is correct, check in +certdata.txt and nssckbi.h. + +II. Removing a Builtin Root CA Certificate + +1. Change directory to this directory. + +2. Edit certdata.txt and remove the root CA certificate. + +3. Edit nssckbi.h to bump the version of the module. + +4. Run gmake in this directory to build the nssckbi module. + +5. After you verify that the new nssckbi module is correct, check in +certdata.txt and nssckbi.h. diff --git a/security/nss/lib/ckfw/builtins/anchor.c b/security/nss/lib/ckfw/builtins/anchor.c new file mode 100644 index 000000000..af21c6a0b --- /dev/null +++ b/security/nss/lib/ckfw/builtins/anchor.c @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * builtins/anchor.c + * + * This file "anchors" the actual cryptoki entry points in this module's + * shared library, which is required for dynamic loading. See the + * comments in nssck.api for more information. + */ + +#include "builtins.h" + +#define MODULE_NAME builtins +#define INSTANCE_NAME (NSSCKMDInstance *)&nss_builtins_mdInstance +#include "nssck.api" diff --git a/security/nss/lib/ckfw/builtins/bfind.c b/security/nss/lib/ckfw/builtins/bfind.c new file mode 100644 index 000000000..3e5da1a55 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/bfind.c @@ -0,0 +1,261 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BUILTINS_H +#include "builtins.h" +#endif /* BUILTINS_H */ + +/* + * builtins/find.c + * + * This file implements the NSSCKMDFindObjects object for the + * "builtin objects" cryptoki module. + */ + +struct builtinsFOStr { + NSSArena *arena; + CK_ULONG n; + CK_ULONG i; + builtinsInternalObject **objs; +}; + +static void +builtins_mdFindObjects_Final( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + struct builtinsFOStr *fo = (struct builtinsFOStr *)mdFindObjects->etc; + NSSArena *arena = fo->arena; + + nss_ZFreeIf(fo->objs); + nss_ZFreeIf(fo); + nss_ZFreeIf(mdFindObjects); + if ((NSSArena *)NULL != arena) { + NSSArena_Destroy(arena); + } + + return; +} + +static NSSCKMDObject * +builtins_mdFindObjects_Next( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + struct builtinsFOStr *fo = (struct builtinsFOStr *)mdFindObjects->etc; + builtinsInternalObject *io; + + if (fo->i == fo->n) { + *pError = CKR_OK; + return (NSSCKMDObject *)NULL; + } + + io = fo->objs[fo->i]; + fo->i++; + + return nss_builtins_CreateMDObject(arena, io, pError); +} + +static int +builtins_derUnwrapInt(unsigned char *src, int size, unsigned char **dest) +{ + unsigned char *start = src; + int len = 0; + + if (*src++ != 2) { + return 0; + } + len = *src++; + if (len & 0x80) { + int count = len & 0x7f; + len = 0; + + if (count + 2 > size) { + return 0; + } + while (count-- > 0) { + len = (len << 8) | *src++; + } + } + if (len + (src - start) != size) { + return 0; + } + *dest = src; + return len; +} + +static CK_BBOOL +builtins_attrmatch( + CK_ATTRIBUTE_PTR a, + const NSSItem *b) +{ + PRBool prb; + + if (a->ulValueLen != b->size) { + /* match a decoded serial number */ + if ((a->type == CKA_SERIAL_NUMBER) && (a->ulValueLen < b->size)) { + int len; + unsigned char *data = NULL; + + len = builtins_derUnwrapInt(b->data, b->size, &data); + if (data && + (len == a->ulValueLen) && + nsslibc_memequal(a->pValue, data, len, (PRStatus *)NULL)) { + return CK_TRUE; + } + } + return CK_FALSE; + } + + prb = nsslibc_memequal(a->pValue, b->data, b->size, (PRStatus *)NULL); + + if (PR_TRUE == prb) { + return CK_TRUE; + } else { + return CK_FALSE; + } +} + +static CK_BBOOL +builtins_match( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + builtinsInternalObject *o) +{ + CK_ULONG i; + + for (i = 0; i < ulAttributeCount; i++) { + CK_ULONG j; + + for (j = 0; j < o->n; j++) { + if (o->types[j] == pTemplate[i].type) { + if (CK_FALSE == builtins_attrmatch(&pTemplate[i], &o->items[j])) { + return CK_FALSE; + } else { + break; + } + } + } + + if (j == o->n) { + /* Loop ran to the end: no matching attribute */ + return CK_FALSE; + } + } + + /* Every attribute passed */ + return CK_TRUE; +} + +NSS_IMPLEMENT NSSCKMDFindObjects * +nss_builtins_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + /* This could be made more efficient. I'm rather rushed. */ + NSSArena *arena; + NSSCKMDFindObjects *rv = (NSSCKMDFindObjects *)NULL; + struct builtinsFOStr *fo = (struct builtinsFOStr *)NULL; + +/* + * 99% of the time we get 0 or 1 matches. So we start with a small + * stack-allocated array to hold the matches and switch to a heap-allocated + * array later if the number of matches exceeds STACK_BUF_LENGTH. + */ +#define STACK_BUF_LENGTH 1 + builtinsInternalObject *stackTemp[STACK_BUF_LENGTH]; + builtinsInternalObject **temp = stackTemp; + PRBool tempIsHeapAllocated = PR_FALSE; + PRUint32 i; + + arena = NSSArena_Create(); + if ((NSSArena *)NULL == arena) { + goto loser; + } + + rv = nss_ZNEW(arena, NSSCKMDFindObjects); + if ((NSSCKMDFindObjects *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fo = nss_ZNEW(arena, struct builtinsFOStr); + if ((struct builtinsFOStr *)NULL == fo) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fo->arena = arena; + /* fo->n and fo->i are already zero */ + + rv->etc = (void *)fo; + rv->Final = builtins_mdFindObjects_Final; + rv->Next = builtins_mdFindObjects_Next; + rv->null = (void *)NULL; + + for (i = 0; i < nss_builtins_nObjects; i++) { + builtinsInternalObject *o = (builtinsInternalObject *)&nss_builtins_data[i]; + + if (CK_TRUE == builtins_match(pTemplate, ulAttributeCount, o)) { + if (fo->n == STACK_BUF_LENGTH) { + /* Switch from the small stack array to a heap-allocated array large + * enough to handle matches in all remaining cases. */ + temp = nss_ZNEWARRAY((NSSArena *)NULL, builtinsInternalObject *, + fo->n + nss_builtins_nObjects - i); + if ((builtinsInternalObject **)NULL == temp) { + *pError = + CKR_HOST_MEMORY; + goto loser; + } + tempIsHeapAllocated = PR_TRUE; + (void)nsslibc_memcpy(temp, stackTemp, + sizeof(builtinsInternalObject *) * fo->n); + } + + temp[fo->n] = o; + fo->n++; + } + } + + fo->objs = nss_ZNEWARRAY(arena, builtinsInternalObject *, fo->n); + if ((builtinsInternalObject **)NULL == fo->objs) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + (void)nsslibc_memcpy(fo->objs, temp, sizeof(builtinsInternalObject *) * fo->n); + if (tempIsHeapAllocated) { + nss_ZFreeIf(temp); + temp = (builtinsInternalObject **)NULL; + } + + return rv; + +loser: + if (tempIsHeapAllocated) { + nss_ZFreeIf(temp); + } + nss_ZFreeIf(fo); + nss_ZFreeIf(rv); + if ((NSSArena *)NULL != arena) { + NSSArena_Destroy(arena); + } + return (NSSCKMDFindObjects *)NULL; +} diff --git a/security/nss/lib/ckfw/builtins/binst.c b/security/nss/lib/ckfw/builtins/binst.c new file mode 100644 index 000000000..ca1dac89c --- /dev/null +++ b/security/nss/lib/ckfw/builtins/binst.c @@ -0,0 +1,87 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "builtins.h" + +/* + * builtins/instance.c + * + * This file implements the NSSCKMDInstance object for the + * "builtin objects" cryptoki module. + */ + +/* + * NSSCKMDInstance methods + */ + +static CK_ULONG +builtins_mdInstance_GetNSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (CK_ULONG)1; +} + +static CK_VERSION +builtins_mdInstance_GetCryptokiVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_builtins_CryptokiVersion; +} + +static NSSUTF8 * +builtins_mdInstance_GetManufacturerID( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_ManufacturerID; +} + +static NSSUTF8 * +builtins_mdInstance_GetLibraryDescription( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_LibraryDescription; +} + +static CK_VERSION +builtins_mdInstance_GetLibraryVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ +#define NSS_VERSION_VARIABLE __nss_builtins_version +#include "verref.h" + return nss_builtins_LibraryVersion; +} + +static CK_RV +builtins_mdInstance_GetSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *slots[]) +{ + slots[0] = (NSSCKMDSlot *)&nss_builtins_mdSlot; + return CKR_OK; +} + +const NSSCKMDInstance + nss_builtins_mdInstance = { + (void *)NULL, /* etc */ + NULL, /* Initialize */ + NULL, /* Finalize */ + builtins_mdInstance_GetNSlots, + builtins_mdInstance_GetCryptokiVersion, + builtins_mdInstance_GetManufacturerID, + builtins_mdInstance_GetLibraryDescription, + builtins_mdInstance_GetLibraryVersion, + NULL, /* ModuleHandlesSessionObjects -- defaults to false */ + builtins_mdInstance_GetSlots, + NULL, /* WaitForSlotEvent */ + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/builtins/bobject.c b/security/nss/lib/ckfw/builtins/bobject.c new file mode 100644 index 000000000..1c0babdd6 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/bobject.c @@ -0,0 +1,206 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "builtins.h" + +/* + * builtins/object.c + * + * This file implements the NSSCKMDObject object for the + * "builtin objects" cryptoki module. + */ + +/* + * Finalize - unneeded + * Destroy - CKR_SESSION_READ_ONLY + * IsTokenObject - CK_TRUE + * GetAttributeCount + * GetAttributeTypes + * GetAttributeSize + * GetAttribute + * SetAttribute - unneeded + * GetObjectSize + */ + +static CK_RV +builtins_mdObject_Destroy( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CKR_SESSION_READ_ONLY; +} + +static CK_BBOOL +builtins_mdObject_IsTokenObject( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_ULONG +builtins_mdObject_GetAttributeCount( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc; + return io->n; +} + +static CK_RV +builtins_mdObject_GetAttributeTypes( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ + builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc; + CK_ULONG i; + + if (io->n != ulCount) { + return CKR_BUFFER_TOO_SMALL; + } + + for (i = 0; i < io->n; i++) { + typeArray[i] = io->types[i]; + } + + return CKR_OK; +} + +static CK_ULONG +builtins_mdObject_GetAttributeSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc; + CK_ULONG i; + + for (i = 0; i < io->n; i++) { + if (attribute == io->types[i]) { + return (CK_ULONG)(io->items[i].size); + } + } + + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return 0; +} + +static NSSCKFWItem +builtins_mdObject_GetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + NSSCKFWItem mdItem; + builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc; + CK_ULONG i; + + mdItem.needsFreeing = PR_FALSE; + mdItem.item = (NSSItem *)NULL; + + for (i = 0; i < io->n; i++) { + if (attribute == io->types[i]) { + mdItem.item = (NSSItem *)&io->items[i]; + return mdItem; + } + } + + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return mdItem; +} + +static CK_ULONG +builtins_mdObject_GetObjectSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + builtinsInternalObject *io = (builtinsInternalObject *)mdObject->etc; + CK_ULONG i; + CK_ULONG rv = sizeof(CK_ULONG); + + for (i = 0; i < io->n; i++) { + rv += sizeof(CK_ATTRIBUTE_TYPE) + sizeof(NSSItem) + io->items[i].size; + } + + return rv; +} + +static const NSSCKMDObject + builtins_prototype_mdObject = { + (void *)NULL, /* etc */ + NULL, /* Finalize */ + builtins_mdObject_Destroy, + builtins_mdObject_IsTokenObject, + builtins_mdObject_GetAttributeCount, + builtins_mdObject_GetAttributeTypes, + builtins_mdObject_GetAttributeSize, + builtins_mdObject_GetAttribute, + NULL, /* FreeAttribute */ + NULL, /* SetAttribute */ + builtins_mdObject_GetObjectSize, + (void *)NULL /* null terminator */ + }; + +NSS_IMPLEMENT NSSCKMDObject * +nss_builtins_CreateMDObject( + NSSArena *arena, + builtinsInternalObject *io, + CK_RV *pError) +{ + if ((void *)NULL == io->mdObject.etc) { + (void)nsslibc_memcpy(&io->mdObject, &builtins_prototype_mdObject, + sizeof(builtins_prototype_mdObject)); + io->mdObject.etc = (void *)io; + } + + return &io->mdObject; +} diff --git a/security/nss/lib/ckfw/builtins/bsession.c b/security/nss/lib/ckfw/builtins/bsession.c new file mode 100644 index 000000000..6828a49af --- /dev/null +++ b/security/nss/lib/ckfw/builtins/bsession.c @@ -0,0 +1,71 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "builtins.h" + +/* + * builtins/session.c + * + * This file implements the NSSCKMDSession object for the + * "builtin objects" cryptoki module. + */ + +static NSSCKMDFindObjects * +builtins_mdSession_FindObjectsInit( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + return nss_builtins_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError); +} + +NSS_IMPLEMENT NSSCKMDSession * +nss_builtins_CreateSession( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ + NSSArena *arena; + NSSCKMDSession *rv; + + arena = NSSCKFWSession_GetArena(fwSession, pError); + if ((NSSArena *)NULL == arena) { + return (NSSCKMDSession *)NULL; + } + + rv = nss_ZNEW(arena, NSSCKMDSession); + if ((NSSCKMDSession *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSession *)NULL; + } + + /* + * rv was zeroed when allocated, so we only + * need to set the non-zero members. + */ + + rv->etc = (void *)fwSession; + /* rv->Close */ + /* rv->GetDeviceError */ + /* rv->Login */ + /* rv->Logout */ + /* rv->InitPIN */ + /* rv->SetPIN */ + /* rv->GetOperationStateLen */ + /* rv->GetOperationState */ + /* rv->SetOperationState */ + /* rv->CreateObject */ + /* rv->CopyObject */ + rv->FindObjectsInit = builtins_mdSession_FindObjectsInit; + /* rv->SeedRandom */ + /* rv->GetRandom */ + /* rv->null */ + + return rv; +} diff --git a/security/nss/lib/ckfw/builtins/bslot.c b/security/nss/lib/ckfw/builtins/bslot.c new file mode 100644 index 000000000..f2ef1efb9 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/bslot.c @@ -0,0 +1,81 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "builtins.h" + +/* + * builtins/slot.c + * + * This file implements the NSSCKMDSlot object for the + * "builtin objects" cryptoki module. + */ + +static NSSUTF8 * +builtins_mdSlot_GetSlotDescription( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_SlotDescription; +} + +static NSSUTF8 * +builtins_mdSlot_GetManufacturerID( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_ManufacturerID; +} + +static CK_VERSION +builtins_mdSlot_GetHardwareVersion( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_builtins_HardwareVersion; +} + +static CK_VERSION +builtins_mdSlot_GetFirmwareVersion( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_builtins_FirmwareVersion; +} + +static NSSCKMDToken * +builtins_mdSlot_GetToken( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSCKMDToken *)&nss_builtins_mdToken; +} + +const NSSCKMDSlot + nss_builtins_mdSlot = { + (void *)NULL, /* etc */ + NULL, /* Initialize */ + NULL, /* Destroy */ + builtins_mdSlot_GetSlotDescription, + builtins_mdSlot_GetManufacturerID, + NULL, /* GetTokenPresent -- defaults to true */ + NULL, /* GetRemovableDevice -- defaults to false */ + NULL, /* GetHardwareSlot -- defaults to false */ + builtins_mdSlot_GetHardwareVersion, + builtins_mdSlot_GetFirmwareVersion, + builtins_mdSlot_GetToken, + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/builtins/btoken.c b/security/nss/lib/ckfw/builtins/btoken.c new file mode 100644 index 000000000..ae1e1380b --- /dev/null +++ b/security/nss/lib/ckfw/builtins/btoken.c @@ -0,0 +1,135 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "builtins.h" + +/* + * builtins/token.c + * + * This file implements the NSSCKMDToken object for the + * "builtin objects" cryptoki module. + */ + +static NSSUTF8 * +builtins_mdToken_GetLabel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_TokenLabel; +} + +static NSSUTF8 * +builtins_mdToken_GetManufacturerID( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_ManufacturerID; +} + +static NSSUTF8 * +builtins_mdToken_GetModel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_TokenModel; +} + +static NSSUTF8 * +builtins_mdToken_GetSerialNumber( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_builtins_TokenSerialNumber; +} + +static CK_BBOOL +builtins_mdToken_GetIsWriteProtected( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_VERSION +builtins_mdToken_GetHardwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_builtins_HardwareVersion; +} + +static CK_VERSION +builtins_mdToken_GetFirmwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_builtins_FirmwareVersion; +} + +static NSSCKMDSession * +builtins_mdToken_OpenSession( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_BBOOL rw, + CK_RV *pError) +{ + return nss_builtins_CreateSession(fwSession, pError); +} + +const NSSCKMDToken + nss_builtins_mdToken = { + (void *)NULL, /* etc */ + NULL, /* Setup */ + NULL, /* Invalidate */ + NULL, /* InitToken -- default errs */ + builtins_mdToken_GetLabel, + builtins_mdToken_GetManufacturerID, + builtins_mdToken_GetModel, + builtins_mdToken_GetSerialNumber, + NULL, /* GetHasRNG -- default is false */ + builtins_mdToken_GetIsWriteProtected, + NULL, /* GetLoginRequired -- default is false */ + NULL, /* GetUserPinInitialized -- default is false */ + NULL, /* GetRestoreKeyNotNeeded -- irrelevant */ + NULL, /* GetHasClockOnToken -- default is false */ + NULL, /* GetHasProtectedAuthenticationPath -- default is false */ + NULL, /* GetSupportsDualCryptoOperations -- default is false */ + NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetMaxPinLen -- irrelevant */ + NULL, /* GetMinPinLen -- irrelevant */ + NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ + builtins_mdToken_GetHardwareVersion, + builtins_mdToken_GetFirmwareVersion, + NULL, /* GetUTCTime -- no clock */ + builtins_mdToken_OpenSession, + NULL, /* GetMechanismCount -- default is zero */ + NULL, /* GetMechanismTypes -- irrelevant */ + NULL, /* GetMechanism -- irrelevant */ + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/builtins/builtins.gyp b/security/nss/lib/ckfw/builtins/builtins.gyp new file mode 100644 index 000000000..d85442585 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/builtins.gyp @@ -0,0 +1,61 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +{ + 'includes': [ + '../../../coreconf/config.gypi' + ], + 'targets': [ + { + 'target_name': 'nssckbi', + 'type': 'shared_library', + 'sources': [ + 'anchor.c', + 'bfind.c', + 'binst.c', + 'bobject.c', + 'bsession.c', + 'bslot.c', + 'btoken.c', + 'ckbiver.c', + 'constants.c', + '<(INTERMEDIATE_DIR)/certdata.c' + ], + 'dependencies': [ + '<(DEPTH)/exports.gyp:nss_exports', + '<(DEPTH)/lib/ckfw/ckfw.gyp:nssckfw', + '<(DEPTH)/lib/base/base.gyp:nssb' + ], + 'actions': [ + { + 'msvs_cygwin_shell': 0, + 'action': [ + 'perl', + 'certdata.perl', + 'certdata.txt', + '<@(_outputs)', + ], + 'inputs': [ + 'certdata.perl', + 'certdata.txt' + ], + 'outputs': [ + '<(INTERMEDIATE_DIR)/certdata.c' + ], + 'action_name': 'generate_certdata_c' + } + ], + 'variables': { + 'mapfile': 'nssckbi.def' + } + } + ], + 'target_defaults': { + 'include_dirs': [ + '.' + ] + }, + 'variables': { + 'module': 'nss', + } +} diff --git a/security/nss/lib/ckfw/builtins/builtins.h b/security/nss/lib/ckfw/builtins/builtins.h new file mode 100644 index 000000000..a1693c29c --- /dev/null +++ b/security/nss/lib/ckfw/builtins/builtins.h @@ -0,0 +1,66 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nssckmdt.h" +#include "nssckfw.h" + +/* + * I'm including this for access to the arena functions. + * Looks like we should publish that API. + */ +#ifndef BASE_H +#include "base.h" +#endif /* BASE_H */ + +/* + * This is where the Netscape extensions live, at least for now. + */ +#ifndef CKT_H +#include "ckt.h" +#endif /* CKT_H */ + +struct builtinsInternalObjectStr { + CK_ULONG n; + const CK_ATTRIBUTE_TYPE *types; + const NSSItem *items; + NSSCKMDObject mdObject; +}; +typedef struct builtinsInternalObjectStr builtinsInternalObject; + +extern builtinsInternalObject nss_builtins_data[]; +extern const PRUint32 nss_builtins_nObjects; + +extern const CK_VERSION nss_builtins_CryptokiVersion; +extern const CK_VERSION nss_builtins_LibraryVersion; +extern const CK_VERSION nss_builtins_HardwareVersion; +extern const CK_VERSION nss_builtins_FirmwareVersion; + +extern const NSSUTF8 nss_builtins_ManufacturerID[]; +extern const NSSUTF8 nss_builtins_LibraryDescription[]; +extern const NSSUTF8 nss_builtins_SlotDescription[]; +extern const NSSUTF8 nss_builtins_TokenLabel[]; +extern const NSSUTF8 nss_builtins_TokenModel[]; +extern const NSSUTF8 nss_builtins_TokenSerialNumber[]; + +extern const NSSCKMDInstance nss_builtins_mdInstance; +extern const NSSCKMDSlot nss_builtins_mdSlot; +extern const NSSCKMDToken nss_builtins_mdToken; + +NSS_EXTERN NSSCKMDSession * +nss_builtins_CreateSession( + NSSCKFWSession *fwSession, + CK_RV *pError); + +NSS_EXTERN NSSCKMDFindObjects * +nss_builtins_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +NSS_EXTERN NSSCKMDObject * +nss_builtins_CreateMDObject( + NSSArena *arena, + builtinsInternalObject *io, + CK_RV *pError); diff --git a/security/nss/lib/ckfw/builtins/certdata.perl b/security/nss/lib/ckfw/builtins/certdata.perl new file mode 100644 index 000000000..502dfb0c5 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/certdata.perl @@ -0,0 +1,192 @@ +#!perl -w +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +use strict; + +my %constants; +my $count = 0; +my $o; +my @objects = (); +my @objsize; + +$constants{CK_TRUE} = "static const CK_BBOOL ck_true = CK_TRUE;\n"; +$constants{CK_FALSE} = "static const CK_BBOOL ck_false = CK_FALSE;\n"; + +if( scalar @ARGV == 0 ) { + print STDERR "Usage: $0 <input-file> [output-file]\n"; + exit 1; +} + +open(STDIN, '<', $ARGV[0]) + or die "Could not open input file '$ARGV[0]' $!"; +if( scalar @ARGV > 1 ) { + open(STDOUT, '>', $ARGV[1]) + or die "Could not open output file '$ARGV[1]' $!"; +} + +while(<>) { + my @fields = (); + my $size; + + s/^((?:[^"#]+|"[^"]*")*)(\s*#.*$)/$1/; + next if (/^\s*$/); + + # This was taken from the perl faq #4. + my $text = $_; + push(@fields, $+) while $text =~ m{ + "([^\"\\]*(?:\\.[^\"\\]*)*)"\s? # groups the phrase inside the quotes + | ([^\s]+)\s? + | \s + }gx; + push(@fields, undef) if substr($text,-1,1) eq '\s'; + + if( $fields[0] =~ /BEGINDATA/ ) { + next; + } + + if( $fields[1] =~ /MULTILINE/ ) { + $fields[2] = ""; + while(<>) { + last if /END/; + chomp; + $fields[2] .= "\"$_\"\n"; + } + } + + if( $fields[1] =~ /UTF8/ ) { + if( $fields[2] =~ /^"/ ) { + ; + } else { + $fields[2] = "\"" . $fields[2] . "\""; + } + + my $scratch = eval($fields[2]); + + $size = length($scratch) + 1; # null terminate + } + + if( $fields[1] =~ /OCTAL/ ) { + if( $fields[2] =~ /^"/ ) { + ; + } else { + $fields[2] = "\"" . $fields[2] . "\""; + } + + my $scratch = $fields[2]; + $size = $scratch =~ tr/\\//; + # no null termination + } + + if( $fields[1] =~ /^CK_/ ) { + my $lcv = $fields[2]; + $lcv =~ tr/A-Z/a-z/; + if( !defined($constants{$fields[2]}) ) { + $constants{$fields[2]} = "static const $fields[1] $lcv = $fields[2];\n"; + } + + $size = "sizeof($fields[1])"; + $fields[2] = "&$lcv"; + } + + if( $fields[0] =~ /CKA_CLASS/ ) { + $count++; + $objsize[$count] = 0; + } + + @{$objects[$count][$objsize[$count]++]} = ( "$fields[0]", $fields[2], "$size" ); + + # print "$fields[0] | $fields[1] | $size | $fields[2]\n"; +} + +doprint(); + +sub dudump { +my $i; +for( $i = 1; $i <= $count; $i++ ) { + print "\n"; + $o = $objects[$i]; + my @ob = @{$o}; + my $l; + my $j; + for( $j = 0; $j < @ob; $j++ ) { + $l = $ob[$j]; + my @a = @{$l}; + print "$a[0] ! $a[1] ! $a[2]\n"; + } +} + +} + +sub doprint { +my $i; + +print <<EOD +/* THIS IS A GENERATED FILE */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BUILTINS_H +#include "builtins.h" +#endif /* BUILTINS_H */ + +EOD + ; + +foreach $b (sort values(%constants)) { + print $b; +} + +for( $i = 1; $i <= $count; $i++ ) { + print "static const CK_ATTRIBUTE_TYPE nss_builtins_types_$i [] = {\n"; + $o = $objects[$i]; + my @ob = @{$o}; + my $j; + for( $j = 0; $j < @ob; $j++ ) { + my $l = $ob[$j]; + my @a = @{$l}; + print " $a[0]"; + if( $j+1 != @ob ) { + print ", "; + } + } + print "\n};\n"; +} + +for( $i = 1; $i <= $count; $i++ ) { + print "static const NSSItem nss_builtins_items_$i [] = {\n"; + $o = $objects[$i]; + my @ob = @{$o}; + my $j; + for( $j = 0; $j < @ob; $j++ ) { + my $l = $ob[$j]; + my @a = @{$l}; + print " { (void *)$a[1], (PRUint32)$a[2] }"; + if( $j+1 != @ob ) { + print ",\n"; + } else { + print "\n"; + } + } + print "};\n"; +} + +print "\nbuiltinsInternalObject\n"; +print "nss_builtins_data[] = {\n"; + +for( $i = 1; $i <= $count; $i++ ) { + print " { $objsize[$i], nss_builtins_types_$i, nss_builtins_items_$i, {NULL} }"; + if( $i == $count ) { + print "\n"; + } else { + print ",\n"; + } +} + +print "};\n"; + +print "const PRUint32\n"; +print "nss_builtins_nObjects = $count;\n"; +} diff --git a/security/nss/lib/ckfw/builtins/certdata.txt b/security/nss/lib/ckfw/builtins/certdata.txt new file mode 100644 index 000000000..9018179d3 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/certdata.txt @@ -0,0 +1,29506 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# +# certdata.txt +# +# This file contains the object definitions for the certs and other +# information "built into" NSS. +# +# Object definitions: +# +# Certificates +# +# -- Attribute -- -- type -- -- value -- +# 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 (varies) +# CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +# CKA_SUBJECT DER+base64 (varies) +# CKA_ID byte array (varies) +# CKA_ISSUER DER+base64 (varies) +# CKA_SERIAL_NUMBER DER+base64 (varies) +# CKA_VALUE DER+base64 (varies) +# CKA_NSS_EMAIL ASCII7 (unused here) +# +# Trust +# +# -- Attribute -- -- type -- -- value -- +# CKA_CLASS CK_OBJECT_CLASS CKO_TRUST +# CKA_TOKEN CK_BBOOL CK_TRUE +# CKA_PRIVATE CK_BBOOL CK_FALSE +# CKA_MODIFIABLE CK_BBOOL CK_FALSE +# CKA_LABEL UTF8 (varies) +# CKA_ISSUER DER+base64 (varies) +# CKA_SERIAL_NUMBER DER+base64 (varies) +# CKA_CERT_HASH binary+base64 (varies) +# CKA_EXPIRES CK_DATE (not used here) +# CKA_TRUST_DIGITAL_SIGNATURE CK_TRUST (varies) +# CKA_TRUST_NON_REPUDIATION CK_TRUST (varies) +# CKA_TRUST_KEY_ENCIPHERMENT CK_TRUST (varies) +# CKA_TRUST_DATA_ENCIPHERMENT CK_TRUST (varies) +# CKA_TRUST_KEY_AGREEMENT CK_TRUST (varies) +# CKA_TRUST_KEY_CERT_SIGN CK_TRUST (varies) +# CKA_TRUST_CRL_SIGN CK_TRUST (varies) +# CKA_TRUST_SERVER_AUTH CK_TRUST (varies) +# CKA_TRUST_CLIENT_AUTH CK_TRUST (varies) +# CKA_TRUST_CODE_SIGNING CK_TRUST (varies) +# CKA_TRUST_EMAIL_PROTECTION CK_TRUST (varies) +# CKA_TRUST_IPSEC_END_SYSTEM CK_TRUST (varies) +# CKA_TRUST_IPSEC_TUNNEL CK_TRUST (varies) +# CKA_TRUST_IPSEC_USER CK_TRUST (varies) +# CKA_TRUST_TIME_STAMPING CK_TRUST (varies) +# CKA_TRUST_STEP_UP_APPROVED CK_BBOOL (varies) +# (other trust attributes can be defined) +# + +# +# The object to tell NSS that this is a root list and we don't +# have to go looking for others. +# +BEGINDATA +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_BUILTIN_ROOT_LIST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Mozilla Builtin Roots" + +# Distrust "Distrust a pb.com certificate that does not comply with the baseline requirements." +# Issuer: OU=Equifax Secure Certificate Authority,O=Equifax,C=US +# Serial Number: 1407252 (0x157914) +# Subject: CN=*.pb.com,OU=Meters,O=Pitney Bowes,L=Danbury,ST=Connecticut,C=US +# Not Valid Before: Mon Feb 01 14:54:04 2010 +# Not Valid After : Tue Sep 30 00:00:00 2014 +# Fingerprint (MD5): 8F:46:BE:99:47:6F:93:DC:5C:01:54:50:D0:4A:BD:AC +# Fingerprint (SHA1): 30:F1:82:CA:1A:5E:4E:4F:F3:6E:D0:E6:38:18:B8:B9:41:CB:5F:8C +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Distrust a pb.com certificate that does not comply with the baseline requirements." +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\012\023\007\105\161\165\151\146\141 +\170\061\055\060\053\006\003\125\004\013\023\044\105\161\165\151 +\146\141\170\040\123\145\143\165\162\145\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\025\171\024 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign Root CA" +# +# Issuer: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE +# Serial Number:04:00:00:00:00:01:15:4b:5a:c3:94 +# Subject: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE +# Not Valid Before: Tue Sep 01 12:00:00 1998 +# Not Valid After : Fri Jan 28 12:00:00 2028 +# Fingerprint (MD5): 3E:45:52:15:09:51:92:E1:B7:5D:37:9F:B1:87:29:8A +# Fingerprint (SHA1): B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C +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 "GlobalSign Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 +\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 +\123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 +\125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 +\006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 +\156\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 +\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 +\123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 +\125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 +\006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 +\156\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\025\113\132\303\224 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\165\060\202\002\135\240\003\002\001\002\002\013\004 +\000\000\000\000\001\025\113\132\303\224\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\127\061\013\060\011\006 +\003\125\004\006\023\002\102\105\061\031\060\027\006\003\125\004 +\012\023\020\107\154\157\142\141\154\123\151\147\156\040\156\166 +\055\163\141\061\020\060\016\006\003\125\004\013\023\007\122\157 +\157\164\040\103\101\061\033\060\031\006\003\125\004\003\023\022 +\107\154\157\142\141\154\123\151\147\156\040\122\157\157\164\040 +\103\101\060\036\027\015\071\070\060\071\060\061\061\062\060\060 +\060\060\132\027\015\062\070\060\061\062\070\061\062\060\060\060 +\060\132\060\127\061\013\060\011\006\003\125\004\006\023\002\102 +\105\061\031\060\027\006\003\125\004\012\023\020\107\154\157\142 +\141\154\123\151\147\156\040\156\166\055\163\141\061\020\060\016 +\006\003\125\004\013\023\007\122\157\157\164\040\103\101\061\033 +\060\031\006\003\125\004\003\023\022\107\154\157\142\141\154\123 +\151\147\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\332\016\346\231 +\215\316\243\343\117\212\176\373\361\213\203\045\153\352\110\037 +\361\052\260\271\225\021\004\275\360\143\321\342\147\146\317\034 +\335\317\033\110\053\356\215\211\216\232\257\051\200\145\253\351 +\307\055\022\313\253\034\114\160\007\241\075\012\060\315\025\215 +\117\370\335\324\214\120\025\034\357\120\356\304\056\367\374\351 +\122\362\221\175\340\155\325\065\060\216\136\103\163\362\101\351 +\325\152\343\262\211\072\126\071\070\157\006\074\210\151\133\052 +\115\305\247\124\270\154\211\314\233\371\074\312\345\375\211\365 +\022\074\222\170\226\326\334\164\156\223\104\141\321\215\307\106 +\262\165\016\206\350\031\212\325\155\154\325\170\026\225\242\351 +\310\012\070\353\362\044\023\117\163\124\223\023\205\072\033\274 +\036\064\265\213\005\214\271\167\213\261\333\037\040\221\253\011 +\123\156\220\316\173\067\164\271\160\107\221\042\121\143\026\171 +\256\261\256\101\046\010\310\031\053\321\106\252\110\326\144\052 +\327\203\064\377\054\052\301\154\031\103\112\007\205\347\323\174 +\366\041\150\357\352\362\122\237\177\223\220\317\002\003\001\000 +\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 +\024\140\173\146\032\105\015\227\312\211\120\057\175\004\315\064 +\250\377\374\375\113\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\326\163\347\174\117\166\320 +\215\277\354\272\242\276\064\305\050\062\265\174\374\154\234\054 +\053\275\011\236\123\277\153\136\252\021\110\266\345\010\243\263 +\312\075\141\115\323\106\011\263\076\303\240\343\143\125\033\362 +\272\357\255\071\341\103\271\070\243\346\057\212\046\073\357\240 +\120\126\371\306\012\375\070\315\304\013\160\121\224\227\230\004 +\337\303\137\224\325\025\311\024\101\234\304\135\165\144\025\015 +\377\125\060\354\206\217\377\015\357\054\271\143\106\366\252\374 +\337\274\151\375\056\022\110\144\232\340\225\360\246\357\051\217 +\001\261\025\265\014\035\245\376\151\054\151\044\170\036\263\247 +\034\161\142\356\312\310\227\254\027\135\212\302\370\107\206\156 +\052\304\126\061\225\320\147\211\205\053\371\154\246\135\106\235 +\014\252\202\344\231\121\335\160\267\333\126\075\141\344\152\341 +\134\326\366\376\075\336\101\314\007\256\143\122\277\123\123\364 +\053\351\307\375\266\367\202\137\205\322\101\030\333\201\263\004 +\034\305\037\244\200\157\025\040\311\336\014\210\012\035\326\146 +\125\342\374\110\311\051\046\151\340 +END + +# Trust for Certificate "GlobalSign Root CA" +# Issuer: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE +# Serial Number:04:00:00:00:00:01:15:4b:5a:c3:94 +# Subject: CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE +# Not Valid Before: Tue Sep 01 12:00:00 1998 +# Not Valid After : Fri Jan 28 12:00:00 2028 +# Fingerprint (MD5): 3E:45:52:15:09:51:92:E1:B7:5D:37:9F:B1:87:29:8A +# Fingerprint (SHA1): B1:BC:96:8B:D4:F4:9D:62:2A:A8:9A:81:F2:15:01:52:A4:1D:82:9C +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\261\274\226\213\324\364\235\142\052\250\232\201\362\025\001\122 +\244\035\202\234 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\076\105\122\025\011\121\222\341\267\135\067\237\261\207\051\212 +END +CKA_ISSUER MULTILINE_OCTAL +\060\127\061\013\060\011\006\003\125\004\006\023\002\102\105\061 +\031\060\027\006\003\125\004\012\023\020\107\154\157\142\141\154 +\123\151\147\156\040\156\166\055\163\141\061\020\060\016\006\003 +\125\004\013\023\007\122\157\157\164\040\103\101\061\033\060\031 +\006\003\125\004\003\023\022\107\154\157\142\141\154\123\151\147 +\156\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\025\113\132\303\224 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign Root CA - R2" +# +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R2 +# Serial Number:04:00:00:00:00:01:0f:86:26:e6:0d +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R2 +# Not Valid Before: Fri Dec 15 08:00:00 2006 +# Not Valid After : Wed Dec 15 08:00:00 2021 +# Fingerprint (MD5): 94:14:77:7E:3E:5E:FD:8F:30:BD:41:B0:CF:E7:D0:30 +# Fingerprint (SHA1): 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE +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 "GlobalSign Root CA - R2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\206\046\346\015 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\272\060\202\002\242\240\003\002\001\002\002\013\004 +\000\000\000\000\001\017\206\046\346\015\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\114\061\040\060\036\006 +\003\125\004\013\023\027\107\154\157\142\141\154\123\151\147\156 +\040\122\157\157\164\040\103\101\040\055\040\122\062\061\023\060 +\021\006\003\125\004\012\023\012\107\154\157\142\141\154\123\151 +\147\156\061\023\060\021\006\003\125\004\003\023\012\107\154\157 +\142\141\154\123\151\147\156\060\036\027\015\060\066\061\062\061 +\065\060\070\060\060\060\060\132\027\015\062\061\061\062\061\065 +\060\070\060\060\060\060\132\060\114\061\040\060\036\006\003\125 +\004\013\023\027\107\154\157\142\141\154\123\151\147\156\040\122 +\157\157\164\040\103\101\040\055\040\122\062\061\023\060\021\006 +\003\125\004\012\023\012\107\154\157\142\141\154\123\151\147\156 +\061\023\060\021\006\003\125\004\003\023\012\107\154\157\142\141 +\154\123\151\147\156\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\246\317\044\016\276\056\157\050\231\105 +\102\304\253\076\041\124\233\013\323\177\204\160\372\022\263\313 +\277\207\137\306\177\206\323\262\060\134\326\375\255\361\173\334 +\345\370\140\226\011\222\020\365\320\123\336\373\173\176\163\210 +\254\122\210\173\112\246\312\111\246\136\250\247\214\132\021\274 +\172\202\353\276\214\351\263\254\226\045\007\227\112\231\052\007 +\057\264\036\167\277\212\017\265\002\174\033\226\270\305\271\072 +\054\274\326\022\271\353\131\175\342\320\006\206\137\136\111\152 +\265\071\136\210\064\354\274\170\014\010\230\204\154\250\315\113 +\264\240\175\014\171\115\360\270\055\313\041\312\325\154\133\175 +\341\240\051\204\241\371\323\224\111\313\044\142\221\040\274\335 +\013\325\331\314\371\352\047\012\053\163\221\306\235\033\254\310 +\313\350\340\240\364\057\220\213\115\373\260\066\033\366\031\172 +\205\340\155\362\141\023\210\134\237\340\223\012\121\227\212\132 +\316\257\253\325\367\252\011\252\140\275\334\331\137\337\162\251 +\140\023\136\000\001\311\112\372\077\244\352\007\003\041\002\216 +\202\312\003\302\233\217\002\003\001\000\001\243\201\234\060\201 +\231\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\035\006\003\125\035\016\004\026\004\024\233\342\007 +\127\147\034\036\300\152\006\336\131\264\232\055\337\334\031\206 +\056\060\066\006\003\125\035\037\004\057\060\055\060\053\240\051 +\240\047\206\045\150\164\164\160\072\057\057\143\162\154\056\147 +\154\157\142\141\154\163\151\147\156\056\156\145\164\057\162\157 +\157\164\055\162\062\056\143\162\154\060\037\006\003\125\035\043 +\004\030\060\026\200\024\233\342\007\127\147\034\036\300\152\006 +\336\131\264\232\055\337\334\031\206\056\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\231\201 +\123\207\034\150\227\206\221\354\340\112\270\104\013\253\201\254 +\047\117\326\301\270\034\103\170\263\014\232\374\352\054\074\156 +\141\033\115\113\051\365\237\005\035\046\301\270\351\203\000\142 +\105\266\251\010\223\271\251\063\113\030\232\302\370\207\210\116 +\333\335\161\064\032\301\124\332\106\077\340\323\052\253\155\124 +\042\365\072\142\315\040\157\272\051\211\327\335\221\356\323\134 +\242\076\241\133\101\365\337\345\144\103\055\351\325\071\253\322 +\242\337\267\213\320\300\200\031\034\105\300\055\214\350\370\055 +\244\164\126\111\305\005\265\117\025\336\156\104\170\071\207\250 +\176\273\363\171\030\221\273\364\157\235\301\360\214\065\214\135 +\001\373\303\155\271\357\104\155\171\106\061\176\012\376\251\202 +\301\377\357\253\156\040\304\120\311\137\235\115\233\027\214\014 +\345\001\311\240\101\152\163\123\372\245\120\264\156\045\017\373 +\114\030\364\375\122\331\216\151\261\350\021\017\336\210\330\373 +\035\111\367\252\336\225\317\040\170\302\140\022\333\045\100\214 +\152\374\176\102\070\100\144\022\367\236\201\341\223\056 +END + +# Trust for Certificate "GlobalSign Root CA - R2" +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R2 +# Serial Number:04:00:00:00:00:01:0f:86:26:e6:0d +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R2 +# Not Valid Before: Fri Dec 15 08:00:00 2006 +# Not Valid After : Wed Dec 15 08:00:00 2021 +# Fingerprint (MD5): 94:14:77:7E:3E:5E:FD:8F:30:BD:41:B0:CF:E7:D0:30 +# Fingerprint (SHA1): 75:E0:AB:B6:13:85:12:27:1C:04:F8:5F:DD:DE:38:E4:B7:24:2E:FE +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA - R2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\165\340\253\266\023\205\022\047\034\004\370\137\335\336\070\344 +\267\044\056\376 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\224\024\167\176\076\136\375\217\060\275\101\260\317\347\320\060 +END +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\062\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\206\046\346\015 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 1 Public Primary Certification Authority - G3" +# +# Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:00:8b:5b:75:56:84:54:85:0b:00:cf:af:38:48:ce:b1:a4 +# Subject: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Fri Oct 01 00:00:00 1999 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): B1:47:BC:18:57:D1:18:A0:78:2D:EC:71:E8:2A:95:73 +# Fingerprint (SHA1): 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5 +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 "Verisign Class 1 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\213\133\165\126\204\124\205\013\000\317\257\070\110 +\316\261\244 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\032\060\202\003\002\002\021\000\213\133\165\126\204 +\124\205\013\000\317\257\070\110\316\261\244\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 +\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123 +\151\147\156\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060 +\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066 +\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012 +\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 +\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060 +\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156 +\040\103\154\141\163\163\040\061\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\335\204\324\271\264\371\247\330\363\004\170 +\234\336\075\334\154\023\026\331\172\335\044\121\146\300\307\046 +\131\015\254\006\010\302\224\321\063\037\360\203\065\037\156\033 +\310\336\252\156\025\116\124\047\357\304\155\032\354\013\343\016 +\360\104\245\127\307\100\130\036\243\107\037\161\354\140\366\155 +\224\310\030\071\355\376\102\030\126\337\344\114\111\020\170\116 +\001\166\065\143\022\066\335\146\274\001\004\066\243\125\150\325 +\242\066\011\254\253\041\046\124\006\255\077\312\024\340\254\312 +\255\006\035\225\342\370\235\361\340\140\377\302\177\165\053\114 +\314\332\376\207\231\041\352\272\376\076\124\327\322\131\170\333 +\074\156\317\240\023\000\032\270\047\241\344\276\147\226\312\240 +\305\263\234\335\311\165\236\353\060\232\137\243\315\331\256\170 +\031\077\043\351\134\333\051\275\255\125\310\033\124\214\143\366 +\350\246\352\307\067\022\134\243\051\036\002\331\333\037\073\264 +\327\017\126\107\201\025\004\112\257\203\047\321\305\130\210\301 +\335\366\252\247\243\030\332\150\252\155\021\121\341\277\145\153 +\237\226\166\321\075\002\003\001\000\001\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\253\146 +\215\327\263\272\307\232\266\346\125\320\005\361\237\061\215\132 +\252\331\252\106\046\017\161\355\245\255\123\126\142\001\107\052 +\104\351\376\077\164\013\023\233\271\364\115\033\262\321\137\262 +\266\322\210\134\263\237\315\313\324\247\331\140\225\204\072\370 +\301\067\035\141\312\347\260\305\345\221\332\124\246\254\061\201 +\256\227\336\315\010\254\270\300\227\200\177\156\162\244\347\151 +\023\225\145\037\304\223\074\375\171\217\004\324\076\117\352\367 +\236\316\315\147\174\117\145\002\377\221\205\124\163\307\377\066 +\367\206\055\354\320\136\117\377\021\237\162\006\326\270\032\361 +\114\015\046\145\342\104\200\036\307\237\343\335\350\012\332\354 +\245\040\200\151\150\241\117\176\341\153\317\007\101\372\203\216 +\274\070\335\260\056\021\261\153\262\102\314\232\274\371\110\042 +\171\112\031\017\262\034\076\040\164\331\152\303\276\362\050\170 +\023\126\171\117\155\120\352\033\260\265\127\261\067\146\130\043 +\363\334\017\337\012\207\304\357\206\005\325\070\024\140\231\243 +\113\336\006\226\161\054\362\333\266\037\244\357\077\356 +END + +# Trust for Certificate "Verisign Class 1 Public Primary Certification Authority - G3" +# Issuer: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:00:8b:5b:75:56:84:54:85:0b:00:cf:af:38:48:ce:b1:a4 +# Subject: CN=VeriSign Class 1 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Fri Oct 01 00:00:00 1999 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): B1:47:BC:18:57:D1:18:A0:78:2D:EC:71:E8:2A:95:73 +# Fingerprint (SHA1): 20:42:85:DC:F7:EB:76:41:95:57:8E:13:6B:D4:B7:D1:E9:8E:46:A5 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 1 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\040\102\205\334\367\353\166\101\225\127\216\023\153\324\267\321 +\351\216\106\245 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\261\107\274\030\127\321\030\240\170\055\354\161\350\052\225\163 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\061\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\213\133\165\126\204\124\205\013\000\317\257\070\110 +\316\261\244 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 2 Public Primary Certification Authority - G3" +# +# Issuer: CN=VeriSign Class 2 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:61:70:cb:49:8c:5f:98:45:29:e7:b0:a6:d9:50:5b:7a +# Subject: CN=VeriSign Class 2 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Fri Oct 01 00:00:00 1999 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): F8:BE:C4:63:22:C9:A8:46:74:8B:B8:1D:1E:4A:2B:F6 +# Fingerprint (SHA1): 61:EF:43:D7:7F:CA:D4:61:51:BC:98:E0:C3:59:12:AF:9F:EB:63:11 +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 "Verisign Class 2 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\062\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\062\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\141\160\313\111\214\137\230\105\051\347\260\246\331\120 +\133\172 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\031\060\202\003\001\002\020\141\160\313\111\214\137 +\230\105\051\347\260\246\331\120\133\172\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125 +\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145\162 +\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164\167 +\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050\143 +\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156\054 +\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150 +\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061 +\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123\151 +\147\156\040\103\154\141\163\163\040\062\040\120\165\142\154\151 +\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060\061 +\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066\062 +\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012\023 +\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056\061 +\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123\151 +\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040\061 +\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060\103 +\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156\040 +\103\154\141\163\163\040\062\040\120\165\142\154\151\143\040\120 +\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143\141 +\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040\055 +\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\257\012\015\302\325\054\333\147\271\055\345\224 +\047\335\245\276\340\260\115\217\263\141\126\074\326\174\303\364 +\315\076\206\313\242\210\342\341\330\244\151\305\265\342\277\301 +\246\107\120\136\106\071\213\325\226\272\265\157\024\277\020\316 +\047\023\236\005\107\233\061\172\023\330\037\331\323\002\067\213 +\255\054\107\360\216\201\006\247\015\060\014\353\367\074\017\040 +\035\334\162\106\356\245\002\310\133\303\311\126\151\114\305\030 +\301\221\173\013\325\023\000\233\274\357\303\110\076\106\140\040 +\205\052\325\220\266\315\213\240\314\062\335\267\375\100\125\262 +\120\034\126\256\314\215\167\115\307\040\115\247\061\166\357\150 +\222\212\220\036\010\201\126\262\255\151\243\122\320\313\034\304 +\043\075\037\231\376\114\350\026\143\216\306\010\216\366\061\366 +\322\372\345\166\335\265\034\222\243\111\315\315\001\315\150\315 +\251\151\272\243\353\035\015\234\244\040\246\301\240\305\321\106 +\114\027\155\322\254\146\077\226\214\340\204\324\066\377\042\131 +\305\371\021\140\250\137\004\175\362\032\366\045\102\141\017\304 +\112\270\076\211\002\003\001\000\001\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\064\046\025 +\074\300\215\115\103\111\035\275\351\041\222\327\146\234\267\336 +\305\270\320\344\135\137\166\042\300\046\371\204\072\072\371\214 +\265\373\354\140\361\350\316\004\260\310\335\247\003\217\060\363 +\230\337\244\346\244\061\337\323\034\013\106\334\162\040\077\256 +\356\005\074\244\063\077\013\071\254\160\170\163\113\231\053\337 +\060\302\124\260\250\073\125\241\376\026\050\315\102\275\164\156 +\200\333\047\104\247\316\104\135\324\033\220\230\015\036\102\224 +\261\000\054\004\320\164\243\002\005\042\143\143\315\203\265\373 +\301\155\142\153\151\165\375\135\160\101\271\365\277\174\337\276 +\301\062\163\042\041\213\130\201\173\025\221\172\272\343\144\110 +\260\177\373\066\045\332\225\320\361\044\024\027\335\030\200\153 +\106\043\071\124\365\216\142\011\004\035\224\220\246\233\346\045 +\342\102\105\252\270\220\255\276\010\217\251\013\102\030\224\317 +\162\071\341\261\103\340\050\317\267\347\132\154\023\153\111\263 +\377\343\030\174\211\213\063\135\254\063\327\247\371\332\072\125 +\311\130\020\371\252\357\132\266\317\113\113\337\052 +END + +# Trust for Certificate "Verisign Class 2 Public Primary Certification Authority - G3" +# Issuer: CN=VeriSign Class 2 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:61:70:cb:49:8c:5f:98:45:29:e7:b0:a6:d9:50:5b:7a +# Subject: CN=VeriSign Class 2 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Fri Oct 01 00:00:00 1999 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): F8:BE:C4:63:22:C9:A8:46:74:8B:B8:1D:1E:4A:2B:F6 +# Fingerprint (SHA1): 61:EF:43:D7:7F:CA:D4:61:51:BC:98:E0:C3:59:12:AF:9F:EB:63:11 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 2 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\141\357\103\327\177\312\324\141\121\274\230\340\303\131\022\257 +\237\353\143\021 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\370\276\304\143\042\311\250\106\164\213\270\035\036\112\053\366 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\062\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\141\160\313\111\214\137\230\105\051\347\260\246\331\120 +\133\172 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Verisign Class 3 Public Primary Certification Authority - G3" +# +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:00:9b:7e:06:49:a3:3e:62:b9:d5:ee:90:48:71:29:ef:57 +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Fri Oct 01 00:00:00 1999 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): CD:68:B6:A7:C7:C4:CE:75:E0:1D:4F:57:44:61:92:09 +# Fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6 +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 "Verisign Class 3 Public Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\233\176\006\111\243\076\142\271\325\356\220\110\161 +\051\357\127 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\032\060\202\003\002\002\021\000\233\176\006\111\243 +\076\142\271\325\356\220\110\161\051\357\127\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\060\201\312\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006\003 +\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126\145 +\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145\164 +\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061\050 +\143\051\040\061\071\071\071\040\126\145\162\151\123\151\147\156 +\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151\123 +\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\063\060\036\027\015\071\071\061\060\060 +\061\060\060\060\060\060\060\132\027\015\063\066\060\067\061\066 +\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004\012 +\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143\056 +\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151\123 +\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157\162 +\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051\040 +\061\071\071\071\040\126\145\162\151\123\151\147\156\054\040\111 +\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105\060 +\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147\156 +\040\103\154\141\163\163\040\063\040\120\165\142\154\151\143\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\313\272\234\122\374\170\037\032\036\157\033 +\067\163\275\370\311\153\224\022\060\117\360\066\107\365\320\221 +\012\365\027\310\245\141\301\026\100\115\373\212\141\220\345\166 +\040\301\021\006\175\253\054\156\246\365\021\101\216\372\055\255 +\052\141\131\244\147\046\114\320\350\274\122\133\160\040\004\130 +\321\172\311\244\151\274\203\027\144\255\005\213\274\320\130\316 +\215\214\365\353\360\102\111\013\235\227\047\147\062\156\341\256 +\223\025\034\160\274\040\115\057\030\336\222\210\350\154\205\127 +\021\032\351\176\343\046\021\124\242\105\226\125\203\312\060\211 +\350\334\330\243\355\052\200\077\177\171\145\127\076\025\040\146 +\010\057\225\223\277\252\107\057\250\106\227\360\022\342\376\302 +\012\053\121\346\166\346\267\106\267\342\015\246\314\250\303\114 +\131\125\211\346\350\123\134\034\352\235\360\142\026\013\247\311 +\137\014\360\336\302\166\316\257\367\152\362\372\101\246\242\063 +\024\311\345\172\143\323\236\142\067\325\205\145\236\016\346\123 +\044\164\033\136\035\022\123\133\307\054\347\203\111\073\025\256 +\212\150\271\127\227\002\003\001\000\001\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\021\024 +\226\301\253\222\010\367\077\057\311\262\376\344\132\237\144\336 +\333\041\117\206\231\064\166\066\127\335\320\025\057\305\255\177 +\025\037\067\142\163\076\324\347\137\316\027\003\333\065\372\053 +\333\256\140\011\137\036\137\217\156\273\013\075\352\132\023\036 +\014\140\157\265\300\265\043\042\056\007\013\313\251\164\313\107 +\273\035\301\327\245\153\314\057\322\102\375\111\335\247\211\317 +\123\272\332\000\132\050\277\202\337\370\272\023\035\120\206\202 +\375\216\060\217\051\106\260\036\075\065\332\070\142\026\030\112 +\255\346\266\121\154\336\257\142\353\001\320\036\044\376\172\217 +\022\032\022\150\270\373\146\231\024\024\105\134\256\347\256\151 +\027\201\053\132\067\311\136\052\364\306\342\241\134\124\233\246 +\124\000\317\360\361\301\307\230\060\032\073\066\026\333\243\156 +\352\375\255\262\302\332\357\002\107\023\212\300\361\263\061\255 +\117\034\341\117\234\257\017\014\235\367\170\015\330\364\065\126 +\200\332\267\155\027\217\235\036\201\144\341\376\305\105\272\255 +\153\271\012\172\116\117\113\204\356\113\361\175\335\021 +END + +# Trust for Certificate "Verisign Class 3 Public Primary Certification Authority - G3" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:00:9b:7e:06:49:a3:3e:62:b9:d5:ee:90:48:71:29:ef:57 +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Fri Oct 01 00:00:00 1999 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): CD:68:B6:A7:C7:C4:CE:75:E0:1D:4F:57:44:61:92:09 +# Fingerprint (SHA1): 13:2D:0D:45:53:4B:69:97:CD:B2:D5:C3:39:E2:55:76:60:9B:5C:C6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Verisign Class 3 Public Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\023\055\015\105\123\113\151\227\315\262\325\303\071\342\125\166 +\140\233\134\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\315\150\266\247\307\304\316\165\340\035\117\127\104\141\222\011 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\233\176\006\111\243\076\142\271\325\356\220\110\161 +\051\357\127 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Distrust "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 1/3)" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:4c:00:36:1b:e5:08:2b:a9:aa:ce:74:0a:05:3e:fb:34 +# Subject: CN=Egypt Trust Class 3 Managed PKI Enterprise Administrator CA,OU=Terms of use at https://www.egypttrust.com/repository/rpa (c)08,OU=VeriSign Trust Network,O=Egypt Trust,C=EG +# Not Valid Before: Sun May 18 00:00:00 2008 +# Not Valid After : Thu May 17 23:59:59 2018 +# Fingerprint (MD5): A7:91:05:96:B1:56:01:26:4E:BF:80:80:08:86:1B:4D +# Fingerprint (SHA1): 6A:2C:5C:B0:94:D5:E0:B7:57:FB:0F:58:42:AA:C8:13:A5:80:2F:E1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 1/3)" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\114\000\066\033\345\010\053\251\252\316\164\012\005\076 +\373\064 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + +# Distrust "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 2/3)" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:3e:0c:9e:87:69:aa:95:5c:ea:23:d8:45:9e:d4:5b:51 +# Subject: CN=Egypt Trust Class 3 Managed PKI Operational Administrator CA,OU=Terms of use at https://www.egypttrust.com/repository/rpa (c)08,OU=VeriSign Trust Network,O=Egypt Trust,C=EG +# Not Valid Before: Sun May 18 00:00:00 2008 +# Not Valid After : Thu May 17 23:59:59 2018 +# Fingerprint (MD5): D0:C3:71:17:3E:39:80:C6:50:4F:04:22:DF:40:E1:34 +# Fingerprint (SHA1): 9C:65:5E:D5:FA:E3:B8:96:4D:89:72:F6:3A:63:53:59:3F:5E:B4:4E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 2/3)" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\076\014\236\207\151\252\225\134\352\043\330\105\236\324 +\133\121 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Distrust "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 3/3)" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3,OU="(c) 1999 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:12:bd:26:a2:ae:33:c0:7f:24:7b:6a:58:69:f2:0a:76 +# Subject: CN=Egypt Trust Class 3 Managed PKI SCO Administrator CA,OU=Terms of use at https://www.egypttrust.com/repository/rpa (c)08,OU=VeriSign Trust Network,O=Egypt Trust,C=EG +# Not Valid Before: Sun May 18 00:00:00 2008 +# Not Valid After : Thu May 17 23:59:59 2018 +# Fingerprint (MD5): C2:13:5E:B2:67:8A:5C:F7:91:EF:8F:29:0F:9B:77:6E +# Fingerprint (SHA1): 83:23:F1:4F:BC:9F:9B:80:B7:9D:ED:14:CD:01:57:CD:FB:08:95:D2 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Distrust: O=Egypt Trust, OU=VeriSign Trust Network (cert 3/3)" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\061\071\071\071\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\022\275\046\242\256\063\300\177\044\173\152\130\151\362 +\012\166 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust.net Premium 2048 Secure Server CA" +# +# Issuer: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net +# Serial Number: 946069240 (0x3863def8) +# Subject: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net +# Not Valid Before: Fri Dec 24 17:50:51 1999 +# Not Valid After : Tue Jul 24 14:15:12 2029 +# Fingerprint (MD5): EE:29:31:BC:32:7E:9A:E6:E8:B5:F7:51:B4:34:71:90 +# Fingerprint (SHA1): 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31 +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 "Entrust.net Premium 2048 Secure Server CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\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 +\040\050\062\060\064\070\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\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 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\070\143\336\370 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\052\060\202\003\022\240\003\002\001\002\002\004\070 +\143\336\370\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\264\061\024\060\022\006\003\125\004\012\023\013 +\105\156\164\162\165\163\164\056\156\145\164\061\100\060\076\006 +\003\125\004\013\024\067\167\167\167\056\145\156\164\162\165\163 +\164\056\156\145\164\057\103\120\123\137\062\060\064\070\040\151 +\156\143\157\162\160\056\040\142\171\040\162\145\146\056\040\050 +\154\151\155\151\164\163\040\154\151\141\142\056\051\061\045\060 +\043\006\003\125\004\013\023\034\050\143\051\040\061\071\071\071 +\040\105\156\164\162\165\163\164\056\156\145\164\040\114\151\155 +\151\164\145\144\061\063\060\061\006\003\125\004\003\023\052\105 +\156\164\162\165\163\164\056\156\145\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\040\050\062\060\064\070\051\060\036\027\015\071\071\061 +\062\062\064\061\067\065\060\065\061\132\027\015\062\071\060\067 +\062\064\061\064\061\065\061\062\132\060\201\264\061\024\060\022 +\006\003\125\004\012\023\013\105\156\164\162\165\163\164\056\156 +\145\164\061\100\060\076\006\003\125\004\013\024\067\167\167\167 +\056\145\156\164\162\165\163\164\056\156\145\164\057\103\120\123 +\137\062\060\064\070\040\151\156\143\157\162\160\056\040\142\171 +\040\162\145\146\056\040\050\154\151\155\151\164\163\040\154\151 +\141\142\056\051\061\045\060\043\006\003\125\004\013\023\034\050 +\143\051\040\061\071\071\071\040\105\156\164\162\165\163\164\056 +\156\145\164\040\114\151\155\151\164\145\144\061\063\060\061\006 +\003\125\004\003\023\052\105\156\164\162\165\163\164\056\156\145 +\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\040\050\062\060\064\070\051 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\255\115\113\251\022\206\262\352\243\040\007\025\026\144\052 +\053\113\321\277\013\112\115\216\355\200\166\245\147\267\170\100 +\300\163\102\310\150\300\333\123\053\335\136\270\166\230\065\223 +\213\032\235\174\023\072\016\037\133\267\036\317\345\044\024\036 +\261\201\251\215\175\270\314\153\113\003\361\002\014\334\253\245 +\100\044\000\177\164\224\241\235\010\051\263\210\013\365\207\167 +\235\125\315\344\303\176\327\152\144\253\205\024\206\225\133\227 +\062\120\157\075\310\272\146\014\343\374\275\270\111\301\166\211 +\111\031\375\300\250\275\211\243\147\057\306\237\274\161\031\140 +\270\055\351\054\311\220\166\146\173\224\342\257\170\326\145\123 +\135\074\326\234\262\317\051\003\371\057\244\120\262\324\110\316 +\005\062\125\212\375\262\144\114\016\344\230\007\165\333\177\337 +\271\010\125\140\205\060\051\371\173\110\244\151\206\343\065\077 +\036\206\135\172\172\025\275\357\000\216\025\042\124\027\000\220 +\046\223\274\016\111\150\221\277\370\107\323\235\225\102\301\016 +\115\337\157\046\317\303\030\041\142\146\103\160\326\325\300\007 +\341\002\003\001\000\001\243\102\060\100\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125 +\035\016\004\026\004\024\125\344\201\321\021\200\276\330\211\271 +\010\243\061\371\241\044\011\026\271\160\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\073\233 +\217\126\233\060\347\123\231\174\172\171\247\115\227\327\031\225 +\220\373\006\037\312\063\174\106\143\217\226\146\044\372\100\033 +\041\047\312\346\162\163\362\117\376\061\231\375\310\014\114\150 +\123\306\200\202\023\230\372\266\255\332\135\075\361\316\156\366 +\025\021\224\202\014\356\077\225\257\021\253\017\327\057\336\037 +\003\217\127\054\036\311\273\232\032\104\225\353\030\117\246\037 +\315\175\127\020\057\233\004\011\132\204\265\156\330\035\072\341 +\326\236\321\154\171\136\171\034\024\305\343\320\114\223\073\145 +\074\355\337\075\276\246\345\225\032\303\265\031\303\275\136\133 +\273\377\043\357\150\031\313\022\223\047\134\003\055\157\060\320 +\036\266\032\254\336\132\367\321\252\250\047\246\376\171\201\304 +\171\231\063\127\272\022\260\251\340\102\154\223\312\126\336\376 +\155\204\013\010\213\176\215\352\327\230\041\306\363\347\074\171 +\057\136\234\321\114\025\215\341\354\042\067\314\232\103\013\227 +\334\200\220\215\263\147\233\157\110\010\025\126\317\277\361\053 +\174\136\232\166\351\131\220\305\174\203\065\021\145\121 +END + +# Trust for "Entrust.net Premium 2048 Secure Server CA" +# Issuer: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net +# Serial Number: 946069240 (0x3863def8) +# Subject: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net +# Not Valid Before: Fri Dec 24 17:50:51 1999 +# Not Valid After : Tue Jul 24 14:15:12 2029 +# Fingerprint (MD5): EE:29:31:BC:32:7E:9A:E6:E8:B5:F7:51:B4:34:71:90 +# Fingerprint (SHA1): 50:30:06:09:1D:97:D4:F5:AE:39:F7:CB:E7:92:7D:7D:65:2D:34:31 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust.net Premium 2048 Secure Server CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\120\060\006\011\035\227\324\365\256\071\367\313\347\222\175\175 +\145\055\064\061 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\356\051\061\274\062\176\232\346\350\265\367\121\264\064\161\220 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\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 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\070\143\336\370 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Baltimore CyberTrust Root" +# +# Issuer: CN=Baltimore CyberTrust Root,OU=CyberTrust,O=Baltimore,C=IE +# Serial Number: 33554617 (0x20000b9) +# Subject: CN=Baltimore CyberTrust Root,OU=CyberTrust,O=Baltimore,C=IE +# Not Valid Before: Fri May 12 18:46:00 2000 +# Not Valid After : Mon May 12 23:59:00 2025 +# Fingerprint (MD5): AC:B6:94:A5:9C:17:E0:D7:91:52:9B:B1:97:06:A6:E4 +# Fingerprint (SHA1): D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74 +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 "Baltimore CyberTrust Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\111\105\061 +\022\060\020\006\003\125\004\012\023\011\102\141\154\164\151\155 +\157\162\145\061\023\060\021\006\003\125\004\013\023\012\103\171 +\142\145\162\124\162\165\163\164\061\042\060\040\006\003\125\004 +\003\023\031\102\141\154\164\151\155\157\162\145\040\103\171\142 +\145\162\124\162\165\163\164\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\111\105\061 +\022\060\020\006\003\125\004\012\023\011\102\141\154\164\151\155 +\157\162\145\061\023\060\021\006\003\125\004\013\023\012\103\171 +\142\145\162\124\162\165\163\164\061\042\060\040\006\003\125\004 +\003\023\031\102\141\154\164\151\155\157\162\145\040\103\171\142 +\145\162\124\162\165\163\164\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\002\000\000\271 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\167\060\202\002\137\240\003\002\001\002\002\004\002 +\000\000\271\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\111 +\105\061\022\060\020\006\003\125\004\012\023\011\102\141\154\164 +\151\155\157\162\145\061\023\060\021\006\003\125\004\013\023\012 +\103\171\142\145\162\124\162\165\163\164\061\042\060\040\006\003 +\125\004\003\023\031\102\141\154\164\151\155\157\162\145\040\103 +\171\142\145\162\124\162\165\163\164\040\122\157\157\164\060\036 +\027\015\060\060\060\065\061\062\061\070\064\066\060\060\132\027 +\015\062\065\060\065\061\062\062\063\065\071\060\060\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\111\105\061\022\060 +\020\006\003\125\004\012\023\011\102\141\154\164\151\155\157\162 +\145\061\023\060\021\006\003\125\004\013\023\012\103\171\142\145 +\162\124\162\165\163\164\061\042\060\040\006\003\125\004\003\023 +\031\102\141\154\164\151\155\157\162\145\040\103\171\142\145\162 +\124\162\165\163\164\040\122\157\157\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\243\004\273\042\253 +\230\075\127\350\046\162\232\265\171\324\051\342\341\350\225\200 +\261\260\343\133\216\053\051\232\144\337\241\135\355\260\011\005 +\155\333\050\056\316\142\242\142\376\264\210\332\022\353\070\353 +\041\235\300\101\053\001\122\173\210\167\323\034\217\307\272\271 +\210\265\152\011\347\163\350\021\100\247\321\314\312\142\215\055 +\345\217\013\246\120\322\250\120\303\050\352\365\253\045\207\212 +\232\226\034\251\147\270\077\014\325\367\371\122\023\057\302\033 +\325\160\160\360\217\300\022\312\006\313\232\341\331\312\063\172 +\167\326\370\354\271\361\150\104\102\110\023\322\300\302\244\256 +\136\140\376\266\246\005\374\264\335\007\131\002\324\131\030\230 +\143\365\245\143\340\220\014\175\135\262\006\172\363\205\352\353 +\324\003\256\136\204\076\137\377\025\355\151\274\371\071\066\162 +\165\317\167\122\115\363\311\220\054\271\075\345\311\043\123\077 +\037\044\230\041\134\007\231\051\275\306\072\354\347\156\206\072 +\153\227\164\143\063\275\150\030\061\360\170\215\166\277\374\236 +\216\135\052\206\247\115\220\334\047\032\071\002\003\001\000\001 +\243\105\060\103\060\035\006\003\125\035\016\004\026\004\024\345 +\235\131\060\202\107\130\314\254\372\010\124\066\206\173\072\265 +\004\115\360\060\022\006\003\125\035\023\001\001\377\004\010\060 +\006\001\001\377\002\001\003\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\205\014\135\216\344 +\157\121\150\102\005\240\335\273\117\047\045\204\003\275\367\144 +\375\055\327\060\343\244\020\027\353\332\051\051\266\171\077\166 +\366\031\023\043\270\020\012\371\130\244\324\141\160\275\004\141 +\152\022\212\027\325\012\275\305\274\060\174\326\351\014\045\215 +\206\100\117\354\314\243\176\070\306\067\021\117\355\335\150\061 +\216\114\322\263\001\164\356\276\165\136\007\110\032\177\160\377 +\026\134\204\300\171\205\270\005\375\177\276\145\021\243\017\300 +\002\264\370\122\067\071\004\325\251\061\172\030\277\240\052\364 +\022\231\367\243\105\202\343\074\136\365\235\236\265\310\236\174 +\056\310\244\236\116\010\024\113\155\375\160\155\153\032\143\275 +\144\346\037\267\316\360\362\237\056\273\033\267\362\120\210\163 +\222\302\342\343\026\215\232\062\002\253\216\030\335\351\020\021 +\356\176\065\253\220\257\076\060\224\172\320\063\075\247\145\017 +\365\374\216\236\142\317\107\104\054\001\135\273\035\265\062\322 +\107\322\070\056\320\376\201\334\062\152\036\265\356\074\325\374 +\347\201\035\031\303\044\102\352\143\071\251 +END + +# Trust for Certificate "Baltimore CyberTrust Root" +# Issuer: CN=Baltimore CyberTrust Root,OU=CyberTrust,O=Baltimore,C=IE +# Serial Number: 33554617 (0x20000b9) +# Subject: CN=Baltimore CyberTrust Root,OU=CyberTrust,O=Baltimore,C=IE +# Not Valid Before: Fri May 12 18:46:00 2000 +# Not Valid After : Mon May 12 23:59:00 2025 +# Fingerprint (MD5): AC:B6:94:A5:9C:17:E0:D7:91:52:9B:B1:97:06:A6:E4 +# Fingerprint (SHA1): D4:DE:20:D0:5E:66:FC:53:FE:1A:50:88:2C:78:DB:28:52:CA:E4:74 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Baltimore CyberTrust Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\324\336\040\320\136\146\374\123\376\032\120\210\054\170\333\050 +\122\312\344\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\254\266\224\245\234\027\340\327\221\122\233\261\227\006\246\344 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\111\105\061 +\022\060\020\006\003\125\004\012\023\011\102\141\154\164\151\155 +\157\162\145\061\023\060\021\006\003\125\004\013\023\012\103\171 +\142\145\162\124\162\165\163\164\061\042\060\040\006\003\125\004 +\003\023\031\102\141\154\164\151\155\157\162\145\040\103\171\142 +\145\162\124\162\165\163\164\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\002\000\000\271 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust Low-Value Services Root" +# +# Issuer: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:38:31 2000 +# Not Valid After : Sat May 30 10:38:31 2020 +# Fingerprint (MD5): 1E:42:95:02:33:92:6B:B9:5F:C0:7F:DA:D6:B2:4B:FC +# Fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D +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 "AddTrust Low-Value Services Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 +\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 +\103\101\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 +\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 +\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\030\060\202\003\000\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 +\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101\144 +\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040\103 +\101\040\122\157\157\164\060\036\027\015\060\060\060\065\063\060 +\061\060\063\070\063\061\132\027\015\062\060\060\065\063\060\061 +\060\063\070\063\061\132\060\145\061\013\060\011\006\003\125\004 +\006\023\002\123\105\061\024\060\022\006\003\125\004\012\023\013 +\101\144\144\124\162\165\163\164\040\101\102\061\035\060\033\006 +\003\125\004\013\023\024\101\144\144\124\162\165\163\164\040\124 +\124\120\040\116\145\164\167\157\162\153\061\041\060\037\006\003 +\125\004\003\023\030\101\144\144\124\162\165\163\164\040\103\154 +\141\163\163\040\061\040\103\101\040\122\157\157\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\226\226 +\324\041\111\140\342\153\350\101\007\014\336\304\340\334\023\043 +\315\301\065\307\373\326\116\021\012\147\136\365\006\133\153\245 +\010\073\133\051\026\072\347\207\262\064\006\305\274\005\245\003 +\174\202\313\051\020\256\341\210\201\275\326\236\323\376\055\126 +\301\025\316\343\046\235\025\056\020\373\006\217\060\004\336\247 +\264\143\264\377\261\234\256\074\257\167\266\126\305\265\253\242 +\351\151\072\075\016\063\171\062\077\160\202\222\231\141\155\215 +\060\010\217\161\077\246\110\127\031\370\045\334\113\146\134\245 +\164\217\230\256\310\371\300\006\042\347\254\163\337\245\056\373 +\122\334\261\025\145\040\372\065\146\151\336\337\054\361\156\274 +\060\333\054\044\022\333\353\065\065\150\220\313\000\260\227\041 +\075\164\041\043\145\064\053\273\170\131\243\326\341\166\071\232 +\244\111\216\214\164\257\156\244\232\243\331\233\322\070\134\233 +\242\030\314\165\043\204\276\353\342\115\063\161\216\032\360\302 +\370\307\035\242\255\003\227\054\370\317\045\306\366\270\044\061 +\261\143\135\222\177\143\360\045\311\123\056\037\277\115\002\003 +\001\000\001\243\201\322\060\201\317\060\035\006\003\125\035\016 +\004\026\004\024\225\261\264\360\224\266\275\307\332\321\021\011 +\041\276\301\257\111\375\020\173\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\201\217\006\003\125\035\043\004\201 +\207\060\201\204\200\024\225\261\264\360\224\266\275\307\332\321 +\021\011\041\276\301\257\111\375\020\173\241\151\244\147\060\145 +\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024\060 +\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163\164 +\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101\144 +\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167\157 +\162\153\061\041\060\037\006\003\125\004\003\023\030\101\144\144 +\124\162\165\163\164\040\103\154\141\163\163\040\061\040\103\101 +\040\122\157\157\164\202\001\001\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\054\155\144\033 +\037\315\015\335\271\001\372\226\143\064\062\110\107\231\256\227 +\355\375\162\026\246\163\107\132\364\353\335\351\365\326\373\105 +\314\051\211\104\135\277\106\071\075\350\356\274\115\124\206\036 +\035\154\343\027\047\103\341\211\126\053\251\157\162\116\111\063 +\343\162\174\052\043\232\274\076\377\050\052\355\243\377\034\043 +\272\103\127\011\147\115\113\142\006\055\370\377\154\235\140\036 +\330\034\113\175\265\061\057\331\320\174\135\370\336\153\203\030 +\170\067\127\057\350\063\007\147\337\036\307\153\052\225\166\256 +\217\127\243\360\364\122\264\251\123\010\317\340\117\323\172\123 +\213\375\273\034\126\066\362\376\262\266\345\166\273\325\042\145 +\247\077\376\321\146\255\013\274\153\231\206\357\077\175\363\030 +\062\312\173\306\343\253\144\106\225\370\046\151\331\125\203\173 +\054\226\007\377\131\054\104\243\306\345\351\251\334\241\143\200 +\132\041\136\041\317\123\124\360\272\157\211\333\250\252\225\317 +\213\343\161\314\036\033\040\104\010\300\172\266\100\375\304\344 +\065\341\035\026\034\320\274\053\216\326\161\331 +END + +# Trust for Certificate "AddTrust Low-Value Services Root" +# Issuer: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust Class 1 CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:38:31 2000 +# Not Valid After : Sat May 30 10:38:31 2020 +# Fingerprint (MD5): 1E:42:95:02:33:92:6B:B9:5F:C0:7F:DA:D6:B2:4B:FC +# Fingerprint (SHA1): CC:AB:0E:A0:4C:23:01:D6:69:7B:DD:37:9F:CD:12:EB:24:E3:94:9D +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Low-Value Services Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\314\253\016\240\114\043\001\326\151\173\335\067\237\315\022\353 +\044\343\224\235 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\036\102\225\002\063\222\153\271\137\300\177\332\326\262\113\374 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\041\060\037\006\003\125\004\003\023\030\101 +\144\144\124\162\165\163\164\040\103\154\141\163\163\040\061\040 +\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust External Root" +# +# Issuer: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:48:38 2000 +# Not Valid After : Sat May 30 10:48:38 2020 +# Fingerprint (MD5): 1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F +# Fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68 +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 "AddTrust External Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\066\060\202\003\036\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035\101 +\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141\154 +\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060\040 +\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164\040 +\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157\164 +\060\036\027\015\060\060\060\065\063\060\061\060\064\070\063\070 +\132\027\015\062\060\060\065\063\060\061\060\064\070\063\070\132 +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164\060\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\267\367\032\063\346\362\000\004\055\071\340\116\133\355 +\037\274\154\017\315\265\372\043\266\316\336\233\021\063\227\244 +\051\114\175\223\237\275\112\274\223\355\003\032\343\217\317\345 +\155\120\132\326\227\051\224\132\200\260\111\172\333\056\225\375 +\270\312\277\067\070\055\036\076\221\101\255\160\126\307\360\117 +\077\350\062\236\164\312\310\220\124\351\306\137\017\170\235\232 +\100\074\016\254\141\252\136\024\217\236\207\241\152\120\334\327 +\232\116\257\005\263\246\161\224\234\161\263\120\140\012\307\023 +\235\070\007\206\002\250\351\250\151\046\030\220\253\114\260\117 +\043\253\072\117\204\330\337\316\237\341\151\157\273\327\102\327 +\153\104\344\307\255\356\155\101\137\162\132\161\010\067\263\171 +\145\244\131\240\224\067\367\000\057\015\302\222\162\332\320\070 +\162\333\024\250\105\304\135\052\175\267\264\326\304\356\254\315 +\023\104\267\311\053\335\103\000\045\372\141\271\151\152\130\043 +\021\267\247\063\217\126\165\131\365\315\051\327\106\267\012\053 +\145\266\323\102\157\025\262\270\173\373\357\351\135\123\325\064 +\132\047\002\003\001\000\001\243\201\334\060\201\331\060\035\006 +\003\125\035\016\004\026\004\024\255\275\230\172\064\264\046\367 +\372\304\046\124\357\003\275\340\044\313\124\032\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\201\231\006\003\125 +\035\043\004\201\221\060\201\216\200\024\255\275\230\172\064\264 +\046\367\372\304\046\124\357\003\275\340\044\313\124\032\241\163 +\244\161\060\157\061\013\060\011\006\003\125\004\006\023\002\123 +\105\061\024\060\022\006\003\125\004\012\023\013\101\144\144\124 +\162\165\163\164\040\101\102\061\046\060\044\006\003\125\004\013 +\023\035\101\144\144\124\162\165\163\164\040\105\170\164\145\162 +\156\141\154\040\124\124\120\040\116\145\164\167\157\162\153\061 +\042\060\040\006\003\125\004\003\023\031\101\144\144\124\162\165 +\163\164\040\105\170\164\145\162\156\141\154\040\103\101\040\122 +\157\157\164\202\001\001\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\260\233\340\205\045\302 +\326\043\342\017\226\006\222\235\101\230\234\331\204\171\201\331 +\036\133\024\007\043\066\145\217\260\330\167\273\254\101\154\107 +\140\203\121\260\371\062\075\347\374\366\046\023\307\200\026\245 +\277\132\374\207\317\170\171\211\041\232\342\114\007\012\206\065 +\274\362\336\121\304\322\226\267\334\176\116\356\160\375\034\071 +\353\014\002\121\024\055\216\275\026\340\301\337\106\165\347\044 +\255\354\364\102\264\205\223\160\020\147\272\235\006\065\112\030 +\323\053\172\314\121\102\241\172\143\321\346\273\241\305\053\302 +\066\276\023\015\346\275\143\176\171\173\247\011\015\100\253\152 +\335\217\212\303\366\366\214\032\102\005\121\324\105\365\237\247 +\142\041\150\025\040\103\074\231\347\174\275\044\330\251\221\027 +\163\210\077\126\033\061\070\030\264\161\017\232\315\310\016\236 +\216\056\033\341\214\230\203\313\037\061\361\104\114\306\004\163 +\111\166\140\017\307\370\275\027\200\153\056\351\314\114\016\132 +\232\171\017\040\012\056\325\236\143\046\036\125\222\224\330\202 +\027\132\173\320\274\307\217\116\206\004 +END + +# Trust for Certificate "AddTrust External Root" +# Issuer: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust External CA Root,OU=AddTrust External TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:48:38 2000 +# Not Valid After : Sat May 30 10:48:38 2020 +# Fingerprint (MD5): 1D:35:54:04:85:78:B0:3F:42:42:4D:BF:20:73:0A:3F +# Fingerprint (SHA1): 02:FA:F3:E2:91:43:54:68:60:78:57:69:4D:F5:E4:5B:68:85:18:68 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust External Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\002\372\363\342\221\103\124\150\140\170\127\151\115\365\344\133 +\150\205\030\150 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\035\065\124\004\205\170\260\077\102\102\115\277\040\163\012\077 +END +CKA_ISSUER MULTILINE_OCTAL +\060\157\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\046\060\044\006\003\125\004\013\023\035 +\101\144\144\124\162\165\163\164\040\105\170\164\145\162\156\141 +\154\040\124\124\120\040\116\145\164\167\157\162\153\061\042\060 +\040\006\003\125\004\003\023\031\101\144\144\124\162\165\163\164 +\040\105\170\164\145\162\156\141\154\040\103\101\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust Public Services Root" +# +# Issuer: CN=AddTrust Public CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust Public CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:41:50 2000 +# Not Valid After : Sat May 30 10:41:50 2020 +# Fingerprint (MD5): C1:62:3E:23:C5:82:73:9C:03:59:4B:2B:E9:77:49:7F +# Fingerprint (SHA1): 2A:B6:28:48:5E:78:FB:F3:AD:9E:79:10:DD:6B:DF:99:72:2C:96:E5 +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 "AddTrust Public Services Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101 +\144\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103 +\101\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101 +\144\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103 +\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\025\060\202\002\375\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 +\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101\144 +\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103\101 +\040\122\157\157\164\060\036\027\015\060\060\060\065\063\060\061 +\060\064\061\065\060\132\027\015\062\060\060\065\063\060\061\060 +\064\061\065\060\132\060\144\061\013\060\011\006\003\125\004\006 +\023\002\123\105\061\024\060\022\006\003\125\004\012\023\013\101 +\144\144\124\162\165\163\164\040\101\102\061\035\060\033\006\003 +\125\004\013\023\024\101\144\144\124\162\165\163\164\040\124\124 +\120\040\116\145\164\167\157\162\153\061\040\060\036\006\003\125 +\004\003\023\027\101\144\144\124\162\165\163\164\040\120\165\142 +\154\151\143\040\103\101\040\122\157\157\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\351\032\060\217 +\203\210\024\301\040\330\074\233\217\033\176\003\164\273\332\151 +\323\106\245\370\216\302\014\021\220\121\245\057\146\124\100\125 +\352\333\037\112\126\356\237\043\156\364\071\313\241\271\157\362 +\176\371\135\207\046\141\236\034\370\342\354\246\201\370\041\305 +\044\314\021\014\077\333\046\162\172\307\001\227\007\027\371\327 +\030\054\060\175\016\172\036\142\036\306\113\300\375\175\142\167 +\323\104\036\047\366\077\113\104\263\267\070\331\071\037\140\325 +\121\222\163\003\264\000\151\343\363\024\116\356\321\334\011\317 +\167\064\106\120\260\370\021\362\376\070\171\367\007\071\376\121 +\222\227\013\133\010\137\064\206\001\255\210\227\353\146\315\136 +\321\377\334\175\362\204\332\272\167\255\334\200\010\307\247\207 +\326\125\237\227\152\350\310\021\144\272\347\031\051\077\021\263 +\170\220\204\040\122\133\021\357\170\320\203\366\325\110\220\320 +\060\034\317\200\371\140\376\171\344\210\362\335\000\353\224\105 +\353\145\224\151\100\272\300\325\264\270\272\175\004\021\250\353 +\061\005\226\224\116\130\041\216\237\320\140\375\002\003\001\000 +\001\243\201\321\060\201\316\060\035\006\003\125\035\016\004\026 +\004\024\201\076\067\330\222\260\037\167\237\134\264\253\163\252 +\347\366\064\140\057\372\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\201\216\006\003\125\035\043\004\201\206\060 +\201\203\200\024\201\076\067\330\222\260\037\167\237\134\264\253 +\163\252\347\366\064\140\057\372\241\150\244\146\060\144\061\013 +\060\011\006\003\125\004\006\023\002\123\105\061\024\060\022\006 +\003\125\004\012\023\013\101\144\144\124\162\165\163\164\040\101 +\102\061\035\060\033\006\003\125\004\013\023\024\101\144\144\124 +\162\165\163\164\040\124\124\120\040\116\145\164\167\157\162\153 +\061\040\060\036\006\003\125\004\003\023\027\101\144\144\124\162 +\165\163\164\040\120\165\142\154\151\143\040\103\101\040\122\157 +\157\164\202\001\001\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\003\367\025\112\370\044\332 +\043\126\026\223\166\335\066\050\271\256\033\270\303\361\144\272 +\040\030\170\225\051\047\127\005\274\174\052\364\271\121\125\332 +\207\002\336\017\026\027\061\370\252\171\056\011\023\273\257\262 +\040\031\022\345\223\371\113\371\203\350\104\325\262\101\045\277 +\210\165\157\377\020\374\112\124\320\137\360\372\357\066\163\175 +\033\066\105\306\041\155\264\025\270\116\317\234\134\245\075\132 +\000\216\006\343\074\153\062\173\362\237\360\266\375\337\360\050 +\030\110\360\306\274\320\277\064\200\226\302\112\261\155\216\307 +\220\105\336\057\147\254\105\004\243\172\334\125\222\311\107\146 +\330\032\214\307\355\234\116\232\340\022\273\265\152\114\204\341 +\341\042\015\207\000\144\376\214\175\142\071\145\246\357\102\266 +\200\045\022\141\001\250\044\023\160\000\021\046\137\372\065\120 +\305\110\314\006\107\350\047\330\160\215\137\144\346\241\104\046 +\136\042\354\222\315\377\102\232\104\041\155\134\305\343\042\035 +\137\107\022\347\316\137\135\372\330\252\261\063\055\331\166\362 +\116\072\063\014\053\263\055\220\006 +END + +# Trust for Certificate "AddTrust Public Services Root" +# Issuer: CN=AddTrust Public CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust Public CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:41:50 2000 +# Not Valid After : Sat May 30 10:41:50 2020 +# Fingerprint (MD5): C1:62:3E:23:C5:82:73:9C:03:59:4B:2B:E9:77:49:7F +# Fingerprint (SHA1): 2A:B6:28:48:5E:78:FB:F3:AD:9E:79:10:DD:6B:DF:99:72:2C:96:E5 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Public Services Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\052\266\050\110\136\170\373\363\255\236\171\020\335\153\337\231 +\162\054\226\345 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\301\142\076\043\305\202\163\234\003\131\113\053\351\167\111\177 +END +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\040\060\036\006\003\125\004\003\023\027\101 +\144\144\124\162\165\163\164\040\120\165\142\154\151\143\040\103 +\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AddTrust Qualified Certificates Root" +# +# Issuer: CN=AddTrust Qualified CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust Qualified CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:44:50 2000 +# Not Valid After : Sat May 30 10:44:50 2020 +# Fingerprint (MD5): 27:EC:39:47:CD:DA:5A:AF:E2:9A:01:65:21:A9:4C:BB +# Fingerprint (SHA1): 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF +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 "AddTrust Qualified Certificates Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101 +\144\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145 +\144\040\103\101\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101 +\144\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145 +\144\040\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\036\060\202\003\006\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061\024 +\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165\163 +\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024\101 +\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164\167 +\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101\144 +\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145\144 +\040\103\101\040\122\157\157\164\060\036\027\015\060\060\060\065 +\063\060\061\060\064\064\065\060\132\027\015\062\060\060\065\063 +\060\061\060\064\064\065\060\132\060\147\061\013\060\011\006\003 +\125\004\006\023\002\123\105\061\024\060\022\006\003\125\004\012 +\023\013\101\144\144\124\162\165\163\164\040\101\102\061\035\060 +\033\006\003\125\004\013\023\024\101\144\144\124\162\165\163\164 +\040\124\124\120\040\116\145\164\167\157\162\153\061\043\060\041 +\006\003\125\004\003\023\032\101\144\144\124\162\165\163\164\040 +\121\165\141\154\151\146\151\145\144\040\103\101\040\122\157\157 +\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\344\036\232\376\334\011\132\207\244\237\107\276\021\137 +\257\204\064\333\142\074\171\170\267\351\060\265\354\014\034\052 +\304\026\377\340\354\161\353\212\365\021\156\355\117\015\221\322 +\022\030\055\111\025\001\302\244\042\023\307\021\144\377\042\022 +\232\271\216\134\057\010\317\161\152\263\147\001\131\361\135\106 +\363\260\170\245\366\016\102\172\343\177\033\314\320\360\267\050 +\375\052\352\236\263\260\271\004\252\375\366\307\264\261\270\052 +\240\373\130\361\031\240\157\160\045\176\076\151\112\177\017\042 +\330\357\255\010\021\232\051\231\341\252\104\105\232\022\136\076 +\235\155\122\374\347\240\075\150\057\360\113\160\174\023\070\255 +\274\025\045\361\326\316\253\242\300\061\326\057\237\340\377\024 +\131\374\204\223\331\207\174\114\124\023\353\237\321\055\021\370 +\030\072\072\336\045\331\367\323\100\355\244\006\022\304\073\341 +\221\301\126\065\360\024\334\145\066\011\156\253\244\007\307\065 +\321\302\003\063\066\133\165\046\155\102\361\022\153\103\157\113 +\161\224\372\064\035\355\023\156\312\200\177\230\057\154\271\145 +\330\351\002\003\001\000\001\243\201\324\060\201\321\060\035\006 +\003\125\035\016\004\026\004\024\071\225\213\142\213\134\311\324 +\200\272\130\017\227\077\025\010\103\314\230\247\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\201\221\006\003\125 +\035\043\004\201\211\060\201\206\200\024\071\225\213\142\213\134 +\311\324\200\272\130\017\227\077\025\010\103\314\230\247\241\153 +\244\151\060\147\061\013\060\011\006\003\125\004\006\023\002\123 +\105\061\024\060\022\006\003\125\004\012\023\013\101\144\144\124 +\162\165\163\164\040\101\102\061\035\060\033\006\003\125\004\013 +\023\024\101\144\144\124\162\165\163\164\040\124\124\120\040\116 +\145\164\167\157\162\153\061\043\060\041\006\003\125\004\003\023 +\032\101\144\144\124\162\165\163\164\040\121\165\141\154\151\146 +\151\145\144\040\103\101\040\122\157\157\164\202\001\001\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\031\253\165\352\370\213\145\141\225\023\272\151\004\357 +\206\312\023\240\307\252\117\144\033\077\030\366\250\055\054\125 +\217\005\267\060\352\102\152\035\300\045\121\055\247\277\014\263 +\355\357\010\177\154\074\106\032\352\030\103\337\166\314\371\146 +\206\234\054\150\365\351\027\370\061\263\030\304\326\110\175\043 +\114\150\301\176\273\001\024\157\305\331\156\336\273\004\102\152 +\370\366\134\175\345\332\372\207\353\015\065\122\147\320\236\227 +\166\005\223\077\225\307\001\346\151\125\070\177\020\141\231\311 +\343\137\246\312\076\202\143\110\252\342\010\110\076\252\362\262 +\205\142\246\264\247\331\275\067\234\150\265\055\126\175\260\267 +\077\240\261\007\326\351\117\334\336\105\161\060\062\177\033\056 +\011\371\277\122\241\356\302\200\076\006\134\056\125\100\301\033 +\365\160\105\260\334\135\372\366\162\132\167\322\143\315\317\130 +\211\000\102\143\077\171\071\320\104\260\202\156\101\031\350\335 +\340\301\210\132\321\036\161\223\037\044\060\164\345\036\250\336 +\074\047\067\177\203\256\236\167\317\360\060\261\377\113\231\350 +\306\241 +END + +# Trust for Certificate "AddTrust Qualified Certificates Root" +# Issuer: CN=AddTrust Qualified CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Serial Number: 1 (0x1) +# Subject: CN=AddTrust Qualified CA Root,OU=AddTrust TTP Network,O=AddTrust AB,C=SE +# Not Valid Before: Tue May 30 10:44:50 2000 +# Not Valid After : Sat May 30 10:44:50 2020 +# Fingerprint (MD5): 27:EC:39:47:CD:DA:5A:AF:E2:9A:01:65:21:A9:4C:BB +# Fingerprint (SHA1): 4D:23:78:EC:91:95:39:B5:00:7F:75:8F:03:3B:21:1E:C5:4D:8B:CF +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AddTrust Qualified Certificates Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\115\043\170\354\221\225\071\265\000\177\165\217\003\073\041\036 +\305\115\213\317 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\047\354\071\107\315\332\132\257\342\232\001\145\041\251\114\273 +END +CKA_ISSUER MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\123\105\061 +\024\060\022\006\003\125\004\012\023\013\101\144\144\124\162\165 +\163\164\040\101\102\061\035\060\033\006\003\125\004\013\023\024 +\101\144\144\124\162\165\163\164\040\124\124\120\040\116\145\164 +\167\157\162\153\061\043\060\041\006\003\125\004\003\023\032\101 +\144\144\124\162\165\163\164\040\121\165\141\154\151\146\151\145 +\144\040\103\101\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust Root Certification Authority" +# +# Issuer: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US +# Serial Number: 1164660820 (0x456b5054) +# Subject: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US +# Not Valid Before: Mon Nov 27 20:23:42 2006 +# Not Valid After : Fri Nov 27 20:53:42 2026 +# Fingerprint (MD5): D6:A5:C3:ED:5D:DD:3E:00:C1:3D:87:92:1F:1D:3F:E4 +# Fingerprint (SHA1): B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9 +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 "Entrust Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\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\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\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\105\153\120\124 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\221\060\202\003\171\240\003\002\001\002\002\004\105 +\153\120\124\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\260\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\026\060\024\006\003\125\004\012\023\015\105\156\164 +\162\165\163\164\054\040\111\156\143\056\061\071\060\067\006\003 +\125\004\013\023\060\167\167\167\056\145\156\164\162\165\163\164 +\056\156\145\164\057\103\120\123\040\151\163\040\151\156\143\157 +\162\160\157\162\141\164\145\144\040\142\171\040\162\145\146\145 +\162\145\156\143\145\061\037\060\035\006\003\125\004\013\023\026 +\050\143\051\040\062\060\060\066\040\105\156\164\162\165\163\164 +\054\040\111\156\143\056\061\055\060\053\006\003\125\004\003\023 +\044\105\156\164\162\165\163\164\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\066\061\061\062\067\062 +\060\062\063\064\062\132\027\015\062\066\061\061\062\067\062\060 +\065\063\064\062\132\060\201\260\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015 +\105\156\164\162\165\163\164\054\040\111\156\143\056\061\071\060 +\067\006\003\125\004\013\023\060\167\167\167\056\145\156\164\162 +\165\163\164\056\156\145\164\057\103\120\123\040\151\163\040\151 +\156\143\157\162\160\157\162\141\164\145\144\040\142\171\040\162 +\145\146\145\162\145\156\143\145\061\037\060\035\006\003\125\004 +\013\023\026\050\143\051\040\062\060\060\066\040\105\156\164\162 +\165\163\164\054\040\111\156\143\056\061\055\060\053\006\003\125 +\004\003\023\044\105\156\164\162\165\163\164\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\266\225\266\103\102\372\306 +\155\052\157\110\337\224\114\071\127\005\356\303\171\021\101\150 +\066\355\354\376\232\001\217\241\070\050\374\367\020\106\146\056 +\115\036\032\261\032\116\306\321\300\225\210\260\311\377\061\213 +\063\003\333\267\203\173\076\040\204\136\355\262\126\050\247\370 +\340\271\100\161\067\305\313\107\016\227\052\150\300\042\225\142 +\025\333\107\331\365\320\053\377\202\113\311\255\076\336\114\333 +\220\200\120\077\011\212\204\000\354\060\012\075\030\315\373\375 +\052\131\232\043\225\027\054\105\236\037\156\103\171\155\014\134 +\230\376\110\247\305\043\107\134\136\375\156\347\036\264\366\150 +\105\321\206\203\133\242\212\215\261\343\051\200\376\045\161\210 +\255\276\274\217\254\122\226\113\252\121\215\344\023\061\031\350 +\116\115\237\333\254\263\152\325\274\071\124\161\312\172\172\177 +\220\335\175\035\200\331\201\273\131\046\302\021\376\346\223\342 +\367\200\344\145\373\064\067\016\051\200\160\115\257\070\206\056 +\236\177\127\257\236\027\256\353\034\313\050\041\137\266\034\330 +\347\242\004\042\371\323\332\330\313\002\003\001\000\001\243\201 +\260\060\201\255\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\053\006\003\125\035\020\004\044\060\042 +\200\017\062\060\060\066\061\061\062\067\062\060\062\063\064\062 +\132\201\017\062\060\062\066\061\061\062\067\062\060\065\063\064 +\062\132\060\037\006\003\125\035\043\004\030\060\026\200\024\150 +\220\344\147\244\246\123\200\307\206\146\244\361\367\113\103\373 +\204\275\155\060\035\006\003\125\035\016\004\026\004\024\150\220 +\344\147\244\246\123\200\307\206\146\244\361\367\113\103\373\204 +\275\155\060\035\006\011\052\206\110\206\366\175\007\101\000\004 +\020\060\016\033\010\126\067\056\061\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\223\324\060\260\327\003\040\052\320\371\143 +\350\221\014\005\040\251\137\031\312\173\162\116\324\261\333\320 +\226\373\124\132\031\054\014\010\367\262\274\205\250\235\177\155 +\073\122\263\052\333\347\324\204\214\143\366\017\313\046\001\221 +\120\154\364\137\024\342\223\164\300\023\236\060\072\120\343\264 +\140\305\034\360\042\104\215\161\107\254\310\032\311\351\233\232 +\000\140\023\377\160\176\137\021\115\111\033\263\025\122\173\311 +\124\332\277\235\225\257\153\232\330\236\351\361\344\103\215\342 +\021\104\072\277\257\275\203\102\163\122\213\252\273\247\051\317 +\365\144\034\012\115\321\274\252\254\237\052\320\377\177\177\332 +\175\352\261\355\060\045\301\204\332\064\322\133\170\203\126\354 +\234\066\303\046\342\021\366\147\111\035\222\253\214\373\353\377 +\172\356\205\112\247\120\200\360\247\134\112\224\056\137\005\231 +\074\122\101\340\315\264\143\317\001\103\272\234\203\334\217\140 +\073\363\132\264\264\173\256\332\013\220\070\165\357\201\035\146 +\322\367\127\160\066\263\277\374\050\257\161\045\205\133\023\376 +\036\177\132\264\074 +END + +# Trust for Certificate "Entrust Root Certification Authority" +# Issuer: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US +# Serial Number: 1164660820 (0x456b5054) +# Subject: CN=Entrust Root Certification Authority,OU="(c) 2006 Entrust, Inc.",OU=www.entrust.net/CPS is incorporated by reference,O="Entrust, Inc.",C=US +# Not Valid Before: Mon Nov 27 20:23:42 2006 +# Not Valid After : Fri Nov 27 20:53:42 2026 +# Fingerprint (MD5): D6:A5:C3:ED:5D:DD:3E:00:C1:3D:87:92:1F:1D:3F:E4 +# Fingerprint (SHA1): B3:1E:B1:B7:40:E3:6C:84:02:DA:DC:37:D4:4D:F5:D4:67:49:52:F9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\263\036\261\267\100\343\154\204\002\332\334\067\324\115\365\324 +\147\111\122\371 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\326\245\303\355\135\335\076\000\301\075\207\222\037\035\077\344 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\260\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\167\167\167\056\145\156\164\162\165\163\164\056\156 +\145\164\057\103\120\123\040\151\163\040\151\156\143\157\162\160 +\157\162\141\164\145\144\040\142\171\040\162\145\146\145\162\145 +\156\143\145\061\037\060\035\006\003\125\004\013\023\026\050\143 +\051\040\062\060\060\066\040\105\156\164\162\165\163\164\054\040 +\111\156\143\056\061\055\060\053\006\003\125\004\003\023\044\105 +\156\164\162\165\163\164\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\105\153\120\124 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Global CA" +# +# Issuer: CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US +# Serial Number: 144470 (0x23456) +# Subject: CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US +# Not Valid Before: Tue May 21 04:00:00 2002 +# Not Valid After : Sat May 21 04:00:00 2022 +# Fingerprint (MD5): F7:75:AB:29:FB:51:4E:B7:77:5E:FF:05:3C:99:8E:F5 +# Fingerprint (SHA1): DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12 +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 "GeoTrust Global CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004\003 +\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004\003 +\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\002\064\126 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\124\060\202\002\074\240\003\002\001\002\002\003\002 +\064\126\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004 +\003\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142 +\141\154\040\103\101\060\036\027\015\060\062\060\065\062\061\060 +\064\060\060\060\060\132\027\015\062\062\060\065\062\061\060\064 +\060\060\060\060\132\060\102\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015\107 +\145\157\124\162\165\163\164\040\111\156\143\056\061\033\060\031 +\006\003\125\004\003\023\022\107\145\157\124\162\165\163\164\040 +\107\154\157\142\141\154\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\332\314\030\143\060\375 +\364\027\043\032\126\176\133\337\074\154\070\344\161\267\170\221 +\324\274\241\330\114\370\250\103\266\003\351\115\041\007\010\210 +\332\130\057\146\071\051\275\005\170\213\235\070\350\005\267\152 +\176\161\244\346\304\140\246\260\357\200\344\211\050\017\236\045 +\326\355\203\363\255\246\221\307\230\311\102\030\065\024\235\255 +\230\106\222\056\117\312\361\207\103\301\026\225\127\055\120\357 +\211\055\200\172\127\255\362\356\137\153\322\000\215\271\024\370 +\024\025\065\331\300\106\243\173\162\310\221\277\311\125\053\315 +\320\227\076\234\046\144\314\337\316\203\031\161\312\116\346\324 +\325\173\251\031\315\125\336\310\354\322\136\070\123\345\134\117 +\214\055\376\120\043\066\374\146\346\313\216\244\071\031\000\267 +\225\002\071\221\013\016\376\070\056\321\035\005\232\366\115\076 +\157\017\007\035\257\054\036\217\140\071\342\372\066\123\023\071 +\324\136\046\053\333\075\250\024\275\062\353\030\003\050\122\004 +\161\345\253\063\075\341\070\273\007\066\204\142\234\171\352\026 +\060\364\137\300\053\350\161\153\344\371\002\003\001\000\001\243 +\123\060\121\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\300 +\172\230\150\215\211\373\253\005\144\014\021\175\252\175\145\270 +\312\314\116\060\037\006\003\125\035\043\004\030\060\026\200\024 +\300\172\230\150\215\211\373\253\005\144\014\021\175\252\175\145 +\270\312\314\116\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\065\343\051\152\345\057\135\124 +\216\051\120\224\237\231\032\024\344\217\170\052\142\224\242\047 +\147\236\320\317\032\136\107\351\301\262\244\317\335\101\032\005 +\116\233\113\356\112\157\125\122\263\044\241\067\012\353\144\166 +\052\056\054\363\375\073\165\220\277\372\161\330\307\075\067\322 +\265\005\225\142\271\246\336\211\075\066\173\070\167\110\227\254 +\246\040\217\056\246\311\014\302\262\231\105\000\307\316\021\121 +\042\042\340\245\352\266\025\110\011\144\352\136\117\164\367\005 +\076\307\212\122\014\333\025\264\275\155\233\345\306\261\124\150 +\251\343\151\220\266\232\245\017\270\271\077\040\175\256\112\265 +\270\234\344\035\266\253\346\224\245\301\307\203\255\333\365\047 +\207\016\004\154\325\377\335\240\135\355\207\122\267\053\025\002 +\256\071\246\152\164\351\332\304\347\274\115\064\036\251\134\115 +\063\137\222\011\057\210\146\135\167\227\307\035\166\023\251\325 +\345\361\026\011\021\065\325\254\333\044\161\160\054\230\126\013 +\331\027\264\321\343\121\053\136\165\350\325\320\334\117\064\355 +\302\005\146\200\241\313\346\063 +END + +# Trust for Certificate "GeoTrust Global CA" +# Issuer: CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US +# Serial Number: 144470 (0x23456) +# Subject: CN=GeoTrust Global CA,O=GeoTrust Inc.,C=US +# Not Valid Before: Tue May 21 04:00:00 2002 +# Not Valid After : Sat May 21 04:00:00 2022 +# Fingerprint (MD5): F7:75:AB:29:FB:51:4E:B7:77:5E:FF:05:3C:99:8E:F5 +# Fingerprint (SHA1): DE:28:F4:A4:FF:E5:B9:2F:A3:C5:03:D1:A3:49:A7:F9:96:2A:82:12 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Global CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\336\050\364\244\377\345\271\057\243\305\003\321\243\111\247\371 +\226\052\202\022 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\367\165\253\051\373\121\116\267\167\136\377\005\074\231\216\365 +END +CKA_ISSUER MULTILINE_OCTAL +\060\102\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\033\060\031\006\003\125\004\003 +\023\022\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\002\064\126 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Global CA 2" +# +# Issuer: CN=GeoTrust Global CA 2,O=GeoTrust Inc.,C=US +# Serial Number: 1 (0x1) +# Subject: CN=GeoTrust Global CA 2,O=GeoTrust Inc.,C=US +# Not Valid Before: Thu Mar 04 05:00:00 2004 +# Not Valid After : Mon Mar 04 05:00:00 2019 +# Fingerprint (MD5): 0E:40:A7:6C:DE:03:5D:8F:D1:0F:E4:D1:8D:F9:6C:A9 +# Fingerprint (SHA1): A9:E9:78:08:14:37:58:88:F2:05:19:B0:6D:2B:0D:2B:60:16:90:7D +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 "GeoTrust Global CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003 +\023\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003 +\023\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\146\060\202\002\116\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003\023 +\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141\154 +\040\103\101\040\062\060\036\027\015\060\064\060\063\060\064\060 +\065\060\060\060\060\132\027\015\061\071\060\063\060\064\060\065 +\060\060\060\060\132\060\104\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015\107 +\145\157\124\162\165\163\164\040\111\156\143\056\061\035\060\033 +\006\003\125\004\003\023\024\107\145\157\124\162\165\163\164\040 +\107\154\157\142\141\154\040\103\101\040\062\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\357\074\115\100 +\075\020\337\073\123\000\341\147\376\224\140\025\076\205\210\361 +\211\015\220\310\050\043\231\005\350\053\040\235\306\363\140\106 +\330\301\262\325\214\061\331\334\040\171\044\201\277\065\062\374 +\143\151\333\261\052\153\356\041\130\362\010\351\170\313\157\313 +\374\026\122\310\221\304\377\075\163\336\261\076\247\302\175\146 +\301\365\176\122\044\032\342\325\147\221\320\202\020\327\170\113 +\117\053\102\071\275\144\055\100\240\260\020\323\070\110\106\210 +\241\014\273\072\063\052\142\230\373\000\235\023\131\177\157\073 +\162\252\356\246\017\206\371\005\141\352\147\177\014\067\226\213 +\346\151\026\107\021\302\047\131\003\263\246\140\302\041\100\126 +\372\240\307\175\072\023\343\354\127\307\263\326\256\235\211\200 +\367\001\347\054\366\226\053\023\015\171\054\331\300\344\206\173 +\113\214\014\162\202\212\373\027\315\000\154\072\023\074\260\204 +\207\113\026\172\051\262\117\333\035\324\013\363\146\067\275\330 +\366\127\273\136\044\172\270\074\213\271\372\222\032\032\204\236 +\330\164\217\252\033\177\136\364\376\105\042\041\002\003\001\000 +\001\243\143\060\141\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\161\070\066\362\002\061\123\107\053\156\272\145\106\251\020 +\025\130\040\005\011\060\037\006\003\125\035\043\004\030\060\026 +\200\024\161\070\066\362\002\061\123\107\053\156\272\145\106\251 +\020\025\130\040\005\011\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\003\367\265\053\253\135 +\020\374\173\262\262\136\254\233\016\176\123\170\131\076\102\004 +\376\165\243\255\254\201\116\327\002\213\136\304\055\310\122\166 +\307\054\037\374\201\062\230\321\113\306\222\223\063\065\061\057 +\374\330\035\104\335\340\201\177\235\351\213\341\144\221\142\013 +\071\010\214\254\164\235\131\331\172\131\122\227\021\271\026\173 +\157\105\323\226\331\061\175\002\066\017\234\073\156\317\054\015 +\003\106\105\353\240\364\177\110\104\306\010\100\314\336\033\160 +\265\051\255\272\213\073\064\145\165\033\161\041\035\054\024\012 +\260\226\225\270\326\352\362\145\373\051\272\117\352\221\223\164 +\151\266\362\377\341\032\320\014\321\166\205\313\212\045\275\227 +\136\054\157\025\231\046\347\266\051\377\042\354\311\002\307\126 +\000\315\111\271\263\154\173\123\004\032\342\250\311\252\022\005 +\043\302\316\347\273\004\002\314\300\107\242\344\304\051\057\133 +\105\127\211\121\356\074\353\122\010\377\007\065\036\237\065\152 +\107\112\126\230\321\132\205\037\214\365\042\277\253\316\203\363 +\342\042\051\256\175\203\100\250\272\154 +END + +# Trust for Certificate "GeoTrust Global CA 2" +# Issuer: CN=GeoTrust Global CA 2,O=GeoTrust Inc.,C=US +# Serial Number: 1 (0x1) +# Subject: CN=GeoTrust Global CA 2,O=GeoTrust Inc.,C=US +# Not Valid Before: Thu Mar 04 05:00:00 2004 +# Not Valid After : Mon Mar 04 05:00:00 2019 +# Fingerprint (MD5): 0E:40:A7:6C:DE:03:5D:8F:D1:0F:E4:D1:8D:F9:6C:A9 +# Fingerprint (SHA1): A9:E9:78:08:14:37:58:88:F2:05:19:B0:6D:2B:0D:2B:60:16:90:7D +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Global CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\251\351\170\010\024\067\130\210\362\005\031\260\155\053\015\053 +\140\026\220\175 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\016\100\247\154\336\003\135\217\321\017\344\321\215\371\154\251 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\035\060\033\006\003\125\004\003 +\023\024\107\145\157\124\162\165\163\164\040\107\154\157\142\141 +\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Universal CA" +# +# Issuer: CN=GeoTrust Universal CA,O=GeoTrust Inc.,C=US +# Serial Number: 1 (0x1) +# Subject: CN=GeoTrust Universal CA,O=GeoTrust Inc.,C=US +# Not Valid Before: Thu Mar 04 05:00:00 2004 +# Not Valid After : Sun Mar 04 05:00:00 2029 +# Fingerprint (MD5): 92:65:58:8B:A2:1A:31:72:73:68:5C:B4:A5:7A:07:48 +# Fingerprint (SHA1): E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79 +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 "GeoTrust Universal CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003 +\023\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003 +\023\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\150\060\202\003\120\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003\023 +\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145\162 +\163\141\154\040\103\101\060\036\027\015\060\064\060\063\060\064 +\060\065\060\060\060\060\132\027\015\062\071\060\063\060\064\060 +\065\060\060\060\060\132\060\105\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023\015 +\107\145\157\124\162\165\163\164\040\111\156\143\056\061\036\060 +\034\006\003\125\004\003\023\025\107\145\157\124\162\165\163\164 +\040\125\156\151\166\145\162\163\141\154\040\103\101\060\202\002 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\002\017\000\060\202\002\012\002\202\002\001\000\246\025 +\125\240\243\306\340\037\214\235\041\120\327\301\276\053\133\265 +\244\236\241\331\162\130\275\000\033\114\277\141\311\024\035\105 +\202\253\306\035\200\326\075\353\020\234\072\257\155\044\370\274 +\161\001\236\006\365\174\137\036\301\016\125\312\203\232\131\060 +\256\031\313\060\110\225\355\042\067\215\364\112\232\162\146\076 +\255\225\300\340\026\000\340\020\037\053\061\016\327\224\124\323 +\102\063\240\064\035\036\105\166\335\117\312\030\067\354\205\025 +\172\031\010\374\325\307\234\360\362\251\056\020\251\222\346\075 +\130\075\251\026\150\074\057\165\041\030\177\050\167\245\341\141 +\027\267\246\351\370\036\231\333\163\156\364\012\242\041\154\356 +\332\252\205\222\146\257\366\172\153\202\332\272\042\010\065\017 +\317\102\361\065\372\152\356\176\053\045\314\072\021\344\155\257 +\163\262\166\035\255\320\262\170\147\032\244\071\034\121\013\147 +\126\203\375\070\135\015\316\335\360\273\053\226\037\336\173\062 +\122\375\035\273\265\006\241\262\041\136\245\326\225\150\177\360 +\231\236\334\105\010\076\347\322\011\015\065\224\335\200\116\123 +\227\327\265\011\104\040\144\026\027\003\002\114\123\015\150\336 +\325\252\162\115\223\155\202\016\333\234\275\317\264\363\134\135 +\124\172\151\011\226\326\333\021\301\215\165\250\264\317\071\310 +\316\074\274\044\174\346\142\312\341\275\175\247\275\127\145\013 +\344\376\045\355\266\151\020\334\050\032\106\275\001\035\320\227 +\265\341\230\073\300\067\144\326\075\224\356\013\341\365\050\256 +\013\126\277\161\213\043\051\101\216\206\305\113\122\173\330\161 +\253\037\212\025\246\073\203\132\327\130\001\121\306\114\101\331 +\177\330\101\147\162\242\050\337\140\203\251\236\310\173\374\123 +\163\162\131\365\223\172\027\166\016\316\367\345\134\331\013\125 +\064\242\252\133\265\152\124\347\023\312\127\354\227\155\364\136 +\006\057\105\213\130\324\043\026\222\344\026\156\050\143\131\060 +\337\120\001\234\143\211\032\237\333\027\224\202\160\067\303\044 +\236\232\107\326\132\312\116\250\151\211\162\037\221\154\333\176 +\236\033\255\307\037\163\335\054\117\031\145\375\177\223\100\020 +\056\322\360\355\074\236\056\050\076\151\046\063\305\173\002\003 +\001\000\001\243\143\060\141\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\273\056\252\260\014\270\210\046\121\164\134\155 +\003\323\300\330\217\172\326\060\037\006\003\125\035\043\004\030 +\060\026\200\024\332\273\056\252\260\014\270\210\046\121\164\134 +\155\003\323\300\330\217\172\326\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\206\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\002\001\000\061\170\346\307 +\265\337\270\224\100\311\161\304\250\065\354\106\035\302\205\363 +\050\130\206\260\013\374\216\262\071\217\104\125\253\144\204\134 +\151\251\320\232\070\074\372\345\037\065\345\104\343\200\171\224 +\150\244\273\304\237\075\341\064\315\060\106\213\124\053\225\245 +\357\367\077\231\204\375\065\346\317\061\306\334\152\277\247\327 +\043\010\341\230\136\303\132\010\166\251\246\257\167\057\267\140 +\275\104\106\152\357\227\377\163\225\301\216\350\223\373\375\061 +\267\354\127\021\021\105\233\060\361\032\210\071\301\117\074\247 +\000\325\307\374\253\155\200\042\160\245\014\340\135\004\051\002 +\373\313\240\221\321\174\326\303\176\120\325\235\130\276\101\070 +\353\271\165\074\025\331\233\311\112\203\131\300\332\123\375\063 +\273\066\030\233\205\017\025\335\356\055\254\166\223\271\331\001 +\215\110\020\250\373\365\070\206\361\333\012\306\275\204\243\043 +\101\336\326\167\157\205\324\205\034\120\340\256\121\212\272\215 +\076\166\342\271\312\047\362\137\237\357\156\131\015\006\330\053 +\027\244\322\174\153\273\137\024\032\110\217\032\114\347\263\107 +\034\216\114\105\053\040\356\110\337\347\335\011\216\030\250\332 +\100\215\222\046\021\123\141\163\135\353\275\347\304\115\051\067 +\141\353\254\071\055\147\056\026\326\365\000\203\205\241\314\177 +\166\304\175\344\267\113\146\357\003\105\140\151\266\014\122\226 +\222\204\136\246\243\265\244\076\053\331\314\330\033\107\252\362 +\104\332\117\371\003\350\360\024\313\077\363\203\336\320\301\124 +\343\267\350\012\067\115\213\040\131\003\060\031\241\054\310\275 +\021\037\337\256\311\112\305\363\047\146\146\206\254\150\221\377 +\331\346\123\034\017\213\134\151\145\012\046\310\036\064\303\135 +\121\173\327\251\234\006\241\066\335\325\211\224\274\331\344\055 +\014\136\011\154\010\227\174\243\075\174\223\377\077\241\024\247 +\317\265\135\353\333\333\034\304\166\337\210\271\275\105\005\225 +\033\256\374\106\152\114\257\110\343\316\256\017\322\176\353\346 +\154\234\117\201\152\172\144\254\273\076\325\347\313\166\056\305 +\247\110\301\134\220\017\313\310\077\372\346\062\341\215\033\157 +\244\346\216\330\371\051\110\212\316\163\376\054 +END + +# Trust for Certificate "GeoTrust Universal CA" +# Issuer: CN=GeoTrust Universal CA,O=GeoTrust Inc.,C=US +# Serial Number: 1 (0x1) +# Subject: CN=GeoTrust Universal CA,O=GeoTrust Inc.,C=US +# Not Valid Before: Thu Mar 04 05:00:00 2004 +# Not Valid After : Sun Mar 04 05:00:00 2029 +# Fingerprint (MD5): 92:65:58:8B:A2:1A:31:72:73:68:5C:B4:A5:7A:07:48 +# Fingerprint (SHA1): E6:21:F3:35:43:79:05:9A:4B:68:30:9D:8A:2F:74:22:15:87:EC:79 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Universal CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\346\041\363\065\103\171\005\232\113\150\060\235\212\057\164\042 +\025\207\354\171 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\222\145\130\213\242\032\061\162\163\150\134\264\245\172\007\110 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\036\060\034\006\003\125\004\003 +\023\025\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Universal CA 2" +# +# Issuer: CN=GeoTrust Universal CA 2,O=GeoTrust Inc.,C=US +# Serial Number: 1 (0x1) +# Subject: CN=GeoTrust Universal CA 2,O=GeoTrust Inc.,C=US +# Not Valid Before: Thu Mar 04 05:00:00 2004 +# Not Valid After : Sun Mar 04 05:00:00 2029 +# Fingerprint (MD5): 34:FC:B8:D0:36:DB:9E:14:B3:C2:F2:DB:8F:E4:94:C7 +# Fingerprint (SHA1): 37:9A:19:7B:41:85:45:35:0C:A6:03:69:F3:3C:2E:AF:47:4F:20:79 +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 "GeoTrust Universal CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003 +\023\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003 +\023\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\154\060\202\003\124\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003\023 +\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145\162 +\163\141\154\040\103\101\040\062\060\036\027\015\060\064\060\063 +\060\064\060\065\060\060\060\060\132\027\015\062\071\060\063\060 +\064\060\065\060\060\060\060\132\060\107\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012 +\023\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061 +\040\060\036\006\003\125\004\003\023\027\107\145\157\124\162\165 +\163\164\040\125\156\151\166\145\162\163\141\154\040\103\101\040 +\062\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002 +\001\000\263\124\122\301\311\076\362\331\334\261\123\032\131\051 +\347\261\303\105\050\345\327\321\355\305\305\113\241\252\164\173 +\127\257\112\046\374\330\365\136\247\156\031\333\164\014\117\065 +\133\062\013\001\343\333\353\172\167\065\352\252\132\340\326\350 +\241\127\224\360\220\243\164\126\224\104\060\003\036\134\116\053 +\205\046\164\202\172\014\166\240\157\115\316\101\055\240\025\006 +\024\137\267\102\315\173\217\130\141\064\334\052\010\371\056\303 +\001\246\042\104\034\114\007\202\346\133\316\320\112\174\004\323 +\031\163\047\360\252\230\177\056\257\116\353\207\036\044\167\152 +\135\266\350\133\105\272\334\303\241\005\157\126\216\217\020\046 +\245\111\303\056\327\101\207\042\340\117\206\312\140\265\352\241 +\143\300\001\227\020\171\275\000\074\022\155\053\025\261\254\113 +\261\356\030\271\116\226\334\334\166\377\073\276\317\137\003\300 +\374\073\350\276\106\033\377\332\100\302\122\367\376\343\072\367 +\152\167\065\320\332\215\353\136\030\152\061\307\036\272\074\033 +\050\326\153\124\306\252\133\327\242\054\033\031\314\242\002\366 +\233\131\275\067\153\206\265\155\202\272\330\352\311\126\274\251 +\066\130\375\076\031\363\355\014\046\251\223\070\370\117\301\135 +\042\006\320\227\352\341\255\306\125\340\201\053\050\203\072\372 +\364\173\041\121\000\276\122\070\316\315\146\171\250\364\201\126 +\342\320\203\011\107\121\133\120\152\317\333\110\032\135\076\367 +\313\366\145\367\154\361\225\370\002\073\062\126\202\071\172\133 +\275\057\211\033\277\241\264\350\377\177\215\214\337\003\361\140 +\116\130\021\114\353\243\077\020\053\203\232\001\163\331\224\155 +\204\000\047\146\254\360\160\100\011\102\222\255\117\223\015\141 +\011\121\044\330\222\325\013\224\141\262\207\262\355\377\232\065 +\377\205\124\312\355\104\103\254\033\074\026\153\110\112\012\034 +\100\210\037\222\302\013\000\005\377\362\310\002\112\244\252\251 +\314\231\226\234\057\130\340\175\341\276\273\007\334\137\004\162 +\134\061\064\303\354\137\055\340\075\144\220\042\346\321\354\270 +\056\335\131\256\331\241\067\277\124\065\334\163\062\117\214\004 +\036\063\262\311\106\361\330\134\310\125\120\311\150\275\250\272 +\066\011\002\003\001\000\001\243\143\060\141\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\166\363\125\341\372\244\066\373\360 +\237\134\142\161\355\074\364\107\070\020\053\060\037\006\003\125 +\035\043\004\030\060\026\200\024\166\363\125\341\372\244\066\373 +\360\237\134\142\161\355\074\364\107\070\020\053\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\206\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001\000 +\146\301\306\043\363\331\340\056\156\137\350\317\256\260\260\045 +\115\053\370\073\130\233\100\044\067\132\313\253\026\111\377\263 +\165\171\063\241\057\155\160\027\064\221\376\147\176\217\354\233 +\345\136\202\251\125\037\057\334\324\121\007\022\376\254\026\076 +\054\065\306\143\374\334\020\353\015\243\252\320\174\314\321\320 +\057\121\056\304\024\132\336\350\031\341\076\306\314\244\051\347 +\056\204\252\006\060\170\166\124\163\050\230\131\070\340\000\015 +\142\323\102\175\041\237\256\075\072\214\325\372\167\015\030\053 +\026\016\137\066\341\374\052\265\060\044\317\340\143\014\173\130 +\032\376\231\272\102\022\261\221\364\174\150\342\310\350\257\054 +\352\311\176\256\273\052\075\015\025\334\064\225\266\030\164\250 +\152\017\307\264\364\023\304\344\133\355\012\322\244\227\114\052 +\355\057\154\022\211\075\361\047\160\252\152\003\122\041\237\100 +\250\147\120\362\363\132\037\337\337\043\366\334\170\116\346\230 +\117\125\072\123\343\357\362\364\237\307\174\330\130\257\051\042 +\227\270\340\275\221\056\260\166\354\127\021\317\357\051\104\363 +\351\205\172\140\143\344\135\063\211\027\331\061\252\332\326\363 +\030\065\162\317\207\053\057\143\043\204\135\204\214\077\127\240 +\210\374\231\221\050\046\151\231\324\217\227\104\276\216\325\110 +\261\244\050\051\361\025\264\341\345\236\335\370\217\246\157\046 +\327\011\074\072\034\021\016\246\154\067\367\255\104\207\054\050 +\307\330\164\202\263\320\157\112\127\273\065\051\047\240\213\350 +\041\247\207\144\066\135\314\330\026\254\307\262\047\100\222\125 +\070\050\215\121\156\335\024\147\123\154\161\134\046\204\115\165 +\132\266\176\140\126\251\115\255\373\233\036\227\363\015\331\322 +\227\124\167\332\075\022\267\340\036\357\010\006\254\371\205\207 +\351\242\334\257\176\030\022\203\375\126\027\101\056\325\051\202 +\175\231\364\061\366\161\251\317\054\001\047\245\005\271\252\262 +\110\116\052\357\237\223\122\121\225\074\122\163\216\126\114\027 +\100\300\011\050\344\213\152\110\123\333\354\315\125\125\361\306 +\370\351\242\054\114\246\321\046\137\176\257\132\114\332\037\246 +\362\034\054\176\256\002\026\322\126\320\057\127\123\107\350\222 +END + +# Trust for Certificate "GeoTrust Universal CA 2" +# Issuer: CN=GeoTrust Universal CA 2,O=GeoTrust Inc.,C=US +# Serial Number: 1 (0x1) +# Subject: CN=GeoTrust Universal CA 2,O=GeoTrust Inc.,C=US +# Not Valid Before: Thu Mar 04 05:00:00 2004 +# Not Valid After : Sun Mar 04 05:00:00 2029 +# Fingerprint (MD5): 34:FC:B8:D0:36:DB:9E:14:B3:C2:F2:DB:8F:E4:94:C7 +# Fingerprint (SHA1): 37:9A:19:7B:41:85:45:35:0C:A6:03:69:F3:3C:2E:AF:47:4F:20:79 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Universal CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\067\232\031\173\101\205\105\065\014\246\003\151\363\074\056\257 +\107\117\040\171 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\064\374\270\320\066\333\236\024\263\302\362\333\217\344\224\307 +END +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\040\060\036\006\003\125\004\003 +\023\027\107\145\157\124\162\165\163\164\040\125\156\151\166\145 +\162\163\141\154\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Visa eCommerce Root" +# +# Issuer: CN=Visa eCommerce Root,OU=Visa International Service Association,O=VISA,C=US +# Serial Number:13:86:35:4d:1d:3f:06:f2:c1:f9:65:05:d5:90:1c:62 +# Subject: CN=Visa eCommerce Root,OU=Visa International Service Association,O=VISA,C=US +# Not Valid Before: Wed Jun 26 02:18:36 2002 +# Not Valid After : Fri Jun 24 00:16:12 2022 +# Fingerprint (MD5): FC:11:B8:D8:08:93:30:00:6D:23:F9:7E:EB:52:1E:02 +# Fingerprint (SHA1): 70:17:9B:86:8C:00:A4:FA:60:91:52:22:3F:9F:3E:32:BD:E0:05:62 +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 "Visa eCommerce Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\015\060\013\006\003\125\004\012\023\004\126\111\123\101\061\057 +\060\055\006\003\125\004\013\023\046\126\151\163\141\040\111\156 +\164\145\162\156\141\164\151\157\156\141\154\040\123\145\162\166 +\151\143\145\040\101\163\163\157\143\151\141\164\151\157\156\061 +\034\060\032\006\003\125\004\003\023\023\126\151\163\141\040\145 +\103\157\155\155\145\162\143\145\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\015\060\013\006\003\125\004\012\023\004\126\111\123\101\061\057 +\060\055\006\003\125\004\013\023\046\126\151\163\141\040\111\156 +\164\145\162\156\141\164\151\157\156\141\154\040\123\145\162\166 +\151\143\145\040\101\163\163\157\143\151\141\164\151\157\156\061 +\034\060\032\006\003\125\004\003\023\023\126\151\163\141\040\145 +\103\157\155\155\145\162\143\145\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\023\206\065\115\035\077\006\362\301\371\145\005\325\220 +\034\142 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\242\060\202\002\212\240\003\002\001\002\002\020\023 +\206\065\115\035\077\006\362\301\371\145\005\325\220\034\142\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\153 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\015\060 +\013\006\003\125\004\012\023\004\126\111\123\101\061\057\060\055 +\006\003\125\004\013\023\046\126\151\163\141\040\111\156\164\145 +\162\156\141\164\151\157\156\141\154\040\123\145\162\166\151\143 +\145\040\101\163\163\157\143\151\141\164\151\157\156\061\034\060 +\032\006\003\125\004\003\023\023\126\151\163\141\040\145\103\157 +\155\155\145\162\143\145\040\122\157\157\164\060\036\027\015\060 +\062\060\066\062\066\060\062\061\070\063\066\132\027\015\062\062 +\060\066\062\064\060\060\061\066\061\062\132\060\153\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\015\060\013\006\003 +\125\004\012\023\004\126\111\123\101\061\057\060\055\006\003\125 +\004\013\023\046\126\151\163\141\040\111\156\164\145\162\156\141 +\164\151\157\156\141\154\040\123\145\162\166\151\143\145\040\101 +\163\163\157\143\151\141\164\151\157\156\061\034\060\032\006\003 +\125\004\003\023\023\126\151\163\141\040\145\103\157\155\155\145 +\162\143\145\040\122\157\157\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\257\127\336\126\036\156\241 +\332\140\261\224\047\313\027\333\007\077\200\205\117\310\234\266 +\320\364\157\117\317\231\330\341\333\302\110\134\072\254\071\063 +\307\037\152\213\046\075\053\065\365\110\261\221\301\002\116\004 +\226\221\173\260\063\360\261\024\116\021\157\265\100\257\033\105 +\245\112\357\176\266\254\362\240\037\130\077\022\106\140\074\215 +\241\340\175\317\127\076\063\036\373\107\361\252\025\227\007\125 +\146\245\265\055\056\330\200\131\262\247\015\267\106\354\041\143 +\377\065\253\245\002\317\052\364\114\376\173\365\224\135\204\115 +\250\362\140\217\333\016\045\074\237\163\161\317\224\337\112\352 +\333\337\162\070\214\363\226\275\361\027\274\322\272\073\105\132 +\306\247\366\306\027\213\001\235\374\031\250\052\203\026\270\072 +\110\376\116\076\240\253\006\031\351\123\363\200\023\007\355\055 +\277\077\012\074\125\040\071\054\054\000\151\164\225\112\274\040 +\262\251\171\345\030\211\221\250\334\034\115\357\273\176\067\013 +\135\376\071\245\210\122\214\000\154\354\030\174\101\275\366\213 +\165\167\272\140\235\204\347\376\055\002\003\001\000\001\243\102 +\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\035\006\003\125\035\016\004\026\004\024\025\070 +\203\017\077\054\077\160\063\036\315\106\376\007\214\040\340\327 +\303\267\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\137\361\101\175\174\134\010\271\053\340 +\325\222\107\372\147\134\245\023\303\003\041\233\053\114\211\106 +\317\131\115\311\376\245\100\266\143\315\335\161\050\225\147\021 +\314\044\254\323\104\154\161\256\001\040\153\003\242\217\030\267 +\051\072\175\345\026\140\123\170\074\300\257\025\203\367\217\122 +\063\044\275\144\223\227\356\213\367\333\030\250\155\161\263\367 +\054\027\320\164\045\151\367\376\153\074\224\276\115\113\101\214 +\116\342\163\320\343\220\042\163\103\315\363\357\352\163\316\105 +\212\260\246\111\377\114\175\235\161\210\304\166\035\220\133\035 +\356\375\314\367\356\375\140\245\261\172\026\161\321\026\320\174 +\022\074\154\151\227\333\256\137\071\232\160\057\005\074\031\106 +\004\231\040\066\320\140\156\141\006\273\026\102\214\160\367\060 +\373\340\333\146\243\000\001\275\346\054\332\221\137\240\106\213 +\115\152\234\075\075\335\005\106\376\166\277\240\012\074\344\000 +\346\047\267\377\204\055\336\272\042\047\226\020\161\353\042\355 +\337\337\063\234\317\343\255\256\216\324\216\346\117\121\257\026 +\222\340\134\366\007\017 +END + +# Trust for Certificate "Visa eCommerce Root" +# Issuer: CN=Visa eCommerce Root,OU=Visa International Service Association,O=VISA,C=US +# Serial Number:13:86:35:4d:1d:3f:06:f2:c1:f9:65:05:d5:90:1c:62 +# Subject: CN=Visa eCommerce Root,OU=Visa International Service Association,O=VISA,C=US +# Not Valid Before: Wed Jun 26 02:18:36 2002 +# Not Valid After : Fri Jun 24 00:16:12 2022 +# Fingerprint (MD5): FC:11:B8:D8:08:93:30:00:6D:23:F9:7E:EB:52:1E:02 +# Fingerprint (SHA1): 70:17:9B:86:8C:00:A4:FA:60:91:52:22:3F:9F:3E:32:BD:E0:05:62 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Visa eCommerce Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\160\027\233\206\214\000\244\372\140\221\122\042\077\237\076\062 +\275\340\005\142 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\374\021\270\330\010\223\060\000\155\043\371\176\353\122\036\002 +END +CKA_ISSUER MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\015\060\013\006\003\125\004\012\023\004\126\111\123\101\061\057 +\060\055\006\003\125\004\013\023\046\126\151\163\141\040\111\156 +\164\145\162\156\141\164\151\157\156\141\154\040\123\145\162\166 +\151\143\145\040\101\163\163\157\143\151\141\164\151\157\156\061 +\034\060\032\006\003\125\004\003\023\023\126\151\163\141\040\145 +\103\157\155\155\145\162\143\145\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\023\206\065\115\035\077\006\362\301\371\145\005\325\220 +\034\142 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certum Root CA" +# +# Issuer: CN=Certum CA,O=Unizeto Sp. z o.o.,C=PL +# Serial Number: 65568 (0x10020) +# Subject: CN=Certum CA,O=Unizeto Sp. z o.o.,C=PL +# Not Valid Before: Tue Jun 11 10:46:39 2002 +# Not Valid After : Fri Jun 11 10:46:39 2027 +# Fingerprint (MD5): 2C:8F:9F:66:1D:18:90:B1:47:26:9D:8E:86:82:8C:A9 +# Fingerprint (SHA1): 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18 +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" +# Issuer: CN=Certum CA,O=Unizeto Sp. z o.o.,C=PL +# Serial Number: 65568 (0x10020) +# Subject: CN=Certum CA,O=Unizeto Sp. z o.o.,C=PL +# Not Valid Before: Tue Jun 11 10:46:39 2002 +# Not Valid After : Fri Jun 11 10:46:39 2027 +# Fingerprint (MD5): 2C:8F:9F:66:1D:18:90:B1:47:26:9D:8E:86:82:8C:A9 +# Fingerprint (SHA1): 62:52:DC:40:F7:11:43:A2:2F:DE:9E:F7:34:8E:06:42:51:B1:81:18 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Comodo AAA Services root" +# +# Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number: 1 (0x1) +# Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Jan 01 00:00:00 2004 +# Not Valid After : Sun Dec 31 23:59:59 2028 +# Fingerprint (MD5): 49:79:04:B0:EB:87:19:AC:47:B0:BC:11:51:9B:74:D0 +# Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49 +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" +# Issuer: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number: 1 (0x1) +# Subject: CN=AAA Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Jan 01 00:00:00 2004 +# Not Valid After : Sun Dec 31 23:59:59 2028 +# Fingerprint (MD5): 49:79:04:B0:EB:87:19:AC:47:B0:BC:11:51:9B:74:D0 +# Fingerprint (SHA1): D1:EB:23:A4:6D:17:D6:8F:D9:25:64:C2:F1:F1:60:17:64:D8:E3:49 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Comodo Secure Services root" +# +# Issuer: CN=Secure Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number: 1 (0x1) +# Subject: CN=Secure Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Jan 01 00:00:00 2004 +# Not Valid After : Sun Dec 31 23:59:59 2028 +# Fingerprint (MD5): D3:D9:BD:AE:9F:AC:67:24:B3:C8:1B:52:E1:B9:A9:BD +# Fingerprint (SHA1): 4A:65:D5:F4:1D:EF:39:B8:B8:90:4A:4A:D3:64:81:33:CF:C7:A1:D1 +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" +# Issuer: CN=Secure Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number: 1 (0x1) +# Subject: CN=Secure Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Jan 01 00:00:00 2004 +# Not Valid After : Sun Dec 31 23:59:59 2028 +# Fingerprint (MD5): D3:D9:BD:AE:9F:AC:67:24:B3:C8:1B:52:E1:B9:A9:BD +# Fingerprint (SHA1): 4A:65:D5:F4:1D:EF:39:B8:B8:90:4A:4A:D3:64:81:33:CF:C7:A1:D1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Comodo Trusted Services root" +# +# Issuer: CN=Trusted Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number: 1 (0x1) +# Subject: CN=Trusted Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Jan 01 00:00:00 2004 +# Not Valid After : Sun Dec 31 23:59:59 2028 +# Fingerprint (MD5): 91:1B:3F:6E:CD:9E:AB:EE:07:FE:1F:71:D2:B3:61:27 +# Fingerprint (SHA1): E1:9F:E3:0E:8B:84:60:9E:80:9B:17:0D:72:A8:C5:BA:6E:14:09:BD +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" +# Issuer: CN=Trusted Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number: 1 (0x1) +# Subject: CN=Trusted Certificate Services,O=Comodo CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Jan 01 00:00:00 2004 +# Not Valid After : Sun Dec 31 23:59:59 2028 +# Fingerprint (MD5): 91:1B:3F:6E:CD:9E:AB:EE:07:FE:1F:71:D2:B3:61:27 +# Fingerprint (SHA1): E1:9F:E3:0E:8B:84:60:9E:80:9B:17:0D:72:A8:C5:BA:6E:14:09:BD +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA" +# +# Issuer: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM +# Serial Number: 985026699 (0x3ab6508b) +# Subject: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM +# Not Valid Before: Mon Mar 19 18:33:33 2001 +# Not Valid After : Wed Mar 17 18:33:33 2021 +# Fingerprint (MD5): 27:DE:36:FE:72:B7:00:03:00:9D:F4:F0:1E:6C:04:24 +# Fingerprint (SHA1): DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9 +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" +# Issuer: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM +# Serial Number: 985026699 (0x3ab6508b) +# Subject: CN=QuoVadis Root Certification Authority,OU=Root Certification Authority,O=QuoVadis Limited,C=BM +# Not Valid Before: Mon Mar 19 18:33:33 2001 +# Not Valid After : Wed Mar 17 18:33:33 2021 +# Fingerprint (MD5): 27:DE:36:FE:72:B7:00:03:00:9D:F4:F0:1E:6C:04:24 +# Fingerprint (SHA1): DE:3F:40:BD:50:93:D3:9B:6C:60:F6:DA:BC:07:62:01:00:89:76:C9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 2" +# +# Issuer: CN=QuoVadis Root CA 2,O=QuoVadis Limited,C=BM +# Serial Number: 1289 (0x509) +# Subject: CN=QuoVadis Root CA 2,O=QuoVadis Limited,C=BM +# Not Valid Before: Fri Nov 24 18:27:00 2006 +# Not Valid After : Mon Nov 24 18:23:33 2031 +# Fingerprint (MD5): 5E:39:7B:DD:F8:BA:EC:82:E9:AC:62:BA:0C:54:00:2B +# Fingerprint (SHA1): CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7 +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 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\011 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\267\060\202\003\237\240\003\002\001\002\002\002\005 +\011\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062\060\036\027\015\060\066\061\061\062 +\064\061\070\062\067\060\060\132\027\015\063\061\061\061\062\064 +\061\070\062\063\063\063\132\060\105\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\033\060\031\006\003\125\004\003\023\022\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\101\040\062\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\232 +\030\312\113\224\015\000\055\257\003\051\212\360\017\201\310\256 +\114\031\205\035\010\237\253\051\104\205\363\057\201\255\062\036 +\220\106\277\243\206\046\032\036\376\176\034\030\072\134\234\140 +\027\052\072\164\203\063\060\175\141\124\021\313\355\253\340\346 +\322\242\176\365\153\157\030\267\012\013\055\375\351\076\357\012 +\306\263\020\351\334\302\106\027\370\135\375\244\332\377\236\111 +\132\234\346\063\346\044\226\367\077\272\133\053\034\172\065\302 +\326\147\376\253\146\120\213\155\050\140\053\357\327\140\303\307 +\223\274\215\066\221\363\177\370\333\021\023\304\234\167\166\301 +\256\267\002\152\201\172\251\105\203\342\005\346\271\126\301\224 +\067\217\110\161\143\042\354\027\145\007\225\212\113\337\217\306 +\132\012\345\260\343\137\136\153\021\253\014\371\205\353\104\351 +\370\004\163\362\351\376\134\230\214\365\163\257\153\264\176\315 +\324\134\002\053\114\071\341\262\225\225\055\102\207\327\325\263 +\220\103\267\154\023\361\336\335\366\304\370\211\077\321\165\365 +\222\303\221\325\212\210\320\220\354\334\155\336\211\302\145\161 +\226\213\015\003\375\234\277\133\026\254\222\333\352\376\171\174 +\255\353\257\367\026\313\333\315\045\053\345\037\373\232\237\342 +\121\314\072\123\014\110\346\016\275\311\264\166\006\122\346\021 +\023\205\162\143\003\004\340\004\066\053\040\031\002\350\164\247 +\037\266\311\126\146\360\165\045\334\147\301\016\141\140\210\263 +\076\321\250\374\243\332\035\260\321\261\043\124\337\104\166\155 +\355\101\330\301\262\042\266\123\034\337\065\035\334\241\167\052 +\061\344\055\365\345\345\333\310\340\377\345\200\327\013\143\240 +\377\063\241\017\272\054\025\025\352\227\263\322\242\265\276\362 +\214\226\036\032\217\035\154\244\141\067\271\206\163\063\327\227 +\226\236\043\175\202\244\114\201\342\241\321\272\147\137\225\007 +\243\047\021\356\026\020\173\274\105\112\114\262\004\322\253\357 +\325\375\014\121\316\120\152\010\061\371\221\332\014\217\144\134 +\003\303\072\213\040\077\156\215\147\075\072\326\376\175\133\210 +\311\136\373\314\141\334\213\063\167\323\104\062\065\011\142\004 +\222\026\020\330\236\047\107\373\073\041\343\370\353\035\133\002 +\003\001\000\001\243\201\260\060\201\255\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\013\006\003\125 +\035\017\004\004\003\002\001\006\060\035\006\003\125\035\016\004 +\026\004\024\032\204\142\274\110\114\063\045\004\324\356\320\366 +\003\304\031\106\321\224\153\060\156\006\003\125\035\043\004\147 +\060\145\200\024\032\204\142\274\110\114\063\045\004\324\356\320 +\366\003\304\031\106\321\224\153\241\111\244\107\060\105\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\033\060\031\006\003\125\004\003\023 +\022\121\165\157\126\141\144\151\163\040\122\157\157\164\040\103 +\101\040\062\202\002\005\011\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\002\001\000\076\012\026\115\237 +\006\133\250\256\161\135\057\005\057\147\346\023\105\203\304\066 +\366\363\300\046\014\015\265\107\144\135\370\264\162\311\106\245 +\003\030\047\125\211\170\175\166\352\226\064\200\027\040\334\347 +\203\370\215\374\007\270\332\137\115\056\147\262\204\375\331\104 +\374\167\120\201\346\174\264\311\015\013\162\123\370\166\007\007 +\101\107\226\014\373\340\202\046\223\125\214\376\042\037\140\145 +\174\137\347\046\263\367\062\220\230\120\324\067\161\125\366\222 +\041\170\367\225\171\372\370\055\046\207\146\126\060\167\246\067 +\170\063\122\020\130\256\077\141\216\362\152\261\357\030\176\112 +\131\143\312\215\242\126\325\247\057\274\126\037\317\071\301\342 +\373\012\250\025\054\175\115\172\143\306\154\227\104\074\322\157 +\303\112\027\012\370\220\322\127\242\031\121\245\055\227\101\332 +\007\117\251\120\332\220\215\224\106\341\076\360\224\375\020\000 +\070\365\073\350\100\341\264\156\126\032\040\314\157\130\215\355 +\056\105\217\326\351\223\077\347\261\054\337\072\326\042\214\334 +\204\273\042\157\320\370\344\306\071\351\004\210\074\303\272\353 +\125\172\155\200\231\044\365\154\001\373\370\227\260\224\133\353 +\375\322\157\361\167\150\015\065\144\043\254\270\125\241\003\321 +\115\102\031\334\370\165\131\126\243\371\250\111\171\370\257\016 +\271\021\240\174\267\152\355\064\320\266\046\142\070\032\207\014 +\370\350\375\056\323\220\177\007\221\052\035\326\176\134\205\203 +\231\260\070\010\077\351\136\371\065\007\344\311\142\156\127\177 +\247\120\225\367\272\310\233\346\216\242\001\305\326\146\277\171 +\141\363\074\034\341\271\202\134\135\240\303\351\330\110\275\031 +\242\021\024\031\156\262\206\033\150\076\110\067\032\210\267\135 +\226\136\234\307\357\047\142\010\342\221\031\134\322\361\041\335 +\272\027\102\202\227\161\201\123\061\251\237\366\175\142\277\162 +\341\243\223\035\314\212\046\132\011\070\320\316\327\015\200\026 +\264\170\245\072\207\114\215\212\245\325\106\227\362\054\020\271 +\274\124\042\300\001\120\151\103\236\364\262\357\155\370\354\332 +\361\343\261\357\337\221\217\124\052\013\045\301\046\031\304\122 +\020\005\145\325\202\020\352\302\061\315\056 +END + +# Trust for Certificate "QuoVadis Root CA 2" +# Issuer: CN=QuoVadis Root CA 2,O=QuoVadis Limited,C=BM +# Serial Number: 1289 (0x509) +# Subject: CN=QuoVadis Root CA 2,O=QuoVadis Limited,C=BM +# Not Valid Before: Fri Nov 24 18:27:00 2006 +# Not Valid After : Mon Nov 24 18:23:33 2031 +# Fingerprint (MD5): 5E:39:7B:DD:F8:BA:EC:82:E9:AC:62:BA:0C:54:00:2B +# Fingerprint (SHA1): CA:3A:FB:CF:12:40:36:4B:44:B2:16:20:88:80:48:39:19:93:7C:F7 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\312\072\373\317\022\100\066\113\104\262\026\040\210\200\110\071 +\031\223\174\367 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\136\071\173\335\370\272\354\202\351\254\142\272\014\124\000\053 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\011 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 3" +# +# Issuer: CN=QuoVadis Root CA 3,O=QuoVadis Limited,C=BM +# Serial Number: 1478 (0x5c6) +# Subject: CN=QuoVadis Root CA 3,O=QuoVadis Limited,C=BM +# Not Valid Before: Fri Nov 24 19:11:23 2006 +# Not Valid After : Mon Nov 24 19:06:44 2031 +# Fingerprint (MD5): 31:85:3C:62:94:97:63:B9:AA:FD:89:4E:AF:6F:E0:CF +# Fingerprint (SHA1): 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85 +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 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\306 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\235\060\202\004\205\240\003\002\001\002\002\002\005 +\306\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063\060\036\027\015\060\066\061\061\062 +\064\061\071\061\061\062\063\132\027\015\063\061\061\061\062\064 +\061\071\060\066\064\064\132\060\105\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\033\060\031\006\003\125\004\003\023\022\121\165\157\126 +\141\144\151\163\040\122\157\157\164\040\103\101\040\063\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\314 +\127\102\026\124\234\346\230\323\323\115\356\376\355\307\237\103 +\071\112\145\263\350\026\210\064\333\015\131\221\164\317\222\270 +\004\100\255\002\113\061\253\274\215\221\150\330\040\016\032\001 +\342\032\173\116\027\135\342\212\267\077\231\032\315\353\141\253 +\302\145\246\037\267\267\275\267\217\374\375\160\217\013\240\147 +\276\001\242\131\317\161\346\017\051\166\377\261\126\171\105\053 +\037\236\172\124\350\243\051\065\150\244\001\117\017\244\056\067 +\357\033\277\343\217\020\250\162\253\130\127\347\124\206\310\311 +\363\133\332\054\332\135\216\156\074\243\076\332\373\202\345\335 +\362\134\262\005\063\157\212\066\316\320\023\116\377\277\112\014 +\064\114\246\303\041\275\120\004\125\353\261\273\235\373\105\036 +\144\025\336\125\001\214\002\166\265\313\241\077\102\151\274\057 +\275\150\103\026\126\211\052\067\141\221\375\246\256\116\300\313 +\024\145\224\067\113\222\006\357\004\320\310\234\210\333\013\173 +\201\257\261\075\052\304\145\072\170\266\356\334\200\261\322\323 +\231\234\072\356\153\132\153\263\215\267\325\316\234\302\276\245 +\113\057\026\261\236\150\073\006\157\256\175\237\370\336\354\314 +\051\247\230\243\045\103\057\357\361\137\046\341\210\115\370\136 +\156\327\331\024\156\031\063\151\247\073\204\211\223\304\123\125 +\023\241\121\170\100\370\270\311\242\356\173\272\122\102\203\236 +\024\355\005\122\132\131\126\247\227\374\235\077\012\051\330\334 +\117\221\016\023\274\336\225\244\337\213\231\276\254\233\063\210 +\357\265\201\257\033\306\042\123\310\366\307\356\227\024\260\305 +\174\170\122\310\360\316\156\167\140\204\246\351\052\166\040\355 +\130\001\027\060\223\351\032\213\340\163\143\331\152\222\224\111 +\116\264\255\112\205\304\243\042\060\374\011\355\150\042\163\246 +\210\014\125\041\130\305\341\072\237\052\335\312\341\220\340\331 +\163\253\154\200\270\350\013\144\223\240\234\214\031\377\263\322 +\014\354\221\046\207\212\263\242\341\160\217\054\012\345\315\155 +\150\121\353\332\077\005\177\213\062\346\023\134\153\376\137\100 +\342\042\310\264\264\144\117\326\272\175\110\076\250\151\014\327 +\273\206\161\311\163\270\077\073\235\045\113\332\377\100\353\002 +\003\001\000\001\243\202\001\225\060\202\001\221\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\201\341 +\006\003\125\035\040\004\201\331\060\201\326\060\201\323\006\011 +\053\006\001\004\001\276\130\000\003\060\201\305\060\201\223\006 +\010\053\006\001\005\005\007\002\002\060\201\206\032\201\203\101 +\156\171\040\165\163\145\040\157\146\040\164\150\151\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\143\157\156\163\164 +\151\164\165\164\145\163\040\141\143\143\145\160\164\141\156\143 +\145\040\157\146\040\164\150\145\040\121\165\157\126\141\144\151 +\163\040\122\157\157\164\040\103\101\040\063\040\103\145\162\164 +\151\146\151\143\141\164\145\040\120\157\154\151\143\171\040\057 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\120 +\162\141\143\164\151\143\145\040\123\164\141\164\145\155\145\156 +\164\056\060\055\006\010\053\006\001\005\005\007\002\001\026\041 +\150\164\164\160\072\057\057\167\167\167\056\161\165\157\166\141 +\144\151\163\147\154\157\142\141\154\056\143\157\155\057\143\160 +\163\060\013\006\003\125\035\017\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\362\300\023\340\202\103\076 +\373\356\057\147\062\226\065\134\333\270\313\002\320\060\156\006 +\003\125\035\043\004\147\060\145\200\024\362\300\023\340\202\103 +\076\373\356\057\147\062\226\065\134\333\270\313\002\320\241\111 +\244\107\060\105\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\033\060\031 +\006\003\125\004\003\023\022\121\165\157\126\141\144\151\163\040 +\122\157\157\164\040\103\101\040\063\202\002\005\306\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001 +\000\117\255\240\054\114\372\300\362\157\367\146\125\253\043\064 +\356\347\051\332\303\133\266\260\203\331\320\320\342\041\373\363 +\140\247\073\135\140\123\047\242\233\366\010\042\052\347\277\240 +\162\345\234\044\152\061\261\220\172\047\333\204\021\211\047\246 +\167\132\070\327\277\254\206\374\356\135\203\274\006\306\321\167 +\153\017\155\044\057\113\172\154\247\007\226\312\343\204\237\255 +\210\213\035\253\026\215\133\146\027\331\026\364\213\200\322\335 +\370\262\166\303\374\070\023\252\014\336\102\151\053\156\363\074 +\353\200\047\333\365\246\104\015\237\132\125\131\013\325\015\122 +\110\305\256\237\362\057\200\305\352\062\120\065\022\227\056\301 +\341\377\361\043\210\121\070\237\362\146\126\166\347\017\121\227 +\245\122\014\115\111\121\225\066\075\277\242\113\014\020\035\206 +\231\114\252\363\162\021\223\344\352\366\233\332\250\135\247\115 +\267\236\002\256\163\000\310\332\043\003\350\371\352\031\164\142 +\000\224\313\042\040\276\224\247\131\265\202\152\276\231\171\172 +\251\362\112\044\122\367\164\375\272\116\346\250\035\002\156\261 +\015\200\104\301\256\323\043\067\137\273\205\174\053\222\056\350 +\176\245\213\335\231\341\277\047\157\055\135\252\173\207\376\012 +\335\113\374\216\365\046\344\156\160\102\156\063\354\061\236\173 +\223\301\344\311\151\032\075\300\153\116\042\155\356\253\130\115 +\306\320\101\301\053\352\117\022\207\136\353\105\330\154\365\230 +\002\323\240\330\125\212\006\231\031\242\240\167\321\060\236\254 +\314\165\356\203\365\260\142\071\317\154\127\342\114\322\221\013 +\016\165\050\033\232\277\375\032\103\361\312\167\373\073\217\141 +\270\151\050\026\102\004\136\160\052\034\041\330\217\341\275\043 +\133\055\164\100\222\331\143\031\015\163\335\151\274\142\107\274 +\340\164\053\262\353\175\276\101\033\265\300\106\305\241\042\313 +\137\116\301\050\222\336\030\272\325\052\050\273\021\213\027\223 +\230\231\140\224\134\043\317\132\047\227\136\013\005\006\223\067 +\036\073\151\066\353\251\236\141\035\217\062\332\216\014\326\164 +\076\173\011\044\332\001\167\107\304\073\315\064\214\231\365\312 +\341\045\141\063\262\131\033\342\156\327\067\127\266\015\251\022 +\332 +END + +# Trust for Certificate "QuoVadis Root CA 3" +# Issuer: CN=QuoVadis Root CA 3,O=QuoVadis Limited,C=BM +# Serial Number: 1478 (0x5c6) +# Subject: CN=QuoVadis Root CA 3,O=QuoVadis Limited,C=BM +# Not Valid Before: Fri Nov 24 19:11:23 2006 +# Not Valid After : Mon Nov 24 19:06:44 2031 +# Fingerprint (MD5): 31:85:3C:62:94:97:63:B9:AA:FD:89:4E:AF:6F:E0:CF +# Fingerprint (SHA1): 1F:49:14:F7:D8:74:95:1D:DD:AE:02:C0:BE:FD:3A:2D:82:75:51:85 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\037\111\024\367\330\164\225\035\335\256\002\300\276\375\072\055 +\202\165\121\205 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\061\205\074\142\224\227\143\271\252\375\211\116\257\157\340\317 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\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\033\060\031\006\003 +\125\004\003\023\022\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\005\306 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Security Communication Root CA" +# +# Issuer: OU=Security Communication RootCA1,O=SECOM Trust.net,C=JP +# Serial Number: 0 (0x0) +# Subject: OU=Security Communication RootCA1,O=SECOM Trust.net,C=JP +# Not Valid Before: Tue Sep 30 04:20:49 2003 +# Not Valid After : Sat Sep 30 04:20:49 2023 +# Fingerprint (MD5): F1:BC:63:6A:54:E0:B5:27:F5:CD:E7:1A:E3:4D:6E:4A +# Fingerprint (SHA1): 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7 +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" +# Issuer: OU=Security Communication RootCA1,O=SECOM Trust.net,C=JP +# Serial Number: 0 (0x0) +# Subject: OU=Security Communication RootCA1,O=SECOM Trust.net,C=JP +# Not Valid Before: Tue Sep 30 04:20:49 2003 +# Not Valid After : Sat Sep 30 04:20:49 2023 +# Fingerprint (MD5): F1:BC:63:6A:54:E0:B5:27:F5:CD:E7:1A:E3:4D:6E:4A +# Fingerprint (SHA1): 36:B1:2B:49:F9:81:9E:D7:4C:9E:BC:38:0F:C6:56:8F:5D:AC:B2:F7 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Sonera Class 2 Root CA" +# +# Issuer: CN=Sonera Class2 CA,O=Sonera,C=FI +# Serial Number: 29 (0x1d) +# Subject: CN=Sonera Class2 CA,O=Sonera,C=FI +# Not Valid Before: Fri Apr 06 07:29:40 2001 +# Not Valid After : Tue Apr 06 07:29:40 2021 +# Fingerprint (MD5): A3:EC:75:0F:2E:88:DF:FA:48:01:4E:0B:5C:48:6F:FB +# Fingerprint (SHA1): 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27 +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" +# Issuer: CN=Sonera Class2 CA,O=Sonera,C=FI +# Serial Number: 29 (0x1d) +# Subject: CN=Sonera Class2 CA,O=Sonera,C=FI +# Not Valid Before: Fri Apr 06 07:29:40 2001 +# Not Valid After : Tue Apr 06 07:29:40 2021 +# Fingerprint (MD5): A3:EC:75:0F:2E:88:DF:FA:48:01:4E:0B:5C:48:6F:FB +# Fingerprint (SHA1): 37:F7:6D:E6:07:7C:90:C5:B1:3E:93:1A:B7:41:10:B4:F2:E4:9A:27 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN USERFirst Email Root CA" +# +# Issuer: CN=UTN-USERFirst-Client Authentication and Email,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:44:be:0c:8b:50:00:24:b4:11:d3:36:25:25:67:c9:89 +# Subject: CN=UTN-USERFirst-Client Authentication and Email,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Not Valid Before: Fri Jul 09 17:28:50 1999 +# Not Valid After : Tue Jul 09 17:36:58 2019 +# Fingerprint (MD5): D7:34:3D:EF:1D:27:09:28:E1:31:02:5B:13:2B:DD:F7 +# Fingerprint (SHA1): B1:72:B1:A5:6D:95:F9:1F:E5:02:87:E1:4D:37:EA:6A:44:63:76:8A +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" +# Issuer: CN=UTN-USERFirst-Client Authentication and Email,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:44:be:0c:8b:50:00:24:b4:11:d3:36:25:25:67:c9:89 +# Subject: CN=UTN-USERFirst-Client Authentication and Email,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Not Valid Before: Fri Jul 09 17:28:50 1999 +# Not Valid After : Tue Jul 09 17:36:58 2019 +# Fingerprint (MD5): D7:34:3D:EF:1D:27:09:28:E1:31:02:5B:13:2B:DD:F7 +# Fingerprint (SHA1): B1:72:B1:A5:6D:95:F9:1F:E5:02:87:E1:4D:37:EA:6A:44:63:76:8A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN USERFirst Hardware Root CA" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:44:be:0c:8b:50:00:24:b4:11:d3:36:2a:fe:65:0a:fd +# Subject: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Not Valid Before: Fri Jul 09 18:10:42 1999 +# Not Valid After : Tue Jul 09 18:19:22 2019 +# Fingerprint (MD5): 4C:56:41:E5:0D:BB:2B:E8:CA:A3:ED:18:08:AD:43:39 +# Fingerprint (SHA1): 04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7 +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" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:44:be:0c:8b:50:00:24:b4:11:d3:36:2a:fe:65:0a:fd +# Subject: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Not Valid Before: Fri Jul 09 18:10:42 1999 +# Not Valid After : Tue Jul 09 18:19:22 2019 +# Fingerprint (MD5): 4C:56:41:E5:0D:BB:2B:E8:CA:A3:ED:18:08:AD:43:39 +# Fingerprint (SHA1): 04:83:ED:33:99:AC:36:08:05:87:22:ED:BC:5E:46:00:E3:BE:F9:D7 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "UTN USERFirst Object Root CA" +# +# Issuer: CN=UTN-USERFirst-Object,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:44:be:0c:8b:50:00:24:b4:11:d3:36:2d:e0:b3:5f:1b +# Subject: CN=UTN-USERFirst-Object,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Not Valid Before: Fri Jul 09 18:31:20 1999 +# Not Valid After : Tue Jul 09 18:40:36 2019 +# Fingerprint (MD5): A7:F2:E4:16:06:41:11:50:30:6B:9C:E3:B4:9C:B0:C9 +# Fingerprint (SHA1): E1:2D:FB:4B:41:D7:D9:C3:2B:30:51:4B:AC:1D:81:D8:38:5E:2D:46 +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" +# Issuer: CN=UTN-USERFirst-Object,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:44:be:0c:8b:50:00:24:b4:11:d3:36:2d:e0:b3:5f:1b +# Subject: CN=UTN-USERFirst-Object,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Not Valid Before: Fri Jul 09 18:31:20 1999 +# Not Valid After : Tue Jul 09 18:40:36 2019 +# Fingerprint (MD5): A7:F2:E4:16:06:41:11:50:30:6B:9C:E3:B4:9C:B0:C9 +# Fingerprint (SHA1): E1:2D:FB:4B:41:D7:D9:C3:2B:30:51:4B:AC:1D:81:D8:38:5E:2D:46 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Camerfirma Chambers of Commerce Root" +# +# Issuer: CN=Chambers of Commerce Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Serial Number: 0 (0x0) +# Subject: CN=Chambers of Commerce Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Not Valid Before: Tue Sep 30 16:13:43 2003 +# Not Valid After : Wed Sep 30 16:13:44 2037 +# Fingerprint (MD5): B0:01:EE:14:D9:AF:29:18:94:76:8E:F1:69:33:2A:84 +# Fingerprint (SHA1): 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1 +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 "Camerfirma Chambers of Commerce 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\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\275\060\202\003\245\240\003\002\001\002\002\001\000 +\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\105\125\061\047 +\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155\145 +\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101\070 +\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004\013 +\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060\040 +\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163\040 +\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157\164 +\060\036\027\015\060\063\060\071\063\060\061\066\061\063\064\063 +\132\027\015\063\067\060\071\063\060\061\066\061\063\064\064\132 +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164\060\202\001\040\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\001\015\000\060\202\001\010\002\202\001 +\001\000\267\066\125\345\245\135\030\060\340\332\211\124\221\374 +\310\307\122\370\057\120\331\357\261\165\163\145\107\175\033\133 +\272\165\305\374\241\210\044\372\057\355\312\010\112\071\124\304 +\121\172\265\332\140\352\070\074\201\262\313\361\273\331\221\043 +\077\110\001\160\165\251\005\052\255\037\161\363\311\124\075\035 +\006\152\100\076\263\014\205\356\134\033\171\302\142\304\270\066 +\216\065\135\001\014\043\004\107\065\252\233\140\116\240\146\075 +\313\046\012\234\100\241\364\135\230\277\161\253\245\000\150\052 +\355\203\172\017\242\024\265\324\042\263\200\260\074\014\132\121 +\151\055\130\030\217\355\231\236\361\256\342\225\346\366\107\250 +\326\014\017\260\130\130\333\303\146\067\236\233\221\124\063\067 +\322\224\034\152\110\311\311\362\245\332\245\014\043\367\043\016 +\234\062\125\136\161\234\204\005\121\232\055\375\346\116\052\064 +\132\336\312\100\067\147\014\124\041\125\167\332\012\014\314\227 +\256\200\334\224\066\112\364\076\316\066\023\036\123\344\254\116 +\072\005\354\333\256\162\234\070\213\320\071\073\211\012\076\167 +\376\165\002\001\003\243\202\001\104\060\202\001\100\060\022\006 +\003\125\035\023\001\001\377\004\010\060\006\001\001\377\002\001 +\014\060\074\006\003\125\035\037\004\065\060\063\060\061\240\057 +\240\055\206\053\150\164\164\160\072\057\057\143\162\154\056\143 +\150\141\155\142\145\162\163\151\147\156\056\157\162\147\057\143 +\150\141\155\142\145\162\163\162\157\157\164\056\143\162\154\060 +\035\006\003\125\035\016\004\026\004\024\343\224\365\261\115\351 +\333\241\051\133\127\213\115\166\006\166\341\321\242\212\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\021 +\006\011\140\206\110\001\206\370\102\001\001\004\004\003\002\000 +\007\060\047\006\003\125\035\021\004\040\060\036\201\034\143\150 +\141\155\142\145\162\163\162\157\157\164\100\143\150\141\155\142 +\145\162\163\151\147\156\056\157\162\147\060\047\006\003\125\035 +\022\004\040\060\036\201\034\143\150\141\155\142\145\162\163\162 +\157\157\164\100\143\150\141\155\142\145\162\163\151\147\156\056 +\157\162\147\060\130\006\003\125\035\040\004\121\060\117\060\115 +\006\013\053\006\001\004\001\201\207\056\012\003\001\060\076\060 +\074\006\010\053\006\001\005\005\007\002\001\026\060\150\164\164 +\160\072\057\057\143\160\163\056\143\150\141\155\142\145\162\163 +\151\147\156\056\157\162\147\057\143\160\163\057\143\150\141\155 +\142\145\162\163\162\157\157\164\056\150\164\155\154\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\014\101\227\302\032\206\300\042\174\237\373\220\363\032\321 +\003\261\357\023\371\041\137\004\234\332\311\245\215\047\154\226 +\207\221\276\101\220\001\162\223\347\036\175\137\366\211\306\135 +\247\100\011\075\254\111\105\105\334\056\215\060\150\262\011\272 +\373\303\057\314\272\013\337\077\167\173\106\175\072\022\044\216 +\226\217\074\005\012\157\322\224\050\035\155\014\300\056\210\042 +\325\330\317\035\023\307\360\110\327\327\005\247\317\307\107\236 +\073\074\064\310\200\117\324\024\273\374\015\120\367\372\263\354 +\102\137\251\335\155\310\364\165\317\173\301\162\046\261\001\034 +\134\054\375\172\116\264\001\305\005\127\271\347\074\252\005\331 +\210\351\007\106\101\316\357\101\201\256\130\337\203\242\256\312 +\327\167\037\347\000\074\235\157\216\344\062\011\035\115\170\064 +\170\064\074\224\233\046\355\117\161\306\031\172\275\040\042\110 +\132\376\113\175\003\267\347\130\276\306\062\116\164\036\150\335 +\250\150\133\263\076\356\142\175\331\200\350\012\165\172\267\356 +\264\145\232\041\220\340\252\320\230\274\070\265\163\074\213\370 +\334 +END + +# Trust for Certificate "Camerfirma Chambers of Commerce Root" +# Issuer: CN=Chambers of Commerce Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Serial Number: 0 (0x0) +# Subject: CN=Chambers of Commerce Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Not Valid Before: Tue Sep 30 16:13:43 2003 +# Not Valid After : Wed Sep 30 16:13:44 2037 +# Fingerprint (MD5): B0:01:EE:14:D9:AF:29:18:94:76:8E:F1:69:33:2A:84 +# Fingerprint (SHA1): 6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Camerfirma Chambers of Commerce Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\156\072\125\244\031\014\031\134\223\204\074\300\333\162\056\061 +\060\141\360\261 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\260\001\356\024\331\257\051\030\224\166\216\361\151\063\052\204 +END +CKA_ISSUER MULTILINE_OCTAL +\060\177\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\042\060 +\040\006\003\125\004\003\023\031\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Camerfirma Global Chambersign Root" +# +# Issuer: CN=Global Chambersign Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Serial Number: 0 (0x0) +# Subject: CN=Global Chambersign Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Not Valid Before: Tue Sep 30 16:14:18 2003 +# Not Valid After : Wed Sep 30 16:14:18 2037 +# Fingerprint (MD5): C5:E6:7B:BF:06:D0:4F:43:ED:C4:7A:65:8A:FB:6B:19 +# Fingerprint (SHA1): 33:9B:6B:14:50:24:9B:55:7A:01:87:72:84:D9:E0:2F:C3:D2:D8:E9 +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 "Camerfirma Global Chambersign Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060 +\036\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060 +\036\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\305\060\202\003\255\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061\047 +\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155\145 +\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101\070 +\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004\013 +\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060\036 +\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103\150 +\141\155\142\145\162\163\151\147\156\040\122\157\157\164\060\036 +\027\015\060\063\060\071\063\060\061\066\061\064\061\070\132\027 +\015\063\067\060\071\063\060\061\066\061\064\061\070\132\060\175 +\061\013\060\011\006\003\125\004\006\023\002\105\125\061\047\060 +\045\006\003\125\004\012\023\036\101\103\040\103\141\155\145\162 +\146\151\162\155\141\040\123\101\040\103\111\106\040\101\070\062 +\067\064\063\062\070\067\061\043\060\041\006\003\125\004\013\023 +\032\150\164\164\160\072\057\057\167\167\167\056\143\150\141\155 +\142\145\162\163\151\147\156\056\157\162\147\061\040\060\036\006 +\003\125\004\003\023\027\107\154\157\142\141\154\040\103\150\141 +\155\142\145\162\163\151\147\156\040\122\157\157\164\060\202\001 +\040\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\015\000\060\202\001\010\002\202\001\001\000\242\160 +\242\320\237\102\256\133\027\307\330\175\317\024\203\374\117\311 +\241\267\023\257\212\327\236\076\004\012\222\213\140\126\372\264 +\062\057\210\115\241\140\010\364\267\011\116\240\111\057\111\326 +\323\337\235\227\132\237\224\004\160\354\077\131\331\267\314\146 +\213\230\122\050\011\002\337\305\057\204\215\172\227\167\277\354 +\100\235\045\162\253\265\077\062\230\373\267\267\374\162\204\345 +\065\207\371\125\372\243\037\016\157\056\050\335\151\240\331\102 +\020\306\370\265\104\302\320\103\177\333\274\344\242\074\152\125 +\170\012\167\251\330\352\031\062\267\057\376\134\077\033\356\261 +\230\354\312\255\172\151\105\343\226\017\125\366\346\355\165\352 +\145\350\062\126\223\106\211\250\045\212\145\006\356\153\277\171 +\007\320\361\267\257\355\054\115\222\273\300\250\137\247\147\175 +\004\362\025\010\160\254\222\326\175\004\322\063\373\114\266\013 +\013\373\032\311\304\215\003\251\176\134\362\120\253\022\245\241 +\317\110\120\245\357\322\310\032\023\372\260\177\261\202\034\167 +\152\017\137\334\013\225\217\357\103\176\346\105\011\045\002\001 +\003\243\202\001\120\060\202\001\114\060\022\006\003\125\035\023 +\001\001\377\004\010\060\006\001\001\377\002\001\014\060\077\006 +\003\125\035\037\004\070\060\066\060\064\240\062\240\060\206\056 +\150\164\164\160\072\057\057\143\162\154\056\143\150\141\155\142 +\145\162\163\151\147\156\056\157\162\147\057\143\150\141\155\142 +\145\162\163\151\147\156\162\157\157\164\056\143\162\154\060\035 +\006\003\125\035\016\004\026\004\024\103\234\066\237\260\236\060 +\115\306\316\137\255\020\253\345\003\245\372\251\024\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\021\006 +\011\140\206\110\001\206\370\102\001\001\004\004\003\002\000\007 +\060\052\006\003\125\035\021\004\043\060\041\201\037\143\150\141 +\155\142\145\162\163\151\147\156\162\157\157\164\100\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\060\052\006\003 +\125\035\022\004\043\060\041\201\037\143\150\141\155\142\145\162 +\163\151\147\156\162\157\157\164\100\143\150\141\155\142\145\162 +\163\151\147\156\056\157\162\147\060\133\006\003\125\035\040\004 +\124\060\122\060\120\006\013\053\006\001\004\001\201\207\056\012 +\001\001\060\101\060\077\006\010\053\006\001\005\005\007\002\001 +\026\063\150\164\164\160\072\057\057\143\160\163\056\143\150\141 +\155\142\145\162\163\151\147\156\056\157\162\147\057\143\160\163 +\057\143\150\141\155\142\145\162\163\151\147\156\162\157\157\164 +\056\150\164\155\154\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\074\073\160\221\371\004\124 +\047\221\341\355\355\376\150\177\141\135\345\101\145\117\062\361 +\030\005\224\152\034\336\037\160\333\076\173\062\002\064\265\014 +\154\241\212\174\245\364\217\377\324\330\255\027\325\055\004\321 +\077\130\200\342\201\131\210\276\300\343\106\223\044\376\220\275 +\046\242\060\055\350\227\046\127\065\211\164\226\030\366\025\342 +\257\044\031\126\002\002\262\272\017\024\352\306\212\146\301\206 +\105\125\213\276\222\276\234\244\004\307\111\074\236\350\051\172 +\211\327\376\257\377\150\365\245\027\220\275\254\231\314\245\206 +\127\011\147\106\333\326\026\302\106\361\344\251\120\365\217\321 +\222\025\323\137\076\306\000\111\072\156\130\262\321\321\047\015 +\045\310\062\370\040\021\315\175\062\063\110\224\124\114\335\334 +\171\304\060\237\353\216\270\125\265\327\210\134\305\152\044\075 +\262\323\005\003\121\306\007\357\314\024\162\164\075\156\162\316 +\030\050\214\112\240\167\345\011\053\105\104\107\254\267\147\177 +\001\212\005\132\223\276\241\301\377\370\347\016\147\244\107\111 +\166\135\165\220\032\365\046\217\360 +END + +# Trust for Certificate "Camerfirma Global Chambersign Root" +# Issuer: CN=Global Chambersign Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Serial Number: 0 (0x0) +# Subject: CN=Global Chambersign Root,OU=http://www.chambersign.org,O=AC Camerfirma SA CIF A82743287,C=EU +# Not Valid Before: Tue Sep 30 16:14:18 2003 +# Not Valid After : Wed Sep 30 16:14:18 2037 +# Fingerprint (MD5): C5:E6:7B:BF:06:D0:4F:43:ED:C4:7A:65:8A:FB:6B:19 +# Fingerprint (SHA1): 33:9B:6B:14:50:24:9B:55:7A:01:87:72:84:D9:E0:2F:C3:D2:D8:E9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Camerfirma Global Chambersign Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\063\233\153\024\120\044\233\125\172\001\207\162\204\331\340\057 +\303\322\330\351 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\346\173\277\006\320\117\103\355\304\172\145\212\373\153\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\105\125\061 +\047\060\045\006\003\125\004\012\023\036\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\101\040\103\111\106\040\101 +\070\062\067\064\063\062\070\067\061\043\060\041\006\003\125\004 +\013\023\032\150\164\164\160\072\057\057\167\167\167\056\143\150 +\141\155\142\145\162\163\151\147\156\056\157\162\147\061\040\060 +\036\006\003\125\004\003\023\027\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "XRamp Global CA Root" +# +# Issuer: CN=XRamp Global Certification Authority,O=XRamp Security Services Inc,OU=www.xrampsecurity.com,C=US +# Serial Number:50:94:6c:ec:18:ea:d5:9c:4d:d5:97:ef:75:8f:a0:ad +# Subject: CN=XRamp Global Certification Authority,O=XRamp Security Services Inc,OU=www.xrampsecurity.com,C=US +# Not Valid Before: Mon Nov 01 17:14:04 2004 +# Not Valid After : Mon Jan 01 05:37:19 2035 +# Fingerprint (MD5): A1:0B:44:B3:CA:10:D8:00:6E:9D:0F:D8:0F:92:0A:D1 +# Fingerprint (SHA1): B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6 +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 "XRamp Global CA Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 +\162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 +\061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 +\040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 +\145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 +\044\130\122\141\155\160\040\107\154\157\142\141\154\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\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 +\162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 +\061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 +\040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 +\145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 +\044\130\122\141\155\160\040\107\154\157\142\141\154\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\020\120\224\154\354\030\352\325\234\115\325\227\357\165\217 +\240\255 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\060\060\202\003\030\240\003\002\001\002\002\020\120 +\224\154\354\030\352\325\234\115\325\227\357\165\217\240\255\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\202\061\013\060\011\006\003\125\004\006\023\002\125\123\061\036 +\060\034\006\003\125\004\013\023\025\167\167\167\056\170\162\141 +\155\160\163\145\143\165\162\151\164\171\056\143\157\155\061\044 +\060\042\006\003\125\004\012\023\033\130\122\141\155\160\040\123 +\145\143\165\162\151\164\171\040\123\145\162\166\151\143\145\163 +\040\111\156\143\061\055\060\053\006\003\125\004\003\023\044\130 +\122\141\155\160\040\107\154\157\142\141\154\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\064\061\061\060\061\061\067\061 +\064\060\064\132\027\015\063\065\060\061\060\061\060\065\063\067 +\061\071\132\060\201\202\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\036\060\034\006\003\125\004\013\023\025\167\167 +\167\056\170\162\141\155\160\163\145\143\165\162\151\164\171\056 +\143\157\155\061\044\060\042\006\003\125\004\012\023\033\130\122 +\141\155\160\040\123\145\143\165\162\151\164\171\040\123\145\162 +\166\151\143\145\163\040\111\156\143\061\055\060\053\006\003\125 +\004\003\023\044\130\122\141\155\160\040\107\154\157\142\141\154 +\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\230\044\036\275\025\264\272 +\337\307\214\245\047\266\070\013\151\363\266\116\250\054\056\041 +\035\134\104\337\041\135\176\043\164\376\136\176\264\112\267\246 +\255\037\256\340\006\026\342\233\133\331\147\164\153\135\200\217 +\051\235\206\033\331\234\015\230\155\166\020\050\130\344\145\260 +\177\112\230\171\237\340\303\061\176\200\053\265\214\300\100\073 +\021\206\320\313\242\206\066\140\244\325\060\202\155\331\156\320 +\017\022\004\063\227\137\117\141\132\360\344\371\221\253\347\035 +\073\274\350\317\364\153\055\064\174\342\110\141\034\216\363\141 +\104\314\157\240\112\251\224\260\115\332\347\251\064\172\162\070 +\250\101\314\074\224\021\175\353\310\246\214\267\206\313\312\063 +\073\331\075\067\213\373\172\076\206\054\347\163\327\012\127\254 +\144\233\031\353\364\017\004\010\212\254\003\027\031\144\364\132 +\045\042\215\064\054\262\366\150\035\022\155\323\212\036\024\332 +\304\217\246\342\043\205\325\172\015\275\152\340\351\354\354\027 +\273\102\033\147\252\045\355\105\203\041\374\301\311\174\325\142 +\076\372\362\305\055\323\375\324\145\002\003\001\000\001\243\201 +\237\060\201\234\060\023\006\011\053\006\001\004\001\202\067\024 +\002\004\006\036\004\000\103\000\101\060\013\006\003\125\035\017 +\004\004\003\002\001\206\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\306\117\242\075\006\143\204\011\234\316\142\344\004\254 +\215\134\265\351\266\033\060\066\006\003\125\035\037\004\057\060 +\055\060\053\240\051\240\047\206\045\150\164\164\160\072\057\057 +\143\162\154\056\170\162\141\155\160\163\145\143\165\162\151\164 +\171\056\143\157\155\057\130\107\103\101\056\143\162\154\060\020 +\006\011\053\006\001\004\001\202\067\025\001\004\003\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\221\025\071\003\001\033\147\373\112\034\371\012 +\140\133\241\332\115\227\142\371\044\123\047\327\202\144\116\220 +\056\303\111\033\053\232\334\374\250\170\147\065\361\035\360\021 +\275\267\110\343\020\366\015\337\077\322\311\266\252\125\244\110 +\272\002\333\336\131\056\025\133\073\235\026\175\107\327\067\352 +\137\115\166\022\066\273\037\327\241\201\004\106\040\243\054\155 +\251\236\001\176\077\051\316\000\223\337\375\311\222\163\211\211 +\144\236\347\053\344\034\221\054\322\271\316\175\316\157\061\231 +\323\346\276\322\036\220\360\011\024\171\134\043\253\115\322\332 +\041\037\115\231\171\235\341\317\047\237\020\233\034\210\015\260 +\212\144\101\061\270\016\154\220\044\244\233\134\161\217\272\273 +\176\034\033\333\152\200\017\041\274\351\333\246\267\100\364\262 +\213\251\261\344\357\232\032\320\075\151\231\356\250\050\243\341 +\074\263\360\262\021\234\317\174\100\346\335\347\103\175\242\330 +\072\265\251\215\362\064\231\304\324\020\341\006\375\011\204\020 +\073\356\304\114\364\354\047\174\102\302\164\174\202\212\011\311 +\264\003\045\274 +END + +# Trust for Certificate "XRamp Global CA Root" +# Issuer: CN=XRamp Global Certification Authority,O=XRamp Security Services Inc,OU=www.xrampsecurity.com,C=US +# Serial Number:50:94:6c:ec:18:ea:d5:9c:4d:d5:97:ef:75:8f:a0:ad +# Subject: CN=XRamp Global Certification Authority,O=XRamp Security Services Inc,OU=www.xrampsecurity.com,C=US +# Not Valid Before: Mon Nov 01 17:14:04 2004 +# Not Valid After : Mon Jan 01 05:37:19 2035 +# Fingerprint (MD5): A1:0B:44:B3:CA:10:D8:00:6E:9D:0F:D8:0F:92:0A:D1 +# Fingerprint (SHA1): B8:01:86:D1:EB:9C:86:A5:41:04:CF:30:54:F3:4C:52:B7:E5:58:C6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "XRamp Global CA Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\270\001\206\321\353\234\206\245\101\004\317\060\124\363\114\122 +\267\345\130\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\241\013\104\263\312\020\330\000\156\235\017\330\017\222\012\321 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\036\060\034\006\003\125\004\013\023\025\167\167\167\056\170 +\162\141\155\160\163\145\143\165\162\151\164\171\056\143\157\155 +\061\044\060\042\006\003\125\004\012\023\033\130\122\141\155\160 +\040\123\145\143\165\162\151\164\171\040\123\145\162\166\151\143 +\145\163\040\111\156\143\061\055\060\053\006\003\125\004\003\023 +\044\130\122\141\155\160\040\107\154\157\142\141\154\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\020\120\224\154\354\030\352\325\234\115\325\227\357\165\217 +\240\255 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Go Daddy Class 2 CA" +# +# Issuer: OU=Go Daddy Class 2 Certification Authority,O="The Go Daddy Group, Inc.",C=US +# Serial Number: 0 (0x0) +# Subject: OU=Go Daddy Class 2 Certification Authority,O="The Go Daddy Group, Inc.",C=US +# Not Valid Before: Tue Jun 29 17:06:20 2004 +# Not Valid After : Thu Jun 29 17:06:20 2034 +# Fingerprint (MD5): 91:DE:06:25:AB:DA:FD:32:17:0C:BB:25:17:2A:84:67 +# Fingerprint (SHA1): 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4 +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 "Go Daddy Class 2 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157 +\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040 +\104\141\144\144\171\040\103\154\141\163\163\040\062\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\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157 +\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040 +\104\141\144\144\171\040\103\154\141\163\163\040\062\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\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\000\060\202\002\350\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061\041 +\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157\040 +\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156\143 +\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040\104 +\141\144\144\171\040\103\154\141\163\163\040\062\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\064\060\066\062\071\061\067 +\060\066\062\060\132\027\015\063\064\060\066\062\071\061\067\060 +\066\062\060\132\060\143\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\041\060\037\006\003\125\004\012\023\030\124\150 +\145\040\107\157\040\104\141\144\144\171\040\107\162\157\165\160 +\054\040\111\156\143\056\061\061\060\057\006\003\125\004\013\023 +\050\107\157\040\104\141\144\144\171\040\103\154\141\163\163\040 +\062\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\040\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\015 +\000\060\202\001\010\002\202\001\001\000\336\235\327\352\127\030 +\111\241\133\353\327\137\110\206\352\276\335\377\344\357\147\034 +\364\145\150\263\127\161\240\136\167\273\355\233\111\351\160\200 +\075\126\030\143\010\157\332\362\314\320\077\177\002\124\042\124 +\020\330\262\201\324\300\165\075\113\177\307\167\303\076\170\253 +\032\003\265\040\153\057\152\053\261\305\210\176\304\273\036\260 +\301\330\105\047\157\252\067\130\367\207\046\327\330\055\366\251 +\027\267\037\162\066\116\246\027\077\145\230\222\333\052\156\135 +\242\376\210\340\013\336\177\345\215\025\341\353\313\072\325\342 +\022\242\023\055\330\216\257\137\022\075\240\010\005\010\266\134 +\245\145\070\004\105\231\036\243\140\140\164\305\101\245\162\142 +\033\142\305\037\157\137\032\102\276\002\121\145\250\256\043\030 +\152\374\170\003\251\115\177\200\303\372\253\132\374\241\100\244 +\312\031\026\376\262\310\357\136\163\015\356\167\275\232\366\171 +\230\274\261\007\147\242\025\015\335\240\130\306\104\173\012\076 +\142\050\137\272\101\007\123\130\317\021\176\070\164\305\370\377 +\265\151\220\217\204\164\352\227\033\257\002\001\003\243\201\300 +\060\201\275\060\035\006\003\125\035\016\004\026\004\024\322\304 +\260\322\221\324\114\021\161\263\141\313\075\241\376\335\250\152 +\324\343\060\201\215\006\003\125\035\043\004\201\205\060\201\202 +\200\024\322\304\260\322\221\324\114\021\161\263\141\313\075\241 +\376\335\250\152\324\343\241\147\244\145\060\143\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\041\060\037\006\003\125 +\004\012\023\030\124\150\145\040\107\157\040\104\141\144\144\171 +\040\107\162\157\165\160\054\040\111\156\143\056\061\061\060\057 +\006\003\125\004\013\023\050\107\157\040\104\141\144\144\171\040 +\103\154\141\163\163\040\062\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 +\001\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\062\113\363\262\312\076\221\374\022\306\241\007 +\214\216\167\240\063\006\024\134\220\036\030\367\010\246\075\012 +\031\371\207\200\021\156\151\344\226\027\060\377\064\221\143\162 +\070\356\314\034\001\243\035\224\050\244\061\366\172\304\124\327 +\366\345\061\130\003\242\314\316\142\333\224\105\163\265\277\105 +\311\044\265\325\202\002\255\043\171\151\215\270\266\115\316\317 +\114\312\063\043\350\034\210\252\235\213\101\156\026\311\040\345 +\211\236\315\073\332\160\367\176\231\046\040\024\124\045\253\156 +\163\205\346\233\041\235\012\154\202\016\250\370\302\014\372\020 +\036\154\226\357\207\015\304\017\141\213\255\356\203\053\225\370 +\216\222\204\162\071\353\040\352\203\355\203\315\227\156\010\274 +\353\116\046\266\163\053\344\323\366\114\376\046\161\342\141\021 +\164\112\377\127\032\207\017\165\110\056\317\121\151\027\240\002 +\022\141\225\325\321\100\262\020\114\356\304\254\020\103\246\245 +\236\012\325\225\142\232\015\317\210\202\305\062\014\344\053\237 +\105\346\015\237\050\234\261\271\052\132\127\255\067\017\257\035 +\177\333\275\237 +END + +# Trust for Certificate "Go Daddy Class 2 CA" +# Issuer: OU=Go Daddy Class 2 Certification Authority,O="The Go Daddy Group, Inc.",C=US +# Serial Number: 0 (0x0) +# Subject: OU=Go Daddy Class 2 Certification Authority,O="The Go Daddy Group, Inc.",C=US +# Not Valid Before: Tue Jun 29 17:06:20 2004 +# Not Valid After : Thu Jun 29 17:06:20 2034 +# Fingerprint (MD5): 91:DE:06:25:AB:DA:FD:32:17:0C:BB:25:17:2A:84:67 +# Fingerprint (SHA1): 27:96:BA:E6:3F:18:01:E2:77:26:1B:A0:D7:77:70:02:8F:20:EE:E4 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Go Daddy Class 2 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\047\226\272\346\077\030\001\342\167\046\033\240\327\167\160\002 +\217\040\356\344 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\221\336\006\045\253\332\375\062\027\014\273\045\027\052\204\147 +END +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157 +\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040 +\104\141\144\144\171\040\103\154\141\163\163\040\062\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\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Starfield Class 2 CA" +# +# Issuer: OU=Starfield Class 2 Certification Authority,O="Starfield Technologies, Inc.",C=US +# Serial Number: 0 (0x0) +# Subject: OU=Starfield Class 2 Certification Authority,O="Starfield Technologies, Inc.",C=US +# Not Valid Before: Tue Jun 29 17:39:16 2004 +# Not Valid After : Thu Jun 29 17:39:16 2034 +# Fingerprint (MD5): 32:4A:4B:BB:C8:63:69:9B:BE:74:9A:C6:DD:1D:46:24 +# Fingerprint (SHA1): AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A +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 "Starfield Class 2 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\045\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151 +\145\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163 +\054\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023 +\051\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163 +\040\062\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\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\045\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151 +\145\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163 +\054\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023 +\051\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163 +\040\062\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\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\017\060\202\002\367\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061\045 +\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151\145 +\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163\054 +\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023\051 +\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163\040 +\062\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\064\060 +\066\062\071\061\067\063\071\061\066\132\027\015\063\064\060\066 +\062\071\061\067\063\071\061\066\132\060\150\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\045\060\043\006\003\125\004 +\012\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143 +\150\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061 +\062\060\060\006\003\125\004\013\023\051\123\164\141\162\146\151 +\145\154\144\040\103\154\141\163\163\040\062\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\040\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\015\000\060\202\001\010\002 +\202\001\001\000\267\062\310\376\351\161\246\004\205\255\014\021 +\144\337\316\115\357\310\003\030\207\077\241\253\373\074\246\237 +\360\303\241\332\324\330\156\053\123\220\373\044\244\076\204\360 +\236\350\137\354\345\047\104\365\050\246\077\173\336\340\052\360 +\310\257\123\057\236\312\005\001\223\036\217\146\034\071\247\115 +\372\132\266\163\004\045\146\353\167\177\347\131\306\112\231\045 +\024\124\353\046\307\363\177\031\325\060\160\217\257\260\106\052 +\377\255\353\051\355\327\237\252\004\207\243\324\371\211\245\064 +\137\333\103\221\202\066\331\146\074\261\270\271\202\375\234\072 +\076\020\310\073\357\006\145\146\172\233\031\030\075\377\161\121 +\074\060\056\137\276\075\167\163\262\135\006\154\303\043\126\232 +\053\205\046\222\034\247\002\263\344\077\015\257\010\171\202\270 +\066\075\352\234\323\065\263\274\151\312\365\314\235\350\375\144 +\215\027\200\063\156\136\112\135\231\311\036\207\264\235\032\300 +\325\156\023\065\043\136\337\233\137\075\357\326\367\166\302\352 +\076\273\170\015\034\102\147\153\004\330\370\326\332\157\213\362 +\104\240\001\253\002\001\003\243\201\305\060\201\302\060\035\006 +\003\125\035\016\004\026\004\024\277\137\267\321\316\335\037\206 +\364\133\125\254\334\327\020\302\016\251\210\347\060\201\222\006 +\003\125\035\043\004\201\212\060\201\207\200\024\277\137\267\321 +\316\335\037\206\364\133\125\254\334\327\020\302\016\251\210\347 +\241\154\244\152\060\150\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\045\060\043\006\003\125\004\012\023\034\123\164 +\141\162\146\151\145\154\144\040\124\145\143\150\156\157\154\157 +\147\151\145\163\054\040\111\156\143\056\061\062\060\060\006\003 +\125\004\013\023\051\123\164\141\162\146\151\145\154\144\040\103 +\154\141\163\163\040\062\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\001 +\000\060\014\006\003\125\035\023\004\005\060\003\001\001\377\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\005\235\077\210\235\321\311\032\125\241\254\151\363 +\363\131\332\233\001\207\032\117\127\251\241\171\011\052\333\367 +\057\262\036\314\307\136\152\330\203\207\241\227\357\111\065\076 +\167\006\101\130\142\277\216\130\270\012\147\077\354\263\335\041 +\146\037\311\124\372\162\314\075\114\100\330\201\257\167\236\203 +\172\273\242\307\365\064\027\216\331\021\100\364\374\054\052\115 +\025\177\247\142\135\056\045\323\000\013\040\032\035\150\371\027 +\270\364\275\213\355\050\131\335\115\026\213\027\203\310\262\145 +\307\055\172\245\252\274\123\206\155\335\127\244\312\370\040\101 +\013\150\360\364\373\164\276\126\135\172\171\365\371\035\205\343 +\055\225\276\365\161\220\103\314\215\037\232\000\012\207\051\351 +\125\042\130\000\043\352\343\022\103\051\133\107\010\335\214\101 +\152\145\006\250\345\041\252\101\264\225\041\225\271\175\321\064 +\253\023\326\255\274\334\342\075\071\315\275\076\165\160\241\030 +\131\003\311\042\264\217\234\325\136\052\327\245\266\324\012\155 +\370\267\100\021\106\232\037\171\016\142\277\017\227\354\340\057 +\037\027\224 +END + +# Trust for Certificate "Starfield Class 2 CA" +# Issuer: OU=Starfield Class 2 Certification Authority,O="Starfield Technologies, Inc.",C=US +# Serial Number: 0 (0x0) +# Subject: OU=Starfield Class 2 Certification Authority,O="Starfield Technologies, Inc.",C=US +# Not Valid Before: Tue Jun 29 17:39:16 2004 +# Not Valid After : Thu Jun 29 17:39:16 2034 +# Fingerprint (MD5): 32:4A:4B:BB:C8:63:69:9B:BE:74:9A:C6:DD:1D:46:24 +# Fingerprint (SHA1): AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Class 2 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\255\176\034\050\260\144\357\217\140\003\100\040\024\303\320\343 +\067\016\265\212 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\062\112\113\273\310\143\151\233\276\164\232\306\335\035\106\044 +END +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\045\060\043\006\003\125\004\012\023\034\123\164\141\162\146\151 +\145\154\144\040\124\145\143\150\156\157\154\157\147\151\145\163 +\054\040\111\156\143\056\061\062\060\060\006\003\125\004\013\023 +\051\123\164\141\162\146\151\145\154\144\040\103\154\141\163\163 +\040\062\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\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "StartCom Certification Authority" +# +# Issuer: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Serial Number: 1 (0x1) +# Subject: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Not Valid Before: Sun Sep 17 19:46:36 2006 +# Not Valid After : Wed Sep 17 19:46:36 2036 +# Fingerprint (MD5): 22:4D:8F:8A:FC:F7:35:C2:BB:57:34:90:7B:8B:22:16 +# Fingerprint (SHA1): 3E:2B:F7:F2:03:1B:96:F3:8C:E6:C4:D8:A8:5D:3E:2D:58:47:6A:0F +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 "StartCom Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\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\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\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\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\311\060\202\005\261\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026 +\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157 +\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013\023 +\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154\040 +\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147\156 +\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123\164 +\141\162\164\103\157\155\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\066\060\071\061\067\061\071\064\066\063\066\132\027 +\015\063\066\060\071\061\067\061\071\064\066\063\066\132\060\175 +\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026\060 +\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157\155 +\040\114\164\144\056\061\053\060\051\006\003\125\004\013\023\042 +\123\145\143\165\162\145\040\104\151\147\151\164\141\154\040\103 +\145\162\164\151\146\151\143\141\164\145\040\123\151\147\156\151 +\156\147\061\051\060\047\006\003\125\004\003\023\040\123\164\141 +\162\164\103\157\155\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\002 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\002\017\000\060\202\002\012\002\202\002\001\000\301\210 +\333\011\274\154\106\174\170\237\225\173\265\063\220\362\162\142 +\326\301\066\040\042\044\136\316\351\167\362\103\012\242\006\144 +\244\314\216\066\370\070\346\043\360\156\155\261\074\335\162\243 +\205\034\241\323\075\264\063\053\323\057\257\376\352\260\101\131 +\147\266\304\006\175\012\236\164\205\326\171\114\200\067\172\337 +\071\005\122\131\367\364\033\106\103\244\322\205\205\322\303\161 +\363\165\142\064\272\054\212\177\036\217\356\355\064\320\021\307 +\226\315\122\075\272\063\326\335\115\336\013\073\112\113\237\302 +\046\057\372\265\026\034\162\065\167\312\074\135\346\312\341\046 +\213\032\066\166\134\001\333\164\024\045\376\355\265\240\210\017 +\335\170\312\055\037\007\227\060\001\055\162\171\372\106\326\023 +\052\250\271\246\253\203\111\035\345\362\357\335\344\001\216\030 +\012\217\143\123\026\205\142\251\016\031\072\314\265\146\246\302 +\153\164\007\344\053\341\166\076\264\155\330\366\104\341\163\142 +\037\073\304\276\240\123\126\045\154\121\011\367\252\253\312\277 +\166\375\155\233\363\235\333\277\075\146\274\014\126\252\257\230 +\110\225\072\113\337\247\130\120\331\070\165\251\133\352\103\014 +\002\377\231\353\350\154\115\160\133\051\145\234\335\252\135\314 +\257\001\061\354\014\353\322\215\350\352\234\173\346\156\367\047 +\146\014\032\110\327\156\102\343\077\336\041\076\173\341\015\160 +\373\143\252\250\154\032\124\264\134\045\172\311\242\311\213\026 +\246\273\054\176\027\136\005\115\130\156\022\035\001\356\022\020 +\015\306\062\177\030\377\374\364\372\315\156\221\350\066\111\276 +\032\110\151\213\302\226\115\032\022\262\151\027\301\012\220\326 +\372\171\042\110\277\272\173\151\370\160\307\372\172\067\330\330 +\015\322\166\117\127\377\220\267\343\221\322\335\357\302\140\267 +\147\072\335\376\252\234\360\324\213\177\162\042\316\306\237\227 +\266\370\257\212\240\020\250\331\373\030\306\266\265\134\122\074 +\211\266\031\052\163\001\012\017\003\263\022\140\362\172\057\201 +\333\243\156\377\046\060\227\365\213\335\211\127\266\255\075\263 +\257\053\305\267\166\002\360\245\326\053\232\206\024\052\162\366 +\343\063\214\135\011\113\023\337\273\214\164\023\122\113\002\003 +\001\000\001\243\202\002\122\060\202\002\116\060\014\006\003\125 +\035\023\004\005\060\003\001\001\377\060\013\006\003\125\035\017 +\004\004\003\002\001\256\060\035\006\003\125\035\016\004\026\004 +\024\116\013\357\032\244\100\133\245\027\151\207\060\312\064\150 +\103\320\101\256\362\060\144\006\003\125\035\037\004\135\060\133 +\060\054\240\052\240\050\206\046\150\164\164\160\072\057\057\143 +\145\162\164\056\163\164\141\162\164\143\157\155\056\157\162\147 +\057\163\146\163\143\141\055\143\162\154\056\143\162\154\060\053 +\240\051\240\047\206\045\150\164\164\160\072\057\057\143\162\154 +\056\163\164\141\162\164\143\157\155\056\157\162\147\057\163\146 +\163\143\141\055\143\162\154\056\143\162\154\060\202\001\135\006 +\003\125\035\040\004\202\001\124\060\202\001\120\060\202\001\114 +\006\013\053\006\001\004\001\201\265\067\001\001\001\060\202\001 +\073\060\057\006\010\053\006\001\005\005\007\002\001\026\043\150 +\164\164\160\072\057\057\143\145\162\164\056\163\164\141\162\164 +\143\157\155\056\157\162\147\057\160\157\154\151\143\171\056\160 +\144\146\060\065\006\010\053\006\001\005\005\007\002\001\026\051 +\150\164\164\160\072\057\057\143\145\162\164\056\163\164\141\162 +\164\143\157\155\056\157\162\147\057\151\156\164\145\162\155\145 +\144\151\141\164\145\056\160\144\146\060\201\320\006\010\053\006 +\001\005\005\007\002\002\060\201\303\060\047\026\040\123\164\141 +\162\164\040\103\157\155\155\145\162\143\151\141\154\040\050\123 +\164\141\162\164\103\157\155\051\040\114\164\144\056\060\003\002 +\001\001\032\201\227\114\151\155\151\164\145\144\040\114\151\141 +\142\151\154\151\164\171\054\040\162\145\141\144\040\164\150\145 +\040\163\145\143\164\151\157\156\040\052\114\145\147\141\154\040 +\114\151\155\151\164\141\164\151\157\156\163\052\040\157\146\040 +\164\150\145\040\123\164\141\162\164\103\157\155\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\120\157\154\151\143\171\040\141\166\141\151 +\154\141\142\154\145\040\141\164\040\150\164\164\160\072\057\057 +\143\145\162\164\056\163\164\141\162\164\143\157\155\056\157\162 +\147\057\160\157\154\151\143\171\056\160\144\146\060\021\006\011 +\140\206\110\001\206\370\102\001\001\004\004\003\002\000\007\060 +\070\006\011\140\206\110\001\206\370\102\001\015\004\053\026\051 +\123\164\141\162\164\103\157\155\040\106\162\145\145\040\123\123 +\114\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\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\026\154\231 +\364\146\014\064\365\320\205\136\175\012\354\332\020\116\070\034 +\136\337\246\045\005\113\221\062\301\350\073\361\075\335\104\011 +\133\007\111\212\051\313\146\002\267\261\232\367\045\230\011\074 +\216\033\341\335\066\207\053\113\273\150\323\071\146\075\240\046 +\307\362\071\221\035\121\253\202\173\176\325\316\132\344\342\003 +\127\160\151\227\010\371\136\130\246\012\337\214\006\232\105\026 +\026\070\012\136\127\366\142\307\172\002\005\346\274\036\265\362 +\236\364\251\051\203\370\262\024\343\156\050\207\104\303\220\032 +\336\070\251\074\254\103\115\144\105\316\335\050\251\134\362\163 +\173\004\370\027\350\253\261\363\056\134\144\156\163\061\072\022 +\270\274\263\021\344\175\217\201\121\232\073\215\211\364\115\223 +\146\173\074\003\355\323\232\035\232\363\145\120\365\240\320\165 +\237\057\257\360\352\202\103\230\370\151\234\211\171\304\103\216 +\106\162\343\144\066\022\257\367\045\036\070\211\220\167\176\303 +\153\152\271\303\313\104\113\254\170\220\213\347\307\054\036\113 +\021\104\310\064\122\047\315\012\135\237\205\301\211\325\032\170 +\362\225\020\123\062\335\200\204\146\165\331\265\150\050\373\141 +\056\276\204\250\070\300\231\022\206\245\036\147\144\255\006\056 +\057\251\160\205\307\226\017\174\211\145\365\216\103\124\016\253 +\335\245\200\071\224\140\300\064\311\226\160\054\243\022\365\037 +\110\173\275\034\176\153\267\235\220\364\042\073\256\370\374\052 +\312\372\202\122\240\357\257\113\125\223\353\301\265\360\042\213 +\254\064\116\046\042\004\241\207\054\165\112\267\345\175\023\327 +\270\014\144\300\066\322\311\057\206\022\214\043\011\301\033\202 +\073\163\111\243\152\127\207\224\345\326\170\305\231\103\143\343 +\115\340\167\055\341\145\231\162\151\004\032\107\011\346\017\001 +\126\044\373\037\277\016\171\251\130\056\271\304\011\001\176\225 +\272\155\000\006\076\262\352\112\020\071\330\320\053\365\277\354 +\165\277\227\002\305\011\033\010\334\125\067\342\201\373\067\204 +\103\142\040\312\347\126\113\145\352\376\154\301\044\223\044\241 +\064\353\005\377\232\042\256\233\175\077\361\145\121\012\246\060 +\152\263\364\210\034\200\015\374\162\212\350\203\136 +END + +# Trust for Certificate "StartCom Certification Authority" +# Issuer: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Serial Number: 1 (0x1) +# Subject: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Not Valid Before: Sun Sep 17 19:46:36 2006 +# Not Valid After : Wed Sep 17 19:46:36 2036 +# Fingerprint (MD5): 22:4D:8F:8A:FC:F7:35:C2:BB:57:34:90:7B:8B:22:16 +# Fingerprint (SHA1): 3E:2B:F7:F2:03:1B:96:F3:8C:E6:C4:D8:A8:5D:3E:2D:58:47:6A:0F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "StartCom Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\076\053\367\362\003\033\226\363\214\346\304\330\250\135\076\055 +\130\107\152\017 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\042\115\217\212\374\367\065\302\273\127\064\220\173\213\042\026 +END +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\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\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Taiwan GRCA" +# +# Issuer: O=Government Root Certification Authority,C=TW +# Serial Number:1f:9d:59:5a:d7:2f:c2:06:44:a5:80:08:69:e3:5e:f6 +# Subject: O=Government Root Certification Authority,C=TW +# Not Valid Before: Thu Dec 05 13:23:33 2002 +# Not Valid After : Sun Dec 05 13:23:33 2032 +# Fingerprint (MD5): 37:85:44:53:32:45:1F:20:F0:F3:95:E1:25:C4:43:4E +# Fingerprint (SHA1): F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9 +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 "Taiwan GRCA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\060\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156 +\155\145\156\164\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\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\060\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156 +\155\145\156\164\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\020\037\235\131\132\327\057\302\006\104\245\200\010\151\343 +\136\366 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\162\060\202\003\132\240\003\002\001\002\002\020\037 +\235\131\132\327\057\302\006\104\245\200\010\151\343\136\366\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\077 +\061\013\060\011\006\003\125\004\006\023\002\124\127\061\060\060 +\056\006\003\125\004\012\014\047\107\157\166\145\162\156\155\145 +\156\164\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\062\061\062\060\065\061\063\062\063\063\063\132 +\027\015\063\062\061\062\060\065\061\063\062\063\063\063\132\060 +\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061\060 +\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156\155 +\145\156\164\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\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\232\045\270\354\314\242\165\250\173\367\316\133\131\212\311 +\321\206\022\010\124\354\234\362\347\106\366\210\363\174\351\245 +\337\114\107\066\244\033\001\034\177\036\127\212\215\303\305\321 +\041\343\332\044\077\110\053\373\237\056\241\224\347\054\034\223 +\321\277\033\001\207\123\231\316\247\365\012\041\166\167\377\251 +\267\306\163\224\117\106\367\020\111\067\372\250\131\111\135\152 +\201\007\126\362\212\371\006\320\367\160\042\115\264\267\101\271 +\062\270\261\360\261\303\234\077\160\375\123\335\201\252\330\143 +\170\366\330\123\156\241\254\152\204\044\162\124\206\306\322\262 +\312\034\016\171\201\326\265\160\142\010\001\056\116\117\016\325 +\021\257\251\257\345\232\277\334\314\207\155\046\344\311\127\242 +\373\226\371\314\341\077\123\214\154\114\176\233\123\010\013\154 +\027\373\147\310\302\255\261\315\200\264\227\334\166\001\026\025 +\351\152\327\244\341\170\107\316\206\325\373\061\363\372\061\276 +\064\252\050\373\160\114\035\111\307\257\054\235\155\146\246\266 +\215\144\176\265\040\152\235\073\201\266\217\100\000\147\113\211 +\206\270\314\145\376\025\123\351\004\301\326\137\035\104\327\012 +\057\047\232\106\175\241\015\165\255\124\206\025\334\111\073\361 +\226\316\017\233\240\354\243\172\135\276\325\052\165\102\345\173 +\336\245\266\252\257\050\254\254\220\254\070\267\325\150\065\046 +\172\334\367\073\363\375\105\233\321\273\103\170\156\157\361\102 +\124\152\230\360\015\255\227\351\122\136\351\325\152\162\336\152 +\367\033\140\024\364\245\344\266\161\147\252\037\352\342\115\301 +\102\100\376\147\106\027\070\057\107\077\161\234\256\345\041\312 +\141\055\155\007\250\204\174\055\356\121\045\361\143\220\236\375 +\341\127\210\153\357\212\043\155\261\346\275\077\255\321\075\226 +\013\205\215\315\153\047\273\267\005\233\354\273\221\251\012\007 +\022\002\227\116\040\220\360\377\015\036\342\101\073\323\100\072 +\347\215\135\332\146\344\002\260\007\122\230\134\016\216\063\234 +\302\246\225\373\125\031\156\114\216\256\113\017\275\301\070\115 +\136\217\204\035\146\315\305\140\226\264\122\132\005\211\216\225 +\172\230\301\221\074\225\043\262\016\364\171\264\311\174\301\112 +\041\002\003\001\000\001\243\152\060\150\060\035\006\003\125\035 +\016\004\026\004\024\314\314\357\314\051\140\244\073\261\222\266 +\074\372\062\142\217\254\045\025\073\060\014\006\003\125\035\023 +\004\005\060\003\001\001\377\060\071\006\004\147\052\007\000\004 +\061\060\057\060\055\002\001\000\060\011\006\005\053\016\003\002 +\032\005\000\060\007\006\005\147\052\003\000\000\004\024\003\233 +\360\042\023\377\225\050\066\323\334\236\300\062\373\061\072\212 +\121\145\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\002\001\000\100\200\112\372\046\311\316\136\060\335 +\117\206\164\166\130\365\256\263\203\063\170\244\172\164\027\031 +\116\351\122\265\271\340\012\164\142\252\150\312\170\240\114\232 +\216\054\043\056\325\152\022\044\277\324\150\323\212\320\330\234 +\237\264\037\014\336\070\176\127\070\374\215\342\117\136\014\237 +\253\073\322\377\165\227\313\244\343\147\010\377\345\300\026\265 +\110\001\175\351\371\012\377\033\345\152\151\277\170\041\250\302 +\247\043\251\206\253\166\126\350\016\014\366\023\335\052\146\212 +\144\111\075\032\030\207\220\004\237\102\122\267\117\313\376\107 +\101\166\065\357\377\000\166\066\105\062\233\306\106\205\135\342 +\044\260\036\343\110\226\230\127\107\224\125\172\017\101\261\104 +\044\363\301\376\032\153\277\210\375\301\246\332\223\140\136\201 +\112\231\040\234\110\146\031\265\000\171\124\017\270\054\057\113 +\274\251\135\133\140\177\214\207\245\340\122\143\052\276\330\073 +\205\100\025\376\036\266\145\077\305\113\332\176\265\172\065\051 +\243\056\172\230\140\042\243\364\175\047\116\055\352\264\164\074 +\351\017\244\063\017\020\021\274\023\001\326\345\016\323\277\265 +\022\242\341\105\043\300\314\010\156\141\267\211\253\203\343\044 +\036\346\135\007\347\037\040\076\317\147\310\347\254\060\155\047 +\113\150\156\113\052\134\002\010\064\333\370\166\344\147\243\046 +\234\077\242\062\302\112\305\201\030\061\020\126\252\204\357\055 +\012\377\270\037\167\322\277\245\130\240\142\344\327\113\221\165 +\215\211\200\230\176\155\313\123\116\136\257\366\262\227\205\227 +\271\332\125\006\271\044\356\327\306\070\036\143\033\022\073\225 +\341\130\254\362\337\204\325\137\231\057\015\125\133\346\070\333 +\056\077\162\351\110\205\313\273\051\023\217\036\070\125\271\363 +\262\304\060\231\043\116\135\362\110\241\022\014\334\022\220\011 +\220\124\221\003\074\107\345\325\311\145\340\267\113\175\354\107 +\323\263\013\076\255\236\320\164\000\016\353\275\121\255\300\336 +\054\300\303\152\376\357\334\013\247\372\106\337\140\333\234\246 +\131\120\165\043\151\163\223\262\371\374\002\323\107\346\161\316 +\020\002\356\047\214\204\377\254\105\015\023\134\203\062\340\045 +\245\206\054\174\364\022 +END + +# Trust for Certificate "Taiwan GRCA" +# Issuer: O=Government Root Certification Authority,C=TW +# Serial Number:1f:9d:59:5a:d7:2f:c2:06:44:a5:80:08:69:e3:5e:f6 +# Subject: O=Government Root Certification Authority,C=TW +# Not Valid Before: Thu Dec 05 13:23:33 2002 +# Not Valid After : Sun Dec 05 13:23:33 2032 +# Fingerprint (MD5): 37:85:44:53:32:45:1F:20:F0:F3:95:E1:25:C4:43:4E +# Fingerprint (SHA1): F4:8B:11:BF:DE:AB:BE:94:54:20:71:E6:41:DE:6B:BE:88:2B:40:B9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Taiwan GRCA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\364\213\021\277\336\253\276\224\124\040\161\346\101\336\153\276 +\210\053\100\271 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\067\205\104\123\062\105\037\040\360\363\225\341\045\304\103\116 +END +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\060\060\056\006\003\125\004\012\014\047\107\157\166\145\162\156 +\155\145\156\164\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\020\037\235\131\132\327\057\302\006\104\245\200\010\151\343 +\136\366 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Swisscom Root CA 1" +# +# Issuer: CN=Swisscom Root CA 1,OU=Digital Certificate Services,O=Swisscom,C=ch +# Serial Number:5c:0b:85:5c:0b:e7:59:41:df:57:cc:3f:7f:9d:a8:36 +# Subject: CN=Swisscom Root CA 1,OU=Digital Certificate Services,O=Swisscom,C=ch +# Not Valid Before: Thu Aug 18 12:06:20 2005 +# Not Valid After : Mon Aug 18 22:06:20 2025 +# Fingerprint (MD5): F8:38:7C:77:88:DF:2C:16:68:2E:C2:E2:52:4B:B8:F9 +# Fingerprint (SHA1): 5F:3A:FC:0A:8B:64:F6:86:67:34:74:DF:7E:A9:A2:FE:F9:FA:7A:51 +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 "Swisscom Root CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\134\013\205\134\013\347\131\101\337\127\314\077\177\235 +\250\066 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\003\301\240\003\002\001\002\002\020\134 +\013\205\134\013\347\131\101\337\127\314\077\177\235\250\066\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\144 +\061\013\060\011\006\003\125\004\006\023\002\143\150\061\021\060 +\017\006\003\125\004\012\023\010\123\167\151\163\163\143\157\155 +\061\045\060\043\006\003\125\004\013\023\034\104\151\147\151\164 +\141\154\040\103\145\162\164\151\146\151\143\141\164\145\040\123 +\145\162\166\151\143\145\163\061\033\060\031\006\003\125\004\003 +\023\022\123\167\151\163\163\143\157\155\040\122\157\157\164\040 +\103\101\040\061\060\036\027\015\060\065\060\070\061\070\061\062 +\060\066\062\060\132\027\015\062\065\060\070\061\070\062\062\060 +\066\062\060\132\060\144\061\013\060\011\006\003\125\004\006\023 +\002\143\150\061\021\060\017\006\003\125\004\012\023\010\123\167 +\151\163\163\143\157\155\061\045\060\043\006\003\125\004\013\023 +\034\104\151\147\151\164\141\154\040\103\145\162\164\151\146\151 +\143\141\164\145\040\123\145\162\166\151\143\145\163\061\033\060 +\031\006\003\125\004\003\023\022\123\167\151\163\163\143\157\155 +\040\122\157\157\164\040\103\101\040\061\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\320\271\260\250\014 +\331\273\077\041\370\033\325\063\223\200\026\145\040\165\262\075 +\233\140\155\106\310\214\061\157\027\303\372\232\154\126\355\074 +\305\221\127\303\315\253\226\111\220\052\031\113\036\243\155\127 +\335\361\053\142\050\165\105\136\252\326\133\372\013\045\330\241 +\026\371\034\304\056\346\225\052\147\314\320\051\156\074\205\064 +\070\141\111\261\000\237\326\072\161\137\115\155\316\137\271\251 +\344\211\177\152\122\372\312\233\362\334\251\371\235\231\107\077 +\116\051\137\264\246\215\135\173\013\231\021\003\003\376\347\333 +\333\243\377\035\245\315\220\036\001\037\065\260\177\000\333\220 +\157\306\176\173\321\356\172\172\247\252\014\127\157\244\155\305 +\023\073\260\245\331\355\062\034\264\136\147\213\124\334\163\207 +\345\323\027\174\146\120\162\135\324\032\130\301\331\317\330\211 +\002\157\247\111\264\066\135\320\244\336\007\054\266\165\267\050 +\221\326\227\276\050\365\230\036\352\133\046\311\275\260\227\163 +\332\256\221\046\353\150\301\371\071\025\326\147\113\012\155\117 +\313\317\260\344\102\161\214\123\171\347\356\341\333\035\240\156 +\035\214\032\167\065\134\026\036\053\123\037\064\213\321\154\374 +\362\147\007\172\365\255\355\326\232\253\241\261\113\341\314\067 +\137\375\177\315\115\256\270\037\234\103\371\052\130\125\103\105 +\274\226\315\160\016\374\311\343\146\272\116\215\073\201\313\025 +\144\173\271\224\350\135\063\122\205\161\056\117\216\242\006\021 +\121\311\343\313\241\156\061\010\144\014\302\322\074\365\066\350 +\327\320\016\170\043\040\221\311\044\052\145\051\133\042\367\041 +\316\203\136\244\363\336\113\323\150\217\106\165\134\203\011\156 +\051\153\304\160\214\365\235\327\040\057\377\106\322\053\070\302 +\057\165\034\075\176\332\245\357\036\140\205\151\102\323\314\370 +\143\376\036\103\071\205\246\266\143\101\020\263\163\036\274\323 +\372\312\175\026\107\342\247\325\320\243\212\012\010\226\142\126 +\156\064\333\331\002\271\060\165\343\004\322\347\217\302\260\021 +\100\012\254\325\161\002\142\213\061\276\335\306\043\130\061\102 +\103\055\164\371\306\236\246\212\017\351\376\277\203\346\103\127 +\044\272\357\106\064\252\327\022\001\070\355\002\003\001\000\001 +\243\201\206\060\201\203\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\035\006\003\125\035\041\004\026\060 +\024\060\022\006\007\140\205\164\001\123\000\001\006\007\140\205 +\164\001\123\000\001\060\022\006\003\125\035\023\001\001\377\004 +\010\060\006\001\001\377\002\001\007\060\037\006\003\125\035\043 +\004\030\060\026\200\024\003\045\057\336\157\202\001\072\134\054 +\334\053\241\151\265\147\324\214\323\375\060\035\006\003\125\035 +\016\004\026\004\024\003\045\057\336\157\202\001\072\134\054\334 +\053\241\151\265\147\324\214\323\375\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\065\020\313 +\354\246\004\015\015\017\315\300\333\253\250\362\210\227\014\337 +\223\057\115\174\100\126\061\172\353\244\017\140\315\172\363\276 +\303\047\216\003\076\244\335\022\357\176\036\164\006\074\077\061 +\362\034\173\221\061\041\264\360\320\154\227\324\351\227\262\044 +\126\036\126\303\065\275\210\005\017\133\020\032\144\341\307\202 +\060\371\062\255\236\120\054\347\170\005\320\061\261\132\230\212 +\165\116\220\134\152\024\052\340\122\107\202\140\346\036\332\201 +\261\373\024\013\132\361\237\322\225\272\076\320\033\326\025\035 +\243\276\206\325\333\017\300\111\144\273\056\120\031\113\322\044 +\370\335\036\007\126\320\070\240\225\160\040\166\214\327\335\036 +\336\237\161\304\043\357\203\023\134\243\044\025\115\051\100\074 +\152\304\251\330\267\246\104\245\015\364\340\235\167\036\100\160 +\046\374\332\331\066\344\171\344\265\077\274\233\145\276\273\021 +\226\317\333\306\050\071\072\010\316\107\133\123\132\305\231\376 +\135\251\335\357\114\324\306\245\255\002\346\214\007\022\036\157 +\003\321\157\240\243\363\051\275\022\307\120\242\260\177\210\251 +\231\167\232\261\300\245\071\056\134\174\151\342\054\260\352\067 +\152\244\341\132\341\365\120\345\203\357\245\273\052\210\347\214 +\333\375\155\136\227\031\250\176\146\165\153\161\352\277\261\307 +\157\240\364\216\244\354\064\121\133\214\046\003\160\241\167\325 +\001\022\127\000\065\333\043\336\016\212\050\231\375\261\020\157 +\113\377\070\055\140\116\054\234\353\147\265\255\111\356\113\037 +\254\257\373\015\220\132\146\140\160\135\252\315\170\324\044\356 +\310\101\240\223\001\222\234\152\236\374\271\044\305\263\025\202 +\176\276\256\225\053\353\261\300\332\343\001\140\013\136\151\254 +\204\126\141\276\161\027\376\035\023\017\376\306\207\105\351\376 +\062\240\032\015\023\244\224\125\161\245\026\213\272\312\211\260 +\262\307\374\217\330\124\265\223\142\235\316\317\131\373\075\030 +\316\052\313\065\025\202\135\377\124\042\133\161\122\373\267\311 +\376\140\233\000\101\144\360\252\052\354\266\102\103\316\211\146 +\201\310\213\237\071\124\003\045\323\026\065\216\204\320\137\372 +\060\032\365\232\154\364\016\123\371\072\133\321\034 +END + +# Trust for Certificate "Swisscom Root CA 1" +# Issuer: CN=Swisscom Root CA 1,OU=Digital Certificate Services,O=Swisscom,C=ch +# Serial Number:5c:0b:85:5c:0b:e7:59:41:df:57:cc:3f:7f:9d:a8:36 +# Subject: CN=Swisscom Root CA 1,OU=Digital Certificate Services,O=Swisscom,C=ch +# Not Valid Before: Thu Aug 18 12:06:20 2005 +# Not Valid After : Mon Aug 18 22:06:20 2025 +# Fingerprint (MD5): F8:38:7C:77:88:DF:2C:16:68:2E:C2:E2:52:4B:B8:F9 +# Fingerprint (SHA1): 5F:3A:FC:0A:8B:64:F6:86:67:34:74:DF:7E:A9:A2:FE:F9:FA:7A:51 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Swisscom Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\072\374\012\213\144\366\206\147\064\164\337\176\251\242\376 +\371\372\172\121 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\370\070\174\167\210\337\054\026\150\056\302\342\122\113\270\371 +END +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\134\013\205\134\013\347\131\101\337\127\314\077\177\235 +\250\066 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Assured ID Root CA" +# +# Issuer: CN=DigiCert Assured ID Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:0c:e7:e0:e5:17:d8:46:fe:8f:e5:60:fc:1b:f0:30:39 +# Subject: CN=DigiCert Assured ID Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Fri Nov 10 00:00:00 2006 +# Not Valid After : Mon Nov 10 00:00:00 2031 +# Fingerprint (MD5): 87:CE:0B:7B:2A:0E:49:00:E1:58:71:9B:37:A8:93:72 +# Fingerprint (SHA1): 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43 +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 "DigiCert Assured ID Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\347\340\345\027\330\106\376\217\345\140\374\033\360 +\060\071 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\267\060\202\002\237\240\003\002\001\002\002\020\014 +\347\340\345\027\330\106\376\217\345\140\374\033\360\060\071\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\145 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\044\060\042\006\003\125\004\003\023\033\104\151\147\151\103\145 +\162\164\040\101\163\163\165\162\145\144\040\111\104\040\122\157 +\157\164\040\103\101\060\036\027\015\060\066\061\061\061\060\060 +\060\060\060\060\060\132\027\015\063\061\061\061\061\060\060\060 +\060\060\060\060\132\060\145\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\025\060\023\006\003\125\004\012\023\014\104 +\151\147\151\103\145\162\164\040\111\156\143\061\031\060\027\006 +\003\125\004\013\023\020\167\167\167\056\144\151\147\151\143\145 +\162\164\056\143\157\155\061\044\060\042\006\003\125\004\003\023 +\033\104\151\147\151\103\145\162\164\040\101\163\163\165\162\145 +\144\040\111\104\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\255\016\025 +\316\344\103\200\134\261\207\363\267\140\371\161\022\245\256\334 +\046\224\210\252\364\316\365\040\071\050\130\140\014\370\200\332 +\251\025\225\062\141\074\265\261\050\204\212\212\334\237\012\014 +\203\027\172\217\220\254\212\347\171\123\134\061\204\052\366\017 +\230\062\066\166\314\336\335\074\250\242\357\152\373\041\362\122 +\141\337\237\040\327\037\342\261\331\376\030\144\322\022\133\137 +\371\130\030\065\274\107\315\241\066\371\153\177\324\260\070\076 +\301\033\303\214\063\331\330\057\030\376\050\017\263\247\203\326 +\303\156\104\300\141\065\226\026\376\131\234\213\166\155\327\361 +\242\113\015\053\377\013\162\332\236\140\320\216\220\065\306\170 +\125\207\040\241\317\345\155\012\310\111\174\061\230\063\154\042 +\351\207\320\062\132\242\272\023\202\021\355\071\027\235\231\072 +\162\241\346\372\244\331\325\027\061\165\256\205\175\042\256\077 +\001\106\206\366\050\171\310\261\332\344\127\027\304\176\034\016 +\260\264\222\246\126\263\275\262\227\355\252\247\360\267\305\250 +\077\225\026\320\377\241\226\353\010\137\030\167\117\002\003\001 +\000\001\243\143\060\141\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\105\353\242\257\364\222\313\202\061\055\121\213\247\247 +\041\235\363\155\310\017\060\037\006\003\125\035\043\004\030\060 +\026\200\024\105\353\242\257\364\222\313\202\061\055\121\213\247 +\247\041\235\363\155\310\017\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\242\016\274\337\342 +\355\360\343\162\163\172\144\224\277\367\162\146\330\062\344\102 +\165\142\256\207\353\362\325\331\336\126\263\237\314\316\024\050 +\271\015\227\140\134\022\114\130\344\323\075\203\111\105\130\227 +\065\151\032\250\107\352\126\306\171\253\022\330\147\201\204\337 +\177\011\074\224\346\270\046\054\040\275\075\263\050\211\367\137 +\377\042\342\227\204\037\351\145\357\207\340\337\301\147\111\263 +\135\353\262\011\052\353\046\355\170\276\175\077\053\363\267\046 +\065\155\137\211\001\266\111\133\237\001\005\233\253\075\045\301 +\314\266\177\302\361\157\206\306\372\144\150\353\201\055\224\353 +\102\267\372\214\036\335\142\361\276\120\147\267\154\275\363\361 +\037\153\014\066\007\026\177\067\174\251\133\155\172\361\022\106 +\140\203\327\047\004\276\113\316\227\276\303\147\052\150\021\337 +\200\347\014\063\146\277\023\015\024\156\363\177\037\143\020\036 +\372\215\033\045\155\154\217\245\267\141\001\261\322\243\046\241 +\020\161\235\255\342\303\371\303\231\121\267\053\007\010\316\056 +\346\120\262\247\372\012\105\057\242\360\362 +END + +# Trust for Certificate "DigiCert Assured ID Root CA" +# Issuer: CN=DigiCert Assured ID Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:0c:e7:e0:e5:17:d8:46:fe:8f:e5:60:fc:1b:f0:30:39 +# Subject: CN=DigiCert Assured ID Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Fri Nov 10 00:00:00 2006 +# Not Valid After : Mon Nov 10 00:00:00 2031 +# Fingerprint (MD5): 87:CE:0B:7B:2A:0E:49:00:E1:58:71:9B:37:A8:93:72 +# Fingerprint (SHA1): 05:63:B8:63:0D:62:D7:5A:BB:C8:AB:1E:4B:DF:B5:A8:99:B2:4D:43 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Assured ID Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\005\143\270\143\015\142\327\132\273\310\253\036\113\337\265\250 +\231\262\115\103 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\207\316\013\173\052\016\111\000\341\130\161\233\067\250\223\162 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\347\340\345\027\330\106\376\217\345\140\374\033\360 +\060\071 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Global Root CA" +# +# Issuer: CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:08:3b:e0:56:90:42:46:b1:a1:75:6a:c9:59:91:c7:4a +# Subject: CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Fri Nov 10 00:00:00 2006 +# Not Valid After : Mon Nov 10 00:00:00 2031 +# Fingerprint (MD5): 79:E4:A9:84:0D:7D:3A:96:D7:C0:4F:E2:43:4C:89:2E +# Fingerprint (SHA1): A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36 +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 "DigiCert Global Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\010\073\340\126\220\102\106\261\241\165\152\311\131\221 +\307\112 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\257\060\202\002\227\240\003\002\001\002\002\020\010 +\073\340\126\220\102\106\261\241\165\152\311\131\221\307\112\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\141 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\040\060\036\006\003\125\004\003\023\027\104\151\147\151\103\145 +\162\164\040\107\154\157\142\141\154\040\122\157\157\164\040\103 +\101\060\036\027\015\060\066\061\061\061\060\060\060\060\060\060 +\060\132\027\015\063\061\061\061\061\060\060\060\060\060\060\060 +\132\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103 +\145\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013 +\023\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143 +\157\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147 +\151\103\145\162\164\040\107\154\157\142\141\154\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\342\073\341\021\162\336\250\244\323\243\127 +\252\120\242\217\013\167\220\311\242\245\356\022\316\226\133\001 +\011\040\314\001\223\247\116\060\267\123\367\103\304\151\000\127 +\235\342\215\042\335\207\006\100\000\201\011\316\316\033\203\277 +\337\315\073\161\106\342\326\146\307\005\263\166\047\026\217\173 +\236\036\225\175\356\267\110\243\010\332\326\257\172\014\071\006 +\145\177\112\135\037\274\027\370\253\276\356\050\327\164\177\172 +\170\231\131\205\150\156\134\043\062\113\277\116\300\350\132\155 +\343\160\277\167\020\277\374\001\366\205\331\250\104\020\130\062 +\251\165\030\325\321\242\276\107\342\047\152\364\232\063\370\111 +\010\140\213\324\137\264\072\204\277\241\252\112\114\175\076\317 +\117\137\154\166\136\240\113\067\221\236\334\042\346\155\316\024 +\032\216\152\313\376\315\263\024\144\027\307\133\051\236\062\277 +\362\356\372\323\013\102\324\253\267\101\062\332\014\324\357\370 +\201\325\273\215\130\077\265\033\350\111\050\242\160\332\061\004 +\335\367\262\026\362\114\012\116\007\250\355\112\075\136\265\177 +\243\220\303\257\047\002\003\001\000\001\243\143\060\141\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\035\006\003\125\035\016\004\026\004\024\003\336\120\065\126\321 +\114\273\146\360\243\342\033\033\303\227\262\075\321\125\060\037 +\006\003\125\035\043\004\030\060\026\200\024\003\336\120\065\126 +\321\114\273\146\360\243\342\033\033\303\227\262\075\321\125\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\313\234\067\252\110\023\022\012\372\335\104\234\117 +\122\260\364\337\256\004\365\171\171\010\243\044\030\374\113\053 +\204\300\055\271\325\307\376\364\301\037\130\313\270\155\234\172 +\164\347\230\051\253\021\265\343\160\240\241\315\114\210\231\223 +\214\221\160\342\253\017\034\276\223\251\377\143\325\344\007\140 +\323\243\277\235\133\011\361\325\216\343\123\364\216\143\372\077 +\247\333\264\146\337\142\146\326\321\156\101\215\362\055\265\352 +\167\112\237\235\130\342\053\131\300\100\043\355\055\050\202\105 +\076\171\124\222\046\230\340\200\110\250\067\357\360\326\171\140 +\026\336\254\350\016\315\156\254\104\027\070\057\111\332\341\105 +\076\052\271\066\123\317\072\120\006\367\056\350\304\127\111\154 +\141\041\030\325\004\255\170\074\054\072\200\153\247\353\257\025 +\024\351\330\211\301\271\070\154\342\221\154\212\377\144\271\167 +\045\127\060\300\033\044\243\341\334\351\337\107\174\265\264\044 +\010\005\060\354\055\275\013\277\105\277\120\271\251\363\353\230 +\001\022\255\310\210\306\230\064\137\215\012\074\306\351\325\225 +\225\155\336 +END + +# Trust for Certificate "DigiCert Global Root CA" +# Issuer: CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:08:3b:e0:56:90:42:46:b1:a1:75:6a:c9:59:91:c7:4a +# Subject: CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Fri Nov 10 00:00:00 2006 +# Not Valid After : Mon Nov 10 00:00:00 2031 +# Fingerprint (MD5): 79:E4:A9:84:0D:7D:3A:96:D7:C0:4F:E2:43:4C:89:2E +# Fingerprint (SHA1): A8:98:5D:3A:65:E5:E5:C4:B2:D7:D6:6D:40:C6:DD:2F:B1:9C:54:36 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Global Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\250\230\135\072\145\345\345\304\262\327\326\155\100\306\335\057 +\261\234\124\066 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\171\344\251\204\015\175\072\226\327\300\117\342\103\114\211\056 +END +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\010\073\340\126\220\102\106\261\241\165\152\311\131\221 +\307\112 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert High Assurance EV Root CA" +# +# Issuer: CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:02:ac:5c:26:6a:0b:40:9b:8f:0b:79:f2:ae:46:25:77 +# Subject: CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Fri Nov 10 00:00:00 2006 +# Not Valid After : Mon Nov 10 00:00:00 2031 +# Fingerprint (MD5): D4:74:DE:57:5C:39:B2:D3:9C:85:83:C5:C0:65:49:8A +# Fingerprint (SHA1): 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25 +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 "DigiCert High Assurance EV Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\154\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\053\060\051\006\003\125\004\003\023\042\104\151\147\151 +\103\145\162\164\040\110\151\147\150\040\101\163\163\165\162\141 +\156\143\145\040\105\126\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\154\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\053\060\051\006\003\125\004\003\023\042\104\151\147\151 +\103\145\162\164\040\110\151\147\150\040\101\163\163\165\162\141 +\156\143\145\040\105\126\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\002\254\134\046\152\013\100\233\217\013\171\362\256\106 +\045\167 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\305\060\202\002\255\240\003\002\001\002\002\020\002 +\254\134\046\152\013\100\233\217\013\171\362\256\106\045\167\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\154 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\053\060\051\006\003\125\004\003\023\042\104\151\147\151\103\145 +\162\164\040\110\151\147\150\040\101\163\163\165\162\141\156\143 +\145\040\105\126\040\122\157\157\164\040\103\101\060\036\027\015 +\060\066\061\061\061\060\060\060\060\060\060\060\132\027\015\063 +\061\061\061\061\060\060\060\060\060\060\060\132\060\154\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006 +\003\125\004\012\023\014\104\151\147\151\103\145\162\164\040\111 +\156\143\061\031\060\027\006\003\125\004\013\023\020\167\167\167 +\056\144\151\147\151\143\145\162\164\056\143\157\155\061\053\060 +\051\006\003\125\004\003\023\042\104\151\147\151\103\145\162\164 +\040\110\151\147\150\040\101\163\163\165\162\141\156\143\145\040 +\105\126\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\306\314\345\163\346 +\373\324\273\345\055\055\062\246\337\345\201\077\311\315\045\111 +\266\161\052\303\325\224\064\147\242\012\034\260\137\151\246\100 +\261\304\267\262\217\320\230\244\251\101\131\072\323\334\224\326 +\074\333\164\070\244\112\314\115\045\202\367\112\245\123\022\070 +\356\363\111\155\161\221\176\143\266\253\246\137\303\244\204\370 +\117\142\121\276\370\305\354\333\070\222\343\006\345\010\221\014 +\304\050\101\125\373\313\132\211\025\176\161\350\065\277\115\162 +\011\075\276\072\070\120\133\167\061\033\215\263\307\044\105\232 +\247\254\155\000\024\132\004\267\272\023\353\121\012\230\101\101 +\042\116\145\141\207\201\101\120\246\171\134\211\336\031\112\127 +\325\056\346\135\034\123\054\176\230\315\032\006\026\244\150\163 +\320\064\004\023\134\241\161\323\132\174\125\333\136\144\341\067 +\207\060\126\004\345\021\264\051\200\022\361\171\071\210\242\002 +\021\174\047\146\267\210\267\170\362\312\012\250\070\253\012\144 +\302\277\146\135\225\204\301\241\045\036\207\135\032\120\013\040 +\022\314\101\273\156\013\121\070\270\113\313\002\003\001\000\001 +\243\143\060\141\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\206\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024 +\261\076\303\151\003\370\277\107\001\324\230\046\032\010\002\357 +\143\144\053\303\060\037\006\003\125\035\043\004\030\060\026\200 +\024\261\076\303\151\003\370\277\107\001\324\230\046\032\010\002 +\357\143\144\053\303\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\034\032\006\227\334\327\234 +\237\074\210\146\006\010\127\041\333\041\107\370\052\147\252\277 +\030\062\166\100\020\127\301\212\363\172\331\021\145\216\065\372 +\236\374\105\265\236\331\114\061\113\270\221\350\103\054\216\263 +\170\316\333\343\123\171\161\326\345\041\224\001\332\125\207\232 +\044\144\366\212\146\314\336\234\067\315\250\064\261\151\233\043 +\310\236\170\042\053\160\103\343\125\107\061\141\031\357\130\305 +\205\057\116\060\366\240\061\026\043\310\347\342\145\026\063\313 +\277\032\033\240\075\370\312\136\213\061\213\140\010\211\055\014 +\006\134\122\267\304\371\012\230\321\025\137\237\022\276\174\066 +\143\070\275\104\244\177\344\046\053\012\304\227\151\015\351\214 +\342\300\020\127\270\310\166\022\221\125\362\110\151\330\274\052 +\002\133\017\104\324\040\061\333\364\272\160\046\135\220\140\236 +\274\113\027\011\057\264\313\036\103\150\311\007\047\301\322\134 +\367\352\041\271\150\022\234\074\234\277\236\374\200\134\233\143 +\315\354\107\252\045\047\147\240\067\363\000\202\175\124\327\251 +\370\351\056\023\243\167\350\037\112 +END + +# Trust for Certificate "DigiCert High Assurance EV Root CA" +# Issuer: CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:02:ac:5c:26:6a:0b:40:9b:8f:0b:79:f2:ae:46:25:77 +# Subject: CN=DigiCert High Assurance EV Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Fri Nov 10 00:00:00 2006 +# Not Valid After : Mon Nov 10 00:00:00 2031 +# Fingerprint (MD5): D4:74:DE:57:5C:39:B2:D3:9C:85:83:C5:C0:65:49:8A +# Fingerprint (SHA1): 5F:B7:EE:06:33:E2:59:DB:AD:0C:4C:9A:E6:D3:8F:1A:61:C7:DC:25 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert High Assurance EV Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\267\356\006\063\342\131\333\255\014\114\232\346\323\217\032 +\141\307\334\045 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\324\164\336\127\134\071\262\323\234\205\203\305\300\145\111\212 +END +CKA_ISSUER MULTILINE_OCTAL +\060\154\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\053\060\051\006\003\125\004\003\023\042\104\151\147\151 +\103\145\162\164\040\110\151\147\150\040\101\163\163\165\162\141 +\156\143\145\040\105\126\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\002\254\134\046\152\013\100\233\217\013\171\362\256\106 +\045\167 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certplus Class 2 Primary CA" +# +# Issuer: CN=Class 2 Primary CA,O=Certplus,C=FR +# Serial Number:00:85:bd:4b:f3:d8:da:e3:69:f6:94:d7:5f:c3:a5:44:23 +# Subject: CN=Class 2 Primary CA,O=Certplus,C=FR +# Not Valid Before: Wed Jul 07 17:05:00 1999 +# Not Valid After : Sat Jul 06 23:59:59 2019 +# Fingerprint (MD5): 88:2C:8C:52:B8:A2:3C:F3:F7:BB:03:EA:AE:AC:42:0B +# Fingerprint (SHA1): 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB +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 "Certplus Class 2 Primary CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154 +\165\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141 +\163\163\040\062\040\120\162\151\155\141\162\171\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154 +\165\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141 +\163\163\040\062\040\120\162\151\155\141\162\171\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\205\275\113\363\330\332\343\151\366\224\327\137\303 +\245\104\043 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\222\060\202\002\172\240\003\002\001\002\002\021\000 +\205\275\113\363\330\332\343\151\366\224\327\137\303\245\104\043 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061\021 +\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154\165 +\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141\163 +\163\040\062\040\120\162\151\155\141\162\171\040\103\101\060\036 +\027\015\071\071\060\067\060\067\061\067\060\065\060\060\132\027 +\015\061\071\060\067\060\066\062\063\065\071\065\071\132\060\075 +\061\013\060\011\006\003\125\004\006\023\002\106\122\061\021\060 +\017\006\003\125\004\012\023\010\103\145\162\164\160\154\165\163 +\061\033\060\031\006\003\125\004\003\023\022\103\154\141\163\163 +\040\062\040\120\162\151\155\141\162\171\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\334\120 +\226\320\022\370\065\322\010\170\172\266\122\160\375\157\356\317 +\271\021\313\135\167\341\354\351\176\004\215\326\314\157\163\103 +\127\140\254\063\012\104\354\003\137\034\200\044\221\345\250\221 +\126\022\202\367\340\053\364\333\256\141\056\211\020\215\153\154 +\272\263\002\275\325\066\305\110\067\043\342\360\132\067\122\063 +\027\022\342\321\140\115\276\057\101\021\343\366\027\045\014\213 +\221\300\033\231\173\231\126\015\257\356\322\274\107\127\343\171 +\111\173\064\211\047\044\204\336\261\354\351\130\116\376\116\337 +\132\276\101\255\254\010\305\030\016\357\322\123\356\154\320\235 +\022\001\023\215\334\200\142\367\225\251\104\210\112\161\116\140 +\125\236\333\043\031\171\126\007\014\077\143\013\134\260\342\276 +\176\025\374\224\063\130\101\070\164\304\341\217\213\337\046\254 +\037\265\213\073\267\103\131\153\260\044\246\155\220\213\304\162 +\352\135\063\230\267\313\336\136\173\357\224\361\033\076\312\311 +\041\301\305\230\002\252\242\366\133\167\233\365\176\226\125\064 +\034\147\151\300\361\102\343\107\254\374\050\034\146\125\002\003 +\001\000\001\243\201\214\060\201\211\060\017\006\003\125\035\023 +\004\010\060\006\001\001\377\002\001\012\060\013\006\003\125\035 +\017\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026 +\004\024\343\163\055\337\313\016\050\014\336\335\263\244\312\171 +\270\216\273\350\060\211\060\021\006\011\140\206\110\001\206\370 +\102\001\001\004\004\003\002\001\006\060\067\006\003\125\035\037 +\004\060\060\056\060\054\240\052\240\050\206\046\150\164\164\160 +\072\057\057\167\167\167\056\143\145\162\164\160\154\165\163\056 +\143\157\155\057\103\122\114\057\143\154\141\163\163\062\056\143 +\162\154\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\202\001\001\000\247\124\317\210\104\031\313\337\324\177 +\000\337\126\063\142\265\367\121\001\220\353\303\077\321\210\104 +\351\044\135\357\347\024\275\040\267\232\074\000\376\155\237\333 +\220\334\327\364\142\326\213\160\135\347\345\004\110\251\150\174 +\311\361\102\363\154\177\305\172\174\035\121\210\272\322\012\076 +\047\135\336\055\121\116\323\023\144\151\344\056\343\323\347\233 +\011\231\246\340\225\233\316\032\327\177\276\074\316\122\263\021 +\025\301\017\027\315\003\273\234\045\025\272\242\166\211\374\006 +\361\030\320\223\113\016\174\202\267\245\364\366\137\376\355\100 +\246\235\204\164\071\271\334\036\205\026\332\051\033\206\043\000 +\311\273\211\176\156\200\210\036\057\024\264\003\044\250\062\157 +\003\232\107\054\060\276\126\306\247\102\002\160\033\352\100\330 +\272\005\003\160\007\244\226\377\375\110\063\012\341\334\245\201 +\220\233\115\335\175\347\347\262\315\134\310\152\225\370\245\366 +\215\304\135\170\010\276\173\006\326\111\317\031\066\120\043\056 +\010\346\236\005\115\107\030\325\026\351\261\326\266\020\325\273 +\227\277\242\216\264\124 +END + +# Trust for Certificate "Certplus Class 2 Primary CA" +# Issuer: CN=Class 2 Primary CA,O=Certplus,C=FR +# Serial Number:00:85:bd:4b:f3:d8:da:e3:69:f6:94:d7:5f:c3:a5:44:23 +# Subject: CN=Class 2 Primary CA,O=Certplus,C=FR +# Not Valid Before: Wed Jul 07 17:05:00 1999 +# Not Valid After : Sat Jul 06 23:59:59 2019 +# Fingerprint (MD5): 88:2C:8C:52:B8:A2:3C:F3:F7:BB:03:EA:AE:AC:42:0B +# Fingerprint (SHA1): 74:20:74:41:72:9C:DD:92:EC:79:31:D8:23:10:8D:C2:81:92:E2:BB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certplus Class 2 Primary CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\164\040\164\101\162\234\335\222\354\171\061\330\043\020\215\302 +\201\222\342\273 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\210\054\214\122\270\242\074\363\367\273\003\352\256\254\102\013 +END +CKA_ISSUER MULTILINE_OCTAL +\060\075\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\023\010\103\145\162\164\160\154 +\165\163\061\033\060\031\006\003\125\004\003\023\022\103\154\141 +\163\163\040\062\040\120\162\151\155\141\162\171\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\205\275\113\363\330\332\343\151\366\224\327\137\303 +\245\104\043 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DST Root CA X3" +# +# Issuer: CN=DST Root CA X3,O=Digital Signature Trust Co. +# Serial Number:44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b +# Subject: CN=DST Root CA X3,O=Digital Signature Trust Co. +# Not Valid Before: Sat Sep 30 21:12:19 2000 +# Not Valid After : Thu Sep 30 14:01:15 2021 +# Fingerprint (MD5): 41:03:52:DC:0F:F7:50:1B:16:F0:02:8E:BA:6F:45:C5 +# Fingerprint (SHA1): DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13 +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 "DST Root CA X3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147 +\151\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124 +\162\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004 +\003\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130 +\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147 +\151\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124 +\162\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004 +\003\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\257\260\200\326\243\047\272\211\060\071\206\056\370 +\100\153 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\112\060\202\002\062\240\003\002\001\002\002\020\104 +\257\260\200\326\243\047\272\211\060\071\206\056\370\100\153\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\077 +\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151\164 +\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165 +\163\164\040\103\157\056\061\027\060\025\006\003\125\004\003\023 +\016\104\123\124\040\122\157\157\164\040\103\101\040\130\063\060 +\036\027\015\060\060\060\071\063\060\062\061\061\062\061\071\132 +\027\015\062\061\060\071\063\060\061\064\060\061\061\065\132\060 +\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147\151 +\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124\162 +\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004\003 +\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130\063 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\337\257\351\227\120\010\203\127\264\314\142\145\366\220\202 +\354\307\323\054\153\060\312\133\354\331\303\175\307\100\301\030 +\024\213\340\350\063\166\111\052\343\077\041\111\223\254\116\016 +\257\076\110\313\145\356\374\323\041\017\145\322\052\331\062\217 +\214\345\367\167\260\022\173\265\225\300\211\243\251\272\355\163 +\056\172\014\006\062\203\242\176\212\024\060\315\021\240\341\052 +\070\271\171\012\061\375\120\275\200\145\337\267\121\143\203\310 +\342\210\141\352\113\141\201\354\122\153\271\242\342\113\032\050 +\237\110\243\236\014\332\011\216\076\027\056\036\335\040\337\133 +\306\052\212\253\056\275\160\255\305\013\032\045\220\164\162\305 +\173\152\253\064\326\060\211\377\345\150\023\173\124\013\310\326 +\256\354\132\234\222\036\075\144\263\214\306\337\277\311\101\160 +\354\026\162\325\046\354\070\125\071\103\320\374\375\030\134\100 +\361\227\353\325\232\233\215\035\272\332\045\271\306\330\337\301 +\025\002\072\253\332\156\361\076\056\365\134\010\234\074\326\203 +\151\344\020\233\031\052\266\051\127\343\345\075\233\237\360\002 +\135\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\304\247\261\244\173\054\161\372\333\341 +\113\220\165\377\304\025\140\205\211\020\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\243\032 +\054\233\027\000\134\251\036\356\050\146\067\072\277\203\307\077 +\113\303\011\240\225\040\135\343\331\131\104\322\076\015\076\275 +\212\113\240\164\037\316\020\202\234\164\032\035\176\230\032\335 +\313\023\113\263\040\104\344\221\351\314\374\175\245\333\152\345 +\376\346\375\340\116\335\267\000\072\265\160\111\257\362\345\353 +\002\361\321\002\213\031\313\224\072\136\110\304\030\036\130\031 +\137\036\002\132\360\014\361\261\255\251\334\131\206\213\156\351 +\221\365\206\312\372\271\146\063\252\131\133\316\342\247\026\163 +\107\313\053\314\231\260\067\110\317\343\126\113\365\317\017\014 +\162\062\207\306\360\104\273\123\162\155\103\365\046\110\232\122 +\147\267\130\253\376\147\166\161\170\333\015\242\126\024\023\071 +\044\061\205\242\250\002\132\060\107\341\335\120\007\274\002\011 +\220\000\353\144\143\140\233\026\274\210\311\022\346\322\175\221 +\213\371\075\062\215\145\264\351\174\261\127\166\352\305\266\050 +\071\277\025\145\034\310\366\167\226\152\012\215\167\013\330\221 +\013\004\216\007\333\051\266\012\356\235\202\065\065\020 +END + +# Trust for Certificate "DST Root CA X3" +# Issuer: CN=DST Root CA X3,O=Digital Signature Trust Co. +# Serial Number:44:af:b0:80:d6:a3:27:ba:89:30:39:86:2e:f8:40:6b +# Subject: CN=DST Root CA X3,O=Digital Signature Trust Co. +# Not Valid Before: Sat Sep 30 21:12:19 2000 +# Not Valid After : Thu Sep 30 14:01:15 2021 +# Fingerprint (MD5): 41:03:52:DC:0F:F7:50:1B:16:F0:02:8E:BA:6F:45:C5 +# Fingerprint (SHA1): DA:C9:02:4F:54:D8:F6:DF:94:93:5F:B1:73:26:38:CA:6A:D7:7C:13 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DST Root CA X3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\332\311\002\117\124\330\366\337\224\223\137\261\163\046\070\312 +\152\327\174\023 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\101\003\122\334\017\367\120\033\026\360\002\216\272\157\105\305 +END +CKA_ISSUER MULTILINE_OCTAL +\060\077\061\044\060\042\006\003\125\004\012\023\033\104\151\147 +\151\164\141\154\040\123\151\147\156\141\164\165\162\145\040\124 +\162\165\163\164\040\103\157\056\061\027\060\025\006\003\125\004 +\003\023\016\104\123\124\040\122\157\157\164\040\103\101\040\130 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\104\257\260\200\326\243\047\272\211\060\071\206\056\370 +\100\153 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DST ACES CA X6" +# +# Issuer: CN=DST ACES CA X6,OU=DST ACES,O=Digital Signature Trust,C=US +# Serial Number:0d:5e:99:0a:d6:9d:b7:78:ec:d8:07:56:3b:86:15:d9 +# Subject: CN=DST ACES CA X6,OU=DST ACES,O=Digital Signature Trust,C=US +# Not Valid Before: Thu Nov 20 21:19:58 2003 +# Not Valid After : Mon Nov 20 21:19:58 2017 +# Fingerprint (MD5): 21:D8:4C:82:2B:99:09:33:A2:EB:14:24:8D:8E:5F:E8 +# Fingerprint (SHA1): 40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1D +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 "DST ACES CA X6" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\133\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\061\021\060\017\006\003\125\004\013\023\010\104\123\124\040 +\101\103\105\123\061\027\060\025\006\003\125\004\003\023\016\104 +\123\124\040\101\103\105\123\040\103\101\040\130\066 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\133\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\061\021\060\017\006\003\125\004\013\023\010\104\123\124\040 +\101\103\105\123\061\027\060\025\006\003\125\004\003\023\016\104 +\123\124\040\101\103\105\123\040\103\101\040\130\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\015\136\231\012\326\235\267\170\354\330\007\126\073\206 +\025\331 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\011\060\202\002\361\240\003\002\001\002\002\020\015 +\136\231\012\326\235\267\170\354\330\007\126\073\206\025\331\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\133 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\040\060 +\036\006\003\125\004\012\023\027\104\151\147\151\164\141\154\040 +\123\151\147\156\141\164\165\162\145\040\124\162\165\163\164\061 +\021\060\017\006\003\125\004\013\023\010\104\123\124\040\101\103 +\105\123\061\027\060\025\006\003\125\004\003\023\016\104\123\124 +\040\101\103\105\123\040\103\101\040\130\066\060\036\027\015\060 +\063\061\061\062\060\062\061\061\071\065\070\132\027\015\061\067 +\061\061\062\060\062\061\061\071\065\070\132\060\133\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\040\060\036\006\003 +\125\004\012\023\027\104\151\147\151\164\141\154\040\123\151\147 +\156\141\164\165\162\145\040\124\162\165\163\164\061\021\060\017 +\006\003\125\004\013\023\010\104\123\124\040\101\103\105\123\061 +\027\060\025\006\003\125\004\003\023\016\104\123\124\040\101\103 +\105\123\040\103\101\040\130\066\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\271\075\365\054\311\224\334 +\165\212\225\135\143\350\204\167\166\146\271\131\221\134\106\335 +\222\076\237\371\016\003\264\075\141\222\275\043\046\265\143\356 +\222\322\236\326\074\310\015\220\137\144\201\261\250\010\015\114 +\330\371\323\005\050\122\264\001\045\305\225\034\014\176\076\020 +\204\165\317\301\031\221\143\317\350\250\221\210\271\103\122\273 +\200\261\125\211\213\061\372\320\267\166\276\101\075\060\232\244 +\042\045\027\163\350\036\342\323\254\052\275\133\070\041\325\052 +\113\327\125\175\343\072\125\275\327\155\153\002\127\153\346\107 +\174\010\310\202\272\336\247\207\075\241\155\270\060\126\302\263 +\002\201\137\055\365\342\232\060\030\050\270\146\323\313\001\226 +\157\352\212\105\125\326\340\235\377\147\053\027\002\246\116\032 +\152\021\013\176\267\173\347\230\326\214\166\157\301\073\333\120 +\223\176\345\320\216\037\067\270\275\272\306\237\154\351\174\063 +\362\062\074\046\107\372\047\044\002\311\176\035\133\210\102\023 +\152\065\174\175\065\351\056\146\221\162\223\325\062\046\304\164 +\365\123\243\263\135\232\366\011\313\002\003\001\000\001\243\201 +\310\060\201\305\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\306\060\037\006\003\125\035\021\004\030\060\026 +\201\024\160\153\151\055\157\160\163\100\164\162\165\163\164\144 +\163\164\056\143\157\155\060\142\006\003\125\035\040\004\133\060 +\131\060\127\006\012\140\206\110\001\145\003\002\001\001\001\060 +\111\060\107\006\010\053\006\001\005\005\007\002\001\026\073\150 +\164\164\160\072\057\057\167\167\167\056\164\162\165\163\164\144 +\163\164\056\143\157\155\057\143\145\162\164\151\146\151\143\141 +\164\145\163\057\160\157\154\151\143\171\057\101\103\105\123\055 +\151\156\144\145\170\056\150\164\155\154\060\035\006\003\125\035 +\016\004\026\004\024\011\162\006\116\030\103\017\345\326\314\303 +\152\213\061\173\170\217\250\203\270\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\243\330\216 +\326\262\333\316\005\347\062\315\001\323\004\003\345\166\344\126 +\053\234\231\220\350\010\060\154\337\175\075\356\345\277\265\044 +\100\204\111\341\321\050\256\304\302\072\123\060\210\361\365\167 +\156\121\312\372\377\231\257\044\137\033\240\375\362\254\204\312 +\337\251\360\137\004\056\255\026\277\041\227\020\201\075\343\377 +\207\215\062\334\224\345\107\212\136\152\023\311\224\225\075\322 +\356\310\064\225\320\200\324\255\062\010\200\124\074\340\275\122 +\123\327\122\174\262\151\077\177\172\317\152\164\312\372\004\052 +\234\114\132\006\245\351\040\255\105\146\017\151\361\335\277\351 +\343\062\213\372\340\301\206\115\162\074\056\330\223\170\012\052 +\370\330\322\047\075\031\211\137\132\173\212\073\314\014\332\121 +\256\307\013\367\053\260\067\005\354\274\127\043\342\070\322\233 +\150\363\126\022\210\117\102\174\270\061\304\265\333\344\310\041 +\064\351\110\021\065\356\372\307\222\127\305\237\064\344\307\366 +\367\016\013\114\234\150\170\173\161\061\307\353\036\340\147\101 +\363\267\240\247\315\345\172\063\066\152\372\232\053 +END + +# Trust for Certificate "DST ACES CA X6" +# Issuer: CN=DST ACES CA X6,OU=DST ACES,O=Digital Signature Trust,C=US +# Serial Number:0d:5e:99:0a:d6:9d:b7:78:ec:d8:07:56:3b:86:15:d9 +# Subject: CN=DST ACES CA X6,OU=DST ACES,O=Digital Signature Trust,C=US +# Not Valid Before: Thu Nov 20 21:19:58 2003 +# Not Valid After : Mon Nov 20 21:19:58 2017 +# Fingerprint (MD5): 21:D8:4C:82:2B:99:09:33:A2:EB:14:24:8D:8E:5F:E8 +# Fingerprint (SHA1): 40:54:DA:6F:1C:3F:40:74:AC:ED:0F:EC:CD:DB:79:D1:53:FB:90:1D +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DST ACES CA X6" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\100\124\332\157\034\077\100\164\254\355\017\354\315\333\171\321 +\123\373\220\035 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\041\330\114\202\053\231\011\063\242\353\024\044\215\216\137\350 +END +CKA_ISSUER MULTILINE_OCTAL +\060\133\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\104\151\147\151\164\141 +\154\040\123\151\147\156\141\164\165\162\145\040\124\162\165\163 +\164\061\021\060\017\006\003\125\004\013\023\010\104\123\124\040 +\101\103\105\123\061\027\060\025\006\003\125\004\003\023\016\104 +\123\124\040\101\103\105\123\040\103\101\040\130\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\015\136\231\012\326\235\267\170\354\330\007\126\073\206 +\025\331 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SwissSign Platinum CA - G2" +# +# Issuer: CN=SwissSign Platinum CA - G2,O=SwissSign AG,C=CH +# Serial Number:4e:b2:00:67:0c:03:5d:4f +# Subject: CN=SwissSign Platinum CA - G2,O=SwissSign AG,C=CH +# Not Valid Before: Wed Oct 25 08:36:00 2006 +# Not Valid After : Sat Oct 25 08:36:00 2036 +# Fingerprint (MD5): C9:98:27:77:28:1E:3D:0E:15:3C:84:00:B8:85:03:E6 +# Fingerprint (SHA1): 56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66 +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 "SwissSign Platinum CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003\023 +\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164\151 +\156\165\155\040\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003\023 +\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164\151 +\156\165\155\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\116\262\000\147\014\003\135\117 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\301\060\202\003\251\240\003\002\001\002\002\010\116 +\262\000\147\014\003\135\117\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\111\061\013\060\011\006\003\125\004 +\006\023\002\103\110\061\025\060\023\006\003\125\004\012\023\014 +\123\167\151\163\163\123\151\147\156\040\101\107\061\043\060\041 +\006\003\125\004\003\023\032\123\167\151\163\163\123\151\147\156 +\040\120\154\141\164\151\156\165\155\040\103\101\040\055\040\107 +\062\060\036\027\015\060\066\061\060\062\065\060\070\063\066\060 +\060\132\027\015\063\066\061\060\062\065\060\070\063\066\060\060 +\132\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163 +\123\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003 +\023\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164 +\151\156\165\155\040\103\101\040\055\040\107\062\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\312\337\242 +\002\342\332\370\374\007\026\261\336\140\252\336\226\134\144\037 +\307\057\176\317\147\372\104\102\326\166\143\225\256\353\257\162 +\040\212\105\107\206\142\170\206\326\040\071\046\364\256\243\375 +\043\347\245\234\265\042\041\031\267\067\223\042\300\120\234\202 +\173\324\325\004\104\134\313\264\302\237\222\276\044\330\173\147 +\042\342\151\137\345\005\170\324\207\331\161\160\063\045\123\264 +\207\073\051\220\050\066\232\125\104\060\150\244\203\227\177\015 +\036\234\166\377\025\235\140\227\000\215\212\205\003\354\200\276 +\352\054\156\020\121\222\314\176\325\243\063\330\326\111\336\130 +\052\257\366\026\353\113\173\220\062\227\271\272\235\130\361\370 +\127\111\004\036\242\135\006\160\335\161\333\371\335\213\232\033 +\214\317\075\243\115\316\313\174\366\273\234\240\372\011\316\043 +\142\262\351\015\037\342\162\050\217\237\254\150\040\175\157\073 +\250\205\061\011\177\013\307\350\145\351\343\170\016\011\147\060 +\213\064\202\373\135\340\314\235\201\155\142\356\010\036\004\054 +\116\233\354\376\251\117\137\375\151\170\357\011\037\241\264\277 +\372\363\357\220\036\114\005\213\036\352\172\221\172\303\327\345 +\373\060\274\154\033\020\130\230\367\032\137\320\051\062\003\023 +\106\115\141\152\205\114\122\164\057\006\037\173\021\342\204\227 +\306\231\363\155\177\327\147\203\176\023\150\330\161\050\132\330 +\316\335\350\020\024\232\376\155\043\207\156\216\132\160\074\325 +\215\011\000\247\252\274\260\061\067\155\310\204\024\036\133\275 +\105\143\040\153\113\164\214\275\333\072\016\301\317\132\026\217 +\245\230\362\166\211\262\023\022\073\013\167\167\254\273\345\074 +\051\112\222\162\312\141\032\053\136\114\342\203\164\167\372\065 +\110\172\205\115\215\232\123\304\337\170\312\227\221\110\053\105 +\053\001\367\034\032\242\355\030\272\012\275\203\372\157\274\215 +\127\223\073\324\324\246\316\036\361\240\261\316\253\375\053\050 +\232\117\033\327\303\162\333\244\304\277\135\114\365\335\173\226 +\151\356\150\200\346\347\230\272\066\267\376\156\355\053\275\040 +\370\145\031\332\125\011\176\045\334\376\141\142\162\371\176\030 +\002\357\143\264\320\373\257\345\073\143\214\147\217\002\003\001 +\000\001\243\201\254\060\201\251\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016 +\004\026\004\024\120\257\314\007\207\025\107\157\070\305\264\145 +\321\336\225\252\351\337\234\314\060\037\006\003\125\035\043\004 +\030\060\026\200\024\120\257\314\007\207\025\107\157\070\305\264 +\145\321\336\225\252\351\337\234\314\060\106\006\003\125\035\040 +\004\077\060\075\060\073\006\011\140\205\164\001\131\001\001\001 +\001\060\056\060\054\006\010\053\006\001\005\005\007\002\001\026 +\040\150\164\164\160\072\057\057\162\145\160\157\163\151\164\157 +\162\171\056\163\167\151\163\163\163\151\147\156\056\143\157\155 +\057\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\002\001\000\010\205\246\365\026\014\374\104\032\301\143 +\340\371\125\106\010\374\160\034\102\050\226\216\267\305\301\101 +\165\116\011\161\171\345\155\226\312\113\245\210\140\320\060\164 +\270\312\010\334\264\060\236\100\007\026\153\145\225\167\001\256 +\244\267\065\013\201\332\161\025\251\164\027\070\173\130\312\371 +\057\373\300\145\166\215\133\001\271\175\336\202\075\144\270\276 +\024\164\243\012\124\323\054\225\030\027\065\365\121\153\077\217 +\242\226\141\071\170\153\113\345\246\240\370\123\337\121\020\223 +\142\347\200\057\342\321\340\274\216\066\106\167\063\354\270\373 +\216\232\054\211\115\061\021\017\046\236\004\273\267\004\215\013 +\362\271\374\132\235\073\026\267\057\310\230\253\376\212\120\131 +\056\243\073\374\051\135\213\301\113\311\342\212\023\035\261\277 +\273\102\035\122\335\116\330\024\136\020\306\061\007\357\161\047 +\367\033\071\011\334\202\352\213\263\225\206\136\375\365\332\135 +\061\246\340\061\266\224\346\104\111\164\305\026\345\367\037\003 +\141\050\305\310\313\022\240\102\113\371\153\210\010\215\264\062 +\030\363\165\237\304\177\000\117\005\225\234\243\027\002\303\263 +\123\233\252\040\071\051\053\146\372\235\257\136\263\222\322\265 +\246\341\032\371\055\101\151\201\024\264\264\265\355\211\075\316 +\373\251\235\065\102\104\261\034\024\163\201\317\052\001\065\232 +\061\325\055\217\155\204\337\200\115\127\343\077\305\204\165\332 +\211\306\060\273\353\217\313\042\010\240\256\252\361\003\154\072 +\113\115\011\245\016\162\306\126\153\041\102\116\043\045\024\150 +\256\166\012\174\014\007\160\144\371\232\057\366\005\071\046\306 +\014\217\031\177\103\136\156\364\133\025\057\333\141\135\346\147 +\057\077\010\224\371\140\264\230\061\332\164\361\204\223\161\115 +\137\373\140\130\321\373\304\301\155\211\242\273\040\037\235\161 +\221\313\062\233\023\075\076\175\222\122\065\254\222\224\242\323 +\030\302\174\307\352\257\166\005\026\335\147\047\302\176\034\007 +\042\041\363\100\012\033\064\007\104\023\302\204\152\216\337\031 +\132\277\177\353\035\342\032\070\321\134\257\107\222\153\200\265 +\060\245\311\215\330\253\061\201\037\337\302\146\067\323\223\251 +\205\206\171\145\322 +END + +# Trust for Certificate "SwissSign Platinum CA - G2" +# Issuer: CN=SwissSign Platinum CA - G2,O=SwissSign AG,C=CH +# Serial Number:4e:b2:00:67:0c:03:5d:4f +# Subject: CN=SwissSign Platinum CA - G2,O=SwissSign AG,C=CH +# Not Valid Before: Wed Oct 25 08:36:00 2006 +# Not Valid After : Sat Oct 25 08:36:00 2036 +# Fingerprint (MD5): C9:98:27:77:28:1E:3D:0E:15:3C:84:00:B8:85:03:E6 +# Fingerprint (SHA1): 56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Platinum CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\126\340\372\300\073\217\030\043\125\030\345\323\021\312\350\302 +\103\061\253\146 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\311\230\047\167\050\036\075\016\025\074\204\000\270\205\003\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\111\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\043\060\041\006\003\125\004\003\023 +\032\123\167\151\163\163\123\151\147\156\040\120\154\141\164\151 +\156\165\155\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\116\262\000\147\014\003\135\117 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SwissSign Gold CA - G2" +# +# Issuer: CN=SwissSign Gold CA - G2,O=SwissSign AG,C=CH +# Serial Number:00:bb:40:1c:43:f5:5e:4f:b0 +# Subject: CN=SwissSign Gold CA - G2,O=SwissSign AG,C=CH +# Not Valid Before: Wed Oct 25 08:30:35 2006 +# Not Valid After : Sat Oct 25 08:30:35 2036 +# Fingerprint (MD5): 24:77:D9:A8:91:D1:3B:FA:88:2D:C2:FF:F8:CD:33:93 +# Fingerprint (SHA1): D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61 +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 "SwissSign Gold CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\037\060\035\006\003\125\004\003\023 +\026\123\167\151\163\163\123\151\147\156\040\107\157\154\144\040 +\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\037\060\035\006\003\125\004\003\023 +\026\123\167\151\163\163\123\151\147\156\040\107\157\154\144\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\273\100\034\103\365\136\117\260 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\272\060\202\003\242\240\003\002\001\002\002\011\000 +\273\100\034\103\365\136\117\260\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\105\061\013\060\011\006\003\125 +\004\006\023\002\103\110\061\025\060\023\006\003\125\004\012\023 +\014\123\167\151\163\163\123\151\147\156\040\101\107\061\037\060 +\035\006\003\125\004\003\023\026\123\167\151\163\163\123\151\147 +\156\040\107\157\154\144\040\103\101\040\055\040\107\062\060\036 +\027\015\060\066\061\060\062\065\060\070\063\060\063\065\132\027 +\015\063\066\061\060\062\065\060\070\063\060\063\065\132\060\105 +\061\013\060\011\006\003\125\004\006\023\002\103\110\061\025\060 +\023\006\003\125\004\012\023\014\123\167\151\163\163\123\151\147 +\156\040\101\107\061\037\060\035\006\003\125\004\003\023\026\123 +\167\151\163\163\123\151\147\156\040\107\157\154\144\040\103\101 +\040\055\040\107\062\060\202\002\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002 +\012\002\202\002\001\000\257\344\356\176\213\044\016\022\156\251 +\120\055\026\104\073\222\222\134\312\270\135\204\222\102\023\052 +\274\145\127\202\100\076\127\044\315\120\213\045\052\267\157\374 +\357\242\320\300\037\002\044\112\023\226\217\043\023\346\050\130 +\000\243\107\307\006\247\204\043\053\273\275\226\053\177\125\314 +\213\301\127\037\016\142\145\017\335\075\126\212\163\332\256\176 +\155\272\201\034\176\102\214\040\065\331\103\115\204\372\204\333 +\122\054\363\016\047\167\013\153\277\021\057\162\170\237\056\330 +\076\346\030\067\132\052\162\371\332\142\220\222\225\312\037\234 +\351\263\074\053\313\363\001\023\277\132\317\301\265\012\140\275 +\335\265\231\144\123\270\240\226\263\157\342\046\167\221\214\340 +\142\020\002\237\064\017\244\325\222\063\121\336\276\215\272\204 +\172\140\074\152\333\237\053\354\336\336\001\077\156\115\345\120 +\206\313\264\257\355\104\100\305\312\132\214\332\322\053\174\250 +\356\276\246\345\012\252\016\245\337\005\122\267\125\307\042\135 +\062\152\227\227\143\023\333\311\333\171\066\173\205\072\112\305 +\122\211\371\044\347\235\167\251\202\377\125\034\245\161\151\053 +\321\002\044\362\263\046\324\153\332\004\125\345\301\012\307\155 +\060\067\220\052\344\236\024\063\136\026\027\125\305\133\265\313 +\064\211\222\361\235\046\217\241\007\324\306\262\170\120\333\014 +\014\013\174\013\214\101\327\271\351\335\214\210\367\243\115\262 +\062\314\330\027\332\315\267\316\146\235\324\375\136\377\275\227 +\076\051\165\347\176\247\142\130\257\045\064\245\101\307\075\274 +\015\120\312\003\003\017\010\132\037\225\163\170\142\277\257\162 +\024\151\016\245\345\003\016\170\216\046\050\102\360\007\013\142 +\040\020\147\071\106\372\251\003\314\004\070\172\146\357\040\203 +\265\214\112\126\216\221\000\374\216\134\202\336\210\240\303\342 +\150\156\175\215\357\074\335\145\364\135\254\121\357\044\200\256 +\252\126\227\157\371\255\175\332\141\077\230\167\074\245\221\266 +\034\214\046\332\145\242\011\155\301\342\124\343\271\312\114\114 +\200\217\167\173\140\232\036\337\266\362\110\036\016\272\116\124 +\155\230\340\341\242\032\242\167\120\317\304\143\222\354\107\031 +\235\353\346\153\316\301\002\003\001\000\001\243\201\254\060\201 +\251\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\035\006\003\125\035\016\004\026\004\024\133\045\173 +\226\244\145\121\176\270\071\363\300\170\146\136\350\072\347\360 +\356\060\037\006\003\125\035\043\004\030\060\026\200\024\133\045 +\173\226\244\145\121\176\270\071\363\300\170\146\136\350\072\347 +\360\356\060\106\006\003\125\035\040\004\077\060\075\060\073\006 +\011\140\205\164\001\131\001\002\001\001\060\056\060\054\006\010 +\053\006\001\005\005\007\002\001\026\040\150\164\164\160\072\057 +\057\162\145\160\157\163\151\164\157\162\171\056\163\167\151\163 +\163\163\151\147\156\056\143\157\155\057\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\002\001\000\047\272 +\343\224\174\361\256\300\336\027\346\345\330\325\365\124\260\203 +\364\273\315\136\005\173\117\237\165\146\257\074\350\126\176\374 +\162\170\070\003\331\053\142\033\000\271\370\351\140\315\314\316 +\121\212\307\120\061\156\341\112\176\030\057\151\131\266\075\144 +\201\053\343\203\204\346\042\207\216\175\340\356\002\231\141\270 +\036\364\270\053\210\022\026\204\302\061\223\070\226\061\246\271 +\073\123\077\303\044\223\126\133\151\222\354\305\301\273\070\000 +\343\354\027\251\270\334\307\174\001\203\237\062\107\272\122\042 +\064\035\062\172\011\126\247\174\045\066\251\075\113\332\300\202 +\157\012\273\022\310\207\113\047\021\371\036\055\307\223\077\236 +\333\137\046\153\122\331\056\212\361\024\306\104\215\025\251\267 +\277\275\336\246\032\356\256\055\373\110\167\027\376\273\354\257 +\030\365\052\121\360\071\204\227\225\154\156\033\303\053\304\164 +\140\171\045\260\012\047\337\337\136\322\071\317\105\175\102\113 +\337\263\054\036\305\306\135\312\125\072\240\234\151\232\217\332 +\357\262\260\074\237\207\154\022\053\145\160\025\122\061\032\044 +\317\157\061\043\120\037\214\117\217\043\303\164\101\143\034\125 +\250\024\335\076\340\121\120\317\361\033\060\126\016\222\260\202 +\205\330\203\313\042\144\274\055\270\045\325\124\242\270\006\352 +\255\222\244\044\240\301\206\265\112\023\152\107\317\056\013\126 +\225\124\313\316\232\333\152\264\246\262\333\101\010\206\047\167 +\367\152\240\102\154\013\070\316\327\165\120\062\222\302\337\053 +\060\042\110\320\325\101\070\045\135\244\351\135\237\306\224\165 +\320\105\375\060\227\103\217\220\253\012\307\206\163\140\112\151 +\055\336\245\170\327\006\332\152\236\113\076\167\072\040\023\042 +\001\320\277\150\236\143\140\153\065\115\013\155\272\241\075\300 +\223\340\177\043\263\125\255\162\045\116\106\371\322\026\357\260 +\144\301\001\236\351\312\240\152\230\016\317\330\140\362\057\111 +\270\344\102\341\070\065\026\364\310\156\117\367\201\126\350\272 +\243\276\043\257\256\375\157\003\340\002\073\060\166\372\033\155 +\101\317\001\261\351\270\311\146\364\333\046\363\072\244\164\362 +\111\044\133\311\260\320\127\301\372\076\172\341\227\311 +END + +# Trust for Certificate "SwissSign Gold CA - G2" +# Issuer: CN=SwissSign Gold CA - G2,O=SwissSign AG,C=CH +# Serial Number:00:bb:40:1c:43:f5:5e:4f:b0 +# Subject: CN=SwissSign Gold CA - G2,O=SwissSign AG,C=CH +# Not Valid Before: Wed Oct 25 08:30:35 2006 +# Not Valid After : Sat Oct 25 08:30:35 2036 +# Fingerprint (MD5): 24:77:D9:A8:91:D1:3B:FA:88:2D:C2:FF:F8:CD:33:93 +# Fingerprint (SHA1): D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Gold CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\330\305\070\212\267\060\033\033\156\324\172\346\105\045\072\157 +\237\032\047\141 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\044\167\331\250\221\321\073\372\210\055\302\377\370\315\063\223 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\037\060\035\006\003\125\004\003\023 +\026\123\167\151\163\163\123\151\147\156\040\107\157\154\144\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\273\100\034\103\365\136\117\260 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SwissSign Silver CA - G2" +# +# Issuer: CN=SwissSign Silver CA - G2,O=SwissSign AG,C=CH +# Serial Number:4f:1b:d4:2f:54:bb:2f:4b +# Subject: CN=SwissSign Silver CA - G2,O=SwissSign AG,C=CH +# Not Valid Before: Wed Oct 25 08:32:46 2006 +# Not Valid After : Sat Oct 25 08:32:46 2036 +# Fingerprint (MD5): E0:06:A1:C9:7D:CF:C9:FC:0D:C0:56:75:96:D8:62:13 +# Fingerprint (SHA1): 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB +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 "SwissSign Silver CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023 +\030\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145 +\162\040\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023 +\030\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145 +\162\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\117\033\324\057\124\273\057\113 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\275\060\202\003\245\240\003\002\001\002\002\010\117 +\033\324\057\124\273\057\113\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\107\061\013\060\011\006\003\125\004 +\006\023\002\103\110\061\025\060\023\006\003\125\004\012\023\014 +\123\167\151\163\163\123\151\147\156\040\101\107\061\041\060\037 +\006\003\125\004\003\023\030\123\167\151\163\163\123\151\147\156 +\040\123\151\154\166\145\162\040\103\101\040\055\040\107\062\060 +\036\027\015\060\066\061\060\062\065\060\070\063\062\064\066\132 +\027\015\063\066\061\060\062\065\060\070\063\062\064\066\132\060 +\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061\025 +\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123\151 +\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023\030 +\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145\162 +\040\103\101\040\055\040\107\062\060\202\002\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000 +\060\202\002\012\002\202\002\001\000\304\361\207\177\323\170\061 +\367\070\311\370\303\231\103\274\307\367\274\067\347\116\161\272 +\113\217\245\163\035\134\156\230\256\003\127\256\070\067\103\057 +\027\075\037\310\316\150\020\301\170\256\031\003\053\020\372\054 +\171\203\366\350\271\150\271\125\362\004\104\247\071\371\374\004 +\213\036\361\242\115\047\371\141\173\272\267\345\242\023\266\353 +\141\076\320\154\321\346\373\372\136\355\035\264\236\240\065\133 +\241\222\313\360\111\222\376\205\012\005\076\346\331\013\342\117 +\273\334\225\067\374\221\351\062\065\042\321\037\072\116\047\205 +\235\260\025\224\062\332\141\015\107\115\140\102\256\222\107\350 +\203\132\120\130\351\212\213\271\135\241\334\335\231\112\037\066 +\147\273\110\344\203\266\067\353\110\072\257\017\147\217\027\007 +\350\004\312\357\152\061\207\324\300\266\371\224\161\173\147\144 +\270\266\221\112\102\173\145\056\060\152\014\365\220\356\225\346 +\362\315\202\354\331\241\112\354\366\262\113\345\105\205\346\155 +\170\223\004\056\234\202\155\066\251\304\061\144\037\206\203\013 +\052\364\065\012\170\311\125\317\101\260\107\351\060\237\231\276 +\141\250\006\204\271\050\172\137\070\331\033\251\070\260\203\177 +\163\301\303\073\110\052\202\017\041\233\270\314\250\065\303\204 +\033\203\263\076\276\244\225\151\001\072\211\000\170\004\331\311 +\364\231\031\253\126\176\133\213\206\071\025\221\244\020\054\011 +\062\200\140\263\223\300\052\266\030\013\235\176\215\111\362\020 +\112\177\371\325\106\057\031\222\243\231\247\046\254\273\214\074 +\346\016\274\107\007\334\163\121\361\160\144\057\010\371\264\107 +\035\060\154\104\352\051\067\205\222\150\146\274\203\070\376\173 +\071\056\323\120\360\037\373\136\140\266\251\246\372\047\101\361 +\233\030\162\362\365\204\164\112\311\147\304\124\256\110\144\337 +\214\321\156\260\035\341\007\217\010\036\231\234\161\351\114\330 +\245\367\107\022\037\164\321\121\236\206\363\302\242\043\100\013 +\163\333\113\246\347\163\006\214\301\240\351\301\131\254\106\372 +\346\057\370\317\161\234\106\155\271\304\025\215\070\171\003\105 +\110\357\304\135\327\010\356\207\071\042\206\262\015\017\130\103 +\367\161\251\110\056\375\352\326\037\002\003\001\000\001\243\201 +\254\060\201\251\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024 +\027\240\315\301\344\101\266\072\133\073\313\105\235\275\034\302 +\230\372\206\130\060\037\006\003\125\035\043\004\030\060\026\200 +\024\027\240\315\301\344\101\266\072\133\073\313\105\235\275\034 +\302\230\372\206\130\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\011\140\205\164\001\131\001\003\001\001\060\056\060 +\054\006\010\053\006\001\005\005\007\002\001\026\040\150\164\164 +\160\072\057\057\162\145\160\157\163\151\164\157\162\171\056\163 +\167\151\163\163\163\151\147\156\056\143\157\155\057\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001 +\000\163\306\201\340\047\322\055\017\340\225\060\342\232\101\177 +\120\054\137\137\142\141\251\206\152\151\030\014\164\111\326\135 +\204\352\101\122\030\157\130\255\120\126\040\152\306\275\050\151 +\130\221\334\221\021\065\251\072\035\274\032\245\140\236\330\037 +\177\105\221\151\331\176\273\170\162\301\006\017\052\316\217\205 +\160\141\254\240\315\013\270\071\051\126\204\062\116\206\273\075 +\304\052\331\327\037\162\356\376\121\241\042\101\261\161\002\143 +\032\202\260\142\253\136\127\022\037\337\313\335\165\240\300\135 +\171\220\214\033\340\120\346\336\061\376\230\173\160\137\245\220 +\330\255\370\002\266\157\323\140\335\100\113\042\305\075\255\072 +\172\237\032\032\107\221\171\063\272\202\334\062\151\003\226\156 +\037\113\360\161\376\343\147\162\240\261\277\134\213\344\372\231 +\042\307\204\271\033\215\043\227\077\355\045\340\317\145\273\365 +\141\004\357\335\036\262\132\101\042\132\241\237\135\054\350\133 +\311\155\251\014\014\170\252\140\306\126\217\001\132\014\150\274 +\151\031\171\304\037\176\227\005\277\305\351\044\121\136\324\325 +\113\123\355\331\043\132\066\003\145\243\301\003\255\101\060\363 +\106\033\205\220\257\145\265\325\261\344\026\133\170\165\035\227 +\172\155\131\251\052\217\173\336\303\207\211\020\231\111\163\170 +\310\075\275\121\065\164\052\325\361\176\151\033\052\273\073\275 +\045\270\232\132\075\162\141\220\146\207\356\014\326\115\324\021 +\164\013\152\376\013\003\374\243\125\127\211\376\112\313\256\133 +\027\005\310\362\215\043\061\123\070\322\055\152\077\202\271\215 +\010\152\367\136\101\164\156\303\021\176\007\254\051\140\221\077 +\070\312\127\020\015\275\060\057\307\245\346\101\240\332\256\005 +\207\232\240\244\145\154\114\011\014\211\272\270\323\271\300\223 +\212\060\372\215\345\232\153\025\001\116\147\252\332\142\126\076 +\204\010\146\322\304\066\175\247\076\020\374\210\340\324\200\345 +\000\275\252\363\116\006\243\172\152\371\142\162\343\011\117\353 +\233\016\001\043\361\237\273\174\334\334\154\021\227\045\262\362 +\264\143\024\322\006\052\147\214\203\365\316\352\007\330\232\152 +\036\354\344\012\273\052\114\353\011\140\071\316\312\142\330\056 +\156 +END + +# Trust for Certificate "SwissSign Silver CA - G2" +# Issuer: CN=SwissSign Silver CA - G2,O=SwissSign AG,C=CH +# Serial Number:4f:1b:d4:2f:54:bb:2f:4b +# Subject: CN=SwissSign Silver CA - G2,O=SwissSign AG,C=CH +# Not Valid Before: Wed Oct 25 08:32:46 2006 +# Not Valid After : Sat Oct 25 08:32:46 2036 +# Fingerprint (MD5): E0:06:A1:C9:7D:CF:C9:FC:0D:C0:56:75:96:D8:62:13 +# Fingerprint (SHA1): 9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SwissSign Silver CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\233\252\345\237\126\356\041\313\103\132\276\045\223\337\247\360 +\100\321\035\313 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\340\006\241\311\175\317\311\374\015\300\126\165\226\330\142\023 +END +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\025\060\023\006\003\125\004\012\023\014\123\167\151\163\163\123 +\151\147\156\040\101\107\061\041\060\037\006\003\125\004\003\023 +\030\123\167\151\163\163\123\151\147\156\040\123\151\154\166\145 +\162\040\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\117\033\324\057\124\273\057\113 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Primary Certification Authority" +# +# Issuer: CN=GeoTrust Primary Certification Authority,O=GeoTrust Inc.,C=US +# Serial Number:18:ac:b5:6a:fd:69:b6:15:3a:63:6c:af:da:fa:c4:a1 +# Subject: CN=GeoTrust Primary Certification Authority,O=GeoTrust Inc.,C=US +# Not Valid Before: Mon Nov 27 00:00:00 2006 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): 02:26:C3:01:5E:08:30:37:43:A9:D0:7D:CF:37:E6:BF +# Fingerprint (SHA1): 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96 +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 "GeoTrust Primary Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\061\060\057\006\003\125\004\003 +\023\050\107\145\157\124\162\165\163\164\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\061\060\057\006\003\125\004\003 +\023\050\107\145\157\124\162\165\163\164\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\254\265\152\375\151\266\025\072\143\154\257\332\372 +\304\241 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\174\060\202\002\144\240\003\002\001\002\002\020\030 +\254\265\152\375\151\266\025\072\143\154\257\332\372\304\241\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\130 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026\060 +\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163\164 +\040\111\156\143\056\061\061\060\057\006\003\125\004\003\023\050 +\107\145\157\124\162\165\163\164\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\060\036\027\015\060\066\061\061 +\062\067\060\060\060\060\060\060\132\027\015\063\066\060\067\061 +\066\062\063\065\071\065\071\132\060\130\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012 +\023\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061 +\061\060\057\006\003\125\004\003\023\050\107\145\157\124\162\165 +\163\164\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\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\270\025\173\377\324\174\175\147\255\203\144\173 +\310\102\123\055\337\366\204\010\040\141\326\001\131\152\234\104 +\021\257\357\166\375\225\176\316\141\060\273\172\203\137\002\275 +\001\146\312\356\025\215\157\241\060\234\275\241\205\236\224\072 +\363\126\210\000\061\317\330\356\152\226\002\331\355\003\214\373 +\165\155\347\352\270\125\026\005\026\232\364\340\136\261\210\300 +\144\205\134\025\115\210\307\267\272\340\165\351\255\005\075\235 +\307\211\110\340\273\050\310\003\341\060\223\144\136\122\300\131 +\160\042\065\127\210\212\361\225\012\203\327\274\061\163\001\064 +\355\357\106\161\340\153\002\250\065\162\153\227\233\146\340\313 +\034\171\137\330\032\004\150\036\107\002\346\235\140\342\066\227 +\001\337\316\065\222\337\276\147\307\155\167\131\073\217\235\326 +\220\025\224\274\102\064\020\301\071\371\261\047\076\176\326\212 +\165\305\262\257\226\323\242\336\233\344\230\276\175\341\351\201 +\255\266\157\374\327\016\332\340\064\260\015\032\167\347\343\010 +\230\357\130\372\234\204\267\066\257\302\337\254\322\364\020\006 +\160\161\065\002\003\001\000\001\243\102\060\100\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006 +\003\125\035\016\004\026\004\024\054\325\120\101\227\025\213\360 +\217\066\141\133\112\373\153\331\231\311\063\222\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\132\160\177\054\335\267\064\117\365\206\121\251\046\276\113\270 +\252\361\161\015\334\141\307\240\352\064\036\172\167\017\004\065 +\350\047\217\154\220\277\221\026\044\106\076\112\116\316\053\026 +\325\013\122\035\374\037\147\242\002\105\061\117\316\363\372\003 +\247\171\235\123\152\331\332\143\072\370\200\327\323\231\341\245 +\341\276\324\125\161\230\065\072\276\223\352\256\255\102\262\220 +\157\340\374\041\115\065\143\063\211\111\326\233\116\312\307\347 +\116\011\000\367\332\307\357\231\142\231\167\266\225\042\136\212 +\240\253\364\270\170\230\312\070\031\231\311\162\236\170\315\113 +\254\257\031\240\163\022\055\374\302\101\272\201\221\332\026\132 +\061\267\371\264\161\200\022\110\231\162\163\132\131\123\301\143 +\122\063\355\247\311\322\071\002\160\372\340\261\102\146\051\252 +\233\121\355\060\124\042\024\137\331\253\035\301\344\224\360\370 +\365\053\367\352\312\170\106\326\270\221\375\246\015\053\032\024 +\001\076\200\360\102\240\225\007\136\155\315\314\113\244\105\215 +\253\022\350\263\336\132\345\240\174\350\017\042\035\132\351\131 +END + +# Trust for Certificate "GeoTrust Primary Certification Authority" +# Issuer: CN=GeoTrust Primary Certification Authority,O=GeoTrust Inc.,C=US +# Serial Number:18:ac:b5:6a:fd:69:b6:15:3a:63:6c:af:da:fa:c4:a1 +# Subject: CN=GeoTrust Primary Certification Authority,O=GeoTrust Inc.,C=US +# Not Valid Before: Mon Nov 27 00:00:00 2006 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): 02:26:C3:01:5E:08:30:37:43:A9:D0:7D:CF:37:E6:BF +# Fingerprint (SHA1): 32:3C:11:8E:1B:F7:B8:B6:52:54:E2:E2:10:0D:D6:02:90:37:F0:96 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\062\074\021\216\033\367\270\266\122\124\342\342\020\015\326\002 +\220\067\360\226 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\002\046\303\001\136\010\060\067\103\251\320\175\317\067\346\277 +END +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165 +\163\164\040\111\156\143\056\061\061\060\057\006\003\125\004\003 +\023\050\107\145\157\124\162\165\163\164\040\120\162\151\155\141 +\162\171\040\103\145\162\164\151\146\151\143\141\164\151\157\156 +\040\101\165\164\150\157\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\254\265\152\375\151\266\025\072\143\154\257\332\372 +\304\241 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "thawte Primary Root CA" +# +# Issuer: CN=thawte Primary Root CA,OU="(c) 2006 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Serial Number:34:4e:d5:57:20:d5:ed:ec:49:f4:2f:ce:37:db:2b:6d +# Subject: CN=thawte Primary Root CA,OU="(c) 2006 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Not Valid Before: Fri Nov 17 00:00:00 2006 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): 8C:CA:DC:0B:22:CE:F5:BE:72:AC:41:1A:11:A8:D8:12 +# Fingerprint (SHA1): 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81 +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 "thawte Primary Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\066\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035\006 +\003\125\004\003\023\026\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\066\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035\006 +\003\125\004\003\023\026\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\064\116\325\127\040\325\355\354\111\364\057\316\067\333 +\053\155 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\040\060\202\003\010\240\003\002\001\002\002\020\064 +\116\325\127\040\325\355\354\111\364\057\316\067\333\053\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\251\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025 +\060\023\006\003\125\004\012\023\014\164\150\141\167\164\145\054 +\040\111\156\143\056\061\050\060\046\006\003\125\004\013\023\037 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\040\104\151\166\151\163\151\157\156\061 +\070\060\066\006\003\125\004\013\023\057\050\143\051\040\062\060 +\060\066\040\164\150\141\167\164\145\054\040\111\156\143\056\040 +\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144 +\040\165\163\145\040\157\156\154\171\061\037\060\035\006\003\125 +\004\003\023\026\164\150\141\167\164\145\040\120\162\151\155\141 +\162\171\040\122\157\157\164\040\103\101\060\036\027\015\060\066 +\061\061\061\067\060\060\060\060\060\060\132\027\015\063\066\060 +\067\061\066\062\063\065\071\065\071\132\060\201\251\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006\003 +\125\004\012\023\014\164\150\141\167\164\145\054\040\111\156\143 +\056\061\050\060\046\006\003\125\004\013\023\037\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\040\104\151\166\151\163\151\157\156\061\070\060\066\006 +\003\125\004\013\023\057\050\143\051\040\062\060\060\066\040\164 +\150\141\167\164\145\054\040\111\156\143\056\040\055\040\106\157 +\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145 +\040\157\156\154\171\061\037\060\035\006\003\125\004\003\023\026 +\164\150\141\167\164\145\040\120\162\151\155\141\162\171\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\254\240\360\373\200\131\324\234\307 +\244\317\235\241\131\163\011\020\105\014\015\054\156\150\361\154 +\133\110\150\111\131\067\374\013\063\031\302\167\177\314\020\055 +\225\064\034\346\353\115\011\247\034\322\270\311\227\066\002\267 +\211\324\044\137\006\300\314\104\224\224\215\002\142\157\353\132 +\335\021\215\050\232\134\204\220\020\172\015\275\164\146\057\152 +\070\240\342\325\124\104\353\035\007\237\007\272\157\356\351\375 +\116\013\051\365\076\204\240\001\361\234\253\370\034\176\211\244 +\350\241\330\161\145\015\243\121\173\356\274\322\042\140\015\271 +\133\235\337\272\374\121\133\013\257\230\262\351\056\351\004\350 +\142\207\336\053\310\327\116\301\114\144\036\335\317\207\130\272 +\112\117\312\150\007\035\034\235\112\306\325\057\221\314\174\161 +\162\034\305\300\147\353\062\375\311\222\134\224\332\205\300\233 +\277\123\175\053\011\364\214\235\221\037\227\152\122\313\336\011 +\066\244\167\330\173\207\120\104\325\076\156\051\151\373\071\111 +\046\036\011\245\200\173\100\055\353\350\047\205\311\376\141\375 +\176\346\174\227\035\325\235\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\035\006\003\125\035\016\004\026\004\024\173\133\105\317 +\257\316\313\172\375\061\222\032\152\266\363\106\353\127\110\120 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\171\021\300\113\263\221\266\374\360\351\147\324 +\015\156\105\276\125\350\223\322\316\003\077\355\332\045\260\035 +\127\313\036\072\166\240\114\354\120\166\350\144\162\014\244\251 +\361\270\213\326\326\207\204\273\062\345\101\021\300\167\331\263 +\140\235\353\033\325\321\156\104\104\251\246\001\354\125\142\035 +\167\270\134\216\110\111\174\234\073\127\021\254\255\163\067\216 +\057\170\134\220\150\107\331\140\140\346\374\007\075\042\040\027 +\304\367\026\351\304\330\162\371\310\163\174\337\026\057\025\251 +\076\375\152\047\266\241\353\132\272\230\037\325\343\115\144\012 +\235\023\310\141\272\365\071\034\207\272\270\275\173\042\177\366 +\376\254\100\171\345\254\020\157\075\217\033\171\166\213\304\067 +\263\041\030\204\345\066\000\353\143\040\231\271\351\376\063\004 +\273\101\310\301\002\371\104\143\040\236\201\316\102\323\326\077 +\054\166\323\143\234\131\335\217\246\341\016\240\056\101\367\056 +\225\107\317\274\375\063\363\366\013\141\176\176\221\053\201\107 +\302\047\060\356\247\020\135\067\217\134\071\053\344\004\360\173 +\215\126\214\150 +END + +# Trust for Certificate "thawte Primary Root CA" +# Issuer: CN=thawte Primary Root CA,OU="(c) 2006 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Serial Number:34:4e:d5:57:20:d5:ed:ec:49:f4:2f:ce:37:db:2b:6d +# Subject: CN=thawte Primary Root CA,OU="(c) 2006 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Not Valid Before: Fri Nov 17 00:00:00 2006 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): 8C:CA:DC:0B:22:CE:F5:BE:72:AC:41:1A:11:A8:D8:12 +# Fingerprint (SHA1): 91:C6:D6:EE:3E:8A:C8:63:84:E5:48:C2:99:29:5C:75:6C:81:7B:81 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\221\306\326\356\076\212\310\143\204\345\110\302\231\051\134\165 +\154\201\173\201 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\214\312\334\013\042\316\365\276\162\254\101\032\021\250\330\022 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\251\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\066\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\037\060\035\006 +\003\125\004\003\023\026\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\064\116\325\127\040\325\355\354\111\364\057\316\067\333 +\053\155 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign Class 3 Public Primary Certification Authority - G5" +# +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:18:da:d1:9e:26:7d:e8:bb:4a:21:58:cd:cc:6b:3b:4a +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Wed Nov 08 00:00:00 2006 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): CB:17:E4:31:67:3E:E2:09:FE:45:57:93:F3:0A:FA:1C +# Fingerprint (SHA1): 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5 +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 "VeriSign Class 3 Public Primary Certification Authority - G5" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\332\321\236\046\175\350\273\112\041\130\315\314\153 +\073\112 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\323\060\202\003\273\240\003\002\001\002\002\020\030 +\332\321\236\046\175\350\273\112\041\130\315\314\153\073\112\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\312\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\066\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\105\060\103\006\003\125\004\003\023\074\126 +\145\162\151\123\151\147\156\040\103\154\141\163\163\040\063\040 +\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\065\060\036\027\015\060 +\066\061\061\060\070\060\060\060\060\060\060\132\027\015\063\066 +\060\067\061\066\062\063\065\071\065\071\132\060\201\312\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006 +\003\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126 +\145\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061 +\050\143\051\040\062\060\060\066\040\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151 +\123\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142 +\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\055\040\107\065\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\257\044\010\010\051\172\065 +\236\140\014\252\347\113\073\116\334\174\274\074\105\034\273\053 +\340\376\051\002\371\127\010\243\144\205\025\047\365\361\255\310 +\061\211\135\042\350\052\252\246\102\263\217\370\271\125\267\261 +\267\113\263\376\217\176\007\127\354\357\103\333\146\142\025\141 +\317\140\015\244\330\336\370\340\303\142\010\075\124\023\353\111 +\312\131\124\205\046\345\053\217\033\237\353\365\241\221\302\063 +\111\330\103\143\152\122\113\322\217\350\160\121\115\321\211\151 +\173\307\160\366\263\334\022\164\333\173\135\113\126\323\226\277 +\025\167\241\260\364\242\045\362\257\034\222\147\030\345\364\006 +\004\357\220\271\344\000\344\335\072\265\031\377\002\272\364\074 +\356\340\213\353\067\213\354\364\327\254\362\366\360\075\257\335 +\165\221\063\031\035\034\100\313\164\044\031\041\223\331\024\376 +\254\052\122\307\217\325\004\111\344\215\143\107\210\074\151\203 +\313\376\107\275\053\176\117\305\225\256\016\235\324\321\103\300 +\147\163\343\024\010\176\345\077\237\163\270\063\012\317\135\077 +\064\207\226\212\356\123\350\045\025\002\003\001\000\001\243\201 +\262\060\201\257\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\155\006\010\053\006\001\005\005\007\001 +\014\004\141\060\137\241\135\240\133\060\131\060\127\060\125\026 +\011\151\155\141\147\145\057\147\151\146\060\041\060\037\060\007 +\006\005\053\016\003\002\032\004\024\217\345\323\032\206\254\215 +\216\153\303\317\200\152\324\110\030\054\173\031\056\060\045\026 +\043\150\164\164\160\072\057\057\154\157\147\157\056\166\145\162 +\151\163\151\147\156\056\143\157\155\057\166\163\154\157\147\157 +\056\147\151\146\060\035\006\003\125\035\016\004\026\004\024\177 +\323\145\247\302\335\354\273\360\060\011\363\103\071\372\002\257 +\063\061\063\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\223\044\112\060\137\142\317\330\032 +\230\057\075\352\334\231\055\275\167\366\245\171\042\070\354\304 +\247\240\170\022\255\142\016\105\160\144\305\347\227\146\055\230 +\011\176\137\257\326\314\050\145\362\001\252\010\032\107\336\371 +\371\174\222\132\010\151\040\015\331\076\155\156\074\015\156\330 +\346\006\221\100\030\271\370\301\355\337\333\101\252\340\226\040 +\311\315\144\025\070\201\311\224\356\242\204\051\013\023\157\216 +\333\014\335\045\002\333\244\213\031\104\322\101\172\005\151\112 +\130\117\140\312\176\202\152\013\002\252\045\027\071\265\333\177 +\347\204\145\052\225\212\275\206\336\136\201\026\203\055\020\314 +\336\375\250\202\052\155\050\037\015\013\304\345\347\032\046\031 +\341\364\021\157\020\265\225\374\347\102\005\062\333\316\235\121 +\136\050\266\236\205\323\133\357\245\175\105\100\162\216\267\016 +\153\016\006\373\063\065\110\161\270\235\047\213\304\145\137\015 +\206\166\234\104\172\366\225\134\366\135\062\010\063\244\124\266 +\030\077\150\134\362\102\112\205\070\124\203\137\321\350\054\362 +\254\021\326\250\355\143\152 +END + +# Trust for Certificate "VeriSign Class 3 Public Primary Certification Authority - G5" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:18:da:d1:9e:26:7d:e8:bb:4a:21:58:cd:cc:6b:3b:4a +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Wed Nov 08 00:00:00 2006 +# Not Valid After : Wed Jul 16 23:59:59 2036 +# Fingerprint (MD5): CB:17:E4:31:67:3E:E2:09:FE:45:57:93:F3:0A:FA:1C +# Fingerprint (SHA1): 4E:B6:D5:78:49:9B:1C:CF:5F:58:1E:AD:56:BE:3D:9B:67:44:A5:E5 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Class 3 Public Primary Certification Authority - G5" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\116\266\325\170\111\233\034\317\137\130\036\255\126\276\075\233 +\147\104\245\345 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\313\027\344\061\147\076\342\011\376\105\127\223\363\012\372\034 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\030\332\321\236\046\175\350\273\112\041\130\315\314\153 +\073\112 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SecureTrust CA" +# +# Issuer: CN=SecureTrust CA,O=SecureTrust Corporation,C=US +# Serial Number:0c:f0:8e:5c:08:16:a5:ad:42:7f:f0:eb:27:18:59:d0 +# Subject: CN=SecureTrust CA,O=SecureTrust Corporation,C=US +# Not Valid Before: Tue Nov 07 19:31:18 2006 +# Not Valid After : Mon Dec 31 19:40:55 2029 +# Fingerprint (MD5): DC:32:C3:A7:6D:25:57:C7:68:09:9D:EA:2D:A9:A2:D1 +# Fingerprint (SHA1): 87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11 +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 "SecureTrust CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\110\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\027\060\025\006\003\125\004\003\023\016\123\145\143\165 +\162\145\124\162\165\163\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\110\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\027\060\025\006\003\125\004\003\023\016\123\145\143\165 +\162\145\124\162\165\163\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\360\216\134\010\026\245\255\102\177\360\353\047\030 +\131\320 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\270\060\202\002\240\240\003\002\001\002\002\020\014 +\360\216\134\010\026\245\255\102\177\360\353\047\030\131\320\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\110 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\040\060 +\036\006\003\125\004\012\023\027\123\145\143\165\162\145\124\162 +\165\163\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\027\060\025\006\003\125\004\003\023\016\123\145\143\165\162\145 +\124\162\165\163\164\040\103\101\060\036\027\015\060\066\061\061 +\060\067\061\071\063\061\061\070\132\027\015\062\071\061\062\063 +\061\061\071\064\060\065\065\132\060\110\061\013\060\011\006\003 +\125\004\006\023\002\125\123\061\040\060\036\006\003\125\004\012 +\023\027\123\145\143\165\162\145\124\162\165\163\164\040\103\157 +\162\160\157\162\141\164\151\157\156\061\027\060\025\006\003\125 +\004\003\023\016\123\145\143\165\162\145\124\162\165\163\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\253\244\201\345\225\315\365\366\024\216\302\117\312 +\324\342\170\225\130\234\101\341\015\231\100\044\027\071\221\063 +\146\351\276\341\203\257\142\134\211\321\374\044\133\141\263\340 +\021\021\101\034\035\156\360\270\273\370\336\247\201\272\246\110 +\306\237\035\275\276\216\251\101\076\270\224\355\051\032\324\216 +\322\003\035\003\357\155\015\147\034\127\327\006\255\312\310\365 +\376\016\257\146\045\110\004\226\013\135\243\272\026\303\010\117 +\321\106\370\024\134\362\310\136\001\231\155\375\210\314\206\250 +\301\157\061\102\154\122\076\150\313\363\031\064\337\273\207\030 +\126\200\046\304\320\334\300\157\337\336\240\302\221\026\240\144 +\021\113\104\274\036\366\347\372\143\336\146\254\166\244\161\243 +\354\066\224\150\172\167\244\261\347\016\057\201\172\342\265\162 +\206\357\242\153\213\360\017\333\323\131\077\272\162\274\104\044 +\234\343\163\263\367\257\127\057\102\046\235\251\164\272\000\122 +\362\113\315\123\174\107\013\066\205\016\146\251\010\227\026\064 +\127\301\146\367\200\343\355\160\124\307\223\340\056\050\025\131 +\207\272\273\002\003\001\000\001\243\201\235\060\201\232\060\023 +\006\011\053\006\001\004\001\202\067\024\002\004\006\036\004\000 +\103\000\101\060\013\006\003\125\035\017\004\004\003\002\001\206 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\035\006\003\125\035\016\004\026\004\024\102\062\266\026 +\372\004\375\376\135\113\172\303\375\367\114\100\035\132\103\257 +\060\064\006\003\125\035\037\004\055\060\053\060\051\240\047\240 +\045\206\043\150\164\164\160\072\057\057\143\162\154\056\163\145 +\143\165\162\145\164\162\165\163\164\056\143\157\155\057\123\124 +\103\101\056\143\162\154\060\020\006\011\053\006\001\004\001\202 +\067\025\001\004\003\002\001\000\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\060\355\117\112 +\341\130\072\122\162\133\265\246\243\145\030\246\273\121\073\167 +\351\235\352\323\237\134\340\105\145\173\015\312\133\342\160\120 +\262\224\005\024\256\111\307\215\101\007\022\163\224\176\014\043 +\041\375\274\020\177\140\020\132\162\365\230\016\254\354\271\177 +\335\172\157\135\323\034\364\377\210\005\151\102\251\005\161\310 +\267\254\046\350\056\264\214\152\377\161\334\270\261\337\231\274 +\174\041\124\053\344\130\242\273\127\051\256\236\251\243\031\046 +\017\231\056\010\260\357\375\151\317\231\032\011\215\343\247\237 +\053\311\066\064\173\044\263\170\114\225\027\244\006\046\036\266 +\144\122\066\137\140\147\331\234\305\005\164\013\347\147\043\322 +\010\374\210\351\256\213\177\341\060\364\067\176\375\306\062\332 +\055\236\104\060\060\154\356\007\336\322\064\374\322\377\100\366 +\113\364\146\106\006\124\246\362\062\012\143\046\060\153\233\321 +\334\213\107\272\341\271\325\142\320\242\240\364\147\005\170\051 +\143\032\157\004\326\370\306\114\243\232\261\067\264\215\345\050 +\113\035\236\054\302\270\150\274\355\002\356\061 +END + +# Trust for Certificate "SecureTrust CA" +# Issuer: CN=SecureTrust CA,O=SecureTrust Corporation,C=US +# Serial Number:0c:f0:8e:5c:08:16:a5:ad:42:7f:f0:eb:27:18:59:d0 +# Subject: CN=SecureTrust CA,O=SecureTrust Corporation,C=US +# Not Valid Before: Tue Nov 07 19:31:18 2006 +# Not Valid After : Mon Dec 31 19:40:55 2029 +# Fingerprint (MD5): DC:32:C3:A7:6D:25:57:C7:68:09:9D:EA:2D:A9:A2:D1 +# Fingerprint (SHA1): 87:82:C6:C3:04:35:3B:CF:D2:96:92:D2:59:3E:7D:44:D9:34:FF:11 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SecureTrust CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\207\202\306\303\004\065\073\317\322\226\222\322\131\076\175\104 +\331\064\377\021 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\334\062\303\247\155\045\127\307\150\011\235\352\055\251\242\321 +END +CKA_ISSUER MULTILINE_OCTAL +\060\110\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\027\060\025\006\003\125\004\003\023\016\123\145\143\165 +\162\145\124\162\165\163\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\014\360\216\134\010\026\245\255\102\177\360\353\047\030 +\131\320 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Secure Global CA" +# +# Issuer: CN=Secure Global CA,O=SecureTrust Corporation,C=US +# Serial Number:07:56:22:a4:e8:d4:8a:89:4d:f4:13:c8:f0:f8:ea:a5 +# Subject: CN=Secure Global CA,O=SecureTrust Corporation,C=US +# Not Valid Before: Tue Nov 07 19:42:28 2006 +# Not Valid After : Mon Dec 31 19:52:06 2029 +# Fingerprint (MD5): CF:F4:27:0D:D4:ED:DC:65:16:49:6D:3D:DA:BF:6E:DE +# Fingerprint (SHA1): 3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B +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 "Secure Global CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\031\060\027\006\003\125\004\003\023\020\123\145\143\165 +\162\145\040\107\154\157\142\141\154\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\031\060\027\006\003\125\004\003\023\020\123\145\143\165 +\162\145\040\107\154\157\142\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\007\126\042\244\350\324\212\211\115\364\023\310\360\370 +\352\245 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\274\060\202\002\244\240\003\002\001\002\002\020\007 +\126\042\244\350\324\212\211\115\364\023\310\360\370\352\245\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\112 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\040\060 +\036\006\003\125\004\012\023\027\123\145\143\165\162\145\124\162 +\165\163\164\040\103\157\162\160\157\162\141\164\151\157\156\061 +\031\060\027\006\003\125\004\003\023\020\123\145\143\165\162\145 +\040\107\154\157\142\141\154\040\103\101\060\036\027\015\060\066 +\061\061\060\067\061\071\064\062\062\070\132\027\015\062\071\061 +\062\063\061\061\071\065\062\060\066\132\060\112\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\040\060\036\006\003\125 +\004\012\023\027\123\145\143\165\162\145\124\162\165\163\164\040 +\103\157\162\160\157\162\141\164\151\157\156\061\031\060\027\006 +\003\125\004\003\023\020\123\145\143\165\162\145\040\107\154\157 +\142\141\154\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\257\065\056\330\254\154\125\151\006 +\161\345\023\150\044\263\117\330\314\041\107\370\361\140\070\211 +\211\003\351\275\352\136\106\123\011\334\134\365\132\350\367\105 +\052\002\353\061\141\327\051\063\114\316\307\174\012\067\176\017 +\272\062\230\341\035\227\257\217\307\334\311\070\226\363\333\032 +\374\121\355\150\306\320\156\244\174\044\321\256\102\310\226\120 +\143\056\340\376\165\376\230\247\137\111\056\225\343\071\063\144 +\216\036\244\137\220\322\147\074\262\331\376\101\271\125\247\011 +\216\162\005\036\213\335\104\205\202\102\320\111\300\035\140\360 +\321\027\054\225\353\366\245\301\222\243\305\302\247\010\140\015 +\140\004\020\226\171\236\026\064\346\251\266\372\045\105\071\310 +\036\145\371\223\365\252\361\122\334\231\230\075\245\206\032\014 +\065\063\372\113\245\004\006\025\034\061\200\357\252\030\153\302 +\173\327\332\316\371\063\040\325\365\275\152\063\055\201\004\373 +\260\134\324\234\243\342\134\035\343\251\102\165\136\173\324\167 +\357\071\124\272\311\012\030\033\022\231\111\057\210\113\375\120 +\142\321\163\347\217\172\103\002\003\001\000\001\243\201\235\060 +\201\232\060\023\006\011\053\006\001\004\001\202\067\024\002\004 +\006\036\004\000\103\000\101\060\013\006\003\125\035\017\004\004 +\003\002\001\206\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024 +\257\104\004\302\101\176\110\203\333\116\071\002\354\354\204\172 +\346\316\311\244\060\064\006\003\125\035\037\004\055\060\053\060 +\051\240\047\240\045\206\043\150\164\164\160\072\057\057\143\162 +\154\056\163\145\143\165\162\145\164\162\165\163\164\056\143\157 +\155\057\123\107\103\101\056\143\162\154\060\020\006\011\053\006 +\001\004\001\202\067\025\001\004\003\002\001\000\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\143\032\010\100\175\244\136\123\015\167\330\172\256\037\015\013 +\121\026\003\357\030\174\310\343\257\152\130\223\024\140\221\262 +\204\334\210\116\276\071\212\072\363\346\202\211\135\001\067\263 +\253\044\244\025\016\222\065\132\112\104\136\116\127\372\165\316 +\037\110\316\146\364\074\100\046\222\230\154\033\356\044\106\014 +\027\263\122\245\333\245\221\221\317\067\323\157\347\047\010\072 +\116\031\037\072\247\130\134\027\317\171\077\213\344\247\323\046 +\043\235\046\017\130\151\374\107\176\262\320\215\213\223\277\051 +\117\103\151\164\166\147\113\317\007\214\346\002\367\265\341\264 +\103\265\113\055\024\237\371\334\046\015\277\246\107\164\006\330 +\210\321\072\051\060\204\316\322\071\200\142\033\250\307\127\111 +\274\152\125\121\147\025\112\276\065\007\344\325\165\230\067\171 +\060\024\333\051\235\154\305\151\314\107\125\242\060\367\314\134 +\177\302\303\230\034\153\116\026\200\353\172\170\145\105\242\000 +\032\257\014\015\125\144\064\110\270\222\271\361\264\120\051\362 +\117\043\037\332\154\254\037\104\341\335\043\170\121\133\307\026 +END + +# Trust for Certificate "Secure Global CA" +# Issuer: CN=Secure Global CA,O=SecureTrust Corporation,C=US +# Serial Number:07:56:22:a4:e8:d4:8a:89:4d:f4:13:c8:f0:f8:ea:a5 +# Subject: CN=Secure Global CA,O=SecureTrust Corporation,C=US +# Not Valid Before: Tue Nov 07 19:42:28 2006 +# Not Valid After : Mon Dec 31 19:52:06 2029 +# Fingerprint (MD5): CF:F4:27:0D:D4:ED:DC:65:16:49:6D:3D:DA:BF:6E:DE +# Fingerprint (SHA1): 3A:44:73:5A:E5:81:90:1F:24:86:61:46:1E:3B:9C:C4:5F:F5:3A:1B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Secure Global CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\072\104\163\132\345\201\220\037\044\206\141\106\036\073\234\304 +\137\365\072\033 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\317\364\047\015\324\355\334\145\026\111\155\075\332\277\156\336 +END +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\040\060\036\006\003\125\004\012\023\027\123\145\143\165\162\145 +\124\162\165\163\164\040\103\157\162\160\157\162\141\164\151\157 +\156\061\031\060\027\006\003\125\004\003\023\020\123\145\143\165 +\162\145\040\107\154\157\142\141\154\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\007\126\042\244\350\324\212\211\115\364\023\310\360\370 +\352\245 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "COMODO Certification Authority" +# +# Issuer: CN=COMODO Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number:4e:81:2d:8a:82:65:e0:0b:02:ee:3e:35:02:46:e5:3d +# Subject: CN=COMODO Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Fri Dec 01 00:00:00 2006 +# Not Valid After : Mon Dec 31 23:59:59 2029 +# Fingerprint (MD5): 5C:48:DC:F7:42:72:EC:56:94:6D:1C:CC:71:35:80:75 +# Fingerprint (SHA1): 66:31:BF:9E:F7:4F:9E:B6:C9:D5:A6:0C:BA:6A:BE:D1:F7:BD:EF:7B +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 Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\201\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\047\060\045\006 +\003\125\004\003\023\036\103\117\115\117\104\117\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\201\201\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\047\060\045\006 +\003\125\004\003\023\036\103\117\115\117\104\117\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\020\116\201\055\212\202\145\340\013\002\356\076\065\002\106 +\345\075 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\035\060\202\003\005\240\003\002\001\002\002\020\116 +\201\055\212\202\145\340\013\002\356\076\065\002\106\345\075\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\201\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\023\021\103\117\115\117\104\117\040\103 +\101\040\114\151\155\151\164\145\144\061\047\060\045\006\003\125 +\004\003\023\036\103\117\115\117\104\117\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\066\061\062\060\061\060\060\060\060 +\060\060\132\027\015\062\071\061\062\063\061\062\063\065\071\065 +\071\132\060\201\201\061\013\060\011\006\003\125\004\006\023\002 +\107\102\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162 +\144\061\032\060\030\006\003\125\004\012\023\021\103\117\115\117 +\104\117\040\103\101\040\114\151\155\151\164\145\144\061\047\060 +\045\006\003\125\004\003\023\036\103\117\115\117\104\117\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\320\100\213\213\162\343\221\033\367 +\121\301\033\124\004\230\323\251\277\301\346\212\135\073\207\373 +\273\210\316\015\343\057\077\006\226\360\242\051\120\231\256\333 +\073\241\127\260\164\121\161\315\355\102\221\115\101\376\251\310 +\330\152\206\167\104\273\131\146\227\120\136\264\324\054\160\104 +\317\332\067\225\102\151\074\060\304\161\263\122\360\041\115\241 +\330\272\071\174\034\236\243\044\235\362\203\026\230\252\026\174 +\103\233\025\133\267\256\064\221\376\324\142\046\030\106\232\077 +\353\301\371\361\220\127\353\254\172\015\213\333\162\060\152\146 +\325\340\106\243\160\334\150\331\377\004\110\211\167\336\265\351 +\373\147\155\101\351\274\071\275\062\331\142\002\361\261\250\075 +\156\067\234\342\057\342\323\242\046\213\306\270\125\103\210\341 +\043\076\245\322\044\071\152\107\253\000\324\241\263\251\045\376 +\015\077\247\035\272\323\121\301\013\244\332\254\070\357\125\120 +\044\005\145\106\223\064\117\055\215\255\306\324\041\031\322\216 +\312\005\141\161\007\163\107\345\212\031\022\275\004\115\316\116 +\234\245\110\254\273\046\367\002\003\001\000\001\243\201\216\060 +\201\213\060\035\006\003\125\035\016\004\026\004\024\013\130\345 +\213\306\114\025\067\244\100\251\060\251\041\276\107\066\132\126 +\377\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\111\006\003\125\035\037\004\102\060\100\060\076\240 +\074\240\072\206\070\150\164\164\160\072\057\057\143\162\154\056 +\143\157\155\157\144\157\143\141\056\143\157\155\057\103\117\115 +\117\104\117\103\145\162\164\151\146\151\143\141\164\151\157\156 +\101\165\164\150\157\162\151\164\171\056\143\162\154\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\076\230\236\233\366\033\351\327\071\267\170\256\035\162\030 +\111\323\207\344\103\202\353\077\311\252\365\250\265\357\125\174 +\041\122\145\371\325\015\341\154\364\076\214\223\163\221\056\002 +\304\116\007\161\157\300\217\070\141\010\250\036\201\012\300\057 +\040\057\101\213\221\334\110\105\274\361\306\336\272\166\153\063 +\310\000\055\061\106\114\355\347\235\317\210\224\377\063\300\126 +\350\044\206\046\270\330\070\070\337\052\153\335\022\314\307\077 +\107\027\114\242\302\006\226\011\326\333\376\077\074\106\101\337 +\130\342\126\017\074\073\301\034\223\065\331\070\122\254\356\310 +\354\056\060\116\224\065\264\044\037\113\170\151\332\362\002\070 +\314\225\122\223\360\160\045\131\234\040\147\304\356\371\213\127 +\141\364\222\166\175\077\204\215\125\267\350\345\254\325\361\365 +\031\126\246\132\373\220\034\257\223\353\345\034\324\147\227\135 +\004\016\276\013\203\246\027\203\271\060\022\240\305\063\025\005 +\271\015\373\307\005\166\343\330\112\215\374\064\027\243\306\041 +\050\276\060\105\061\036\307\170\276\130\141\070\254\073\342\001 +\145 +END + +# Trust for Certificate "COMODO Certification Authority" +# Issuer: CN=COMODO Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number:4e:81:2d:8a:82:65:e0:0b:02:ee:3e:35:02:46:e5:3d +# Subject: CN=COMODO Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Fri Dec 01 00:00:00 2006 +# Not Valid After : Mon Dec 31 23:59:59 2029 +# Fingerprint (MD5): 5C:48:DC:F7:42:72:EC:56:94:6D:1C:CC:71:35:80:75 +# Fingerprint (SHA1): 66:31:BF:9E:F7:4F:9E:B6:C9:D5:A6:0C:BA:6A:BE:D1:F7:BD:EF:7B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\146\061\277\236\367\117\236\266\311\325\246\014\272\152\276\321 +\367\275\357\173 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\134\110\334\367\102\162\354\126\224\155\034\314\161\065\200\165 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\201\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\047\060\045\006 +\003\125\004\003\023\036\103\117\115\117\104\117\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\020\116\201\055\212\202\145\340\013\002\356\076\065\002\106 +\345\075 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Network Solutions Certificate Authority" +# +# Issuer: CN=Network Solutions Certificate Authority,O=Network Solutions L.L.C.,C=US +# Serial Number:57:cb:33:6f:c2:5c:16:e6:47:16:17:e3:90:31:68:e0 +# Subject: CN=Network Solutions Certificate Authority,O=Network Solutions L.L.C.,C=US +# Not Valid Before: Fri Dec 01 00:00:00 2006 +# Not Valid After : Mon Dec 31 23:59:59 2029 +# Fingerprint (MD5): D3:F3:A6:16:C0:FA:6B:1D:59:B1:2D:96:4D:0E:11:2E +# Fingerprint (SHA1): 74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE +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 "Network Solutions Certificate Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\116\145\164\167\157\162 +\153\040\123\157\154\165\164\151\157\156\163\040\114\056\114\056 +\103\056\061\060\060\056\006\003\125\004\003\023\047\116\145\164 +\167\157\162\153\040\123\157\154\165\164\151\157\156\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\116\145\164\167\157\162 +\153\040\123\157\154\165\164\151\157\156\163\040\114\056\114\056 +\103\056\061\060\060\056\006\003\125\004\003\023\047\116\145\164 +\167\157\162\153\040\123\157\154\165\164\151\157\156\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\127\313\063\157\302\134\026\346\107\026\027\343\220\061 +\150\340 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\346\060\202\002\316\240\003\002\001\002\002\020\127 +\313\063\157\302\134\026\346\107\026\027\343\220\061\150\340\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\142 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\041\060 +\037\006\003\125\004\012\023\030\116\145\164\167\157\162\153\040 +\123\157\154\165\164\151\157\156\163\040\114\056\114\056\103\056 +\061\060\060\056\006\003\125\004\003\023\047\116\145\164\167\157 +\162\153\040\123\157\154\165\164\151\157\156\163\040\103\145\162 +\164\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151 +\164\171\060\036\027\015\060\066\061\062\060\061\060\060\060\060 +\060\060\132\027\015\062\071\061\062\063\061\062\063\065\071\065 +\071\132\060\142\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\041\060\037\006\003\125\004\012\023\030\116\145\164\167 +\157\162\153\040\123\157\154\165\164\151\157\156\163\040\114\056 +\114\056\103\056\061\060\060\056\006\003\125\004\003\023\047\116 +\145\164\167\157\162\153\040\123\157\154\165\164\151\157\156\163 +\040\103\145\162\164\151\146\151\143\141\164\145\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\344\274\176\222\060\155\306\330\216 +\053\013\274\106\316\340\047\226\336\336\371\372\022\323\074\063 +\163\263\004\057\274\161\214\345\237\266\042\140\076\137\135\316 +\011\377\202\014\033\232\121\120\032\046\211\335\325\141\135\031 +\334\022\017\055\012\242\103\135\027\320\064\222\040\352\163\317 +\070\054\006\046\011\172\162\367\372\120\062\370\302\223\323\151 +\242\043\316\101\261\314\344\325\037\066\321\212\072\370\214\143 +\342\024\131\151\355\015\323\177\153\350\270\003\345\117\152\345 +\230\143\151\110\005\276\056\377\063\266\351\227\131\151\370\147 +\031\256\223\141\226\104\025\323\162\260\077\274\152\175\354\110 +\177\215\303\253\252\161\053\123\151\101\123\064\265\260\271\305 +\006\012\304\260\105\365\101\135\156\211\105\173\075\073\046\214 +\164\302\345\322\321\175\262\021\324\373\130\062\042\232\200\311 +\334\375\014\351\177\136\003\227\316\073\000\024\207\047\160\070 +\251\216\156\263\047\166\230\121\340\005\343\041\253\032\325\205 +\042\074\051\265\232\026\305\200\250\364\273\153\060\217\057\106 +\002\242\261\014\042\340\323\002\003\001\000\001\243\201\227\060 +\201\224\060\035\006\003\125\035\016\004\026\004\024\041\060\311 +\373\000\327\116\230\332\207\252\052\320\247\056\261\100\061\247 +\114\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\122\006\003\125\035\037\004\113\060\111\060\107\240 +\105\240\103\206\101\150\164\164\160\072\057\057\143\162\154\056 +\156\145\164\163\157\154\163\163\154\056\143\157\155\057\116\145 +\164\167\157\162\153\123\157\154\165\164\151\157\156\163\103\145 +\162\164\151\146\151\143\141\164\145\101\165\164\150\157\162\151 +\164\171\056\143\162\154\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\273\256\113\347\267\127 +\353\177\252\055\267\163\107\205\152\301\344\245\035\344\347\074 +\351\364\131\145\167\265\172\133\132\215\045\066\340\172\227\056 +\070\300\127\140\203\230\006\203\237\271\166\172\156\120\340\272 +\210\054\374\105\314\030\260\231\225\121\016\354\035\270\210\377 +\207\120\034\202\302\343\340\062\200\277\240\013\107\310\303\061 +\357\231\147\062\200\117\027\041\171\014\151\134\336\136\064\256 +\002\265\046\352\120\337\177\030\145\054\311\362\143\341\251\007 +\376\174\161\037\153\063\044\152\036\005\367\005\150\300\152\022 +\313\056\136\141\313\256\050\323\176\302\264\146\221\046\137\074 +\056\044\137\313\130\017\353\050\354\257\021\226\363\334\173\157 +\300\247\210\362\123\167\263\140\136\256\256\050\332\065\054\157 +\064\105\323\046\341\336\354\133\117\047\153\026\174\275\104\004 +\030\202\263\211\171\027\020\161\075\172\242\026\116\365\001\315 +\244\154\145\150\241\111\166\134\103\311\330\274\066\147\154\245 +\224\265\324\314\271\275\152\065\126\041\336\330\303\353\373\313 +\244\140\114\260\125\240\240\173\127\262 +END + +# Trust for Certificate "Network Solutions Certificate Authority" +# Issuer: CN=Network Solutions Certificate Authority,O=Network Solutions L.L.C.,C=US +# Serial Number:57:cb:33:6f:c2:5c:16:e6:47:16:17:e3:90:31:68:e0 +# Subject: CN=Network Solutions Certificate Authority,O=Network Solutions L.L.C.,C=US +# Not Valid Before: Fri Dec 01 00:00:00 2006 +# Not Valid After : Mon Dec 31 23:59:59 2029 +# Fingerprint (MD5): D3:F3:A6:16:C0:FA:6B:1D:59:B1:2D:96:4D:0E:11:2E +# Fingerprint (SHA1): 74:F8:A3:C3:EF:E7:B3:90:06:4B:83:90:3C:21:64:60:20:E5:DF:CE +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Network Solutions Certificate Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\164\370\243\303\357\347\263\220\006\113\203\220\074\041\144\140 +\040\345\337\316 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\323\363\246\026\300\372\153\035\131\261\055\226\115\016\021\056 +END +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\041\060\037\006\003\125\004\012\023\030\116\145\164\167\157\162 +\153\040\123\157\154\165\164\151\157\156\163\040\114\056\114\056 +\103\056\061\060\060\056\006\003\125\004\003\023\047\116\145\164 +\167\157\162\153\040\123\157\154\165\164\151\157\156\163\040\103 +\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150\157 +\162\151\164\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\127\313\063\157\302\134\026\346\107\026\027\343\220\061 +\150\340 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "COMODO ECC Certification Authority" +# +# Issuer: CN=COMODO ECC Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number:1f:47:af:aa:62:00:70:50:54:4c:01:9e:9b:63:99:2a +# Subject: CN=COMODO ECC Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Mar 06 00:00:00 2008 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 7C:62:FF:74:9D:31:53:5E:68:4A:D5:78:AA:1E:BF:23 +# Fingerprint (SHA1): 9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11 +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 ECC Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\105\103\103 +\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\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\105\103\103 +\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\020\037\107\257\252\142\000\160\120\124\114\001\236\233\143 +\231\052 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\211\060\202\002\017\240\003\002\001\002\002\020\037 +\107\257\252\142\000\160\120\124\114\001\236\233\143\231\052\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\205\061\013 +\060\011\006\003\125\004\006\023\002\107\102\061\033\060\031\006 +\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061\032\060\030\006\003 +\125\004\012\023\021\103\117\115\117\104\117\040\103\101\040\114 +\151\155\151\164\145\144\061\053\060\051\006\003\125\004\003\023 +\042\103\117\115\117\104\117\040\105\103\103\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\070\060\063\060\066\060\060\060 +\060\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071 +\065\071\132\060\201\205\061\013\060\011\006\003\125\004\006\023 +\002\107\102\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157 +\162\144\061\032\060\030\006\003\125\004\012\023\021\103\117\115 +\117\104\117\040\103\101\040\114\151\155\151\164\145\144\061\053 +\060\051\006\003\125\004\003\023\042\103\117\115\117\104\117\040 +\105\103\103\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\166\060\020\006 +\007\052\206\110\316\075\002\001\006\005\053\201\004\000\042\003 +\142\000\004\003\107\173\057\165\311\202\025\205\373\165\344\221 +\026\324\253\142\231\365\076\122\013\006\316\101\000\177\227\341 +\012\044\074\035\001\004\356\075\322\215\011\227\014\340\165\344 +\372\373\167\212\052\365\003\140\113\066\213\026\043\026\255\011 +\161\364\112\364\050\120\264\376\210\034\156\077\154\057\057\011 +\131\133\245\133\013\063\231\342\303\075\211\371\152\054\357\262 +\323\006\351\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\165\161\247\031\110\031\274\235\235\352\101\107\337\224 +\304\110\167\231\323\171\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\012\006\010\052\206\110\316\075 +\004\003\003\003\150\000\060\145\002\061\000\357\003\133\172\254 +\267\170\012\162\267\210\337\377\265\106\024\011\012\372\240\346 +\175\010\306\032\207\275\030\250\163\275\046\312\140\014\235\316 +\231\237\317\134\017\060\341\276\024\061\352\002\060\024\364\223 +\074\111\247\063\172\220\106\107\263\143\175\023\233\116\267\157 +\030\067\200\123\376\335\040\340\065\232\066\321\307\001\271\346 +\334\335\363\377\035\054\072\026\127\331\222\071\326 +END + +# Trust for Certificate "COMODO ECC Certification Authority" +# Issuer: CN=COMODO ECC Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number:1f:47:af:aa:62:00:70:50:54:4c:01:9e:9b:63:99:2a +# Subject: CN=COMODO ECC Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Thu Mar 06 00:00:00 2008 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 7C:62:FF:74:9D:31:53:5E:68:4A:D5:78:AA:1E:BF:23 +# Fingerprint (SHA1): 9F:74:4E:9F:2B:4D:BA:EC:0F:31:2C:50:B6:56:3B:8E:2D:93:C3:11 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO ECC Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\237\164\116\237\053\115\272\354\017\061\054\120\266\126\073\216 +\055\223\303\021 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\174\142\377\164\235\061\123\136\150\112\325\170\252\036\277\043 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\105\103\103 +\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\020\037\107\257\252\142\000\160\120\124\114\001\236\233\143 +\231\052 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "MD5 Collisions Forged Rogue CA 25c3" +# +# Issuer: CN=Equifax Secure Global eBusiness CA-1,O=Equifax Secure Inc.,C=US +# Serial Number: 66 (0x42) +# Subject: CN=MD5 Collisions Inc. (http://www.phreedom.org/md5) +# Not Valid Before: Sat Jul 31 00:00:01 2004 +# Not Valid After : Thu Sep 02 00:00:01 2004 +# Fingerprint (MD5): 16:7A:13:15:B9:17:39:A3:F1:05:6A:E6:3E:D9:3A:38 +# Fingerprint (SHA1): 64:23:13:7E:5C:53:D6:4A:A6:64:85:ED:36:54:F5:AB:05:5A:8B:8A +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 "MD5 Collisions Forged Rogue CA 25c3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\074\061\072\060\070\006\003\125\004\003\023\061\115\104\065 +\040\103\157\154\154\151\163\151\157\156\163\040\111\156\143\056 +\040\050\150\164\164\160\072\057\057\167\167\167\056\160\150\162 +\145\145\144\157\155\056\157\162\147\057\155\144\065\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\102 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\062\060\202\003\233\240\003\002\001\002\002\001\102 +\060\015\006\011\052\206\110\206\367\015\001\001\004\005\000\060 +\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061\034 +\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141\170 +\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060\053 +\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040\123 +\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102\165 +\163\151\156\145\163\163\040\103\101\055\061\060\036\027\015\060 +\064\060\067\063\061\060\060\060\060\060\061\132\027\015\060\064 +\060\071\060\062\060\060\060\060\060\061\132\060\074\061\072\060 +\070\006\003\125\004\003\023\061\115\104\065\040\103\157\154\154 +\151\163\151\157\156\163\040\111\156\143\056\040\050\150\164\164 +\160\072\057\057\167\167\167\056\160\150\162\145\145\144\157\155 +\056\157\162\147\057\155\144\065\051\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\272\246\131\311\054\050\326\052\260\370 +\355\237\106\244\244\067\356\016\031\150\131\321\263\003\231\121 +\326\026\232\136\067\153\025\340\016\113\365\204\144\370\243\333 +\101\157\065\325\233\025\037\333\304\070\122\160\201\227\136\217 +\240\265\367\176\071\360\062\254\036\255\104\322\263\372\110\303 +\316\221\233\354\364\234\174\341\132\365\310\067\153\232\203\336 +\347\312\040\227\061\102\163\025\221\150\364\210\257\371\050\050 +\305\351\017\163\260\027\113\023\114\231\165\320\104\346\176\010 +\154\032\362\117\033\101\002\003\001\000\001\243\202\002\044\060 +\202\002\040\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\247\004\140\037 +\253\162\103\010\305\177\010\220\125\126\034\326\316\346\070\353 +\060\037\006\003\125\035\043\004\030\060\026\200\024\276\250\240 +\164\162\120\153\104\267\311\043\330\373\250\377\263\127\153\150 +\154\060\202\001\276\006\011\140\206\110\001\206\370\102\001\015 +\004\202\001\257\026\202\001\253\063\000\000\000\047\136\071\340 +\211\141\017\116\243\305\105\013\066\273\001\321\123\252\303\010 +\217\157\370\117\076\207\207\104\021\334\140\340\337\222\125\371 +\270\163\033\124\223\305\237\320\106\304\140\266\065\142\315\271 +\257\034\250\151\032\311\133\074\226\067\300\355\147\357\273\376 +\300\213\234\120\057\051\275\203\042\236\216\010\372\254\023\160 +\242\130\177\142\142\212\021\367\211\366\337\266\147\131\163\026 +\373\143\026\212\264\221\070\316\056\365\266\276\114\244\224\111 +\344\145\021\012\102\025\311\301\060\342\151\325\105\175\245\046 +\273\271\141\354\142\144\360\071\341\347\274\150\330\120\121\236 +\035\140\323\321\243\247\012\370\003\040\241\160\001\027\221\066 +\117\002\160\061\206\203\335\367\017\330\007\035\021\263\023\004 +\245\334\360\256\120\261\050\016\143\151\052\014\202\157\217\107 +\063\337\154\242\006\222\361\117\105\276\331\060\066\243\053\214 +\326\167\256\065\143\177\116\114\232\223\110\066\331\237\002\003 +\001\000\001\243\201\275\060\201\272\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\004\360\060\035\006\003\125\035\016 +\004\026\004\024\315\246\203\372\245\140\067\367\226\067\027\051 +\336\101\170\361\207\211\125\347\060\073\006\003\125\035\037\004 +\064\060\062\060\060\240\056\240\054\206\052\150\164\164\160\072 +\057\057\143\162\154\056\147\145\157\164\162\165\163\164\056\143 +\157\155\057\143\162\154\163\057\147\154\157\142\141\154\143\141 +\061\056\143\162\154\060\037\006\003\125\035\043\004\030\060\026 +\200\024\276\250\240\164\162\120\153\104\267\311\043\330\373\250 +\377\263\127\153\150\154\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\014\006\003\125\035\023\001\001\377\004 +\002\060\000\060\015\006\011\052\206\110\206\367\015\001\001\004 +\005\000\003\201\201\000\247\041\002\215\321\016\242\200\167\045 +\375\103\140\025\217\354\357\220\107\324\204\102\025\046\021\034 +\315\302\074\020\051\251\266\337\253\127\165\221\332\345\053\263 +\220\105\034\060\143\126\077\212\331\120\372\355\130\154\300\145 +\254\146\127\336\034\306\166\073\365\000\016\216\105\316\177\114 +\220\354\053\306\315\263\264\217\142\320\376\267\305\046\162\104 +\355\366\230\133\256\313\321\225\365\332\010\276\150\106\261\165 +\310\354\035\217\036\172\224\361\252\123\170\242\105\256\124\352 +\321\236\164\310\166\147 +END + +# Trust for Certificate "MD5 Collisions Forged Rogue CA 25c3" +# Issuer: CN=Equifax Secure Global eBusiness CA-1,O=Equifax Secure Inc.,C=US +# Serial Number: 66 (0x42) +# Subject: CN=MD5 Collisions Inc. (http://www.phreedom.org/md5) +# Not Valid Before: Sat Jul 31 00:00:01 2004 +# Not Valid After : Thu Sep 02 00:00:01 2004 +# Fingerprint (MD5): 16:7A:13:15:B9:17:39:A3:F1:05:6A:E6:3E:D9:3A:38 +# Fingerprint (SHA1): 64:23:13:7E:5C:53:D6:4A:A6:64:85:ED:36:54:F5:AB:05:5A:8B:8A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MD5 Collisions Forged Rogue CA 25c3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\144\043\023\176\134\123\326\112\246\144\205\355\066\124\365\253 +\005\132\213\212 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\026\172\023\025\271\027\071\243\361\005\152\346\076\331\072\070 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\034\060\032\006\003\125\004\012\023\023\105\161\165\151\146\141 +\170\040\123\145\143\165\162\145\040\111\156\143\056\061\055\060 +\053\006\003\125\004\003\023\044\105\161\165\151\146\141\170\040 +\123\145\143\165\162\145\040\107\154\157\142\141\154\040\145\102 +\165\163\151\156\145\163\163\040\103\101\055\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\102 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Distrust "Distrusted AC DG Tresor SSL" +# Issuer: CN=AC DGTPE Signature Authentification,O=DGTPE,C=FR +# Serial Number: 204199 (0x31da7) +# Subject: CN=AC DG Tr..sor SSL,O=DG Tr..sor,C=FR +# Not Valid Before: Thu Jul 18 10:05:28 2013 +# Not Valid After : Fri Jul 18 10:05:28 2014 +# Fingerprint (MD5): 3A:EA:9E:FC:00:0C:E2:06:6C:E0:AC:39:C1:31:DE:C8 +# Fingerprint (SHA1): 5C:E3:39:46:5F:41:A1:E4:23:14:9F:65:54:40:95:40:4D:E6:EB:E2 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Distrusted AC DG Tresor SSL" +CKA_ISSUER MULTILINE_OCTAL +\060\113\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\016\060\014\006\003\125\004\012\023\005\104\107\124\120\105\061 +\054\060\052\006\003\125\004\003\023\043\101\103\040\104\107\124 +\120\105\040\123\151\147\156\141\164\165\162\145\040\101\165\164 +\150\145\156\164\151\146\151\143\141\164\151\157\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\003\035\247 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Security Communication EV RootCA1" +# +# Issuer: OU=Security Communication EV RootCA1,O="SECOM Trust Systems CO.,LTD.",C=JP +# Serial Number: 0 (0x0) +# Subject: OU=Security Communication EV RootCA1,O="SECOM Trust Systems CO.,LTD.",C=JP +# Not Valid Before: Wed Jun 06 02:12:32 2007 +# Not Valid After : Sat Jun 06 02:12:32 2037 +# Fingerprint (MD5): 22:2D:A6:01:EA:7C:0A:F7:F0:6C:56:43:3F:77:76:D3 +# Fingerprint (SHA1): FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7D +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 EV RootCA1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023 +\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\105\126\040\122\157\157\164\103 +\101\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023 +\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\105\126\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\175\060\202\002\145\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061\045 +\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040\124 +\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117\056 +\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023\041 +\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156\151 +\143\141\164\151\157\156\040\105\126\040\122\157\157\164\103\101 +\061\060\036\027\015\060\067\060\066\060\066\060\062\061\062\063 +\062\132\027\015\063\067\060\066\060\066\060\062\061\062\063\062 +\132\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120 +\061\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115 +\040\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103 +\117\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013 +\023\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165 +\156\151\143\141\164\151\157\156\040\105\126\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\274\177\354\127\233\044\340\376\234\272\102\171 +\251\210\212\372\200\340\365\007\051\103\352\216\012\064\066\215 +\034\372\247\265\071\170\377\227\165\367\057\344\252\153\004\204 +\104\312\246\342\150\216\375\125\120\142\017\244\161\016\316\007 +\070\055\102\205\120\255\074\226\157\213\325\242\016\317\336\111 +\211\075\326\144\056\070\345\036\154\265\127\212\236\357\110\016 +\315\172\151\026\207\104\265\220\344\006\235\256\241\004\227\130 +\171\357\040\112\202\153\214\042\277\354\037\017\351\204\161\355 +\361\016\344\270\030\023\314\126\066\135\321\232\036\121\153\071 +\156\140\166\210\064\013\363\263\321\260\235\312\141\342\144\035 +\301\106\007\270\143\335\036\063\145\263\216\011\125\122\075\265 +\275\377\007\353\255\141\125\030\054\251\151\230\112\252\100\305 +\063\024\145\164\000\371\221\336\257\003\110\305\100\124\334\017 +\204\220\150\040\305\222\226\334\056\345\002\105\252\300\137\124 +\370\155\352\111\317\135\154\113\257\357\232\302\126\134\306\065 +\126\102\152\060\137\302\253\366\342\075\077\263\311\021\217\061 +\114\327\237\111\002\003\001\000\001\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\065\112\365\115\257\077\327\202 +\070\254\253\161\145\027\165\214\235\125\223\346\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\250\207\351\354\370\100\147\135\303\301\146\307\100\113\227 +\374\207\023\220\132\304\357\240\312\137\213\267\247\267\361\326 +\265\144\267\212\263\270\033\314\332\373\254\146\210\101\316\350 +\374\344\333\036\210\246\355\047\120\033\002\060\044\106\171\376 +\004\207\160\227\100\163\321\300\301\127\031\232\151\245\047\231 +\253\235\142\204\366\121\301\054\311\043\025\330\050\267\253\045 +\023\265\106\341\206\002\377\046\214\304\210\222\035\126\376\031 +\147\362\125\344\200\243\153\234\253\167\341\121\161\015\040\333 +\020\232\333\275\166\171\007\167\231\050\255\232\136\332\261\117 +\104\054\065\216\245\226\307\375\203\360\130\306\171\326\230\174 +\250\215\376\206\076\007\026\222\341\173\347\035\354\063\166\176 +\102\056\112\205\371\221\211\150\204\003\201\245\233\232\276\343 +\067\305\124\253\126\073\030\055\101\244\014\370\102\333\231\240 +\340\162\157\273\135\341\026\117\123\012\144\371\116\364\277\116 +\124\275\170\154\210\352\277\234\023\044\302\160\151\242\177\017 +\310\074\255\010\311\260\230\100\243\052\347\210\203\355\167\217 +\164 +END + +# Trust for Certificate "Security Communication EV RootCA1" +# Issuer: OU=Security Communication EV RootCA1,O="SECOM Trust Systems CO.,LTD.",C=JP +# Serial Number: 0 (0x0) +# Subject: OU=Security Communication EV RootCA1,O="SECOM Trust Systems CO.,LTD.",C=JP +# Not Valid Before: Wed Jun 06 02:12:32 2007 +# Not Valid After : Sat Jun 06 02:12:32 2037 +# Fingerprint (MD5): 22:2D:A6:01:EA:7C:0A:F7:F0:6C:56:43:3F:77:76:D3 +# Fingerprint (SHA1): FE:B8:C4:32:DC:F9:76:9A:CE:AE:3D:D8:90:8F:FD:28:86:65:64:7D +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication EV RootCA1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\376\270\304\062\334\371\166\232\316\256\075\330\220\217\375\050 +\206\145\144\175 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\042\055\246\001\352\174\012\367\360\154\126\103\077\167\166\323 +END +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\061\052\060\050\006\003\125\004\013\023 +\041\123\145\143\165\162\151\164\171\040\103\157\155\155\165\156 +\151\143\141\164\151\157\156\040\105\126\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_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "OISTE WISeKey Global Root GA CA" +# +# Issuer: CN=OISTE WISeKey Global Root GA CA,OU=OISTE Foundation Endorsed,OU=Copyright (c) 2005,O=WISeKey,C=CH +# Serial Number:41:3d:72:c7:f4:6b:1f:81:43:7d:f1:d2:28:54:df:9a +# Subject: CN=OISTE WISeKey Global Root GA CA,OU=OISTE Foundation Endorsed,OU=Copyright (c) 2005,O=WISeKey,C=CH +# Not Valid Before: Sun Dec 11 16:03:44 2005 +# Not Valid After : Fri Dec 11 16:09:51 2037 +# Fingerprint (MD5): BC:6C:51:33:A7:E9:D3:66:63:54:15:72:1B:21:92:93 +# Fingerprint (SHA1): 59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9 +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 "OISTE WISeKey Global Root GA CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113 +\145\171\061\033\060\031\006\003\125\004\013\023\022\103\157\160 +\171\162\151\147\150\164\040\050\143\051\040\062\060\060\065\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\101\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113 +\145\171\061\033\060\031\006\003\125\004\013\023\022\103\157\160 +\171\162\151\147\150\164\040\050\143\051\040\062\060\060\065\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\101\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\101\075\162\307\364\153\037\201\103\175\361\322\050\124 +\337\232 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\361\060\202\002\331\240\003\002\001\002\002\020\101 +\075\162\307\364\153\037\201\103\175\361\322\050\124\337\232\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\212\061\013\060\011\006\003\125\004\006\023\002\103\110\061\020 +\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145\171 +\061\033\060\031\006\003\125\004\013\023\022\103\157\160\171\162 +\151\147\150\164\040\050\143\051\040\062\060\060\065\061\042\060 +\040\006\003\125\004\013\023\031\117\111\123\124\105\040\106\157 +\165\156\144\141\164\151\157\156\040\105\156\144\157\162\163\145 +\144\061\050\060\046\006\003\125\004\003\023\037\117\111\123\124 +\105\040\127\111\123\145\113\145\171\040\107\154\157\142\141\154 +\040\122\157\157\164\040\107\101\040\103\101\060\036\027\015\060 +\065\061\062\061\061\061\066\060\063\064\064\132\027\015\063\067 +\061\062\061\061\061\066\060\071\065\061\132\060\201\212\061\013 +\060\011\006\003\125\004\006\023\002\103\110\061\020\060\016\006 +\003\125\004\012\023\007\127\111\123\145\113\145\171\061\033\060 +\031\006\003\125\004\013\023\022\103\157\160\171\162\151\147\150 +\164\040\050\143\051\040\062\060\060\065\061\042\060\040\006\003 +\125\004\013\023\031\117\111\123\124\105\040\106\157\165\156\144 +\141\164\151\157\156\040\105\156\144\157\162\163\145\144\061\050 +\060\046\006\003\125\004\003\023\037\117\111\123\124\105\040\127 +\111\123\145\113\145\171\040\107\154\157\142\141\154\040\122\157 +\157\164\040\107\101\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\313\117\263\000\233\075\066 +\335\371\321\111\152\153\020\111\037\354\330\053\262\306\370\062 +\201\051\103\225\114\232\031\043\041\025\105\336\343\310\034\121 +\125\133\256\223\350\067\377\053\153\351\324\352\276\052\335\250 +\121\053\327\146\303\141\134\140\002\310\365\316\162\173\073\270 +\362\116\145\010\232\315\244\152\031\301\001\273\163\246\327\366 +\303\335\315\274\244\213\265\231\141\270\001\242\243\324\115\324 +\005\075\221\255\370\264\010\161\144\257\160\361\034\153\176\366 +\303\167\235\044\163\173\344\014\214\341\331\066\341\231\213\005 +\231\013\355\105\061\011\312\302\000\333\367\162\240\226\252\225 +\207\320\216\307\266\141\163\015\166\146\214\334\033\264\143\242 +\237\177\223\023\060\361\241\047\333\331\377\054\125\210\221\240 +\340\117\007\260\050\126\214\030\033\227\104\216\211\335\340\027 +\156\347\052\357\217\071\012\061\204\202\330\100\024\111\056\172 +\101\344\247\376\343\144\314\301\131\161\113\054\041\247\133\175 +\340\035\321\056\201\233\303\330\150\367\275\226\033\254\160\261 +\026\024\013\333\140\271\046\001\005\002\003\001\000\001\243\121 +\060\117\060\013\006\003\125\035\017\004\004\003\002\001\206\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\263\003\176\256\066 +\274\260\171\321\334\224\046\266\021\276\041\262\151\206\224\060 +\020\006\011\053\006\001\004\001\202\067\025\001\004\003\002\001 +\000\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\113\241\377\013\207\156\263\371\301\103\261 +\110\363\050\300\035\056\311\011\101\372\224\000\034\244\244\253 +\111\117\217\075\036\357\115\157\275\274\244\366\362\046\060\311 +\020\312\035\210\373\164\031\037\205\105\275\260\154\121\371\066 +\176\333\365\114\062\072\101\117\133\107\317\350\013\055\266\304 +\031\235\164\305\107\306\073\152\017\254\024\333\074\364\163\234 +\251\005\337\000\334\164\170\372\370\065\140\131\002\023\030\174 +\274\373\115\260\040\155\103\273\140\060\172\147\063\134\305\231 +\321\370\055\071\122\163\373\214\252\227\045\134\162\331\010\036 +\253\116\074\343\201\061\237\003\246\373\300\376\051\210\125\332 +\204\325\120\003\266\342\204\243\246\066\252\021\072\001\341\030 +\113\326\104\150\263\075\371\123\164\204\263\106\221\106\226\000 +\267\200\054\266\341\343\020\342\333\242\347\050\217\001\226\142 +\026\076\000\343\034\245\066\201\030\242\114\122\166\300\021\243 +\156\346\035\272\343\132\276\066\123\305\076\165\217\206\151\051 +\130\123\265\234\273\157\237\134\305\030\354\335\057\341\230\311 +\374\276\337\012\015 +END + +# Trust for Certificate "OISTE WISeKey Global Root GA CA" +# Issuer: CN=OISTE WISeKey Global Root GA CA,OU=OISTE Foundation Endorsed,OU=Copyright (c) 2005,O=WISeKey,C=CH +# Serial Number:41:3d:72:c7:f4:6b:1f:81:43:7d:f1:d2:28:54:df:9a +# Subject: CN=OISTE WISeKey Global Root GA CA,OU=OISTE Foundation Endorsed,OU=Copyright (c) 2005,O=WISeKey,C=CH +# Not Valid Before: Sun Dec 11 16:03:44 2005 +# Not Valid After : Fri Dec 11 16:09:51 2037 +# Fingerprint (MD5): BC:6C:51:33:A7:E9:D3:66:63:54:15:72:1B:21:92:93 +# Fingerprint (SHA1): 59:22:A1:E1:5A:EA:16:35:21:F8:98:39:6A:46:46:B0:44:1B:0F:A9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OISTE WISeKey Global Root GA CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\131\042\241\341\132\352\026\065\041\370\230\071\152\106\106\260 +\104\033\017\251 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\274\154\121\063\247\351\323\146\143\124\025\162\033\041\222\223 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\110 +\061\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113 +\145\171\061\033\060\031\006\003\125\004\013\023\022\103\157\160 +\171\162\151\147\150\164\040\050\143\051\040\062\060\060\065\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\101\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\101\075\162\307\364\153\037\201\103\175\361\322\050\124 +\337\232 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certigna" +# +# Issuer: CN=Certigna,O=Dhimyotis,C=FR +# Serial Number:00:fe:dc:e3:01:0f:c9:48:ff +# Subject: CN=Certigna,O=Dhimyotis,C=FR +# Not Valid Before: Fri Jun 29 15:13:05 2007 +# Not Valid After : Tue Jun 29 15:13:05 2027 +# Fingerprint (MD5): AB:57:A6:5B:7D:42:82:19:B5:D8:58:26:28:5E:FD:FF +# Fingerprint (SHA1): B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97 +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 "Certigna" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\064\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\104\150\151\155\171\157 +\164\151\163\061\021\060\017\006\003\125\004\003\014\010\103\145 +\162\164\151\147\156\141 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\104\150\151\155\171\157 +\164\151\163\061\021\060\017\006\003\125\004\003\014\010\103\145 +\162\164\151\147\156\141 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\376\334\343\001\017\311\110\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\250\060\202\002\220\240\003\002\001\002\002\011\000 +\376\334\343\001\017\311\110\377\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\064\061\013\060\011\006\003\125 +\004\006\023\002\106\122\061\022\060\020\006\003\125\004\012\014 +\011\104\150\151\155\171\157\164\151\163\061\021\060\017\006\003 +\125\004\003\014\010\103\145\162\164\151\147\156\141\060\036\027 +\015\060\067\060\066\062\071\061\065\061\063\060\065\132\027\015 +\062\067\060\066\062\071\061\065\061\063\060\065\132\060\064\061 +\013\060\011\006\003\125\004\006\023\002\106\122\061\022\060\020 +\006\003\125\004\012\014\011\104\150\151\155\171\157\164\151\163 +\061\021\060\017\006\003\125\004\003\014\010\103\145\162\164\151 +\147\156\141\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\310\150\361\311\326\326\263\064\165\046\202\036 +\354\264\276\352\134\341\046\355\021\107\141\341\242\174\026\170 +\100\041\344\140\236\132\310\143\341\304\261\226\222\377\030\155 +\151\043\341\053\142\367\335\342\066\057\221\007\271\110\317\016 +\354\171\266\054\347\064\113\160\010\045\243\074\207\033\031\362 +\201\007\017\070\220\031\323\021\376\206\264\362\321\136\036\036 +\226\315\200\154\316\073\061\223\266\362\240\320\251\225\022\175 +\245\232\314\153\310\204\126\212\063\251\347\042\025\123\026\360 +\314\027\354\127\137\351\242\012\230\011\336\343\137\234\157\334 +\110\343\205\013\025\132\246\272\237\254\110\343\011\262\367\364 +\062\336\136\064\276\034\170\135\102\133\316\016\042\217\115\220 +\327\175\062\030\263\013\054\152\277\216\077\024\021\211\040\016 +\167\024\265\075\224\010\207\367\045\036\325\262\140\000\354\157 +\052\050\045\156\052\076\030\143\027\045\077\076\104\040\026\366 +\046\310\045\256\005\112\264\347\143\054\363\214\026\123\176\134 +\373\021\032\010\301\106\142\237\042\270\361\302\215\151\334\372 +\072\130\006\337\002\003\001\000\001\243\201\274\060\201\271\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\032\355\376\101\071 +\220\264\044\131\276\001\362\122\325\105\366\132\071\334\021\060 +\144\006\003\125\035\043\004\135\060\133\200\024\032\355\376\101 +\071\220\264\044\131\276\001\362\122\325\105\366\132\071\334\021 +\241\070\244\066\060\064\061\013\060\011\006\003\125\004\006\023 +\002\106\122\061\022\060\020\006\003\125\004\012\014\011\104\150 +\151\155\171\157\164\151\163\061\021\060\017\006\003\125\004\003 +\014\010\103\145\162\164\151\147\156\141\202\011\000\376\334\343 +\001\017\311\110\377\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\021\006\011\140\206\110\001\206\370\102 +\001\001\004\004\003\002\000\007\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\205\003\036\222 +\161\366\102\257\341\243\141\236\353\363\300\017\362\245\324\332 +\225\346\326\276\150\066\075\176\156\037\114\212\357\321\017\041 +\155\136\245\122\143\316\022\370\357\052\332\157\353\067\376\023 +\002\307\313\073\076\042\153\332\141\056\177\324\162\075\335\060 +\341\036\114\100\031\214\017\327\234\321\203\060\173\230\131\334 +\175\306\271\014\051\114\241\063\242\353\147\072\145\204\323\226 +\342\355\166\105\160\217\265\053\336\371\043\326\111\156\074\024 +\265\306\237\065\036\120\320\301\217\152\160\104\002\142\313\256 +\035\150\101\247\252\127\350\123\252\007\322\006\366\325\024\006 +\013\221\003\165\054\154\162\265\141\225\232\015\213\271\015\347 +\365\337\124\315\336\346\330\326\011\010\227\143\345\301\056\260 +\267\104\046\300\046\300\257\125\060\236\073\325\066\052\031\004 +\364\134\036\377\317\054\267\377\320\375\207\100\021\325\021\043 +\273\110\300\041\251\244\050\055\375\025\370\260\116\053\364\060 +\133\041\374\021\221\064\276\101\357\173\235\227\165\377\227\225 +\300\226\130\057\352\273\106\327\273\344\331\056 +END + +# Trust for Certificate "Certigna" +# Issuer: CN=Certigna,O=Dhimyotis,C=FR +# Serial Number:00:fe:dc:e3:01:0f:c9:48:ff +# Subject: CN=Certigna,O=Dhimyotis,C=FR +# Not Valid Before: Fri Jun 29 15:13:05 2007 +# Not Valid After : Tue Jun 29 15:13:05 2027 +# Fingerprint (MD5): AB:57:A6:5B:7D:42:82:19:B5:D8:58:26:28:5E:FD:FF +# Fingerprint (SHA1): B1:2E:13:63:45:86:A4:6F:1A:B2:60:68:37:58:2D:C4:AC:FD:94:97 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certigna" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\261\056\023\143\105\206\244\157\032\262\140\150\067\130\055\304 +\254\375\224\227 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\253\127\246\133\175\102\202\031\265\330\130\046\050\136\375\377 +END +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\104\150\151\155\171\157 +\164\151\163\061\021\060\017\006\003\125\004\003\014\010\103\145 +\162\164\151\147\156\141 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\376\334\343\001\017\311\110\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AC Raiz Certicamara S.A." +# +# Issuer: CN=AC Ra..z Certic..mara S.A.,O=Sociedad Cameral de Certificaci..n Digital - Certic..mara S.A.,C=CO +# Serial Number:07:7e:52:93:7b:e0:15:e3:57:f0:69:8c:cb:ec:0c +# Subject: CN=AC Ra..z Certic..mara S.A.,O=Sociedad Cameral de Certificaci..n Digital - Certic..mara S.A.,C=CO +# Not Valid Before: Mon Nov 27 20:46:29 2006 +# Not Valid After : Tue Apr 02 21:42:02 2030 +# Fingerprint (MD5): 93:2A:3E:F6:FD:23:69:0D:71:20:D4:2B:47:99:2B:A6 +# Fingerprint (SHA1): CB:A1:C5:F8:B0:E3:5E:B8:B9:45:12:D3:F9:34:A2:E9:06:10:D3:36 +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 "AC Ra\xC3\xADz Certic\xC3\xA1mara S.A." +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\103\117\061 +\107\060\105\006\003\125\004\012\014\076\123\157\143\151\145\144 +\141\144\040\103\141\155\145\162\141\154\040\144\145\040\103\145 +\162\164\151\146\151\143\141\143\151\303\263\156\040\104\151\147 +\151\164\141\154\040\055\040\103\145\162\164\151\143\303\241\155 +\141\162\141\040\123\056\101\056\061\043\060\041\006\003\125\004 +\003\014\032\101\103\040\122\141\303\255\172\040\103\145\162\164 +\151\143\303\241\155\141\162\141\040\123\056\101\056 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\103\117\061 +\107\060\105\006\003\125\004\012\014\076\123\157\143\151\145\144 +\141\144\040\103\141\155\145\162\141\154\040\144\145\040\103\145 +\162\164\151\146\151\143\141\143\151\303\263\156\040\104\151\147 +\151\164\141\154\040\055\040\103\145\162\164\151\143\303\241\155 +\141\162\141\040\123\056\101\056\061\043\060\041\006\003\125\004 +\003\014\032\101\103\040\122\141\303\255\172\040\103\145\162\164 +\151\143\303\241\155\141\162\141\040\123\056\101\056 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\017\007\176\122\223\173\340\025\343\127\360\151\214\313\354 +\014 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\146\060\202\004\116\240\003\002\001\002\002\017\007 +\176\122\223\173\340\025\343\127\360\151\214\313\354\014\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\103\117\061\107\060\105 +\006\003\125\004\012\014\076\123\157\143\151\145\144\141\144\040 +\103\141\155\145\162\141\154\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\303\263\156\040\104\151\147\151\164\141 +\154\040\055\040\103\145\162\164\151\143\303\241\155\141\162\141 +\040\123\056\101\056\061\043\060\041\006\003\125\004\003\014\032 +\101\103\040\122\141\303\255\172\040\103\145\162\164\151\143\303 +\241\155\141\162\141\040\123\056\101\056\060\036\027\015\060\066 +\061\061\062\067\062\060\064\066\062\071\132\027\015\063\060\060 +\064\060\062\062\061\064\062\060\062\132\060\173\061\013\060\011 +\006\003\125\004\006\023\002\103\117\061\107\060\105\006\003\125 +\004\012\014\076\123\157\143\151\145\144\141\144\040\103\141\155 +\145\162\141\154\040\144\145\040\103\145\162\164\151\146\151\143 +\141\143\151\303\263\156\040\104\151\147\151\164\141\154\040\055 +\040\103\145\162\164\151\143\303\241\155\141\162\141\040\123\056 +\101\056\061\043\060\041\006\003\125\004\003\014\032\101\103\040 +\122\141\303\255\172\040\103\145\162\164\151\143\303\241\155\141 +\162\141\040\123\056\101\056\060\202\002\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060 +\202\002\012\002\202\002\001\000\253\153\211\243\123\314\110\043 +\010\373\303\317\121\226\010\056\270\010\172\155\074\220\027\206 +\251\351\355\056\023\064\107\262\320\160\334\311\074\320\215\312 +\356\113\027\253\320\205\260\247\043\004\313\250\242\374\345\165 +\333\100\312\142\211\217\120\236\001\075\046\133\030\204\034\313 +\174\067\267\175\354\323\177\163\031\260\152\262\330\210\212\055 +\105\164\250\367\263\270\300\324\332\315\042\211\164\115\132\025 +\071\163\030\164\117\265\353\231\247\301\036\210\264\302\223\220 +\143\227\363\247\247\022\262\011\042\007\063\331\221\315\016\234 +\037\016\040\307\356\273\063\215\217\302\322\130\247\137\375\145 +\067\342\210\302\330\217\206\165\136\371\055\247\207\063\362\170 +\067\057\213\274\035\206\067\071\261\224\362\330\274\112\234\203 +\030\132\006\374\363\324\324\272\214\025\011\045\360\371\266\215 +\004\176\027\022\063\153\127\110\114\117\333\046\036\353\314\220 +\347\213\371\150\174\160\017\243\052\320\072\070\337\067\227\342 +\133\336\200\141\323\200\330\221\203\102\132\114\004\211\150\021 +\074\254\137\150\200\101\314\140\102\316\015\132\052\014\017\233 +\060\300\246\360\206\333\253\111\327\227\155\110\213\371\003\300 +\122\147\233\022\367\302\362\056\230\145\102\331\326\232\343\320 +\031\061\014\255\207\325\127\002\172\060\350\206\046\373\217\043 +\212\124\207\344\277\074\356\353\303\165\110\137\036\071\157\201 +\142\154\305\055\304\027\124\031\267\067\215\234\067\221\310\366 +\013\325\352\143\157\203\254\070\302\363\077\336\232\373\341\043 +\141\360\310\046\313\066\310\241\363\060\217\244\243\242\241\335 +\123\263\336\360\232\062\037\203\221\171\060\301\251\037\123\233 +\123\242\025\123\077\335\235\263\020\073\110\175\211\017\374\355 +\003\365\373\045\144\165\016\027\031\015\217\000\026\147\171\172 +\100\374\055\131\007\331\220\372\232\255\075\334\200\212\346\134 +\065\242\147\114\021\153\261\370\200\144\000\055\157\042\141\305 +\254\113\046\345\132\020\202\233\244\203\173\064\367\236\211\221 +\040\227\216\267\102\307\146\303\320\351\244\326\365\040\215\304 +\303\225\254\104\012\235\133\163\074\046\075\057\112\276\247\311 +\247\020\036\373\237\120\151\363\002\003\001\000\001\243\201\346 +\060\201\343\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\321 +\011\320\351\327\316\171\164\124\371\072\060\263\364\155\054\003 +\003\033\150\060\201\240\006\003\125\035\040\004\201\230\060\201 +\225\060\201\222\006\004\125\035\040\000\060\201\211\060\053\006 +\010\053\006\001\005\005\007\002\001\026\037\150\164\164\160\072 +\057\057\167\167\167\056\143\145\162\164\151\143\141\155\141\162 +\141\056\143\157\155\057\144\160\143\057\060\132\006\010\053\006 +\001\005\005\007\002\002\060\116\032\114\114\151\155\151\164\141 +\143\151\157\156\145\163\040\144\145\040\147\141\162\141\156\164 +\355\141\163\040\144\145\040\145\163\164\145\040\143\145\162\164 +\151\146\151\143\141\144\157\040\163\145\040\160\165\145\144\145 +\156\040\145\156\143\157\156\164\162\141\162\040\145\156\040\154 +\141\040\104\120\103\056\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\002\001\000\134\224\265\270\105\221 +\115\216\141\037\003\050\017\123\174\346\244\131\251\263\212\172 +\305\260\377\010\174\054\243\161\034\041\023\147\241\225\022\100 +\065\203\203\217\164\333\063\134\360\111\166\012\201\122\335\111 +\324\232\062\063\357\233\247\313\165\345\172\313\227\022\220\134 +\272\173\305\233\337\273\071\043\310\377\230\316\012\115\042\001 +\110\007\176\212\300\325\040\102\224\104\357\277\167\242\211\147 +\110\033\100\003\005\241\211\354\317\142\343\075\045\166\146\277 +\046\267\273\042\276\157\377\071\127\164\272\172\311\001\225\301 +\225\121\350\253\054\370\261\206\040\351\077\313\065\133\322\027 +\351\052\376\203\023\027\100\356\210\142\145\133\325\073\140\351 +\173\074\270\311\325\177\066\002\045\252\150\302\061\025\267\060 +\145\353\177\035\110\171\261\317\071\342\102\200\026\323\365\223 +\043\374\114\227\311\132\067\154\174\042\330\112\315\322\216\066 +\203\071\221\220\020\310\361\311\065\176\077\270\323\201\306\040 +\144\032\266\120\302\041\244\170\334\320\057\073\144\223\164\360 +\226\220\361\357\373\011\132\064\100\226\360\066\022\301\243\164 +\214\223\176\101\336\167\213\354\206\331\322\017\077\055\321\314 +\100\242\211\146\110\036\040\263\234\043\131\163\251\104\163\274 +\044\171\220\126\067\263\306\051\176\243\017\361\051\071\357\176 +\134\050\062\160\065\254\332\270\310\165\146\374\233\114\071\107 +\216\033\157\233\115\002\124\042\063\357\141\272\236\051\204\357 +\116\113\063\107\166\227\152\313\176\137\375\025\246\236\102\103 +\133\146\132\212\210\015\367\026\271\077\121\145\053\146\152\213 +\321\070\122\242\326\106\021\372\374\232\034\164\236\217\227\013 +\002\117\144\306\365\150\323\113\055\377\244\067\036\213\077\277 +\104\276\141\106\241\204\075\010\047\114\201\040\167\211\010\352 +\147\100\136\154\010\121\137\064\132\214\226\150\315\327\367\211 +\302\034\323\062\000\257\122\313\323\140\133\052\072\107\176\153 +\060\063\241\142\051\177\112\271\341\055\347\024\043\016\016\030 +\107\341\171\374\025\125\320\261\374\045\161\143\165\063\034\043 +\053\257\134\331\355\107\167\140\016\073\017\036\322\300\334\144 +\005\211\374\170\326\134\054\046\103\251 +END + +# Trust for Certificate "AC Raiz Certicamara S.A." +# Issuer: CN=AC Ra..z Certic..mara S.A.,O=Sociedad Cameral de Certificaci..n Digital - Certic..mara S.A.,C=CO +# Serial Number:07:7e:52:93:7b:e0:15:e3:57:f0:69:8c:cb:ec:0c +# Subject: CN=AC Ra..z Certic..mara S.A.,O=Sociedad Cameral de Certificaci..n Digital - Certic..mara S.A.,C=CO +# Not Valid Before: Mon Nov 27 20:46:29 2006 +# Not Valid After : Tue Apr 02 21:42:02 2030 +# Fingerprint (MD5): 93:2A:3E:F6:FD:23:69:0D:71:20:D4:2B:47:99:2B:A6 +# Fingerprint (SHA1): CB:A1:C5:F8:B0:E3:5E:B8:B9:45:12:D3:F9:34:A2:E9:06:10:D3:36 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AC Ra\xC3\xADz Certic\xC3\xA1mara S.A." +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\313\241\305\370\260\343\136\270\271\105\022\323\371\064\242\351 +\006\020\323\066 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\223\052\076\366\375\043\151\015\161\040\324\053\107\231\053\246 +END +CKA_ISSUER MULTILINE_OCTAL +\060\173\061\013\060\011\006\003\125\004\006\023\002\103\117\061 +\107\060\105\006\003\125\004\012\014\076\123\157\143\151\145\144 +\141\144\040\103\141\155\145\162\141\154\040\144\145\040\103\145 +\162\164\151\146\151\143\141\143\151\303\263\156\040\104\151\147 +\151\164\141\154\040\055\040\103\145\162\164\151\143\303\241\155 +\141\162\141\040\123\056\101\056\061\043\060\041\006\003\125\004 +\003\014\032\101\103\040\122\141\303\255\172\040\103\145\162\164 +\151\143\303\241\155\141\162\141\040\123\056\101\056 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\017\007\176\122\223\173\340\025\343\127\360\151\214\313\354 +\014 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TC TrustCenter Class 3 CA II" +# +# Issuer: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE +# Serial Number:4a:47:00:01:00:02:e5:a0:5d:d6:3f:00:51:bf +# Subject: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE +# Not Valid Before: Thu Jan 12 14:41:57 2006 +# Not Valid After : Wed Dec 31 22:59:59 2025 +# Fingerprint (MD5): 56:5F:AA:80:61:12:17:F6:67:21:E6:2B:6D:61:56:8E +# Fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5 +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 "TC TrustCenter Class 3 CA II" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\040\111\111 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\040\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\252\060\202\003\222\240\003\002\001\002\002\016\112 +\107\000\001\000\002\345\240\135\326\077\000\121\277\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\060\166\061\013 +\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006 +\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145 +\156\164\145\162\040\107\155\142\110\061\042\060\040\006\003\125 +\004\013\023\031\124\103\040\124\162\165\163\164\103\145\156\164 +\145\162\040\103\154\141\163\163\040\063\040\103\101\061\045\060 +\043\006\003\125\004\003\023\034\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\040\111\111\060\036\027\015\060\066\060\061\061\062\061\064 +\064\061\065\067\132\027\015\062\065\061\062\063\061\062\062\065 +\071\065\071\132\060\166\061\013\060\011\006\003\125\004\006\023 +\002\104\105\061\034\060\032\006\003\125\004\012\023\023\124\103 +\040\124\162\165\163\164\103\145\156\164\145\162\040\107\155\142 +\110\061\042\060\040\006\003\125\004\013\023\031\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\061\045\060\043\006\003\125\004\003\023\034 +\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040\103 +\154\141\163\163\040\063\040\103\101\040\111\111\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\264\340\273 +\121\273\071\134\213\004\305\114\171\034\043\206\061\020\143\103 +\125\047\077\306\105\307\244\075\354\011\015\032\036\040\302\126 +\036\336\033\067\007\060\042\057\157\361\006\361\253\255\326\310 +\253\141\243\057\103\304\260\262\055\374\303\226\151\173\176\212 +\344\314\300\071\022\220\102\140\311\314\065\150\356\332\137\220 +\126\137\315\034\115\133\130\111\353\016\001\117\144\372\054\074 +\211\130\330\057\056\342\260\150\351\042\073\165\211\326\104\032 +\145\362\033\227\046\035\050\155\254\350\275\131\035\053\044\366 +\326\204\003\146\210\044\000\170\140\361\370\253\376\002\262\153 +\373\042\373\065\346\026\321\255\366\056\022\344\372\065\152\345 +\031\271\135\333\073\036\032\373\323\377\025\024\010\330\011\152 +\272\105\235\024\171\140\175\257\100\212\007\163\263\223\226\323 +\164\064\215\072\067\051\336\134\354\365\356\056\061\302\040\334 +\276\361\117\177\043\122\331\133\342\144\331\234\252\007\010\265 +\105\275\321\320\061\301\253\124\237\251\322\303\142\140\003\361 +\273\071\112\222\112\075\012\271\235\305\240\376\067\002\003\001 +\000\001\243\202\001\064\060\202\001\060\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\324\242\374\237\263\303\330\003\323\127 +\134\007\244\320\044\247\300\362\000\324\060\201\355\006\003\125 +\035\037\004\201\345\060\201\342\060\201\337\240\201\334\240\201 +\331\206\065\150\164\164\160\072\057\057\167\167\167\056\164\162 +\165\163\164\143\145\156\164\145\162\056\144\145\057\143\162\154 +\057\166\062\057\164\143\137\143\154\141\163\163\137\063\137\143 +\141\137\111\111\056\143\162\154\206\201\237\154\144\141\160\072 +\057\057\167\167\167\056\164\162\165\163\164\143\145\156\164\145 +\162\056\144\145\057\103\116\075\124\103\045\062\060\124\162\165 +\163\164\103\145\156\164\145\162\045\062\060\103\154\141\163\163 +\045\062\060\063\045\062\060\103\101\045\062\060\111\111\054\117 +\075\124\103\045\062\060\124\162\165\163\164\103\145\156\164\145 +\162\045\062\060\107\155\142\110\054\117\125\075\162\157\157\164 +\143\145\162\164\163\054\104\103\075\164\162\165\163\164\143\145 +\156\164\145\162\054\104\103\075\144\145\077\143\145\162\164\151 +\146\151\143\141\164\145\122\145\166\157\143\141\164\151\157\156 +\114\151\163\164\077\142\141\163\145\077\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\001\001\000\066\140 +\344\160\367\006\040\103\331\043\032\102\362\370\243\262\271\115 +\212\264\363\302\232\125\061\174\304\073\147\232\264\337\115\016 +\212\223\112\027\213\033\215\312\211\341\317\072\036\254\035\361 +\234\062\264\216\131\166\242\101\205\045\067\240\023\320\365\174 +\116\325\352\226\342\156\162\301\273\052\376\154\156\370\221\230 +\106\374\311\033\127\133\352\310\032\073\077\260\121\230\074\007 +\332\054\131\001\332\213\104\350\341\164\375\247\150\335\124\272 +\203\106\354\310\106\265\370\257\227\300\073\011\034\217\316\162 +\226\075\063\126\160\274\226\313\330\325\175\040\232\203\237\032 +\334\071\361\305\162\243\021\003\375\073\102\122\051\333\350\001 +\367\233\136\214\326\215\206\116\031\372\274\034\276\305\041\245 +\207\236\170\056\066\333\011\161\243\162\064\370\154\343\006\011 +\362\136\126\245\323\335\230\372\324\346\006\364\360\266\040\143 +\113\352\051\275\252\202\146\036\373\201\252\247\067\255\023\030 +\346\222\303\201\301\063\273\210\036\241\347\342\264\275\061\154 +\016\121\075\157\373\226\126\200\342\066\027\321\334\344 +END + +# Trust for Certificate "TC TrustCenter Class 3 CA II" +# Issuer: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE +# Serial Number:4a:47:00:01:00:02:e5:a0:5d:d6:3f:00:51:bf +# Subject: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE +# Not Valid Before: Thu Jan 12 14:41:57 2006 +# Not Valid After : Wed Dec 31 22:59:59 2025 +# Fingerprint (MD5): 56:5F:AA:80:61:12:17:F6:67:21:E6:2B:6D:61:56:8E +# Fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\200\045\357\364\156\160\310\324\162\044\145\204\376\100\073\212 +\215\152\333\365 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\126\137\252\200\141\022\027\366\147\041\346\053\155\141\126\216 +END +CKA_ISSUER MULTILINE_OCTAL +\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165 +\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060 +\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164 +\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103 +\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124 +\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163 +\040\063\040\103\101\040\111\111 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Deutsche Telekom Root CA 2" +# +# Issuer: CN=Deutsche Telekom Root CA 2,OU=T-TeleSec Trust Center,O=Deutsche Telekom AG,C=DE +# Serial Number: 38 (0x26) +# Subject: CN=Deutsche Telekom Root CA 2,OU=T-TeleSec Trust Center,O=Deutsche Telekom AG,C=DE +# Not Valid Before: Fri Jul 09 12:11:00 1999 +# Not Valid After : Tue Jul 09 23:59:00 2019 +# Fingerprint (MD5): 74:01:4A:91:B1:08:C4:58:CE:47:CD:F0:DD:11:53:08 +# Fingerprint (SHA1): 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF +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 "Deutsche Telekom Root CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143 +\150\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060 +\035\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145 +\143\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043 +\060\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103 +\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143 +\150\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060 +\035\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145 +\143\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043 +\060\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103 +\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\046 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\237\060\202\002\207\240\003\002\001\002\002\001\046 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061\034 +\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060\035 +\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145\143 +\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043\060 +\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150\145 +\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103\101 +\040\062\060\036\027\015\071\071\060\067\060\071\061\062\061\061 +\060\060\132\027\015\061\071\060\067\060\071\062\063\065\071\060 +\060\132\060\161\061\013\060\011\006\003\125\004\006\023\002\104 +\105\061\034\060\032\006\003\125\004\012\023\023\104\145\165\164 +\163\143\150\145\040\124\145\154\145\153\157\155\040\101\107\061 +\037\060\035\006\003\125\004\013\023\026\124\055\124\145\154\145 +\123\145\143\040\124\162\165\163\164\040\103\145\156\164\145\162 +\061\043\060\041\006\003\125\004\003\023\032\104\145\165\164\163 +\143\150\145\040\124\145\154\145\153\157\155\040\122\157\157\164 +\040\103\101\040\062\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\253\013\243\065\340\213\051\024\261\024 +\205\257\074\020\344\071\157\065\135\112\256\335\352\141\215\225 +\111\364\157\144\243\032\140\146\244\251\100\042\204\331\324\245 +\345\170\223\016\150\001\255\271\115\134\072\316\323\270\250\102 +\100\337\317\243\272\202\131\152\222\033\254\034\232\332\010\053 +\045\047\371\151\043\107\361\340\353\054\172\233\365\023\002\320 +\176\064\174\302\236\074\000\131\253\365\332\014\365\062\074\053 +\254\120\332\326\303\336\203\224\312\250\014\231\062\016\010\110 +\126\133\152\373\332\341\130\130\001\111\137\162\101\074\025\006 +\001\216\135\255\252\270\223\264\315\236\353\247\350\152\055\122 +\064\333\072\357\134\165\121\332\333\363\061\371\356\161\230\062 +\304\124\025\104\014\371\233\125\355\255\337\030\010\240\243\206 +\212\111\356\123\005\217\031\114\325\336\130\171\233\322\152\034 +\102\253\305\325\247\317\150\017\226\344\341\141\230\166\141\310 +\221\174\326\076\000\342\221\120\207\341\235\012\346\255\227\322 +\035\306\072\175\313\274\332\003\064\325\216\133\001\365\152\007 +\267\026\266\156\112\177\002\003\001\000\001\243\102\060\100\060 +\035\006\003\125\035\016\004\026\004\024\061\303\171\033\272\365 +\123\327\027\340\211\172\055\027\154\012\263\053\235\063\060\017 +\006\003\125\035\023\004\010\060\006\001\001\377\002\001\005\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\224\144\131\255\071\144\347\051\353\023\376\132\303 +\213\023\127\310\004\044\360\164\167\300\140\343\147\373\351\211 +\246\203\277\226\202\174\156\324\303\075\357\236\200\156\273\051 +\264\230\172\261\073\124\353\071\027\107\176\032\216\013\374\037 +\061\131\061\004\262\316\027\363\054\307\142\066\125\342\042\330 +\211\125\264\230\110\252\144\372\326\034\066\330\104\170\132\132 +\043\072\127\227\365\172\060\117\256\237\152\114\113\053\216\240 +\003\343\076\340\251\324\322\173\322\263\250\342\162\074\255\236 +\377\200\131\344\233\105\264\366\073\260\315\071\031\230\062\345 +\352\041\141\220\344\061\041\216\064\261\367\057\065\112\205\020 +\332\347\212\067\041\276\131\143\340\362\205\210\061\123\324\124 +\024\205\160\171\364\056\006\167\047\165\057\037\270\212\371\376 +\305\272\330\066\344\203\354\347\145\267\277\143\132\363\106\257 +\201\224\067\324\101\214\326\043\326\036\317\365\150\033\104\143 +\242\132\272\247\065\131\241\345\160\005\233\016\043\127\231\224 +\012\155\272\071\143\050\206\222\363\030\204\330\373\321\317\005 +\126\144\127 +END + +# Trust for Certificate "Deutsche Telekom Root CA 2" +# Issuer: CN=Deutsche Telekom Root CA 2,OU=T-TeleSec Trust Center,O=Deutsche Telekom AG,C=DE +# Serial Number: 38 (0x26) +# Subject: CN=Deutsche Telekom Root CA 2,OU=T-TeleSec Trust Center,O=Deutsche Telekom AG,C=DE +# Not Valid Before: Fri Jul 09 12:11:00 1999 +# Not Valid After : Tue Jul 09 23:59:00 2019 +# Fingerprint (MD5): 74:01:4A:91:B1:08:C4:58:CE:47:CD:F0:DD:11:53:08 +# Fingerprint (SHA1): 85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Deutsche Telekom Root CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\205\244\010\300\234\031\076\135\121\130\175\315\326\023\060\375 +\214\336\067\277 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\164\001\112\221\261\010\304\130\316\107\315\360\335\021\123\010 +END +CKA_ISSUER MULTILINE_OCTAL +\060\161\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\034\060\032\006\003\125\004\012\023\023\104\145\165\164\163\143 +\150\145\040\124\145\154\145\153\157\155\040\101\107\061\037\060 +\035\006\003\125\004\013\023\026\124\055\124\145\154\145\123\145 +\143\040\124\162\165\163\164\040\103\145\156\164\145\162\061\043 +\060\041\006\003\125\004\003\023\032\104\145\165\164\163\143\150 +\145\040\124\145\154\145\153\157\155\040\122\157\157\164\040\103 +\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\046 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ComSign CA" +# +# Issuer: C=IL,O=ComSign,CN=ComSign CA +# Serial Number:14:13:96:83:14:55:8c:ea:7b:63:e5:fc:34:87:77:44 +# Subject: C=IL,O=ComSign,CN=ComSign CA +# Not Valid Before: Wed Mar 24 11:32:18 2004 +# Not Valid After : Mon Mar 19 15:02:18 2029 +# Fingerprint (MD5): CD:F4:39:F3:B5:18:50:D7:3E:A4:C5:91:A0:3E:21:4B +# Fingerprint (SHA1): E1:A4:5B:14:1A:21:DA:1A:79:F4:1A:42:A9:61:D6:69:CD:06:34:C1 +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 "ComSign CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\064\061\023\060\021\006\003\125\004\003\023\012\103\157\155 +\123\151\147\156\040\103\101\061\020\060\016\006\003\125\004\012 +\023\007\103\157\155\123\151\147\156\061\013\060\011\006\003\125 +\004\006\023\002\111\114 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\023\060\021\006\003\125\004\003\023\012\103\157\155 +\123\151\147\156\040\103\101\061\020\060\016\006\003\125\004\012 +\023\007\103\157\155\123\151\147\156\061\013\060\011\006\003\125 +\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\024\023\226\203\024\125\214\352\173\143\345\374\064\207 +\167\104 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\223\060\202\002\173\240\003\002\001\002\002\020\024 +\023\226\203\024\125\214\352\173\143\345\374\064\207\167\104\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\064 +\061\023\060\021\006\003\125\004\003\023\012\103\157\155\123\151 +\147\156\040\103\101\061\020\060\016\006\003\125\004\012\023\007 +\103\157\155\123\151\147\156\061\013\060\011\006\003\125\004\006 +\023\002\111\114\060\036\027\015\060\064\060\063\062\064\061\061 +\063\062\061\070\132\027\015\062\071\060\063\061\071\061\065\060 +\062\061\070\132\060\064\061\023\060\021\006\003\125\004\003\023 +\012\103\157\155\123\151\147\156\040\103\101\061\020\060\016\006 +\003\125\004\012\023\007\103\157\155\123\151\147\156\061\013\060 +\011\006\003\125\004\006\023\002\111\114\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\360\344\124\151\053 +\323\307\217\152\104\344\176\130\047\370\013\320\344\224\022\212 +\361\033\070\070\057\037\061\234\006\324\054\247\336\013\052\256 +\032\240\343\236\152\277\237\074\307\156\242\371\213\144\154\072 +\255\205\125\121\124\245\070\125\270\253\203\004\362\077\144\066 +\367\300\215\103\103\152\146\321\367\027\052\325\357\066\372\060 +\020\102\327\123\315\371\372\063\163\114\263\351\204\040\212\326 +\101\047\065\344\070\372\224\233\270\172\344\171\037\063\373\033 +\330\041\011\050\174\115\030\151\136\144\212\172\031\223\312\176 +\354\363\162\347\067\007\130\131\050\254\102\371\305\377\315\077 +\347\245\372\070\261\320\014\307\331\122\032\123\326\201\314\102 +\172\065\133\355\113\072\172\366\265\216\314\377\017\174\344\140 +\066\207\057\255\360\241\045\175\377\322\113\021\210\160\124\246 +\101\250\147\123\122\102\136\344\064\236\344\276\243\354\252\142 +\135\335\303\114\246\202\101\344\063\013\254\311\063\017\144\202 +\127\052\375\014\255\066\341\014\256\113\305\357\073\231\331\043 +\263\133\135\264\127\354\164\160\014\052\117\002\003\001\000\001 +\243\201\240\060\201\235\060\014\006\003\125\035\023\004\005\060 +\003\001\001\377\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\146\145 +\144\151\162\056\143\157\155\163\151\147\156\056\143\157\056\151 +\154\057\143\162\154\057\103\157\155\123\151\147\156\103\101\056 +\143\162\154\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\206\060\037\006\003\125\035\043\004\030\060\026\200\024 +\113\001\233\076\126\032\145\066\166\313\173\227\252\222\005\356 +\062\347\050\061\060\035\006\003\125\035\016\004\026\004\024\113 +\001\233\076\126\032\145\066\166\313\173\227\252\222\005\356\062 +\347\050\061\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\320\331\245\176\376\051\140\105\235 +\176\203\317\156\274\107\156\365\032\236\124\166\102\161\264\074 +\130\077\055\100\045\102\366\201\234\361\211\020\310\016\252\170 +\117\070\011\127\260\074\300\010\374\065\216\361\110\121\215\014 +\161\164\272\204\304\327\162\233\204\174\070\116\144\006\047\052 +\341\247\265\354\010\231\264\012\015\324\205\163\310\022\341\065 +\355\361\005\061\035\163\231\014\353\226\312\335\323\346\205\252 +\360\212\373\165\301\362\011\074\145\145\144\363\114\330\255\313 +\210\151\363\344\203\267\014\275\027\132\226\027\312\133\377\255 +\273\034\351\055\204\200\330\041\276\205\122\331\324\164\271\151 +\205\272\115\355\050\062\353\371\141\112\344\304\066\036\031\334 +\157\204\021\037\225\365\203\050\030\250\063\222\103\047\335\135 +\023\004\105\117\207\325\106\315\075\250\272\360\363\270\126\044 +\105\353\067\307\341\166\117\162\071\030\337\176\164\162\307\163 +\055\071\352\140\346\255\021\242\126\207\173\303\150\232\376\370 +\214\160\250\337\145\062\364\244\100\214\241\302\104\003\016\224 +\000\147\240\161\000\202\110 +END + +# Trust for Certificate "ComSign CA" +# Issuer: C=IL,O=ComSign,CN=ComSign CA +# Serial Number:14:13:96:83:14:55:8c:ea:7b:63:e5:fc:34:87:77:44 +# Subject: C=IL,O=ComSign,CN=ComSign CA +# Not Valid Before: Wed Mar 24 11:32:18 2004 +# Not Valid After : Mon Mar 19 15:02:18 2029 +# Fingerprint (MD5): CD:F4:39:F3:B5:18:50:D7:3E:A4:C5:91:A0:3E:21:4B +# Fingerprint (SHA1): E1:A4:5B:14:1A:21:DA:1A:79:F4:1A:42:A9:61:D6:69:CD:06:34:C1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ComSign CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\341\244\133\024\032\041\332\032\171\364\032\102\251\141\326\151 +\315\006\064\301 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\315\364\071\363\265\030\120\327\076\244\305\221\240\076\041\113 +END +CKA_ISSUER MULTILINE_OCTAL +\060\064\061\023\060\021\006\003\125\004\003\023\012\103\157\155 +\123\151\147\156\040\103\101\061\020\060\016\006\003\125\004\012 +\023\007\103\157\155\123\151\147\156\061\013\060\011\006\003\125 +\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\024\023\226\203\024\125\214\352\173\143\345\374\064\207 +\167\104 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ComSign Secured CA" +# +# Issuer: C=IL,O=ComSign,CN=ComSign Secured CA +# Serial Number:00:c7:28:47:09:b3:b8:6c:45:8c:1d:fa:24:f5:36:4e:e9 +# Subject: C=IL,O=ComSign,CN=ComSign Secured CA +# Not Valid Before: Wed Mar 24 11:37:20 2004 +# Not Valid After : Fri Mar 16 15:04:56 2029 +# Fingerprint (MD5): 40:01:25:06:8D:21:43:6A:0E:43:00:9C:E7:43:F3:D5 +# Fingerprint (SHA1): F9:CD:0E:2C:DA:76:24:C1:8F:BD:F0:F0:AB:B6:45:B8:F7:FE:D5:7A +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 "ComSign Secured CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155 +\123\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061 +\020\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147 +\156\061\013\060\011\006\003\125\004\006\023\002\111\114 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155 +\123\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061 +\020\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147 +\156\061\013\060\011\006\003\125\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\307\050\107\011\263\270\154\105\214\035\372\044\365 +\066\116\351 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\253\060\202\002\223\240\003\002\001\002\002\021\000 +\307\050\107\011\263\270\154\105\214\035\372\044\365\066\116\351 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155\123 +\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061\020 +\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147\156 +\061\013\060\011\006\003\125\004\006\023\002\111\114\060\036\027 +\015\060\064\060\063\062\064\061\061\063\067\062\060\132\027\015 +\062\071\060\063\061\066\061\065\060\064\065\066\132\060\074\061 +\033\060\031\006\003\125\004\003\023\022\103\157\155\123\151\147 +\156\040\123\145\143\165\162\145\144\040\103\101\061\020\060\016 +\006\003\125\004\012\023\007\103\157\155\123\151\147\156\061\013 +\060\011\006\003\125\004\006\023\002\111\114\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\306\265\150\137 +\035\224\025\303\244\010\125\055\343\240\127\172\357\351\164\052 +\273\271\174\127\111\032\021\136\117\051\207\014\110\326\152\347 +\217\324\176\127\044\271\006\211\344\034\074\352\254\343\332\041 +\200\163\041\012\357\171\230\154\037\010\377\241\120\175\362\230 +\033\311\124\157\076\245\050\354\041\004\017\105\273\007\075\241 +\300\372\052\230\035\116\006\223\373\365\210\073\253\137\313\026 +\277\346\363\236\112\207\355\031\352\302\237\103\344\361\201\245 +\177\020\117\076\321\112\142\255\123\033\313\203\377\007\145\245 +\222\055\146\251\133\270\132\364\035\264\041\221\112\027\173\236 +\062\376\126\044\071\262\124\204\103\365\204\302\330\274\101\220 +\314\235\326\150\332\351\202\120\251\073\150\317\265\135\002\224 +\140\026\261\103\331\103\135\335\135\207\156\352\273\263\311\153 +\366\003\224\011\160\336\026\021\172\053\350\166\217\111\020\230 +\167\271\143\134\213\063\227\165\366\013\214\262\253\133\336\164 +\040\045\077\343\363\021\371\207\150\206\065\161\303\035\214\055 +\353\345\032\254\017\163\325\202\131\100\200\323\002\003\001\000 +\001\243\201\247\060\201\244\060\014\006\003\125\035\023\004\005 +\060\003\001\001\377\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\146 +\145\144\151\162\056\143\157\155\163\151\147\156\056\143\157\056 +\151\154\057\143\162\154\057\103\157\155\123\151\147\156\123\145 +\143\165\162\145\144\103\101\056\143\162\154\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\206\060\037\006\003\125 +\035\043\004\030\060\026\200\024\301\113\355\160\266\367\076\174 +\000\073\000\217\307\076\016\105\237\036\135\354\060\035\006\003 +\125\035\016\004\026\004\024\301\113\355\160\266\367\076\174\000 +\073\000\217\307\076\016\105\237\036\135\354\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\026 +\317\356\222\023\120\253\173\024\236\063\266\102\040\152\324\025 +\275\011\253\374\162\350\357\107\172\220\254\121\301\144\116\351 +\210\275\103\105\201\343\146\043\077\022\206\115\031\344\005\260 +\346\067\302\215\332\006\050\311\017\211\244\123\251\165\077\260 +\226\373\253\114\063\125\371\170\046\106\157\033\066\230\373\102 +\166\301\202\271\216\336\373\105\371\143\033\142\073\071\006\312 +\167\172\250\074\011\317\154\066\075\017\012\105\113\151\026\032 +\105\175\063\003\145\371\122\161\220\046\225\254\114\014\365\213 +\223\077\314\165\164\205\230\272\377\142\172\115\037\211\376\256 +\275\224\000\231\277\021\245\334\340\171\305\026\013\175\002\141 +\035\352\205\371\002\025\117\347\132\211\116\024\157\343\067\113 +\205\365\301\074\141\340\375\005\101\262\222\177\303\035\240\320 +\256\122\144\140\153\030\306\046\234\330\365\144\344\066\032\142 +\237\212\017\076\377\155\116\031\126\116\040\221\154\237\064\063 +\072\064\127\120\072\157\201\136\006\306\365\076\174\116\216\053 +\316\145\006\056\135\322\052\123\164\136\323\156\047\236\217 +END + +# Trust for Certificate "ComSign Secured CA" +# Issuer: C=IL,O=ComSign,CN=ComSign Secured CA +# Serial Number:00:c7:28:47:09:b3:b8:6c:45:8c:1d:fa:24:f5:36:4e:e9 +# Subject: C=IL,O=ComSign,CN=ComSign Secured CA +# Not Valid Before: Wed Mar 24 11:37:20 2004 +# Not Valid After : Fri Mar 16 15:04:56 2029 +# Fingerprint (MD5): 40:01:25:06:8D:21:43:6A:0E:43:00:9C:E7:43:F3:D5 +# Fingerprint (SHA1): F9:CD:0E:2C:DA:76:24:C1:8F:BD:F0:F0:AB:B6:45:B8:F7:FE:D5:7A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ComSign Secured CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\371\315\016\054\332\166\044\301\217\275\360\360\253\266\105\270 +\367\376\325\172 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\100\001\045\006\215\041\103\152\016\103\000\234\347\103\363\325 +END +CKA_ISSUER MULTILINE_OCTAL +\060\074\061\033\060\031\006\003\125\004\003\023\022\103\157\155 +\123\151\147\156\040\123\145\143\165\162\145\144\040\103\101\061 +\020\060\016\006\003\125\004\012\023\007\103\157\155\123\151\147 +\156\061\013\060\011\006\003\125\004\006\023\002\111\114 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\307\050\107\011\263\270\154\105\214\035\372\044\365 +\066\116\351 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Cybertrust Global Root" +# +# Issuer: CN=Cybertrust Global Root,O="Cybertrust, Inc" +# Serial Number:04:00:00:00:00:01:0f:85:aa:2d:48 +# Subject: CN=Cybertrust Global Root,O="Cybertrust, Inc" +# Not Valid Before: Fri Dec 15 08:00:00 2006 +# Not Valid After : Wed Dec 15 08:00:00 2021 +# Fingerprint (MD5): 72:E4:4A:87:E3:69:40:80:77:EA:BC:E3:F4:FF:F0:E1 +# Fingerprint (SHA1): 5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6 +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 "Cybertrust Global Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\073\061\030\060\026\006\003\125\004\012\023\017\103\171\142 +\145\162\164\162\165\163\164\054\040\111\156\143\061\037\060\035 +\006\003\125\004\003\023\026\103\171\142\145\162\164\162\165\163 +\164\040\107\154\157\142\141\154\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\030\060\026\006\003\125\004\012\023\017\103\171\142 +\145\162\164\162\165\163\164\054\040\111\156\143\061\037\060\035 +\006\003\125\004\003\023\026\103\171\142\145\162\164\162\165\163 +\164\040\107\154\157\142\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\205\252\055\110 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\241\060\202\002\211\240\003\002\001\002\002\013\004 +\000\000\000\000\001\017\205\252\055\110\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\060\073\061\030\060\026\006 +\003\125\004\012\023\017\103\171\142\145\162\164\162\165\163\164 +\054\040\111\156\143\061\037\060\035\006\003\125\004\003\023\026 +\103\171\142\145\162\164\162\165\163\164\040\107\154\157\142\141 +\154\040\122\157\157\164\060\036\027\015\060\066\061\062\061\065 +\060\070\060\060\060\060\132\027\015\062\061\061\062\061\065\060 +\070\060\060\060\060\132\060\073\061\030\060\026\006\003\125\004 +\012\023\017\103\171\142\145\162\164\162\165\163\164\054\040\111 +\156\143\061\037\060\035\006\003\125\004\003\023\026\103\171\142 +\145\162\164\162\165\163\164\040\107\154\157\142\141\154\040\122 +\157\157\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\370\310\274\275\024\120\146\023\377\360\323\171 +\354\043\362\267\032\307\216\205\361\022\163\246\031\252\020\333 +\234\242\145\164\132\167\076\121\175\126\366\334\043\266\324\355 +\137\130\261\067\115\325\111\016\156\365\152\207\326\322\214\322 +\047\306\342\377\066\237\230\145\240\023\116\306\052\144\233\325 +\220\022\317\024\006\364\073\343\324\050\276\350\016\370\253\116 +\110\224\155\216\225\061\020\134\355\242\055\275\325\072\155\262 +\034\273\140\300\106\113\001\365\111\256\176\106\212\320\164\215 +\241\014\002\316\356\374\347\217\270\153\146\363\177\104\000\277 +\146\045\024\053\335\020\060\035\007\226\077\115\366\153\270\217 +\267\173\014\245\070\353\336\107\333\325\135\071\374\210\247\363 +\327\052\164\361\350\132\242\073\237\120\272\246\214\105\065\302 +\120\145\225\334\143\202\357\335\277\167\115\234\142\311\143\163 +\026\320\051\017\111\251\110\360\263\252\267\154\305\247\060\071 +\100\135\256\304\342\135\046\123\360\316\034\043\010\141\250\224 +\031\272\004\142\100\354\037\070\160\167\022\006\161\247\060\030 +\135\045\047\245\002\003\001\000\001\243\201\245\060\201\242\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\266\010\173\015\172 +\314\254\040\114\206\126\062\136\317\253\156\205\055\160\127\060 +\077\006\003\125\035\037\004\070\060\066\060\064\240\062\240\060 +\206\056\150\164\164\160\072\057\057\167\167\167\062\056\160\165 +\142\154\151\143\055\164\162\165\163\164\056\143\157\155\057\143 +\162\154\057\143\164\057\143\164\162\157\157\164\056\143\162\154 +\060\037\006\003\125\035\043\004\030\060\026\200\024\266\010\173 +\015\172\314\254\040\114\206\126\062\136\317\253\156\205\055\160 +\127\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\126\357\012\043\240\124\116\225\227\311\370 +\211\332\105\301\324\243\000\045\364\037\023\253\267\243\205\130 +\151\302\060\255\330\025\212\055\343\311\315\201\132\370\163\043 +\132\247\174\005\363\375\042\073\016\321\006\304\333\066\114\163 +\004\216\345\260\042\344\305\363\056\245\331\043\343\270\116\112 +\040\247\156\002\044\237\042\140\147\173\213\035\162\011\305\061 +\134\351\171\237\200\107\075\255\241\013\007\024\075\107\377\003 +\151\032\014\013\104\347\143\045\247\177\262\311\270\166\204\355 +\043\366\175\007\253\105\176\323\337\263\277\351\212\266\315\250 +\242\147\053\122\325\267\145\360\071\114\143\240\221\171\223\122 +\017\124\335\203\273\237\321\217\247\123\163\303\313\377\060\354 +\174\004\270\330\104\037\223\137\161\011\042\267\156\076\352\034 +\003\116\235\032\040\141\373\201\067\354\136\374\012\105\253\327 +\347\027\125\320\240\352\140\233\246\366\343\214\133\051\302\006 +\140\024\235\055\227\114\251\223\025\235\141\304\001\137\110\326 +\130\275\126\061\022\116\021\310\041\340\263\021\221\145\333\264 +\246\210\070\316\125 +END + +# Trust for Certificate "Cybertrust Global Root" +# Issuer: CN=Cybertrust Global Root,O="Cybertrust, Inc" +# Serial Number:04:00:00:00:00:01:0f:85:aa:2d:48 +# Subject: CN=Cybertrust Global Root,O="Cybertrust, Inc" +# Not Valid Before: Fri Dec 15 08:00:00 2006 +# Not Valid After : Wed Dec 15 08:00:00 2021 +# Fingerprint (MD5): 72:E4:4A:87:E3:69:40:80:77:EA:BC:E3:F4:FF:F0:E1 +# Fingerprint (SHA1): 5F:43:E5:B1:BF:F8:78:8C:AC:1C:C7:CA:4A:9A:C6:22:2B:CC:34:C6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Cybertrust Global Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\103\345\261\277\370\170\214\254\034\307\312\112\232\306\042 +\053\314\064\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\162\344\112\207\343\151\100\200\167\352\274\343\364\377\360\341 +END +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\030\060\026\006\003\125\004\012\023\017\103\171\142 +\145\162\164\162\165\163\164\054\040\111\156\143\061\037\060\035 +\006\003\125\004\003\023\026\103\171\142\145\162\164\162\165\163 +\164\040\107\154\157\142\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\017\205\252\055\110 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ePKI Root Certification Authority" +# +# Issuer: OU=ePKI Root Certification Authority,O="Chunghwa Telecom Co., Ltd.",C=TW +# Serial Number:15:c8:bd:65:47:5c:af:b8:97:00:5e:e4:06:d2:bc:9d +# Subject: OU=ePKI Root Certification Authority,O="Chunghwa Telecom Co., Ltd.",C=TW +# Not Valid Before: Mon Dec 20 02:31:27 2004 +# Not Valid After : Wed Dec 20 02:31:27 2034 +# Fingerprint (MD5): 1B:2E:00:CA:26:06:90:3D:AD:FE:6F:15:68:D3:6B:B3 +# Fingerprint (SHA1): 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0 +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 "ePKI Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\136\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\043\060\041\006\003\125\004\012\014\032\103\150\165\156\147\150 +\167\141\040\124\145\154\145\143\157\155\040\103\157\056\054\040 +\114\164\144\056\061\052\060\050\006\003\125\004\013\014\041\145 +\120\113\111\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\136\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\043\060\041\006\003\125\004\012\014\032\103\150\165\156\147\150 +\167\141\040\124\145\154\145\143\157\155\040\103\157\056\054\040 +\114\164\144\056\061\052\060\050\006\003\125\004\013\014\041\145 +\120\113\111\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\020\025\310\275\145\107\134\257\270\227\000\136\344\006\322 +\274\235 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\260\060\202\003\230\240\003\002\001\002\002\020\025 +\310\275\145\107\134\257\270\227\000\136\344\006\322\274\235\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\136 +\061\013\060\011\006\003\125\004\006\023\002\124\127\061\043\060 +\041\006\003\125\004\012\014\032\103\150\165\156\147\150\167\141 +\040\124\145\154\145\143\157\155\040\103\157\056\054\040\114\164 +\144\056\061\052\060\050\006\003\125\004\013\014\041\145\120\113 +\111\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\064\061\062\062\060\060\062\063\061\062\067\132\027 +\015\063\064\061\062\062\060\060\062\063\061\062\067\132\060\136 +\061\013\060\011\006\003\125\004\006\023\002\124\127\061\043\060 +\041\006\003\125\004\012\014\032\103\150\165\156\147\150\167\141 +\040\124\145\154\145\143\157\155\040\103\157\056\054\040\114\164 +\144\056\061\052\060\050\006\003\125\004\013\014\041\145\120\113 +\111\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 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\341 +\045\017\356\215\333\210\063\165\147\315\255\037\175\072\116\155 +\235\323\057\024\363\143\164\313\001\041\152\067\352\204\120\007 +\113\046\133\011\103\154\041\236\152\310\325\003\365\140\151\217 +\314\360\042\344\037\347\367\152\042\061\267\054\025\362\340\376 +\000\152\103\377\207\145\306\265\032\301\247\114\155\042\160\041 +\212\061\362\227\164\211\011\022\046\034\236\312\331\022\242\225 +\074\332\351\147\277\010\240\144\343\326\102\267\105\357\227\364 +\366\365\327\265\112\025\002\130\175\230\130\113\140\274\315\327 +\015\232\023\063\123\321\141\371\172\325\327\170\263\232\063\367 +\000\206\316\035\115\224\070\257\250\354\170\121\160\212\134\020 +\203\121\041\367\021\075\064\206\136\345\110\315\227\201\202\065 +\114\031\354\145\366\153\305\005\241\356\107\023\326\263\041\047 +\224\020\012\331\044\073\272\276\104\023\106\060\077\227\074\330 +\327\327\152\356\073\070\343\053\324\227\016\271\033\347\007\111 +\177\067\052\371\167\170\317\124\355\133\106\235\243\200\016\221 +\103\301\326\133\137\024\272\237\246\215\044\107\100\131\277\162 +\070\262\066\154\067\377\231\321\135\016\131\012\253\151\367\300 +\262\004\105\172\124\000\256\276\123\366\265\347\341\370\074\243 +\061\322\251\376\041\122\144\305\246\147\360\165\007\006\224\024 +\201\125\306\047\344\001\217\027\301\152\161\327\276\113\373\224 +\130\175\176\021\063\261\102\367\142\154\030\326\317\011\150\076 +\177\154\366\036\217\142\255\245\143\333\011\247\037\042\102\101 +\036\157\231\212\076\327\371\077\100\172\171\260\245\001\222\322 +\235\075\010\025\245\020\001\055\263\062\166\250\225\015\263\172 +\232\373\007\020\170\021\157\341\217\307\272\017\045\032\164\052 +\345\034\230\101\231\337\041\207\350\225\006\152\012\263\152\107 +\166\145\366\072\317\217\142\027\031\173\012\050\315\032\322\203 +\036\041\307\054\277\276\377\141\150\267\147\033\273\170\115\215 +\316\147\345\344\301\216\267\043\146\342\235\220\165\064\230\251 +\066\053\212\232\224\271\235\354\314\212\261\370\045\211\134\132 +\266\057\214\037\155\171\044\247\122\150\303\204\065\342\146\215 +\143\016\045\115\325\031\262\346\171\067\247\042\235\124\061\002 +\003\001\000\001\243\152\060\150\060\035\006\003\125\035\016\004 +\026\004\024\036\014\367\266\147\362\341\222\046\011\105\300\125 +\071\056\167\077\102\112\242\060\014\006\003\125\035\023\004\005 +\060\003\001\001\377\060\071\006\004\147\052\007\000\004\061\060 +\057\060\055\002\001\000\060\011\006\005\053\016\003\002\032\005 +\000\060\007\006\005\147\052\003\000\000\004\024\105\260\302\307 +\012\126\174\356\133\170\014\225\371\030\123\301\246\034\330\020 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\002\001\000\011\263\203\123\131\001\076\225\111\271\361\201 +\272\371\166\040\043\265\047\140\164\324\152\231\064\136\154\000 +\123\331\237\362\246\261\044\007\104\152\052\306\245\216\170\022 +\350\107\331\130\033\023\052\136\171\233\237\012\052\147\246\045 +\077\006\151\126\163\303\212\146\110\373\051\201\127\164\006\312 +\234\352\050\350\070\147\046\053\361\325\265\077\145\223\370\066 +\135\216\215\215\100\040\207\031\352\357\047\300\075\264\071\017 +\045\173\150\120\164\125\234\014\131\175\132\075\101\224\045\122 +\010\340\107\054\025\061\031\325\277\007\125\306\273\022\265\227 +\364\137\203\205\272\161\301\331\154\201\021\166\012\012\260\277 +\202\227\367\352\075\372\372\354\055\251\050\224\073\126\335\322 +\121\056\256\300\275\010\025\214\167\122\064\226\326\233\254\323 +\035\216\141\017\065\173\233\256\071\151\013\142\140\100\040\066 +\217\257\373\066\356\055\010\112\035\270\277\233\134\370\352\245 +\033\240\163\246\330\370\156\340\063\004\137\150\252\047\207\355 +\331\301\220\234\355\275\343\152\065\257\143\337\253\030\331\272 +\346\351\112\352\120\212\017\141\223\036\342\055\031\342\060\224 +\065\222\135\016\266\007\257\031\200\217\107\220\121\113\056\115 +\335\205\342\322\012\122\012\027\232\374\032\260\120\002\345\001 +\243\143\067\041\114\104\304\233\121\231\021\016\163\234\006\217 +\124\056\247\050\136\104\071\207\126\055\067\275\205\104\224\341 +\014\113\054\234\303\222\205\064\141\313\017\270\233\112\103\122 +\376\064\072\175\270\351\051\334\166\251\310\060\370\024\161\200 +\306\036\066\110\164\042\101\134\207\202\350\030\161\213\101\211 +\104\347\176\130\133\250\270\215\023\351\247\154\303\107\355\263 +\032\235\142\256\215\202\352\224\236\335\131\020\303\255\335\342 +\115\343\061\325\307\354\350\362\260\376\222\036\026\012\032\374 +\331\363\370\047\266\311\276\035\264\154\144\220\177\364\344\304 +\133\327\067\256\102\016\335\244\032\157\174\210\124\305\026\156 +\341\172\150\056\370\072\277\015\244\074\211\073\170\247\116\143 +\203\004\041\010\147\215\362\202\111\320\133\375\261\315\017\203 +\204\324\076\040\205\367\112\075\053\234\375\052\012\011\115\352 +\201\370\021\234 +END + +# Trust for Certificate "ePKI Root Certification Authority" +# Issuer: OU=ePKI Root Certification Authority,O="Chunghwa Telecom Co., Ltd.",C=TW +# Serial Number:15:c8:bd:65:47:5c:af:b8:97:00:5e:e4:06:d2:bc:9d +# Subject: OU=ePKI Root Certification Authority,O="Chunghwa Telecom Co., Ltd.",C=TW +# Not Valid Before: Mon Dec 20 02:31:27 2004 +# Not Valid After : Wed Dec 20 02:31:27 2034 +# Fingerprint (MD5): 1B:2E:00:CA:26:06:90:3D:AD:FE:6F:15:68:D3:6B:B3 +# Fingerprint (SHA1): 67:65:0D:F1:7E:8E:7E:5B:82:40:A4:F4:56:4B:CF:E2:3D:69:C6:F0 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ePKI Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\147\145\015\361\176\216\176\133\202\100\244\364\126\113\317\342 +\075\151\306\360 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\033\056\000\312\046\006\220\075\255\376\157\025\150\323\153\263 +END +CKA_ISSUER MULTILINE_OCTAL +\060\136\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\043\060\041\006\003\125\004\012\014\032\103\150\165\156\147\150 +\167\141\040\124\145\154\145\143\157\155\040\103\157\056\054\040 +\114\164\144\056\061\052\060\050\006\003\125\004\013\014\041\145 +\120\113\111\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\020\025\310\275\145\107\134\257\270\227\000\136\344\006\322 +\274\235 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TUBITAK UEKAE Kok Sertifika Hizmet Saglayicisi - Surum 3" +# +# Issuer: CN=T..B..TAK UEKAE K..k Sertifika Hizmet Sa..lay..c..s.. - S..r..m ...,OU=Kamu Sertifikasyon Merkezi,OU=Ulusal Elektronik ve Kriptoloji Ara..t..rma Enstit..s.. - UEKAE,O=T..rkiye Bilimsel ve Teknolojik Ara..t..rma Kurumu - T..B..TAK,L=Gebze - Kocaeli,C=TR +# Serial Number: 17 (0x11) +# Subject: CN=T..B..TAK UEKAE K..k Sertifika Hizmet Sa..lay..c..s.. - S..r..m ...,OU=Kamu Sertifikasyon Merkezi,OU=Ulusal Elektronik ve Kriptoloji Ara..t..rma Enstit..s.. - UEKAE,O=T..rkiye Bilimsel ve Teknolojik Ara..t..rma Kurumu - T..B..TAK,L=Gebze - Kocaeli,C=TR +# Not Valid Before: Fri Aug 24 11:37:07 2007 +# Not Valid After : Mon Aug 21 11:37:07 2017 +# Fingerprint (MD5): ED:41:F5:8C:50:C5:2B:9C:73:E6:EE:6C:EB:C2:A8:26 +# Fingerprint (SHA1): 1B:4B:39:61:26:27:6B:64:91:A2:68:6D:D7:02:43:21:2D:1F:1D:96 +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 "T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172 +\145\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006 +\003\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102 +\151\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157 +\154\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304 +\260\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125 +\154\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153 +\040\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101 +\162\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151 +\164\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043 +\060\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303 +\234\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303 +\266\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\040\055\040\123\303\274\162\303\274\155\040\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172 +\145\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006 +\003\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102 +\151\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157 +\154\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304 +\260\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125 +\154\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153 +\040\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101 +\162\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151 +\164\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043 +\060\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303 +\234\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303 +\266\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\040\055\040\123\303\274\162\303\274\155\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\021 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\027\060\202\003\377\240\003\002\001\002\002\001\021 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172\145 +\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006\003 +\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102\151 +\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154 +\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155\141 +\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304\260 +\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125\154 +\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153\040 +\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101\162 +\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151\164 +\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043\060 +\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145\162 +\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153\145 +\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303\234 +\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303\266 +\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155 +\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163 +\304\261\040\055\040\123\303\274\162\303\274\155\040\063\060\036 +\027\015\060\067\060\070\062\064\061\061\063\067\060\067\132\027 +\015\061\067\060\070\062\061\061\061\063\067\060\067\132\060\202 +\001\053\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\030\060\026\006\003\125\004\007\014\017\107\145\142\172\145\040 +\055\040\113\157\143\141\145\154\151\061\107\060\105\006\003\125 +\004\012\014\076\124\303\274\162\153\151\171\145\040\102\151\154 +\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154\157 +\152\151\153\040\101\162\141\305\237\164\304\261\162\155\141\040 +\113\165\162\165\155\165\040\055\040\124\303\234\102\304\260\124 +\101\113\061\110\060\106\006\003\125\004\013\014\077\125\154\165 +\163\141\154\040\105\154\145\153\164\162\157\156\151\153\040\166 +\145\040\113\162\151\160\164\157\154\157\152\151\040\101\162\141 +\305\237\164\304\261\162\155\141\040\105\156\163\164\151\164\303 +\274\163\303\274\040\055\040\125\105\113\101\105\061\043\060\041 +\006\003\125\004\013\014\032\113\141\155\165\040\123\145\162\164 +\151\146\151\153\141\163\171\157\156\040\115\145\162\153\145\172 +\151\061\112\060\110\006\003\125\004\003\014\101\124\303\234\102 +\304\260\124\101\113\040\125\105\113\101\105\040\113\303\266\153 +\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145 +\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304 +\261\040\055\040\123\303\274\162\303\274\155\040\063\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\212\155 +\113\377\020\210\072\303\366\176\224\350\352\040\144\160\256\041 +\201\276\072\173\074\333\361\035\122\177\131\372\363\042\114\225 +\240\220\274\110\116\021\253\373\267\265\215\172\203\050\214\046 +\106\330\116\225\100\207\141\237\305\236\155\201\207\127\154\212 +\073\264\146\352\314\100\374\343\252\154\262\313\001\333\062\277 +\322\353\205\317\241\015\125\303\133\070\127\160\270\165\306\171 +\321\024\060\355\033\130\133\153\357\065\362\241\041\116\305\316 +\174\231\137\154\271\270\042\223\120\247\315\114\160\152\276\152 +\005\177\023\234\053\036\352\376\107\316\004\245\157\254\223\056 +\174\053\237\236\171\023\221\350\352\236\312\070\165\216\142\260 +\225\223\052\345\337\351\136\227\156\040\137\137\204\172\104\071 +\031\100\034\272\125\053\373\060\262\201\357\204\343\334\354\230 +\070\071\003\205\010\251\124\003\005\051\360\311\217\213\352\013 +\206\145\031\021\323\351\011\043\336\150\223\003\311\066\034\041 +\156\316\214\146\361\231\060\330\327\263\303\035\370\201\056\250 +\275\202\013\146\376\202\313\341\340\032\202\303\100\201\002\003 +\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\275\210\207\311\217\366\244\012\013\252\353\305\376\221 +\043\235\253\112\212\062\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\035\174\372\111\217 +\064\351\267\046\222\026\232\005\164\347\113\320\155\071\154\303 +\046\366\316\270\061\274\304\337\274\052\370\067\221\030\334\004 +\310\144\231\053\030\155\200\003\131\311\256\370\130\320\076\355 +\303\043\237\151\074\206\070\034\236\357\332\047\170\321\204\067 +\161\212\074\113\071\317\176\105\006\326\055\330\212\115\170\022 +\326\255\302\323\313\322\320\101\363\046\066\112\233\225\154\014 +\356\345\321\103\047\146\301\210\367\172\263\040\154\352\260\151 +\053\307\040\350\014\003\304\101\005\231\342\077\344\153\370\240 +\206\201\307\204\306\037\325\113\201\022\262\026\041\054\023\241 +\200\262\136\014\112\023\236\040\330\142\100\253\220\352\144\112 +\057\254\015\001\022\171\105\250\057\207\031\150\310\342\205\307 +\060\262\165\371\070\077\262\300\223\264\153\342\003\104\316\147 +\240\337\211\326\255\214\166\243\023\303\224\141\053\153\331\154 +\301\007\012\042\007\205\154\205\044\106\251\276\077\213\170\204 +\202\176\044\014\235\375\201\067\343\045\250\355\066\116\225\054 +\311\234\220\332\354\251\102\074\255\266\002 +END + +# Trust for Certificate "TUBITAK UEKAE Kok Sertifika Hizmet Saglayicisi - Surum 3" +# Issuer: CN=T..B..TAK UEKAE K..k Sertifika Hizmet Sa..lay..c..s.. - S..r..m ...,OU=Kamu Sertifikasyon Merkezi,OU=Ulusal Elektronik ve Kriptoloji Ara..t..rma Enstit..s.. - UEKAE,O=T..rkiye Bilimsel ve Teknolojik Ara..t..rma Kurumu - T..B..TAK,L=Gebze - Kocaeli,C=TR +# Serial Number: 17 (0x11) +# Subject: CN=T..B..TAK UEKAE K..k Sertifika Hizmet Sa..lay..c..s.. - S..r..m ...,OU=Kamu Sertifikasyon Merkezi,OU=Ulusal Elektronik ve Kriptoloji Ara..t..rma Enstit..s.. - UEKAE,O=T..rkiye Bilimsel ve Teknolojik Ara..t..rma Kurumu - T..B..TAK,L=Gebze - Kocaeli,C=TR +# Not Valid Before: Fri Aug 24 11:37:07 2007 +# Not Valid After : Mon Aug 21 11:37:07 2017 +# Fingerprint (MD5): ED:41:F5:8C:50:C5:2B:9C:73:E6:EE:6C:EB:C2:A8:26 +# Fingerprint (SHA1): 1B:4B:39:61:26:27:6B:64:91:A2:68:6D:D7:02:43:21:2D:1F:1D:96 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\033\113\071\141\046\047\153\144\221\242\150\155\327\002\103\041 +\055\037\035\226 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\355\101\365\214\120\305\053\234\163\346\356\154\353\302\250\046 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\053\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\030\060\026\006\003\125\004\007\014\017\107\145\142\172 +\145\040\055\040\113\157\143\141\145\154\151\061\107\060\105\006 +\003\125\004\012\014\076\124\303\274\162\153\151\171\145\040\102 +\151\154\151\155\163\145\154\040\166\145\040\124\145\153\156\157 +\154\157\152\151\153\040\101\162\141\305\237\164\304\261\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\303\234\102\304 +\260\124\101\113\061\110\060\106\006\003\125\004\013\014\077\125 +\154\165\163\141\154\040\105\154\145\153\164\162\157\156\151\153 +\040\166\145\040\113\162\151\160\164\157\154\157\152\151\040\101 +\162\141\305\237\164\304\261\162\155\141\040\105\156\163\164\151 +\164\303\274\163\303\274\040\055\040\125\105\113\101\105\061\043 +\060\041\006\003\125\004\013\014\032\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\061\112\060\110\006\003\125\004\003\014\101\124\303 +\234\102\304\260\124\101\113\040\125\105\113\101\105\040\113\303 +\266\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\040\055\040\123\303\274\162\303\274\155\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\021 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "certSIGN ROOT CA" +# +# Issuer: OU=certSIGN ROOT CA,O=certSIGN,C=RO +# Serial Number:20:06:05:16:70:02 +# Subject: OU=certSIGN ROOT CA,O=certSIGN,C=RO +# Not Valid Before: Tue Jul 04 17:20:04 2006 +# Not Valid After : Fri Jul 04 17:20:04 2031 +# Fingerprint (MD5): 18:98:C0:D6:E9:3A:FC:F9:B0:F5:0C:F7:4B:01:44:17 +# Fingerprint (SHA1): FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B +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 "certSIGN ROOT CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123\111 +\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145\162 +\164\123\111\107\116\040\122\117\117\124\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123\111 +\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145\162 +\164\123\111\107\116\040\122\117\117\124\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\040\006\005\026\160\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\070\060\202\002\040\240\003\002\001\002\002\006\040 +\006\005\026\160\002\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\060\073\061\013\060\011\006\003\125\004\006\023 +\002\122\117\061\021\060\017\006\003\125\004\012\023\010\143\145 +\162\164\123\111\107\116\061\031\060\027\006\003\125\004\013\023 +\020\143\145\162\164\123\111\107\116\040\122\117\117\124\040\103 +\101\060\036\027\015\060\066\060\067\060\064\061\067\062\060\060 +\064\132\027\015\063\061\060\067\060\064\061\067\062\060\060\064 +\132\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117 +\061\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123 +\111\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145 +\162\164\123\111\107\116\040\122\117\117\124\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\267 +\063\271\176\310\045\112\216\265\333\264\050\033\252\127\220\350 +\321\042\323\144\272\323\223\350\324\254\206\141\100\152\140\127 +\150\124\204\115\274\152\124\002\005\377\337\233\232\052\256\135 +\007\217\112\303\050\177\357\373\053\372\171\361\307\255\360\020 +\123\044\220\213\146\311\250\210\253\257\132\243\000\351\276\272 +\106\356\133\163\173\054\027\202\201\136\142\054\241\002\145\263 +\275\305\053\000\176\304\374\003\063\127\015\355\342\372\316\135 +\105\326\070\315\065\266\262\301\320\234\201\112\252\344\262\001 +\134\035\217\137\231\304\261\255\333\210\041\353\220\010\202\200 +\363\060\243\103\346\220\202\256\125\050\111\355\133\327\251\020 +\070\016\376\217\114\133\233\106\352\101\365\260\010\164\303\320 +\210\063\266\174\327\164\337\334\204\321\103\016\165\071\241\045 +\100\050\352\170\313\016\054\056\071\235\214\213\156\026\034\057 +\046\202\020\342\343\145\224\012\004\300\136\367\135\133\370\020 +\342\320\272\172\113\373\336\067\000\000\032\133\050\343\322\234 +\163\076\062\207\230\241\311\121\057\327\336\254\063\263\117\002 +\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\306\060\035\006\003\125\035\016 +\004\026\004\024\340\214\233\333\045\111\263\361\174\206\326\262 +\102\207\013\320\153\240\331\344\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\076\322\034\211 +\056\065\374\370\165\335\346\177\145\210\364\162\114\311\054\327 +\062\116\363\335\031\171\107\275\216\073\133\223\017\120\111\044 +\023\153\024\006\162\357\011\323\241\241\343\100\204\311\347\030 +\062\164\074\110\156\017\237\113\324\367\036\323\223\206\144\124 +\227\143\162\120\325\125\317\372\040\223\002\242\233\303\043\223 +\116\026\125\166\240\160\171\155\315\041\037\317\057\055\274\031 +\343\210\061\370\131\032\201\011\310\227\246\164\307\140\304\133 +\314\127\216\262\165\375\033\002\011\333\131\157\162\223\151\367 +\061\101\326\210\070\277\207\262\275\026\171\371\252\344\276\210 +\045\335\141\047\043\034\265\061\007\004\066\264\032\220\275\240 +\164\161\120\211\155\274\024\343\017\206\256\361\253\076\307\240 +\011\314\243\110\321\340\333\144\347\222\265\317\257\162\103\160 +\213\371\303\204\074\023\252\176\222\233\127\123\223\372\160\302 +\221\016\061\371\233\147\135\351\226\070\136\137\263\163\116\210 +\025\147\336\236\166\020\142\040\276\125\151\225\103\000\071\115 +\366\356\260\132\116\111\104\124\130\137\102\203 +END + +# Trust for Certificate "certSIGN ROOT CA" +# Issuer: OU=certSIGN ROOT CA,O=certSIGN,C=RO +# Serial Number:20:06:05:16:70:02 +# Subject: OU=certSIGN ROOT CA,O=certSIGN,C=RO +# Not Valid Before: Tue Jul 04 17:20:04 2006 +# Not Valid After : Fri Jul 04 17:20:04 2031 +# Fingerprint (MD5): 18:98:C0:D6:E9:3A:FC:F9:B0:F5:0C:F7:4B:01:44:17 +# Fingerprint (SHA1): FA:B7:EE:36:97:26:62:FB:2D:B0:2A:F6:BF:03:FD:E8:7C:4B:2F:9B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "certSIGN ROOT CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\372\267\356\066\227\046\142\373\055\260\052\366\277\003\375\350 +\174\113\057\233 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\030\230\300\326\351\072\374\371\260\365\014\367\113\001\104\027 +END +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\122\117\061 +\021\060\017\006\003\125\004\012\023\010\143\145\162\164\123\111 +\107\116\061\031\060\027\006\003\125\004\013\023\020\143\145\162 +\164\123\111\107\116\040\122\117\117\124\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\040\006\005\026\160\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CNNIC ROOT" +# +# Issuer: CN=CNNIC ROOT,O=CNNIC,C=CN +# Serial Number: 1228079105 (0x49330001) +# Subject: CN=CNNIC ROOT,O=CNNIC,C=CN +# Not Valid Before: Mon Apr 16 07:09:14 2007 +# Not Valid After : Fri Apr 16 07:09:14 2027 +# Fingerprint (MD5): 21:BC:82:AB:49:C4:13:3B:4B:B2:2B:5C:6B:90:9C:19 +# Fingerprint (SHA1): 8B:AF:4C:9B:1D:F0:2A:92:F7:DA:12:8E:B9:1B:AC:F4:98:60:4B:6F +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 "CNNIC ROOT" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\111\063\000\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\125\060\202\002\075\240\003\002\001\002\002\004\111 +\063\000\001\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\062\061\013\060\011\006\003\125\004\006\023\002\103 +\116\061\016\060\014\006\003\125\004\012\023\005\103\116\116\111 +\103\061\023\060\021\006\003\125\004\003\023\012\103\116\116\111 +\103\040\122\117\117\124\060\036\027\015\060\067\060\064\061\066 +\060\067\060\071\061\064\132\027\015\062\067\060\064\061\066\060 +\067\060\071\061\064\132\060\062\061\013\060\011\006\003\125\004 +\006\023\002\103\116\061\016\060\014\006\003\125\004\012\023\005 +\103\116\116\111\103\061\023\060\021\006\003\125\004\003\023\012 +\103\116\116\111\103\040\122\117\117\124\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\323\065\367\077\163 +\167\255\350\133\163\027\302\321\157\355\125\274\156\352\350\244 +\171\262\154\303\243\357\341\237\261\073\110\205\365\232\134\041 +\042\020\054\305\202\316\332\343\232\156\067\341\207\054\334\271 +\014\132\272\210\125\337\375\252\333\037\061\352\001\361\337\071 +\001\301\023\375\110\122\041\304\125\337\332\330\263\124\166\272 +\164\261\267\175\327\300\350\366\131\305\115\310\275\255\037\024 +\332\337\130\104\045\062\031\052\307\176\176\216\256\070\260\060 +\173\107\162\011\061\360\060\333\303\033\166\051\273\151\166\116 +\127\371\033\144\242\223\126\267\157\231\156\333\012\004\234\021 +\343\200\037\313\143\224\020\012\251\341\144\202\061\371\214\047 +\355\246\231\000\366\160\223\030\370\241\064\206\243\335\172\302 +\030\171\366\172\145\065\317\220\353\275\063\223\237\123\253\163 +\073\346\233\064\040\057\035\357\251\035\143\032\240\200\333\003 +\057\371\046\032\206\322\215\273\251\276\122\072\207\147\110\015 +\277\264\240\330\046\276\043\137\163\067\177\046\346\222\004\243 +\177\317\040\247\267\363\072\312\313\231\313\002\003\001\000\001 +\243\163\060\161\060\021\006\011\140\206\110\001\206\370\102\001 +\001\004\004\003\002\000\007\060\037\006\003\125\035\043\004\030 +\060\026\200\024\145\362\061\255\052\367\367\335\122\226\012\307 +\002\301\016\357\246\325\073\021\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\013\006\003\125\035\017 +\004\004\003\002\001\376\060\035\006\003\125\035\016\004\026\004 +\024\145\362\061\255\052\367\367\335\122\226\012\307\002\301\016 +\357\246\325\073\021\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\001\001\000\113\065\356\314\344\256\277 +\303\156\255\237\225\073\113\077\133\036\337\127\051\242\131\312 +\070\342\271\032\377\236\346\156\062\335\036\256\352\065\267\365 +\223\221\116\332\102\341\303\027\140\120\362\321\134\046\271\202 +\267\352\155\344\234\204\347\003\171\027\257\230\075\224\333\307 +\272\000\347\270\277\001\127\301\167\105\062\014\073\361\264\034 +\010\260\375\121\240\241\335\232\035\023\066\232\155\267\307\074 +\271\341\305\331\027\372\203\325\075\025\240\074\273\036\013\342 +\310\220\077\250\206\014\374\371\213\136\205\313\117\133\113\142 +\021\107\305\105\174\005\057\101\261\236\020\151\033\231\226\340 +\125\171\373\116\206\231\270\224\332\206\070\152\223\243\347\313 +\156\345\337\352\041\125\211\234\175\175\177\230\365\000\211\356 +\343\204\300\134\226\265\305\106\352\106\340\205\125\266\033\311 +\022\326\301\315\315\200\363\002\001\074\310\151\313\105\110\143 +\330\224\320\354\205\016\073\116\021\145\364\202\214\246\075\256 +\056\042\224\011\310\134\352\074\201\135\026\052\003\227\026\125 +\011\333\212\101\202\236\146\233\021 +END + +# Trust for Certificate "CNNIC ROOT" +# Issuer: CN=CNNIC ROOT,O=CNNIC,C=CN +# Serial Number: 1228079105 (0x49330001) +# Subject: CN=CNNIC ROOT,O=CNNIC,C=CN +# Not Valid Before: Mon Apr 16 07:09:14 2007 +# Not Valid After : Fri Apr 16 07:09:14 2027 +# Fingerprint (MD5): 21:BC:82:AB:49:C4:13:3B:4B:B2:2B:5C:6B:90:9C:19 +# Fingerprint (SHA1): 8B:AF:4C:9B:1D:F0:2A:92:F7:DA:12:8E:B9:1B:AC:F4:98:60:4B:6F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CNNIC ROOT" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\213\257\114\233\035\360\052\222\367\332\022\216\271\033\254\364 +\230\140\113\157 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\041\274\202\253\111\304\023\073\113\262\053\134\153\220\234\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\111\063\000\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Primary Certification Authority - G3" +# +# Issuer: CN=GeoTrust Primary Certification Authority - G3,OU=(c) 2008 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Serial Number:15:ac:6e:94:19:b2:79:4b:41:f6:27:a9:c3:18:0f:1f +# Subject: CN=GeoTrust Primary Certification Authority - G3,OU=(c) 2008 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Not Valid Before: Wed Apr 02 00:00:00 2008 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (MD5): B5:E8:34:36:C9:10:44:58:48:70:6D:2E:83:D4:B8:05 +# Fingerprint (SHA1): 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD +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 "GeoTrust Primary Certification Authority - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\070\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\070\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\025\254\156\224\031\262\171\113\101\366\047\251\303\030 +\017\037 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\376\060\202\002\346\240\003\002\001\002\002\020\025 +\254\156\224\031\262\171\113\101\366\047\251\303\030\017\037\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\230\061\013\060\011\006\003\125\004\006\023\002\125\123\061\026 +\060\024\006\003\125\004\012\023\015\107\145\157\124\162\165\163 +\164\040\111\156\143\056\061\071\060\067\006\003\125\004\013\023 +\060\050\143\051\040\062\060\060\070\040\107\145\157\124\162\165 +\163\164\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\066\060\064\006\003\125\004\003\023\055\107\145\157\124 +\162\165\163\164\040\120\162\151\155\141\162\171\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\055\040\107\063\060\036\027\015\060\070\060 +\064\060\062\060\060\060\060\060\060\132\027\015\063\067\061\062 +\060\061\062\063\065\071\065\071\132\060\201\230\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\026\060\024\006\003\125 +\004\012\023\015\107\145\157\124\162\165\163\164\040\111\156\143 +\056\061\071\060\067\006\003\125\004\013\023\060\050\143\051\040 +\062\060\060\070\040\107\145\157\124\162\165\163\164\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\066\060\064 +\006\003\125\004\003\023\055\107\145\157\124\162\165\163\164\040 +\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151\143 +\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171\040 +\055\040\107\063\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\334\342\136\142\130\035\063\127\071\062\063 +\372\353\313\207\214\247\324\112\335\006\210\352\144\216\061\230 +\245\070\220\036\230\317\056\143\053\360\106\274\104\262\211\241 +\300\050\014\111\160\041\225\237\144\300\246\223\022\002\145\046 +\206\306\245\211\360\372\327\204\240\160\257\117\032\227\077\006 +\104\325\311\353\162\020\175\344\061\050\373\034\141\346\050\007 +\104\163\222\042\151\247\003\210\154\235\143\310\122\332\230\047 +\347\010\114\160\076\264\311\022\301\305\147\203\135\063\363\003 +\021\354\152\320\123\342\321\272\066\140\224\200\273\141\143\154 +\133\027\176\337\100\224\036\253\015\302\041\050\160\210\377\326 +\046\154\154\140\004\045\116\125\176\175\357\277\224\110\336\267 +\035\335\160\215\005\137\210\245\233\362\302\356\352\321\100\101 +\155\142\070\035\126\006\305\003\107\121\040\031\374\173\020\013 +\016\142\256\166\125\277\137\167\276\076\111\001\123\075\230\045 +\003\166\044\132\035\264\333\211\352\171\345\266\263\073\077\272 +\114\050\101\177\006\254\152\216\301\320\366\005\035\175\346\102 +\206\343\245\325\107\002\003\001\000\001\243\102\060\100\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\035\006\003\125\035\016\004\026\004\024\304\171\312\216\241\116 +\003\035\034\334\153\333\061\133\224\076\077\060\177\055\060\015 +\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001 +\001\000\055\305\023\317\126\200\173\172\170\275\237\256\054\231 +\347\357\332\337\224\136\011\151\247\347\156\150\214\275\162\276 +\107\251\016\227\022\270\112\361\144\323\071\337\045\064\324\301 +\315\116\201\360\017\004\304\044\263\064\226\306\246\252\060\337 +\150\141\163\327\371\216\205\211\357\016\136\225\050\112\052\047 +\217\020\216\056\174\206\304\002\236\332\014\167\145\016\104\015 +\222\375\375\263\026\066\372\021\015\035\214\016\007\211\152\051 +\126\367\162\364\335\025\234\167\065\146\127\253\023\123\330\216 +\301\100\305\327\023\026\132\162\307\267\151\001\304\172\261\203 +\001\150\175\215\101\241\224\030\301\045\134\374\360\376\203\002 +\207\174\015\015\317\056\010\134\112\100\015\076\354\201\141\346 +\044\333\312\340\016\055\007\262\076\126\334\215\365\101\205\007 +\110\233\014\013\313\111\077\175\354\267\375\313\215\147\211\032 +\253\355\273\036\243\000\010\010\027\052\202\134\061\135\106\212 +\055\017\206\233\164\331\105\373\324\100\261\172\252\150\055\206 +\262\231\042\341\301\053\307\234\370\363\137\250\202\022\353\031 +\021\055 +END + +# Trust for Certificate "GeoTrust Primary Certification Authority - G3" +# Issuer: CN=GeoTrust Primary Certification Authority - G3,OU=(c) 2008 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Serial Number:15:ac:6e:94:19:b2:79:4b:41:f6:27:a9:c3:18:0f:1f +# Subject: CN=GeoTrust Primary Certification Authority - G3,OU=(c) 2008 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Not Valid Before: Wed Apr 02 00:00:00 2008 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (MD5): B5:E8:34:36:C9:10:44:58:48:70:6D:2E:83:D4:B8:05 +# Fingerprint (SHA1): 03:9E:ED:B8:0B:E7:A0:3C:69:53:89:3B:20:D2:D9:32:3A:4C:2A:FD +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\003\236\355\270\013\347\240\074\151\123\211\073\040\322\331\062 +\072\114\052\375 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\265\350\064\066\311\020\104\130\110\160\155\056\203\324\270\005 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\070\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\025\254\156\224\031\262\171\113\101\366\047\251\303\030 +\017\037 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "thawte Primary Root CA - G2" +# +# Issuer: CN=thawte Primary Root CA - G2,OU="(c) 2007 thawte, Inc. - For authorized use only",O="thawte, Inc.",C=US +# Serial Number:35:fc:26:5c:d9:84:4f:c9:3d:26:3d:57:9b:ae:d7:56 +# Subject: CN=thawte Primary Root CA - G2,OU="(c) 2007 thawte, Inc. - For authorized use only",O="thawte, Inc.",C=US +# Not Valid Before: Mon Nov 05 00:00:00 2007 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 74:9D:EA:60:24:C4:FD:22:53:3E:CC:3A:72:D9:29:4F +# Fingerprint (SHA1): AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12 +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 "thawte Primary Root CA - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\204\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\070\060\066\006\003\125\004\013 +\023\057\050\143\051\040\062\060\060\067\040\164\150\141\167\164 +\145\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\044\060\042\006\003\125\004\003\023\033\164\150\141\167 +\164\145\040\120\162\151\155\141\162\171\040\122\157\157\164\040 +\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\204\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\070\060\066\006\003\125\004\013 +\023\057\050\143\051\040\062\060\060\067\040\164\150\141\167\164 +\145\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\044\060\042\006\003\125\004\003\023\033\164\150\141\167 +\164\145\040\120\162\151\155\141\162\171\040\122\157\157\164\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\065\374\046\134\331\204\117\311\075\046\075\127\233\256 +\327\126 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\210\060\202\002\015\240\003\002\001\002\002\020\065 +\374\046\134\331\204\117\311\075\046\075\127\233\256\327\126\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\204\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006 +\003\125\004\012\023\014\164\150\141\167\164\145\054\040\111\156 +\143\056\061\070\060\066\006\003\125\004\013\023\057\050\143\051 +\040\062\060\060\067\040\164\150\141\167\164\145\054\040\111\156 +\143\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151 +\172\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042 +\006\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162 +\151\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040 +\107\062\060\036\027\015\060\067\061\061\060\065\060\060\060\060 +\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071\065 +\071\132\060\201\204\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\025\060\023\006\003\125\004\012\023\014\164\150\141 +\167\164\145\054\040\111\156\143\056\061\070\060\066\006\003\125 +\004\013\023\057\050\143\051\040\062\060\060\067\040\164\150\141 +\167\164\145\054\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\044\060\042\006\003\125\004\003\023\033\164\150 +\141\167\164\145\040\120\162\151\155\141\162\171\040\122\157\157 +\164\040\103\101\040\055\040\107\062\060\166\060\020\006\007\052 +\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 +\004\242\325\234\202\173\225\235\361\122\170\207\376\212\026\277 +\005\346\337\243\002\117\015\007\306\000\121\272\014\002\122\055 +\042\244\102\071\304\376\217\352\311\301\276\324\115\377\237\172 +\236\342\261\174\232\255\247\206\011\163\207\321\347\232\343\172 +\245\252\156\373\272\263\160\300\147\210\242\065\324\243\232\261 +\375\255\302\357\061\372\250\271\363\373\010\306\221\321\373\051 +\225\243\102\060\100\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\232\330\000\060\000\347\153\177\205\030\356\213\266\316\212 +\014\370\021\341\273\060\012\006\010\052\206\110\316\075\004\003 +\003\003\151\000\060\146\002\061\000\335\370\340\127\107\133\247 +\346\012\303\275\365\200\212\227\065\015\033\211\074\124\206\167 +\050\312\241\364\171\336\265\346\070\260\360\145\160\214\177\002 +\124\302\277\377\330\241\076\331\317\002\061\000\304\215\224\374 +\334\123\322\334\235\170\026\037\025\063\043\123\122\343\132\061 +\135\235\312\256\275\023\051\104\015\047\133\250\347\150\234\022 +\367\130\077\056\162\002\127\243\217\241\024\056 +END + +# Trust for Certificate "thawte Primary Root CA - G2" +# Issuer: CN=thawte Primary Root CA - G2,OU="(c) 2007 thawte, Inc. - For authorized use only",O="thawte, Inc.",C=US +# Serial Number:35:fc:26:5c:d9:84:4f:c9:3d:26:3d:57:9b:ae:d7:56 +# Subject: CN=thawte Primary Root CA - G2,OU="(c) 2007 thawte, Inc. - For authorized use only",O="thawte, Inc.",C=US +# Not Valid Before: Mon Nov 05 00:00:00 2007 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 74:9D:EA:60:24:C4:FD:22:53:3E:CC:3A:72:D9:29:4F +# Fingerprint (SHA1): AA:DB:BC:22:23:8F:C4:01:A1:27:BB:38:DD:F4:1D:DB:08:9E:F0:12 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\252\333\274\042\043\217\304\001\241\047\273\070\335\364\035\333 +\010\236\360\022 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\164\235\352\140\044\304\375\042\123\076\314\072\162\331\051\117 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\204\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\070\060\066\006\003\125\004\013 +\023\057\050\143\051\040\062\060\060\067\040\164\150\141\167\164 +\145\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\044\060\042\006\003\125\004\003\023\033\164\150\141\167 +\164\145\040\120\162\151\155\141\162\171\040\122\157\157\164\040 +\103\101\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\065\374\046\134\331\204\117\311\075\046\075\127\233\256 +\327\126 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "thawte Primary Root CA - G3" +# +# Issuer: CN=thawte Primary Root CA - G3,OU="(c) 2008 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Serial Number:60:01:97:b7:46:a7:ea:b4:b4:9a:d6:4b:2f:f7:90:fb +# Subject: CN=thawte Primary Root CA - G3,OU="(c) 2008 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Not Valid Before: Wed Apr 02 00:00:00 2008 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (MD5): FB:1B:5D:43:8A:94:CD:44:C6:76:F2:43:4B:47:E7:31 +# Fingerprint (SHA1): F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2 +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 "thawte Primary Root CA - G3" +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\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006 +\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107 +\063 +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\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006 +\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\140\001\227\267\106\247\352\264\264\232\326\113\057\367 +\220\373 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\052\060\202\003\022\240\003\002\001\002\002\020\140 +\001\227\267\106\247\352\264\264\232\326\113\057\367\220\373\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\256\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025 +\060\023\006\003\125\004\012\023\014\164\150\141\167\164\145\054 +\040\111\156\143\056\061\050\060\046\006\003\125\004\013\023\037 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\040\104\151\166\151\163\151\157\156\061 +\070\060\066\006\003\125\004\013\023\057\050\143\051\040\062\060 +\060\070\040\164\150\141\167\164\145\054\040\111\156\143\056\040 +\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144 +\040\165\163\145\040\157\156\154\171\061\044\060\042\006\003\125 +\004\003\023\033\164\150\141\167\164\145\040\120\162\151\155\141 +\162\171\040\122\157\157\164\040\103\101\040\055\040\107\063\060 +\036\027\015\060\070\060\064\060\062\060\060\060\060\060\060\132 +\027\015\063\067\061\062\060\061\062\063\065\071\065\071\132\060 +\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164\145 +\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013\023 +\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123 +\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157\156 +\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040\062 +\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143\056 +\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145 +\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006\003 +\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151\155 +\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107\063 +\060\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001 +\000\262\277\047\054\373\333\330\133\335\170\173\033\236\167\146 +\201\313\076\274\174\256\363\246\047\232\064\243\150\061\161\070 +\063\142\344\363\161\146\171\261\251\145\243\245\213\325\217\140 +\055\077\102\314\252\153\062\300\043\313\054\101\335\344\337\374 +\141\234\342\163\262\042\225\021\103\030\137\304\266\037\127\154 +\012\005\130\042\310\066\114\072\174\245\321\317\206\257\210\247 +\104\002\023\164\161\163\012\102\131\002\370\033\024\153\102\337 +\157\137\272\153\202\242\235\133\347\112\275\036\001\162\333\113 +\164\350\073\177\177\175\037\004\264\046\233\340\264\132\254\107 +\075\125\270\327\260\046\122\050\001\061\100\146\330\331\044\275 +\366\052\330\354\041\111\134\233\366\172\351\177\125\065\176\226 +\153\215\223\223\047\313\222\273\352\254\100\300\237\302\370\200 +\317\135\364\132\334\316\164\206\246\076\154\013\123\312\275\222 +\316\031\006\162\346\014\134\070\151\307\004\326\274\154\316\133 +\366\367\150\234\334\045\025\110\210\241\351\251\370\230\234\340 +\363\325\061\050\141\021\154\147\226\215\071\231\313\302\105\044 +\071\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\255\154\252\224\140\234\355\344\377\372 +\076\012\164\053\143\003\367\266\131\277\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\003\202\001\001\000\032\100 +\330\225\145\254\011\222\211\306\071\364\020\345\251\016\146\123 +\135\170\336\372\044\221\273\347\104\121\337\306\026\064\012\357 +\152\104\121\352\053\007\212\003\172\303\353\077\012\054\122\026 +\240\053\103\271\045\220\077\160\251\063\045\155\105\032\050\073 +\047\317\252\303\051\102\033\337\073\114\300\063\064\133\101\210 +\277\153\053\145\257\050\357\262\365\303\252\146\316\173\126\356 +\267\310\313\147\301\311\234\032\030\270\304\303\111\003\361\140 +\016\120\315\106\305\363\167\171\367\266\025\340\070\333\307\057 +\050\240\014\077\167\046\164\331\045\022\332\061\332\032\036\334 +\051\101\221\042\074\151\247\273\002\362\266\134\047\003\211\364 +\006\352\233\344\162\202\343\241\011\301\351\000\031\323\076\324 +\160\153\272\161\246\252\130\256\364\273\351\154\266\357\207\314 +\233\273\377\071\346\126\141\323\012\247\304\134\114\140\173\005 +\167\046\172\277\330\007\122\054\142\367\160\143\331\071\274\157 +\034\302\171\334\166\051\257\316\305\054\144\004\136\210\066\156 +\061\324\100\032\142\064\066\077\065\001\256\254\143\240 +END + +# Trust for Certificate "thawte Primary Root CA - G3" +# Issuer: CN=thawte Primary Root CA - G3,OU="(c) 2008 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Serial Number:60:01:97:b7:46:a7:ea:b4:b4:9a:d6:4b:2f:f7:90:fb +# Subject: CN=thawte Primary Root CA - G3,OU="(c) 2008 thawte, Inc. - For authorized use only",OU=Certification Services Division,O="thawte, Inc.",C=US +# Not Valid Before: Wed Apr 02 00:00:00 2008 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (MD5): FB:1B:5D:43:8A:94:CD:44:C6:76:F2:43:4B:47:E7:31 +# Fingerprint (SHA1): F1:8B:53:8D:1B:E9:03:B6:A6:F0:56:43:5B:17:15:89:CA:F3:6B:F2 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "thawte Primary Root CA - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\361\213\123\215\033\351\003\266\246\360\126\103\133\027\025\211 +\312\363\153\362 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\373\033\135\103\212\224\315\104\306\166\362\103\113\107\347\061 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\164\150\141\167\164 +\145\054\040\111\156\143\056\061\050\060\046\006\003\125\004\013 +\023\037\103\145\162\164\151\146\151\143\141\164\151\157\156\040 +\123\145\162\166\151\143\145\163\040\104\151\166\151\163\151\157 +\156\061\070\060\066\006\003\125\004\013\023\057\050\143\051\040 +\062\060\060\070\040\164\150\141\167\164\145\054\040\111\156\143 +\056\040\055\040\106\157\162\040\141\165\164\150\157\162\151\172 +\145\144\040\165\163\145\040\157\156\154\171\061\044\060\042\006 +\003\125\004\003\023\033\164\150\141\167\164\145\040\120\162\151 +\155\141\162\171\040\122\157\157\164\040\103\101\040\055\040\107 +\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\140\001\227\267\106\247\352\264\264\232\326\113\057\367 +\220\373 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GeoTrust Primary Certification Authority - G2" +# +# Issuer: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Serial Number:3c:b2:f4:48:0a:00:e2:fe:eb:24:3b:5e:60:3e:c3:6b +# Subject: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Not Valid Before: Mon Nov 05 00:00:00 2007 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 01:5E:D8:6B:BD:6F:3D:8E:A1:31:F8:12:E0:98:73:6A +# Fingerprint (SHA1): 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0 +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 "GeoTrust Primary Certification Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\074\262\364\110\012\000\342\376\353\044\073\136\140\076 +\303\153 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\256\060\202\002\065\240\003\002\001\002\002\020\074 +\262\364\110\012\000\342\376\353\044\073\136\140\076\303\153\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\230\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\026\060\024\006 +\003\125\004\012\023\015\107\145\157\124\162\165\163\164\040\111 +\156\143\056\061\071\060\067\006\003\125\004\013\023\060\050\143 +\051\040\062\060\060\067\040\107\145\157\124\162\165\163\164\040 +\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157 +\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061\066 +\060\064\006\003\125\004\003\023\055\107\145\157\124\162\165\163 +\164\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062\060\036\027\015\060\067\061\061\060\065 +\060\060\060\060\060\060\132\027\015\063\070\060\061\061\070\062 +\063\065\071\065\071\132\060\201\230\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\026\060\024\006\003\125\004\012\023 +\015\107\145\157\124\162\165\163\164\040\111\156\143\056\061\071 +\060\067\006\003\125\004\013\023\060\050\143\051\040\062\060\060 +\067\040\107\145\157\124\162\165\163\164\040\111\156\143\056\040 +\055\040\106\157\162\040\141\165\164\150\157\162\151\172\145\144 +\040\165\163\145\040\157\156\154\171\061\066\060\064\006\003\125 +\004\003\023\055\107\145\157\124\162\165\163\164\040\120\162\151 +\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164\151 +\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040\107 +\062\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\025\261\350\375\003\025\103 +\345\254\353\207\067\021\142\357\322\203\066\122\175\105\127\013 +\112\215\173\124\073\072\156\137\025\002\300\120\246\317\045\057 +\175\312\110\270\307\120\143\034\052\041\010\174\232\066\330\013 +\376\321\046\305\130\061\060\050\045\363\135\135\243\270\266\245 +\264\222\355\154\054\237\353\335\103\211\242\074\113\110\221\035 +\120\354\046\337\326\140\056\275\041\243\102\060\100\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\025\137\065\127\121\125\373 +\045\262\255\003\151\374\001\243\372\276\021\125\325\060\012\006 +\010\052\206\110\316\075\004\003\003\003\147\000\060\144\002\060 +\144\226\131\246\350\011\336\213\272\372\132\210\210\360\037\221 +\323\106\250\362\112\114\002\143\373\154\137\070\333\056\101\223 +\251\016\346\235\334\061\034\262\240\247\030\034\171\341\307\066 +\002\060\072\126\257\232\164\154\366\373\203\340\063\323\010\137 +\241\234\302\133\237\106\326\266\313\221\006\143\242\006\347\063 +\254\076\250\201\022\320\313\272\320\222\013\266\236\226\252\004 +\017\212 +END + +# Trust for Certificate "GeoTrust Primary Certification Authority - G2" +# Issuer: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Serial Number:3c:b2:f4:48:0a:00:e2:fe:eb:24:3b:5e:60:3e:c3:6b +# Subject: CN=GeoTrust Primary Certification Authority - G2,OU=(c) 2007 GeoTrust Inc. - For authorized use only,O=GeoTrust Inc.,C=US +# Not Valid Before: Mon Nov 05 00:00:00 2007 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 01:5E:D8:6B:BD:6F:3D:8E:A1:31:F8:12:E0:98:73:6A +# Fingerprint (SHA1): 8D:17:84:D5:37:F3:03:7D:EC:70:FE:57:8B:51:9A:99:E6:10:D7:B0 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GeoTrust Primary Certification Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\215\027\204\325\067\363\003\175\354\160\376\127\213\121\232\231 +\346\020\327\260 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\001\136\330\153\275\157\075\216\241\061\370\022\340\230\163\152 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\107\145\157\124\162 +\165\163\164\040\111\156\143\056\061\071\060\067\006\003\125\004 +\013\023\060\050\143\051\040\062\060\060\067\040\107\145\157\124 +\162\165\163\164\040\111\156\143\056\040\055\040\106\157\162\040 +\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040\157 +\156\154\171\061\066\060\064\006\003\125\004\003\023\055\107\145 +\157\124\162\165\163\164\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\074\262\364\110\012\000\342\376\353\044\073\136\140\076 +\303\153 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign Universal Root Certification Authority" +# +# Issuer: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:40:1a:c4:64:21:b3:13:21:03:0e:bb:e4:12:1a:c5:1d +# Subject: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Wed Apr 02 00:00:00 2008 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (MD5): 8E:AD:B5:01:AA:4D:81:E4:8C:1D:D1:E1:14:00:95:19 +# Fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54 +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 "VeriSign Universal Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023 +\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162 +\163\141\154\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\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023 +\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162 +\163\141\154\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\020\100\032\304\144\041\263\023\041\003\016\273\344\022\032 +\305\035 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\271\060\202\003\241\240\003\002\001\002\002\020\100 +\032\304\144\041\263\023\041\003\016\273\344\022\032\305\035\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\275\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\070\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\070\060\066\006\003\125\004\003\023\057\126 +\145\162\151\123\151\147\156\040\125\156\151\166\145\162\163\141 +\154\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\070\060\064\060\062\060\060\060\060\060\060\132\027 +\015\063\067\061\062\060\061\062\063\065\071\065\071\132\060\201 +\275\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\070\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\070\060\066\006\003\125\004\003\023\057\126 +\145\162\151\123\151\147\156\040\125\156\151\166\145\162\163\141 +\154\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\307 +\141\067\136\261\001\064\333\142\327\025\233\377\130\132\214\043 +\043\326\140\216\221\327\220\230\203\172\346\130\031\070\214\305 +\366\345\144\205\264\242\161\373\355\275\271\332\315\115\000\264 +\310\055\163\245\307\151\161\225\037\071\074\262\104\007\234\350 +\016\372\115\112\304\041\337\051\141\217\062\042\141\202\305\207 +\037\156\214\174\137\026\040\121\104\321\160\117\127\352\343\034 +\343\314\171\356\130\330\016\302\263\105\223\300\054\347\232\027 +\053\173\000\067\172\101\063\170\341\063\342\363\020\032\177\207 +\054\276\366\365\367\102\342\345\277\207\142\211\137\000\113\337 +\305\335\344\165\104\062\101\072\036\161\156\151\313\013\165\106 +\010\321\312\322\053\225\320\317\373\271\100\153\144\214\127\115 +\374\023\021\171\204\355\136\124\366\064\237\010\001\363\020\045 +\006\027\112\332\361\035\172\146\153\230\140\146\244\331\357\322 +\056\202\361\360\357\011\352\104\311\025\152\342\003\156\063\323 +\254\237\125\000\307\366\010\152\224\271\137\334\340\063\361\204 +\140\371\133\047\021\264\374\026\362\273\126\152\200\045\215\002 +\003\001\000\001\243\201\262\060\201\257\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\155\006\010\053 +\006\001\005\005\007\001\014\004\141\060\137\241\135\240\133\060 +\131\060\127\060\125\026\011\151\155\141\147\145\057\147\151\146 +\060\041\060\037\060\007\006\005\053\016\003\002\032\004\024\217 +\345\323\032\206\254\215\216\153\303\317\200\152\324\110\030\054 +\173\031\056\060\045\026\043\150\164\164\160\072\057\057\154\157 +\147\157\056\166\145\162\151\163\151\147\156\056\143\157\155\057 +\166\163\154\157\147\157\056\147\151\146\060\035\006\003\125\035 +\016\004\026\004\024\266\167\372\151\110\107\237\123\022\325\302 +\352\007\062\166\007\321\227\007\031\060\015\006\011\052\206\110 +\206\367\015\001\001\013\005\000\003\202\001\001\000\112\370\370 +\260\003\346\054\147\173\344\224\167\143\314\156\114\371\175\016 +\015\334\310\271\065\271\160\117\143\372\044\372\154\203\214\107 +\235\073\143\363\232\371\166\062\225\221\261\167\274\254\232\276 +\261\344\061\041\306\201\225\126\132\016\261\302\324\261\246\131 +\254\361\143\313\270\114\035\131\220\112\357\220\026\050\037\132 +\256\020\373\201\120\070\014\154\314\361\075\303\365\143\343\263 +\343\041\311\044\071\351\375\025\146\106\364\033\021\320\115\163 +\243\175\106\371\075\355\250\137\142\324\361\077\370\340\164\127 +\053\030\235\201\264\304\050\332\224\227\245\160\353\254\035\276 +\007\021\360\325\333\335\345\214\360\325\062\260\203\346\127\342 +\217\277\276\241\252\277\075\035\265\324\070\352\327\260\134\072 +\117\152\077\217\300\146\154\143\252\351\331\244\026\364\201\321 +\225\024\016\175\315\225\064\331\322\217\160\163\201\173\234\176 +\275\230\141\330\105\207\230\220\305\353\206\060\306\065\277\360 +\377\303\125\210\203\113\357\005\222\006\161\362\270\230\223\267 +\354\315\202\141\361\070\346\117\227\230\052\132\215 +END + +# Trust for Certificate "VeriSign Universal Root Certification Authority" +# Issuer: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:40:1a:c4:64:21:b3:13:21:03:0e:bb:e4:12:1a:c5:1d +# Subject: CN=VeriSign Universal Root Certification Authority,OU="(c) 2008 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Wed Apr 02 00:00:00 2008 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (MD5): 8E:AD:B5:01:AA:4D:81:E4:8C:1D:D1:E1:14:00:95:19 +# Fingerprint (SHA1): 36:79:CA:35:66:87:72:30:4D:30:A5:FB:87:3B:0F:A7:7B:B7:0D:54 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Universal Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\066\171\312\065\146\207\162\060\115\060\245\373\207\073\017\247 +\173\267\015\124 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\216\255\265\001\252\115\201\344\214\035\321\341\024\000\225\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\275\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\070\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\070\060\066\006\003\125\004\003\023 +\057\126\145\162\151\123\151\147\156\040\125\156\151\166\145\162 +\163\141\154\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\020\100\032\304\144\041\263\023\041\003\016\273\344\022\032 +\305\035 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign Class 3 Public Primary Certification Authority - G4" +# +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4,OU="(c) 2007 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:2f:80:fe:23:8c:0e:22:0f:48:67:12:28:91:87:ac:b3 +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4,OU="(c) 2007 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Mon Nov 05 00:00:00 2007 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 3A:52:E1:E7:FD:6F:3A:E3:6F:F3:6F:99:1B:F9:22:41 +# Fingerprint (SHA1): 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A +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 "VeriSign Class 3 Public Primary Certification Authority - G4" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\067\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\064 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\067\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\057\200\376\043\214\016\042\017\110\147\022\050\221\207 +\254\263 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\204\060\202\003\012\240\003\002\001\002\002\020\057 +\200\376\043\214\016\042\017\110\147\022\050\221\207\254\263\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\312\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006 +\003\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126 +\145\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\072\060\070\006\003\125\004\013\023\061 +\050\143\051\040\062\060\060\067\040\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\040\055\040\106\157\162\040\141\165 +\164\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154 +\171\061\105\060\103\006\003\125\004\003\023\074\126\145\162\151 +\123\151\147\156\040\103\154\141\163\163\040\063\040\120\165\142 +\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\055\040\107\064\060\036\027\015\060\067\061\061 +\060\065\060\060\060\060\060\060\132\027\015\063\070\060\061\061 +\070\062\063\065\071\065\071\132\060\201\312\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\027\060\025\006\003\125\004 +\012\023\016\126\145\162\151\123\151\147\156\054\040\111\156\143 +\056\061\037\060\035\006\003\125\004\013\023\026\126\145\162\151 +\123\151\147\156\040\124\162\165\163\164\040\116\145\164\167\157 +\162\153\061\072\060\070\006\003\125\004\013\023\061\050\143\051 +\040\062\060\060\067\040\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\040\055\040\106\157\162\040\141\165\164\150\157 +\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061\105 +\060\103\006\003\125\004\003\023\074\126\145\162\151\123\151\147 +\156\040\103\154\141\163\163\040\063\040\120\165\142\154\151\143 +\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\064\060\166\060\020\006\007\052\206\110\316\075 +\002\001\006\005\053\201\004\000\042\003\142\000\004\247\126\172 +\174\122\332\144\233\016\055\134\330\136\254\222\075\376\001\346 +\031\112\075\024\003\113\372\140\047\040\331\203\211\151\372\124 +\306\232\030\136\125\052\144\336\006\366\215\112\073\255\020\074 +\145\075\220\210\004\211\340\060\141\263\256\135\001\247\173\336 +\174\262\276\312\145\141\000\206\256\332\217\173\320\211\255\115 +\035\131\232\101\261\274\107\200\334\236\142\303\371\243\201\262 +\060\201\257\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\155\006\010\053\006\001\005\005\007\001\014 +\004\141\060\137\241\135\240\133\060\131\060\127\060\125\026\011 +\151\155\141\147\145\057\147\151\146\060\041\060\037\060\007\006 +\005\053\016\003\002\032\004\024\217\345\323\032\206\254\215\216 +\153\303\317\200\152\324\110\030\054\173\031\056\060\045\026\043 +\150\164\164\160\072\057\057\154\157\147\157\056\166\145\162\151 +\163\151\147\156\056\143\157\155\057\166\163\154\157\147\157\056 +\147\151\146\060\035\006\003\125\035\016\004\026\004\024\263\026 +\221\375\356\246\156\344\265\056\111\217\207\170\201\200\354\345 +\261\265\060\012\006\010\052\206\110\316\075\004\003\003\003\150 +\000\060\145\002\060\146\041\014\030\046\140\132\070\173\126\102 +\340\247\374\066\204\121\221\040\054\166\115\103\075\304\035\204 +\043\320\254\326\174\065\006\316\315\151\275\220\015\333\154\110 +\102\035\016\252\102\002\061\000\234\075\110\071\043\071\130\032 +\025\022\131\152\236\357\325\131\262\035\122\054\231\161\315\307 +\051\337\033\052\141\173\161\321\336\363\300\345\015\072\112\252 +\055\247\330\206\052\335\056\020 +END + +# Trust for Certificate "VeriSign Class 3 Public Primary Certification Authority - G4" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4,OU="(c) 2007 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:2f:80:fe:23:8c:0e:22:0f:48:67:12:28:91:87:ac:b3 +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4,OU="(c) 2007 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Mon Nov 05 00:00:00 2007 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (MD5): 3A:52:E1:E7:FD:6F:3A:E3:6F:F3:6F:99:1B:F9:22:41 +# Fingerprint (SHA1): 22:D5:D8:DF:8F:02:31:D1:8D:F7:9D:B7:CF:8A:2D:64:C9:3F:6C:3A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign Class 3 Public Primary Certification Authority - G4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\042\325\330\337\217\002\061\321\215\367\235\267\317\212\055\144 +\311\077\154\072 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\072\122\341\347\375\157\072\343\157\363\157\231\033\371\042\101 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\067\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\057\200\376\043\214\016\042\017\110\147\022\050\221\207 +\254\263 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "NetLock Arany (Class Gold) FÅ‘tanúsÃtvány" +# +# Issuer: CN=NetLock Arany (Class Gold) F..tan..s..tv..ny,OU=Tan..s..tv..nykiad..k (Certification Services),O=NetLock Kft.,L=Budapest,C=HU +# Serial Number:49:41:2c:e4:00:10 +# Subject: CN=NetLock Arany (Class Gold) F..tan..s..tv..ny,OU=Tan..s..tv..nykiad..k (Certification Services),O=NetLock Kft.,L=Budapest,C=HU +# Not Valid Before: Thu Dec 11 15:08:21 2008 +# Not Valid After : Wed Dec 06 15:08:21 2028 +# Fingerprint (MD5): C5:A1:B7:FF:73:DD:D6:D7:34:32:18:DF:FC:3C:AD:88 +# Fingerprint (SHA1): 06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91 +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 "NetLock Arany (Class Gold) FÅ‘tanúsÃtvány" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\247\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\025\060\023\006\003\125\004\012\014\014\116\145 +\164\114\157\143\153\040\113\146\164\056\061\067\060\065\006\003 +\125\004\013\014\056\124\141\156\303\272\163\303\255\164\166\303 +\241\156\171\153\151\141\144\303\263\153\040\050\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\051\061\065\060\063\006\003\125\004\003\014\054\116\145 +\164\114\157\143\153\040\101\162\141\156\171\040\050\103\154\141 +\163\163\040\107\157\154\144\051\040\106\305\221\164\141\156\303 +\272\163\303\255\164\166\303\241\156\171 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\247\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\025\060\023\006\003\125\004\012\014\014\116\145 +\164\114\157\143\153\040\113\146\164\056\061\067\060\065\006\003 +\125\004\013\014\056\124\141\156\303\272\163\303\255\164\166\303 +\241\156\171\153\151\141\144\303\263\153\040\050\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\051\061\065\060\063\006\003\125\004\003\014\054\116\145 +\164\114\157\143\153\040\101\162\141\156\171\040\050\103\154\141 +\163\163\040\107\157\154\144\051\040\106\305\221\164\141\156\303 +\272\163\303\255\164\166\303\241\156\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\111\101\054\344\000\020 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\025\060\202\002\375\240\003\002\001\002\002\006\111 +\101\054\344\000\020\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\060\201\247\061\013\060\011\006\003\125\004\006 +\023\002\110\125\061\021\060\017\006\003\125\004\007\014\010\102 +\165\144\141\160\145\163\164\061\025\060\023\006\003\125\004\012 +\014\014\116\145\164\114\157\143\153\040\113\146\164\056\061\067 +\060\065\006\003\125\004\013\014\056\124\141\156\303\272\163\303 +\255\164\166\303\241\156\171\153\151\141\144\303\263\153\040\050 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\051\061\065\060\063\006\003\125\004\003 +\014\054\116\145\164\114\157\143\153\040\101\162\141\156\171\040 +\050\103\154\141\163\163\040\107\157\154\144\051\040\106\305\221 +\164\141\156\303\272\163\303\255\164\166\303\241\156\171\060\036 +\027\015\060\070\061\062\061\061\061\065\060\070\062\061\132\027 +\015\062\070\061\062\060\066\061\065\060\070\062\061\132\060\201 +\247\061\013\060\011\006\003\125\004\006\023\002\110\125\061\021 +\060\017\006\003\125\004\007\014\010\102\165\144\141\160\145\163 +\164\061\025\060\023\006\003\125\004\012\014\014\116\145\164\114 +\157\143\153\040\113\146\164\056\061\067\060\065\006\003\125\004 +\013\014\056\124\141\156\303\272\163\303\255\164\166\303\241\156 +\171\153\151\141\144\303\263\153\040\050\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\123\145\162\166\151\143\145\163 +\051\061\065\060\063\006\003\125\004\003\014\054\116\145\164\114 +\157\143\153\040\101\162\141\156\171\040\050\103\154\141\163\163 +\040\107\157\154\144\051\040\106\305\221\164\141\156\303\272\163 +\303\255\164\166\303\241\156\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\304\044\136\163\276\113\155 +\024\303\241\364\343\227\220\156\322\060\105\036\074\356\147\331 +\144\340\032\212\177\312\060\312\203\343\040\301\343\364\072\323 +\224\137\032\174\133\155\277\060\117\204\047\366\237\037\111\274 +\306\231\012\220\362\017\365\177\103\204\067\143\121\213\172\245 +\160\374\172\130\315\216\233\355\303\106\154\204\160\135\332\363 +\001\220\043\374\116\060\251\176\341\047\143\347\355\144\074\240 +\270\311\063\143\376\026\220\377\260\270\375\327\250\300\300\224 +\103\013\266\325\131\246\236\126\320\044\037\160\171\257\333\071 +\124\015\145\165\331\025\101\224\001\257\136\354\366\215\361\377 +\255\144\376\040\232\327\134\353\376\246\037\010\144\243\213\166 +\125\255\036\073\050\140\056\207\045\350\252\257\037\306\144\106 +\040\267\160\177\074\336\110\333\226\123\267\071\167\344\032\342 +\307\026\204\166\227\133\057\273\031\025\205\370\151\205\365\231 +\247\251\362\064\247\251\266\246\003\374\157\206\075\124\174\166 +\004\233\153\371\100\135\000\064\307\056\231\165\235\345\210\003 +\252\115\370\003\322\102\166\300\033\002\003\000\250\213\243\105 +\060\103\060\022\006\003\125\035\023\001\001\377\004\010\060\006 +\001\001\377\002\001\004\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\314\372\147\223\360\266\270\320\245\300\036\363\123\375\214 +\123\337\203\327\226\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\001\001\000\253\177\356\034\026\251\234 +\074\121\000\240\300\021\010\005\247\231\346\157\001\210\124\141 +\156\361\271\030\255\112\255\376\201\100\043\224\057\373\165\174 +\057\050\113\142\044\201\202\013\365\141\361\034\156\270\141\070 +\353\201\372\142\241\073\132\142\323\224\145\304\341\346\155\202 +\370\057\045\160\262\041\046\301\162\121\037\214\054\303\204\220 +\303\132\217\272\317\364\247\145\245\353\230\321\373\005\262\106 +\165\025\043\152\157\205\143\060\200\360\325\236\037\051\034\302 +\154\260\120\131\135\220\133\073\250\015\060\317\277\175\177\316 +\361\235\203\275\311\106\156\040\246\371\141\121\272\041\057\173 +\276\245\025\143\241\324\225\207\361\236\271\363\211\363\075\205 +\270\270\333\276\265\271\051\371\332\067\005\000\111\224\003\204 +\104\347\277\103\061\317\165\213\045\321\364\246\144\365\222\366 +\253\005\353\075\351\245\013\066\142\332\314\006\137\066\213\266 +\136\061\270\052\373\136\366\161\337\104\046\236\304\346\015\221 +\264\056\165\225\200\121\152\113\060\246\260\142\241\223\361\233 +\330\316\304\143\165\077\131\107\261 +END + +# Trust for Certificate "NetLock Arany (Class Gold) FÅ‘tanúsÃtvány" +# Issuer: CN=NetLock Arany (Class Gold) F..tan..s..tv..ny,OU=Tan..s..tv..nykiad..k (Certification Services),O=NetLock Kft.,L=Budapest,C=HU +# Serial Number:49:41:2c:e4:00:10 +# Subject: CN=NetLock Arany (Class Gold) F..tan..s..tv..ny,OU=Tan..s..tv..nykiad..k (Certification Services),O=NetLock Kft.,L=Budapest,C=HU +# Not Valid Before: Thu Dec 11 15:08:21 2008 +# Not Valid After : Wed Dec 06 15:08:21 2028 +# Fingerprint (MD5): C5:A1:B7:FF:73:DD:D6:D7:34:32:18:DF:FC:3C:AD:88 +# Fingerprint (SHA1): 06:08:3F:59:3F:15:A1:04:A0:69:A4:6B:A9:03:D0:06:B7:97:09:91 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "NetLock Arany (Class Gold) FÅ‘tanúsÃtvány" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\006\010\077\131\077\025\241\004\240\151\244\153\251\003\320\006 +\267\227\011\221 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\241\267\377\163\335\326\327\064\062\030\337\374\074\255\210 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\247\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\025\060\023\006\003\125\004\012\014\014\116\145 +\164\114\157\143\153\040\113\146\164\056\061\067\060\065\006\003 +\125\004\013\014\056\124\141\156\303\272\163\303\255\164\166\303 +\241\156\171\153\151\141\144\303\263\153\040\050\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\051\061\065\060\063\006\003\125\004\003\014\054\116\145 +\164\114\157\143\153\040\101\162\141\156\171\040\050\103\154\141 +\163\163\040\107\157\154\144\051\040\106\305\221\164\141\156\303 +\272\163\303\255\164\166\303\241\156\171 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\111\101\054\344\000\020 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Staat der Nederlanden Root CA - G2" +# +# Issuer: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL +# Serial Number: 10000012 (0x98968c) +# Subject: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL +# Not Valid Before: Wed Mar 26 11:18:17 2008 +# Not Valid After : Wed Mar 25 11:03:10 2020 +# Fingerprint (MD5): 7C:A5:0F:F8:5B:9A:7D:6D:30:AE:54:5A:E3:42:A2:8A +# Fingerprint (SHA1): 59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16 +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 - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\214 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\312\060\202\003\262\240\003\002\001\002\002\004\000 +\230\226\214\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\036\060\034\006\003\125\004\012\014\025\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\061\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\062\060\036 +\027\015\060\070\060\063\062\066\061\061\061\070\061\067\132\027 +\015\062\060\060\063\062\065\061\061\060\063\061\060\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\036\060 +\034\006\003\125\004\012\014\025\123\164\141\141\164\040\144\145 +\162\040\116\145\144\145\162\154\141\156\144\145\156\061\053\060 +\051\006\003\125\004\003\014\042\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\040\055\040\107\062\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\305\131\347\157\165 +\252\076\113\234\265\270\254\236\013\344\371\331\312\253\135\217 +\265\071\020\202\327\257\121\340\073\341\000\110\152\317\332\341 +\006\103\021\231\252\024\045\022\255\042\350\000\155\103\304\251 +\270\345\037\211\113\147\275\141\110\357\375\322\340\140\210\345 +\271\030\140\050\303\167\053\255\260\067\252\067\336\144\131\052 +\106\127\344\113\271\370\067\174\325\066\347\200\301\266\363\324 +\147\233\226\350\316\327\306\012\123\320\153\111\226\363\243\013 +\005\167\110\367\045\345\160\254\060\024\040\045\343\177\165\132 +\345\110\370\116\173\003\007\004\372\202\141\207\156\360\073\304 +\244\307\320\365\164\076\245\135\032\010\362\233\045\322\366\254 +\004\046\076\125\072\142\050\245\173\262\060\257\370\067\302\321 +\272\326\070\375\364\357\111\060\067\231\046\041\110\205\001\251 +\345\026\347\334\220\125\337\017\350\070\315\231\067\041\117\135 +\365\042\157\152\305\022\026\140\027\125\362\145\146\246\247\060 +\221\070\301\070\035\206\004\204\272\032\045\170\136\235\257\314 +\120\140\326\023\207\122\355\143\037\155\145\175\302\025\030\164 +\312\341\176\144\051\214\162\330\026\023\175\013\111\112\361\050 +\033\040\164\153\305\075\335\260\252\110\011\075\056\202\224\315 +\032\145\331\053\210\232\231\274\030\176\237\356\175\146\174\076 +\275\224\270\201\316\315\230\060\170\301\157\147\320\276\137\340 +\150\355\336\342\261\311\054\131\170\222\252\337\053\140\143\362 +\345\136\271\343\312\372\177\120\206\076\242\064\030\014\011\150 +\050\021\034\344\341\271\134\076\107\272\062\077\030\314\133\204 +\365\363\153\164\304\162\164\341\343\213\240\112\275\215\146\057 +\352\255\065\332\040\323\210\202\141\360\022\042\266\274\320\325 +\244\354\257\124\210\045\044\074\247\155\261\162\051\077\076\127 +\246\177\125\257\156\046\306\376\347\314\100\134\121\104\201\012 +\170\336\112\316\125\277\035\325\331\267\126\357\360\166\377\013 +\171\265\257\275\373\251\151\221\106\227\150\200\024\066\035\263 +\177\273\051\230\066\245\040\372\202\140\142\063\244\354\326\272 +\007\247\156\305\317\024\246\347\326\222\064\330\201\365\374\035 +\135\252\134\036\366\243\115\073\270\367\071\002\003\001\000\001 +\243\201\227\060\201\224\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\122\006\003\125\035\040\004\113 +\060\111\060\107\006\004\125\035\040\000\060\077\060\075\006\010 +\053\006\001\005\005\007\002\001\026\061\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\055\107\062\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\221\150\062\207\025\035\211\342\265\361 +\254\066\050\064\215\013\174\142\210\353\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\003\202\002\001\000\250\101 +\112\147\052\222\201\202\120\156\341\327\330\263\071\073\363\002 +\025\011\120\121\357\055\275\044\173\210\206\073\371\264\274\222 +\011\226\271\366\300\253\043\140\006\171\214\021\116\121\322\171 +\200\063\373\235\110\276\354\101\103\201\037\176\107\100\034\345 +\172\010\312\252\213\165\255\024\304\302\350\146\074\202\007\247 +\346\047\202\133\030\346\017\156\331\120\076\212\102\030\051\306 +\264\126\374\126\020\240\005\027\275\014\043\177\364\223\355\234 +\032\121\276\335\105\101\277\221\044\264\037\214\351\137\317\173 +\041\231\237\225\237\071\072\106\034\154\371\315\173\234\220\315 +\050\251\307\251\125\273\254\142\064\142\065\023\113\024\072\125 +\203\271\206\215\222\246\306\364\007\045\124\314\026\127\022\112 +\202\170\310\024\331\027\202\046\055\135\040\037\171\256\376\324 +\160\026\026\225\203\330\065\071\377\122\135\165\034\026\305\023 +\125\317\107\314\165\145\122\112\336\360\260\247\344\012\226\013 +\373\255\302\342\045\204\262\335\344\275\176\131\154\233\360\360 +\330\347\312\362\351\227\070\176\211\276\314\373\071\027\141\077 +\162\333\072\221\330\145\001\031\035\255\120\244\127\012\174\113 +\274\234\161\163\052\105\121\031\205\314\216\375\107\247\164\225 +\035\250\321\257\116\027\261\151\046\302\252\170\127\133\305\115 +\247\345\236\005\027\224\312\262\137\240\111\030\215\064\351\046 +\154\110\036\252\150\222\005\341\202\163\132\233\334\007\133\010 +\155\175\235\327\215\041\331\374\024\040\252\302\105\337\077\347 +\000\262\121\344\302\370\005\271\171\032\214\064\363\236\133\344 +\067\133\153\112\337\054\127\212\100\132\066\272\335\165\104\010 +\067\102\160\014\376\334\136\041\240\243\212\300\220\234\150\332 +\120\346\105\020\107\170\266\116\322\145\311\303\067\337\341\102 +\143\260\127\067\105\055\173\212\234\277\005\352\145\125\063\367 +\071\020\305\050\052\041\172\033\212\304\044\371\077\025\310\232 +\025\040\365\125\142\226\355\155\223\120\274\344\252\170\255\331 +\313\012\145\207\246\146\301\304\201\243\167\072\130\036\013\356 +\203\213\235\036\322\122\244\314\035\157\260\230\155\224\061\265 +\370\161\012\334\271\374\175\062\140\346\353\257\212\001 +END + +# Trust for Certificate "Staat der Nederlanden Root CA - G2" +# Issuer: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL +# Serial Number: 10000012 (0x98968c) +# Subject: CN=Staat der Nederlanden Root CA - G2,O=Staat der Nederlanden,C=NL +# Not Valid Before: Wed Mar 26 11:18:17 2008 +# Not Valid After : Wed Mar 25 11:03:10 2020 +# Fingerprint (MD5): 7C:A5:0F:F8:5B:9A:7D:6D:30:AE:54:5A:E3:42:A2:8A +# Fingerprint (SHA1): 59:AF:82:79:91:86:C7:B4:75:07:CB:CF:03:57:46:EB:04:DD:B7:16 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\131\257\202\171\221\206\307\264\165\007\313\317\003\127\106\353 +\004\335\267\026 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\174\245\017\370\133\232\175\155\060\256\124\132\343\102\242\212 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\214 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Hongkong Post Root CA 1" +# +# Issuer: CN=Hongkong Post Root CA 1,O=Hongkong Post,C=HK +# Serial Number: 1000 (0x3e8) +# Subject: CN=Hongkong Post Root CA 1,O=Hongkong Post,C=HK +# Not Valid Before: Thu May 15 05:13:14 2003 +# Not Valid After : Mon May 15 04:52:29 2023 +# Fingerprint (MD5): A8:0D:6F:39:78:B9:43:6D:77:42:6D:98:5A:CC:23:CA +# Fingerprint (SHA1): D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58 +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 "Hongkong Post Root CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\350 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\060\060\202\002\030\240\003\002\001\002\002\002\003 +\350\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061\060\036\027\015\060\063\060 +\065\061\065\060\065\061\063\061\064\132\027\015\062\063\060\065 +\061\065\060\064\065\062\062\071\132\060\107\061\013\060\011\006 +\003\125\004\006\023\002\110\113\061\026\060\024\006\003\125\004 +\012\023\015\110\157\156\147\153\157\156\147\040\120\157\163\164 +\061\040\060\036\006\003\125\004\003\023\027\110\157\156\147\153 +\157\156\147\040\120\157\163\164\040\122\157\157\164\040\103\101 +\040\061\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\254\377\070\266\351\146\002\111\343\242\264\341\220 +\371\100\217\171\371\342\275\171\376\002\275\356\044\222\035\042 +\366\332\205\162\151\376\327\077\011\324\335\221\265\002\234\320 +\215\132\341\125\303\120\206\271\051\046\302\343\331\240\361\151 +\003\050\040\200\105\042\055\126\247\073\124\225\126\042\131\037 +\050\337\037\040\075\155\242\066\276\043\240\261\156\265\261\047 +\077\071\123\011\352\253\152\350\164\262\302\145\134\216\277\174 +\303\170\204\315\236\026\374\365\056\117\040\052\010\237\167\363 +\305\036\304\232\122\146\036\110\136\343\020\006\217\042\230\341 +\145\216\033\135\043\146\073\270\245\062\121\310\206\252\241\251 +\236\177\166\224\302\246\154\267\101\360\325\310\006\070\346\324 +\014\342\363\073\114\155\120\214\304\203\047\301\023\204\131\075 +\236\165\164\266\330\002\136\072\220\172\300\102\066\162\354\152 +\115\334\357\304\000\337\023\030\127\137\046\170\310\326\012\171 +\167\277\367\257\267\166\271\245\013\204\027\135\020\352\157\341 +\253\225\021\137\155\074\243\134\115\203\133\362\263\031\212\200 +\213\013\207\002\003\001\000\001\243\046\060\044\060\022\006\003 +\125\035\023\001\001\377\004\010\060\006\001\001\377\002\001\003 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\306 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\016\106\325\074\256\342\207\331\136\201\213\002 +\230\101\010\214\114\274\332\333\356\047\033\202\347\152\105\354 +\026\213\117\205\240\363\262\160\275\132\226\272\312\156\155\356 +\106\213\156\347\052\056\226\263\031\063\353\264\237\250\262\067 +\356\230\250\227\266\056\266\147\047\324\246\111\375\034\223\145 +\166\236\102\057\334\042\154\232\117\362\132\025\071\261\161\327 +\053\121\350\155\034\230\300\331\052\364\241\202\173\325\311\101 +\242\043\001\164\070\125\213\017\271\056\147\242\040\004\067\332 +\234\013\323\027\041\340\217\227\171\064\157\204\110\002\040\063 +\033\346\064\104\237\221\160\364\200\136\204\103\302\051\322\154 +\022\024\344\141\215\254\020\220\236\204\120\273\360\226\157\105 +\237\212\363\312\154\117\372\021\072\025\025\106\303\315\037\203 +\133\055\101\022\355\120\147\101\023\075\041\253\224\212\252\116 +\174\301\261\373\247\326\265\047\057\227\253\156\340\035\342\321 +\034\054\037\104\342\374\276\221\241\234\373\326\051\123\163\206 +\237\123\330\103\016\135\326\143\202\161\035\200\164\312\366\342 +\002\153\331\132 +END + +# Trust for Certificate "Hongkong Post Root CA 1" +# Issuer: CN=Hongkong Post Root CA 1,O=Hongkong Post,C=HK +# Serial Number: 1000 (0x3e8) +# Subject: CN=Hongkong Post Root CA 1,O=Hongkong Post,C=HK +# Not Valid Before: Thu May 15 05:13:14 2003 +# Not Valid After : Mon May 15 04:52:29 2023 +# Fingerprint (MD5): A8:0D:6F:39:78:B9:43:6D:77:42:6D:98:5A:CC:23:CA +# Fingerprint (SHA1): D6:DA:A8:20:8D:09:D2:15:4D:24:B5:2F:CB:34:6E:B2:58:B2:8A:58 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hongkong Post Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\326\332\250\040\215\011\322\025\115\044\265\057\313\064\156\262 +\130\262\212\130 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\250\015\157\071\170\271\103\155\167\102\155\230\132\314\043\312 +END +CKA_ISSUER MULTILINE_OCTAL +\060\107\061\013\060\011\006\003\125\004\006\023\002\110\113\061 +\026\060\024\006\003\125\004\012\023\015\110\157\156\147\153\157 +\156\147\040\120\157\163\164\061\040\060\036\006\003\125\004\003 +\023\027\110\157\156\147\153\157\156\147\040\120\157\163\164\040 +\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\003\350 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SecureSign RootCA11" +# +# Issuer: CN=SecureSign RootCA11,O="Japan Certification Services, Inc.",C=JP +# Serial Number: 1 (0x1) +# Subject: CN=SecureSign RootCA11,O="Japan Certification Services, Inc.",C=JP +# Not Valid Before: Wed Apr 08 04:56:47 2009 +# Not Valid After : Sun Apr 08 04:56:47 2029 +# Fingerprint (MD5): B7:52:74:E2:92:B4:80:93:F2:75:E4:CC:D7:F2:EA:26 +# Fingerprint (SHA1): 3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3 +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 "SecureSign RootCA11" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\053\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032 +\006\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147 +\156\040\122\157\157\164\103\101\061\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\053\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032 +\006\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147 +\156\040\122\157\157\164\103\101\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\155\060\202\002\125\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061\053 +\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162 +\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032\006 +\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147\156 +\040\122\157\157\164\103\101\061\061\060\036\027\015\060\071\060 +\064\060\070\060\064\065\066\064\067\132\027\015\062\071\060\064 +\060\070\060\064\065\066\064\067\132\060\130\061\013\060\011\006 +\003\125\004\006\023\002\112\120\061\053\060\051\006\003\125\004 +\012\023\042\112\141\160\141\156\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\123\145\162\166\151\143\145\163\054 +\040\111\156\143\056\061\034\060\032\006\003\125\004\003\023\023 +\123\145\143\165\162\145\123\151\147\156\040\122\157\157\164\103 +\101\061\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\375\167\252\245\034\220\005\073\313\114\233\063 +\213\132\024\105\244\347\220\026\321\337\127\322\041\020\244\027 +\375\337\254\326\037\247\344\333\174\367\354\337\270\003\332\224 +\130\375\135\162\174\214\077\137\001\147\164\025\226\343\002\074 +\207\333\256\313\001\216\302\363\146\306\205\105\364\002\306\072 +\265\142\262\257\372\234\277\244\346\324\200\060\230\363\015\266 +\223\217\251\324\330\066\362\260\374\212\312\054\241\025\063\225 +\061\332\300\033\362\356\142\231\206\143\077\277\335\223\052\203 +\250\166\271\023\037\267\316\116\102\205\217\042\347\056\032\362 +\225\011\262\005\265\104\116\167\241\040\275\251\362\116\012\175 +\120\255\365\005\015\105\117\106\161\375\050\076\123\373\004\330 +\055\327\145\035\112\033\372\317\073\260\061\232\065\156\310\213 +\006\323\000\221\362\224\010\145\114\261\064\006\000\172\211\342 +\360\307\003\131\317\325\326\350\247\062\263\346\230\100\206\305 +\315\047\022\213\314\173\316\267\021\074\142\140\007\043\076\053 +\100\156\224\200\011\155\266\263\157\167\157\065\010\120\373\002 +\207\305\076\211\002\003\001\000\001\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\133\370\115\117\262\245\206\324 +\072\322\361\143\232\240\276\011\366\127\267\336\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\240\241\070\026\146\056\247\126\037\041\234\006\372\035\355 +\271\042\305\070\046\330\116\117\354\243\177\171\336\106\041\241 +\207\167\217\007\010\232\262\244\305\257\017\062\230\013\174\146 +\051\266\233\175\045\122\111\103\253\114\056\053\156\172\160\257 +\026\016\343\002\154\373\102\346\030\235\105\330\125\310\350\073 +\335\347\341\364\056\013\034\064\134\154\130\112\373\214\210\120 +\137\225\034\277\355\253\042\265\145\263\205\272\236\017\270\255 +\345\172\033\212\120\072\035\275\015\274\173\124\120\013\271\102 +\257\125\240\030\201\255\145\231\357\276\344\234\277\304\205\253 +\101\262\124\157\334\045\315\355\170\342\216\014\215\011\111\335 +\143\173\132\151\226\002\041\250\275\122\131\351\175\065\313\310 +\122\312\177\201\376\331\153\323\367\021\355\045\337\370\347\371 +\244\372\162\227\204\123\015\245\320\062\030\121\166\131\024\154 +\017\353\354\137\200\214\165\103\203\303\205\230\377\114\236\055 +\015\344\167\203\223\116\265\226\007\213\050\023\233\214\031\215 +\101\047\111\100\356\336\346\043\104\071\334\241\042\326\272\003 +\362 +END + +# Trust for Certificate "SecureSign RootCA11" +# Issuer: CN=SecureSign RootCA11,O="Japan Certification Services, Inc.",C=JP +# Serial Number: 1 (0x1) +# Subject: CN=SecureSign RootCA11,O="Japan Certification Services, Inc.",C=JP +# Not Valid Before: Wed Apr 08 04:56:47 2009 +# Not Valid After : Sun Apr 08 04:56:47 2029 +# Fingerprint (MD5): B7:52:74:E2:92:B4:80:93:F2:75:E4:CC:D7:F2:EA:26 +# Fingerprint (SHA1): 3B:C4:9F:48:F8:F3:73:A0:9C:1E:BD:F8:5B:B1:C3:65:C7:D8:11:B3 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SecureSign RootCA11" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\073\304\237\110\370\363\163\240\234\036\275\370\133\261\303\145 +\307\330\021\263 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\267\122\164\342\222\264\200\223\362\165\344\314\327\362\352\046 +END +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\053\060\051\006\003\125\004\012\023\042\112\141\160\141\156\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\123\145 +\162\166\151\143\145\163\054\040\111\156\143\056\061\034\060\032 +\006\003\125\004\003\023\023\123\145\143\165\162\145\123\151\147 +\156\040\122\157\157\164\103\101\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ACEDICOM Root" +# +# Issuer: C=ES,O=EDICOM,OU=PKI,CN=ACEDICOM Root +# Serial Number:61:8d:c7:86:3b:01:82:05 +# Subject: C=ES,O=EDICOM,OU=PKI,CN=ACEDICOM Root +# Not Valid Before: Fri Apr 18 16:24:22 2008 +# Not Valid After : Thu Apr 13 16:24:22 2028 +# Fingerprint (MD5): 42:81:A0:E2:1C:E3:55:10:DE:55:89:42:65:96:22:E6 +# Fingerprint (SHA1): E0:B4:32:2E:B2:F6:A5:68:B6:54:53:84:48:18:4A:50:36:87:43:84 +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 "ACEDICOM Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\026\060\024\006\003\125\004\003\014\015\101\103\105 +\104\111\103\117\115\040\122\157\157\164\061\014\060\012\006\003 +\125\004\013\014\003\120\113\111\061\017\060\015\006\003\125\004 +\012\014\006\105\104\111\103\117\115\061\013\060\011\006\003\125 +\004\006\023\002\105\123 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\026\060\024\006\003\125\004\003\014\015\101\103\105 +\104\111\103\117\115\040\122\157\157\164\061\014\060\012\006\003 +\125\004\013\014\003\120\113\111\061\017\060\015\006\003\125\004 +\012\014\006\105\104\111\103\117\115\061\013\060\011\006\003\125 +\004\006\023\002\105\123 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\141\215\307\206\073\001\202\005 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\265\060\202\003\235\240\003\002\001\002\002\010\141 +\215\307\206\073\001\202\005\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\104\061\026\060\024\006\003\125\004 +\003\014\015\101\103\105\104\111\103\117\115\040\122\157\157\164 +\061\014\060\012\006\003\125\004\013\014\003\120\113\111\061\017 +\060\015\006\003\125\004\012\014\006\105\104\111\103\117\115\061 +\013\060\011\006\003\125\004\006\023\002\105\123\060\036\027\015 +\060\070\060\064\061\070\061\066\062\064\062\062\132\027\015\062 +\070\060\064\061\063\061\066\062\064\062\062\132\060\104\061\026 +\060\024\006\003\125\004\003\014\015\101\103\105\104\111\103\117 +\115\040\122\157\157\164\061\014\060\012\006\003\125\004\013\014 +\003\120\113\111\061\017\060\015\006\003\125\004\012\014\006\105 +\104\111\103\117\115\061\013\060\011\006\003\125\004\006\023\002 +\105\123\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\377\222\225\341\150\006\166\264\054\310\130\110\312 +\375\200\124\051\125\143\044\377\220\145\233\020\165\173\303\152 +\333\142\002\001\362\030\206\265\174\132\070\261\344\130\271\373 +\323\330\055\237\275\062\067\277\054\025\155\276\265\364\041\322 +\023\221\331\007\255\001\005\326\363\275\167\316\137\102\201\012 +\371\152\343\203\000\250\053\056\125\023\143\201\312\107\034\173 +\134\026\127\172\033\203\140\004\072\076\145\303\315\001\336\336 +\244\326\014\272\216\336\331\004\356\027\126\042\233\217\143\375 +\115\026\013\267\173\167\214\371\045\265\321\155\231\022\056\117 +\032\270\346\352\004\222\256\075\021\271\121\102\075\207\260\061 +\205\257\171\132\234\376\347\116\136\222\117\103\374\253\072\255 +\245\022\046\146\271\342\014\327\230\316\324\130\245\225\100\012 +\267\104\235\023\164\053\302\245\353\042\025\230\020\330\213\305 +\004\237\035\217\140\345\006\033\233\317\271\171\240\075\242\043 +\077\102\077\153\372\034\003\173\060\215\316\154\300\277\346\033 +\137\277\147\270\204\031\325\025\357\173\313\220\066\061\142\311 +\274\002\253\106\137\233\376\032\150\224\064\075\220\216\255\366 +\344\035\011\177\112\210\070\077\276\147\375\064\226\365\035\274 +\060\164\313\070\356\325\154\253\324\374\364\000\267\000\133\205 +\062\026\166\063\351\330\243\231\235\005\000\252\026\346\363\201 +\175\157\175\252\206\155\255\025\164\323\304\242\161\252\364\024 +\175\347\062\270\037\274\325\361\116\275\157\027\002\071\327\016 +\225\102\072\307\000\076\351\046\143\021\352\013\321\112\377\030 +\235\262\327\173\057\072\331\226\373\350\036\222\256\023\125\310 +\331\047\366\334\110\033\260\044\301\205\343\167\235\232\244\363 +\014\021\035\015\310\264\024\356\265\202\127\011\277\040\130\177 +\057\042\043\330\160\313\171\154\311\113\362\251\052\310\374\207 +\053\327\032\120\370\047\350\057\103\343\072\275\330\127\161\375 +\316\246\122\133\371\335\115\355\345\366\157\211\355\273\223\234 +\166\041\165\360\222\114\051\367\057\234\001\056\376\120\106\236 +\144\014\024\263\007\133\305\302\163\154\361\007\134\105\044\024 +\065\256\203\361\152\115\211\172\372\263\330\055\146\360\066\207 +\365\053\123\002\003\001\000\001\243\201\252\060\201\247\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\037\006\003\125\035\043\004\030\060\026\200\024\246\263\341\053 +\053\111\266\327\163\241\252\224\365\001\347\163\145\114\254\120 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\206 +\060\035\006\003\125\035\016\004\026\004\024\246\263\341\053\053 +\111\266\327\163\241\252\224\365\001\347\163\145\114\254\120\060 +\104\006\003\125\035\040\004\075\060\073\060\071\006\004\125\035 +\040\000\060\061\060\057\006\010\053\006\001\005\005\007\002\001 +\026\043\150\164\164\160\072\057\057\141\143\145\144\151\143\157 +\155\056\145\144\151\143\157\155\147\162\157\165\160\056\143\157 +\155\057\144\157\143\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\003\202\002\001\000\316\054\013\122\121\142\046 +\175\014\047\203\217\305\366\332\240\150\173\117\222\136\352\244 +\163\062\021\123\104\262\104\313\235\354\017\171\102\263\020\246 +\307\015\235\313\266\372\077\072\174\352\277\210\123\033\074\367 +\202\372\005\065\063\341\065\250\127\300\347\375\215\117\077\223 +\062\117\170\146\003\167\007\130\351\225\310\176\076\320\171\000 +\214\362\033\121\063\233\274\224\351\072\173\156\122\055\062\236 +\043\244\105\373\266\056\023\260\213\030\261\335\316\325\035\247 +\102\177\125\276\373\133\273\107\324\374\044\315\004\256\226\005 +\025\326\254\316\060\363\312\013\305\272\342\042\340\246\255\042 +\344\002\356\164\021\177\114\377\170\035\065\332\346\002\064\353 +\030\022\141\167\006\011\026\143\352\030\255\242\207\037\362\307 +\200\011\011\165\116\020\250\217\075\206\270\165\021\300\044\142 +\212\226\173\112\105\351\354\131\305\276\153\203\346\341\350\254 +\265\060\036\376\005\007\200\371\341\043\015\120\217\005\230\377 +\054\137\350\073\266\255\317\201\265\041\207\312\010\052\043\047 +\060\040\053\317\355\224\133\254\262\172\322\307\050\241\212\013 +\233\115\112\054\155\205\077\011\162\074\147\342\331\334\007\272 +\353\145\173\132\001\143\326\220\133\117\027\146\075\177\013\031 +\243\223\143\020\122\052\237\024\026\130\342\334\245\364\241\026 +\213\016\221\213\201\312\233\131\372\330\153\221\007\145\125\137 +\122\037\257\072\373\220\335\151\245\133\234\155\016\054\266\372 +\316\254\245\174\062\112\147\100\334\060\064\043\335\327\004\043 +\146\360\374\125\200\247\373\146\031\202\065\147\142\160\071\136 +\157\307\352\220\100\104\010\036\270\262\326\333\356\131\247\015 +\030\171\064\274\124\030\136\123\312\064\121\355\105\012\346\216 +\307\202\066\076\247\070\143\251\060\054\027\020\140\222\237\125 +\207\022\131\020\302\017\147\151\021\314\116\036\176\112\232\255 +\257\100\250\165\254\126\220\164\270\240\234\245\171\157\334\351 +\032\310\151\005\351\272\372\003\263\174\344\340\116\302\316\235 +\350\266\106\015\156\176\127\072\147\224\302\313\037\234\167\112 +\147\116\151\206\103\223\070\373\266\333\117\203\221\324\140\176 +\113\076\053\070\007\125\230\136\244 +END + +# Trust for Certificate "ACEDICOM Root" +# Issuer: C=ES,O=EDICOM,OU=PKI,CN=ACEDICOM Root +# Serial Number:61:8d:c7:86:3b:01:82:05 +# Subject: C=ES,O=EDICOM,OU=PKI,CN=ACEDICOM Root +# Not Valid Before: Fri Apr 18 16:24:22 2008 +# Not Valid After : Thu Apr 13 16:24:22 2028 +# Fingerprint (MD5): 42:81:A0:E2:1C:E3:55:10:DE:55:89:42:65:96:22:E6 +# Fingerprint (SHA1): E0:B4:32:2E:B2:F6:A5:68:B6:54:53:84:48:18:4A:50:36:87:43:84 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ACEDICOM Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\340\264\062\056\262\366\245\150\266\124\123\204\110\030\112\120 +\066\207\103\204 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\102\201\240\342\034\343\125\020\336\125\211\102\145\226\042\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\026\060\024\006\003\125\004\003\014\015\101\103\105 +\104\111\103\117\115\040\122\157\157\164\061\014\060\012\006\003 +\125\004\013\014\003\120\113\111\061\017\060\015\006\003\125\004 +\012\014\006\105\104\111\103\117\115\061\013\060\011\006\003\125 +\004\006\023\002\105\123 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\141\215\307\206\073\001\202\005 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + +# +# Certificate "Microsec e-Szigno Root CA 2009" +# +# Issuer: E=info@e-szigno.hu,CN=Microsec e-Szigno Root CA 2009,O=Microsec Ltd.,L=Budapest,C=HU +# Serial Number:00:c2:7e:43:04:4e:47:3f:19 +# Subject: E=info@e-szigno.hu,CN=Microsec e-Szigno Root CA 2009,O=Microsec Ltd.,L=Budapest,C=HU +# Not Valid Before: Tue Jun 16 11:30:18 2009 +# Not Valid After : Sun Dec 30 11:30:18 2029 +# Fingerprint (MD5): F8:49:F4:03:BC:44:2D:83:BE:48:69:7D:29:64:FC:B1 +# Fingerprint (SHA1): 89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E +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 "Microsec e-Szigno Root CA 2009" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 +\143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 +\003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 +\055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 +\062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 +\001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 +\156\157\056\150\165 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 +\143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 +\003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 +\055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 +\062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 +\001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 +\156\157\056\150\165 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\302\176\103\004\116\107\077\031 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\012\060\202\002\362\240\003\002\001\002\002\011\000 +\302\176\103\004\116\107\077\031\060\015\006\011\052\206\110\206 +\367\015\001\001\013\005\000\060\201\202\061\013\060\011\006\003 +\125\004\006\023\002\110\125\061\021\060\017\006\003\125\004\007 +\014\010\102\165\144\141\160\145\163\164\061\026\060\024\006\003 +\125\004\012\014\015\115\151\143\162\157\163\145\143\040\114\164 +\144\056\061\047\060\045\006\003\125\004\003\014\036\115\151\143 +\162\157\163\145\143\040\145\055\123\172\151\147\156\157\040\122 +\157\157\164\040\103\101\040\062\060\060\071\061\037\060\035\006 +\011\052\206\110\206\367\015\001\011\001\026\020\151\156\146\157 +\100\145\055\163\172\151\147\156\157\056\150\165\060\036\027\015 +\060\071\060\066\061\066\061\061\063\060\061\070\132\027\015\062 +\071\061\062\063\060\061\061\063\060\061\070\132\060\201\202\061 +\013\060\011\006\003\125\004\006\023\002\110\125\061\021\060\017 +\006\003\125\004\007\014\010\102\165\144\141\160\145\163\164\061 +\026\060\024\006\003\125\004\012\014\015\115\151\143\162\157\163 +\145\143\040\114\164\144\056\061\047\060\045\006\003\125\004\003 +\014\036\115\151\143\162\157\163\145\143\040\145\055\123\172\151 +\147\156\157\040\122\157\157\164\040\103\101\040\062\060\060\071 +\061\037\060\035\006\011\052\206\110\206\367\015\001\011\001\026 +\020\151\156\146\157\100\145\055\163\172\151\147\156\157\056\150 +\165\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\351\370\217\363\143\255\332\206\330\247\340\102\373\317 +\221\336\246\046\370\231\245\143\160\255\233\256\312\063\100\175 +\155\226\156\241\016\104\356\341\023\235\224\102\122\232\275\165 +\205\164\054\250\016\035\223\266\030\267\214\054\250\317\373\134 +\161\271\332\354\376\350\176\217\344\057\035\262\250\165\207\330 +\267\241\345\073\317\231\112\106\320\203\031\175\300\241\022\034 +\225\155\112\364\330\307\245\115\063\056\205\071\100\165\176\024 +\174\200\022\230\120\307\101\147\270\240\200\141\124\246\154\116 +\037\340\235\016\007\351\311\272\063\347\376\300\125\050\054\002 +\200\247\031\365\236\334\125\123\003\227\173\007\110\377\231\373 +\067\212\044\304\131\314\120\020\143\216\252\251\032\260\204\032 +\206\371\137\273\261\120\156\244\321\012\314\325\161\176\037\247 +\033\174\365\123\156\042\137\313\053\346\324\174\135\256\326\302 +\306\114\345\005\001\331\355\127\374\301\043\171\374\372\310\044 +\203\225\363\265\152\121\001\320\167\326\351\022\241\371\032\203 +\373\202\033\271\260\227\364\166\006\063\103\111\240\377\013\265 +\372\265\002\003\001\000\001\243\201\200\060\176\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006 +\003\125\035\016\004\026\004\024\313\017\306\337\102\103\314\075 +\313\265\110\043\241\032\172\246\052\273\064\150\060\037\006\003 +\125\035\043\004\030\060\026\200\024\313\017\306\337\102\103\314 +\075\313\265\110\043\241\032\172\246\052\273\064\150\060\033\006 +\003\125\035\021\004\024\060\022\201\020\151\156\146\157\100\145 +\055\163\172\151\147\156\157\056\150\165\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\003\202\001\001\000\311\321 +\016\136\056\325\314\263\174\076\313\374\075\377\015\050\225\223 +\004\310\277\332\315\171\270\103\220\360\244\276\357\362\357\041 +\230\274\324\324\135\006\366\356\102\354\060\154\240\252\251\312 +\361\257\212\372\077\013\163\152\076\352\056\100\176\037\256\124 +\141\171\353\056\010\067\327\043\363\214\237\276\035\261\341\244 +\165\333\240\342\124\024\261\272\034\051\244\030\366\022\272\242 +\024\024\343\061\065\310\100\377\267\340\005\166\127\301\034\131 +\362\370\277\344\355\045\142\134\204\360\176\176\037\263\276\371 +\267\041\021\314\003\001\126\160\247\020\222\036\033\064\201\036 +\255\234\032\303\004\074\355\002\141\326\036\006\363\137\072\207 +\362\053\361\105\207\345\075\254\321\307\127\204\275\153\256\334 +\330\371\266\033\142\160\013\075\066\311\102\362\062\327\172\141 +\346\322\333\075\317\310\251\311\233\334\333\130\104\327\157\070 +\257\177\170\323\243\255\032\165\272\034\301\066\174\217\036\155 +\034\303\165\106\256\065\005\246\366\134\075\041\356\126\360\311 +\202\042\055\172\124\253\160\303\175\042\145\202\160\226 +END + +# Trust for Certificate "Microsec e-Szigno Root CA 2009" +# Issuer: E=info@e-szigno.hu,CN=Microsec e-Szigno Root CA 2009,O=Microsec Ltd.,L=Budapest,C=HU +# Serial Number:00:c2:7e:43:04:4e:47:3f:19 +# Subject: E=info@e-szigno.hu,CN=Microsec e-Szigno Root CA 2009,O=Microsec Ltd.,L=Budapest,C=HU +# Not Valid Before: Tue Jun 16 11:30:18 2009 +# Not Valid After : Sun Dec 30 11:30:18 2029 +# Fingerprint (MD5): F8:49:F4:03:BC:44:2D:83:BE:48:69:7D:29:64:FC:B1 +# Fingerprint (SHA1): 89:DF:74:FE:5C:F4:0F:4A:80:F9:E3:37:7D:54:DA:91:E1:01:31:8E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Microsec e-Szigno Root CA 2009" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\211\337\164\376\134\364\017\112\200\371\343\067\175\124\332\221 +\341\001\061\216 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\370\111\364\003\274\104\055\203\276\110\151\175\051\144\374\261 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\110\125 +\061\021\060\017\006\003\125\004\007\014\010\102\165\144\141\160 +\145\163\164\061\026\060\024\006\003\125\004\012\014\015\115\151 +\143\162\157\163\145\143\040\114\164\144\056\061\047\060\045\006 +\003\125\004\003\014\036\115\151\143\162\157\163\145\143\040\145 +\055\123\172\151\147\156\157\040\122\157\157\164\040\103\101\040 +\062\060\060\071\061\037\060\035\006\011\052\206\110\206\367\015 +\001\011\001\026\020\151\156\146\157\100\145\055\163\172\151\147 +\156\157\056\150\165 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\302\176\103\004\116\107\077\031 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign Root CA - R3" +# +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3 +# Serial Number:04:00:00:00:00:01:21:58:53:08:a2 +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3 +# Not Valid Before: Wed Mar 18 10:00:00 2009 +# Not Valid After : Sun Mar 18 10:00:00 2029 +# Fingerprint (MD5): C5:DF:B8:49:CA:05:13:55:EE:2D:BA:1A:C3:3E:B0:28 +# Fingerprint (SHA1): D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD +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 "GlobalSign Root CA - R3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\063\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\063\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\041\130\123\010\242 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\137\060\202\002\107\240\003\002\001\002\002\013\004 +\000\000\000\000\001\041\130\123\010\242\060\015\006\011\052\206 +\110\206\367\015\001\001\013\005\000\060\114\061\040\060\036\006 +\003\125\004\013\023\027\107\154\157\142\141\154\123\151\147\156 +\040\122\157\157\164\040\103\101\040\055\040\122\063\061\023\060 +\021\006\003\125\004\012\023\012\107\154\157\142\141\154\123\151 +\147\156\061\023\060\021\006\003\125\004\003\023\012\107\154\157 +\142\141\154\123\151\147\156\060\036\027\015\060\071\060\063\061 +\070\061\060\060\060\060\060\132\027\015\062\071\060\063\061\070 +\061\060\060\060\060\060\132\060\114\061\040\060\036\006\003\125 +\004\013\023\027\107\154\157\142\141\154\123\151\147\156\040\122 +\157\157\164\040\103\101\040\055\040\122\063\061\023\060\021\006 +\003\125\004\012\023\012\107\154\157\142\141\154\123\151\147\156 +\061\023\060\021\006\003\125\004\003\023\012\107\154\157\142\141 +\154\123\151\147\156\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\314\045\166\220\171\006\170\042\026\365 +\300\203\266\204\312\050\236\375\005\166\021\305\255\210\162\374 +\106\002\103\307\262\212\235\004\137\044\313\056\113\341\140\202 +\106\341\122\253\014\201\107\160\154\335\144\321\353\365\054\243 +\017\202\075\014\053\256\227\327\266\024\206\020\171\273\073\023 +\200\167\214\010\341\111\322\152\142\057\037\136\372\226\150\337 +\211\047\225\070\237\006\327\076\311\313\046\131\015\163\336\260 +\310\351\046\016\203\025\306\357\133\213\322\004\140\312\111\246 +\050\366\151\073\366\313\310\050\221\345\235\212\141\127\067\254 +\164\024\334\164\340\072\356\162\057\056\234\373\320\273\277\365 +\075\000\341\006\063\350\202\053\256\123\246\072\026\163\214\335 +\101\016\040\072\300\264\247\241\351\262\117\220\056\062\140\351 +\127\313\271\004\222\150\150\345\070\046\140\165\262\237\167\377 +\221\024\357\256\040\111\374\255\100\025\110\321\002\061\141\031 +\136\270\227\357\255\167\267\144\232\172\277\137\301\023\357\233 +\142\373\015\154\340\124\151\026\251\003\332\156\351\203\223\161 +\166\306\151\205\202\027\002\003\001\000\001\243\102\060\100\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\217\360\113\177\250 +\056\105\044\256\115\120\372\143\232\213\336\342\335\033\274\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202 +\001\001\000\113\100\333\300\120\252\376\310\014\357\367\226\124 +\105\111\273\226\000\011\101\254\263\023\206\206\050\007\063\312 +\153\346\164\271\272\000\055\256\244\012\323\365\361\361\017\212 +\277\163\147\112\203\307\104\173\170\340\257\156\154\157\003\051 +\216\063\071\105\303\216\344\271\127\154\252\374\022\226\354\123 +\306\055\344\044\154\271\224\143\373\334\123\150\147\126\076\203 +\270\317\065\041\303\311\150\376\316\332\302\123\252\314\220\212 +\351\360\135\106\214\225\335\172\130\050\032\057\035\336\315\000 +\067\101\217\355\104\155\327\123\050\227\176\363\147\004\036\025 +\327\212\226\264\323\336\114\047\244\114\033\163\163\166\364\027 +\231\302\037\172\016\343\055\010\255\012\034\054\377\074\253\125 +\016\017\221\176\066\353\303\127\111\276\341\056\055\174\140\213 +\303\101\121\023\043\235\316\367\062\153\224\001\250\231\347\054 +\063\037\072\073\045\322\206\100\316\073\054\206\170\311\141\057 +\024\272\356\333\125\157\337\204\356\005\011\115\275\050\330\162 +\316\323\142\120\145\036\353\222\227\203\061\331\263\265\312\107 +\130\077\137 +END + +# Trust for Certificate "GlobalSign Root CA - R3" +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3 +# Serial Number:04:00:00:00:00:01:21:58:53:08:a2 +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign Root CA - R3 +# Not Valid Before: Wed Mar 18 10:00:00 2009 +# Not Valid After : Sun Mar 18 10:00:00 2029 +# Fingerprint (MD5): C5:DF:B8:49:CA:05:13:55:EE:2D:BA:1A:C3:3E:B0:28 +# Fingerprint (SHA1): D6:9B:56:11:48:F0:1C:77:C5:45:78:C1:09:26:DF:5B:85:69:76:AD +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign Root CA - R3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\326\233\126\021\110\360\034\167\305\105\170\301\011\046\337\133 +\205\151\166\255 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\305\337\270\111\312\005\023\125\356\055\272\032\303\076\260\050 +END +CKA_ISSUER MULTILINE_OCTAL +\060\114\061\040\060\036\006\003\125\004\013\023\027\107\154\157 +\142\141\154\123\151\147\156\040\122\157\157\164\040\103\101\040 +\055\040\122\063\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\013\004\000\000\000\000\001\041\130\123\010\242 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068,C=ES +# Serial Number:53:ec:3b:ee:fb:b2:48:5f +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068,C=ES +# Not Valid Before: Wed May 20 08:38:15 2009 +# Not Valid After : Tue Dec 31 08:38:15 2030 +# Fingerprint (MD5): 73:3A:74:7A:EC:BB:A3:96:A6:C2:E4:E2:C8:9B:C0:C3 +# Fingerprint (SHA1): AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FA +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 "Autoridad de Certificacion Firmaprofesional CIF A62634068" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\102\060\100\006\003\125\004\003\014\071\101\165\164\157\162\151 +\144\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141 +\143\151\157\156\040\106\151\162\155\141\160\162\157\146\145\163 +\151\157\156\141\154\040\103\111\106\040\101\066\062\066\063\064 +\060\066\070 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\102\060\100\006\003\125\004\003\014\071\101\165\164\157\162\151 +\144\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141 +\143\151\157\156\040\106\151\162\155\141\160\162\157\146\145\163 +\151\157\156\141\154\040\103\111\106\040\101\066\062\066\063\064 +\060\066\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\123\354\073\356\373\262\110\137 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\024\060\202\003\374\240\003\002\001\002\002\010\123 +\354\073\356\373\262\110\137\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\121\061\013\060\011\006\003\125\004 +\006\023\002\105\123\061\102\060\100\006\003\125\004\003\014\071 +\101\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\156\040\106\151\162\155\141 +\160\162\157\146\145\163\151\157\156\141\154\040\103\111\106\040 +\101\066\062\066\063\064\060\066\070\060\036\027\015\060\071\060 +\065\062\060\060\070\063\070\061\065\132\027\015\063\060\061\062 +\063\061\060\070\063\070\061\065\132\060\121\061\013\060\011\006 +\003\125\004\006\023\002\105\123\061\102\060\100\006\003\125\004 +\003\014\071\101\165\164\157\162\151\144\141\144\040\144\145\040 +\103\145\162\164\151\146\151\143\141\143\151\157\156\040\106\151 +\162\155\141\160\162\157\146\145\163\151\157\156\141\154\040\103 +\111\106\040\101\066\062\066\063\064\060\066\070\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\312\226\153 +\216\352\370\373\361\242\065\340\177\114\332\340\303\122\327\175 +\266\020\310\002\136\263\103\052\304\117\152\262\312\034\135\050 +\232\170\021\032\151\131\127\257\265\040\102\344\213\017\346\337 +\133\246\003\222\057\365\021\344\142\327\062\161\070\331\004\014 +\161\253\075\121\176\017\007\337\143\005\134\351\277\224\157\301 +\051\202\300\264\332\121\260\301\074\273\255\067\112\134\312\361 +\113\066\016\044\253\277\303\204\167\375\250\120\364\261\347\306 +\057\322\055\131\215\172\012\116\226\151\122\002\252\066\230\354 +\374\372\024\203\014\067\037\311\222\067\177\327\201\055\345\304 +\271\340\076\064\376\147\364\076\146\321\323\364\100\317\136\142 +\064\017\160\006\076\040\030\132\316\367\162\033\045\154\223\164 +\024\223\243\163\261\016\252\207\020\043\131\137\040\005\031\107 +\355\150\216\222\022\312\135\374\326\053\262\222\074\040\317\341 +\137\257\040\276\240\166\177\166\345\354\032\206\141\063\076\347 +\173\264\077\240\017\216\242\271\152\157\271\207\046\157\101\154 +\210\246\120\375\152\143\013\365\223\026\033\031\217\262\355\233 +\233\311\220\365\001\014\337\031\075\017\076\070\043\311\057\217 +\014\321\002\376\033\125\326\116\320\215\074\257\117\244\363\376 +\257\052\323\005\235\171\010\241\313\127\061\264\234\310\220\262 +\147\364\030\026\223\072\374\107\330\321\170\226\061\037\272\053 +\014\137\135\231\255\143\211\132\044\040\166\330\337\375\253\116 +\246\042\252\235\136\346\047\212\175\150\051\243\347\212\270\332 +\021\273\027\055\231\235\023\044\106\367\305\342\330\237\216\177 +\307\217\164\155\132\262\350\162\365\254\356\044\020\255\057\024 +\332\377\055\232\106\161\107\276\102\337\273\001\333\364\177\323 +\050\217\061\131\133\323\311\002\246\264\122\312\156\227\373\103 +\305\010\046\157\212\364\273\375\237\050\252\015\325\105\363\023 +\072\035\330\300\170\217\101\147\074\036\224\144\256\173\013\305 +\350\331\001\210\071\032\227\206\144\101\325\073\207\014\156\372 +\017\306\275\110\024\277\071\115\324\236\101\266\217\226\035\143 +\226\223\331\225\006\170\061\150\236\067\006\073\200\211\105\141 +\071\043\307\033\104\243\025\345\034\370\222\060\273\002\003\001 +\000\001\243\201\357\060\201\354\060\022\006\003\125\035\023\001 +\001\377\004\010\060\006\001\001\377\002\001\001\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\145\315\353\253\065\036\000\076\176 +\325\164\300\034\264\163\107\016\032\144\057\060\201\246\006\003 +\125\035\040\004\201\236\060\201\233\060\201\230\006\004\125\035 +\040\000\060\201\217\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\146\151 +\162\155\141\160\162\157\146\145\163\151\157\156\141\154\056\143 +\157\155\057\143\160\163\060\134\006\010\053\006\001\005\005\007 +\002\002\060\120\036\116\000\120\000\141\000\163\000\145\000\157 +\000\040\000\144\000\145\000\040\000\154\000\141\000\040\000\102 +\000\157\000\156\000\141\000\156\000\157\000\166\000\141\000\040 +\000\064\000\067\000\040\000\102\000\141\000\162\000\143\000\145 +\000\154\000\157\000\156\000\141\000\040\000\060\000\070\000\060 +\000\061\000\067\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\002\001\000\027\175\240\371\264\335\305\305 +\353\255\113\044\265\241\002\253\335\245\210\112\262\017\125\113 +\053\127\214\073\345\061\335\376\304\062\361\347\133\144\226\066 +\062\030\354\245\062\167\327\343\104\266\300\021\052\200\271\075 +\152\156\174\233\323\255\374\303\326\243\346\144\051\174\321\341 +\070\036\202\053\377\047\145\257\373\026\025\304\056\161\204\345 +\265\377\372\244\107\275\144\062\273\366\045\204\242\047\102\365 +\040\260\302\023\020\021\315\020\025\272\102\220\052\322\104\341 +\226\046\353\061\110\022\375\052\332\311\006\317\164\036\251\113 +\325\207\050\371\171\064\222\076\056\104\350\366\217\117\217\065 +\077\045\263\071\334\143\052\220\153\040\137\304\122\022\116\227 +\054\052\254\235\227\336\110\362\243\146\333\302\322\203\225\246 +\146\247\236\045\017\351\013\063\221\145\012\132\303\331\124\022 +\335\257\303\116\016\037\046\136\015\334\263\215\354\325\201\160 +\336\322\117\044\005\363\154\116\365\114\111\146\215\321\377\322 +\013\045\101\110\376\121\204\306\102\257\200\004\317\320\176\144 +\111\344\362\337\242\354\261\114\300\052\035\347\264\261\145\242 +\304\274\361\230\364\252\160\007\143\264\270\332\073\114\372\100 +\042\060\133\021\246\360\005\016\306\002\003\110\253\206\233\205 +\335\333\335\352\242\166\200\163\175\365\234\004\304\105\215\347 +\271\034\213\236\352\327\165\321\162\261\336\165\104\347\102\175 +\342\127\153\175\334\231\274\075\203\050\352\200\223\215\305\114 +\145\301\160\201\270\070\374\103\061\262\366\003\064\107\262\254 +\373\042\006\313\036\335\027\107\034\137\146\271\323\032\242\332 +\021\261\244\274\043\311\344\276\207\377\271\224\266\370\135\040 +\112\324\137\347\275\150\173\145\362\025\036\322\072\251\055\351 +\330\153\044\254\227\130\104\107\255\131\030\361\041\145\160\336 +\316\064\140\250\100\361\363\074\244\303\050\043\214\376\047\063 +\103\100\240\027\074\353\352\073\260\162\246\243\271\112\113\136 +\026\110\364\262\274\310\214\222\305\235\237\254\162\066\274\064 +\200\064\153\251\213\222\300\270\027\355\354\166\123\365\044\001 +\214\263\042\350\113\174\125\306\235\372\243\024\273\145\205\156 +\156\117\022\176\012\074\235\225 +END + +# Trust for Certificate "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068,C=ES +# Serial Number:53:ec:3b:ee:fb:b2:48:5f +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068,C=ES +# Not Valid Before: Wed May 20 08:38:15 2009 +# Not Valid After : Tue Dec 31 08:38:15 2030 +# Fingerprint (MD5): 73:3A:74:7A:EC:BB:A3:96:A6:C2:E4:E2:C8:9B:C0:C3 +# Fingerprint (SHA1): AE:C5:FB:3F:C8:E1:BF:C4:E5:4F:03:07:5A:9A:E8:00:B7:F7:B6:FA +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Autoridad de Certificacion Firmaprofesional CIF A62634068" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\256\305\373\077\310\341\277\304\345\117\003\007\132\232\350\000 +\267\367\266\372 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\163\072\164\172\354\273\243\226\246\302\344\342\310\233\300\303 +END +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\102\060\100\006\003\125\004\003\014\071\101\165\164\157\162\151 +\144\141\144\040\144\145\040\103\145\162\164\151\146\151\143\141 +\143\151\157\156\040\106\151\162\155\141\160\162\157\146\145\163 +\151\157\156\141\154\040\103\111\106\040\101\066\062\066\063\064 +\060\066\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\123\354\073\356\373\262\110\137 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Izenpe.com" +# +# Issuer: CN=Izenpe.com,O=IZENPE S.A.,C=ES +# Serial Number:00:b0:b7:5a:16:48:5f:bf:e1:cb:f5:8b:d7:19:e6:7d +# Subject: CN=Izenpe.com,O=IZENPE S.A.,C=ES +# Not Valid Before: Thu Dec 13 13:08:28 2007 +# Not Valid After : Sun Dec 13 08:27:25 2037 +# Fingerprint (MD5): A6:B0:CD:85:80:DA:5C:50:34:A3:39:90:2F:55:67:73 +# Fingerprint (SHA1): 2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19 +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 "Izenpe.com" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\070\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\024\060\022\006\003\125\004\012\014\013\111\132\105\116\120\105 +\040\123\056\101\056\061\023\060\021\006\003\125\004\003\014\012 +\111\172\145\156\160\145\056\143\157\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\070\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\024\060\022\006\003\125\004\012\014\013\111\132\105\116\120\105 +\040\123\056\101\056\061\023\060\021\006\003\125\004\003\014\012 +\111\172\145\156\160\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\000\260\267\132\026\110\137\277\341\313\365\213\327\031 +\346\175 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\361\060\202\003\331\240\003\002\001\002\002\020\000 +\260\267\132\026\110\137\277\341\313\365\213\327\031\346\175\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\070 +\061\013\060\011\006\003\125\004\006\023\002\105\123\061\024\060 +\022\006\003\125\004\012\014\013\111\132\105\116\120\105\040\123 +\056\101\056\061\023\060\021\006\003\125\004\003\014\012\111\172 +\145\156\160\145\056\143\157\155\060\036\027\015\060\067\061\062 +\061\063\061\063\060\070\062\070\132\027\015\063\067\061\062\061 +\063\060\070\062\067\062\065\132\060\070\061\013\060\011\006\003 +\125\004\006\023\002\105\123\061\024\060\022\006\003\125\004\012 +\014\013\111\132\105\116\120\105\040\123\056\101\056\061\023\060 +\021\006\003\125\004\003\014\012\111\172\145\156\160\145\056\143 +\157\155\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\311\323\172\312\017\036\254\247\206\350\026\145\152 +\261\302\033\105\062\161\225\331\376\020\133\314\257\347\245\171 +\001\217\211\303\312\362\125\161\367\167\276\167\224\363\162\244 +\054\104\330\236\222\233\024\072\241\347\044\220\012\012\126\216 +\305\330\046\224\341\331\110\341\055\076\332\012\162\335\243\231 +\025\332\201\242\207\364\173\156\046\167\211\130\255\326\353\014 +\262\101\172\163\156\155\333\172\170\101\351\010\210\022\176\207 +\056\146\021\143\154\124\373\074\235\162\300\274\056\377\302\267 +\335\015\166\343\072\327\367\264\150\276\242\365\343\201\156\301 +\106\157\135\215\340\115\306\124\125\211\032\063\061\012\261\127 +\271\243\212\230\303\354\073\064\305\225\101\151\176\165\302\074 +\040\305\141\272\121\107\240\040\220\223\241\220\113\363\116\174 +\205\105\124\232\321\005\046\101\260\265\115\035\063\276\304\003 +\310\045\174\301\160\333\073\364\011\055\124\047\110\254\057\341 +\304\254\076\310\313\222\114\123\071\067\043\354\323\001\371\340 +\011\104\115\115\144\300\341\015\132\207\042\274\255\033\243\376 +\046\265\025\363\247\374\204\031\351\354\241\210\264\104\151\204 +\203\363\211\321\164\006\251\314\013\326\302\336\047\205\120\046 +\312\027\270\311\172\207\126\054\032\001\036\154\276\023\255\020 +\254\265\044\365\070\221\241\326\113\332\361\273\322\336\107\265 +\361\274\201\366\131\153\317\031\123\351\215\025\313\112\313\251 +\157\104\345\033\101\317\341\206\247\312\320\152\237\274\114\215 +\006\063\132\242\205\345\220\065\240\142\134\026\116\360\343\242 +\372\003\032\264\054\161\263\130\054\336\173\013\333\032\017\353 +\336\041\037\006\167\006\003\260\311\357\231\374\300\271\117\013 +\206\050\376\322\271\352\343\332\245\303\107\151\022\340\333\360 +\366\031\213\355\173\160\327\002\326\355\207\030\050\054\004\044 +\114\167\344\110\212\032\306\073\232\324\017\312\372\165\322\001 +\100\132\215\171\277\213\317\113\317\252\026\301\225\344\255\114 +\212\076\027\221\324\261\142\345\202\345\200\004\244\003\176\215 +\277\332\177\242\017\227\117\014\323\015\373\327\321\345\162\176 +\034\310\167\377\133\232\017\267\256\005\106\345\361\250\026\354 +\107\244\027\002\003\001\000\001\243\201\366\060\201\363\060\201 +\260\006\003\125\035\021\004\201\250\060\201\245\201\017\151\156 +\146\157\100\151\172\145\156\160\145\056\143\157\155\244\201\221 +\060\201\216\061\107\060\105\006\003\125\004\012\014\076\111\132 +\105\116\120\105\040\123\056\101\056\040\055\040\103\111\106\040 +\101\060\061\063\063\067\062\066\060\055\122\115\145\162\143\056 +\126\151\164\157\162\151\141\055\107\141\163\164\145\151\172\040 +\124\061\060\065\065\040\106\066\062\040\123\070\061\103\060\101 +\006\003\125\004\011\014\072\101\166\144\141\040\144\145\154\040 +\115\145\144\151\164\145\162\162\141\156\145\157\040\105\164\157 +\162\142\151\144\145\141\040\061\064\040\055\040\060\061\060\061 +\060\040\126\151\164\157\162\151\141\055\107\141\163\164\145\151 +\172\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\001\006\060\035\006\003\125\035\016\004\026\004\024\035\034\145 +\016\250\362\045\173\264\221\317\344\261\261\346\275\125\164\154 +\005\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000 +\003\202\002\001\000\170\246\014\026\112\237\114\210\072\300\313 +\016\245\026\175\237\271\110\137\030\217\015\142\066\366\315\031 +\153\254\253\325\366\221\175\256\161\363\077\263\016\170\205\233 +\225\244\047\041\107\102\112\174\110\072\365\105\174\263\014\216 +\121\170\254\225\023\336\306\375\175\270\032\220\114\253\222\003 +\307\355\102\001\316\017\330\261\372\242\222\341\140\155\256\172 +\153\011\252\306\051\356\150\111\147\060\200\044\172\061\026\071 +\133\176\361\034\056\335\154\011\255\362\061\301\202\116\271\273 +\371\276\277\052\205\077\300\100\243\072\131\374\131\113\074\050 +\044\333\264\025\165\256\015\210\272\056\163\300\275\130\207\345 +\102\362\353\136\356\036\060\042\231\313\067\321\304\041\154\201 +\354\276\155\046\346\034\344\102\040\236\107\260\254\203\131\160 +\054\065\326\257\066\064\264\315\073\370\062\250\357\343\170\211 +\373\215\105\054\332\234\270\176\100\034\141\347\076\242\222\054 +\113\362\315\372\230\266\051\377\363\362\173\251\037\056\240\223 +\127\053\336\205\003\371\151\067\313\236\170\152\005\264\305\061 +\170\211\354\172\247\205\341\271\173\074\336\276\036\171\204\316 +\237\160\016\131\302\065\056\220\052\061\331\344\105\172\101\244 +\056\023\233\064\016\146\173\111\253\144\227\320\106\303\171\235 +\162\120\143\246\230\133\006\275\110\155\330\071\203\160\350\065 +\360\005\321\252\274\343\333\310\002\352\174\375\202\332\302\133 +\122\065\256\230\072\255\272\065\223\043\247\037\110\335\065\106 +\230\262\020\150\344\245\061\302\012\130\056\031\201\020\311\120 +\165\374\352\132\026\316\021\327\356\357\120\210\055\141\377\077 +\102\163\005\224\103\325\216\074\116\001\072\031\245\037\106\116 +\167\320\135\345\201\042\041\207\376\224\175\204\330\223\255\326 +\150\103\110\262\333\353\163\044\347\221\177\124\244\266\200\076 +\235\243\074\114\162\302\127\304\240\324\314\070\047\316\325\006 +\236\242\110\331\351\237\316\202\160\066\223\232\073\337\226\041 +\343\131\267\014\332\221\067\360\375\131\132\263\231\310\151\154 +\103\046\001\065\143\140\125\211\003\072\165\330\272\112\331\124 +\377\356\336\200\330\055\321\070\325\136\055\013\230\175\076\154 +\333\374\046\210\307 +END + +# Trust for Certificate "Izenpe.com" +# Issuer: CN=Izenpe.com,O=IZENPE S.A.,C=ES +# Serial Number:00:b0:b7:5a:16:48:5f:bf:e1:cb:f5:8b:d7:19:e6:7d +# Subject: CN=Izenpe.com,O=IZENPE S.A.,C=ES +# Not Valid Before: Thu Dec 13 13:08:28 2007 +# Not Valid After : Sun Dec 13 08:27:25 2037 +# Fingerprint (MD5): A6:B0:CD:85:80:DA:5C:50:34:A3:39:90:2F:55:67:73 +# Fingerprint (SHA1): 2F:78:3D:25:52:18:A7:4A:65:39:71:B5:2C:A2:9C:45:15:6F:E9:19 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Izenpe.com" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\057\170\075\045\122\030\247\112\145\071\161\265\054\242\234\105 +\025\157\351\031 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\246\260\315\205\200\332\134\120\064\243\071\220\057\125\147\163 +END +CKA_ISSUER MULTILINE_OCTAL +\060\070\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\024\060\022\006\003\125\004\012\014\013\111\132\105\116\120\105 +\040\123\056\101\056\061\023\060\021\006\003\125\004\003\014\012 +\111\172\145\156\160\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\000\260\267\132\026\110\137\277\341\313\365\213\327\031 +\346\175 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Chambers of Commerce Root - 2008" +# +# Issuer: CN=Chambers of Commerce Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Serial Number:00:a3:da:42:7e:a4:b1:ae:da +# Subject: CN=Chambers of Commerce Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Not Valid Before: Fri Aug 01 12:29:50 2008 +# Not Valid After : Sat Jul 31 12:29:50 2038 +# Fingerprint (MD5): 5E:80:9E:84:5A:0E:65:0B:17:02:F3:55:18:2A:3E:D7 +# Fingerprint (SHA1): 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C +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 "Chambers of Commerce Root - 2008" +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\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\051\060\047\006\003\125\004\003\023 +\040\103\150\141\155\142\145\162\163\040\157\146\040\103\157\155 +\155\145\162\143\145\040\122\157\157\164\040\055\040\062\060\060 +\070 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\051\060\047\006\003\125\004\003\023 +\040\103\150\141\155\142\145\162\163\040\157\146\040\103\157\155 +\155\145\162\143\145\040\122\157\157\164\040\055\040\062\060\060 +\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\243\332\102\176\244\261\256\332 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\117\060\202\005\067\240\003\002\001\002\002\011\000 +\243\332\102\176\244\261\256\332\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\105\125\061\103\060\101\006\003\125\004\007 +\023\072\115\141\144\162\151\144\040\050\163\145\145\040\143\165 +\162\162\145\156\164\040\141\144\144\162\145\163\163\040\141\164 +\040\167\167\167\056\143\141\155\145\162\146\151\162\155\141\056 +\143\157\155\057\141\144\144\162\145\163\163\051\061\022\060\020 +\006\003\125\004\005\023\011\101\070\062\067\064\063\062\070\067 +\061\033\060\031\006\003\125\004\012\023\022\101\103\040\103\141 +\155\145\162\146\151\162\155\141\040\123\056\101\056\061\051\060 +\047\006\003\125\004\003\023\040\103\150\141\155\142\145\162\163 +\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157\157 +\164\040\055\040\062\060\060\070\060\036\027\015\060\070\060\070 +\060\061\061\062\062\071\065\060\132\027\015\063\070\060\067\063 +\061\061\062\062\071\065\060\132\060\201\256\061\013\060\011\006 +\003\125\004\006\023\002\105\125\061\103\060\101\006\003\125\004 +\007\023\072\115\141\144\162\151\144\040\050\163\145\145\040\143 +\165\162\162\145\156\164\040\141\144\144\162\145\163\163\040\141 +\164\040\167\167\167\056\143\141\155\145\162\146\151\162\155\141 +\056\143\157\155\057\141\144\144\162\145\163\163\051\061\022\060 +\020\006\003\125\004\005\023\011\101\070\062\067\064\063\062\070 +\067\061\033\060\031\006\003\125\004\012\023\022\101\103\040\103 +\141\155\145\162\146\151\162\155\141\040\123\056\101\056\061\051 +\060\047\006\003\125\004\003\023\040\103\150\141\155\142\145\162 +\163\040\157\146\040\103\157\155\155\145\162\143\145\040\122\157 +\157\164\040\055\040\062\060\060\070\060\202\002\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017 +\000\060\202\002\012\002\202\002\001\000\257\000\313\160\067\053 +\200\132\112\072\154\170\224\175\243\177\032\037\366\065\325\275 +\333\313\015\104\162\076\046\262\220\122\272\143\073\050\130\157 +\245\263\155\224\246\363\335\144\014\125\366\366\347\362\042\042 +\200\136\341\142\306\266\051\341\201\154\362\277\345\175\062\152 +\124\240\062\031\131\376\037\213\327\075\140\206\205\044\157\343 +\021\263\167\076\040\226\065\041\153\263\010\331\160\056\144\367 +\204\222\123\326\016\260\220\212\212\343\207\215\006\323\275\220 +\016\342\231\241\033\206\016\332\232\012\273\013\141\120\006\122 +\361\236\177\166\354\313\017\320\036\015\317\231\060\075\034\304 +\105\020\130\254\326\323\350\327\345\352\305\001\007\167\326\121 +\346\003\177\212\110\245\115\150\165\271\351\274\236\116\031\161 +\365\062\113\234\155\140\031\013\373\314\235\165\334\277\046\315 +\217\223\170\071\171\163\136\045\016\312\134\353\167\022\007\313 +\144\101\107\162\223\253\120\303\353\011\166\144\064\322\071\267 +\166\021\011\015\166\105\304\251\256\075\152\257\265\175\145\057 +\224\130\020\354\134\174\257\176\342\266\030\331\320\233\116\132 +\111\337\251\146\013\314\074\306\170\174\247\234\035\343\316\216 +\123\276\005\336\140\017\153\345\032\333\077\343\341\041\311\051 +\301\361\353\007\234\122\033\001\104\121\074\173\045\327\304\345 +\122\124\135\045\007\312\026\040\270\255\344\101\356\172\010\376 +\231\157\203\246\221\002\260\154\066\125\152\347\175\365\226\346 +\312\201\326\227\361\224\203\351\355\260\261\153\022\151\036\254 +\373\135\251\305\230\351\264\133\130\172\276\075\242\104\072\143 +\131\324\013\045\336\033\117\275\345\001\236\315\322\051\325\237 +\027\031\012\157\277\014\220\323\011\137\331\343\212\065\314\171 +\132\115\031\067\222\267\304\301\255\257\364\171\044\232\262\001 +\013\261\257\134\226\363\200\062\373\134\075\230\361\240\077\112 +\336\276\257\224\056\331\125\232\027\156\140\235\143\154\270\143 +\311\256\201\134\030\065\340\220\273\276\074\117\067\042\271\176 +\353\317\236\167\041\246\075\070\201\373\110\332\061\075\053\343 +\211\365\320\265\275\176\340\120\304\022\211\263\043\232\020\061 +\205\333\256\157\357\070\063\030\166\021\002\003\001\000\001\243 +\202\001\154\060\202\001\150\060\022\006\003\125\035\023\001\001 +\377\004\010\060\006\001\001\377\002\001\014\060\035\006\003\125 +\035\016\004\026\004\024\371\044\254\017\262\265\370\171\300\372 +\140\210\033\304\331\115\002\236\027\031\060\201\343\006\003\125 +\035\043\004\201\333\060\201\330\200\024\371\044\254\017\262\265 +\370\171\300\372\140\210\033\304\331\115\002\236\027\031\241\201 +\264\244\201\261\060\201\256\061\013\060\011\006\003\125\004\006 +\023\002\105\125\061\103\060\101\006\003\125\004\007\023\072\115 +\141\144\162\151\144\040\050\163\145\145\040\143\165\162\162\145 +\156\164\040\141\144\144\162\145\163\163\040\141\164\040\167\167 +\167\056\143\141\155\145\162\146\151\162\155\141\056\143\157\155 +\057\141\144\144\162\145\163\163\051\061\022\060\020\006\003\125 +\004\005\023\011\101\070\062\067\064\063\062\070\067\061\033\060 +\031\006\003\125\004\012\023\022\101\103\040\103\141\155\145\162 +\146\151\162\155\141\040\123\056\101\056\061\051\060\047\006\003 +\125\004\003\023\040\103\150\141\155\142\145\162\163\040\157\146 +\040\103\157\155\155\145\162\143\145\040\122\157\157\164\040\055 +\040\062\060\060\070\202\011\000\243\332\102\176\244\261\256\332 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\075\006\003\125\035\040\004\066\060\064\060\062\006\004\125 +\035\040\000\060\052\060\050\006\010\053\006\001\005\005\007\002 +\001\026\034\150\164\164\160\072\057\057\160\157\154\151\143\171 +\056\143\141\155\145\162\146\151\162\155\141\056\143\157\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\002\001\000\220\022\257\042\065\302\243\071\360\056\336\351\265 +\351\170\174\110\276\077\175\105\222\136\351\332\261\031\374\026 +\074\237\264\133\146\236\152\347\303\271\135\210\350\017\255\317 +\043\017\336\045\072\136\314\117\245\301\265\055\254\044\322\130 +\007\336\242\317\151\204\140\063\350\020\015\023\251\043\320\205 +\345\216\173\246\236\075\162\023\162\063\365\252\175\306\143\037 +\010\364\376\001\177\044\317\053\054\124\011\336\342\053\155\222 +\306\071\117\026\352\074\176\172\106\324\105\152\106\250\353\165 +\202\126\247\253\240\174\150\023\063\366\235\060\360\157\047\071 +\044\043\052\220\375\220\051\065\362\223\337\064\245\306\367\370 +\357\214\017\142\112\174\256\323\365\124\370\215\266\232\126\207 +\026\202\072\063\253\132\042\010\367\202\272\352\056\340\107\232 +\264\265\105\243\005\073\331\334\056\105\100\073\352\334\177\350 +\073\353\321\354\046\330\065\244\060\305\072\254\127\236\263\166 +\245\040\173\371\036\112\005\142\001\246\050\165\140\227\222\015 +\156\076\115\067\103\015\222\025\234\030\042\315\121\231\240\051 +\032\074\137\212\062\063\133\060\307\211\057\107\230\017\243\003 +\306\366\361\254\337\062\360\331\201\032\344\234\275\366\200\024 +\360\321\054\271\205\365\330\243\261\310\245\041\345\034\023\227 +\356\016\275\337\051\251\357\064\123\133\323\344\152\023\204\006 +\266\062\002\304\122\256\042\322\334\262\041\102\032\332\100\360 +\051\311\354\012\014\134\342\320\272\314\110\323\067\012\314\022 +\012\212\171\260\075\003\177\151\113\364\064\040\175\263\064\352 +\216\113\144\365\076\375\263\043\147\025\015\004\270\360\055\301 +\011\121\074\262\154\025\360\245\043\327\203\164\344\345\056\311 +\376\230\047\102\306\253\306\236\260\320\133\070\245\233\120\336 +\176\030\230\265\105\073\366\171\264\350\367\032\173\006\203\373 +\320\213\332\273\307\275\030\253\010\157\074\200\153\100\077\031 +\031\272\145\212\346\276\325\134\323\066\327\357\100\122\044\140 +\070\147\004\061\354\217\363\202\306\336\271\125\363\073\061\221 +\132\334\265\010\025\255\166\045\012\015\173\056\207\342\014\246 +\006\274\046\020\155\067\235\354\335\170\214\174\200\305\360\331 +\167\110\320 +END + +# Trust for Certificate "Chambers of Commerce Root - 2008" +# Issuer: CN=Chambers of Commerce Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Serial Number:00:a3:da:42:7e:a4:b1:ae:da +# Subject: CN=Chambers of Commerce Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Not Valid Before: Fri Aug 01 12:29:50 2008 +# Not Valid After : Sat Jul 31 12:29:50 2038 +# Fingerprint (MD5): 5E:80:9E:84:5A:0E:65:0B:17:02:F3:55:18:2A:3E:D7 +# Fingerprint (SHA1): 78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Chambers of Commerce Root - 2008" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\170\152\164\254\166\253\024\177\234\152\060\120\272\236\250\176 +\376\232\316\074 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\136\200\236\204\132\016\145\013\027\002\363\125\030\052\076\327 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\256\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\051\060\047\006\003\125\004\003\023 +\040\103\150\141\155\142\145\162\163\040\157\146\040\103\157\155 +\155\145\162\143\145\040\122\157\157\164\040\055\040\062\060\060 +\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\243\332\102\176\244\261\256\332 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Global Chambersign Root - 2008" +# +# Issuer: CN=Global Chambersign Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Serial Number:00:c9:cd:d3:e9:d5:7d:23:ce +# Subject: CN=Global Chambersign Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Not Valid Before: Fri Aug 01 12:31:40 2008 +# Not Valid After : Sat Jul 31 12:31:40 2038 +# Fingerprint (MD5): 9E:80:FF:78:01:0C:2E:C1:36:BD:FE:96:90:6E:08:F3 +# Fingerprint (SHA1): 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C +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 "Global Chambersign Root - 2008" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\311\315\323\351\325\175\043\316 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\111\060\202\005\061\240\003\002\001\002\002\011\000 +\311\315\323\351\325\175\043\316\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\201\254\061\013\060\011\006\003 +\125\004\006\023\002\105\125\061\103\060\101\006\003\125\004\007 +\023\072\115\141\144\162\151\144\040\050\163\145\145\040\143\165 +\162\162\145\156\164\040\141\144\144\162\145\163\163\040\141\164 +\040\167\167\167\056\143\141\155\145\162\146\151\162\155\141\056 +\143\157\155\057\141\144\144\162\145\163\163\051\061\022\060\020 +\006\003\125\004\005\023\011\101\070\062\067\064\063\062\070\067 +\061\033\060\031\006\003\125\004\012\023\022\101\103\040\103\141 +\155\145\162\146\151\162\155\141\040\123\056\101\056\061\047\060 +\045\006\003\125\004\003\023\036\107\154\157\142\141\154\040\103 +\150\141\155\142\145\162\163\151\147\156\040\122\157\157\164\040 +\055\040\062\060\060\070\060\036\027\015\060\070\060\070\060\061 +\061\062\063\061\064\060\132\027\015\063\070\060\067\063\061\061 +\062\063\061\064\060\132\060\201\254\061\013\060\011\006\003\125 +\004\006\023\002\105\125\061\103\060\101\006\003\125\004\007\023 +\072\115\141\144\162\151\144\040\050\163\145\145\040\143\165\162 +\162\145\156\164\040\141\144\144\162\145\163\163\040\141\164\040 +\167\167\167\056\143\141\155\145\162\146\151\162\155\141\056\143 +\157\155\057\141\144\144\162\145\163\163\051\061\022\060\020\006 +\003\125\004\005\023\011\101\070\062\067\064\063\062\070\067\061 +\033\060\031\006\003\125\004\012\023\022\101\103\040\103\141\155 +\145\162\146\151\162\155\141\040\123\056\101\056\061\047\060\045 +\006\003\125\004\003\023\036\107\154\157\142\141\154\040\103\150 +\141\155\142\145\162\163\151\147\156\040\122\157\157\164\040\055 +\040\062\060\060\070\060\202\002\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002 +\012\002\202\002\001\000\300\337\126\323\344\072\233\166\105\264 +\023\333\377\301\266\031\213\067\101\030\225\122\107\353\027\235 +\051\210\216\065\154\006\062\056\107\142\363\111\004\277\175\104 +\066\261\161\314\275\132\011\163\325\331\205\104\377\221\127\045 +\337\136\066\216\160\321\134\161\103\035\331\332\357\134\322\373 +\033\275\072\265\313\255\243\314\104\247\015\256\041\025\077\271 +\172\133\222\165\330\244\022\070\211\031\212\267\200\322\342\062 +\157\126\234\221\326\210\020\013\263\164\144\222\164\140\363\366 +\317\030\117\140\262\043\320\307\073\316\141\113\231\217\302\014 +\320\100\262\230\334\015\250\116\243\271\012\256\140\240\255\105 +\122\143\272\146\275\150\340\371\276\032\250\201\273\036\101\170 +\165\323\301\376\000\125\260\207\124\350\047\220\065\035\114\063 +\255\227\374\227\056\230\204\277\054\311\243\277\321\230\021\024 +\355\143\370\312\230\210\130\027\231\355\105\003\227\176\074\206 +\036\210\214\276\362\221\204\217\145\064\330\000\114\175\267\061 +\027\132\051\172\012\030\044\060\243\067\265\172\251\001\175\046 +\326\371\016\216\131\361\375\033\063\265\051\073\027\073\101\266 +\041\335\324\300\075\245\237\237\037\103\120\311\273\274\154\172 +\227\230\356\315\214\037\373\234\121\256\213\160\275\047\237\161 +\300\153\254\175\220\146\350\327\135\072\015\260\325\302\215\325 +\310\235\235\301\155\320\320\277\121\344\343\370\303\070\066\256 +\326\247\165\346\257\204\103\135\223\222\014\152\007\336\073\035 +\230\042\326\254\301\065\333\243\240\045\377\162\265\166\035\336 +\155\351\054\146\054\122\204\320\105\222\316\034\345\345\063\035 +\334\007\123\124\243\252\202\073\232\067\057\334\335\240\144\351 +\346\335\275\256\374\144\205\035\074\247\311\006\336\204\377\153 +\350\153\032\074\305\242\263\102\373\213\011\076\137\010\122\307 +\142\304\324\005\161\277\304\144\344\370\241\203\350\076\022\233 +\250\036\324\066\115\057\161\366\215\050\366\203\251\023\322\141 +\301\221\273\110\300\064\217\101\214\113\114\333\151\022\377\120 +\224\234\040\203\131\163\355\174\241\362\361\375\335\367\111\323 +\103\130\240\126\143\312\075\075\345\065\126\131\351\016\312\040 +\314\053\113\223\051\017\002\003\001\000\001\243\202\001\152\060 +\202\001\146\060\022\006\003\125\035\023\001\001\377\004\010\060 +\006\001\001\377\002\001\014\060\035\006\003\125\035\016\004\026 +\004\024\271\011\312\234\036\333\323\154\072\153\256\355\124\361 +\133\223\006\065\056\136\060\201\341\006\003\125\035\043\004\201 +\331\060\201\326\200\024\271\011\312\234\036\333\323\154\072\153 +\256\355\124\361\133\223\006\065\056\136\241\201\262\244\201\257 +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070\202 +\011\000\311\315\323\351\325\175\043\316\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\075\006\003\125\035 +\040\004\066\060\064\060\062\006\004\125\035\040\000\060\052\060 +\050\006\010\053\006\001\005\005\007\002\001\026\034\150\164\164 +\160\072\057\057\160\157\154\151\143\171\056\143\141\155\145\162 +\146\151\162\155\141\056\143\157\155\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\200\210\177 +\160\336\222\050\331\005\224\106\377\220\127\251\361\057\337\032 +\015\153\372\174\016\034\111\044\171\047\330\106\252\157\051\131 +\122\210\160\022\352\335\075\365\233\123\124\157\341\140\242\250 +\011\271\354\353\131\174\306\065\361\334\030\351\361\147\345\257 +\272\105\340\011\336\312\104\017\302\027\016\167\221\105\172\063 +\137\137\226\054\150\213\301\107\217\230\233\075\300\354\313\365 +\325\202\222\204\065\321\276\066\070\126\162\061\133\107\055\252 +\027\244\143\121\353\012\001\255\177\354\165\236\313\241\037\361 +\177\022\261\271\344\144\177\147\326\043\052\364\270\071\135\230 +\350\041\247\341\275\075\102\032\164\232\160\257\150\154\120\135 +\111\317\377\373\016\135\346\054\107\327\201\072\131\000\265\163 +\153\143\040\366\061\105\010\071\016\364\160\176\100\160\132\077 +\320\153\102\251\164\075\050\057\002\155\165\162\225\011\215\110 +\143\306\306\043\127\222\223\136\065\301\215\371\012\367\054\235 +\142\034\366\255\174\335\246\061\036\266\261\307\176\205\046\372 +\244\152\265\332\143\060\321\357\223\067\262\146\057\175\005\367 +\347\267\113\230\224\065\300\331\072\051\301\235\262\120\063\035 +\112\251\132\246\311\003\357\355\364\347\250\156\212\264\127\204 +\353\244\077\320\356\252\252\207\133\143\350\223\342\153\250\324 +\270\162\170\153\033\355\071\344\135\313\233\252\207\325\117\116 +\000\376\331\152\237\074\061\017\050\002\001\175\230\350\247\260 +\242\144\236\171\370\110\362\025\251\314\346\310\104\353\077\170 +\231\362\173\161\076\074\361\230\247\305\030\022\077\346\273\050 +\063\102\351\105\012\174\155\362\206\171\057\305\202\031\175\011 +\211\174\262\124\166\210\256\336\301\363\314\341\156\333\061\326 +\223\256\231\240\357\045\152\163\230\211\133\072\056\023\210\036 +\277\300\222\224\064\033\343\047\267\213\036\157\102\377\347\351 +\067\233\120\035\055\242\371\002\356\313\130\130\072\161\274\150 +\343\252\301\257\034\050\037\242\334\043\145\077\201\352\256\231 +\323\330\060\317\023\015\117\025\311\204\274\247\110\055\370\060 +\043\167\330\106\113\171\155\366\214\355\072\177\140\021\170\364 +\351\233\256\325\124\300\164\200\321\013\102\237\301 +END + +# Trust for Certificate "Global Chambersign Root - 2008" +# Issuer: CN=Global Chambersign Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Serial Number:00:c9:cd:d3:e9:d5:7d:23:ce +# Subject: CN=Global Chambersign Root - 2008,O=AC Camerfirma S.A.,serialNumber=A82743287,L=Madrid (see current address at www.camerfirma.com/address),C=EU +# Not Valid Before: Fri Aug 01 12:31:40 2008 +# Not Valid After : Sat Jul 31 12:31:40 2038 +# Fingerprint (MD5): 9E:80:FF:78:01:0C:2E:C1:36:BD:FE:96:90:6E:08:F3 +# Fingerprint (SHA1): 4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Global Chambersign Root - 2008" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\112\275\356\354\225\015\065\234\211\256\307\122\241\054\133\051 +\366\326\252\014 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\236\200\377\170\001\014\056\301\066\275\376\226\220\156\010\363 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\254\061\013\060\011\006\003\125\004\006\023\002\105\125 +\061\103\060\101\006\003\125\004\007\023\072\115\141\144\162\151 +\144\040\050\163\145\145\040\143\165\162\162\145\156\164\040\141 +\144\144\162\145\163\163\040\141\164\040\167\167\167\056\143\141 +\155\145\162\146\151\162\155\141\056\143\157\155\057\141\144\144 +\162\145\163\163\051\061\022\060\020\006\003\125\004\005\023\011 +\101\070\062\067\064\063\062\070\067\061\033\060\031\006\003\125 +\004\012\023\022\101\103\040\103\141\155\145\162\146\151\162\155 +\141\040\123\056\101\056\061\047\060\045\006\003\125\004\003\023 +\036\107\154\157\142\141\154\040\103\150\141\155\142\145\162\163 +\151\147\156\040\122\157\157\164\040\055\040\062\060\060\070 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\311\315\323\351\325\175\043\316 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Mozilla Addons" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43 +# Subject: CN=addons.mozilla.org,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 84:C5:18:67:1F:2A:1A:90:BE:E2:B1:18:4F:03:00:32 +# Fingerprint (SHA1): 30:5F:8B:D1:7A:A2:CB:C4:83:A4:C4:1B:19:A3:9A:0C:75:DA:39:D6 +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 "Bogus Mozilla Addons" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\342\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\033\060\031\006\003\125\004 +\003\023\022\141\144\144\157\156\163\056\155\157\172\151\154\154 +\141\056\157\162\147 +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\021\000\222\071\325\064\217\100\321\151\132\164\124\160\341 +\362\077\103 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\370\060\202\004\340\240\003\002\001\002\002\021\000 +\222\071\325\064\217\100\321\151\132\164\124\160\341\362\077\103 +\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\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\342\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\033\060\031\006\003\125\004\003\023\022\141\144\144\157 +\156\163\056\155\157\172\151\154\154\141\056\157\162\147\060\202 +\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\253 +\306\155\066\363\025\163\170\203\163\316\164\205\325\256\354\262 +\360\340\044\037\023\203\270\040\254\273\232\376\210\273\253\241 +\035\013\037\105\000\252\111\267\065\067\014\152\357\107\114\271 +\321\276\343\127\022\004\215\222\307\266\354\001\274\266\332\307 +\201\070\040\255\162\205\346\016\374\201\154\007\255\150\166\070 +\305\104\327\314\306\112\305\227\076\144\364\121\346\360\176\262 +\354\126\367\045\202\115\111\230\313\026\230\335\043\361\211\221 +\321\027\227\100\231\046\326\342\242\053\136\337\275\211\362\033 +\032\123\055\314\120\101\172\320\075\052\014\125\160\024\001\351 +\130\111\020\172\013\223\202\213\341\036\355\072\200\020\202\316 +\226\212\064\360\314\327\323\271\264\120\207\125\124\011\270\235 +\102\050\125\000\345\214\065\124\277\335\045\221\106\267\015\345 +\135\203\250\345\213\373\204\344\074\256\166\332\304\103\053\133 +\164\013\370\276\135\150\361\170\133\265\316\175\361\135\231\100 +\332\312\356\070\201\120\276\230\241\154\270\044\255\363\257\214 +\017\327\021\050\054\204\030\114\175\265\331\217\060\265\033\002 +\003\001\000\001\243\202\001\360\060\202\001\354\060\037\006\003 +\125\035\043\004\030\060\026\200\024\241\162\137\046\033\050\230 +\103\225\135\007\067\325\205\226\235\113\322\303\105\060\035\006 +\003\125\035\016\004\026\004\024\335\200\322\124\075\367\114\160 +\312\243\260\335\064\172\062\344\350\073\132\073\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\005\240\060\014\006\003 +\125\035\023\001\001\377\004\002\060\000\060\035\006\003\125\035 +\045\004\026\060\024\006\010\053\006\001\005\005\007\003\001\006 +\010\053\006\001\005\005\007\003\002\060\106\006\003\125\035\040 +\004\077\060\075\060\073\006\014\053\006\001\004\001\262\061\001 +\002\001\003\004\060\053\060\051\006\010\053\006\001\005\005\007 +\002\001\026\035\150\164\164\160\163\072\057\057\163\145\143\165 +\162\145\056\143\157\155\157\144\157\056\143\157\155\057\103\120 +\123\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\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\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\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\161 +\006\010\053\006\001\005\005\007\001\001\004\145\060\143\060\073 +\006\010\053\006\001\005\005\007\060\002\206\057\150\164\164\160 +\072\057\057\143\162\164\056\143\157\155\157\144\157\143\141\056 +\143\157\155\057\125\124\116\101\144\144\124\162\165\163\164\123 +\145\162\166\145\162\103\101\056\143\162\164\060\044\006\010\053 +\006\001\005\005\007\060\001\206\030\150\164\164\160\072\057\057 +\157\143\163\160\056\143\157\155\157\144\157\143\141\056\143\157 +\155\060\065\006\003\125\035\021\004\056\060\054\202\022\141\144 +\144\157\156\163\056\155\157\172\151\154\154\141\056\157\162\147 +\202\026\167\167\167\056\141\144\144\157\156\163\056\155\157\172 +\151\154\154\141\056\157\162\147\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\001\001\000\063\073\143\025 +\374\261\354\024\054\223\335\165\224\336\201\132\331\116\231\276 +\373\112\244\071\125\115\241\100\172\336\023\052\207\251\067\317 +\350\325\373\255\321\173\155\157\214\040\207\202\124\346\127\111 +\274\040\050\204\315\326\001\331\223\213\027\156\043\146\345\204 +\310\200\077\306\241\160\200\344\354\115\035\371\374\221\132\163 +\142\051\232\367\040\034\141\340\213\071\237\312\274\176\215\335 +\274\331\261\343\237\236\337\025\123\221\041\122\013\331\032\043 +\017\146\066\333\254\223\226\112\243\245\042\317\051\367\242\231 +\250\366\266\331\100\256\331\176\266\366\130\056\233\254\066\312 +\144\217\145\122\334\206\234\202\253\156\120\113\332\137\372\005 +\000\210\060\016\336\215\126\277\201\107\215\075\006\342\262\142 +\222\147\217\236\310\232\262\345\006\270\160\044\270\167\174\043 +\012\070\303\171\010\330\261\121\235\254\225\021\307\100\027\236 +\243\034\217\362\021\247\150\047\332\111\005\204\030\174\130\055 +\001\147\134\345\237\241\051\273\112\071\105\057\277\021\252\171 +\242\355\264\324\265\145\103\267\223\106\212\323 +END + +# Trust for Certificate "Bogus Mozilla Addons" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43 +# Subject: CN=addons.mozilla.org,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 84:C5:18:67:1F:2A:1A:90:BE:E2:B1:18:4F:03:00:32 +# Fingerprint (SHA1): 30:5F:8B:D1:7A:A2:CB:C4:83:A4:C4:1B:19:A3:9A:0C:75:DA:39:D6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Mozilla Addons" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\060\137\213\321\172\242\313\304\203\244\304\033\031\243\232\014 +\165\332\071\326 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\204\305\030\147\037\052\032\220\276\342\261\030\117\003\000\062 +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\021\000\222\071\325\064\217\100\321\151\132\164\124\160\341 +\362\077\103 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Global Trustee" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0 +# Subject: CN=global trustee,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Global Trustee,O=Global Trustee,STREET=Sea Village 10,L=Tampa,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): FE:0D:01:6E:71:CB:8C:D8:3F:0E:0C:CD:49:35:B8:57 +# Fingerprint (SHA1): 61:79:3F:CB:FA:4F:90:08:30:9B:BA:5F:F1:2D:2C:B2:9C:D4:15:1A +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 "Bogus Global Trustee" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\343\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\016\060\014\006\003\125\004\007\023\005\124\141\155 +\160\141\061\027\060\025\006\003\125\004\011\023\016\123\145\141 +\040\126\151\154\154\141\147\145\040\061\060\061\027\060\025\006 +\003\125\004\012\023\016\107\154\157\142\141\154\040\124\162\165 +\163\164\145\145\061\027\060\025\006\003\125\004\013\023\016\107 +\154\157\142\141\154\040\124\162\165\163\164\145\145\061\050\060 +\046\006\003\125\004\013\023\037\110\157\163\164\145\144\040\142 +\171\040\107\124\111\040\107\162\157\165\160\040\103\157\162\160 +\157\162\141\164\151\157\156\061\024\060\022\006\003\125\004\013 +\023\013\120\154\141\164\151\156\165\155\123\123\114\061\027\060 +\025\006\003\125\004\003\023\016\147\154\157\142\141\154\040\164 +\162\165\163\164\145\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\021\000\330\363\137\116\267\207\053\055\253\006\222\343\025 +\070\057\260 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\335\060\202\005\305\240\003\002\001\002\002\021\000 +\330\363\137\116\267\207\053\055\253\006\222\343\025\070\057\260 +\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\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\343\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\016\060\014\006 +\003\125\004\007\023\005\124\141\155\160\141\061\027\060\025\006 +\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141\147 +\145\040\061\060\061\027\060\025\006\003\125\004\012\023\016\107 +\154\157\142\141\154\040\124\162\165\163\164\145\145\061\027\060 +\025\006\003\125\004\013\023\016\107\154\157\142\141\154\040\124 +\162\165\163\164\145\145\061\050\060\046\006\003\125\004\013\023 +\037\110\157\163\164\145\144\040\142\171\040\107\124\111\040\107 +\162\157\165\160\040\103\157\162\160\157\162\141\164\151\157\156 +\061\024\060\022\006\003\125\004\013\023\013\120\154\141\164\151 +\156\165\155\123\123\114\061\027\060\025\006\003\125\004\003\023 +\016\147\154\157\142\141\154\040\164\162\165\163\164\145\145\060 +\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000 +\331\164\362\252\101\035\337\365\302\026\103\111\134\051\277\266 +\211\164\051\274\234\215\014\106\117\131\176\262\101\027\146\064 +\014\145\211\341\154\045\343\206\012\236\042\105\042\214\335\235 +\346\243\225\336\334\210\002\125\134\343\133\221\165\353\046\151 +\143\271\056\306\312\056\047\337\210\272\002\040\156\376\271\013 +\051\327\247\326\327\110\032\034\316\335\037\251\047\016\142\117 +\241\226\036\335\124\072\064\143\112\166\365\167\175\131\147\330 +\020\324\265\017\072\103\042\230\333\364\011\304\012\160\316\335 +\220\324\057\357\164\023\303\315\302\211\071\142\025\235\346\164 +\250\350\233\360\143\156\234\211\266\016\255\233\367\314\202\350 +\350\055\270\013\332\042\354\111\205\007\210\231\230\077\364\164 +\251\011\367\201\174\227\013\131\231\030\162\213\333\224\202\053 +\247\350\252\153\227\277\210\176\165\260\213\105\105\014\307\250 +\011\352\033\101\130\060\073\137\170\145\025\064\322\344\074\064 +\015\035\330\144\074\212\245\126\111\231\050\055\113\362\317\315 +\331\156\111\144\233\251\171\220\167\125\251\010\033\255\032\164 +\236\340\003\223\012\011\267\255\247\264\134\357\203\154\267\232 +\264\306\150\100\200\035\102\321\156\171\233\251\031\041\232\234 +\371\206\055\000\321\064\376\340\266\371\125\266\365\046\305\225 +\026\245\174\163\237\012\051\211\254\072\230\367\233\164\147\267 +\220\267\135\011\043\152\152\355\054\020\356\123\012\020\360\026 +\037\127\263\261\015\171\221\031\260\353\315\060\077\240\024\137 +\263\306\375\134\063\247\260\377\230\260\125\214\271\245\362\157 +\107\044\111\041\151\314\102\242\121\000\100\205\214\202\202\253 +\062\245\313\232\334\320\331\030\015\337\031\364\257\203\015\301 +\076\061\333\044\110\266\165\200\241\341\311\167\144\036\247\345 +\213\177\025\115\113\247\302\320\355\171\225\136\221\061\354\030 +\377\116\237\110\024\352\165\272\041\316\051\166\351\037\116\121 +\207\056\263\314\004\140\272\043\037\037\145\262\012\270\325\156 +\217\113\102\211\107\251\201\220\133\053\262\266\256\346\240\160 +\173\170\220\012\172\305\345\347\305\373\012\366\057\151\214\214 +\037\127\340\006\231\377\021\325\122\062\040\227\047\230\356\145 +\002\003\001\000\001\243\202\001\324\060\202\001\320\060\037\006 +\003\125\035\043\004\030\060\026\200\024\241\162\137\046\033\050 +\230\103\225\135\007\067\325\205\226\235\113\322\303\105\060\035 +\006\003\125\035\016\004\026\004\024\267\303\336\032\103\355\101 +\227\251\217\051\170\234\003\271\254\100\102\000\254\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\005\240\060\014\006 +\003\125\035\023\001\001\377\004\002\060\000\060\035\006\003\125 +\035\045\004\026\060\024\006\010\053\006\001\005\005\007\003\001 +\006\010\053\006\001\005\005\007\003\002\060\106\006\003\125\035 +\040\004\077\060\075\060\073\006\014\053\006\001\004\001\262\061 +\001\002\001\003\004\060\053\060\051\006\010\053\006\001\005\005 +\007\002\001\026\035\150\164\164\160\163\072\057\057\163\145\143 +\165\162\145\056\143\157\155\157\144\157\056\143\157\155\057\103 +\120\123\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\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\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\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 +\161\006\010\053\006\001\005\005\007\001\001\004\145\060\143\060 +\073\006\010\053\006\001\005\005\007\060\002\206\057\150\164\164 +\160\072\057\057\143\162\164\056\143\157\155\157\144\157\143\141 +\056\143\157\155\057\125\124\116\101\144\144\124\162\165\163\164 +\123\145\162\166\145\162\103\101\056\143\162\164\060\044\006\010 +\053\006\001\005\005\007\060\001\206\030\150\164\164\160\072\057 +\057\157\143\163\160\056\143\157\155\157\144\157\143\141\056\143 +\157\155\060\031\006\003\125\035\021\004\022\060\020\202\016\147 +\154\157\142\141\154\040\164\162\165\163\164\145\145\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\217\272\165\272\071\324\046\323\160\017\304\263\002\247\305 +\022\043\161\311\376\143\351\243\142\170\044\104\117\324\271\021 +\076\037\307\050\347\125\153\356\364\341\000\221\206\212\311\011 +\153\237\056\244\105\071\321\141\142\136\223\245\005\105\170\237 +\140\022\054\364\154\145\145\015\314\106\064\213\050\272\240\306 +\364\231\161\144\363\042\166\254\117\363\142\311\247\063\132\007 +\037\075\311\206\200\334\333\004\057\207\047\350\277\110\104\201 +\300\360\111\043\156\037\345\344\003\206\044\023\242\205\142\174 +\130\004\312\346\215\023\162\012\272\126\104\242\017\274\373\240 +\075\015\052\177\373\236\251\011\075\267\132\324\212\215\341\045 +\350\244\011\204\160\255\022\104\271\317\271\063\172\272\134\346 +\113\246\273\005\006\230\377\362\230\122\173\167\200\047\112\331 +\342\372\271\122\324\373\373\346\326\055\236\217\301\025\104\215 +\233\164\057\356\224\132\116\323\304\213\212\254\103\235\163\366 +\256\014\207\211\255\207\311\311\307\335\272\024\140\172\370\265 +\065\235\302\215\306\226\201\015\251\122\212\051\100\004\351\031 +\264 +END + +# Trust for Certificate "Bogus Global Trustee" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0 +# Subject: CN=global trustee,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Global Trustee,O=Global Trustee,STREET=Sea Village 10,L=Tampa,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): FE:0D:01:6E:71:CB:8C:D8:3F:0E:0C:CD:49:35:B8:57 +# Fingerprint (SHA1): 61:79:3F:CB:FA:4F:90:08:30:9B:BA:5F:F1:2D:2C:B2:9C:D4:15:1A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Global Trustee" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\141\171\077\313\372\117\220\010\060\233\272\137\361\055\054\262 +\234\324\025\032 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\376\015\001\156\161\313\214\330\077\016\014\315\111\065\270\127 +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\021\000\330\363\137\116\267\207\053\055\253\006\222\343\025 +\070\057\260 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus GMail" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e +# Subject: CN=mail.google.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 4C:77:1F:EB:CA:31:C1:29:98:E9:2C:10:B3:AF:49:1C +# Fingerprint (SHA1): 64:31:72:30:36:FD:26:DE:A5:02:79:2F:A5:95:92:24:93:03:0F:97 +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 "Bogus GMail" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\155\141\151\154\056\147\157\157\147\154\145\056\143 +\157\155 +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\004\176\313\351\374\245\137\173\320\236\256\066\341\014 +\256\036 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\356\060\202\004\326\240\003\002\001\002\002\020\004 +\176\313\351\374\245\137\173\320\236\256\066\341\014\256\036\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\061\061\060\063 +\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063\061 +\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125\004 +\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125\004 +\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006\003 +\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060\025 +\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141 +\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023\013 +\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021\006 +\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164\056 +\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164\145 +\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040\103 +\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006\003 +\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123\114 +\061\030\060\026\006\003\125\004\003\023\017\155\141\151\154\056 +\147\157\157\147\154\145\056\143\157\155\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\260\163\360\362\004 +\356\302\242\106\312\064\052\252\273\140\043\321\021\166\037\037 +\072\320\145\203\116\232\105\250\103\160\205\166\360\037\207\000 +\002\037\156\073\027\027\304\265\351\031\106\242\222\045\215\142 +\052\264\143\060\037\271\205\370\065\341\026\132\166\111\314\120 +\110\123\071\131\211\326\204\002\373\232\354\033\307\121\325\166 +\225\220\324\072\052\270\246\336\002\115\006\373\315\355\245\106 +\101\137\125\164\345\354\176\100\334\120\234\265\344\065\135\036 +\150\040\370\351\336\243\152\050\277\101\322\241\263\342\045\215 +\014\033\312\075\223\014\030\256\337\305\274\375\274\202\272\150 +\000\327\026\062\161\237\145\265\021\332\150\131\320\246\127\144 +\033\311\376\230\345\365\245\145\352\341\333\356\364\263\235\263 +\216\352\207\256\026\322\036\240\174\174\151\077\051\026\205\001 +\123\247\154\361\140\253\335\242\374\045\107\324\062\321\022\335 +\367\110\022\340\374\234\242\167\230\351\211\231\270\370\070\361 +\214\006\302\172\043\066\155\233\235\315\060\310\307\064\027\036 +\273\175\102\310\253\347\025\026\366\163\265\002\003\001\000\001 +\243\202\001\352\060\202\001\346\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\030\052\242\310\324\172\077\173\255\004\213\275 +\157\236\020\106\023\170\161\235\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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 +\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\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\057\006 +\003\125\035\021\004\050\060\046\202\017\155\141\151\154\056\147 +\157\157\147\154\145\056\143\157\155\202\023\167\167\167\056\155 +\141\151\154\056\147\157\157\147\154\145\056\143\157\155\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\147\006\010\012\047\305\223\156\002\362\336\027\077\320 +\323\033\174\377\265\315\172\307\167\307\276\337\022\312\031\336 +\260\023\127\014\003\221\304\171\122\317\177\267\136\125\040\204 +\111\335\365\320\051\057\016\004\332\131\236\016\023\237\364\300 +\062\233\377\241\021\044\052\227\243\362\077\075\052\153\250\255 +\214\031\165\225\016\035\045\375\117\304\172\025\303\035\307\023 +\100\310\015\276\227\140\162\246\376\045\276\217\354\325\246\206 +\303\041\134\131\122\331\152\013\134\237\113\336\265\371\354\342 +\364\305\314\142\123\166\211\145\344\051\332\267\277\226\340\140 +\215\015\267\011\125\326\100\125\035\301\362\226\041\165\257\211 +\206\037\135\201\227\051\050\036\051\327\226\301\040\003\062\173 +\000\073\152\067\027\132\243\263\032\157\062\073\156\361\243\135 +\253\253\314\052\313\060\014\037\065\043\213\151\104\134\352\254 +\050\140\355\253\153\143\236\366\222\274\275\232\132\046\114\305 +\230\270\016\031\076\374\005\061\343\026\331\375\220\005\003\206 +\306\127\001\037\177\170\240\317\063\152\252\146\153\042\320\247 +\111\043 +END + +# Trust for Certificate "Bogus GMail" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e +# Subject: CN=mail.google.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 4C:77:1F:EB:CA:31:C1:29:98:E9:2C:10:B3:AF:49:1C +# Fingerprint (SHA1): 64:31:72:30:36:FD:26:DE:A5:02:79:2F:A5:95:92:24:93:03:0F:97 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus GMail" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\144\061\162\060\066\375\046\336\245\002\171\057\245\225\222\044 +\223\003\017\227 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\114\167\037\353\312\061\301\051\230\351\054\020\263\257\111\034 +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\004\176\313\351\374\245\137\173\320\236\256\066\341\014 +\256\036 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Google" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06 +# Subject: CN=www.google.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 01:73:A9:58:F0:BC:C9:BE:94:2B:1A:4C:98:24:E3:B8 +# Fingerprint (SHA1): 19:16:A2:AF:34:6D:39:9F:50:31:3C:39:32:00:F1:41:40:45:66:16 +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 "Bogus Google" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\336\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\027\060\025\006\003\125\004 +\003\023\016\167\167\167\056\147\157\157\147\154\145\056\143\157 +\155 +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\021\000\365\310\152\363\141\142\361\072\144\365\117\155\311 +\130\174\006 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\344\060\202\004\314\240\003\002\001\002\002\021\000 +\365\310\152\363\141\142\361\072\144\365\117\155\311\130\174\006 +\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\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\336\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\027\060\025\006\003\125\004\003\023\016\167\167\167\056 +\147\157\157\147\154\145\056\143\157\155\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\260\163\360\362\004 +\356\302\242\106\312\064\052\252\273\140\043\321\021\166\037\037 +\072\320\145\203\116\232\105\250\103\160\205\166\360\037\207\000 +\002\037\156\073\027\027\304\265\351\031\106\242\222\045\215\142 +\052\264\143\060\037\271\205\370\065\341\026\132\166\111\314\120 +\110\123\071\131\211\326\204\002\373\232\354\033\307\121\325\166 +\225\220\324\072\052\270\246\336\002\115\006\373\315\355\245\106 +\101\137\125\164\345\354\176\100\334\120\234\265\344\065\135\036 +\150\040\370\351\336\243\152\050\277\101\322\241\263\342\045\215 +\014\033\312\075\223\014\030\256\337\305\274\375\274\202\272\150 +\000\327\026\062\161\237\145\265\021\332\150\131\320\246\127\144 +\033\311\376\230\345\365\245\145\352\341\333\356\364\263\235\263 +\216\352\207\256\026\322\036\240\174\174\151\077\051\026\205\001 +\123\247\154\361\140\253\335\242\374\045\107\324\062\321\022\335 +\367\110\022\340\374\234\242\167\230\351\211\231\270\370\070\361 +\214\006\302\172\043\066\155\233\235\315\060\310\307\064\027\036 +\273\175\102\310\253\347\025\026\366\163\265\002\003\001\000\001 +\243\202\001\340\060\202\001\334\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\030\052\242\310\324\172\077\173\255\004\213\275 +\157\236\020\106\023\170\161\235\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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 +\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\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\045\006 +\003\125\035\021\004\036\060\034\202\016\167\167\167\056\147\157 +\157\147\154\145\056\143\157\155\202\012\147\157\157\147\154\145 +\056\143\157\155\060\015\006\011\052\206\110\206\367\015\001\001 +\005\005\000\003\202\001\001\000\161\300\231\077\136\366\275\063 +\377\236\026\313\250\277\335\160\371\322\123\073\066\256\311\027 +\310\256\136\115\335\142\367\267\323\076\167\243\376\300\173\062 +\265\311\224\005\122\120\362\137\075\171\204\111\117\135\154\260 +\327\131\275\324\154\210\372\374\305\145\206\353\050\122\242\102 +\366\174\274\152\307\007\056\045\321\220\142\040\306\215\121\302 +\054\105\071\116\003\332\367\030\350\314\012\072\331\105\330\154 +\156\064\213\142\234\116\025\371\103\356\345\227\300\077\255\065 +\023\305\053\006\307\101\375\342\367\176\105\255\233\321\341\146 +\355\370\172\113\224\071\172\057\353\350\077\103\330\065\326\126 +\372\164\347\155\346\355\254\145\204\376\320\115\006\022\336\332 +\131\000\074\011\134\317\210\113\350\075\264\025\041\222\314\155 +\246\121\342\216\227\361\364\202\106\313\304\123\136\332\134\235 +\145\222\001\145\211\000\345\266\231\377\046\100\361\057\031\061 +\010\032\261\147\125\206\015\256\065\063\206\274\227\110\222\327 +\226\140\370\316\374\226\353\207\304\163\314\224\233\130\133\363 +\172\244\047\023\326\117\364\151 +END + +# Trust for Certificate "Bogus Google" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06 +# Subject: CN=www.google.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 01:73:A9:58:F0:BC:C9:BE:94:2B:1A:4C:98:24:E3:B8 +# Fingerprint (SHA1): 19:16:A2:AF:34:6D:39:9F:50:31:3C:39:32:00:F1:41:40:45:66:16 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Google" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\031\026\242\257\064\155\071\237\120\061\074\071\062\000\361\101 +\100\105\146\026 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\001\163\251\130\360\274\311\276\224\053\032\114\230\044\343\270 +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\021\000\365\310\152\363\141\142\361\072\144\365\117\155\311 +\130\174\006 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Skype" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47 +# Subject: CN=login.skype.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 85:A4:B4:C4:69:21:DF:A1:6A:0D:58:56:58:4B:33:44 +# Fingerprint (SHA1): 47:1C:94:9A:81:43:DB:5A:D5:CD:F1:C9:72:86:4A:25:04:FA:23:C9 +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 "Bogus Skype" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\163\153\171\160\145\056\143 +\157\155 +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\021\000\351\002\213\225\170\344\025\334\032\161\012\053\210 +\025\104\107 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\357\060\202\004\327\240\003\002\001\002\002\021\000 +\351\002\213\225\170\344\025\334\032\161\012\053\210\025\104\107 +\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\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151 +\156\056\163\153\171\160\145\056\143\157\155\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\260\170\231\206 +\016\242\163\043\324\132\303\111\353\261\066\214\174\312\204\256 +\074\257\070\210\050\231\215\055\130\023\261\227\170\076\122\040 +\147\254\133\163\230\154\062\125\311\160\321\331\252\025\350\056 +\046\205\201\274\126\344\274\200\143\333\116\327\365\002\276\121 +\143\036\074\333\337\327\000\135\132\271\345\173\152\352\070\040 +\262\073\266\356\165\124\204\371\246\312\070\160\335\277\260\377 +\245\205\135\264\101\376\335\075\331\052\341\060\103\032\230\171 +\223\240\137\340\147\154\225\372\076\172\256\161\173\343\155\210 +\102\077\045\324\356\276\150\150\254\255\254\140\340\040\243\071 +\203\271\133\050\243\223\155\241\275\166\012\343\353\256\207\047 +\016\124\217\264\110\014\232\124\364\135\216\067\120\334\136\244 +\213\153\113\334\246\363\064\276\167\131\042\210\377\031\053\155 +\166\144\163\332\014\207\007\053\232\067\072\320\342\214\366\066 +\062\153\232\171\314\322\073\223\157\032\115\154\346\301\235\100 +\254\055\164\303\276\352\134\163\145\001\051\261\052\277\160\131 +\301\316\306\303\242\310\105\137\272\147\075\017\002\003\001\000 +\001\243\202\001\352\060\202\001\346\060\037\006\003\125\035\043 +\004\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135 +\007\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035 +\016\004\026\004\024\325\216\132\121\023\264\051\015\061\266\034 +\215\076\121\121\061\012\063\252\201\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023 +\001\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026 +\060\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006 +\001\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060 +\075\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003 +\004\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026 +\035\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056 +\143\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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\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\161\006\010\053 +\006\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053 +\006\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057 +\143\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155 +\057\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166 +\145\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005 +\005\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163 +\160\056\143\157\155\157\144\157\143\141\056\143\157\155\060\057 +\006\003\125\035\021\004\050\060\046\202\017\154\157\147\151\156 +\056\163\153\171\160\145\056\143\157\155\202\023\167\167\167\056 +\154\157\147\151\156\056\163\153\171\160\145\056\143\157\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\010\362\201\165\221\273\316\022\004\030\302\115\132 +\373\106\220\012\124\104\364\362\335\007\201\360\037\246\172\157 +\237\317\270\016\054\117\234\304\232\365\250\366\272\244\311\172 +\135\261\342\132\312\074\372\140\250\150\076\313\272\055\342\315 +\326\266\344\222\074\151\255\127\352\250\057\070\020\204\162\345 +\150\161\355\276\353\156\030\357\143\172\276\347\044\377\300\143 +\375\130\073\114\201\222\330\051\253\216\065\135\327\323\011\153 +\205\323\325\163\005\104\342\345\273\203\123\020\313\362\317\267 +\156\341\151\267\241\222\144\305\317\315\202\273\066\240\070\255 +\327\044\337\123\374\077\142\267\267\325\307\127\343\223\061\160 +\216\044\211\206\312\143\053\071\272\135\331\152\140\354\241\116 +\212\376\123\370\136\222\337\057\134\046\027\155\003\175\002\017 +\017\252\103\147\155\260\142\277\176\123\335\314\354\170\163\225 +\345\245\366\000\243\004\375\077\004\052\263\230\305\267\003\034 +\333\311\120\253\260\005\035\036\276\126\264\317\076\102\023\224 +\236\371\347\001\201\245\170\157\014\172\166\254\005\206\354\254 +\302\021\254 +END + +# Trust for Certificate "Bogus Skype" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47 +# Subject: CN=login.skype.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 85:A4:B4:C4:69:21:DF:A1:6A:0D:58:56:58:4B:33:44 +# Fingerprint (SHA1): 47:1C:94:9A:81:43:DB:5A:D5:CD:F1:C9:72:86:4A:25:04:FA:23:C9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Skype" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\107\034\224\232\201\103\333\132\325\315\361\311\162\206\112\045 +\004\372\043\311 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\205\244\264\304\151\041\337\241\152\015\130\126\130\113\063\104 +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\021\000\351\002\213\225\170\344\025\334\032\161\012\053\210 +\025\104\107 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Yahoo 1" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3 +# Subject: CN=login.yahoo.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 0C:1F:BE:D3:FC:09:6E:E6:6E:C2:66:39:75:86:6B:EB +# Fingerprint (SHA1): 63:FE:AE:96:0B:AA:91:E3:43:CE:2B:D8:B7:17:98:C7:6B:DB:77:D0 +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 "Bogus Yahoo 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\171\141\150\157\157\056\143 +\157\155 +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\021\000\327\125\217\332\365\361\020\133\262\023\050\053\160 +\167\051\243 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\357\060\202\004\327\240\003\002\001\002\002\021\000 +\327\125\217\332\365\361\020\133\262\023\050\053\160\167\051\243 +\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\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151 +\156\056\171\141\150\157\157\056\143\157\155\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\241\244\005\075 +\355\205\105\223\212\030\115\306\003\000\127\342\100\167\360\034 +\353\320\031\337\042\135\010\177\321\007\074\101\211\106\027\243 +\011\372\374\370\251\004\321\226\217\253\327\117\074\371\255\030 +\251\164\201\304\127\012\072\046\026\316\142\076\274\077\154\041 +\356\223\215\313\015\240\037\232\226\320\217\255\365\223\223\202 +\356\162\014\241\165\025\243\173\204\126\270\255\377\122\021\161 +\204\274\072\060\013\176\230\250\341\250\077\067\122\320\361\174 +\157\220\330\105\012\254\071\162\152\141\325\273\303\214\371\302 +\314\337\375\072\161\271\257\274\334\072\334\014\266\261\322\321 +\211\273\101\266\362\336\127\325\025\337\374\375\342\061\305\337 +\312\301\330\217\054\277\360\016\133\161\340\064\161\303\305\115 +\175\172\324\372\355\060\113\057\352\266\056\236\223\074\342\072 +\370\102\242\032\356\334\337\315\017\251\366\171\204\032\216\154 +\002\266\206\345\277\121\152\146\370\363\234\323\131\014\173\245 +\231\170\315\174\231\372\306\226\107\330\062\324\164\166\016\167 +\113\040\164\244\267\211\165\222\112\264\133\125\002\003\001\000 +\001\243\202\001\352\060\202\001\346\060\037\006\003\125\035\043 +\004\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135 +\007\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035 +\016\004\026\004\024\206\111\105\374\063\031\063\324\004\355\047 +\141\356\350\001\311\014\177\057\176\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023 +\001\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026 +\060\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006 +\001\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060 +\075\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003 +\004\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026 +\035\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056 +\143\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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\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\161\006\010\053 +\006\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053 +\006\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057 +\143\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155 +\057\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166 +\145\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005 +\005\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163 +\160\056\143\157\155\157\144\157\143\141\056\143\157\155\060\057 +\006\003\125\035\021\004\050\060\046\202\017\154\157\147\151\156 +\056\171\141\150\157\157\056\143\157\155\202\023\167\167\167\056 +\154\157\147\151\156\056\171\141\150\157\157\056\143\157\155\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202 +\001\001\000\075\127\311\110\044\134\356\144\201\365\256\276\125 +\051\026\377\052\057\204\355\331\370\243\003\310\060\146\273\310 +\324\201\055\041\367\010\367\254\226\102\232\101\165\172\272\135 +\020\043\313\222\102\141\372\212\332\155\145\064\031\345\251\326 +\055\023\170\327\201\104\222\251\156\200\143\025\313\376\065\037 +\002\321\212\024\260\250\314\224\040\073\250\032\360\135\066\120 +\333\015\256\351\144\344\366\215\151\175\060\310\024\027\000\112 +\345\246\065\373\175\015\042\235\171\166\122\054\274\227\006\210 +\232\025\364\163\346\361\365\230\245\315\007\104\221\270\247\150 +\147\105\322\162\021\140\342\161\267\120\125\342\212\251\015\326 +\222\356\004\052\213\060\240\242\005\106\064\155\222\306\073\252 +\115\240\320\253\001\031\012\062\267\350\343\317\361\322\227\111 +\173\254\244\227\367\360\127\256\143\167\232\177\226\332\115\375 +\276\334\007\066\343\045\275\211\171\216\051\022\023\213\210\007 +\373\153\333\244\315\263\055\047\351\324\312\140\327\205\123\373 +\164\306\134\065\214\160\037\371\262\267\222\047\040\307\224\325 +\147\024\060 +END + +# Trust for Certificate "Bogus Yahoo 1" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3 +# Subject: CN=login.yahoo.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 0C:1F:BE:D3:FC:09:6E:E6:6E:C2:66:39:75:86:6B:EB +# Fingerprint (SHA1): 63:FE:AE:96:0B:AA:91:E3:43:CE:2B:D8:B7:17:98:C7:6B:DB:77:D0 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\143\376\256\226\013\252\221\343\103\316\053\330\267\027\230\307 +\153\333\167\320 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\014\037\276\323\374\011\156\346\156\302\146\071\165\206\153\353 +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\021\000\327\125\217\332\365\361\020\133\262\023\050\053\160 +\167\051\243 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Yahoo 2" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29 +# Subject: CN=login.yahoo.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 72:DC:C8:72:6C:53:3B:B2:FD:CC:5D:19:BD:AF:A6:31 +# Fingerprint (SHA1): D0:18:B6:2D:C5:18:90:72:47:DF:50:92:5B:B0:9A:CF:4A:5C:B3:AD +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 "Bogus Yahoo 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\171\141\150\157\157\056\143 +\157\155 +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\071\052\103\117\016\007\337\037\212\243\005\336\064\340 +\302\051 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\004\301\240\003\002\001\002\002\020\071 +\052\103\117\016\007\337\037\212\243\005\336\064\340\302\051\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\061\061\060\063 +\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063\061 +\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125\004 +\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125\004 +\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006\003 +\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060\025 +\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141 +\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023\013 +\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021\006 +\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164\056 +\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164\145 +\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040\103 +\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006\003 +\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123\114 +\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151\156 +\056\171\141\150\157\157\056\143\157\155\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\241\244\005\075\355 +\205\105\223\212\030\115\306\003\000\127\342\100\167\360\034\353 +\320\031\337\042\135\010\177\321\007\074\101\211\106\027\243\011 +\372\374\370\251\004\321\226\217\253\327\117\074\371\255\030\251 +\164\201\304\127\012\072\046\026\316\142\076\274\077\154\041\356 +\223\215\313\015\240\037\232\226\320\217\255\365\223\223\202\356 +\162\014\241\165\025\243\173\204\126\270\255\377\122\021\161\204 +\274\072\060\013\176\230\250\341\250\077\067\122\320\361\174\157 +\220\330\105\012\254\071\162\152\141\325\273\303\214\371\302\314 +\337\375\072\161\271\257\274\334\072\334\014\266\261\322\321\211 +\273\101\266\362\336\127\325\025\337\374\375\342\061\305\337\312 +\301\330\217\054\277\360\016\133\161\340\064\161\303\305\115\175 +\172\324\372\355\060\113\057\352\266\056\236\223\074\342\072\370 +\102\242\032\356\334\337\315\017\251\366\171\204\032\216\154\002 +\266\206\345\277\121\152\146\370\363\234\323\131\014\173\245\231 +\170\315\174\231\372\306\226\107\330\062\324\164\166\016\167\113 +\040\164\244\267\211\165\222\112\264\133\125\002\003\001\000\001 +\243\202\001\325\060\202\001\321\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\206\111\105\374\063\031\063\324\004\355\047\141 +\356\350\001\311\014\177\057\176\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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 +\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\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\032\006 +\003\125\035\021\004\023\060\021\202\017\154\157\147\151\156\056 +\171\141\150\157\157\056\143\157\155\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\127\142\341 +\167\353\374\037\277\210\123\257\130\323\324\326\155\147\060\027 +\100\276\340\037\144\336\207\025\314\340\244\126\251\321\237\371 +\001\376\002\261\261\352\342\137\356\161\026\061\371\010\325\302 +\327\232\233\262\132\070\327\251\177\351\207\153\061\371\013\254 +\331\375\120\161\340\333\202\222\017\201\234\215\167\351\353\056 +\352\324\043\101\207\354\055\262\170\263\216\261\147\322\356\161 +\003\010\022\231\263\002\051\157\336\213\336\301\251\003\012\132 +\063\034\075\021\003\306\110\014\230\234\025\056\331\246\205\122 +\347\005\212\256\060\043\353\355\050\154\140\351\055\177\217\107 +\213\057\320\334\346\273\017\176\137\362\110\201\216\120\004\143 +\261\121\200\165\232\251\266\020\034\020\137\157\030\157\340\016 +\226\105\316\356\361\265\040\333\357\332\156\310\225\343\366\105 +\375\312\374\245\137\111\155\006\036\322\336\141\075\025\175\067 +\345\034\065\216\006\302\153\367\264\250\050\054\061\313\252\264 +\247\227\117\235\212\366\257\176\067\271\173\075\337\222\146\213 +\217\116\235\306\066\347\134\246\253\022\017\326\317 +END + +# Trust for Certificate "Bogus Yahoo 2" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29 +# Subject: CN=login.yahoo.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 72:DC:C8:72:6C:53:3B:B2:FD:CC:5D:19:BD:AF:A6:31 +# Fingerprint (SHA1): D0:18:B6:2D:C5:18:90:72:47:DF:50:92:5B:B0:9A:CF:4A:5C:B3:AD +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\320\030\266\055\305\030\220\162\107\337\120\222\133\260\232\317 +\112\134\263\255 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\162\334\310\162\154\123\073\262\375\314\135\031\275\257\246\061 +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\071\052\103\117\016\007\337\037\212\243\005\336\064\340 +\302\051 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus Yahoo 3" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71 +# Subject: CN=login.yahoo.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 4A:DC:3C:67:ED:21:CD:5B:CE:5D:C8:11:E4:9E:CF:3D +# Fingerprint (SHA1): 80:96:2A:E4:D6:C5:B4:42:89:4E:95:A1:3E:4A:69:9E:07:D6:94:CF +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 "Bogus Yahoo 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\337\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\030\060\026\006\003\125\004 +\003\023\017\154\157\147\151\156\056\171\141\150\157\157\056\143 +\157\155 +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\076\165\316\324\153\151\060\041\041\210\060\256\206\250 +\052\161 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\004\301\240\003\002\001\002\002\020\076 +\165\316\324\153\151\060\041\041\210\060\256\206\250\052\161\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\061\061\060\063 +\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063\061 +\064\062\063\065\071\065\071\132\060\201\337\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125\004 +\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125\004 +\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006\003 +\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060\025 +\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154\141 +\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023\013 +\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021\006 +\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164\056 +\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164\145 +\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040\103 +\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006\003 +\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123\114 +\061\030\060\026\006\003\125\004\003\023\017\154\157\147\151\156 +\056\171\141\150\157\157\056\143\157\155\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\241\244\005\075\355 +\205\105\223\212\030\115\306\003\000\127\342\100\167\360\034\353 +\320\031\337\042\135\010\177\321\007\074\101\211\106\027\243\011 +\372\374\370\251\004\321\226\217\253\327\117\074\371\255\030\251 +\164\201\304\127\012\072\046\026\316\142\076\274\077\154\041\356 +\223\215\313\015\240\037\232\226\320\217\255\365\223\223\202\356 +\162\014\241\165\025\243\173\204\126\270\255\377\122\021\161\204 +\274\072\060\013\176\230\250\341\250\077\067\122\320\361\174\157 +\220\330\105\012\254\071\162\152\141\325\273\303\214\371\302\314 +\337\375\072\161\271\257\274\334\072\334\014\266\261\322\321\211 +\273\101\266\362\336\127\325\025\337\374\375\342\061\305\337\312 +\301\330\217\054\277\360\016\133\161\340\064\161\303\305\115\175 +\172\324\372\355\060\113\057\352\266\056\236\223\074\342\072\370 +\102\242\032\356\334\337\315\017\251\366\171\204\032\216\154\002 +\266\206\345\277\121\152\146\370\363\234\323\131\014\173\245\231 +\170\315\174\231\372\306\226\107\330\062\324\164\166\016\167\113 +\040\164\244\267\211\165\222\112\264\133\125\002\003\001\000\001 +\243\202\001\325\060\202\001\321\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\206\111\105\374\063\031\063\324\004\355\047\141 +\356\350\001\311\014\177\057\176\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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 +\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\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\032\006 +\003\125\035\021\004\023\060\021\202\017\154\157\147\151\156\056 +\171\141\150\157\157\056\143\157\155\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\123\151\230 +\216\050\116\234\053\133\035\314\153\167\050\075\273\372\245\116 +\176\126\051\244\352\020\342\364\346\055\006\321\204\333\043\316 +\227\363\150\266\017\072\336\025\013\044\035\221\343\154\056\060 +\267\351\160\260\303\106\200\360\323\261\121\277\117\326\170\240 +\374\254\306\317\061\004\143\342\064\125\005\112\075\366\060\272 +\363\063\345\272\322\226\363\325\261\266\223\211\032\244\150\276 +\176\355\143\264\032\110\300\123\344\243\360\071\014\062\222\307 +\103\015\032\161\355\320\106\223\277\223\142\154\063\113\315\066 +\015\151\136\273\154\226\231\041\151\304\113\147\162\333\154\152 +\270\367\150\355\305\217\255\143\145\225\012\114\340\371\017\176 +\067\075\252\324\223\272\147\011\303\245\244\015\003\132\155\325 +\013\376\360\100\024\264\366\270\151\174\155\302\062\113\237\265 +\032\347\106\256\114\132\053\252\172\136\220\127\225\372\333\146 +\002\040\036\152\151\146\025\234\302\266\365\274\120\265\375\105 +\307\037\150\264\107\131\254\304\033\050\223\116\122\123\022\003 +\130\113\161\203\237\146\346\254\171\110\376\376\107 +END + +# Trust for Certificate "Bogus Yahoo 3" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71 +# Subject: CN=login.yahoo.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): 4A:DC:3C:67:ED:21:CD:5B:CE:5D:C8:11:E4:9E:CF:3D +# Fingerprint (SHA1): 80:96:2A:E4:D6:C5:B4:42:89:4E:95:A1:3E:4A:69:9E:07:D6:94:CF +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus Yahoo 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\200\226\052\344\326\305\264\102\211\116\225\241\076\112\151\236 +\007\326\224\317 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\112\334\074\147\355\041\315\133\316\135\310\021\344\236\317\075 +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\076\165\316\324\153\151\060\041\041\210\060\256\206\250 +\052\161 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Bogus live.com" +# +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0 +# Subject: CN=login.live.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): D0:D4:39:E3:CC:5C:52:DD:08:CD:E9:AB:E8:11:59:D4 +# Fingerprint (SHA1): CE:A5:86:B2:CE:59:3E:C7:D9:39:89:83:37:C5:78:14:70:8A:B2:BE +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 "Bogus live.com" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\336\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\016\060\014\006\003\125\004\021\023\005\063\070\064\067\067 +\061\020\060\016\006\003\125\004\010\023\007\106\154\157\162\151 +\144\141\061\020\060\016\006\003\125\004\007\023\007\105\156\147 +\154\151\163\150\061\027\060\025\006\003\125\004\011\023\016\123 +\145\141\040\126\151\154\154\141\147\145\040\061\060\061\024\060 +\022\006\003\125\004\012\023\013\107\157\157\147\154\145\040\114 +\164\144\056\061\023\060\021\006\003\125\004\013\023\012\124\145 +\143\150\040\104\145\160\164\056\061\050\060\046\006\003\125\004 +\013\023\037\110\157\163\164\145\144\040\142\171\040\107\124\111 +\040\107\162\157\165\160\040\103\157\162\160\157\162\141\164\151 +\157\156\061\024\060\022\006\003\125\004\013\023\013\120\154\141 +\164\151\156\165\155\123\123\114\061\027\060\025\006\003\125\004 +\003\023\016\154\157\147\151\156\056\154\151\166\145\056\143\157 +\155 +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\021\000\260\267\023\076\320\226\371\265\157\256\221\310\164 +\275\072\300 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\354\060\202\004\324\240\003\002\001\002\002\021\000 +\260\267\023\076\320\226\371\265\157\256\221\310\164\275\072\300 +\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\061\061\060 +\063\061\065\060\060\060\060\060\060\132\027\015\061\064\060\063 +\061\064\062\063\065\071\065\071\132\060\201\336\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\016\060\014\006\003\125 +\004\021\023\005\063\070\064\067\067\061\020\060\016\006\003\125 +\004\010\023\007\106\154\157\162\151\144\141\061\020\060\016\006 +\003\125\004\007\023\007\105\156\147\154\151\163\150\061\027\060 +\025\006\003\125\004\011\023\016\123\145\141\040\126\151\154\154 +\141\147\145\040\061\060\061\024\060\022\006\003\125\004\012\023 +\013\107\157\157\147\154\145\040\114\164\144\056\061\023\060\021 +\006\003\125\004\013\023\012\124\145\143\150\040\104\145\160\164 +\056\061\050\060\046\006\003\125\004\013\023\037\110\157\163\164 +\145\144\040\142\171\040\107\124\111\040\107\162\157\165\160\040 +\103\157\162\160\157\162\141\164\151\157\156\061\024\060\022\006 +\003\125\004\013\023\013\120\154\141\164\151\156\165\155\123\123 +\114\061\027\060\025\006\003\125\004\003\023\016\154\157\147\151 +\156\056\154\151\166\145\056\143\157\155\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\363\374\053\057\357 +\341\255\131\360\102\074\302\361\202\277\054\101\223\321\366\230 +\063\225\114\274\142\361\225\130\010\266\351\173\167\110\260\323 +\334\027\077\274\156\346\354\036\354\215\027\376\034\044\306\076 +\147\075\222\225\242\060\300\247\127\040\317\160\210\227\112\005 +\223\171\223\102\227\057\076\377\304\024\024\050\242\023\066\264 +\370\356\276\035\274\170\135\141\223\137\353\210\327\321\344\053 +\232\315\130\342\007\105\237\117\270\271\100\152\063\054\133\041 +\003\132\112\224\362\172\227\131\033\250\265\102\330\203\000\252 +\064\314\247\166\320\107\003\137\005\257\073\341\271\241\064\045 +\267\154\137\232\060\204\230\302\302\327\362\270\102\112\020\125 +\275\372\123\201\135\215\150\146\105\054\122\176\345\304\004\303 +\124\347\303\071\332\172\112\305\271\230\202\040\341\054\140\127 +\277\272\362\106\000\274\137\072\334\343\063\227\370\112\230\271 +\354\063\117\055\140\154\025\222\246\201\112\013\351\354\166\160 +\064\061\027\160\346\160\113\216\213\323\165\313\170\111\253\146 +\233\206\237\217\251\304\001\350\312\033\347\002\003\001\000\001 +\243\202\001\350\060\202\001\344\060\037\006\003\125\035\043\004 +\030\060\026\200\024\241\162\137\046\033\050\230\103\225\135\007 +\067\325\205\226\235\113\322\303\105\060\035\006\003\125\035\016 +\004\026\004\024\324\144\366\251\350\245\176\327\277\143\122\003 +\203\123\333\305\101\215\352\200\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\005\240\060\014\006\003\125\035\023\001 +\001\377\004\002\060\000\060\035\006\003\125\035\045\004\026\060 +\024\006\010\053\006\001\005\005\007\003\001\006\010\053\006\001 +\005\005\007\003\002\060\106\006\003\125\035\040\004\077\060\075 +\060\073\006\014\053\006\001\004\001\262\061\001\002\001\003\004 +\060\053\060\051\006\010\053\006\001\005\005\007\002\001\026\035 +\150\164\164\160\163\072\057\057\163\145\143\165\162\145\056\143 +\157\155\157\144\157\056\143\157\155\057\103\120\123\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\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\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 +\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\161\006\010\053\006 +\001\005\005\007\001\001\004\145\060\143\060\073\006\010\053\006 +\001\005\005\007\060\002\206\057\150\164\164\160\072\057\057\143 +\162\164\056\143\157\155\157\144\157\143\141\056\143\157\155\057 +\125\124\116\101\144\144\124\162\165\163\164\123\145\162\166\145 +\162\103\101\056\143\162\164\060\044\006\010\053\006\001\005\005 +\007\060\001\206\030\150\164\164\160\072\057\057\157\143\163\160 +\056\143\157\155\157\144\157\143\141\056\143\157\155\060\055\006 +\003\125\035\021\004\046\060\044\202\016\154\157\147\151\156\056 +\154\151\166\145\056\143\157\155\202\022\167\167\167\056\154\157 +\147\151\156\056\154\151\166\145\056\143\157\155\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\124\343\244\232\044\322\363\035\102\255\033\360\036\253\373\332 +\325\252\351\317\132\263\036\127\173\061\362\156\127\113\061\257 +\063\273\266\015\025\307\136\131\001\316\104\265\267\277\011\311 +\325\334\151\204\351\305\032\267\360\076\324\300\044\275\051\137 +\264\351\326\130\353\105\021\211\064\064\323\021\353\064\316\052 +\117\000\075\366\162\357\151\146\300\237\232\254\176\160\120\254 +\125\107\332\276\103\133\354\213\310\305\043\204\311\237\266\122 +\010\317\221\033\057\200\151\346\064\063\346\263\237\244\345\015 +\232\025\371\127\374\013\251\101\013\365\377\130\101\222\042\047 +\146\022\006\307\052\330\131\247\306\337\104\022\117\300\250\177 +\247\101\310\310\151\377\272\005\056\227\255\073\320\353\363\025 +\155\176\033\345\272\335\064\276\042\021\354\150\230\063\201\002 +\152\013\023\125\171\061\165\116\072\310\266\023\275\227\157\067 +\012\013\055\210\016\336\147\220\302\263\312\040\312\232\121\364 +\144\076\333\364\056\105\362\307\107\027\250\364\372\220\132\177 +\200\246\202\254\344\154\201\106\273\122\205\040\044\370\200\352 +END + +# Trust for Certificate "Bogus live.com" +# Issuer: CN=UTN-USERFirst-Hardware,OU=http://www.usertrust.com,O=The USERTRUST Network,L=Salt Lake City,ST=UT,C=US +# Serial Number:00:b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0 +# Subject: CN=login.live.com,OU=PlatinumSSL,OU=Hosted by GTI Group Corporation,OU=Tech Dept.,O=Google Ltd.,STREET=Sea Village 10,L=English,ST=Florida,postalCode=38477,C=US +# Not Valid Before: Tue Mar 15 00:00:00 2011 +# Not Valid After : Fri Mar 14 23:59:59 2014 +# Fingerprint (MD5): D0:D4:39:E3:CC:5C:52:DD:08:CD:E9:AB:E8:11:59:D4 +# Fingerprint (SHA1): CE:A5:86:B2:CE:59:3E:C7:D9:39:89:83:37:C5:78:14:70:8A:B2:BE +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Bogus live.com" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\316\245\206\262\316\131\076\307\331\071\211\203\067\305\170\024 +\160\212\262\276 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\320\324\071\343\314\134\122\335\010\315\351\253\350\021\131\324 +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\021\000\260\267\023\076\320\226\371\265\157\256\221\310\164 +\275\072\300 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Go Daddy Root Certificate Authority - G2" +# +# Issuer: CN=Go Daddy Root Certificate Authority - G2,O="GoDaddy.com, Inc.",L=Scottsdale,ST=Arizona,C=US +# Serial Number: 0 (0x0) +# Subject: CN=Go Daddy Root Certificate Authority - G2,O="GoDaddy.com, Inc.",L=Scottsdale,ST=Arizona,C=US +# Not Valid Before: Tue Sep 01 00:00:00 2009 +# Not Valid After : Thu Dec 31 23:59:59 2037 +# Fingerprint (MD5): 80:3A:BC:22:C1:E6:FB:8D:9B:3B:27:4A:32:1B:9A:01 +# Fingerprint (SHA1): 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B +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 "Go Daddy Root Certificate Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012 +\023\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111 +\156\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157 +\040\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012 +\023\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111 +\156\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157 +\040\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\305\060\202\002\255\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157\156 +\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157\164 +\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012\023 +\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111\156 +\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157\040 +\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\062\060\036\027\015\060\071\060\071\060\061\060 +\060\060\060\060\060\132\027\015\063\067\061\062\063\061\062\063 +\065\071\065\071\132\060\201\203\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\020\060\016\006\003\125\004\010\023\007 +\101\162\151\172\157\156\141\061\023\060\021\006\003\125\004\007 +\023\012\123\143\157\164\164\163\144\141\154\145\061\032\060\030 +\006\003\125\004\012\023\021\107\157\104\141\144\144\171\056\143 +\157\155\054\040\111\156\143\056\061\061\060\057\006\003\125\004 +\003\023\050\107\157\040\104\141\144\144\171\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062\060\202\001\042\060 +\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202 +\001\017\000\060\202\001\012\002\202\001\001\000\277\161\142\010 +\361\372\131\064\367\033\311\030\243\367\200\111\130\351\042\203 +\023\246\305\040\103\001\073\204\361\346\205\111\237\047\352\366 +\204\033\116\240\264\333\160\230\307\062\001\261\005\076\007\116 +\356\364\372\117\057\131\060\042\347\253\031\126\153\342\200\007 +\374\363\026\165\200\071\121\173\345\371\065\266\164\116\251\215 +\202\023\344\266\077\251\003\203\372\242\276\212\025\152\177\336 +\013\303\266\031\024\005\312\352\303\250\004\224\073\106\174\062 +\015\363\000\146\042\310\215\151\155\066\214\021\030\267\323\262 +\034\140\264\070\372\002\214\316\323\335\106\007\336\012\076\353 +\135\174\310\174\373\260\053\123\244\222\142\151\121\045\005\141 +\032\104\201\214\054\251\103\226\043\337\254\072\201\232\016\051 +\305\034\251\351\135\036\266\236\236\060\012\071\316\361\210\200 +\373\113\135\314\062\354\205\142\103\045\064\002\126\047\001\221 +\264\073\160\052\077\156\261\350\234\210\001\175\237\324\371\333 +\123\155\140\235\277\054\347\130\253\270\137\106\374\316\304\033 +\003\074\011\353\111\061\134\151\106\263\340\107\002\003\001\000 +\001\243\102\060\100\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\072\232\205\007\020\147\050\266\357\366\275\005\101\156\040 +\301\224\332\017\336\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\001\001\000\231\333\135\171\325\371\227 +\131\147\003\141\361\176\073\006\061\165\055\241\040\216\117\145 +\207\264\367\246\234\274\330\351\057\320\333\132\356\317\164\214 +\163\264\070\102\332\005\173\370\002\165\270\375\245\261\327\256 +\366\327\336\023\313\123\020\176\212\106\321\227\372\267\056\053 +\021\253\220\260\047\200\371\350\237\132\351\067\237\253\344\337 +\154\263\205\027\235\075\331\044\117\171\221\065\326\137\004\353 +\200\203\253\232\002\055\265\020\364\330\220\307\004\163\100\355 +\162\045\240\251\237\354\236\253\150\022\231\127\306\217\022\072 +\011\244\275\104\375\006\025\067\301\233\344\062\243\355\070\350 +\330\144\363\054\176\024\374\002\352\237\315\377\007\150\027\333 +\042\220\070\055\172\215\321\124\361\151\343\137\063\312\172\075 +\173\012\343\312\177\137\071\345\342\165\272\305\166\030\063\316 +\054\360\057\114\255\367\261\347\316\117\250\304\233\112\124\006 +\305\177\175\325\010\017\342\034\376\176\027\270\254\136\366\324 +\026\262\103\011\014\115\366\247\153\264\231\204\145\312\172\210 +\342\342\104\276\134\367\352\034\365 +END + +# Trust for Certificate "Go Daddy Root Certificate Authority - G2" +# Issuer: CN=Go Daddy Root Certificate Authority - G2,O="GoDaddy.com, Inc.",L=Scottsdale,ST=Arizona,C=US +# Serial Number: 0 (0x0) +# Subject: CN=Go Daddy Root Certificate Authority - G2,O="GoDaddy.com, Inc.",L=Scottsdale,ST=Arizona,C=US +# Not Valid Before: Tue Sep 01 00:00:00 2009 +# Not Valid After : Thu Dec 31 23:59:59 2037 +# Fingerprint (MD5): 80:3A:BC:22:C1:E6:FB:8D:9B:3B:27:4A:32:1B:9A:01 +# Fingerprint (SHA1): 47:BE:AB:C9:22:EA:E8:0E:78:78:34:62:A7:9F:45:C2:54:FD:E6:8B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Go Daddy Root Certificate Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\107\276\253\311\042\352\350\016\170\170\064\142\247\237\105\302 +\124\375\346\213 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\200\072\274\042\301\346\373\215\233\073\047\112\062\033\232\001 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\203\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\032\060\030\006\003\125\004\012 +\023\021\107\157\104\141\144\144\171\056\143\157\155\054\040\111 +\156\143\056\061\061\060\057\006\003\125\004\003\023\050\107\157 +\040\104\141\144\144\171\040\122\157\157\164\040\103\145\162\164 +\151\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164 +\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Starfield Root Certificate Authority - G2" +# +# Issuer: CN=Starfield Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Serial Number: 0 (0x0) +# Subject: CN=Starfield Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Not Valid Before: Tue Sep 01 00:00:00 2009 +# Not Valid After : Thu Dec 31 23:59:59 2037 +# Fingerprint (MD5): D6:39:81:C6:52:7E:96:69:FC:FC:CA:66:ED:05:F2:96 +# Fingerprint (SHA1): B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E +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 "Starfield Root Certificate Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062 +\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145 +\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062 +\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145 +\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\335\060\202\002\305\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157\156 +\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157\164 +\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012\023 +\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150\156 +\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062\060 +\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145\154 +\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143\141 +\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040\107 +\062\060\036\027\015\060\071\060\071\060\061\060\060\060\060\060 +\060\132\027\015\063\067\061\062\063\061\062\063\065\071\065\071 +\132\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172 +\157\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143 +\157\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004 +\012\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143 +\150\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061 +\062\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151 +\145\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151 +\143\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055 +\040\107\062\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\275\355\301\003\374\366\217\374\002\261\157\133 +\237\110\331\235\171\342\242\267\003\141\126\030\303\107\266\327 +\312\075\065\056\211\103\367\241\151\233\336\212\032\375\023\040 +\234\264\111\167\062\051\126\375\271\354\214\335\042\372\162\334 +\047\141\227\356\366\132\204\354\156\031\271\211\054\334\204\133 +\325\164\373\153\137\305\211\245\020\122\211\106\125\364\270\165 +\034\346\177\344\124\256\113\370\125\162\127\002\031\370\027\161 +\131\353\036\050\007\164\305\235\110\276\154\264\364\244\260\363 +\144\067\171\222\300\354\106\136\177\341\155\123\114\142\257\315 +\037\013\143\273\072\235\373\374\171\000\230\141\164\317\046\202 +\100\143\363\262\162\152\031\015\231\312\324\016\165\314\067\373 +\213\211\301\131\361\142\177\137\263\137\145\060\370\247\267\115 +\166\132\036\166\136\064\300\350\226\126\231\212\263\360\177\244 +\315\275\334\062\061\174\221\317\340\137\021\370\153\252\111\134 +\321\231\224\321\242\343\143\133\011\166\265\126\142\341\113\164 +\035\226\324\046\324\010\004\131\320\230\016\016\346\336\374\303 +\354\037\220\361\002\003\001\000\001\243\102\060\100\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\174\014\062\037\247\331\060 +\177\304\175\150\243\142\250\241\316\253\007\133\047\060\015\006 +\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001\001 +\000\021\131\372\045\117\003\157\224\231\073\232\037\202\205\071 +\324\166\005\224\136\341\050\223\155\142\135\011\302\240\250\324 +\260\165\070\361\064\152\235\344\237\212\206\046\121\346\054\321 +\306\055\156\225\040\112\222\001\354\270\212\147\173\061\342\147 +\056\214\225\003\046\056\103\235\112\061\366\016\265\014\273\267 +\342\067\177\042\272\000\243\016\173\122\373\153\273\073\304\323 +\171\121\116\315\220\364\147\007\031\310\074\106\172\015\001\175 +\305\130\347\155\346\205\060\027\232\044\304\020\340\004\367\340 +\362\177\324\252\012\377\102\035\067\355\224\345\144\131\022\040 +\167\070\323\062\076\070\201\165\226\163\372\150\217\261\313\316 +\037\305\354\372\234\176\317\176\261\361\007\055\266\374\277\312 +\244\277\320\227\005\112\274\352\030\050\002\220\275\124\170\011 +\041\161\323\321\175\035\331\026\260\251\141\075\320\012\000\042 +\374\307\173\313\011\144\105\013\073\100\201\367\175\174\062\365 +\230\312\130\216\175\052\356\220\131\163\144\371\066\164\136\045 +\241\365\146\005\056\177\071\025\251\052\373\120\213\216\205\151 +\364 +END + +# Trust for Certificate "Starfield Root Certificate Authority - G2" +# Issuer: CN=Starfield Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Serial Number: 0 (0x0) +# Subject: CN=Starfield Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Not Valid Before: Tue Sep 01 00:00:00 2009 +# Not Valid After : Thu Dec 31 23:59:59 2037 +# Fingerprint (MD5): D6:39:81:C6:52:7E:96:69:FC:FC:CA:66:ED:05:F2:96 +# Fingerprint (SHA1): B5:1C:06:7C:EE:2B:0C:3D:F8:55:AB:2D:92:F4:FE:39:D4:E7:0F:0E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Root Certificate Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\265\034\006\174\356\053\014\075\370\125\253\055\222\364\376\071 +\324\347\017\016 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\326\071\201\306\122\176\226\151\374\374\312\146\355\005\362\226 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\217\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\062 +\060\060\006\003\125\004\003\023\051\123\164\141\162\146\151\145 +\154\144\040\122\157\157\164\040\103\145\162\164\151\146\151\143 +\141\164\145\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Starfield Services Root Certificate Authority - G2" +# +# Issuer: CN=Starfield Services Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Serial Number: 0 (0x0) +# Subject: CN=Starfield Services Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Not Valid Before: Tue Sep 01 00:00:00 2009 +# Not Valid After : Thu Dec 31 23:59:59 2037 +# Fingerprint (MD5): 17:35:74:AF:7B:61:1C:EB:F4:F9:3C:E2:EE:40:F9:A2 +# Fingerprint (SHA1): 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F +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 "Starfield Services Root Certificate Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073 +\060\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145 +\154\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073 +\060\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145 +\154\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\357\060\202\002\327\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157\156 +\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157\164 +\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012\023 +\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150\156 +\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073\060 +\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145\154 +\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164\040 +\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164\150 +\157\162\151\164\171\040\055\040\107\062\060\036\027\015\060\071 +\060\071\060\061\060\060\060\060\060\060\132\027\015\063\067\061 +\062\063\061\062\063\065\071\065\071\132\060\201\230\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\020\060\016\006\003 +\125\004\010\023\007\101\162\151\172\157\156\141\061\023\060\021 +\006\003\125\004\007\023\012\123\143\157\164\164\163\144\141\154 +\145\061\045\060\043\006\003\125\004\012\023\034\123\164\141\162 +\146\151\145\154\144\040\124\145\143\150\156\157\154\157\147\151 +\145\163\054\040\111\156\143\056\061\073\060\071\006\003\125\004 +\003\023\062\123\164\141\162\146\151\145\154\144\040\123\145\162 +\166\151\143\145\163\040\122\157\157\164\040\103\145\162\164\151 +\146\151\143\141\164\145\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\062\060\202\001\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001 +\012\002\202\001\001\000\325\014\072\304\052\371\116\342\365\276 +\031\227\137\216\210\123\261\037\077\313\317\237\040\023\155\051 +\072\310\017\175\074\367\153\166\070\143\331\066\140\250\233\136 +\134\000\200\262\057\131\177\366\207\371\045\103\206\347\151\033 +\122\232\220\341\161\343\330\055\015\116\157\366\310\111\331\266 +\363\032\126\256\053\266\164\024\353\317\373\046\343\032\272\035 +\226\056\152\073\130\224\211\107\126\377\045\240\223\160\123\203 +\332\204\164\024\303\147\236\004\150\072\337\216\100\132\035\112 +\116\317\103\221\073\347\126\326\000\160\313\122\356\173\175\256 +\072\347\274\061\371\105\366\302\140\317\023\131\002\053\200\314 +\064\107\337\271\336\220\145\155\002\317\054\221\246\246\347\336 +\205\030\111\174\146\116\243\072\155\251\265\356\064\056\272\015 +\003\270\063\337\107\353\261\153\215\045\331\233\316\201\321\105 +\106\062\226\160\207\336\002\016\111\103\205\266\154\163\273\144 +\352\141\101\254\311\324\124\337\207\057\307\042\262\046\314\237 +\131\124\150\237\374\276\052\057\304\125\034\165\100\140\027\205 +\002\125\071\213\177\005\002\003\001\000\001\243\102\060\100\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\035\006\003\125\035\016\004\026\004\024\234\137\000\337\252 +\001\327\060\053\070\210\242\270\155\112\234\362\021\221\203\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202 +\001\001\000\113\066\246\204\167\151\335\073\031\237\147\043\010 +\157\016\141\311\375\204\334\137\330\066\201\315\330\033\101\055 +\237\140\335\307\032\150\331\321\156\206\341\210\043\317\023\336 +\103\317\342\064\263\004\235\037\051\325\277\370\136\310\325\301 +\275\356\222\157\062\164\362\221\202\057\275\202\102\172\255\052 +\267\040\175\115\274\172\125\022\302\025\352\275\367\152\225\056 +\154\164\237\317\034\264\362\305\001\243\205\320\162\076\255\163 +\253\013\233\165\014\155\105\267\216\224\254\226\067\265\240\320 +\217\025\107\016\343\350\203\335\217\375\357\101\001\167\314\047 +\251\142\205\063\362\067\010\357\161\317\167\006\336\310\031\035 +\210\100\317\175\106\035\377\036\307\341\316\377\043\333\306\372 +\215\125\116\251\002\347\107\021\106\076\364\375\275\173\051\046 +\273\251\141\142\067\050\266\055\052\366\020\206\144\311\160\247 +\322\255\267\051\160\171\352\074\332\143\045\237\375\150\267\060 +\354\160\373\165\212\267\155\140\147\262\036\310\271\351\330\250 +\157\002\213\147\015\115\046\127\161\332\040\374\301\112\120\215 +\261\050\272 +END + +# Trust for Certificate "Starfield Services Root Certificate Authority - G2" +# Issuer: CN=Starfield Services Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Serial Number: 0 (0x0) +# Subject: CN=Starfield Services Root Certificate Authority - G2,O="Starfield Technologies, Inc.",L=Scottsdale,ST=Arizona,C=US +# Not Valid Before: Tue Sep 01 00:00:00 2009 +# Not Valid After : Thu Dec 31 23:59:59 2037 +# Fingerprint (MD5): 17:35:74:AF:7B:61:1C:EB:F4:F9:3C:E2:EE:40:F9:A2 +# Fingerprint (SHA1): 92:5A:8F:8D:2C:6D:04:E0:66:5F:59:6A:FF:22:D8:63:E8:25:6F:3F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Starfield Services Root Certificate Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\222\132\217\215\054\155\004\340\146\137\131\152\377\042\330\143 +\350\045\157\077 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\027\065\164\257\173\141\034\353\364\371\074\342\356\100\371\242 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\230\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\020\060\016\006\003\125\004\010\023\007\101\162\151\172\157 +\156\141\061\023\060\021\006\003\125\004\007\023\012\123\143\157 +\164\164\163\144\141\154\145\061\045\060\043\006\003\125\004\012 +\023\034\123\164\141\162\146\151\145\154\144\040\124\145\143\150 +\156\157\154\157\147\151\145\163\054\040\111\156\143\056\061\073 +\060\071\006\003\125\004\003\023\062\123\164\141\162\146\151\145 +\154\144\040\123\145\162\166\151\143\145\163\040\122\157\157\164 +\040\103\145\162\164\151\146\151\143\141\164\145\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Commercial" +# +# Issuer: CN=AffirmTrust Commercial,O=AffirmTrust,C=US +# Serial Number:77:77:06:27:26:a9:b1:7c +# Subject: CN=AffirmTrust Commercial,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:06:06 2010 +# Not Valid After : Tue Dec 31 14:06:06 2030 +# Fingerprint (MD5): 82:92:BA:5B:EF:CD:8A:6F:A6:3D:55:F9:84:F6:D6:B7 +# Fingerprint (SHA1): F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7 +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 "AffirmTrust Commercial" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\103\157\155\155 +\145\162\143\151\141\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\103\157\155\155 +\145\162\143\151\141\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\167\167\006\047\046\251\261\174 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\114\060\202\002\064\240\003\002\001\002\002\010\167 +\167\006\047\046\251\261\174\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\060\104\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\024\060\022\006\003\125\004\012\014\013 +\101\146\146\151\162\155\124\162\165\163\164\061\037\060\035\006 +\003\125\004\003\014\026\101\146\146\151\162\155\124\162\165\163 +\164\040\103\157\155\155\145\162\143\151\141\154\060\036\027\015 +\061\060\060\061\062\071\061\064\060\066\060\066\132\027\015\063 +\060\061\062\063\061\061\064\060\066\060\066\132\060\104\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\024\060\022\006 +\003\125\004\012\014\013\101\146\146\151\162\155\124\162\165\163 +\164\061\037\060\035\006\003\125\004\003\014\026\101\146\146\151 +\162\155\124\162\165\163\164\040\103\157\155\155\145\162\143\151 +\141\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\366\033\117\147\007\053\241\025\365\006\042\313\037 +\001\262\343\163\105\006\104\111\054\273\111\045\024\326\316\303 +\267\253\054\117\306\101\062\224\127\372\022\247\133\016\342\217 +\037\036\206\031\247\252\265\055\271\137\015\212\302\257\205\065 +\171\062\055\273\034\142\067\362\261\133\112\075\312\315\161\137 +\351\102\276\224\350\310\336\371\042\110\144\306\345\253\306\053 +\155\255\005\360\372\325\013\317\232\345\360\120\244\213\073\107 +\245\043\133\172\172\370\063\077\270\357\231\227\343\040\301\326 +\050\211\317\224\373\271\105\355\343\100\027\021\324\164\360\013 +\061\342\053\046\152\233\114\127\256\254\040\076\272\105\172\005 +\363\275\233\151\025\256\175\116\040\143\304\065\166\072\007\002 +\311\067\375\307\107\356\350\361\166\035\163\025\362\227\244\265 +\310\172\171\331\102\252\053\177\134\376\316\046\117\243\146\201 +\065\257\104\272\124\036\034\060\062\145\235\346\074\223\136\120 +\116\172\343\072\324\156\314\032\373\371\322\067\256\044\052\253 +\127\003\042\050\015\111\165\177\267\050\332\165\277\216\343\334 +\016\171\061\002\003\001\000\001\243\102\060\100\060\035\006\003 +\125\035\016\004\026\004\024\235\223\306\123\213\136\312\257\077 +\237\036\017\345\231\225\274\044\366\224\217\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\015\006\011 +\052\206\110\206\367\015\001\001\013\005\000\003\202\001\001\000 +\130\254\364\004\016\315\300\015\377\012\375\324\272\026\137\051 +\275\173\150\231\130\111\322\264\035\067\115\177\047\175\106\006 +\135\103\306\206\056\076\163\262\046\175\117\223\251\266\304\052 +\232\253\041\227\024\261\336\214\323\253\211\025\330\153\044\324 +\361\026\256\330\244\134\324\177\121\216\355\030\001\261\223\143 +\275\274\370\141\200\232\236\261\316\102\160\342\251\175\006\045 +\175\047\241\376\157\354\263\036\044\332\343\113\125\032\000\073 +\065\264\073\331\327\135\060\375\201\023\211\362\302\006\053\355 +\147\304\216\311\103\262\134\153\025\211\002\274\142\374\116\362 +\265\063\252\262\157\323\012\242\120\343\366\073\350\056\104\302 +\333\146\070\251\063\126\110\361\155\033\063\215\015\214\077\140 +\067\235\323\312\155\176\064\176\015\237\162\166\213\033\237\162 +\375\122\065\101\105\002\226\057\034\262\232\163\111\041\261\111 +\107\105\107\264\357\152\064\021\311\115\232\314\131\267\326\002 +\236\132\116\145\265\224\256\033\337\051\260\026\361\277\000\236 +\007\072\027\144\265\004\265\043\041\231\012\225\073\227\174\357 +END + +# Trust for Certificate "AffirmTrust Commercial" +# Issuer: CN=AffirmTrust Commercial,O=AffirmTrust,C=US +# Serial Number:77:77:06:27:26:a9:b1:7c +# Subject: CN=AffirmTrust Commercial,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:06:06 2010 +# Not Valid After : Tue Dec 31 14:06:06 2030 +# Fingerprint (MD5): 82:92:BA:5B:EF:CD:8A:6F:A6:3D:55:F9:84:F6:D6:B7 +# Fingerprint (SHA1): F9:B5:B6:32:45:5F:9C:BE:EC:57:5F:80:DC:E9:6E:2C:C7:B2:78:B7 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Commercial" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\371\265\266\062\105\137\234\276\354\127\137\200\334\351\156\054 +\307\262\170\267 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\202\222\272\133\357\315\212\157\246\075\125\371\204\366\326\267 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\103\157\155\155 +\145\162\143\151\141\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\167\167\006\047\046\251\261\174 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Networking" +# +# Issuer: CN=AffirmTrust Networking,O=AffirmTrust,C=US +# Serial Number:7c:4f:04:39:1c:d4:99:2d +# Subject: CN=AffirmTrust Networking,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:08:24 2010 +# Not Valid After : Tue Dec 31 14:08:24 2030 +# Fingerprint (MD5): 42:65:CA:BE:01:9A:9A:4C:A9:8C:41:49:CD:C0:D5:7F +# Fingerprint (SHA1): 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F +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 "AffirmTrust Networking" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\116\145\164\167 +\157\162\153\151\156\147 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\116\145\164\167 +\157\162\153\151\156\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\174\117\004\071\034\324\231\055 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\114\060\202\002\064\240\003\002\001\002\002\010\174 +\117\004\071\034\324\231\055\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\104\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\024\060\022\006\003\125\004\012\014\013 +\101\146\146\151\162\155\124\162\165\163\164\061\037\060\035\006 +\003\125\004\003\014\026\101\146\146\151\162\155\124\162\165\163 +\164\040\116\145\164\167\157\162\153\151\156\147\060\036\027\015 +\061\060\060\061\062\071\061\064\060\070\062\064\132\027\015\063 +\060\061\062\063\061\061\064\060\070\062\064\132\060\104\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\024\060\022\006 +\003\125\004\012\014\013\101\146\146\151\162\155\124\162\165\163 +\164\061\037\060\035\006\003\125\004\003\014\026\101\146\146\151 +\162\155\124\162\165\163\164\040\116\145\164\167\157\162\153\151 +\156\147\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\264\204\314\063\027\056\153\224\154\153\141\122\240 +\353\243\317\171\224\114\345\224\200\231\313\125\144\104\145\217 +\147\144\342\006\343\134\067\111\366\057\233\204\204\036\055\362 +\140\235\060\116\314\204\205\342\054\317\036\236\376\066\253\063 +\167\065\104\330\065\226\032\075\066\350\172\016\330\325\107\241 +\152\151\213\331\374\273\072\256\171\132\325\364\326\161\273\232 +\220\043\153\232\267\210\164\207\014\036\137\271\236\055\372\253 +\123\053\334\273\166\076\223\114\010\010\214\036\242\043\034\324 +\152\255\042\272\231\001\056\155\145\313\276\044\146\125\044\113 +\100\104\261\033\327\341\302\205\300\336\020\077\075\355\270\374 +\361\361\043\123\334\277\145\227\157\331\371\100\161\215\175\275 +\225\324\316\276\240\136\047\043\336\375\246\320\046\016\000\051 +\353\074\106\360\075\140\277\077\120\322\334\046\101\121\236\024 +\067\102\004\243\160\127\250\033\207\355\055\372\173\356\214\012 +\343\251\146\211\031\313\101\371\335\104\066\141\317\342\167\106 +\310\175\366\364\222\201\066\375\333\064\361\162\176\363\014\026 +\275\264\025\002\003\001\000\001\243\102\060\100\060\035\006\003 +\125\035\016\004\026\004\024\007\037\322\347\234\332\302\156\242 +\100\264\260\172\120\020\120\164\304\310\275\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\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000 +\211\127\262\026\172\250\302\375\326\331\233\233\064\302\234\264 +\062\024\115\247\244\337\354\276\247\276\370\103\333\221\067\316 +\264\062\056\120\125\032\065\116\166\103\161\040\357\223\167\116 +\025\160\056\207\303\301\035\155\334\313\265\047\324\054\126\321 +\122\123\072\104\322\163\310\304\033\005\145\132\142\222\234\356 +\101\215\061\333\347\064\352\131\041\325\001\172\327\144\270\144 +\071\315\311\355\257\355\113\003\110\247\240\231\001\200\334\145 +\243\066\256\145\131\110\117\202\113\310\145\361\127\035\345\131 +\056\012\077\154\330\321\365\345\011\264\154\124\000\012\340\025 +\115\207\165\155\267\130\226\132\335\155\322\000\240\364\233\110 +\276\303\067\244\272\066\340\174\207\205\227\032\025\242\336\056 +\242\133\275\257\030\371\220\120\315\160\131\370\047\147\107\313 +\307\240\007\072\175\321\054\135\154\031\072\146\265\175\375\221 +\157\202\261\276\010\223\333\024\107\361\242\067\307\105\236\074 +\307\167\257\144\250\223\337\366\151\203\202\140\362\111\102\064 +\355\132\000\124\205\034\026\066\222\014\134\372\246\255\277\333 +END + +# Trust for Certificate "AffirmTrust Networking" +# Issuer: CN=AffirmTrust Networking,O=AffirmTrust,C=US +# Serial Number:7c:4f:04:39:1c:d4:99:2d +# Subject: CN=AffirmTrust Networking,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:08:24 2010 +# Not Valid After : Tue Dec 31 14:08:24 2030 +# Fingerprint (MD5): 42:65:CA:BE:01:9A:9A:4C:A9:8C:41:49:CD:C0:D5:7F +# Fingerprint (SHA1): 29:36:21:02:8B:20:ED:02:F5:66:C5:32:D1:D6:ED:90:9F:45:00:2F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Networking" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\051\066\041\002\213\040\355\002\365\146\305\062\321\326\355\220 +\237\105\000\057 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\102\145\312\276\001\232\232\114\251\214\101\111\315\300\325\177 +END +CKA_ISSUER MULTILINE_OCTAL +\060\104\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\037\060\035\006\003\125\004\003\014\026 +\101\146\146\151\162\155\124\162\165\163\164\040\116\145\164\167 +\157\162\153\151\156\147 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\174\117\004\071\034\324\231\055 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Premium" +# +# Issuer: CN=AffirmTrust Premium,O=AffirmTrust,C=US +# Serial Number:6d:8c:14:46:b1:a6:0a:ee +# Subject: CN=AffirmTrust Premium,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:10:36 2010 +# Not Valid After : Mon Dec 31 14:10:36 2040 +# Fingerprint (MD5): C4:5D:0E:48:B6:AC:28:30:4E:0A:BC:F9:38:16:87:57 +# Fingerprint (SHA1): D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27 +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 "AffirmTrust Premium" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\034\060\032\006\003\125\004\003\014\023 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\034\060\032\006\003\125\004\003\014\023 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\155\214\024\106\261\246\012\356 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\106\060\202\003\056\240\003\002\001\002\002\010\155 +\214\024\106\261\246\012\356\060\015\006\011\052\206\110\206\367 +\015\001\001\014\005\000\060\101\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\024\060\022\006\003\125\004\012\014\013 +\101\146\146\151\162\155\124\162\165\163\164\061\034\060\032\006 +\003\125\004\003\014\023\101\146\146\151\162\155\124\162\165\163 +\164\040\120\162\145\155\151\165\155\060\036\027\015\061\060\060 +\061\062\071\061\064\061\060\063\066\132\027\015\064\060\061\062 +\063\061\061\064\061\060\063\066\132\060\101\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\024\060\022\006\003\125\004 +\012\014\013\101\146\146\151\162\155\124\162\165\163\164\061\034 +\060\032\006\003\125\004\003\014\023\101\146\146\151\162\155\124 +\162\165\163\164\040\120\162\145\155\151\165\155\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\304\022\337 +\251\137\376\101\335\335\365\237\212\343\366\254\341\074\170\232 +\274\330\360\177\172\240\063\052\334\215\040\133\256\055\157\347 +\223\331\066\160\152\150\317\216\121\243\205\133\147\004\240\020 +\044\157\135\050\202\301\227\127\330\110\051\023\266\341\276\221 +\115\337\205\014\123\030\232\036\044\242\117\217\360\242\205\013 +\313\364\051\177\322\244\130\356\046\115\311\252\250\173\232\331 +\372\070\336\104\127\025\345\370\214\310\331\110\342\015\026\047 +\035\036\310\203\205\045\267\272\252\125\101\314\003\042\113\055 +\221\215\213\346\211\257\146\307\351\377\053\351\074\254\332\322 +\263\303\341\150\234\211\370\172\000\126\336\364\125\225\154\373 +\272\144\335\142\213\337\013\167\062\353\142\314\046\232\233\273 +\252\142\203\114\264\006\172\060\310\051\277\355\006\115\227\271 +\034\304\061\053\325\137\274\123\022\027\234\231\127\051\146\167 +\141\041\061\007\056\045\111\235\030\362\356\363\053\161\214\265 +\272\071\007\111\167\374\357\056\222\220\005\215\055\057\167\173 +\357\103\277\065\273\232\330\371\163\247\054\362\320\127\356\050 +\116\046\137\217\220\150\011\057\270\370\334\006\351\056\232\076 +\121\247\321\042\304\012\247\070\110\154\263\371\377\175\253\206 +\127\343\272\326\205\170\167\272\103\352\110\177\366\330\276\043 +\155\036\277\321\066\154\130\134\361\356\244\031\124\032\365\003 +\322\166\346\341\214\275\074\263\323\110\113\342\310\370\177\222 +\250\166\106\234\102\145\076\244\036\301\007\003\132\106\055\270 +\227\363\267\325\262\125\041\357\272\334\114\000\227\373\024\225 +\047\063\277\350\103\107\106\322\010\231\026\140\073\232\176\322 +\346\355\070\352\354\001\036\074\110\126\111\011\307\114\067\000 +\236\210\016\300\163\341\157\146\351\162\107\060\076\020\345\013 +\003\311\232\102\000\154\305\224\176\141\304\212\337\177\202\032 +\013\131\304\131\062\167\263\274\140\151\126\071\375\264\006\173 +\054\326\144\066\331\275\110\355\204\037\176\245\042\217\052\270 +\102\364\202\267\324\123\220\170\116\055\032\375\201\157\104\327 +\073\001\164\226\102\340\000\342\056\153\352\305\356\162\254\273 +\277\376\352\252\250\370\334\366\262\171\212\266\147\002\003\001 +\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026\004 +\024\235\300\147\246\014\042\331\046\365\105\253\246\145\122\021 +\047\330\105\254\143\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\015\006\011\052\206\110\206\367\015 +\001\001\014\005\000\003\202\002\001\000\263\127\115\020\142\116 +\072\344\254\352\270\034\257\062\043\310\263\111\132\121\234\166 +\050\215\171\252\127\106\027\325\365\122\366\267\104\350\010\104 +\277\030\204\322\013\200\315\305\022\375\000\125\005\141\207\101 +\334\265\044\236\074\304\330\310\373\160\236\057\170\226\203\040 +\066\336\174\017\151\023\210\245\165\066\230\010\246\306\337\254 +\316\343\130\326\267\076\336\272\363\353\064\100\330\242\201\365 +\170\077\057\325\245\374\331\242\324\136\004\016\027\255\376\101 +\360\345\262\162\372\104\202\063\102\350\055\130\367\126\214\142 +\077\272\102\260\234\014\134\176\056\145\046\134\123\117\000\262 +\170\176\241\015\231\055\215\270\035\216\242\304\260\375\140\320 +\060\244\216\310\004\142\251\304\355\065\336\172\227\355\016\070 +\136\222\057\223\160\245\251\234\157\247\175\023\035\176\306\010 +\110\261\136\147\353\121\010\045\351\346\045\153\122\051\221\234 +\322\071\163\010\127\336\231\006\264\133\235\020\006\341\302\000 +\250\270\034\112\002\012\024\320\301\101\312\373\214\065\041\175 +\202\070\362\251\124\221\031\065\223\224\155\152\072\305\262\320 +\273\211\206\223\350\233\311\017\072\247\172\270\241\360\170\106 +\372\374\067\057\345\212\204\363\337\376\004\331\241\150\240\057 +\044\342\011\225\006\325\225\312\341\044\226\353\174\366\223\005 +\273\355\163\351\055\321\165\071\327\347\044\333\330\116\137\103 +\217\236\320\024\071\277\125\160\110\231\127\061\264\234\356\112 +\230\003\226\060\037\140\006\356\033\043\376\201\140\043\032\107 +\142\205\245\314\031\064\200\157\263\254\032\343\237\360\173\110 +\255\325\001\331\147\266\251\162\223\352\055\146\265\262\270\344 +\075\074\262\357\114\214\352\353\007\277\253\065\232\125\206\274 +\030\246\265\250\136\264\203\154\153\151\100\323\237\334\361\303 +\151\153\271\341\155\011\364\361\252\120\166\012\172\175\172\027 +\241\125\226\102\231\061\011\335\140\021\215\005\060\176\346\216 +\106\321\235\024\332\307\027\344\005\226\214\304\044\265\033\317 +\024\007\262\100\370\243\236\101\206\274\004\320\153\226\310\052 +\200\064\375\277\357\006\243\335\130\305\205\075\076\217\376\236 +\051\340\266\270\011\150\031\034\030\103 +END + +# Trust for Certificate "AffirmTrust Premium" +# Issuer: CN=AffirmTrust Premium,O=AffirmTrust,C=US +# Serial Number:6d:8c:14:46:b1:a6:0a:ee +# Subject: CN=AffirmTrust Premium,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:10:36 2010 +# Not Valid After : Mon Dec 31 14:10:36 2040 +# Fingerprint (MD5): C4:5D:0E:48:B6:AC:28:30:4E:0A:BC:F9:38:16:87:57 +# Fingerprint (SHA1): D8:A6:33:2C:E0:03:6F:B1:85:F6:63:4F:7D:6A:06:65:26:32:28:27 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Premium" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\330\246\063\054\340\003\157\261\205\366\143\117\175\152\006\145 +\046\062\050\047 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\304\135\016\110\266\254\050\060\116\012\274\371\070\026\207\127 +END +CKA_ISSUER MULTILINE_OCTAL +\060\101\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\034\060\032\006\003\125\004\003\014\023 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\155\214\024\106\261\246\012\356 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AffirmTrust Premium ECC" +# +# Issuer: CN=AffirmTrust Premium ECC,O=AffirmTrust,C=US +# Serial Number:74:97:25:8a:c7:3f:7a:54 +# Subject: CN=AffirmTrust Premium ECC,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:20:24 2010 +# Not Valid After : Mon Dec 31 14:20:24 2040 +# Fingerprint (MD5): 64:B0:09:55:CF:B1:D5:99:E2:BE:13:AB:A6:5D:EA:4D +# Fingerprint (SHA1): B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB +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 "AffirmTrust Premium ECC" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\040\060\036\006\003\125\004\003\014\027 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155\040\105\103\103 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\040\060\036\006\003\125\004\003\014\027 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155\040\105\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\164\227\045\212\307\077\172\124 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\001\376\060\202\001\205\240\003\002\001\002\002\010\164 +\227\045\212\307\077\172\124\060\012\006\010\052\206\110\316\075 +\004\003\003\060\105\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\024\060\022\006\003\125\004\012\014\013\101\146\146 +\151\162\155\124\162\165\163\164\061\040\060\036\006\003\125\004 +\003\014\027\101\146\146\151\162\155\124\162\165\163\164\040\120 +\162\145\155\151\165\155\040\105\103\103\060\036\027\015\061\060 +\060\061\062\071\061\064\062\060\062\064\132\027\015\064\060\061 +\062\063\061\061\064\062\060\062\064\132\060\105\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\024\060\022\006\003\125 +\004\012\014\013\101\146\146\151\162\155\124\162\165\163\164\061 +\040\060\036\006\003\125\004\003\014\027\101\146\146\151\162\155 +\124\162\165\163\164\040\120\162\145\155\151\165\155\040\105\103 +\103\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\015\060\136\033\025\235\003 +\320\241\171\065\267\072\074\222\172\312\025\034\315\142\363\234 +\046\134\007\075\345\124\372\243\326\314\022\352\364\024\137\350 +\216\031\253\057\056\110\346\254\030\103\170\254\320\067\303\275 +\262\315\054\346\107\342\032\346\143\270\075\056\057\170\304\117 +\333\364\017\244\150\114\125\162\153\225\035\116\030\102\225\170 +\314\067\074\221\342\233\145\053\051\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\232\257\051\172\300\021\065\065 +\046\121\060\000\303\152\376\100\325\256\326\074\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\012\006 +\010\052\206\110\316\075\004\003\003\003\147\000\060\144\002\060 +\027\011\363\207\210\120\132\257\310\300\102\277\107\137\365\154 +\152\206\340\304\047\164\344\070\123\327\005\177\033\064\343\306 +\057\263\312\011\074\067\235\327\347\270\106\361\375\241\342\161 +\002\060\102\131\207\103\324\121\337\272\323\011\062\132\316\210 +\176\127\075\234\137\102\153\365\007\055\265\360\202\223\371\131 +\157\256\144\372\130\345\213\036\343\143\276\265\201\315\157\002 +\214\171 +END + +# Trust for Certificate "AffirmTrust Premium ECC" +# Issuer: CN=AffirmTrust Premium ECC,O=AffirmTrust,C=US +# Serial Number:74:97:25:8a:c7:3f:7a:54 +# Subject: CN=AffirmTrust Premium ECC,O=AffirmTrust,C=US +# Not Valid Before: Fri Jan 29 14:20:24 2010 +# Not Valid After : Mon Dec 31 14:20:24 2040 +# Fingerprint (MD5): 64:B0:09:55:CF:B1:D5:99:E2:BE:13:AB:A6:5D:EA:4D +# Fingerprint (SHA1): B8:23:6B:00:2F:1D:16:86:53:01:55:6C:11:A4:37:CA:EB:FF:C3:BB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AffirmTrust Premium ECC" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\270\043\153\000\057\035\026\206\123\001\125\154\021\244\067\312 +\353\377\303\273 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\144\260\011\125\317\261\325\231\342\276\023\253\246\135\352\115 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\024\060\022\006\003\125\004\012\014\013\101\146\146\151\162\155 +\124\162\165\163\164\061\040\060\036\006\003\125\004\003\014\027 +\101\146\146\151\162\155\124\162\165\163\164\040\120\162\145\155 +\151\165\155\040\105\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\164\227\045\212\307\077\172\124 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certum Trusted Network CA" +# +# Issuer: CN=Certum Trusted Network CA,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Serial Number: 279744 (0x444c0) +# Subject: CN=Certum Trusted Network CA,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Not Valid Before: Wed Oct 22 12:07:37 2008 +# Not Valid After : Mon Dec 31 12:07:37 2029 +# Fingerprint (MD5): D5:E9:81:40:C5:18:69:FC:46:2C:89:75:62:0F:AA:78 +# Fingerprint (SHA1): 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E +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 Trusted Network CA" +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\120\114\061 +\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164 +\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123 +\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145 +\162\164\165\155\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\042\060\040 +\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124\162 +\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164 +\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123 +\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145 +\162\164\165\155\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\042\060\040 +\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124\162 +\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\004\104\300 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\273\060\202\002\243\240\003\002\001\002\002\003\004 +\104\300\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\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\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\042\060 +\040\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103 +\101\060\036\027\015\060\070\061\060\062\062\061\062\060\067\063 +\067\132\027\015\062\071\061\062\063\061\061\062\060\067\063\067 +\132\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\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\042\060 +\040\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\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\343\373\175\243\162\272\302\360\311\024\207\365\153\001 +\116\341\156\100\007\272\155\047\135\177\367\133\055\263\132\307 +\121\137\253\244\062\246\141\207\266\156\017\206\322\060\002\227 +\370\327\151\127\241\030\071\135\152\144\171\306\001\131\254\074 +\061\112\070\174\322\004\322\113\050\350\040\137\073\007\242\314 +\115\163\333\363\256\117\307\126\325\132\247\226\211\372\363\253 +\150\324\043\206\131\047\317\011\047\274\254\156\162\203\034\060 +\162\337\340\242\351\322\341\164\165\031\275\052\236\173\025\124 +\004\033\327\103\071\255\125\050\305\342\032\273\364\300\344\256 +\070\111\063\314\166\205\237\071\105\322\244\236\362\022\214\121 +\370\174\344\055\177\365\254\137\353\026\237\261\055\321\272\314 +\221\102\167\114\045\311\220\070\157\333\360\314\373\216\036\227 +\131\076\325\140\116\346\005\050\355\111\171\023\113\272\110\333 +\057\371\162\323\071\312\376\037\330\064\162\365\264\100\317\061 +\001\303\354\336\021\055\027\135\037\270\120\321\136\031\247\151 +\336\007\063\050\312\120\225\371\247\124\313\124\206\120\105\251 +\371\111\002\003\001\000\001\243\102\060\100\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\010\166\315\313\007\377\044\366\305 +\315\355\273\220\274\342\204\067\106\165\367\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\246 +\250\255\042\316\001\075\246\243\377\142\320\110\235\213\136\162 +\260\170\104\343\334\034\257\011\375\043\110\372\275\052\304\271 +\125\004\265\020\243\215\047\336\013\202\143\320\356\336\014\067 +\171\101\133\042\262\260\232\101\134\246\160\340\324\320\167\313 +\043\323\000\340\154\126\057\341\151\015\015\331\252\277\041\201 +\120\331\006\245\250\377\225\067\320\252\376\342\263\365\231\055 +\105\204\212\345\102\011\327\164\002\057\367\211\330\231\351\274 +\047\324\107\215\272\015\106\034\167\317\024\244\034\271\244\061 +\304\234\050\164\003\064\377\063\031\046\245\351\015\164\267\076 +\227\306\166\350\047\226\243\146\335\341\256\362\101\133\312\230 +\126\203\163\160\344\206\032\322\061\101\272\057\276\055\023\132 +\166\157\116\350\116\201\016\077\133\003\042\240\022\276\146\130 +\021\112\313\003\304\264\052\052\055\226\027\340\071\124\274\110 +\323\166\047\235\232\055\006\246\311\354\071\322\253\333\237\232 +\013\047\002\065\051\261\100\225\347\371\350\234\125\210\031\106 +\326\267\064\365\176\316\071\232\331\070\361\121\367\117\054 +END + +# Trust for Certificate "Certum Trusted Network CA" +# Issuer: CN=Certum Trusted Network CA,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Serial Number: 279744 (0x444c0) +# Subject: CN=Certum Trusted Network CA,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Not Valid Before: Wed Oct 22 12:07:37 2008 +# Not Valid After : Mon Dec 31 12:07:37 2029 +# Fingerprint (MD5): D5:E9:81:40:C5:18:69:FC:46:2C:89:75:62:0F:AA:78 +# Fingerprint (SHA1): 07:E0:32:E0:20:B7:2C:3F:19:2F:06:28:A2:59:3A:19:A7:0F:06:9E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certum Trusted Network CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\007\340\062\340\040\267\054\077\031\057\006\050\242\131\072\031 +\247\017\006\236 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\325\351\201\100\305\030\151\374\106\054\211\165\142\017\252\170 +END +CKA_ISSUER MULTILINE_OCTAL +\060\176\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164 +\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123 +\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145 +\162\164\165\155\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\042\060\040 +\006\003\125\004\003\023\031\103\145\162\164\165\155\040\124\162 +\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\004\104\300 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certinomis - Autorité Racine" +# +# Issuer: CN=Certinomis - Autorit.. Racine,OU=0002 433998903,O=Certinomis,C=FR +# Serial Number: 1 (0x1) +# Subject: CN=Certinomis - Autorit.. Racine,OU=0002 433998903,O=Certinomis,C=FR +# Not Valid Before: Wed Sep 17 08:28:59 2008 +# Not Valid After : Sun Sep 17 08:28:59 2028 +# Fingerprint (MD5): 7F:30:78:8C:03:E3:CA:C9:0A:E2:C9:EA:1E:AA:55:1A +# Fingerprint (SHA1): 2E:14:DA:EC:28:F0:FA:1E:8E:38:9A:4E:AB:EB:26:C0:0A:D3:83:C3 +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 "Certinomis - Autorité Racine" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060 +\044\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155 +\151\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122 +\141\143\151\156\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060 +\044\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155 +\151\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122 +\141\143\151\156\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\234\060\202\003\204\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061\023 +\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156\157 +\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060\060 +\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060\044 +\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155\151 +\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122\141 +\143\151\156\145\060\036\027\015\060\070\060\071\061\067\060\070 +\062\070\065\071\132\027\015\062\070\060\071\061\067\060\070\062 +\070\065\071\132\060\143\061\013\060\011\006\003\125\004\006\023 +\002\106\122\061\023\060\021\006\003\125\004\012\023\012\103\145 +\162\164\151\156\157\155\151\163\061\027\060\025\006\003\125\004 +\013\023\016\060\060\060\062\040\064\063\063\071\071\070\071\060 +\063\061\046\060\044\006\003\125\004\003\014\035\103\145\162\164 +\151\156\157\155\151\163\040\055\040\101\165\164\157\162\151\164 +\303\251\040\122\141\143\151\156\145\060\202\002\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017 +\000\060\202\002\012\002\202\002\001\000\235\205\237\206\323\343 +\257\307\262\153\156\063\340\236\267\102\064\125\235\371\201\276 +\143\330\043\166\016\227\124\315\231\114\032\361\071\307\210\330 +\027\120\014\236\141\332\300\116\125\336\347\132\270\172\116\167 +\207\015\345\270\353\372\236\136\173\036\304\317\050\164\307\223 +\365\024\306\042\050\004\371\221\303\253\047\163\152\016\056\115 +\363\056\050\037\160\337\125\057\116\355\307\161\157\011\162\056 +\355\325\062\227\320\361\130\167\321\140\274\116\136\333\232\204 +\366\107\141\105\053\366\120\246\177\152\161\047\110\204\065\236 +\254\376\151\251\236\172\136\065\045\372\264\247\111\065\167\226 +\247\066\133\341\315\337\043\160\330\135\114\245\010\203\361\246 +\044\070\023\250\354\057\250\241\147\307\246\055\206\107\356\212 +\374\354\233\016\164\364\053\111\002\173\220\165\214\374\231\071 +\001\071\326\112\211\345\236\166\253\076\226\050\070\046\213\335 +\215\214\300\366\001\036\157\245\061\022\070\175\225\302\161\356 +\355\164\256\344\066\242\103\165\325\361\000\233\342\344\327\314 +\102\003\113\170\172\345\175\273\270\256\056\040\223\323\344\141 +\337\161\341\166\147\227\077\266\337\152\163\132\144\042\345\102 +\333\317\201\003\223\330\364\343\020\340\162\366\000\160\254\360 +\301\172\017\005\177\317\064\151\105\265\223\344\031\333\122\026 +\043\005\211\016\215\110\344\045\157\263\170\277\142\365\007\372 +\225\044\302\226\262\350\243\043\302\135\003\374\303\323\345\174 +\311\165\043\327\364\365\274\336\344\337\315\200\277\221\210\175 +\247\023\264\071\272\054\272\275\321\153\314\363\245\050\355\104 +\236\175\122\243\157\226\056\031\176\034\363\133\307\026\216\273 +\140\175\167\146\107\124\202\000\021\140\154\062\301\250\070\033 +\353\156\230\023\326\356\070\365\360\237\016\357\376\061\201\301 +\322\044\225\057\123\172\151\242\360\017\206\105\216\130\202\053 +\114\042\324\136\240\347\175\046\047\110\337\045\106\215\112\050 +\174\206\236\371\233\032\131\271\145\277\005\335\266\102\135\075 +\346\000\110\202\136\040\367\021\202\336\312\330\237\346\067\107 +\046\036\353\170\367\141\303\101\144\130\002\101\371\332\340\321 +\370\371\350\375\122\070\266\365\211\337\002\003\001\000\001\243 +\133\060\131\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\015 +\214\266\141\332\104\270\321\024\175\303\276\175\136\110\360\316 +\312\152\260\060\027\006\003\125\035\040\004\020\060\016\060\014 +\006\012\052\201\172\001\126\002\002\000\001\001\060\015\006\011 +\052\206\110\206\367\015\001\001\005\005\000\003\202\002\001\000 +\044\076\140\006\176\035\357\072\076\333\352\257\034\232\054\001 +\013\364\305\265\331\111\061\364\135\101\215\211\014\116\377\154 +\242\375\377\342\006\310\071\237\361\132\251\335\042\130\025\250 +\212\323\261\346\062\011\202\003\154\327\077\010\307\370\271\272 +\000\155\271\326\374\122\062\135\244\177\244\061\224\273\266\114 +\070\177\050\060\065\377\237\043\123\267\266\356\024\160\000\100 +\053\332\107\253\064\176\136\247\126\060\141\053\213\103\254\375 +\266\210\050\365\153\266\076\140\112\272\102\220\064\147\215\352 +\353\137\105\124\073\027\254\213\344\306\145\017\356\320\214\135 +\146\071\316\062\247\330\020\227\300\176\064\234\237\224\363\366 +\206\037\317\033\163\255\224\171\207\150\160\303\063\245\160\347 +\330\325\070\224\157\143\171\353\277\012\016\010\347\305\057\017 +\102\240\053\024\100\377\041\340\005\305\047\341\204\021\023\272 +\326\206\035\101\013\023\043\211\323\311\013\350\212\272\172\243 +\243\163\067\065\200\175\022\270\063\167\100\070\300\372\136\060 +\322\362\266\243\261\326\242\225\227\201\233\122\355\151\114\377 +\200\344\123\333\124\133\003\155\124\137\261\270\357\044\275\157 +\237\021\303\307\144\302\017\050\142\205\146\136\032\173\262\267 +\357\256\065\311\031\063\250\270\047\333\063\125\277\150\341\165 +\110\104\126\373\315\323\110\273\107\211\072\254\151\365\200\306 +\344\104\120\057\124\304\252\103\305\061\061\130\275\226\305\352 +\165\154\232\165\261\115\370\367\227\377\226\026\362\227\115\350 +\366\363\021\371\072\175\212\070\156\004\313\341\323\105\025\252 +\245\321\035\235\135\143\350\044\346\066\024\342\207\255\033\131 +\365\104\233\373\327\167\174\037\001\160\142\241\040\032\242\305 +\032\050\364\041\003\356\056\331\301\200\352\271\331\202\326\133 +\166\302\313\073\265\322\000\360\243\016\341\255\156\100\367\333 +\240\264\320\106\256\025\327\104\302\115\065\371\322\013\362\027 +\366\254\146\325\044\262\117\321\034\231\300\156\365\175\353\164 +\004\270\371\115\167\011\327\264\317\007\060\011\361\270\000\126 +\331\027\026\026\012\053\206\337\217\001\031\032\345\273\202\143 +\377\276\013\166\026\136\067\067\346\330\164\227\242\231\105\171 +END + +# Trust for Certificate "Certinomis - Autorité Racine" +# Issuer: CN=Certinomis - Autorit.. Racine,OU=0002 433998903,O=Certinomis,C=FR +# Serial Number: 1 (0x1) +# Subject: CN=Certinomis - Autorit.. Racine,OU=0002 433998903,O=Certinomis,C=FR +# Not Valid Before: Wed Sep 17 08:28:59 2008 +# Not Valid After : Sun Sep 17 08:28:59 2028 +# Fingerprint (MD5): 7F:30:78:8C:03:E3:CA:C9:0A:E2:C9:EA:1E:AA:55:1A +# Fingerprint (SHA1): 2E:14:DA:EC:28:F0:FA:1E:8E:38:9A:4E:AB:EB:26:C0:0A:D3:83:C3 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certinomis - Autorité Racine" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\056\024\332\354\050\360\372\036\216\070\232\116\253\353\046\300 +\012\323\203\303 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\177\060\170\214\003\343\312\311\012\342\311\352\036\252\125\032 +END +CKA_ISSUER MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\046\060 +\044\006\003\125\004\003\014\035\103\145\162\164\151\156\157\155 +\151\163\040\055\040\101\165\164\157\162\151\164\303\251\040\122 +\141\143\151\156\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TWCA Root Certification Authority" +# +# Issuer: CN=TWCA Root Certification Authority,OU=Root CA,O=TAIWAN-CA,C=TW +# Serial Number: 1 (0x1) +# Subject: CN=TWCA Root Certification Authority,OU=Root CA,O=TAIWAN-CA,C=TW +# Not Valid Before: Thu Aug 28 07:24:33 2008 +# Not Valid After : Tue Dec 31 15:59:59 2030 +# Fingerprint (MD5): AA:08:8F:F6:F9:7B:B7:F2:B1:A7:1E:9B:EA:EA:BD:79 +# Fingerprint (SHA1): CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48 +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 "TWCA Root Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\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\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\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\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\173\060\202\002\143\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061\022 +\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116\055 +\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157\157 +\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041\124 +\127\103\101\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\070\060\070\062\070\060\067\062\064\063\063 +\132\027\015\063\060\061\062\063\061\061\065\065\071\065\071\132 +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\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\260\176\162\270\244\003\224\346\247\336\011\070\221\112 +\021\100\207\247\174\131\144\024\173\265\021\020\335\376\277\325 +\300\273\126\342\205\045\364\065\162\017\370\123\320\101\341\104 +\001\302\264\034\303\061\102\026\107\205\063\042\166\262\012\157 +\017\345\045\120\117\205\206\276\277\230\056\020\147\036\276\021 +\005\206\005\220\304\131\320\174\170\020\260\200\134\267\341\307 +\053\165\313\174\237\256\265\321\235\043\067\143\247\334\102\242 +\055\222\004\033\120\301\173\270\076\033\311\126\004\213\057\122 +\233\255\251\126\351\301\377\255\251\130\207\060\266\201\367\227 +\105\374\031\127\073\053\157\344\107\364\231\105\376\035\361\370 +\227\243\210\035\067\034\134\217\340\166\045\232\120\370\240\124 +\377\104\220\166\043\322\062\306\303\253\006\277\374\373\277\363 +\255\175\222\142\002\133\051\323\065\243\223\232\103\144\140\135 +\262\372\062\377\073\004\257\115\100\152\371\307\343\357\043\375 +\153\313\345\017\213\070\015\356\012\374\376\017\230\237\060\061 +\335\154\122\145\371\213\201\276\042\341\034\130\003\272\221\033 +\211\007\002\003\001\000\001\243\102\060\100\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\152\070\133\046\215\336\213\132\362 +\117\172\124\203\031\030\343\010\065\246\272\060\015\006\011\052 +\206\110\206\367\015\001\001\005\005\000\003\202\001\001\000\074 +\325\167\075\332\337\211\272\207\014\010\124\152\040\120\222\276 +\260\101\075\271\046\144\203\012\057\350\100\300\227\050\047\202 +\060\112\311\223\377\152\347\246\000\177\211\102\232\326\021\345 +\123\316\057\314\362\332\005\304\376\342\120\304\072\206\175\314 +\332\176\020\011\073\222\065\052\123\262\376\353\053\005\331\154 +\135\346\320\357\323\152\146\236\025\050\205\172\350\202\000\254 +\036\247\011\151\126\102\323\150\121\030\276\124\232\277\104\101 +\272\111\276\040\272\151\134\356\270\167\315\316\154\037\255\203 +\226\030\175\016\265\024\071\204\361\050\351\055\243\236\173\036 +\172\162\132\203\263\171\157\357\264\374\320\012\245\130\117\106 +\337\373\155\171\131\362\204\042\122\256\017\314\373\174\073\347 +\152\312\107\141\303\172\370\323\222\004\037\270\040\204\341\066 +\124\026\307\100\336\073\212\163\334\337\306\011\114\337\354\332 +\377\324\123\102\241\311\362\142\035\042\203\074\227\305\371\031 +\142\047\254\145\042\327\323\074\306\345\216\262\123\314\111\316 +\274\060\376\173\016\063\220\373\355\322\024\221\037\007\257 +END + +# Trust for Certificate "TWCA Root Certification Authority" +# Issuer: CN=TWCA Root Certification Authority,OU=Root CA,O=TAIWAN-CA,C=TW +# Serial Number: 1 (0x1) +# Subject: CN=TWCA Root Certification Authority,OU=Root CA,O=TAIWAN-CA,C=TW +# Not Valid Before: Thu Aug 28 07:24:33 2008 +# Not Valid After : Tue Dec 31 15:59:59 2030 +# Fingerprint (MD5): AA:08:8F:F6:F9:7B:B7:F2:B1:A7:1E:9B:EA:EA:BD:79 +# Fingerprint (SHA1): CF:9E:87:6D:D3:EB:FC:42:26:97:A3:B5:A3:7A:A0:76:A9:06:23:48 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TWCA Root Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\317\236\207\155\323\353\374\102\046\227\243\265\243\172\240\166 +\251\006\043\110 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\252\010\217\366\371\173\267\362\261\247\036\233\352\352\275\171 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\014\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\014\007\122\157 +\157\164\040\103\101\061\052\060\050\006\003\125\004\003\014\041 +\124\127\103\101\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\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Root CA" +# +# Issuer: E=info@diginotar.nl,CN=DigiNotar Root CA,O=DigiNotar,C=NL +# Serial Number:0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff +# Subject: E=info@diginotar.nl,CN=DigiNotar Root CA,O=DigiNotar,C=NL +# Not Valid Before: Fri Jul 27 17:19:37 2007 +# Not Valid After : Mon Mar 31 18:19:22 2025 +# Fingerprint (MD5): 0A:A4:D5:CC:BA:B4:FB:A3:59:E3:E6:01:DD:53:D9:4E +# Fingerprint (SHA1): C1:77:CB:4B:E0:B4:26:8E:F5:C7:CF:45:99:22:B9:B0:CE:BA:21:2F +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 "Explicitly Distrust DigiNotar Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151 +\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061 +\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021 +\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156 +\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151 +\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061 +\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021 +\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156 +\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\017\377\377\377\377\377\377\377\377\377\377\377\377\377 +\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\212\060\202\003\162\240\003\002\001\002\002\020\017 +\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\137 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022\060 +\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164\141 +\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147\151 +\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040\060 +\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151\156 +\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154\060 +\036\027\015\060\067\060\067\062\067\061\067\061\071\063\067\132 +\027\015\062\065\060\063\063\061\061\070\061\071\062\062\132\060 +\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061\022 +\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157\164 +\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151\147 +\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061\040 +\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021\151 +\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156\154 +\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\254\260\130\301\000\275\330\041\010\013\053\232\376\156\126 +\060\005\237\033\167\220\020\101\134\303\015\207\021\167\216\201 +\361\312\174\351\214\152\355\070\164\065\273\332\337\371\273\300 +\011\067\264\226\163\201\175\063\032\230\071\367\223\157\225\177 +\075\271\261\165\207\272\121\110\350\213\160\076\225\004\305\330 +\266\303\026\331\210\260\261\207\035\160\332\206\264\017\024\213 +\172\317\020\321\164\066\242\022\173\167\206\112\171\346\173\337 +\002\021\150\245\116\206\256\064\130\233\044\023\170\126\042\045 +\036\001\213\113\121\161\373\202\314\131\226\151\210\132\150\123 +\305\271\015\002\067\313\113\274\146\112\220\176\052\013\005\007 +\355\026\137\125\220\165\330\106\311\033\203\342\010\276\361\043 +\314\231\035\326\052\017\203\040\025\130\047\202\056\372\342\042 +\302\111\261\271\001\201\152\235\155\235\100\167\150\166\116\041 +\052\155\204\100\205\116\166\231\174\202\363\363\267\002\131\324 +\046\001\033\216\337\255\123\006\321\256\030\335\342\262\072\313 +\327\210\070\216\254\133\051\271\031\323\230\371\030\003\317\110 +\202\206\146\013\033\151\017\311\353\070\210\172\046\032\005\114 +\222\327\044\324\226\362\254\122\055\243\107\325\122\366\077\376 +\316\204\006\160\246\252\076\242\362\266\126\064\030\127\242\344 +\201\155\347\312\360\152\323\307\221\153\002\203\101\174\025\357 +\153\232\144\136\343\320\074\345\261\353\173\135\206\373\313\346 +\167\111\315\243\145\334\367\271\234\270\344\013\137\223\317\314 +\060\032\062\034\316\034\143\225\245\371\352\341\164\213\236\351 +\053\251\060\173\240\030\037\016\030\013\345\133\251\323\321\154 +\036\007\147\217\221\113\251\212\274\322\146\252\223\001\210\262 +\221\372\061\134\325\246\301\122\010\011\315\012\143\242\323\042 +\246\350\241\331\071\006\227\365\156\215\002\220\214\024\173\077 +\200\315\033\234\272\304\130\162\043\257\266\126\237\306\172\102 +\063\051\007\077\202\311\346\037\005\015\315\114\050\066\213\323 +\310\076\034\306\210\357\136\356\211\144\351\035\353\332\211\176 +\062\246\151\321\335\314\210\237\321\320\311\146\041\334\006\147 +\305\224\172\232\155\142\114\175\314\340\144\200\262\236\107\216 +\243\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125 +\035\016\004\026\004\024\210\150\277\340\216\065\304\073\070\153 +\142\367\050\073\204\201\310\014\327\115\060\015\006\011\052\206 +\110\206\367\015\001\001\005\005\000\003\202\002\001\000\073\002 +\215\313\074\060\350\156\240\255\362\163\263\137\236\045\023\004 +\005\323\366\343\213\273\013\171\316\123\336\344\226\305\321\257 +\163\274\325\303\320\100\125\174\100\177\315\033\137\011\325\362 +\174\237\150\035\273\135\316\172\071\302\214\326\230\173\305\203 +\125\250\325\175\100\312\340\036\367\211\136\143\135\241\023\302 +\135\212\266\212\174\000\363\043\303\355\205\137\161\166\360\150 +\143\252\105\041\071\110\141\170\066\334\361\103\223\324\045\307 +\362\200\145\341\123\002\165\121\374\172\072\357\067\253\204\050 +\127\014\330\324\324\231\126\154\343\242\376\131\204\264\061\350 +\063\370\144\224\224\121\227\253\071\305\113\355\332\335\200\013 +\157\174\051\015\304\216\212\162\015\347\123\024\262\140\101\075 +\204\221\061\150\075\047\104\333\345\336\364\372\143\105\310\114 +\076\230\365\077\101\272\116\313\067\015\272\146\230\361\335\313 +\237\134\367\124\066\202\153\054\274\023\141\227\102\370\170\273 +\314\310\242\237\312\360\150\275\153\035\262\337\215\157\007\235 +\332\216\147\307\107\036\312\271\277\052\102\221\267\143\123\146 +\361\102\243\341\364\132\115\130\153\265\344\244\063\255\134\160 +\035\334\340\362\353\163\024\221\232\003\301\352\000\145\274\007 +\374\317\022\021\042\054\256\240\275\072\340\242\052\330\131\351 +\051\323\030\065\244\254\021\137\031\265\265\033\377\042\112\134 +\306\172\344\027\357\040\251\247\364\077\255\212\247\232\004\045 +\235\016\312\067\346\120\375\214\102\051\004\232\354\271\317\113 +\162\275\342\010\066\257\043\057\142\345\312\001\323\160\333\174 +\202\043\054\026\061\014\306\066\007\220\172\261\037\147\130\304 +\073\130\131\211\260\214\214\120\263\330\206\313\150\243\304\012 +\347\151\113\040\316\301\036\126\113\225\251\043\150\330\060\330 +\303\353\260\125\121\315\345\375\053\270\365\273\021\237\123\124 +\366\064\031\214\171\011\066\312\141\027\045\027\013\202\230\163 +\014\167\164\303\325\015\307\250\022\114\307\247\124\161\107\056 +\054\032\175\311\343\053\073\110\336\047\204\247\143\066\263\175 +\217\240\144\071\044\015\075\173\207\257\146\134\164\033\113\163 +\262\345\214\360\206\231\270\345\305\337\204\301\267\353 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Root CA" +# Issuer: E=info@diginotar.nl,CN=DigiNotar Root CA,O=DigiNotar,C=NL +# Serial Number:0f:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff:ff +# Subject: E=info@diginotar.nl,CN=DigiNotar Root CA,O=DigiNotar,C=NL +# Not Valid Before: Fri Jul 27 17:19:37 2007 +# Not Valid After : Mon Mar 31 18:19:22 2025 +# Fingerprint (MD5): 0A:A4:D5:CC:BA:B4:FB:A3:59:E3:E6:01:DD:53:D9:4E +# Fingerprint (SHA1): C1:77:CB:4B:E0:B4:26:8E:F5:C7:CF:45:99:22:B9:B0:CE:BA:21:2F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\301\167\313\113\340\264\046\216\365\307\317\105\231\042\271\260 +\316\272\041\057 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\012\244\325\314\272\264\373\243\131\343\346\001\335\123\331\116 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\032\060\030\006\003\125\004\003\023\021\104\151 +\147\151\116\157\164\141\162\040\122\157\157\164\040\103\101\061 +\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026\021 +\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056\156 +\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\017\377\377\377\377\377\377\377\377\377\377\377\377\377 +\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Services 1024 CA" +# +# Issuer: E=info@diginotar.nl,CN=DigiNotar Services 1024 CA,O=DigiNotar,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: E=info@diginotar.nl,CN=DigiNotar Services 1024 CA,O=DigiNotar,C=NL +# Not Valid Before: Thu Jul 26 15:59:01 2007 +# Not Valid After : Mon Aug 26 16:29:01 2013 +# Fingerprint (MD5): 2F:16:68:97:4C:68:4F:CE:52:8A:EC:53:8F:93:49:F8 +# Fingerprint (SHA1): 12:3B:EA:CA:66:67:77:61:E0:EB:68:F2:FE:ED:A2:0F:20:05:55:70 +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 "Explicitly Distrust DigiNotar Services 1024 CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\043\060\041\006\003\125\004\003\023\032\104\151 +\147\151\116\157\164\141\162\040\123\145\162\166\151\143\145\163 +\040\061\060\062\064\040\103\101\061\040\060\036\006\011\052\206 +\110\206\367\015\001\011\001\026\021\151\156\146\157\100\144\151 +\147\151\156\157\164\141\162\056\156\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\043\060\041\006\003\125\004\003\023\032\104\151 +\147\151\116\157\164\141\162\040\123\145\162\166\151\143\145\163 +\040\061\060\062\064\040\103\101\061\040\060\036\006\011\052\206 +\110\206\367\015\001\011\001\026\021\151\156\146\157\100\144\151 +\147\151\156\157\164\141\162\056\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\161\060\202\002\332\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\150\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\043\060\041\006\003\125\004\003\023\032 +\104\151\147\151\116\157\164\141\162\040\123\145\162\166\151\143 +\145\163\040\061\060\062\064\040\103\101\061\040\060\036\006\011 +\052\206\110\206\367\015\001\011\001\026\021\151\156\146\157\100 +\144\151\147\151\156\157\164\141\162\056\156\154\060\036\027\015 +\060\067\060\067\062\066\061\065\065\071\060\061\132\027\015\061 +\063\060\070\062\066\061\066\062\071\060\061\132\060\150\061\013 +\060\011\006\003\125\004\006\023\002\116\114\061\022\060\020\006 +\003\125\004\012\023\011\104\151\147\151\116\157\164\141\162\061 +\043\060\041\006\003\125\004\003\023\032\104\151\147\151\116\157 +\164\141\162\040\123\145\162\166\151\143\145\163\040\061\060\062 +\064\040\103\101\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\144\151\147\151\156\157 +\164\141\162\056\156\154\060\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\332\233\115\135\074\371\321\342\213\306\306\010\040 +\305\331\036\110\354\146\130\147\171\142\053\101\143\364\211\215 +\150\332\257\270\224\066\213\031\044\244\240\223\322\231\017\262 +\255\055\065\115\315\057\152\341\371\233\031\053\274\004\032\176 +\055\075\122\144\315\361\076\147\017\211\056\350\362\117\256\246 +\010\241\205\376\241\251\011\346\306\253\076\103\374\257\172\003 +\221\332\246\071\246\141\356\230\117\030\250\323\263\257\146\202 +\351\237\274\335\162\371\006\004\275\022\331\030\044\347\253\223 +\123\213\131\002\003\001\000\001\243\202\001\046\060\202\001\042 +\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001 +\377\002\001\000\060\047\006\003\125\035\045\004\040\060\036\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\004\060\021\006 +\003\125\035\040\004\012\060\010\060\006\006\004\125\035\040\000 +\060\063\006\010\053\006\001\005\005\007\001\001\004\047\060\045 +\060\043\006\010\053\006\001\005\005\007\060\001\206\027\150\164 +\164\160\072\057\057\157\143\163\160\056\145\156\164\162\165\163 +\164\056\156\145\164\060\063\006\003\125\035\037\004\054\060\052 +\060\050\240\046\240\044\206\042\150\164\164\160\072\057\057\143 +\162\154\056\145\156\164\162\165\163\164\056\156\145\164\057\163 +\145\162\166\145\162\061\056\143\162\154\060\035\006\003\125\035 +\016\004\026\004\024\376\334\224\111\014\157\357\134\177\306\361 +\022\231\117\026\111\255\373\202\145\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\360\027\142\023\125\075\263\377\012\000\153\373\120 +\204\227\363\355\142\320\032\060\031\006\011\052\206\110\206\366 +\175\007\101\000\004\014\060\012\033\004\126\067\056\061\003\002 +\000\201\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\201\201\000\143\164\152\067\251\077\226\234\146\310\130 +\254\011\311\357\365\145\224\177\243\002\304\070\061\275\135\043 +\207\354\324\126\262\311\262\156\344\005\006\374\354\365\372\210 +\160\131\324\356\346\335\265\172\240\243\140\057\002\014\253\336 +\022\135\257\360\065\113\252\212\107\221\032\365\205\054\102\307 +\035\357\225\103\263\136\270\225\223\245\332\305\050\252\255\162 +\055\061\255\231\153\154\377\214\041\047\257\255\232\221\053\307 +\335\130\303\156\007\305\237\171\322\307\214\125\277\114\307\047 +\136\121\026\053\076 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Services 1024 CA" +# Issuer: E=info@diginotar.nl,CN=DigiNotar Services 1024 CA,O=DigiNotar,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: E=info@diginotar.nl,CN=DigiNotar Services 1024 CA,O=DigiNotar,C=NL +# Not Valid Before: Thu Jul 26 15:59:01 2007 +# Not Valid After : Mon Aug 26 16:29:01 2013 +# Fingerprint (MD5): 2F:16:68:97:4C:68:4F:CE:52:8A:EC:53:8F:93:49:F8 +# Fingerprint (SHA1): 12:3B:EA:CA:66:67:77:61:E0:EB:68:F2:FE:ED:A2:0F:20:05:55:70 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Services 1024 CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\022\073\352\312\146\147\167\141\340\353\150\362\376\355\242\017 +\040\005\125\160 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\057\026\150\227\114\150\117\316\122\212\354\123\217\223\111\370 +END +CKA_ISSUER MULTILINE_OCTAL +\060\150\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\043\060\041\006\003\125\004\003\023\032\104\151 +\147\151\116\157\164\141\162\040\123\145\162\166\151\143\145\163 +\040\061\060\062\064\040\103\101\061\040\060\036\006\011\052\206 +\110\206\367\015\001\011\001\026\021\151\156\146\157\100\144\151 +\147\151\156\157\164\141\162\056\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Cyber CA" +# +# Issuer: E=info@diginotar.nl,CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: E=info@diginotar.nl,CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Not Valid Before: Wed Oct 04 10:54:12 2006 +# Not Valid After : Tue Oct 04 10:53:12 2011 +# Fingerprint (MD5): BC:BD:89:12:B4:FF:E5:F9:26:47:C8:60:36:5B:D9:54 +# Fingerprint (SHA1): A5:8E:A0:EC:F6:44:56:35:19:1D:68:5B:C7:A0:E4:1C:B0:4D:79:2E +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 "Explicitly Distrust DigiNotar Cyber CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +\061\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026 +\021\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056 +\156\154 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +\061\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026 +\021\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056 +\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\105\060\202\004\256\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\140\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\033\060\031\006\003\125\004\003\023\022 +\104\151\147\151\116\157\164\141\162\040\103\171\142\145\162\040 +\103\101\061\040\060\036\006\011\052\206\110\206\367\015\001\011 +\001\026\021\151\156\146\157\100\144\151\147\151\156\157\164\141 +\162\056\156\154\060\036\027\015\060\066\061\060\060\064\061\060 +\065\064\061\062\132\027\015\061\061\061\060\060\064\061\060\065 +\063\061\062\132\060\140\061\013\060\011\006\003\125\004\006\023 +\002\116\114\061\022\060\020\006\003\125\004\012\023\011\104\151 +\147\151\116\157\164\141\162\061\033\060\031\006\003\125\004\003 +\023\022\104\151\147\151\116\157\164\141\162\040\103\171\142\145 +\162\040\103\101\061\040\060\036\006\011\052\206\110\206\367\015 +\001\011\001\026\021\151\156\146\157\100\144\151\147\151\156\157 +\164\141\162\056\156\154\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\322\316\025\012\055\250\136\204\147 +\255\375\276\357\106\307\310\271\317\163\374\364\064\271\371\054 +\103\347\140\023\075\172\343\262\317\073\147\154\220\255\300\271 +\077\204\122\360\065\102\334\164\334\050\073\275\122\264\247\254 +\162\105\027\306\360\211\353\264\252\045\362\135\113\136\321\331 +\207\272\326\175\174\365\316\062\237\020\063\305\261\112\273\136 +\221\061\302\320\351\101\302\221\144\176\011\101\073\333\213\010 +\067\152\252\312\122\336\265\071\036\300\210\003\245\077\213\231 +\023\141\103\265\233\202\263\356\040\157\317\241\104\242\352\057 +\153\100\237\217\053\127\255\241\123\302\205\042\151\235\240\077 +\121\337\013\101\221\015\245\341\250\252\134\111\010\135\275\336 +\160\101\261\017\311\143\153\323\177\064\164\002\057\064\132\170 +\165\034\150\172\201\147\212\363\332\100\360\140\143\364\222\040 +\327\003\246\075\243\036\147\304\204\033\101\245\311\214\346\275 +\352\110\266\005\026\010\263\067\022\132\367\141\074\367\070\157 +\056\227\340\157\126\070\124\323\050\265\255\024\156\056\113\144 +\265\047\145\267\165\045\011\266\007\075\225\126\002\012\202\140 +\262\163\105\340\063\046\121\164\232\271\324\120\034\366\115\133 +\133\122\122\023\132\246\177\247\016\341\350\101\124\147\230\214 +\207\325\311\323\154\313\323\124\222\006\011\064\101\367\201\157 +\077\236\311\174\165\125\260\347\301\263\167\350\303\304\000\065 +\225\100\160\020\112\005\336\045\273\237\131\245\144\274\107\140 +\277\140\343\166\213\023\125\335\341\164\172\271\317\044\246\152 +\177\336\144\042\104\130\150\202\152\020\371\075\345\076\033\271 +\275\374\042\364\140\004\211\273\125\155\050\125\372\336\216\215 +\033\041\024\327\067\213\064\173\115\366\262\262\020\317\063\261 +\175\034\142\231\110\313\053\154\166\226\125\277\031\015\035\037 +\273\145\252\033\216\231\265\306\050\220\345\202\055\170\120\040 +\232\375\171\057\044\177\360\211\051\151\364\175\315\163\276\263 +\355\116\301\321\355\122\136\217\367\270\327\215\207\255\262\331 +\033\121\022\377\126\263\341\257\064\175\134\244\170\210\020\236 +\235\003\306\245\252\242\044\121\367\111\024\305\261\356\131\103 +\225\337\253\150\050\060\077\002\003\001\000\001\243\202\001\206 +\060\202\001\202\060\022\006\003\125\035\023\001\001\377\004\010 +\060\006\001\001\377\002\001\001\060\123\006\003\125\035\040\004 +\114\060\112\060\110\006\011\053\006\001\004\001\261\076\001\000 +\060\073\060\071\006\010\053\006\001\005\005\007\002\001\026\055 +\150\164\164\160\072\057\057\167\167\167\056\160\165\142\154\151 +\143\055\164\162\165\163\164\056\143\157\155\057\103\120\123\057 +\117\155\156\151\122\157\157\164\056\150\164\155\154\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\201\240 +\006\003\125\035\043\004\201\230\060\201\225\200\024\246\014\035 +\237\141\377\007\027\265\277\070\106\333\103\060\325\216\260\122 +\006\241\171\244\167\060\165\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\030\060\026\006\003\125\004\012\023\017\107 +\124\105\040\103\157\162\160\157\162\141\164\151\157\156\061\047 +\060\045\006\003\125\004\013\023\036\107\124\105\040\103\171\142 +\145\162\124\162\165\163\164\040\123\157\154\165\164\151\157\156 +\163\054\040\111\156\143\056\061\043\060\041\006\003\125\004\003 +\023\032\107\124\105\040\103\171\142\145\162\124\162\165\163\164 +\040\107\154\157\142\141\154\040\122\157\157\164\202\002\001\245 +\060\105\006\003\125\035\037\004\076\060\074\060\072\240\070\240 +\066\206\064\150\164\164\160\072\057\057\167\167\167\056\160\165 +\142\154\151\143\055\164\162\165\163\164\056\143\157\155\057\143 +\147\151\055\142\151\156\057\103\122\114\057\062\060\061\070\057 +\143\144\160\056\143\162\154\060\035\006\003\125\035\016\004\026 +\004\024\253\371\150\337\317\112\067\327\173\105\214\137\162\336 +\100\104\303\145\273\302\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\201\201\000\217\150\153\245\133\007\272 +\104\146\016\034\250\134\060\173\063\344\012\046\004\374\357\236 +\032\070\326\056\241\037\320\231\107\302\165\144\044\375\236\073 +\050\166\271\046\050\141\221\014\155\054\370\004\237\174\120\001 +\325\343\151\257\357\025\322\105\233\044\011\052\146\005\117\045 +\201\312\135\276\252\301\131\047\256\063\216\202\367\337\164\260 +\125\263\216\370\347\067\310\156\252\126\104\366\275\123\201\043 +\226\075\264\372\062\212\123\146\104\045\242\045\306\246\074\045 +\214\360\340\050\006\042\267\046\101 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Cyber CA" +# Issuer: E=info@diginotar.nl,CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: E=info@diginotar.nl,CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Not Valid Before: Wed Oct 04 10:54:12 2006 +# Not Valid After : Tue Oct 04 10:53:12 2011 +# Fingerprint (MD5): BC:BD:89:12:B4:FF:E5:F9:26:47:C8:60:36:5B:D9:54 +# Fingerprint (SHA1): A5:8E:A0:EC:F6:44:56:35:19:1D:68:5B:C7:A0:E4:1C:B0:4D:79:2E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Cyber CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\245\216\240\354\366\104\126\065\031\035\150\133\307\240\344\034 +\260\115\171\056 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\274\275\211\022\264\377\345\371\046\107\310\140\066\133\331\124 +END +CKA_ISSUER MULTILINE_OCTAL +\060\140\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +\061\040\060\036\006\011\052\206\110\206\367\015\001\011\001\026 +\021\151\156\146\157\100\144\151\147\151\156\157\164\141\162\056 +\156\154 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrust DigiNotar Cyber CA 2nd" +# +# Issuer: CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Not Valid Before: Wed Sep 27 10:53:53 2006 +# Not Valid After : Fri Sep 20 09:44:07 2013 +# Fingerprint (MD5): F0:AE:A9:3D:F2:2C:88:DC:7C:85:1B:96:7D:5A:1C:11 +# Fingerprint (SHA1): 88:1E:45:05:0F:98:D9:59:FB:0A:35:F9:4C:0E:28:97:55:16:29:B3 +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 "Explicitly Distrust DigiNotar Cyber CA 2nd" +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\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\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\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\001\060\202\004\152\240\003\002\001\002\002\004\017 +\377\377\377\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\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\033\060\031\006\003\125\004\003\023\022 +\104\151\147\151\116\157\164\141\162\040\103\171\142\145\162\040 +\103\101\060\036\027\015\060\066\060\071\062\067\061\060\065\063 +\065\063\132\027\015\061\063\060\071\062\060\060\071\064\064\060 +\067\132\060\076\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\022\060\020\006\003\125\004\012\023\011\104\151\147\151 +\116\157\164\141\162\061\033\060\031\006\003\125\004\003\023\022 +\104\151\147\151\116\157\164\141\162\040\103\171\142\145\162\040 +\103\101\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\322\316\025\012\055\250\136\204\147\255\375\276\357 +\106\307\310\271\317\163\374\364\064\271\371\054\103\347\140\023 +\075\172\343\262\317\073\147\154\220\255\300\271\077\204\122\360 +\065\102\334\164\334\050\073\275\122\264\247\254\162\105\027\306 +\360\211\353\264\252\045\362\135\113\136\321\331\207\272\326\175 +\174\365\316\062\237\020\063\305\261\112\273\136\221\061\302\320 +\351\101\302\221\144\176\011\101\073\333\213\010\067\152\252\312 +\122\336\265\071\036\300\210\003\245\077\213\231\023\141\103\265 +\233\202\263\356\040\157\317\241\104\242\352\057\153\100\237\217 +\053\127\255\241\123\302\205\042\151\235\240\077\121\337\013\101 +\221\015\245\341\250\252\134\111\010\135\275\336\160\101\261\017 +\311\143\153\323\177\064\164\002\057\064\132\170\165\034\150\172 +\201\147\212\363\332\100\360\140\143\364\222\040\327\003\246\075 +\243\036\147\304\204\033\101\245\311\214\346\275\352\110\266\005 +\026\010\263\067\022\132\367\141\074\367\070\157\056\227\340\157 +\126\070\124\323\050\265\255\024\156\056\113\144\265\047\145\267 +\165\045\011\266\007\075\225\126\002\012\202\140\262\163\105\340 +\063\046\121\164\232\271\324\120\034\366\115\133\133\122\122\023 +\132\246\177\247\016\341\350\101\124\147\230\214\207\325\311\323 +\154\313\323\124\222\006\011\064\101\367\201\157\077\236\311\174 +\165\125\260\347\301\263\167\350\303\304\000\065\225\100\160\020 +\112\005\336\045\273\237\131\245\144\274\107\140\277\140\343\166 +\213\023\125\335\341\164\172\271\317\044\246\152\177\336\144\042 +\104\130\150\202\152\020\371\075\345\076\033\271\275\374\042\364 +\140\004\211\273\125\155\050\125\372\336\216\215\033\041\024\327 +\067\213\064\173\115\366\262\262\020\317\063\261\175\034\142\231 +\110\313\053\154\166\226\125\277\031\015\035\037\273\145\252\033 +\216\231\265\306\050\220\345\202\055\170\120\040\232\375\171\057 +\044\177\360\211\051\151\364\175\315\163\276\263\355\116\301\321 +\355\122\136\217\367\270\327\215\207\255\262\331\033\121\022\377 +\126\263\341\257\064\175\134\244\170\210\020\236\235\003\306\245 +\252\242\044\121\367\111\024\305\261\356\131\103\225\337\253\150 +\050\060\077\002\003\001\000\001\243\202\001\206\060\202\001\202 +\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001 +\377\002\001\001\060\123\006\003\125\035\040\004\114\060\112\060 +\110\006\011\053\006\001\004\001\261\076\001\000\060\073\060\071 +\006\010\053\006\001\005\005\007\002\001\026\055\150\164\164\160 +\072\057\057\167\167\167\056\160\165\142\154\151\143\055\164\162 +\165\163\164\056\143\157\155\057\103\120\123\057\117\155\156\151 +\122\157\157\164\056\150\164\155\154\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\201\240\006\003\125\035 +\043\004\201\230\060\201\225\200\024\246\014\035\237\141\377\007 +\027\265\277\070\106\333\103\060\325\216\260\122\006\241\171\244 +\167\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103 +\157\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003 +\125\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162 +\165\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111 +\156\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124 +\105\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157 +\142\141\154\040\122\157\157\164\202\002\001\245\060\105\006\003 +\125\035\037\004\076\060\074\060\072\240\070\240\066\206\064\150 +\164\164\160\072\057\057\167\167\167\056\160\165\142\154\151\143 +\055\164\162\165\163\164\056\143\157\155\057\143\147\151\055\142 +\151\156\057\103\122\114\057\062\060\061\070\057\143\144\160\056 +\143\162\154\060\035\006\003\125\035\016\004\026\004\024\253\371 +\150\337\317\112\067\327\173\105\214\137\162\336\100\104\303\145 +\273\302\060\015\006\011\052\206\110\206\367\015\001\001\005\005 +\000\003\201\201\000\011\312\142\017\215\273\112\340\324\172\065 +\053\006\055\321\050\141\266\254\001\373\203\111\274\256\324\057 +\055\206\256\031\203\245\326\035\023\342\027\276\376\062\164\351 +\172\024\070\312\224\136\367\051\001\151\161\033\221\032\375\243 +\273\252\035\312\173\342\026\375\241\243\016\363\014\137\262\341 +\040\061\224\053\136\222\166\355\372\351\265\043\246\277\012\073 +\003\251\157\122\140\124\315\137\351\267\057\174\242\047\375\101 +\203\165\266\015\373\170\046\363\261\105\351\062\225\052\032\065 +\041\225\305\242\165 +END + +# Trust for Certificate "Explicitly Distrust DigiNotar Cyber CA 2nd" +# Issuer: CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: CN=DigiNotar Cyber CA,O=DigiNotar,C=NL +# Not Valid Before: Wed Sep 27 10:53:53 2006 +# Not Valid After : Fri Sep 20 09:44:07 2013 +# Fingerprint (MD5): F0:AE:A9:3D:F2:2C:88:DC:7C:85:1B:96:7D:5A:1C:11 +# Fingerprint (SHA1): 88:1E:45:05:0F:98:D9:59:FB:0A:35:F9:4C:0E:28:97:55:16:29:B3 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrust DigiNotar Cyber CA 2nd" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\210\036\105\005\017\230\331\131\373\012\065\371\114\016\050\227 +\125\026\051\263 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\360\256\251\075\362\054\210\334\174\205\033\226\175\132\034\021 +END +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\022\060\020\006\003\125\004\012\023\011\104\151\147\151\116\157 +\164\141\162\061\033\060\031\006\003\125\004\003\023\022\104\151 +\147\151\116\157\164\141\162\040\103\171\142\145\162\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted DigiNotar PKIoverheid" +# +# Issuer: CN=DigiNotar PKIoverheid CA Overheid en Bedrijven,O=DigiNotar B.V.,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: CN=DigiNotar PKIoverheid CA Overheid en Bedrijven,O=DigiNotar B.V.,C=NL +# Not Valid Before: Thu Jul 05 08:42:08 2007 +# Not Valid After : Mon Jul 27 08:39:47 2015 +# Fingerprint (MD5): A3:CF:B3:FF:F9:4F:A7:B1:EB:3A:75:58:4E:2E:9F:EA +# Fingerprint (SHA1): A7:A8:C9:AC:F4:5F:90:92:76:86:B8:C0:A2:0E:93:58:7D:DE:30:E4 +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 "Explicitly Distrusted DigiNotar PKIoverheid" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\023\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\067\060\065\006\003\125\004 +\003\023\056\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\166\145\162 +\150\145\151\144\040\145\156\040\102\145\144\162\151\152\166\145 +\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\023\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\067\060\065\006\003\125\004 +\003\023\056\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\166\145\162 +\150\145\151\144\040\145\156\040\102\145\144\162\151\152\166\145 +\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\216\060\202\003\166\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\137\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\027\060\025\006\003\125\004\012\023\016\104\151\147\151 +\116\157\164\141\162\040\102\056\126\056\061\067\060\065\006\003 +\125\004\003\023\056\104\151\147\151\116\157\164\141\162\040\120 +\113\111\157\166\145\162\150\145\151\144\040\103\101\040\117\166 +\145\162\150\145\151\144\040\145\156\040\102\145\144\162\151\152 +\166\145\156\060\036\027\015\060\067\060\067\060\065\060\070\064 +\062\060\070\132\027\015\061\065\060\067\062\067\060\070\063\071 +\064\067\132\060\137\061\013\060\011\006\003\125\004\006\023\002 +\116\114\061\027\060\025\006\003\125\004\012\023\016\104\151\147 +\151\116\157\164\141\162\040\102\056\126\056\061\067\060\065\006 +\003\125\004\003\023\056\104\151\147\151\116\157\164\141\162\040 +\120\113\111\157\166\145\162\150\145\151\144\040\103\101\040\117 +\166\145\162\150\145\151\144\040\145\156\040\102\145\144\162\151 +\152\166\145\156\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\334\275\322\247\116\152\012\273\073\242\205 +\341\177\000\255\276\264\060\150\230\007\315\240\172\304\224\317 +\161\371\212\067\344\123\353\127\166\314\213\346\154\376\356\207 +\125\310\076\273\004\071\000\247\200\170\254\133\117\176\364\275 +\270\124\270\161\073\007\061\111\071\223\124\174\040\073\171\053 +\217\273\141\220\175\261\254\346\037\220\056\235\105\001\251\144 +\055\115\303\057\271\347\120\325\116\052\134\253\166\166\067\106 +\327\171\354\102\231\367\242\354\244\211\160\334\070\053\207\246 +\252\044\346\235\222\044\033\276\366\375\324\057\031\027\172\346 +\062\007\224\124\005\123\103\351\154\274\257\107\313\274\313\375 +\275\073\104\022\201\361\153\113\273\355\264\317\253\045\117\030 +\322\314\002\374\243\117\265\102\063\313\131\315\011\334\323\120 +\375\240\166\214\254\176\146\212\102\366\255\034\222\363\266\373 +\024\106\353\115\327\057\060\340\155\356\133\066\276\104\164\267 +\040\005\127\205\115\350\000\031\242\366\014\346\256\241\300\102 +\337\247\254\202\135\307\150\267\030\346\211\113\232\153\372\316 +\171\371\363\054\247\002\003\001\000\001\243\202\001\120\060\202 +\001\114\060\110\006\003\125\035\040\004\101\060\077\060\075\006 +\004\125\035\040\000\060\065\060\063\006\010\053\006\001\005\005 +\007\002\001\026\047\150\164\164\160\072\057\057\167\167\167\056 +\144\151\147\151\156\157\164\141\162\056\156\154\057\143\160\163 +\057\160\153\151\157\166\145\162\150\145\151\144\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\200 +\006\003\125\035\043\004\171\060\167\200\024\013\206\326\017\167 +\243\150\261\373\144\011\303\210\156\134\004\034\127\351\075\241 +\131\244\127\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\202\004\000\230\232\171 +\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\160\153 +\151\157\166\145\162\150\145\151\144\056\156\154\057\104\157\155 +\117\166\114\141\164\145\163\164\103\122\114\056\143\162\154\060 +\035\006\003\125\035\016\004\026\004\024\114\010\311\215\166\361 +\230\307\076\337\074\327\057\165\015\261\166\171\227\314\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001 +\001\000\014\224\207\032\277\115\343\205\342\356\327\330\143\171 +\016\120\337\306\204\133\322\273\331\365\061\012\032\065\227\164 +\337\024\372\052\017\076\355\240\343\010\366\325\116\133\257\246 +\256\045\342\105\153\042\017\267\124\050\176\222\336\215\024\154 +\321\034\345\156\164\004\234\267\357\064\104\105\337\311\203\035 +\031\037\300\051\151\337\211\325\077\302\260\123\155\345\116\027 +\344\163\141\043\023\046\161\103\375\114\131\313\303\337\042\252 +\041\053\331\277\225\021\032\212\244\342\253\247\135\113\157\051 +\365\122\321\344\322\025\261\213\376\360\003\317\247\175\351\231 +\207\070\263\015\163\024\344\162\054\341\316\365\255\006\110\144 +\372\323\051\271\242\330\273\364\325\013\245\100\104\103\216\240 +\277\316\132\245\122\114\144\323\027\061\141\314\350\244\212\350 +\344\210\373\351\345\057\006\063\063\233\224\146\146\261\253\120 +\072\241\011\201\164\123\132\047\271\246\322\045\317\323\303\247 +\377\226\320\057\352\340\036\215\122\351\030\034\040\012\107\240 +\226\126\016\100\220\121\104\254\032\375\361\356\205\037\367\102 +\132\145 +END + +# Trust for Certificate "Explicitly Distrusted DigiNotar PKIoverheid" +# Issuer: CN=DigiNotar PKIoverheid CA Overheid en Bedrijven,O=DigiNotar B.V.,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: CN=DigiNotar PKIoverheid CA Overheid en Bedrijven,O=DigiNotar B.V.,C=NL +# Not Valid Before: Thu Jul 05 08:42:08 2007 +# Not Valid After : Mon Jul 27 08:39:47 2015 +# Fingerprint (MD5): A3:CF:B3:FF:F9:4F:A7:B1:EB:3A:75:58:4E:2E:9F:EA +# Fingerprint (SHA1): A7:A8:C9:AC:F4:5F:90:92:76:86:B8:C0:A2:0E:93:58:7D:DE:30:E4 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted DigiNotar PKIoverheid" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\247\250\311\254\364\137\220\222\166\206\270\300\242\016\223\130 +\175\336\060\344 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\243\317\263\377\371\117\247\261\353\072\165\130\116\056\237\352 +END +CKA_ISSUER MULTILINE_OCTAL +\060\137\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\023\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\067\060\065\006\003\125\004 +\003\023\056\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\166\145\162 +\150\145\151\144\040\145\156\040\102\145\144\162\151\152\166\145 +\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted DigiNotar PKIoverheid G2" +# +# Issuer: CN=DigiNotar PKIoverheid CA Organisatie - G2,O=DigiNotar B.V.,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: CN=DigiNotar PKIoverheid CA Organisatie - G2,O=DigiNotar B.V.,C=NL +# Not Valid Before: Wed May 12 08:51:39 2010 +# Not Valid After : Mon Mar 23 09:50:05 2020 +# Fingerprint (MD5): 2E:61:A2:D1:78:CE:EE:BF:59:33:B0:23:14:0F:94:1C +# Fingerprint (SHA1): D5:F2:57:A9:BF:2D:D0:3F:8B:46:57:F9:2B:C9:A4:C6:92:E1:42:42 +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 "Explicitly Distrusted DigiNotar PKIoverheid G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\014\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\062\060\060\006\003\125\004 +\003\014\051\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\162\147\141 +\156\151\163\141\164\151\145\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\014\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\062\060\060\006\003\125\004 +\003\014\051\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\162\147\141 +\156\151\163\141\164\151\145\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\225\060\202\004\175\240\003\002\001\002\002\004\017 +\377\377\377\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\027\060\025\006\003\125\004\012\014\016\104\151\147\151 +\116\157\164\141\162\040\102\056\126\056\061\062\060\060\006\003 +\125\004\003\014\051\104\151\147\151\116\157\164\141\162\040\120 +\113\111\157\166\145\162\150\145\151\144\040\103\101\040\117\162 +\147\141\156\151\163\141\164\151\145\040\055\040\107\062\060\036 +\027\015\061\060\060\065\061\062\060\070\065\061\063\071\132\027 +\015\062\060\060\063\062\063\060\071\065\060\060\065\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\027\060 +\025\006\003\125\004\012\014\016\104\151\147\151\116\157\164\141 +\162\040\102\056\126\056\061\062\060\060\006\003\125\004\003\014 +\051\104\151\147\151\116\157\164\141\162\040\120\113\111\157\166 +\145\162\150\145\151\144\040\103\101\040\117\162\147\141\156\151 +\163\141\164\151\145\040\055\040\107\062\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\261\023\031\017\047 +\346\154\324\125\206\113\320\354\211\212\105\221\170\254\107\275 +\107\053\344\374\105\353\117\264\046\163\133\067\323\303\177\366 +\343\336\327\243\370\055\150\305\010\076\113\224\326\344\207\045 +\066\153\204\265\030\164\363\050\130\163\057\233\152\317\274\004 +\036\366\336\335\257\374\113\252\365\333\146\142\045\001\045\202 +\336\362\227\132\020\156\335\135\251\042\261\004\251\043\163\072 +\370\161\255\035\317\204\104\353\107\321\257\155\310\174\050\253 +\307\362\067\172\164\137\137\305\002\024\212\243\132\343\033\154 +\001\343\135\216\331\150\326\364\011\033\062\334\221\265\054\365 +\040\353\214\003\155\046\111\270\223\304\205\135\330\322\233\257 +\126\152\314\005\063\314\240\102\236\064\125\104\234\153\240\324 +\022\320\053\124\315\267\211\015\345\366\353\350\373\205\001\063 +\117\172\153\361\235\162\063\226\016\367\262\204\245\245\047\304 +\047\361\121\163\051\167\272\147\156\376\114\334\264\342\241\241 +\201\057\071\111\215\103\070\023\316\320\245\134\302\207\072\000 +\147\145\102\043\361\066\131\012\035\243\121\310\274\243\224\052 +\061\337\343\074\362\235\032\074\004\260\357\261\012\060\023\163 +\266\327\363\243\114\001\165\024\205\170\300\327\212\071\130\205 +\120\372\056\346\305\276\317\213\077\257\217\066\324\045\011\055 +\322\017\254\162\223\362\277\213\324\120\263\371\025\120\233\231 +\365\024\331\373\213\221\243\062\046\046\240\370\337\073\140\201 +\206\203\171\133\053\353\023\075\051\072\301\155\335\275\236\216 +\207\326\112\256\064\227\005\356\024\246\366\334\070\176\112\351 +\044\124\007\075\227\150\067\106\153\015\307\250\041\257\023\124 +\344\011\152\361\115\106\012\311\135\373\233\117\275\336\373\267 +\124\313\270\070\234\247\071\373\152\055\300\173\215\253\245\247 +\127\354\112\222\212\063\305\341\040\134\163\330\220\222\053\200 +\325\017\206\030\151\174\071\117\204\206\274\367\114\133\363\325 +\264\312\240\302\360\067\042\312\171\122\037\123\346\252\363\220 +\260\073\335\362\050\375\254\353\305\006\044\240\311\324\057\017 +\130\375\265\236\354\017\317\262\131\320\242\004\172\070\152\256 +\162\373\275\360\045\142\224\011\247\005\013\002\003\001\000\001 +\243\202\001\141\060\202\001\135\060\110\006\003\125\035\040\004 +\101\060\077\060\075\006\004\125\035\040\000\060\065\060\063\006 +\010\053\006\001\005\005\007\002\001\026\047\150\164\164\160\072 +\057\057\167\167\167\056\144\151\147\151\156\157\164\141\162\056 +\156\154\057\143\160\163\057\160\153\151\157\166\145\162\150\145 +\151\144\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\205\006\003\125\035\043\004\176\060\174\200 +\024\071\020\213\111\222\134\333\141\022\040\315\111\235\032\216 +\332\234\147\100\271\241\136\244\134\060\132\061\013\060\011\006 +\003\125\004\006\023\002\116\114\061\036\060\034\006\003\125\004 +\012\014\025\123\164\141\141\164\040\144\145\162\040\116\145\144 +\145\162\154\141\156\144\145\156\061\053\060\051\006\003\125\004 +\003\014\042\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 +\040\055\040\107\062\202\004\000\230\226\364\060\111\006\003\125 +\035\037\004\102\060\100\060\076\240\074\240\072\206\070\150\164 +\164\160\072\057\057\143\162\154\056\160\153\151\157\166\145\162 +\150\145\151\144\056\156\154\057\104\157\155\117\162\147\141\156 +\151\163\141\164\151\145\114\141\164\145\163\164\103\122\114\055 +\107\062\056\143\162\154\060\035\006\003\125\035\016\004\026\004 +\024\274\135\224\073\331\253\173\003\045\163\141\302\333\055\356 +\374\253\217\145\241\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\002\001\000\217\374\055\114\267\331\055 +\325\037\275\357\313\364\267\150\027\165\235\116\325\367\335\234 +\361\052\046\355\237\242\266\034\003\325\123\263\354\010\317\064 +\342\343\303\364\265\026\057\310\303\276\327\323\163\253\000\066 +\371\032\112\176\326\143\351\136\106\272\245\266\216\025\267\243 +\052\330\103\035\357\135\310\037\201\205\263\213\367\377\074\364 +\331\364\106\010\077\234\274\035\240\331\250\114\315\045\122\116 +\012\261\040\367\037\351\103\331\124\106\201\023\232\300\136\164 +\154\052\230\062\352\374\167\273\015\245\242\061\230\042\176\174 +\174\347\332\244\255\354\267\056\032\031\161\370\110\120\332\103 +\217\054\204\335\301\100\047\343\265\360\025\116\226\324\370\134 +\343\206\051\106\053\327\073\007\353\070\177\310\206\127\227\323 +\357\052\063\304\027\120\325\144\151\153\053\153\105\136\135\057 +\027\312\132\116\317\303\327\071\074\365\073\237\106\271\233\347 +\016\111\227\235\326\325\343\033\017\352\217\001\116\232\023\224 +\131\012\002\007\110\113\032\140\253\177\117\355\013\330\125\015 +\150\157\125\234\151\145\025\102\354\300\334\335\154\254\303\026 +\316\013\035\126\233\244\304\304\322\056\340\017\342\104\047\053 +\120\151\244\334\142\350\212\041\051\102\154\314\000\072\226\166 +\233\357\100\300\244\136\167\204\062\154\046\052\071\146\256\135 +\343\271\271\262\054\150\037\036\232\220\003\071\360\252\263\244 +\314\111\213\030\064\351\067\311\173\051\307\204\174\157\104\025 +\057\354\141\131\004\311\105\313\242\326\122\242\174\177\051\222 +\326\112\305\213\102\250\324\376\352\330\307\207\043\030\344\235 +\172\175\163\100\122\230\240\256\156\343\005\077\005\017\340\245 +\306\155\115\355\203\067\210\234\307\363\334\102\232\152\266\327 +\041\111\066\167\362\357\030\117\305\160\331\236\351\336\267\053 +\213\364\274\176\050\337\015\100\311\205\134\256\235\305\061\377 +\320\134\016\265\250\176\360\351\057\272\257\210\256\345\265\321 +\130\245\257\234\161\247\051\001\220\203\151\067\202\005\272\374 +\011\301\010\156\214\170\073\303\063\002\200\077\104\205\010\035 +\337\125\126\010\255\054\205\055\135\261\003\341\256\252\164\305 +\244\363\116\272\067\230\173\202\271 +END + +# Trust for Certificate "Explicitly Distrusted DigiNotar PKIoverheid G2" +# Issuer: CN=DigiNotar PKIoverheid CA Organisatie - G2,O=DigiNotar B.V.,C=NL +# Serial Number: 268435455 (0xfffffff) +# Subject: CN=DigiNotar PKIoverheid CA Organisatie - G2,O=DigiNotar B.V.,C=NL +# Not Valid Before: Wed May 12 08:51:39 2010 +# Not Valid After : Mon Mar 23 09:50:05 2020 +# Fingerprint (MD5): 2E:61:A2:D1:78:CE:EE:BF:59:33:B0:23:14:0F:94:1C +# Fingerprint (SHA1): D5:F2:57:A9:BF:2D:D0:3F:8B:46:57:F9:2B:C9:A4:C6:92:E1:42:42 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted DigiNotar PKIoverheid G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\325\362\127\251\277\055\320\077\213\106\127\371\053\311\244\306 +\222\341\102\102 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\056\141\242\321\170\316\356\277\131\063\260\043\024\017\224\034 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\027\060\025\006\003\125\004\012\014\016\104\151\147\151\116\157 +\164\141\162\040\102\056\126\056\061\062\060\060\006\003\125\004 +\003\014\051\104\151\147\151\116\157\164\141\162\040\120\113\111 +\157\166\145\162\150\145\151\144\040\103\101\040\117\162\147\141 +\156\151\163\141\164\151\145\040\055\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\017\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +# +# Issuer: CN=GTE CyberTrust Global Root,OU="GTE CyberTrust Solutions, Inc.",O=GTE Corporation,C=US +# Serial Number:07:ff:ff:ff:ff:ff +# Subject: CN=Digisign Server ID (Enrich),OU=457608-K,O=Digicert Sdn. Bhd.,C=MY +# Not Valid Before: Tue Jul 17 15:17:49 2007 +# Not Valid After : Tue Jul 17 15:16:55 2012 +# Fingerprint (MD5): D2:DE:AE:50:A4:98:2D:6F:37:B7:86:52:C8:2D:4B:6A +# Fingerprint (SHA1): 55:50:AF:EC:BF:E8:C3:AD:C4:0B:E3:AD:0C:A7:E4:15:8C:39:59:4F +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 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\143\061\013\060\011\006\003\125\004\006\023\002\115\131\061 +\033\060\031\006\003\125\004\012\023\022\104\151\147\151\143\145 +\162\164\040\123\144\156\056\040\102\150\144\056\061\021\060\017 +\006\003\125\004\013\023\010\064\065\067\066\060\070\055\113\061 +\044\060\042\006\003\125\004\003\023\033\104\151\147\151\163\151 +\147\156\040\123\145\162\166\145\162\040\111\104\040\050\105\156 +\162\151\143\150\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\315\060\202\003\066\240\003\002\001\002\002\006\007 +\377\377\377\377\377\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\060\165\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\030\060\026\006\003\125\004\012\023\017\107\124 +\105\040\103\157\162\160\157\162\141\164\151\157\156\061\047\060 +\045\006\003\125\004\013\023\036\107\124\105\040\103\171\142\145 +\162\124\162\165\163\164\040\123\157\154\165\164\151\157\156\163 +\054\040\111\156\143\056\061\043\060\041\006\003\125\004\003\023 +\032\107\124\105\040\103\171\142\145\162\124\162\165\163\164\040 +\107\154\157\142\141\154\040\122\157\157\164\060\036\027\015\060 +\067\060\067\061\067\061\065\061\067\064\071\132\027\015\061\062 +\060\067\061\067\061\065\061\066\065\065\132\060\143\061\013\060 +\011\006\003\125\004\006\023\002\115\131\061\033\060\031\006\003 +\125\004\012\023\022\104\151\147\151\143\145\162\164\040\123\144 +\156\056\040\102\150\144\056\061\021\060\017\006\003\125\004\013 +\023\010\064\065\067\066\060\070\055\113\061\044\060\042\006\003 +\125\004\003\023\033\104\151\147\151\163\151\147\156\040\123\145 +\162\166\145\162\040\111\104\040\050\105\156\162\151\143\150\051 +\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\255\250\144 +\113\115\207\307\204\131\271\373\220\106\240\246\211\300\361\376 +\325\332\124\202\067\015\231\053\105\046\012\350\126\260\177\312 +\250\364\216\107\204\001\202\051\343\263\152\265\221\363\373\225 +\205\274\162\250\144\350\012\100\234\305\364\161\256\173\173\152 +\007\352\220\024\117\215\211\257\224\253\262\006\324\002\152\173 +\230\037\131\271\072\315\124\372\040\337\262\052\012\351\270\335 +\151\220\300\051\323\116\320\227\355\146\314\305\031\111\006\177 +\372\136\054\174\173\205\033\062\102\337\173\225\045\002\003\001 +\000\001\243\202\001\170\060\202\001\164\060\022\006\003\125\035 +\023\001\001\377\004\010\060\006\001\001\377\002\001\000\060\134 +\006\003\125\035\040\004\125\060\123\060\110\006\011\053\006\001 +\004\001\261\076\001\000\060\073\060\071\006\010\053\006\001\005 +\005\007\002\001\026\055\150\164\164\160\072\057\057\143\171\142 +\145\162\164\162\165\163\164\056\157\155\156\151\162\157\157\164 +\056\143\157\155\057\162\145\160\157\163\151\164\157\162\171\056 +\143\146\155\060\007\006\005\140\203\112\001\001\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\346\060\201\211\006 +\003\125\035\043\004\201\201\060\177\241\171\244\167\060\165\061 +\013\060\011\006\003\125\004\006\023\002\125\123\061\030\060\026 +\006\003\125\004\012\023\017\107\124\105\040\103\157\162\160\157 +\162\141\164\151\157\156\061\047\060\045\006\003\125\004\013\023 +\036\107\124\105\040\103\171\142\145\162\124\162\165\163\164\040 +\123\157\154\165\164\151\157\156\163\054\040\111\156\143\056\061 +\043\060\041\006\003\125\004\003\023\032\107\124\105\040\103\171 +\142\145\162\124\162\165\163\164\040\107\154\157\142\141\154\040 +\122\157\157\164\202\002\001\245\060\105\006\003\125\035\037\004 +\076\060\074\060\072\240\070\240\066\206\064\150\164\164\160\072 +\057\057\167\167\167\056\160\165\142\154\151\143\055\164\162\165 +\163\164\056\143\157\155\057\143\147\151\055\142\151\156\057\103 +\122\114\057\062\060\061\070\057\143\144\160\056\143\162\154\060 +\035\006\003\125\035\016\004\026\004\024\306\026\223\116\026\027 +\354\026\256\214\224\166\363\206\155\305\164\156\204\167\060\015 +\006\011\052\206\110\206\367\015\001\001\005\005\000\003\201\201 +\000\166\000\173\246\170\053\146\035\216\136\066\306\244\216\005 +\362\043\222\174\223\147\323\364\300\012\175\213\055\331\352\325 +\157\032\363\341\112\051\132\042\204\115\120\057\113\014\362\377 +\205\302\173\125\324\104\202\276\155\254\147\216\274\264\037\222 +\234\121\200\032\024\366\156\253\141\210\013\255\034\177\367\113 +\120\121\326\145\033\246\107\161\025\136\260\161\363\065\024\362 +\067\275\143\310\325\360\223\132\064\137\330\075\350\135\367\305 +\036\300\345\317\037\206\044\251\074\007\146\315\301\322\066\143 +\131 +END + +# Trust for Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +# Issuer: CN=GTE CyberTrust Global Root,OU="GTE CyberTrust Solutions, Inc.",O=GTE Corporation,C=US +# Serial Number:07:ff:ff:ff:ff:ff +# Subject: CN=Digisign Server ID (Enrich),OU=457608-K,O=Digicert Sdn. Bhd.,C=MY +# Not Valid Before: Tue Jul 17 15:17:49 2007 +# Not Valid After : Tue Jul 17 15:16:55 2012 +# Fingerprint (MD5): D2:DE:AE:50:A4:98:2D:6F:37:B7:86:52:C8:2D:4B:6A +# Fingerprint (SHA1): 55:50:AF:EC:BF:E8:C3:AD:C4:0B:E3:AD:0C:A7:E4:15:8C:39:59:4F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (cyb)" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\125\120\257\354\277\350\303\255\304\013\343\255\014\247\344\025 +\214\071\131\117 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\322\336\256\120\244\230\055\157\067\267\206\122\310\055\113\152 +END +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\030\060\026\006\003\125\004\012\023\017\107\124\105\040\103\157 +\162\160\157\162\141\164\151\157\156\061\047\060\045\006\003\125 +\004\013\023\036\107\124\105\040\103\171\142\145\162\124\162\165 +\163\164\040\123\157\154\165\164\151\157\156\163\054\040\111\156 +\143\056\061\043\060\041\006\003\125\004\003\023\032\107\124\105 +\040\103\171\142\145\162\124\162\165\163\164\040\107\154\157\142 +\141\154\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +# +# Issuer: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net +# Serial Number:07:ff:ff:ff:ff:ff +# Subject: CN=Digisign Server ID - (Enrich),OU=457608-K,O=Digicert Sdn. Bhd.,C=MY +# Not Valid Before: Fri Jul 16 17:23:38 2010 +# Not Valid After : Thu Jul 16 17:53:38 2015 +# Fingerprint (MD5): D7:69:61:7F:35:0F:9C:46:A3:AA:EB:F8:55:FC:84:F2 +# Fingerprint (SHA1): 6B:3C:3B:80:AD:CA:A6:BA:8A:9F:54:A6:7A:ED:12:69:05:6D:31:26 +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 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\115\131\061 +\033\060\031\006\003\125\004\012\023\022\104\151\147\151\143\145 +\162\164\040\123\144\156\056\040\102\150\144\056\061\021\060\017 +\006\003\125\004\013\023\010\064\065\067\066\060\070\055\113\061 +\046\060\044\006\003\125\004\003\023\035\104\151\147\151\163\151 +\147\156\040\123\145\162\166\145\162\040\111\104\040\055\040\050 +\105\156\162\151\143\150\051 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\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 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\320\060\202\003\270\240\003\002\001\002\002\006\007 +\377\377\377\377\377\060\015\006\011\052\206\110\206\367\015\001 +\001\005\005\000\060\201\264\061\024\060\022\006\003\125\004\012 +\023\013\105\156\164\162\165\163\164\056\156\145\164\061\100\060 +\076\006\003\125\004\013\024\067\167\167\167\056\145\156\164\162 +\165\163\164\056\156\145\164\057\103\120\123\137\062\060\064\070 +\040\151\156\143\157\162\160\056\040\142\171\040\162\145\146\056 +\040\050\154\151\155\151\164\163\040\154\151\141\142\056\051\061 +\045\060\043\006\003\125\004\013\023\034\050\143\051\040\061\071 +\071\071\040\105\156\164\162\165\163\164\056\156\145\164\040\114 +\151\155\151\164\145\144\061\063\060\061\006\003\125\004\003\023 +\052\105\156\164\162\165\163\164\056\156\145\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\040\050\062\060\064\070\051\060\036\027\015\061 +\060\060\067\061\066\061\067\062\063\063\070\132\027\015\061\065 +\060\067\061\066\061\067\065\063\063\070\132\060\145\061\013\060 +\011\006\003\125\004\006\023\002\115\131\061\033\060\031\006\003 +\125\004\012\023\022\104\151\147\151\143\145\162\164\040\123\144 +\156\056\040\102\150\144\056\061\021\060\017\006\003\125\004\013 +\023\010\064\065\067\066\060\070\055\113\061\046\060\044\006\003 +\125\004\003\023\035\104\151\147\151\163\151\147\156\040\123\145 +\162\166\145\162\040\111\104\040\055\040\050\105\156\162\151\143 +\150\051\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\305\211\344\364\015\006\100\222\131\307\032\263\065 +\321\016\114\052\063\371\370\257\312\236\177\356\271\247\155\140 +\364\124\350\157\325\233\363\033\143\061\004\150\162\321\064\026 +\214\264\027\054\227\336\163\305\330\220\025\240\032\053\365\313 +\263\110\206\104\360\035\210\114\316\101\102\032\357\365\014\336 +\376\100\332\071\040\367\006\125\072\152\235\106\301\322\157\245 +\262\310\127\076\051\243\234\340\351\205\167\146\350\230\247\044 +\176\276\300\131\040\345\104\157\266\127\330\276\316\302\145\167 +\130\306\141\101\321\164\004\310\177\111\102\305\162\251\162\026 +\356\214\335\022\135\264\112\324\321\257\120\267\330\252\165\166 +\150\255\076\135\252\060\155\141\250\253\020\133\076\023\277\063 +\340\257\104\235\070\042\133\357\114\057\246\161\046\025\046\312 +\050\214\331\372\216\216\251\242\024\065\342\233\044\210\264\364 +\177\205\235\203\117\007\241\266\024\220\066\304\064\034\215\046 +\141\155\023\157\170\276\350\217\047\307\113\204\226\243\206\150 +\014\043\276\013\354\214\224\000\251\004\212\023\220\367\337\205 +\154\014\261\002\003\001\000\001\243\202\001\064\060\202\001\060 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001 +\377\002\001\000\060\047\006\003\125\035\045\004\040\060\036\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\004\060\063\006 +\010\053\006\001\005\005\007\001\001\004\047\060\045\060\043\006 +\010\053\006\001\005\005\007\060\001\206\027\150\164\164\160\072 +\057\057\157\143\163\160\056\145\156\164\162\165\163\164\056\156 +\145\164\060\104\006\003\125\035\040\004\075\060\073\060\071\006 +\005\140\203\112\001\001\060\060\060\056\006\010\053\006\001\005 +\005\007\002\001\026\042\150\164\164\160\072\057\057\167\167\167 +\056\144\151\147\151\143\145\162\164\056\143\157\155\056\155\171 +\057\143\160\163\056\150\164\155\060\062\006\003\125\035\037\004 +\053\060\051\060\047\240\045\240\043\206\041\150\164\164\160\072 +\057\057\143\162\154\056\145\156\164\162\165\163\164\056\156\145 +\164\057\062\060\064\070\143\141\056\143\162\154\060\021\006\003 +\125\035\016\004\012\004\010\114\116\314\045\050\003\051\201\060 +\037\006\003\125\035\043\004\030\060\026\200\024\125\344\201\321 +\021\200\276\330\211\271\010\243\061\371\241\044\011\026\271\160 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\003 +\202\001\001\000\227\114\357\112\072\111\254\162\374\060\040\153 +\264\051\133\247\305\225\004\220\371\062\325\302\205\152\336\003 +\241\067\371\211\000\260\132\254\125\176\333\103\065\377\311\001 +\370\121\276\314\046\312\310\152\244\304\124\076\046\036\347\014 +\243\315\227\147\224\335\246\102\353\134\315\217\071\171\153\063 +\171\041\006\171\372\202\104\025\231\314\301\267\071\323\106\142 +\174\262\160\353\157\316\040\252\076\031\267\351\164\202\234\264 +\245\113\115\141\000\067\344\207\322\362\024\072\144\174\270\251 +\173\141\340\223\042\347\325\237\076\107\346\066\166\240\123\330 +\000\003\072\017\265\063\376\226\312\323\322\202\072\056\335\327 +\110\341\344\247\151\314\034\351\231\112\347\312\160\105\327\013 +\007\016\232\165\033\320\057\222\157\366\244\007\303\275\034\113 +\246\204\266\175\250\232\251\322\247\051\361\013\127\151\036\227 +\127\046\354\053\103\254\324\105\203\005\000\351\343\360\106\100 +\007\372\352\261\121\163\223\034\245\335\123\021\067\310\052\247 +\025\047\035\264\252\314\177\252\061\060\374\270\105\237\110\011 +\355\020\342\305 +END + +# Trust for Certificate "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +# Issuer: CN=Entrust.net Certification Authority (2048),OU=(c) 1999 Entrust.net Limited,OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.),O=Entrust.net +# Serial Number:07:ff:ff:ff:ff:ff +# Subject: CN=Digisign Server ID - (Enrich),OU=457608-K,O=Digicert Sdn. Bhd.,C=MY +# Not Valid Before: Fri Jul 16 17:23:38 2010 +# Not Valid After : Thu Jul 16 17:53:38 2015 +# Fingerprint (MD5): D7:69:61:7F:35:0F:9C:46:A3:AA:EB:F8:55:FC:84:F2 +# Fingerprint (SHA1): 6B:3C:3B:80:AD:CA:A6:BA:8A:9F:54:A6:7A:ED:12:69:05:6D:31:26 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted Malaysian Digicert Sdn. Bhd. (en)" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\153\074\073\200\255\312\246\272\212\237\124\246\172\355\022\151 +\005\155\061\046 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\327\151\141\177\065\017\234\106\243\252\353\370\125\374\204\362 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\264\061\024\060\022\006\003\125\004\012\023\013\105\156 +\164\162\165\163\164\056\156\145\164\061\100\060\076\006\003\125 +\004\013\024\067\167\167\167\056\145\156\164\162\165\163\164\056 +\156\145\164\057\103\120\123\137\062\060\064\070\040\151\156\143 +\157\162\160\056\040\142\171\040\162\145\146\056\040\050\154\151 +\155\151\164\163\040\154\151\141\142\056\051\061\045\060\043\006 +\003\125\004\013\023\034\050\143\051\040\061\071\071\071\040\105 +\156\164\162\165\163\164\056\156\145\164\040\114\151\155\151\164 +\145\144\061\063\060\061\006\003\125\004\003\023\052\105\156\164 +\162\165\163\164\056\156\145\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 +\040\050\062\060\064\070\051 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\006\007\377\377\377\377\377 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + + +# +# Certificate "Security Communication RootCA2" +# +# Issuer: OU=Security Communication RootCA2,O="SECOM Trust Systems CO.,LTD.",C=JP +# Serial Number: 0 (0x0) +# Subject: OU=Security Communication RootCA2,O="SECOM Trust Systems CO.,LTD.",C=JP +# Not Valid Before: Fri May 29 05:00:39 2009 +# Not Valid After : Tue May 29 05:00:39 2029 +# Fingerprint (MD5): 6C:39:7D:A4:0E:55:59:B2:3F:D6:41:B1:12:50:DE:43 +# Fingerprint (SHA1): 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74 +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 RootCA2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\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\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\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\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\167\060\202\002\137\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061\045 +\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040\124 +\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117\056 +\054\114\124\104\056\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\062\060\036 +\027\015\060\071\060\065\062\071\060\065\060\060\063\071\132\027 +\015\062\071\060\065\062\071\060\065\060\060\063\071\132\060\135 +\061\013\060\011\006\003\125\004\006\023\002\112\120\061\045\060 +\043\006\003\125\004\012\023\034\123\105\103\117\115\040\124\162 +\165\163\164\040\123\171\163\164\145\155\163\040\103\117\056\054 +\114\124\104\056\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\062\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\320\025 +\071\122\261\122\263\272\305\131\202\304\135\122\256\072\103\145 +\200\113\307\362\226\274\333\066\227\326\246\144\214\250\136\360 +\343\012\034\367\337\227\075\113\256\366\135\354\041\265\101\253 +\315\271\176\166\237\276\371\076\066\064\240\073\301\366\061\021 +\105\164\223\075\127\200\305\371\211\231\312\345\253\152\324\265 +\332\101\220\020\301\326\326\102\211\302\277\364\070\022\225\114 +\124\005\367\066\344\105\203\173\024\145\326\334\014\115\321\336 +\176\014\253\073\304\025\276\072\126\246\132\157\166\151\122\251 +\172\271\310\353\152\232\135\122\320\055\012\153\065\026\011\020 +\204\320\152\312\072\006\000\067\107\344\176\127\117\077\213\353 +\147\270\210\252\305\276\123\125\262\221\304\175\271\260\205\031 +\006\170\056\333\141\032\372\205\365\112\221\241\347\026\325\216 +\242\071\337\224\270\160\037\050\077\213\374\100\136\143\203\074 +\203\052\032\231\153\317\336\131\152\073\374\157\026\327\037\375 +\112\020\353\116\202\026\072\254\047\014\123\361\255\325\044\260 +\153\003\120\301\055\074\026\335\104\064\047\032\165\373\002\003 +\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\012\205\251\167\145\005\230\174\100\201\370\017\227\054 +\070\361\012\354\074\317\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\003\202\001\001\000\114\072\243\104\254 +\271\105\261\307\223\176\310\013\012\102\337\144\352\034\356\131 +\154\010\272\211\137\152\312\112\225\236\172\217\007\305\332\105 +\162\202\161\016\072\322\314\157\247\264\241\043\273\366\044\237 +\313\027\376\214\246\316\302\322\333\314\215\374\161\374\003\051 +\301\154\135\063\137\144\266\145\073\211\157\030\166\170\365\334 +\242\110\037\031\077\216\223\353\361\372\027\356\315\116\343\004 +\022\125\326\345\344\335\373\076\005\174\342\035\136\306\247\274 +\227\117\150\072\365\351\056\012\103\266\257\127\134\142\150\174 +\267\375\243\212\204\240\254\142\276\053\011\207\064\360\152\001 +\273\233\051\126\074\376\000\067\317\043\154\361\116\252\266\164 +\106\022\154\221\356\064\325\354\232\221\347\104\276\220\061\162 +\325\111\002\366\002\345\364\037\353\174\331\226\125\251\377\354 +\212\371\231\107\377\065\132\002\252\004\313\212\133\207\161\051 +\221\275\244\264\172\015\275\232\365\127\043\000\007\041\027\077 +\112\071\321\005\111\013\247\266\067\201\245\135\214\252\063\136 +\201\050\174\247\175\047\353\000\256\215\067 +END + +# Trust for Certificate "Security Communication RootCA2" +# Issuer: OU=Security Communication RootCA2,O="SECOM Trust Systems CO.,LTD.",C=JP +# Serial Number: 0 (0x0) +# Subject: OU=Security Communication RootCA2,O="SECOM Trust Systems CO.,LTD.",C=JP +# Not Valid Before: Fri May 29 05:00:39 2009 +# Not Valid After : Tue May 29 05:00:39 2029 +# Fingerprint (MD5): 6C:39:7D:A4:0E:55:59:B2:3F:D6:41:B1:12:50:DE:43 +# Fingerprint (SHA1): 5F:3B:8C:F2:F8:10:B3:7D:78:B4:CE:EC:19:19:C3:73:34:B9:C7:74 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Security Communication RootCA2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\137\073\214\362\370\020\263\175\170\264\316\354\031\031\303\163 +\064\271\307\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\154\071\175\244\016\125\131\262\077\326\101\261\022\120\336\103 +END +CKA_ISSUER MULTILINE_OCTAL +\060\135\061\013\060\011\006\003\125\004\006\023\002\112\120\061 +\045\060\043\006\003\125\004\012\023\034\123\105\103\117\115\040 +\124\162\165\163\164\040\123\171\163\164\145\155\163\040\103\117 +\056\054\114\124\104\056\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\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "EC-ACC" +# +# Issuer: CN=EC-ACC,OU=Jerarquia Entitats de Certificacio Catalanes,OU=Vegeu https://www.catcert.net/verarrel (c)03,OU=Serveis Publics de Certificacio,O=Agencia Catalana de Certificacio (NIF Q-0801176-I),C=ES +# Serial Number:ee:2b:3d:eb:d4:21:de:14:a8:62:ac:04:f3:dd:c4:01 +# Subject: CN=EC-ACC,OU=Jerarquia Entitats de Certificacio Catalanes,OU=Vegeu https://www.catcert.net/verarrel (c)03,OU=Serveis Publics de Certificacio,O=Agencia Catalana de Certificacio (NIF Q-0801176-I),C=ES +# Not Valid Before: Tue Jan 07 23:00:00 2003 +# Not Valid After : Tue Jan 07 22:59:59 2031 +# Fingerprint (MD5): EB:F5:9D:29:0D:61:F9:42:1F:7C:C2:BA:6D:E3:15:09 +# Fingerprint (SHA1): 28:90:3A:63:5B:52:80:FA:E6:77:4C:0B:6D:A7:D6:BA:A6:4A:F2:E8 +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 "EC-ACC" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\363\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\073\060\071\006\003\125\004\012\023\062\101\147\145\156\143 +\151\141\040\103\141\164\141\154\141\156\141\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\050\116\111\106 +\040\121\055\060\070\060\061\061\067\066\055\111\051\061\050\060 +\046\006\003\125\004\013\023\037\123\145\162\166\145\151\163\040 +\120\165\142\154\151\143\163\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\061\065\060\063\006\003\125\004\013 +\023\054\126\145\147\145\165\040\150\164\164\160\163\072\057\057 +\167\167\167\056\143\141\164\143\145\162\164\056\156\145\164\057 +\166\145\162\141\162\162\145\154\040\050\143\051\060\063\061\065 +\060\063\006\003\125\004\013\023\054\112\145\162\141\162\161\165 +\151\141\040\105\156\164\151\164\141\164\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\103\141\164\141 +\154\141\156\145\163\061\017\060\015\006\003\125\004\003\023\006 +\105\103\055\101\103\103 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\363\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\073\060\071\006\003\125\004\012\023\062\101\147\145\156\143 +\151\141\040\103\141\164\141\154\141\156\141\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\050\116\111\106 +\040\121\055\060\070\060\061\061\067\066\055\111\051\061\050\060 +\046\006\003\125\004\013\023\037\123\145\162\166\145\151\163\040 +\120\165\142\154\151\143\163\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\061\065\060\063\006\003\125\004\013 +\023\054\126\145\147\145\165\040\150\164\164\160\163\072\057\057 +\167\167\167\056\143\141\164\143\145\162\164\056\156\145\164\057 +\166\145\162\141\162\162\145\154\040\050\143\051\060\063\061\065 +\060\063\006\003\125\004\013\023\054\112\145\162\141\162\161\165 +\151\141\040\105\156\164\151\164\141\164\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\103\141\164\141 +\154\141\156\145\163\061\017\060\015\006\003\125\004\003\023\006 +\105\103\055\101\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\356\053\075\353\324\041\336\024\250\142\254\004\363\335 +\304\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\126\060\202\004\076\240\003\002\001\002\002\020\356 +\053\075\353\324\041\336\024\250\142\254\004\363\335\304\001\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\363\061\013\060\011\006\003\125\004\006\023\002\105\123\061\073 +\060\071\006\003\125\004\012\023\062\101\147\145\156\143\151\141 +\040\103\141\164\141\154\141\156\141\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\040\050\116\111\106\040\121 +\055\060\070\060\061\061\067\066\055\111\051\061\050\060\046\006 +\003\125\004\013\023\037\123\145\162\166\145\151\163\040\120\165 +\142\154\151\143\163\040\144\145\040\103\145\162\164\151\146\151 +\143\141\143\151\157\061\065\060\063\006\003\125\004\013\023\054 +\126\145\147\145\165\040\150\164\164\160\163\072\057\057\167\167 +\167\056\143\141\164\143\145\162\164\056\156\145\164\057\166\145 +\162\141\162\162\145\154\040\050\143\051\060\063\061\065\060\063 +\006\003\125\004\013\023\054\112\145\162\141\162\161\165\151\141 +\040\105\156\164\151\164\141\164\163\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\040\103\141\164\141\154\141 +\156\145\163\061\017\060\015\006\003\125\004\003\023\006\105\103 +\055\101\103\103\060\036\027\015\060\063\060\061\060\067\062\063 +\060\060\060\060\132\027\015\063\061\060\061\060\067\062\062\065 +\071\065\071\132\060\201\363\061\013\060\011\006\003\125\004\006 +\023\002\105\123\061\073\060\071\006\003\125\004\012\023\062\101 +\147\145\156\143\151\141\040\103\141\164\141\154\141\156\141\040 +\144\145\040\103\145\162\164\151\146\151\143\141\143\151\157\040 +\050\116\111\106\040\121\055\060\070\060\061\061\067\066\055\111 +\051\061\050\060\046\006\003\125\004\013\023\037\123\145\162\166 +\145\151\163\040\120\165\142\154\151\143\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\061\065\060\063\006 +\003\125\004\013\023\054\126\145\147\145\165\040\150\164\164\160 +\163\072\057\057\167\167\167\056\143\141\164\143\145\162\164\056 +\156\145\164\057\166\145\162\141\162\162\145\154\040\050\143\051 +\060\063\061\065\060\063\006\003\125\004\013\023\054\112\145\162 +\141\162\161\165\151\141\040\105\156\164\151\164\141\164\163\040 +\144\145\040\103\145\162\164\151\146\151\143\141\143\151\157\040 +\103\141\164\141\154\141\156\145\163\061\017\060\015\006\003\125 +\004\003\023\006\105\103\055\101\103\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\263\042\307\117\342 +\227\102\225\210\107\203\100\366\035\027\363\203\163\044\036\121 +\363\230\212\303\222\270\377\100\220\005\160\207\140\311\000\251 +\265\224\145\031\042\025\027\302\103\154\146\104\232\015\004\076 +\071\157\245\113\172\252\143\267\212\104\235\331\143\221\204\146 +\340\050\017\272\102\343\156\216\367\024\047\223\151\356\221\016 +\243\137\016\261\353\146\242\162\117\022\023\206\145\172\076\333 +\117\007\364\247\011\140\332\072\102\231\307\262\177\263\026\225 +\034\307\371\064\265\224\205\325\231\136\240\110\240\176\347\027 +\145\270\242\165\270\036\363\345\102\175\257\355\363\212\110\144 +\135\202\024\223\330\300\344\377\263\120\162\362\166\366\263\135 +\102\120\171\320\224\076\153\014\000\276\330\153\016\116\052\354 +\076\322\314\202\242\030\145\063\023\167\236\232\135\032\023\330 +\303\333\075\310\227\172\356\160\355\247\346\174\333\161\317\055 +\224\142\337\155\326\365\070\276\077\245\205\012\031\270\250\330 +\011\165\102\160\304\352\357\313\016\310\064\250\022\042\230\014 +\270\023\224\266\113\354\360\320\220\347\047\002\003\001\000\001 +\243\201\343\060\201\340\060\035\006\003\125\035\021\004\026\060 +\024\201\022\145\143\137\141\143\143\100\143\141\164\143\145\162 +\164\056\156\145\164\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004 +\024\240\303\213\104\252\067\245\105\277\227\200\132\321\361\170 +\242\233\351\135\215\060\177\006\003\125\035\040\004\170\060\166 +\060\164\006\013\053\006\001\004\001\365\170\001\003\001\012\060 +\145\060\054\006\010\053\006\001\005\005\007\002\001\026\040\150 +\164\164\160\163\072\057\057\167\167\167\056\143\141\164\143\145 +\162\164\056\156\145\164\057\166\145\162\141\162\162\145\154\060 +\065\006\010\053\006\001\005\005\007\002\002\060\051\032\047\126 +\145\147\145\165\040\150\164\164\160\163\072\057\057\167\167\167 +\056\143\141\164\143\145\162\164\056\156\145\164\057\166\145\162 +\141\162\162\145\154\040\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\001\001\000\240\110\133\202\001\366 +\115\110\270\071\125\065\234\200\172\123\231\325\132\377\261\161 +\073\314\071\011\224\136\326\332\357\276\001\133\135\323\036\330 +\375\175\117\315\240\101\340\064\223\277\313\342\206\234\067\222 +\220\126\034\334\353\051\005\345\304\236\307\065\337\212\014\315 +\305\041\103\351\252\210\345\065\300\031\102\143\132\002\136\244 +\110\030\072\205\157\334\235\274\077\235\234\301\207\270\172\141 +\010\351\167\013\177\160\253\172\335\331\227\054\144\036\205\277 +\274\164\226\241\303\172\022\354\014\032\156\203\014\074\350\162 +\106\237\373\110\325\136\227\346\261\241\370\344\357\106\045\224 +\234\211\333\151\070\276\354\134\016\126\307\145\121\345\120\210 +\210\277\102\325\053\075\345\371\272\236\056\263\312\364\163\222 +\002\013\276\114\146\353\040\376\271\313\265\231\177\346\266\023 +\372\312\113\115\331\356\123\106\006\073\306\116\255\223\132\201 +\176\154\052\113\152\005\105\214\362\041\244\061\220\207\154\145 +\234\235\245\140\225\072\122\177\365\321\253\010\156\363\356\133 +\371\210\075\176\270\157\156\003\344\102 +END + +# Trust for Certificate "EC-ACC" +# Issuer: CN=EC-ACC,OU=Jerarquia Entitats de Certificacio Catalanes,OU=Vegeu https://www.catcert.net/verarrel (c)03,OU=Serveis Publics de Certificacio,O=Agencia Catalana de Certificacio (NIF Q-0801176-I),C=ES +# Serial Number:ee:2b:3d:eb:d4:21:de:14:a8:62:ac:04:f3:dd:c4:01 +# Subject: CN=EC-ACC,OU=Jerarquia Entitats de Certificacio Catalanes,OU=Vegeu https://www.catcert.net/verarrel (c)03,OU=Serveis Publics de Certificacio,O=Agencia Catalana de Certificacio (NIF Q-0801176-I),C=ES +# Not Valid Before: Tue Jan 07 23:00:00 2003 +# Not Valid After : Tue Jan 07 22:59:59 2031 +# Fingerprint (MD5): EB:F5:9D:29:0D:61:F9:42:1F:7C:C2:BA:6D:E3:15:09 +# Fingerprint (SHA1): 28:90:3A:63:5B:52:80:FA:E6:77:4C:0B:6D:A7:D6:BA:A6:4A:F2:E8 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "EC-ACC" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\050\220\072\143\133\122\200\372\346\167\114\013\155\247\326\272 +\246\112\362\350 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\353\365\235\051\015\141\371\102\037\174\302\272\155\343\025\011 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\363\061\013\060\011\006\003\125\004\006\023\002\105\123 +\061\073\060\071\006\003\125\004\012\023\062\101\147\145\156\143 +\151\141\040\103\141\164\141\154\141\156\141\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\050\116\111\106 +\040\121\055\060\070\060\061\061\067\066\055\111\051\061\050\060 +\046\006\003\125\004\013\023\037\123\145\162\166\145\151\163\040 +\120\165\142\154\151\143\163\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\061\065\060\063\006\003\125\004\013 +\023\054\126\145\147\145\165\040\150\164\164\160\163\072\057\057 +\167\167\167\056\143\141\164\143\145\162\164\056\156\145\164\057 +\166\145\162\141\162\162\145\154\040\050\143\051\060\063\061\065 +\060\063\006\003\125\004\013\023\054\112\145\162\141\162\161\165 +\151\141\040\105\156\164\151\164\141\164\163\040\144\145\040\103 +\145\162\164\151\146\151\143\141\143\151\157\040\103\141\164\141 +\154\141\156\145\163\061\017\060\015\006\003\125\004\003\023\006 +\105\103\055\101\103\103 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\356\053\075\353\324\041\336\024\250\142\254\004\363\335 +\304\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Hellenic Academic and Research Institutions RootCA 2011" +# +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2011,O=Hellenic Academic and Research Institutions Cert. Authority,C=GR +# Serial Number: 0 (0x0) +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2011,O=Hellenic Academic and Research Institutions Cert. Authority,C=GR +# Not Valid Before: Tue Dec 06 13:49:52 2011 +# Not Valid After : Mon Dec 01 13:49:52 2031 +# Fingerprint (MD5): 73:9F:4C:4B:73:5B:79:E9:FA:BA:1C:EF:6E:CB:D5:C9 +# Fingerprint (SHA1): FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D +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 "Hellenic Academic and Research Institutions RootCA 2011" +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\107\122 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\061\060\202\003\031\240\003\002\001\002\002\001\000 +\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\107\122\061 +\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145\156 +\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144\040 +\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164\165 +\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164\150 +\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023\067 +\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155\151 +\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040\111 +\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157\164 +\103\101\040\062\060\061\061\060\036\027\015\061\061\061\062\060 +\066\061\063\064\071\065\062\132\027\015\063\061\061\062\060\061 +\061\063\064\071\065\062\132\060\201\225\061\013\060\011\006\003 +\125\004\006\023\002\107\122\061\104\060\102\006\003\125\004\012 +\023\073\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\103\145 +\162\164\056\040\101\165\164\150\157\162\151\164\171\061\100\060 +\076\006\003\125\004\003\023\067\110\145\154\154\145\156\151\143 +\040\101\143\141\144\145\155\151\143\040\141\156\144\040\122\145 +\163\145\141\162\143\150\040\111\156\163\164\151\164\165\164\151 +\157\156\163\040\122\157\157\164\103\101\040\062\060\061\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 +\251\123\000\343\056\246\366\216\372\140\330\055\225\076\370\054 +\052\124\116\315\271\204\141\224\130\117\217\075\213\344\103\363 +\165\211\215\121\344\303\067\322\212\210\115\171\036\267\022\335 +\103\170\112\212\222\346\327\110\325\017\244\072\051\104\065\270 +\007\366\150\035\125\315\070\121\360\214\044\061\205\257\203\311 +\175\351\167\257\355\032\173\235\027\371\263\235\070\120\017\246 +\132\171\221\200\257\067\256\246\323\061\373\265\046\011\235\074 +\132\357\121\305\053\337\226\135\353\062\036\002\332\160\111\354 +\156\014\310\232\067\215\367\361\066\140\113\046\054\202\236\320 +\170\363\015\017\143\244\121\060\341\371\053\047\022\007\330\352 +\275\030\142\230\260\131\067\175\276\356\363\040\121\102\132\203 +\357\223\272\151\025\361\142\235\237\231\071\202\241\267\164\056 +\213\324\305\013\173\057\360\310\012\332\075\171\012\232\223\034 +\245\050\162\163\221\103\232\247\321\115\205\204\271\251\164\217 +\024\100\307\334\336\254\101\144\154\264\031\233\002\143\155\044 +\144\217\104\262\045\352\316\135\164\014\143\062\134\215\207\345 +\002\003\001\000\001\243\201\211\060\201\206\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\013\006\003 +\125\035\017\004\004\003\002\001\006\060\035\006\003\125\035\016 +\004\026\004\024\246\221\102\375\023\141\112\043\236\010\244\051 +\345\330\023\004\043\356\101\045\060\107\006\003\125\035\036\004 +\100\060\076\240\074\060\005\202\003\056\147\162\060\005\202\003 +\056\145\165\060\006\202\004\056\145\144\165\060\006\202\004\056 +\157\162\147\060\005\201\003\056\147\162\060\005\201\003\056\145 +\165\060\006\201\004\056\145\144\165\060\006\201\004\056\157\162 +\147\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000 +\003\202\001\001\000\037\357\171\101\341\173\156\077\262\214\206 +\067\102\112\116\034\067\036\215\146\272\044\201\311\117\022\017 +\041\300\003\227\206\045\155\135\323\042\051\250\154\242\015\251 +\353\075\006\133\231\072\307\314\303\232\064\177\253\016\310\116 +\034\341\372\344\334\315\015\276\277\044\376\154\347\153\302\015 +\310\006\236\116\215\141\050\246\152\375\345\366\142\352\030\074 +\116\240\123\235\262\072\234\353\245\234\221\026\266\115\202\340 +\014\005\110\251\154\365\314\370\313\235\111\264\360\002\245\375 +\160\003\355\212\041\245\256\023\206\111\303\063\163\276\207\073 +\164\213\027\105\046\114\026\221\203\376\147\175\315\115\143\147 +\372\363\003\022\226\170\006\215\261\147\355\216\077\276\237\117 +\002\365\263\011\057\363\114\207\337\052\313\225\174\001\314\254 +\066\172\277\242\163\172\367\217\301\265\232\241\024\262\217\063 +\237\015\357\042\334\146\173\204\275\105\027\006\075\074\312\271 +\167\064\217\312\352\317\077\061\076\343\210\343\200\111\045\310 +\227\265\235\232\231\115\260\074\370\112\000\233\144\335\237\071 +\113\321\047\327\270 +END + +# Trust for Certificate "Hellenic Academic and Research Institutions RootCA 2011" +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2011,O=Hellenic Academic and Research Institutions Cert. Authority,C=GR +# Serial Number: 0 (0x0) +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2011,O=Hellenic Academic and Research Institutions Cert. Authority,C=GR +# Not Valid Before: Tue Dec 06 13:49:52 2011 +# Not Valid After : Mon Dec 01 13:49:52 2031 +# Fingerprint (MD5): 73:9F:4C:4B:73:5B:79:E9:FA:BA:1C:EF:6E:CB:D5:C9 +# Fingerprint (SHA1): FE:45:65:9B:79:03:5B:98:A1:61:B5:51:2E:AC:DA:58:09:48:22:4D +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hellenic Academic and Research Institutions RootCA 2011" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\376\105\145\233\171\003\133\230\241\141\265\121\056\254\332\130 +\011\110\042\115 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\163\237\114\113\163\133\171\351\372\272\034\357\156\313\325\311 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\225\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Explicitly Distrust "MITM subCA 1 issued by Trustwave", Bug 724929 +# Issuer: E=ca@trustwave.com,CN="Trustwave Organization Issuing CA, Level 2",O="Trustwave Holdings, Inc.",L=Chicago,ST=Illinois,C=US +# Serial Number: 1800000005 (0x6b49d205) +# Not Before: Apr 7 15:37:15 2011 GMT +# Not After : Apr 4 15:37:15 2021 GMT +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MITM subCA 1 issued by Trustwave" +CKA_ISSUER MULTILINE_OCTAL +\060\201\253\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\021\060\017\006\003\125\004\010\023\010\111\154\154\151\156 +\157\151\163\061\020\060\016\006\003\125\004\007\023\007\103\150 +\151\143\141\147\157\061\041\060\037\006\003\125\004\012\023\030 +\124\162\165\163\164\167\141\166\145\040\110\157\154\144\151\156 +\147\163\054\040\111\156\143\056\061\063\060\061\006\003\125\004 +\003\023\052\124\162\165\163\164\167\141\166\145\040\117\162\147 +\141\156\151\172\141\164\151\157\156\040\111\163\163\165\151\156 +\147\040\103\101\054\040\114\145\166\145\154\040\062\061\037\060 +\035\006\011\052\206\110\206\367\015\001\011\001\026\020\143\141 +\100\164\162\165\163\164\167\141\166\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\153\111\322\005 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Explicitly Distrust "MITM subCA 2 issued by Trustwave", Bug 724929 +# Issuer: E=ca@trustwave.com,CN="Trustwave Organization Issuing CA, Level 2",O="Trustwave Holdings, Inc.",L=Chicago,ST=Illinois,C=US +# Serial Number: 1800000006 (0x6b49d206) +# Not Before: Apr 18 21:09:30 2011 GMT +# Not After : Apr 15 21:09:30 2021 GMT +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "MITM subCA 2 issued by Trustwave" +CKA_ISSUER MULTILINE_OCTAL +\060\201\253\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\021\060\017\006\003\125\004\010\023\010\111\154\154\151\156 +\157\151\163\061\020\060\016\006\003\125\004\007\023\007\103\150 +\151\143\141\147\157\061\041\060\037\006\003\125\004\012\023\030 +\124\162\165\163\164\167\141\166\145\040\110\157\154\144\151\156 +\147\163\054\040\111\156\143\056\061\063\060\061\006\003\125\004 +\003\023\052\124\162\165\163\164\167\141\166\145\040\117\162\147 +\141\156\151\172\141\164\151\157\156\040\111\163\163\165\151\156 +\147\040\103\101\054\040\114\145\166\145\154\040\062\061\037\060 +\035\006\011\052\206\110\206\367\015\001\011\001\026\020\143\141 +\100\164\162\165\163\164\167\141\166\145\056\143\157\155 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\153\111\322\006 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Actalis Authentication Root CA" +# +# Issuer: CN=Actalis Authentication Root CA,O=Actalis S.p.A./03358520967,L=Milan,C=IT +# Serial Number:57:0a:11:97:42:c4:e3:cc +# Subject: CN=Actalis Authentication Root CA,O=Actalis S.p.A./03358520967,L=Milan,C=IT +# Not Valid Before: Thu Sep 22 11:22:02 2011 +# Not Valid After : Sun Sep 22 11:22:02 2030 +# Fingerprint (MD5): 69:C1:0D:4F:07:A3:1B:C3:FE:56:3D:04:BC:11:F6:A6 +# Fingerprint (SHA1): F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC +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 "Actalis Authentication Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\111\124\061 +\016\060\014\006\003\125\004\007\014\005\115\151\154\141\156\061 +\043\060\041\006\003\125\004\012\014\032\101\143\164\141\154\151 +\163\040\123\056\160\056\101\056\057\060\063\063\065\070\065\062 +\060\071\066\067\061\047\060\045\006\003\125\004\003\014\036\101 +\143\164\141\154\151\163\040\101\165\164\150\145\156\164\151\143 +\141\164\151\157\156\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\111\124\061 +\016\060\014\006\003\125\004\007\014\005\115\151\154\141\156\061 +\043\060\041\006\003\125\004\012\014\032\101\143\164\141\154\151 +\163\040\123\056\160\056\101\056\057\060\063\063\065\070\065\062 +\060\071\066\067\061\047\060\045\006\003\125\004\003\014\036\101 +\143\164\141\154\151\163\040\101\165\164\150\145\156\164\151\143 +\141\164\151\157\156\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\127\012\021\227\102\304\343\314 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\273\060\202\003\243\240\003\002\001\002\002\010\127 +\012\021\227\102\304\343\314\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\060\153\061\013\060\011\006\003\125\004 +\006\023\002\111\124\061\016\060\014\006\003\125\004\007\014\005 +\115\151\154\141\156\061\043\060\041\006\003\125\004\012\014\032 +\101\143\164\141\154\151\163\040\123\056\160\056\101\056\057\060 +\063\063\065\070\065\062\060\071\066\067\061\047\060\045\006\003 +\125\004\003\014\036\101\143\164\141\154\151\163\040\101\165\164 +\150\145\156\164\151\143\141\164\151\157\156\040\122\157\157\164 +\040\103\101\060\036\027\015\061\061\060\071\062\062\061\061\062 +\062\060\062\132\027\015\063\060\060\071\062\062\061\061\062\062 +\060\062\132\060\153\061\013\060\011\006\003\125\004\006\023\002 +\111\124\061\016\060\014\006\003\125\004\007\014\005\115\151\154 +\141\156\061\043\060\041\006\003\125\004\012\014\032\101\143\164 +\141\154\151\163\040\123\056\160\056\101\056\057\060\063\063\065 +\070\065\062\060\071\066\067\061\047\060\045\006\003\125\004\003 +\014\036\101\143\164\141\154\151\163\040\101\165\164\150\145\156 +\164\151\143\141\164\151\157\156\040\122\157\157\164\040\103\101 +\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\247\306\304\245\051\244\054\357\345\030\305\260\120\243\157 +\121\073\237\012\132\311\302\110\070\012\302\034\240\030\177\221 +\265\207\271\100\077\335\035\150\037\010\203\325\055\036\210\240 +\370\217\126\217\155\231\002\222\220\026\325\137\010\154\211\327 +\341\254\274\040\302\261\340\203\121\212\151\115\000\226\132\157 +\057\300\104\176\243\016\344\221\315\130\356\334\373\307\036\105 +\107\335\047\271\010\001\237\246\041\035\365\101\055\057\114\375 +\050\255\340\212\255\042\264\126\145\216\206\124\217\223\103\051 +\336\071\106\170\243\060\043\272\315\360\175\023\127\300\135\322 +\203\153\110\114\304\253\237\200\132\133\072\275\311\247\042\077 +\200\047\063\133\016\267\212\014\135\007\067\010\313\154\322\172 +\107\042\104\065\305\314\314\056\216\335\052\355\267\175\146\015 +\137\141\121\042\125\033\343\106\343\343\075\320\065\142\232\333 +\257\024\310\133\241\314\211\033\341\060\046\374\240\233\037\201 +\247\107\037\004\353\243\071\222\006\237\231\323\277\323\352\117 +\120\234\031\376\226\207\036\074\145\366\243\030\044\203\206\020 +\347\124\076\250\072\166\044\117\201\041\305\343\017\002\370\223 +\224\107\040\273\376\324\016\323\150\271\335\304\172\204\202\343 +\123\124\171\335\333\234\322\362\007\233\056\266\274\076\355\205 +\155\357\045\021\362\227\032\102\141\367\112\227\350\213\261\020 +\007\372\145\201\262\242\071\317\367\074\377\030\373\306\361\132 +\213\131\342\002\254\173\222\320\116\024\117\131\105\366\014\136 +\050\137\260\350\077\105\317\317\257\233\157\373\204\323\167\132 +\225\157\254\224\204\236\356\274\300\112\217\112\223\370\104\041 +\342\061\105\141\120\116\020\330\343\065\174\114\031\264\336\005 +\277\243\006\237\310\265\315\344\037\327\027\006\015\172\225\164 +\125\015\150\032\374\020\033\142\144\235\155\340\225\240\303\224 +\007\127\015\024\346\275\005\373\270\237\346\337\213\342\306\347 +\176\226\366\123\305\200\064\120\050\130\360\022\120\161\027\060 +\272\346\170\143\274\364\262\255\233\053\262\376\341\071\214\136 +\272\013\040\224\336\173\203\270\377\343\126\215\267\021\351\073 +\214\362\261\301\135\235\244\013\114\053\331\262\030\365\265\237 +\113\002\003\001\000\001\243\143\060\141\060\035\006\003\125\035 +\016\004\026\004\024\122\330\210\072\310\237\170\146\355\211\363 +\173\070\160\224\311\002\002\066\320\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\037\006\003\125\035 +\043\004\030\060\026\200\024\122\330\210\072\310\237\170\146\355 +\211\363\173\070\160\224\311\002\002\066\320\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\015\006\011\052 +\206\110\206\367\015\001\001\013\005\000\003\202\002\001\000\013 +\173\162\207\300\140\246\111\114\210\130\346\035\210\367\024\144 +\110\246\330\130\012\016\117\023\065\337\065\035\324\355\006\061 +\310\201\076\152\325\335\073\032\062\356\220\075\021\322\056\364 +\216\303\143\056\043\146\260\147\276\157\266\300\023\071\140\252 +\242\064\045\223\165\122\336\247\235\255\016\207\211\122\161\152 +\026\074\031\035\203\370\232\051\145\276\364\077\232\331\360\363 +\132\207\041\161\200\115\313\340\070\233\077\273\372\340\060\115 +\317\206\323\145\020\031\030\321\227\002\261\053\162\102\150\254 +\240\275\116\132\332\030\277\153\230\201\320\375\232\276\136\025 +\110\315\021\025\271\300\051\134\264\350\210\367\076\066\256\267 +\142\375\036\142\336\160\170\020\034\110\133\332\274\244\070\272 +\147\355\125\076\136\127\337\324\003\100\114\201\244\322\117\143 +\247\011\102\011\024\374\000\251\302\200\163\117\056\300\100\331 +\021\173\110\352\172\002\300\323\353\050\001\046\130\164\301\300 +\163\042\155\223\225\375\071\175\273\052\343\366\202\343\054\227 +\137\116\037\221\224\372\376\054\243\330\166\032\270\115\262\070 +\117\233\372\035\110\140\171\046\342\363\375\251\320\232\350\160 +\217\111\172\326\345\275\012\016\333\055\363\215\277\353\343\244 +\175\313\307\225\161\350\332\243\174\305\302\370\164\222\004\033 +\206\254\244\042\123\100\266\254\376\114\166\317\373\224\062\300 +\065\237\166\077\156\345\220\156\240\246\046\242\270\054\276\321 +\053\205\375\247\150\310\272\001\053\261\154\164\035\270\163\225 +\347\356\267\307\045\360\000\114\000\262\176\266\013\213\034\363 +\300\120\236\045\271\340\010\336\066\146\377\067\245\321\273\124 +\144\054\311\047\265\113\222\176\145\377\323\055\341\271\116\274 +\177\244\101\041\220\101\167\246\071\037\352\236\343\237\320\146 +\157\005\354\252\166\176\277\153\026\240\353\265\307\374\222\124 +\057\053\021\047\045\067\170\114\121\152\260\363\314\130\135\024 +\361\152\110\025\377\302\007\266\261\215\017\216\134\120\106\263 +\075\277\001\230\117\262\131\124\107\076\064\173\170\155\126\223 +\056\163\352\146\050\170\315\035\024\277\240\217\057\056\270\056 +\216\362\024\212\314\351\265\174\373\154\235\014\245\341\226 +END + +# Trust for "Actalis Authentication Root CA" +# Issuer: CN=Actalis Authentication Root CA,O=Actalis S.p.A./03358520967,L=Milan,C=IT +# Serial Number:57:0a:11:97:42:c4:e3:cc +# Subject: CN=Actalis Authentication Root CA,O=Actalis S.p.A./03358520967,L=Milan,C=IT +# Not Valid Before: Thu Sep 22 11:22:02 2011 +# Not Valid After : Sun Sep 22 11:22:02 2030 +# Fingerprint (MD5): 69:C1:0D:4F:07:A3:1B:C3:FE:56:3D:04:BC:11:F6:A6 +# Fingerprint (SHA1): F3:73:B3:87:06:5A:28:84:8A:F2:F3:4A:CE:19:2B:DD:C7:8E:9C:AC +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Actalis Authentication Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\363\163\263\207\006\132\050\204\212\362\363\112\316\031\053\335 +\307\216\234\254 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\151\301\015\117\007\243\033\303\376\126\075\004\274\021\366\246 +END +CKA_ISSUER MULTILINE_OCTAL +\060\153\061\013\060\011\006\003\125\004\006\023\002\111\124\061 +\016\060\014\006\003\125\004\007\014\005\115\151\154\141\156\061 +\043\060\041\006\003\125\004\012\014\032\101\143\164\141\154\151 +\163\040\123\056\160\056\101\056\057\060\063\063\065\070\065\062 +\060\071\066\067\061\047\060\045\006\003\125\004\003\014\036\101 +\143\164\141\154\151\163\040\101\165\164\150\145\156\164\151\143 +\141\164\151\157\156\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\127\012\021\227\102\304\343\314 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Trustis FPS Root CA" +# +# Issuer: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB +# Serial Number:1b:1f:ad:b6:20:f9:24:d3:36:6b:f7:c7:f1:8c:a0:59 +# Subject: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB +# Not Valid Before: Tue Dec 23 12:14:06 2003 +# Not Valid After : Sun Jan 21 11:36:54 2024 +# Fingerprint (MD5): 30:C9:E7:1E:6B:E6:14:EB:65:B2:16:69:20:31:67:4D +# Fingerprint (SHA1): 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04 +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 "Trustis FPS Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\030\060\026\006\003\125\004\012\023\017\124\162\165\163\164\151 +\163\040\114\151\155\151\164\145\144\061\034\060\032\006\003\125 +\004\013\023\023\124\162\165\163\164\151\163\040\106\120\123\040 +\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\030\060\026\006\003\125\004\012\023\017\124\162\165\163\164\151 +\163\040\114\151\155\151\164\145\144\061\034\060\032\006\003\125 +\004\013\023\023\124\162\165\163\164\151\163\040\106\120\123\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\033\037\255\266\040\371\044\323\066\153\367\307\361\214 +\240\131 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\147\060\202\002\117\240\003\002\001\002\002\020\033 +\037\255\266\040\371\044\323\066\153\367\307\361\214\240\131\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\105 +\061\013\060\011\006\003\125\004\006\023\002\107\102\061\030\060 +\026\006\003\125\004\012\023\017\124\162\165\163\164\151\163\040 +\114\151\155\151\164\145\144\061\034\060\032\006\003\125\004\013 +\023\023\124\162\165\163\164\151\163\040\106\120\123\040\122\157 +\157\164\040\103\101\060\036\027\015\060\063\061\062\062\063\061 +\062\061\064\060\066\132\027\015\062\064\060\061\062\061\061\061 +\063\066\065\064\132\060\105\061\013\060\011\006\003\125\004\006 +\023\002\107\102\061\030\060\026\006\003\125\004\012\023\017\124 +\162\165\163\164\151\163\040\114\151\155\151\164\145\144\061\034 +\060\032\006\003\125\004\013\023\023\124\162\165\163\164\151\163 +\040\106\120\123\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\305\120\173 +\236\073\065\320\337\304\214\315\216\233\355\243\300\066\231\364 +\102\352\247\076\200\203\017\246\247\131\207\311\220\105\103\176 +\000\352\206\171\052\003\275\075\067\231\211\146\267\345\212\126 +\206\223\234\150\113\150\004\214\223\223\002\076\060\322\067\072 +\042\141\211\034\205\116\175\217\325\257\173\065\366\176\050\107 +\211\061\334\016\171\144\037\231\322\133\272\376\177\140\277\255 +\353\347\074\070\051\152\057\345\221\013\125\377\354\157\130\325 +\055\311\336\114\146\161\217\014\327\004\332\007\346\036\030\343 +\275\051\002\250\372\034\341\133\271\203\250\101\110\274\032\161 +\215\347\142\345\055\262\353\337\174\317\333\253\132\312\061\361 +\114\042\363\005\023\367\202\371\163\171\014\276\327\113\034\300 +\321\025\074\223\101\144\321\346\276\043\027\042\000\211\136\037 +\153\245\254\156\247\113\214\355\243\162\346\257\143\115\057\205 +\322\024\065\232\056\116\214\352\062\230\050\206\241\221\011\101 +\072\264\341\343\362\372\360\311\012\242\101\335\251\343\003\307 +\210\025\073\034\324\032\224\327\237\144\131\022\155\002\003\001 +\000\001\243\123\060\121\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\037\006\003\125\035\043\004\030 +\060\026\200\024\272\372\161\045\171\213\127\101\045\041\206\013 +\161\353\262\144\016\213\041\147\060\035\006\003\125\035\016\004 +\026\004\024\272\372\161\045\171\213\127\101\045\041\206\013\161 +\353\262\144\016\213\041\147\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\176\130\377\375\065 +\031\175\234\030\117\236\260\053\274\216\214\024\377\054\240\332 +\107\133\303\357\201\055\257\005\352\164\110\133\363\076\116\007 +\307\155\305\263\223\317\042\065\134\266\077\165\047\137\011\226 +\315\240\376\276\100\014\134\022\125\370\223\202\312\051\351\136 +\077\126\127\213\070\066\367\105\032\114\050\315\236\101\270\355 +\126\114\204\244\100\310\270\260\245\053\151\160\004\152\303\370 +\324\022\062\371\016\303\261\334\062\204\104\054\157\313\106\017 +\352\146\101\017\117\361\130\245\246\015\015\017\141\336\245\236 +\135\175\145\241\074\027\347\250\125\116\357\240\307\355\306\104 +\177\124\365\243\340\217\360\174\125\042\217\051\266\201\243\341 +\155\116\054\033\200\147\354\255\040\237\014\142\141\325\227\377 +\103\355\055\301\332\135\051\052\205\077\254\145\356\206\017\005 +\215\220\137\337\356\237\364\277\356\035\373\230\344\177\220\053 +\204\170\020\016\154\111\123\357\025\133\145\106\112\135\257\272 +\373\072\162\035\315\366\045\210\036\227\314\041\234\051\001\015 +\145\353\127\331\363\127\226\273\110\315\201 +END + +# Trust for "Trustis FPS Root CA" +# Issuer: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB +# Serial Number:1b:1f:ad:b6:20:f9:24:d3:36:6b:f7:c7:f1:8c:a0:59 +# Subject: OU=Trustis FPS Root CA,O=Trustis Limited,C=GB +# Not Valid Before: Tue Dec 23 12:14:06 2003 +# Not Valid After : Sun Jan 21 11:36:54 2024 +# Fingerprint (MD5): 30:C9:E7:1E:6B:E6:14:EB:65:B2:16:69:20:31:67:4D +# Fingerprint (SHA1): 3B:C0:38:0B:33:C3:F6:A6:0C:86:15:22:93:D9:DF:F5:4B:81:C0:04 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Trustis FPS Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\073\300\070\013\063\303\366\246\014\206\025\042\223\331\337\365 +\113\201\300\004 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\060\311\347\036\153\346\024\353\145\262\026\151\040\061\147\115 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\107\102\061 +\030\060\026\006\003\125\004\012\023\017\124\162\165\163\164\151 +\163\040\114\151\155\151\164\145\144\061\034\060\032\006\003\125 +\004\013\023\023\124\162\165\163\164\151\163\040\106\120\123\040 +\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\033\037\255\266\040\371\044\323\066\153\367\307\361\214 +\240\131 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "StartCom Certification Authority" +# +# Issuer: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Serial Number: 45 (0x2d) +# Subject: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Not Valid Before: Sun Sep 17 19:46:37 2006 +# Not Valid After : Wed Sep 17 19:46:36 2036 +# Fingerprint (MD5): C9:3B:0D:84:41:FC:A4:76:79:23:08:57:DE:10:19:16 +# Fingerprint (SHA1): A3:F1:33:3F:E2:42:BF:CF:C5:D1:4E:8F:39:42:98:40:68:10:D1:A0 +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 "StartCom Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\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\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\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\001\055 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\207\060\202\005\157\240\003\002\001\002\002\001\055 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026 +\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157 +\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013\023 +\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154\040 +\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147\156 +\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123\164 +\141\162\164\103\157\155\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\066\060\071\061\067\061\071\064\066\063\067\132\027 +\015\063\066\060\071\061\067\061\071\064\066\063\066\132\060\175 +\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026\060 +\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157\155 +\040\114\164\144\056\061\053\060\051\006\003\125\004\013\023\042 +\123\145\143\165\162\145\040\104\151\147\151\164\141\154\040\103 +\145\162\164\151\146\151\143\141\164\145\040\123\151\147\156\151 +\156\147\061\051\060\047\006\003\125\004\003\023\040\123\164\141 +\162\164\103\157\155\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\002 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\002\017\000\060\202\002\012\002\202\002\001\000\301\210 +\333\011\274\154\106\174\170\237\225\173\265\063\220\362\162\142 +\326\301\066\040\042\044\136\316\351\167\362\103\012\242\006\144 +\244\314\216\066\370\070\346\043\360\156\155\261\074\335\162\243 +\205\034\241\323\075\264\063\053\323\057\257\376\352\260\101\131 +\147\266\304\006\175\012\236\164\205\326\171\114\200\067\172\337 +\071\005\122\131\367\364\033\106\103\244\322\205\205\322\303\161 +\363\165\142\064\272\054\212\177\036\217\356\355\064\320\021\307 +\226\315\122\075\272\063\326\335\115\336\013\073\112\113\237\302 +\046\057\372\265\026\034\162\065\167\312\074\135\346\312\341\046 +\213\032\066\166\134\001\333\164\024\045\376\355\265\240\210\017 +\335\170\312\055\037\007\227\060\001\055\162\171\372\106\326\023 +\052\250\271\246\253\203\111\035\345\362\357\335\344\001\216\030 +\012\217\143\123\026\205\142\251\016\031\072\314\265\146\246\302 +\153\164\007\344\053\341\166\076\264\155\330\366\104\341\163\142 +\037\073\304\276\240\123\126\045\154\121\011\367\252\253\312\277 +\166\375\155\233\363\235\333\277\075\146\274\014\126\252\257\230 +\110\225\072\113\337\247\130\120\331\070\165\251\133\352\103\014 +\002\377\231\353\350\154\115\160\133\051\145\234\335\252\135\314 +\257\001\061\354\014\353\322\215\350\352\234\173\346\156\367\047 +\146\014\032\110\327\156\102\343\077\336\041\076\173\341\015\160 +\373\143\252\250\154\032\124\264\134\045\172\311\242\311\213\026 +\246\273\054\176\027\136\005\115\130\156\022\035\001\356\022\020 +\015\306\062\177\030\377\374\364\372\315\156\221\350\066\111\276 +\032\110\151\213\302\226\115\032\022\262\151\027\301\012\220\326 +\372\171\042\110\277\272\173\151\370\160\307\372\172\067\330\330 +\015\322\166\117\127\377\220\267\343\221\322\335\357\302\140\267 +\147\072\335\376\252\234\360\324\213\177\162\042\316\306\237\227 +\266\370\257\212\240\020\250\331\373\030\306\266\265\134\122\074 +\211\266\031\052\163\001\012\017\003\263\022\140\362\172\057\201 +\333\243\156\377\046\060\227\365\213\335\211\127\266\255\075\263 +\257\053\305\267\166\002\360\245\326\053\232\206\024\052\162\366 +\343\063\214\135\011\113\023\337\273\214\164\023\122\113\002\003 +\001\000\001\243\202\002\020\060\202\002\014\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003 +\125\035\016\004\026\004\024\116\013\357\032\244\100\133\245\027 +\151\207\060\312\064\150\103\320\101\256\362\060\037\006\003\125 +\035\043\004\030\060\026\200\024\116\013\357\032\244\100\133\245 +\027\151\207\060\312\064\150\103\320\101\256\362\060\202\001\132 +\006\003\125\035\040\004\202\001\121\060\202\001\115\060\202\001 +\111\006\013\053\006\001\004\001\201\265\067\001\001\001\060\202 +\001\070\060\056\006\010\053\006\001\005\005\007\002\001\026\042 +\150\164\164\160\072\057\057\167\167\167\056\163\164\141\162\164 +\163\163\154\056\143\157\155\057\160\157\154\151\143\171\056\160 +\144\146\060\064\006\010\053\006\001\005\005\007\002\001\026\050 +\150\164\164\160\072\057\057\167\167\167\056\163\164\141\162\164 +\163\163\154\056\143\157\155\057\151\156\164\145\162\155\145\144 +\151\141\164\145\056\160\144\146\060\201\317\006\010\053\006\001 +\005\005\007\002\002\060\201\302\060\047\026\040\123\164\141\162 +\164\040\103\157\155\155\145\162\143\151\141\154\040\050\123\164 +\141\162\164\103\157\155\051\040\114\164\144\056\060\003\002\001 +\001\032\201\226\114\151\155\151\164\145\144\040\114\151\141\142 +\151\154\151\164\171\054\040\162\145\141\144\040\164\150\145\040 +\163\145\143\164\151\157\156\040\052\114\145\147\141\154\040\114 +\151\155\151\164\141\164\151\157\156\163\052\040\157\146\040\164 +\150\145\040\123\164\141\162\164\103\157\155\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162 +\151\164\171\040\120\157\154\151\143\171\040\141\166\141\151\154 +\141\142\154\145\040\141\164\040\150\164\164\160\072\057\057\167 +\167\167\056\163\164\141\162\164\163\163\154\056\143\157\155\057 +\160\157\154\151\143\171\056\160\144\146\060\021\006\011\140\206 +\110\001\206\370\102\001\001\004\004\003\002\000\007\060\070\006 +\011\140\206\110\001\206\370\102\001\015\004\053\026\051\123\164 +\141\162\164\103\157\155\040\106\162\145\145\040\123\123\114\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\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\003\202\002\001\000\216\217\347\334\224 +\171\174\361\205\177\237\111\157\153\312\135\373\214\376\004\305 +\301\142\321\175\102\212\274\123\267\224\003\146\060\077\261\347 +\012\247\120\040\125\045\177\166\172\024\015\353\004\016\100\346 +\076\330\210\253\007\047\203\251\165\246\067\163\307\375\113\322 +\115\255\027\100\310\106\276\073\177\121\374\303\266\005\061\334 +\315\205\042\116\161\267\362\161\136\260\032\306\272\223\213\170 +\222\112\205\370\170\017\203\376\057\255\054\367\344\244\273\055 +\320\347\015\072\270\076\316\366\170\366\256\107\044\312\243\065 +\066\316\307\306\207\230\332\354\373\351\262\316\047\233\210\303 +\004\241\366\013\131\150\257\311\333\020\017\115\366\144\143\134 +\245\022\157\222\262\223\224\307\210\027\016\223\266\176\142\213 +\220\177\253\116\237\374\343\165\024\117\052\062\337\133\015\340 +\365\173\223\015\253\241\317\207\341\245\004\105\350\074\022\245 +\011\305\260\321\267\123\363\140\024\272\205\151\152\041\174\037 +\165\141\027\040\027\173\154\073\101\051\134\341\254\132\321\315 +\214\233\353\140\035\031\354\367\345\260\332\371\171\030\245\105 +\077\111\103\127\322\335\044\325\054\243\375\221\215\047\265\345 +\353\024\006\232\114\173\041\273\072\255\060\006\030\300\330\301 +\153\054\177\131\134\135\221\261\160\042\127\353\212\153\110\112 +\325\017\051\354\306\100\300\057\210\114\150\001\027\167\364\044 +\031\117\275\372\341\262\040\041\113\335\032\330\051\175\252\270 +\336\124\354\041\125\200\154\036\365\060\310\243\020\345\262\346 +\052\024\061\303\205\055\214\230\261\206\132\117\211\131\055\271 +\307\367\034\310\212\177\300\235\005\112\346\102\117\142\243\155 +\051\244\037\205\253\333\345\201\310\255\052\075\114\135\133\204 +\046\161\304\205\136\161\044\312\245\033\154\330\141\323\032\340 +\124\333\316\272\251\062\265\042\366\163\101\011\135\270\027\135 +\016\017\231\220\326\107\332\157\012\072\142\050\024\147\202\331 +\361\320\200\131\233\313\061\330\233\017\214\167\116\265\150\212 +\362\154\366\044\016\055\154\160\305\163\321\336\024\320\161\217 +\266\323\173\002\366\343\270\324\011\156\153\236\165\204\071\346 +\177\045\245\362\110\000\300\244\001\332\077 +END + +# Trust for "StartCom Certification Authority" +# Issuer: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Serial Number: 45 (0x2d) +# Subject: CN=StartCom Certification Authority,OU=Secure Digital Certificate Signing,O=StartCom Ltd.,C=IL +# Not Valid Before: Sun Sep 17 19:46:37 2006 +# Not Valid After : Wed Sep 17 19:46:36 2036 +# Fingerprint (MD5): C9:3B:0D:84:41:FC:A4:76:79:23:08:57:DE:10:19:16 +# Fingerprint (SHA1): A3:F1:33:3F:E2:42:BF:CF:C5:D1:4E:8F:39:42:98:40:68:10:D1:A0 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "StartCom Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\243\361\063\077\342\102\277\317\305\321\116\217\071\102\230\100 +\150\020\321\240 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\311\073\015\204\101\374\244\166\171\043\010\127\336\020\031\026 +END +CKA_ISSUER MULTILINE_OCTAL +\060\175\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\053\060\051\006\003\125\004\013 +\023\042\123\145\143\165\162\145\040\104\151\147\151\164\141\154 +\040\103\145\162\164\151\146\151\143\141\164\145\040\123\151\147 +\156\151\156\147\061\051\060\047\006\003\125\004\003\023\040\123 +\164\141\162\164\103\157\155\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\001\055 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "StartCom Certification Authority G2" +# +# Issuer: CN=StartCom Certification Authority G2,O=StartCom Ltd.,C=IL +# Serial Number: 59 (0x3b) +# Subject: CN=StartCom Certification Authority G2,O=StartCom Ltd.,C=IL +# Not Valid Before: Fri Jan 01 01:00:01 2010 +# Not Valid After : Sat Dec 31 23:59:01 2039 +# Fingerprint (MD5): 78:4B:FB:9E:64:82:0A:D3:B8:4C:62:F3:64:F2:90:64 +# Fingerprint (SHA1): 31:F1:FD:68:22:63:20:EE:C6:3B:3F:9D:EA:4A:3E:53:7C:7C:39:17 +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 "StartCom Certification Authority G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\123\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\054\060\052\006\003\125\004\003 +\023\043\123\164\141\162\164\103\157\155\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\123\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\054\060\052\006\003\125\004\003 +\023\043\123\164\141\162\164\103\157\155\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\073 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\143\060\202\003\113\240\003\002\001\002\002\001\073 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\123\061\013\060\011\006\003\125\004\006\023\002\111\114\061\026 +\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103\157 +\155\040\114\164\144\056\061\054\060\052\006\003\125\004\003\023 +\043\123\164\141\162\164\103\157\155\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164 +\171\040\107\062\060\036\027\015\061\060\060\061\060\061\060\061 +\060\060\060\061\132\027\015\063\071\061\062\063\061\062\063\065 +\071\060\061\132\060\123\061\013\060\011\006\003\125\004\006\023 +\002\111\114\061\026\060\024\006\003\125\004\012\023\015\123\164 +\141\162\164\103\157\155\040\114\164\144\056\061\054\060\052\006 +\003\125\004\003\023\043\123\164\141\162\164\103\157\155\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\107\062\060\202\002\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017 +\000\060\202\002\012\002\202\002\001\000\266\211\066\133\007\267 +\040\066\275\202\273\341\026\040\003\225\172\257\016\243\125\311 +\045\231\112\305\320\126\101\207\220\115\041\140\244\024\207\073 +\315\375\262\076\264\147\003\152\355\341\017\113\300\221\205\160 +\105\340\102\236\336\051\043\324\001\015\240\020\171\270\333\003 +\275\363\251\057\321\306\340\017\313\236\212\024\012\270\275\366 +\126\142\361\305\162\266\062\045\331\262\363\275\145\305\015\054 +\156\325\222\157\030\213\000\101\024\202\157\100\040\046\172\050 +\017\365\036\177\047\367\224\261\067\075\267\307\221\367\342\001 +\354\375\224\211\341\314\156\323\066\326\012\031\171\256\327\064 +\202\145\377\174\102\273\266\335\013\246\064\257\113\140\376\177 +\103\111\006\213\214\103\270\126\362\331\177\041\103\027\352\247 +\110\225\001\165\165\352\053\245\103\225\352\025\204\235\010\215 +\046\156\125\233\253\334\322\071\322\061\035\140\342\254\314\126 +\105\044\365\034\124\253\356\206\335\226\062\205\370\114\117\350 +\225\166\266\005\335\066\043\147\274\377\025\342\312\073\346\246 +\354\073\354\046\021\064\110\215\366\200\053\032\043\002\353\212 +\034\072\166\052\173\126\026\034\162\052\263\252\343\140\245\000 +\237\004\233\342\157\036\024\130\133\245\154\213\130\074\303\272 +\116\072\134\367\341\226\053\076\357\007\274\244\345\135\314\115 +\237\015\341\334\252\273\341\156\032\354\217\341\266\114\115\171 +\162\135\027\065\013\035\327\301\107\332\226\044\340\320\162\250 +\132\137\146\055\020\334\057\052\023\256\046\376\012\034\031\314 +\320\076\013\234\310\011\056\371\133\226\172\107\234\351\172\363 +\005\120\164\225\163\236\060\011\363\227\202\136\346\217\071\010 +\036\131\345\065\024\102\023\377\000\234\367\276\252\120\317\342 +\121\110\327\270\157\257\370\116\176\063\230\222\024\142\072\165 +\143\317\173\372\336\202\073\251\273\071\342\304\275\054\000\016 +\310\027\254\023\357\115\045\216\330\263\220\057\251\332\051\175 +\035\257\164\072\262\047\300\301\036\076\165\243\026\251\257\172 +\042\135\237\023\032\317\247\240\353\343\206\012\323\375\346\226 +\225\327\043\310\067\335\304\174\252\066\254\230\032\022\261\340 +\116\350\261\073\365\326\157\361\060\327\002\003\001\000\001\243 +\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\113 +\305\264\100\153\255\034\263\245\034\145\156\106\066\211\207\005 +\014\016\266\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\002\001\000\163\127\077\054\325\225\062\176\067 +\333\226\222\353\031\136\176\123\347\101\354\021\266\107\357\265 +\336\355\164\134\305\361\216\111\340\374\156\231\023\315\237\212 +\332\315\072\012\330\072\132\011\077\137\064\320\057\003\322\146 +\035\032\275\234\220\067\310\014\216\007\132\224\105\106\052\346 +\276\172\332\241\251\244\151\022\222\260\175\066\324\104\207\327 +\121\361\051\143\326\165\315\026\344\047\211\035\370\302\062\110 +\375\333\231\320\217\137\124\164\314\254\147\064\021\142\331\014 +\012\067\207\321\243\027\110\216\322\027\035\366\327\375\333\145 +\353\375\250\324\365\326\117\244\133\165\350\305\322\140\262\333 +\011\176\045\213\173\272\122\222\236\076\350\305\167\241\074\340 +\112\163\153\141\317\206\334\103\377\377\041\376\043\135\044\112 +\365\323\155\017\142\004\005\127\202\332\156\244\063\045\171\113 +\056\124\031\213\314\054\075\060\351\321\006\377\350\062\106\276 +\265\063\166\167\250\001\135\226\301\301\325\276\256\045\300\311 +\036\012\011\040\210\241\016\311\363\157\115\202\124\000\040\247 +\322\217\344\071\124\027\056\215\036\270\033\273\033\275\232\116 +\073\020\064\334\234\210\123\357\242\061\133\130\117\221\142\310 +\302\232\232\315\025\135\070\251\326\276\370\023\265\237\022\151 +\362\120\142\254\373\027\067\364\356\270\165\147\140\020\373\203 +\120\371\104\265\165\234\100\027\262\376\375\171\135\156\130\130 +\137\060\374\000\256\257\063\301\016\116\154\272\247\246\241\177 +\062\333\070\340\261\162\027\012\053\221\354\152\143\046\355\211 +\324\170\314\164\036\005\370\153\376\214\152\166\071\051\256\145 +\043\022\225\010\042\034\227\316\133\006\356\014\342\273\274\037 +\104\223\366\330\070\105\005\041\355\344\255\253\022\266\003\244 +\102\056\055\304\011\072\003\147\151\204\232\341\131\220\212\050 +\205\325\135\164\261\321\016\040\130\233\023\245\260\143\246\355 +\173\107\375\105\125\060\244\356\232\324\346\342\207\357\230\311 +\062\202\021\051\042\274\000\012\061\136\055\017\300\216\351\153 +\262\217\056\006\330\321\221\307\306\022\364\114\375\060\027\303 +\301\332\070\133\343\251\352\346\241\272\171\357\163\330\266\123 +\127\055\366\320\341\327\110 +END + +# Trust for "StartCom Certification Authority G2" +# Issuer: CN=StartCom Certification Authority G2,O=StartCom Ltd.,C=IL +# Serial Number: 59 (0x3b) +# Subject: CN=StartCom Certification Authority G2,O=StartCom Ltd.,C=IL +# Not Valid Before: Fri Jan 01 01:00:01 2010 +# Not Valid After : Sat Dec 31 23:59:01 2039 +# Fingerprint (MD5): 78:4B:FB:9E:64:82:0A:D3:B8:4C:62:F3:64:F2:90:64 +# Fingerprint (SHA1): 31:F1:FD:68:22:63:20:EE:C6:3B:3F:9D:EA:4A:3E:53:7C:7C:39:17 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "StartCom Certification Authority G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\061\361\375\150\042\143\040\356\306\073\077\235\352\112\076\123 +\174\174\071\027 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\170\113\373\236\144\202\012\323\270\114\142\363\144\362\220\144 +END +CKA_ISSUER MULTILINE_OCTAL +\060\123\061\013\060\011\006\003\125\004\006\023\002\111\114\061 +\026\060\024\006\003\125\004\012\023\015\123\164\141\162\164\103 +\157\155\040\114\164\144\056\061\054\060\052\006\003\125\004\003 +\023\043\123\164\141\162\164\103\157\155\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\073 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Buypass Class 2 Root CA" +# +# Issuer: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO +# Serial Number: 2 (0x2) +# Subject: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO +# Not Valid Before: Tue Oct 26 08:38:03 2010 +# Not Valid After : Fri Oct 26 08:38:03 2040 +# Fingerprint (MD5): 46:A7:D2:FE:45:FB:64:5A:A8:59:90:9B:78:44:9B:29 +# Fingerprint (SHA1): 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99 +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 "Buypass Class 2 Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040 +\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040 +\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\131\060\202\003\101\240\003\002\001\002\002\001\002 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035 +\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163 +\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040\060 +\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163\040 +\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101\060 +\036\027\015\061\060\061\060\062\066\060\070\063\070\060\063\132 +\027\015\064\060\061\060\062\066\060\070\063\070\060\063\132\060 +\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035 +\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163 +\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040\060 +\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163\040 +\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101\060 +\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000 +\327\307\136\367\301\007\324\167\373\103\041\364\364\365\151\344 +\356\062\001\333\243\206\037\344\131\015\272\347\165\203\122\353 +\352\034\141\025\110\273\035\007\312\214\256\260\334\226\235\352 +\303\140\222\206\202\050\163\234\126\006\377\113\144\360\014\052 +\067\111\265\345\317\014\174\356\361\112\273\163\060\145\363\325 +\057\203\266\176\343\347\365\236\253\140\371\323\361\235\222\164 +\212\344\034\226\254\133\200\351\265\364\061\207\243\121\374\307 +\176\241\157\216\123\167\324\227\301\125\063\222\076\030\057\165 +\324\255\206\111\313\225\257\124\006\154\330\006\023\215\133\377 +\341\046\031\131\300\044\272\201\161\171\220\104\120\150\044\224 +\137\270\263\021\361\051\101\141\243\101\313\043\066\325\301\361 +\062\120\020\116\177\364\206\223\354\204\323\216\274\113\277\134 +\001\116\007\075\334\024\212\224\012\244\352\163\373\013\121\350 +\023\007\030\372\016\361\053\321\124\025\175\074\341\367\264\031 +\102\147\142\136\167\340\242\125\354\266\331\151\027\325\072\257 +\104\355\112\305\236\344\172\047\174\345\165\327\252\313\045\347 +\337\153\012\333\017\115\223\116\250\240\315\173\056\362\131\001 +\152\267\015\270\007\201\176\213\070\033\070\346\012\127\231\075 +\356\041\350\243\365\014\026\335\213\354\064\216\234\052\034\000 +\025\027\215\150\203\322\160\237\030\010\315\021\150\325\311\153 +\122\315\304\106\217\334\265\363\330\127\163\036\351\224\071\004 +\277\323\336\070\336\264\123\354\151\034\242\176\304\217\344\033 +\160\255\362\242\371\373\367\026\144\146\151\237\111\121\242\342 +\025\030\147\006\112\177\325\154\265\115\263\063\340\141\353\135 +\276\351\230\017\062\327\035\113\074\056\132\001\122\221\011\362 +\337\352\215\330\006\100\143\252\021\344\376\303\067\236\024\122 +\077\364\342\314\362\141\223\321\375\147\153\327\122\256\277\150 +\253\100\103\240\127\065\123\170\360\123\370\141\102\007\144\306 +\327\157\233\114\070\015\143\254\142\257\066\213\242\163\012\015 +\365\041\275\164\252\115\352\162\003\111\333\307\137\035\142\143 +\307\375\335\221\354\063\356\365\155\264\156\060\150\336\310\326 +\046\260\165\136\173\264\007\040\230\241\166\062\270\115\154\117 +\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035 +\016\004\026\004\024\311\200\167\340\142\222\202\365\106\234\363 +\272\367\114\303\336\270\243\255\071\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\015\006\011\052\206\110 +\206\367\015\001\001\013\005\000\003\202\002\001\000\123\137\041 +\365\272\260\072\122\071\054\222\260\154\000\311\357\316\040\357 +\006\362\226\236\351\244\164\177\172\026\374\267\365\266\373\025 +\033\077\253\246\300\162\135\020\261\161\356\274\117\343\255\254 +\003\155\056\161\056\257\304\343\255\243\275\014\021\247\264\377 +\112\262\173\020\020\037\247\127\101\262\300\256\364\054\131\326 +\107\020\210\363\041\121\051\060\312\140\206\257\106\253\035\355 +\072\133\260\224\336\104\343\101\010\242\301\354\035\326\375\117 +\266\326\107\320\024\013\312\346\312\265\173\167\176\101\037\136 +\203\307\266\214\071\226\260\077\226\201\101\157\140\220\342\350 +\371\373\042\161\331\175\263\075\106\277\264\204\257\220\034\017 +\217\022\152\257\357\356\036\172\256\002\112\212\027\053\166\376 +\254\124\211\044\054\117\077\266\262\247\116\214\250\221\227\373 +\051\306\173\134\055\271\313\146\266\267\250\133\022\121\205\265 +\011\176\142\170\160\376\251\152\140\266\035\016\171\014\375\312 +\352\044\200\162\303\227\077\362\167\253\103\042\012\307\353\266 +\014\204\202\054\200\153\101\212\010\300\353\245\153\337\231\022 +\313\212\325\136\200\014\221\340\046\010\066\110\305\372\070\021 +\065\377\045\203\055\362\172\277\332\375\216\376\245\313\105\054 +\037\304\210\123\256\167\016\331\232\166\305\216\054\035\243\272 +\325\354\062\256\300\252\254\367\321\172\115\353\324\007\342\110 +\367\042\216\260\244\237\152\316\216\262\262\140\364\243\042\320 +\043\353\224\132\172\151\335\017\277\100\127\254\153\131\120\331 +\243\231\341\156\376\215\001\171\047\043\025\336\222\235\173\011 +\115\132\347\113\110\060\132\030\346\012\155\346\217\340\322\273 +\346\337\174\156\041\202\301\150\071\115\264\230\130\146\142\314 +\112\220\136\303\372\047\004\261\171\025\164\231\314\276\255\040 +\336\046\140\034\353\126\121\246\243\352\344\243\077\247\377\141 +\334\361\132\115\154\062\043\103\356\254\250\356\356\112\022\011 +\074\135\161\302\276\171\372\302\207\150\035\013\375\134\151\314 +\006\320\232\175\124\231\052\311\071\032\031\257\113\052\103\363 +\143\135\132\130\342\057\343\035\344\251\326\320\012\320\236\277 +\327\201\011\361\311\307\046\015\254\230\026\126\240 +END + +# Trust for "Buypass Class 2 Root CA" +# Issuer: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO +# Serial Number: 2 (0x2) +# Subject: CN=Buypass Class 2 Root CA,O=Buypass AS-983163327,C=NO +# Not Valid Before: Tue Oct 26 08:38:03 2010 +# Not Valid After : Fri Oct 26 08:38:03 2040 +# Fingerprint (MD5): 46:A7:D2:FE:45:FB:64:5A:A8:59:90:9B:78:44:9B:29 +# Fingerprint (SHA1): 49:0A:75:74:DE:87:0A:47:FE:58:EE:F6:C7:6B:EB:C6:0B:12:40:99 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Buypass Class 2 Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\111\012\165\164\336\207\012\107\376\130\356\366\307\153\353\306 +\013\022\100\231 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\106\247\322\376\105\373\144\132\250\131\220\233\170\104\233\051 +END +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040 +\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\062\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Buypass Class 3 Root CA" +# +# Issuer: CN=Buypass Class 3 Root CA,O=Buypass AS-983163327,C=NO +# Serial Number: 2 (0x2) +# Subject: CN=Buypass Class 3 Root CA,O=Buypass AS-983163327,C=NO +# Not Valid Before: Tue Oct 26 08:28:58 2010 +# Not Valid After : Fri Oct 26 08:28:58 2040 +# Fingerprint (MD5): 3D:3B:18:9E:2C:64:5A:E8:D5:88:CE:0E:F9:37:C2:EC +# Fingerprint (SHA1): DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57 +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 "Buypass Class 3 Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040 +\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\063\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040 +\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\063\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\131\060\202\003\101\240\003\002\001\002\002\001\002 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035 +\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163 +\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040\060 +\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163\040 +\103\154\141\163\163\040\063\040\122\157\157\164\040\103\101\060 +\036\027\015\061\060\061\060\062\066\060\070\062\070\065\070\132 +\027\015\064\060\061\060\062\066\060\070\062\070\065\070\132\060 +\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061\035 +\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163\163 +\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040\060 +\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163\040 +\103\154\141\163\163\040\063\040\122\157\157\164\040\103\101\060 +\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000 +\245\332\012\225\026\120\343\225\362\136\235\166\061\006\062\172 +\233\361\020\166\270\000\232\265\122\066\315\044\107\260\237\030 +\144\274\232\366\372\325\171\330\220\142\114\042\057\336\070\075 +\326\340\250\351\034\054\333\170\021\351\216\150\121\025\162\307 +\363\063\207\344\240\135\013\134\340\127\007\052\060\365\315\304 +\067\167\050\115\030\221\346\277\325\122\375\161\055\160\076\347 +\306\304\212\343\360\050\013\364\166\230\241\213\207\125\262\072 +\023\374\267\076\047\067\216\042\343\250\117\052\357\140\273\075 +\267\071\303\016\001\107\231\135\022\117\333\103\372\127\241\355 +\371\235\276\021\107\046\133\023\230\253\135\026\212\260\067\034 +\127\235\105\377\210\226\066\277\273\312\007\173\157\207\143\327 +\320\062\152\326\135\154\014\361\263\156\071\342\153\061\056\071 +\000\047\024\336\070\300\354\031\146\206\022\350\235\162\026\023 +\144\122\307\251\067\034\375\202\060\355\204\030\035\364\256\134 +\377\160\023\000\353\261\365\063\172\113\326\125\370\005\215\113 +\151\260\365\263\050\066\134\024\304\121\163\115\153\013\361\064 +\007\333\027\071\327\334\050\173\153\365\237\363\056\301\117\027 +\052\020\363\314\312\350\353\375\153\253\056\232\237\055\202\156 +\004\324\122\001\223\055\075\206\374\176\374\337\357\102\035\246 +\153\357\271\040\306\367\275\240\247\225\375\247\346\211\044\330 +\314\214\064\154\342\043\057\331\022\032\041\271\125\221\157\013 +\221\171\031\014\255\100\210\013\160\342\172\322\016\330\150\110 +\273\202\023\071\020\130\351\330\052\007\306\022\333\130\333\322 +\073\125\020\107\005\025\147\142\176\030\143\246\106\077\011\016 +\124\062\136\277\015\142\172\047\357\200\350\333\331\113\006\132 +\067\132\045\320\010\022\167\324\157\011\120\227\075\310\035\303 +\337\214\105\060\126\306\323\144\253\146\363\300\136\226\234\303 +\304\357\303\174\153\213\072\171\177\263\111\317\075\342\211\237 +\240\060\113\205\271\234\224\044\171\217\175\153\251\105\150\017 +\053\320\361\332\034\313\151\270\312\111\142\155\310\320\143\142 +\335\140\017\130\252\217\241\274\005\245\146\242\317\033\166\262 +\204\144\261\114\071\122\300\060\272\360\214\113\002\260\266\267 +\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035 +\016\004\026\004\024\107\270\315\377\345\157\356\370\262\354\057 +\116\016\371\045\260\216\074\153\303\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\015\006\011\052\206\110 +\206\367\015\001\001\013\005\000\003\202\002\001\000\000\040\043 +\101\065\004\220\302\100\142\140\357\342\065\114\327\077\254\342 +\064\220\270\241\157\166\372\026\026\244\110\067\054\351\220\302 +\362\074\370\012\237\330\201\345\273\133\332\045\054\244\247\125 +\161\044\062\366\310\013\362\274\152\370\223\254\262\007\302\137 +\237\333\314\310\212\252\276\152\157\341\111\020\314\061\327\200 +\273\273\310\330\242\016\144\127\352\242\365\302\251\061\025\322 +\040\152\354\374\042\001\050\317\206\270\200\036\251\314\021\245 +\074\362\026\263\107\235\374\322\200\041\304\313\320\107\160\101 +\241\312\203\031\010\054\155\362\135\167\234\212\024\023\324\066 +\034\222\360\345\006\067\334\246\346\220\233\070\217\134\153\033 +\106\206\103\102\137\076\001\007\123\124\135\145\175\367\212\163 +\241\232\124\132\037\051\103\024\047\302\205\017\265\210\173\032 +\073\224\267\035\140\247\265\234\347\051\151\127\132\233\223\172 +\103\060\033\003\327\142\310\100\246\252\374\144\344\112\327\221 +\123\001\250\040\210\156\234\137\104\271\313\140\201\064\354\157 +\323\175\332\110\137\353\264\220\274\055\251\034\013\254\034\325 +\242\150\040\200\004\326\374\261\217\057\273\112\061\015\112\206 +\034\353\342\066\051\046\365\332\330\304\362\165\141\317\176\256 +\166\143\112\172\100\145\223\207\370\036\200\214\206\345\206\326 +\217\016\374\123\054\140\350\026\141\032\242\076\103\173\315\071 +\140\124\152\365\362\211\046\001\150\203\110\242\063\350\311\004 +\221\262\021\064\021\076\352\320\103\031\037\003\223\220\014\377 +\121\075\127\364\101\156\341\313\240\276\353\311\143\315\155\314 +\344\370\066\252\150\235\355\275\135\227\160\104\015\266\016\065 +\334\341\014\135\273\240\121\224\313\176\026\353\021\057\243\222 +\105\310\114\161\331\274\311\231\122\127\106\057\120\317\275\065 +\151\364\075\025\316\006\245\054\017\076\366\201\272\224\273\303 +\273\277\145\170\322\206\171\377\111\073\032\203\014\360\336\170 +\354\310\362\115\114\032\336\202\051\370\301\132\332\355\356\346 +\047\136\350\105\320\235\034\121\250\150\253\104\343\320\213\152 +\343\370\073\273\334\115\327\144\362\121\276\346\252\253\132\351 +\061\356\006\274\163\277\023\142\012\237\307\271\227 +END + +# Trust for "Buypass Class 3 Root CA" +# Issuer: CN=Buypass Class 3 Root CA,O=Buypass AS-983163327,C=NO +# Serial Number: 2 (0x2) +# Subject: CN=Buypass Class 3 Root CA,O=Buypass AS-983163327,C=NO +# Not Valid Before: Tue Oct 26 08:28:58 2010 +# Not Valid After : Fri Oct 26 08:28:58 2040 +# Fingerprint (MD5): 3D:3B:18:9E:2C:64:5A:E8:D5:88:CE:0E:F9:37:C2:EC +# Fingerprint (SHA1): DA:FA:F7:FA:66:84:EC:06:8F:14:50:BD:C7:C2:81:A5:BC:A9:64:57 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Buypass Class 3 Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\332\372\367\372\146\204\354\006\217\024\120\275\307\302\201\245 +\274\251\144\127 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\075\073\030\236\054\144\132\350\325\210\316\016\371\067\302\354 +END +CKA_ISSUER MULTILINE_OCTAL +\060\116\061\013\060\011\006\003\125\004\006\023\002\116\117\061 +\035\060\033\006\003\125\004\012\014\024\102\165\171\160\141\163 +\163\040\101\123\055\071\070\063\061\066\063\063\062\067\061\040 +\060\036\006\003\125\004\003\014\027\102\165\171\160\141\163\163 +\040\103\154\141\163\163\040\063\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "T-TeleSec GlobalRoot Class 3" +# +# Issuer: CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Serial Number: 1 (0x1) +# Subject: CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Not Valid Before: Wed Oct 01 10:29:56 2008 +# Not Valid After : Sat Oct 01 23:59:59 2033 +# Fingerprint (MD5): CA:FB:40:A8:4E:39:92:8A:1D:FE:8E:2F:C4:27:EA:EF +# Fingerprint (SHA1): 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1 +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 "T-TeleSec GlobalRoot Class 3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163 +\164\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040 +\123\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060 +\035\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155 +\163\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045 +\060\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123 +\145\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154 +\141\163\163\040\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163 +\164\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040 +\123\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060 +\035\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155 +\163\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045 +\060\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123 +\145\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154 +\141\163\163\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\303\060\202\002\253\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163\164 +\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040\123 +\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060\035 +\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155\163 +\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045\060 +\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123\145 +\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154\141 +\163\163\040\063\060\036\027\015\060\070\061\060\060\061\061\060 +\062\071\065\066\132\027\015\063\063\061\060\060\061\062\063\065 +\071\065\071\132\060\201\202\061\013\060\011\006\003\125\004\006 +\023\002\104\105\061\053\060\051\006\003\125\004\012\014\042\124 +\055\123\171\163\164\145\155\163\040\105\156\164\145\162\160\162 +\151\163\145\040\123\145\162\166\151\143\145\163\040\107\155\142 +\110\061\037\060\035\006\003\125\004\013\014\026\124\055\123\171 +\163\164\145\155\163\040\124\162\165\163\164\040\103\145\156\164 +\145\162\061\045\060\043\006\003\125\004\003\014\034\124\055\124 +\145\154\145\123\145\143\040\107\154\157\142\141\154\122\157\157 +\164\040\103\154\141\163\163\040\063\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\275\165\223\360\142\042 +\157\044\256\340\172\166\254\175\275\331\044\325\270\267\374\315 +\360\102\340\353\170\210\126\136\233\232\124\035\115\014\212\366 +\323\317\160\364\122\265\330\223\004\343\106\206\161\101\112\053 +\360\052\054\125\003\326\110\303\340\071\070\355\362\134\074\077 +\104\274\223\075\141\253\116\315\015\276\360\040\047\130\016\104 +\177\004\032\207\245\327\226\024\066\220\320\111\173\241\165\373 +\032\153\163\261\370\316\251\011\054\362\123\325\303\024\104\270 +\206\245\366\213\053\071\332\243\063\124\331\372\162\032\367\042 +\025\034\210\221\153\177\146\345\303\152\200\260\044\363\337\206 +\105\210\375\031\177\165\207\037\037\261\033\012\163\044\133\271 +\145\340\054\124\310\140\323\146\027\077\341\314\124\063\163\221 +\002\072\246\177\173\166\071\242\037\226\266\070\256\265\310\223 +\164\035\236\271\264\345\140\235\057\126\321\340\353\136\133\114 +\022\160\014\154\104\040\253\021\330\364\031\366\322\234\122\067 +\347\372\266\302\061\073\112\324\024\231\255\307\032\365\135\137 +\372\007\270\174\015\037\326\203\036\263\002\003\001\000\001\243 +\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\265 +\003\367\166\073\141\202\152\022\252\030\123\353\003\041\224\277 +\376\316\312\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\001\001\000\126\075\357\224\325\275\332\163\262 +\130\276\256\220\255\230\047\227\376\001\261\260\122\000\270\115 +\344\033\041\164\033\176\300\356\136\151\052\045\257\134\326\035 +\332\322\171\311\363\227\051\340\206\207\336\004\131\017\361\131 +\324\144\205\113\231\257\045\004\036\311\106\251\227\336\202\262 +\033\160\237\234\366\257\161\061\335\173\005\245\054\323\271\312 +\107\366\312\362\366\347\255\271\110\077\274\026\267\301\155\364 +\352\011\257\354\363\265\347\005\236\246\036\212\123\121\326\223 +\201\314\164\223\366\271\332\246\045\005\164\171\132\176\100\076 +\202\113\046\021\060\156\341\077\101\307\107\000\065\325\365\323 +\367\124\076\201\075\332\111\152\232\263\357\020\075\346\353\157 +\321\310\042\107\313\314\317\001\061\222\331\030\343\042\276\011 +\036\032\076\132\262\344\153\014\124\172\175\103\116\270\211\245 +\173\327\242\075\226\206\314\362\046\064\055\152\222\235\232\032 +\320\060\342\135\116\004\260\137\213\040\176\167\301\075\225\202 +\321\106\232\073\074\170\270\157\241\320\015\144\242\170\036\051 +\116\223\303\244\124\024\133 +END + +# Trust for "T-TeleSec GlobalRoot Class 3" +# Issuer: CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Serial Number: 1 (0x1) +# Subject: CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Not Valid Before: Wed Oct 01 10:29:56 2008 +# Not Valid After : Sat Oct 01 23:59:59 2033 +# Fingerprint (MD5): CA:FB:40:A8:4E:39:92:8A:1D:FE:8E:2F:C4:27:EA:EF +# Fingerprint (SHA1): 55:A6:72:3E:CB:F2:EC:CD:C3:23:74:70:19:9D:2A:BE:11:E3:81:D1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "T-TeleSec GlobalRoot Class 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\125\246\162\076\313\362\354\315\303\043\164\160\031\235\052\276 +\021\343\201\321 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\312\373\100\250\116\071\222\212\035\376\216\057\304\047\352\357 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163 +\164\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040 +\123\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060 +\035\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155 +\163\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045 +\060\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123 +\145\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154 +\141\163\163\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "EE Certification Centre Root CA" +# +# Issuer: E=pki@sk.ee,CN=EE Certification Centre Root CA,O=AS Sertifitseerimiskeskus,C=EE +# Serial Number:54:80:f9:a0:73:ed:3f:00:4c:ca:89:d8:e3:71:e6:4a +# Subject: E=pki@sk.ee,CN=EE Certification Centre Root CA,O=AS Sertifitseerimiskeskus,C=EE +# Not Valid Before: Sat Oct 30 10:10:30 2010 +# Not Valid After : Tue Dec 17 23:59:59 2030 +# Fingerprint (MD5): 43:5E:88:D4:7D:1A:4A:7E:FD:84:2E:52:EB:01:D4:6F +# Fingerprint (SHA1): C9:A8:B9:E7:55:80:5E:58:E3:53:77:A7:25:EB:AF:C3:7B:27:CC:D7 +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 "EE Certification Centre Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\105\105\061 +\042\060\040\006\003\125\004\012\014\031\101\123\040\123\145\162 +\164\151\146\151\164\163\145\145\162\151\155\151\163\153\145\163 +\153\165\163\061\050\060\046\006\003\125\004\003\014\037\105\105 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\103 +\145\156\164\162\145\040\122\157\157\164\040\103\101\061\030\060 +\026\006\011\052\206\110\206\367\015\001\011\001\026\011\160\153 +\151\100\163\153\056\145\145 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\105\105\061 +\042\060\040\006\003\125\004\012\014\031\101\123\040\123\145\162 +\164\151\146\151\164\163\145\145\162\151\155\151\163\153\145\163 +\153\165\163\061\050\060\046\006\003\125\004\003\014\037\105\105 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\103 +\145\156\164\162\145\040\122\157\157\164\040\103\101\061\030\060 +\026\006\011\052\206\110\206\367\015\001\011\001\026\011\160\153 +\151\100\163\153\056\145\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\124\200\371\240\163\355\077\000\114\312\211\330\343\161 +\346\112 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\003\060\202\002\353\240\003\002\001\002\002\020\124 +\200\371\240\163\355\077\000\114\312\211\330\343\161\346\112\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\165 +\061\013\060\011\006\003\125\004\006\023\002\105\105\061\042\060 +\040\006\003\125\004\012\014\031\101\123\040\123\145\162\164\151 +\146\151\164\163\145\145\162\151\155\151\163\153\145\163\153\165 +\163\061\050\060\046\006\003\125\004\003\014\037\105\105\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\103\145\156 +\164\162\145\040\122\157\157\164\040\103\101\061\030\060\026\006 +\011\052\206\110\206\367\015\001\011\001\026\011\160\153\151\100 +\163\153\056\145\145\060\042\030\017\062\060\061\060\061\060\063 +\060\061\060\061\060\063\060\132\030\017\062\060\063\060\061\062 +\061\067\062\063\065\071\065\071\132\060\165\061\013\060\011\006 +\003\125\004\006\023\002\105\105\061\042\060\040\006\003\125\004 +\012\014\031\101\123\040\123\145\162\164\151\146\151\164\163\145 +\145\162\151\155\151\163\153\145\163\153\165\163\061\050\060\046 +\006\003\125\004\003\014\037\105\105\040\103\145\162\164\151\146 +\151\143\141\164\151\157\156\040\103\145\156\164\162\145\040\122 +\157\157\164\040\103\101\061\030\060\026\006\011\052\206\110\206 +\367\015\001\011\001\026\011\160\153\151\100\163\153\056\145\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\310\040\300\354\340\305\113\253\007\170\225\363\104\356\373 +\013\014\377\164\216\141\273\261\142\352\043\330\253\241\145\062 +\172\353\216\027\117\226\330\012\173\221\242\143\154\307\214\114 +\056\171\277\251\005\374\151\134\225\215\142\371\271\160\355\303 +\121\175\320\223\346\154\353\060\113\341\274\175\277\122\233\316 +\156\173\145\362\070\261\300\242\062\357\142\262\150\340\141\123 +\301\066\225\377\354\224\272\066\256\234\034\247\062\017\345\174 +\264\306\157\164\375\173\030\350\254\127\355\006\040\113\062\060 +\130\133\375\315\250\346\241\374\160\274\216\222\163\333\227\247 +\174\041\256\075\301\365\110\207\154\047\275\237\045\164\201\125 +\260\367\165\366\075\244\144\153\326\117\347\316\100\255\017\335 +\062\323\274\212\022\123\230\311\211\373\020\035\115\176\315\176 +\037\126\015\041\160\205\366\040\203\037\366\272\037\004\217\352 +\167\210\065\304\377\352\116\241\213\115\077\143\033\104\303\104 +\324\045\166\312\267\215\327\036\112\146\144\315\134\305\234\203 +\341\302\010\210\232\354\116\243\361\076\034\054\331\154\035\241 +\113\002\003\001\000\001\243\201\212\060\201\207\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006 +\003\125\035\016\004\026\004\024\022\362\132\076\352\126\034\277 +\315\006\254\361\361\045\311\251\113\324\024\231\060\105\006\003 +\125\035\045\004\076\060\074\006\010\053\006\001\005\005\007\003 +\002\006\010\053\006\001\005\005\007\003\001\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\010\053\006\001\005\005 +\007\003\011\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\001\001\000\173\366\344\300\015\252\031\107\267 +\115\127\243\376\255\273\261\152\325\017\236\333\344\143\305\216 +\241\120\126\223\226\270\070\300\044\042\146\274\123\024\141\225 +\277\320\307\052\226\071\077\175\050\263\020\100\041\152\304\257 +\260\122\167\030\341\226\330\126\135\343\335\066\136\035\247\120 +\124\240\305\052\344\252\214\224\212\117\235\065\377\166\244\006 +\023\221\242\242\175\000\104\077\125\323\202\074\032\325\133\274 +\126\114\042\056\106\103\212\044\100\055\363\022\270\073\160\032 +\244\226\271\032\257\207\101\032\152\030\015\006\117\307\076\156 +\271\051\115\015\111\211\021\207\062\133\346\113\004\310\344\134 +\346\164\163\224\135\026\230\023\225\376\373\333\261\104\345\072 +\160\254\067\153\346\263\063\162\050\311\263\127\240\366\002\026 +\210\006\013\266\246\113\040\050\324\336\075\213\255\067\005\123 +\164\376\156\314\274\103\027\161\136\371\305\314\032\251\141\356 +\367\166\014\363\162\364\162\255\317\162\002\066\007\107\317\357 +\031\120\211\140\314\351\044\225\017\302\313\035\362\157\166\220 +\307\314\165\301\226\305\235 +END + +# Trust for "EE Certification Centre Root CA" +# Issuer: E=pki@sk.ee,CN=EE Certification Centre Root CA,O=AS Sertifitseerimiskeskus,C=EE +# Serial Number:54:80:f9:a0:73:ed:3f:00:4c:ca:89:d8:e3:71:e6:4a +# Subject: E=pki@sk.ee,CN=EE Certification Centre Root CA,O=AS Sertifitseerimiskeskus,C=EE +# Not Valid Before: Sat Oct 30 10:10:30 2010 +# Not Valid After : Tue Dec 17 23:59:59 2030 +# Fingerprint (MD5): 43:5E:88:D4:7D:1A:4A:7E:FD:84:2E:52:EB:01:D4:6F +# Fingerprint (SHA1): C9:A8:B9:E7:55:80:5E:58:E3:53:77:A7:25:EB:AF:C3:7B:27:CC:D7 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "EE Certification Centre Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\311\250\271\347\125\200\136\130\343\123\167\247\045\353\257\303 +\173\047\314\327 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\103\136\210\324\175\032\112\176\375\204\056\122\353\001\324\157 +END +CKA_ISSUER MULTILINE_OCTAL +\060\165\061\013\060\011\006\003\125\004\006\023\002\105\105\061 +\042\060\040\006\003\125\004\012\014\031\101\123\040\123\145\162 +\164\151\146\151\164\163\145\145\162\151\155\151\163\153\145\163 +\153\165\163\061\050\060\046\006\003\125\004\003\014\037\105\105 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\103 +\145\156\164\162\145\040\122\157\157\164\040\103\101\061\030\060 +\026\006\011\052\206\110\206\367\015\001\011\001\026\011\160\153 +\151\100\163\153\056\145\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\124\200\371\240\163\355\077\000\114\312\211\330\343\161 +\346\112 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Explicitly Distrust "TURKTRUST Mis-issued Intermediate CA 1", Bug 825022 +# Issuer: O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A...,C=TR,CN=T..RKTRUST Elektronik Sunucu Sertifikas.. Hizmetleri +# Serial Number: 2087 (0x827) +# Subject: CN=*.EGO.GOV.TR,OU=EGO BILGI ISLEM,O=EGO,L=ANKARA,ST=ANKARA,C=TR +# Not Valid Before: Mon Aug 08 07:07:51 2011 +# Not Valid After : Tue Jul 06 07:07:51 2021 +# Fingerprint (MD5): F8:F5:25:FF:0C:31:CF:85:E1:0C:86:17:C1:CE:1F:8E +# Fingerprint (SHA1): C6:9F:28:C8:25:13:9E:65:A6:46:C4:34:AC:A5:A1:D2:00:29:5D:B1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Mis-issued Intermediate CA 1" +CKA_ISSUER MULTILINE_OCTAL +\060\201\254\061\075\060\073\006\003\125\004\003\014\064\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\165\156\165\143\165\040\123\145\162\164\151 +\146\151\153\141\163\304\261\040\110\151\172\155\145\164\154\145 +\162\151\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\136\060\134\006\003\125\004\012\014\125\124\303\234\122\113\124 +\122\125\123\124\040\102\151\154\147\151\040\304\260\154\145\164 +\151\305\237\151\155\040\166\145\040\102\151\154\151\305\237\151 +\155\040\107\303\274\166\145\156\154\151\304\237\151\040\110\151 +\172\155\145\164\154\145\162\151\040\101\056\305\236\056\040\050 +\143\051\040\113\141\163\304\261\155\040\040\062\060\060\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\010\047 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# Explicitly Distrust "TURKTRUST Mis-issued Intermediate CA 2", Bug 825022 +# Issuer: O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A...,C=TR,CN=T..RKTRUST Elektronik Sunucu Sertifikas.. Hizmetleri +# Serial Number: 2148 (0x864) +# Subject: E=ileti@kktcmerkezbankasi.org,CN=e-islem.kktcmerkezbankasi.org,O=KKTC Merkez Bankasi,L=Lefkosa,ST=Lefkosa,C=TR +# Not Valid Before: Mon Aug 08 07:07:51 2011 +# Not Valid After : Thu Aug 05 07:07:51 2021 +# Fingerprint (MD5): BF:C3:EC:AD:0F:42:4F:B4:B5:38:DB:35:BF:AD:84:A2 +# Fingerprint (SHA1): F9:2B:E5:26:6C:C0:5D:B2:DC:0D:C3:F2:DC:74:E0:2D:EF:D9:49:CB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Mis-issued Intermediate CA 2" +CKA_ISSUER MULTILINE_OCTAL +\060\201\254\061\075\060\073\006\003\125\004\003\014\064\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\165\156\165\143\165\040\123\145\162\164\151 +\146\151\153\141\163\304\261\040\110\151\172\155\145\164\154\145 +\162\151\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\136\060\134\006\003\125\004\012\014\125\124\303\234\122\113\124 +\122\125\123\124\040\102\151\154\147\151\040\304\260\154\145\164 +\151\305\237\151\155\040\166\145\040\102\151\154\151\305\237\151 +\155\040\107\303\274\166\145\156\154\151\304\237\151\040\110\151 +\172\155\145\164\154\145\162\151\040\101\056\305\236\056\040\050 +\143\051\040\113\141\163\304\261\155\040\040\062\060\060\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\010\144 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TURKTRUST Certificate Services Provider Root 2007" +# +# Issuer: O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A...,L=Ankara,C=TR,CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. +# Serial Number: 1 (0x1) +# Subject: O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A...,L=Ankara,C=TR,CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. +# Not Valid Before: Tue Dec 25 18:37:19 2007 +# Not Valid After : Fri Dec 22 18:37:19 2017 +# Fingerprint (MD5): 2B:70:20:56:86:82:A0:18:C8:07:53:12:28:70:21:72 +# Fingerprint (SHA1): F1:7F:6F:B6:31:DC:99:E3:A3:C8:7F:FE:1C:F1:81:10:88:D9:60:33 +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 "TURKTRUST Certificate Services Provider Root 2007" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\277\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\136\060\134\006\003\125\004\012\014\125\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\101\162\141\154\304\261\153\040\062\060 +\060\067 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\277\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\136\060\134\006\003\125\004\012\014\125\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\101\162\141\154\304\261\153\040\062\060 +\060\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\075\060\202\003\045\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\201\277\061\077\060\075\006\003\125\004\003\014\066\124\303\234 +\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157\156 +\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151\172 +\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304\261 +\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\136\060\134\006\003\125\004\012\014\125\124\303\234\122 +\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154 +\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305 +\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040 +\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056 +\040\050\143\051\040\101\162\141\154\304\261\153\040\062\060\060 +\067\060\036\027\015\060\067\061\062\062\065\061\070\063\067\061 +\071\132\027\015\061\067\061\062\062\062\061\070\063\067\061\071 +\132\060\201\277\061\077\060\075\006\003\125\004\003\014\066\124 +\303\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162 +\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110 +\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143 +\304\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002 +\124\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153 +\141\162\141\061\136\060\134\006\003\125\004\012\014\125\124\303 +\234\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304 +\260\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154 +\151\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237 +\151\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305 +\236\056\040\050\143\051\040\101\162\141\154\304\261\153\040\062 +\060\060\067\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\253\267\076\012\214\310\245\130\025\346\212\357 +\047\075\112\264\350\045\323\315\063\302\040\334\031\356\210\077 +\115\142\360\335\023\167\217\141\251\052\265\324\362\271\061\130 +\051\073\057\077\152\234\157\163\166\045\356\064\040\200\356\352 +\267\360\304\012\315\053\206\224\311\343\140\261\104\122\262\132 +\051\264\221\227\203\330\267\246\024\057\051\111\242\363\005\006 +\373\264\117\332\241\154\232\146\237\360\103\011\312\352\162\217 +\353\000\327\065\071\327\126\027\107\027\060\364\276\277\077\302 +\150\257\066\100\301\251\364\251\247\350\020\153\010\212\367\206 +\036\334\232\052\025\006\366\243\360\364\340\307\024\324\121\177 +\317\264\333\155\257\107\226\027\233\167\161\330\247\161\235\044 +\014\366\224\077\205\061\022\117\272\356\116\202\270\271\076\217 +\043\067\136\314\242\252\165\367\030\157\011\323\256\247\124\050 +\064\373\341\340\073\140\175\240\276\171\211\206\310\237\055\371 +\012\113\304\120\242\347\375\171\026\307\172\013\030\317\316\114 +\357\175\326\007\157\230\361\257\261\301\172\327\201\065\270\252 +\027\264\340\313\002\003\001\000\001\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\051\305\220\253\045\257\021\344 +\141\277\243\377\210\141\221\346\016\376\234\201\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\015\006 +\011\052\206\110\206\367\015\001\001\005\005\000\003\202\001\001 +\000\020\015\332\370\072\354\050\321\024\225\202\261\022\054\121 +\172\101\045\066\114\237\354\077\037\204\235\145\124\134\250\026 +\002\100\372\156\032\067\204\357\162\235\206\012\125\235\126\050 +\254\146\054\320\072\126\223\064\007\045\255\010\260\217\310\017 +\011\131\312\235\230\034\345\124\370\271\105\177\152\227\157\210 +\150\115\112\006\046\067\210\002\016\266\306\326\162\231\316\153 +\167\332\142\061\244\126\037\256\137\215\167\332\135\366\210\374 +\032\331\236\265\201\360\062\270\343\210\320\234\363\152\240\271 +\233\024\131\065\066\117\317\363\216\136\135\027\255\025\225\330 +\335\262\325\025\156\000\116\263\113\317\146\224\344\340\315\265 +\005\332\143\127\213\345\263\252\333\300\056\034\220\104\333\032 +\135\030\244\356\276\004\133\231\325\161\137\125\145\144\142\325 +\242\233\004\131\206\310\142\167\347\174\202\105\152\075\027\277 +\354\235\165\014\256\243\157\132\323\057\230\066\364\360\365\031 +\253\021\135\310\246\343\052\130\152\102\011\303\275\222\046\146 +\062\015\135\010\125\164\377\214\230\320\012\246\204\152\321\071 +\175 +END + +# Trust for "TURKTRUST Certificate Services Provider Root 2007" +# Issuer: O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A...,L=Ankara,C=TR,CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. +# Serial Number: 1 (0x1) +# Subject: O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A...,L=Ankara,C=TR,CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. +# Not Valid Before: Tue Dec 25 18:37:19 2007 +# Not Valid After : Fri Dec 22 18:37:19 2017 +# Fingerprint (MD5): 2B:70:20:56:86:82:A0:18:C8:07:53:12:28:70:21:72 +# Fingerprint (SHA1): F1:7F:6F:B6:31:DC:99:E3:A3:C8:7F:FE:1C:F1:81:10:88:D9:60:33 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TURKTRUST Certificate Services Provider Root 2007" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\361\177\157\266\061\334\231\343\243\310\177\376\034\361\201\020 +\210\331\140\063 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\053\160\040\126\206\202\240\030\310\007\123\022\050\160\041\162 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\277\061\077\060\075\006\003\125\004\003\014\066\124\303 +\234\122\113\124\122\125\123\124\040\105\154\145\153\164\162\157 +\156\151\153\040\123\145\162\164\151\146\151\153\141\040\110\151 +\172\155\145\164\040\123\141\304\237\154\141\171\304\261\143\304 +\261\163\304\261\061\013\060\011\006\003\125\004\006\023\002\124 +\122\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141 +\162\141\061\136\060\134\006\003\125\004\012\014\125\124\303\234 +\122\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260 +\154\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151 +\305\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151 +\040\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236 +\056\040\050\143\051\040\101\162\141\154\304\261\153\040\062\060 +\060\067 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "D-TRUST Root Class 3 CA 2 2009" +# +# Issuer: CN=D-TRUST Root Class 3 CA 2 2009,O=D-Trust GmbH,C=DE +# Serial Number: 623603 (0x983f3) +# Subject: CN=D-TRUST Root Class 3 CA 2 2009,O=D-Trust GmbH,C=DE +# Not Valid Before: Thu Nov 05 08:35:58 2009 +# Not Valid After : Mon Nov 05 08:35:58 2029 +# Fingerprint (MD5): CD:E0:25:69:8D:47:AC:9C:89:35:90:F7:FD:51:3D:2F +# Fingerprint (SHA1): 58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0 +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 "D-TRUST Root Class 3 CA 2 2009" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\115\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\047\060\045\006\003\125\004\003\014 +\036\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\062\060\060\071 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\115\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\047\060\045\006\003\125\004\003\014 +\036\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\062\060\060\071 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\011\203\363 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\063\060\202\003\033\240\003\002\001\002\002\003\011 +\203\363\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\060\115\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165 +\163\164\040\107\155\142\110\061\047\060\045\006\003\125\004\003 +\014\036\104\055\124\122\125\123\124\040\122\157\157\164\040\103 +\154\141\163\163\040\063\040\103\101\040\062\040\062\060\060\071 +\060\036\027\015\060\071\061\061\060\065\060\070\063\065\065\070 +\132\027\015\062\071\061\061\060\065\060\070\063\065\065\070\132 +\060\115\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\047\060\045\006\003\125\004\003\014 +\036\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\062\060\060\071\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 +\323\262\112\317\172\107\357\165\233\043\372\072\057\326\120\105 +\211\065\072\306\153\333\376\333\000\150\250\340\003\021\035\067 +\120\010\237\115\112\150\224\065\263\123\321\224\143\247\040\126 +\257\336\121\170\354\052\075\363\110\110\120\076\012\337\106\125 +\213\047\155\303\020\115\015\221\122\103\330\207\340\135\116\066 +\265\041\312\137\071\100\004\137\133\176\314\243\306\053\251\100 +\036\331\066\204\326\110\363\222\036\064\106\040\044\301\244\121 +\216\112\032\357\120\077\151\135\031\177\105\303\307\001\217\121 +\311\043\350\162\256\264\274\126\011\177\022\313\034\261\257\051 +\220\012\311\125\314\017\323\264\032\355\107\065\132\112\355\234 +\163\004\041\320\252\275\014\023\265\000\312\046\154\304\153\014 +\224\132\225\224\332\120\232\361\377\245\053\146\061\244\311\070 +\240\337\035\037\270\011\056\363\247\350\147\122\253\225\037\340 +\106\076\330\244\303\312\132\305\061\200\350\110\232\237\224\151 +\376\031\335\330\163\174\201\312\226\336\216\355\263\062\005\145 +\204\064\346\346\375\127\020\265\137\166\277\057\260\020\015\305 +\002\003\001\000\001\243\202\001\032\060\202\001\026\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\375\332\024\304\237\060\336 +\041\275\036\102\071\374\253\143\043\111\340\361\204\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\201\323 +\006\003\125\035\037\004\201\313\060\201\310\060\201\200\240\176 +\240\174\206\172\154\144\141\160\072\057\057\144\151\162\145\143 +\164\157\162\171\056\144\055\164\162\165\163\164\056\156\145\164 +\057\103\116\075\104\055\124\122\125\123\124\045\062\060\122\157 +\157\164\045\062\060\103\154\141\163\163\045\062\060\063\045\062 +\060\103\101\045\062\060\062\045\062\060\062\060\060\071\054\117 +\075\104\055\124\162\165\163\164\045\062\060\107\155\142\110\054 +\103\075\104\105\077\143\145\162\164\151\146\151\143\141\164\145 +\162\145\166\157\143\141\164\151\157\156\154\151\163\164\060\103 +\240\101\240\077\206\075\150\164\164\160\072\057\057\167\167\167 +\056\144\055\164\162\165\163\164\056\156\145\164\057\143\162\154 +\057\144\055\164\162\165\163\164\137\162\157\157\164\137\143\154 +\141\163\163\137\063\137\143\141\137\062\137\062\060\060\071\056 +\143\162\154\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\001\001\000\177\227\333\060\310\337\244\234\175 +\041\172\200\160\316\024\022\151\210\024\225\140\104\001\254\262 +\351\060\117\233\120\302\146\330\176\215\060\265\160\061\351\342 +\151\307\363\160\333\040\025\206\320\015\360\276\254\001\165\204 +\316\176\237\115\277\267\140\073\234\363\312\035\342\136\150\330 +\243\235\227\345\100\140\322\066\041\376\320\264\270\027\332\164 +\243\177\324\337\260\230\002\254\157\153\153\054\045\044\162\241 +\145\356\045\132\345\346\062\347\362\337\253\111\372\363\220\151 +\043\333\004\331\347\134\130\374\145\324\227\276\314\374\056\012 +\314\045\052\065\004\370\140\221\025\165\075\101\377\043\037\031 +\310\154\353\202\123\004\246\344\114\042\115\215\214\272\316\133 +\163\354\144\124\120\155\321\234\125\373\151\303\066\303\214\274 +\074\205\246\153\012\046\015\340\223\230\140\256\176\306\044\227 +\212\141\137\221\216\146\222\011\207\066\315\213\233\055\076\366 +\121\324\120\324\131\050\275\203\362\314\050\173\123\206\155\330 +\046\210\160\327\352\221\315\076\271\312\300\220\156\132\306\136 +\164\145\327\134\376\243\342 +END + +# Trust for "D-TRUST Root Class 3 CA 2 2009" +# Issuer: CN=D-TRUST Root Class 3 CA 2 2009,O=D-Trust GmbH,C=DE +# Serial Number: 623603 (0x983f3) +# Subject: CN=D-TRUST Root Class 3 CA 2 2009,O=D-Trust GmbH,C=DE +# Not Valid Before: Thu Nov 05 08:35:58 2009 +# Not Valid After : Mon Nov 05 08:35:58 2029 +# Fingerprint (MD5): CD:E0:25:69:8D:47:AC:9C:89:35:90:F7:FD:51:3D:2F +# Fingerprint (SHA1): 58:E8:AB:B0:36:15:33:FB:80:F7:9B:1B:6D:29:D3:FF:8D:5F:00:F0 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "D-TRUST Root Class 3 CA 2 2009" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\130\350\253\260\066\025\063\373\200\367\233\033\155\051\323\377 +\215\137\000\360 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\315\340\045\151\215\107\254\234\211\065\220\367\375\121\075\057 +END +CKA_ISSUER MULTILINE_OCTAL +\060\115\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\047\060\045\006\003\125\004\003\014 +\036\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\062\060\060\071 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\011\203\363 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "D-TRUST Root Class 3 CA 2 EV 2009" +# +# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009,O=D-Trust GmbH,C=DE +# Serial Number: 623604 (0x983f4) +# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009,O=D-Trust GmbH,C=DE +# Not Valid Before: Thu Nov 05 08:50:46 2009 +# Not Valid After : Mon Nov 05 08:50:46 2029 +# Fingerprint (MD5): AA:C6:43:2C:5E:2D:CD:C4:34:C0:50:4F:11:02:4F:B6 +# Fingerprint (SHA1): 96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83 +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 "D-TRUST Root Class 3 CA 2 EV 2009" +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\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\052\060\050\006\003\125\004\003\014 +\041\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\105\126\040\062\060 +\060\071 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\052\060\050\006\003\125\004\003\014 +\041\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\105\126\040\062\060 +\060\071 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\011\203\364 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\103\060\202\003\053\240\003\002\001\002\002\003\011 +\203\364\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\060\120\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165 +\163\164\040\107\155\142\110\061\052\060\050\006\003\125\004\003 +\014\041\104\055\124\122\125\123\124\040\122\157\157\164\040\103 +\154\141\163\163\040\063\040\103\101\040\062\040\105\126\040\062 +\060\060\071\060\036\027\015\060\071\061\061\060\065\060\070\065 +\060\064\066\132\027\015\062\071\061\061\060\065\060\070\065\060 +\064\066\132\060\120\061\013\060\011\006\003\125\004\006\023\002 +\104\105\061\025\060\023\006\003\125\004\012\014\014\104\055\124 +\162\165\163\164\040\107\155\142\110\061\052\060\050\006\003\125 +\004\003\014\041\104\055\124\122\125\123\124\040\122\157\157\164 +\040\103\154\141\163\163\040\063\040\103\101\040\062\040\105\126 +\040\062\060\060\071\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\231\361\204\064\160\272\057\267\060\240 +\216\275\174\004\317\276\142\274\231\375\202\227\322\172\012\147 +\226\070\011\366\020\116\225\042\163\231\215\332\025\055\347\005 +\374\031\163\042\267\216\230\000\274\074\075\254\241\154\373\326 +\171\045\113\255\360\314\144\332\210\076\051\270\017\011\323\064 +\335\063\365\142\321\341\315\031\351\356\030\117\114\130\256\342 +\036\326\014\133\025\132\330\072\270\304\030\144\036\343\063\262 +\265\211\167\116\014\277\331\224\153\023\227\157\022\243\376\231 +\251\004\314\025\354\140\150\066\355\010\173\267\365\277\223\355 +\146\061\203\214\306\161\064\207\116\027\352\257\213\221\215\034 +\126\101\256\042\067\136\067\362\035\331\321\055\015\057\151\121 +\247\276\146\246\212\072\052\275\307\032\261\341\024\360\276\072 +\035\271\317\133\261\152\376\264\261\106\040\242\373\036\073\160 +\357\223\230\175\214\163\226\362\305\357\205\160\255\051\046\374 +\036\004\076\034\240\330\017\313\122\203\142\174\356\213\123\225 +\220\251\127\242\352\141\005\330\371\115\304\047\372\156\255\355 +\371\327\121\367\153\245\002\003\001\000\001\243\202\001\044\060 +\202\001\040\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\323 +\224\212\114\142\023\052\031\056\314\257\162\212\175\066\327\232 +\034\334\147\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\201\335\006\003\125\035\037\004\201\325\060\201 +\322\060\201\207\240\201\204\240\201\201\206\177\154\144\141\160 +\072\057\057\144\151\162\145\143\164\157\162\171\056\144\055\164 +\162\165\163\164\056\156\145\164\057\103\116\075\104\055\124\122 +\125\123\124\045\062\060\122\157\157\164\045\062\060\103\154\141 +\163\163\045\062\060\063\045\062\060\103\101\045\062\060\062\045 +\062\060\105\126\045\062\060\062\060\060\071\054\117\075\104\055 +\124\162\165\163\164\045\062\060\107\155\142\110\054\103\075\104 +\105\077\143\145\162\164\151\146\151\143\141\164\145\162\145\166 +\157\143\141\164\151\157\156\154\151\163\164\060\106\240\104\240 +\102\206\100\150\164\164\160\072\057\057\167\167\167\056\144\055 +\164\162\165\163\164\056\156\145\164\057\143\162\154\057\144\055 +\164\162\165\163\164\137\162\157\157\164\137\143\154\141\163\163 +\137\063\137\143\141\137\062\137\145\166\137\062\060\060\071\056 +\143\162\154\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\001\001\000\064\355\173\132\074\244\224\210\357 +\032\021\165\007\057\263\376\074\372\036\121\046\353\207\366\051 +\336\340\361\324\306\044\011\351\301\317\125\033\264\060\331\316 +\032\376\006\121\246\025\244\055\357\262\113\277\040\050\045\111 +\321\246\066\167\064\350\144\337\122\261\021\307\163\172\315\071 +\236\302\255\214\161\041\362\132\153\257\337\074\116\125\257\262 +\204\145\024\211\271\167\313\052\061\276\317\243\155\317\157\110 +\224\062\106\157\347\161\214\240\246\204\031\067\007\362\003\105 +\011\053\206\165\174\337\137\151\127\000\333\156\330\246\162\042 +\113\120\324\165\230\126\337\267\030\377\103\103\120\256\172\104 +\173\360\171\121\327\103\075\247\323\201\323\360\311\117\271\332 +\306\227\206\320\202\303\344\102\155\376\260\342\144\116\016\046 +\347\100\064\046\265\010\211\327\010\143\143\070\047\165\036\063 +\352\156\250\335\237\231\117\164\115\201\211\200\113\335\232\227 +\051\134\057\276\201\101\271\214\377\352\175\140\006\236\315\327 +\075\323\056\243\025\274\250\346\046\345\157\303\334\270\003\041 +\352\237\026\361\054\124\265 +END + +# Trust for "D-TRUST Root Class 3 CA 2 EV 2009" +# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009,O=D-Trust GmbH,C=DE +# Serial Number: 623604 (0x983f4) +# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009,O=D-Trust GmbH,C=DE +# Not Valid Before: Thu Nov 05 08:50:46 2009 +# Not Valid After : Mon Nov 05 08:50:46 2029 +# Fingerprint (MD5): AA:C6:43:2C:5E:2D:CD:C4:34:C0:50:4F:11:02:4F:B6 +# Fingerprint (SHA1): 96:C9:1B:0B:95:B4:10:98:42:FA:D0:D8:22:79:FE:60:FA:B9:16:83 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "D-TRUST Root Class 3 CA 2 EV 2009" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\226\311\033\013\225\264\020\230\102\372\320\330\042\171\376\140 +\372\271\026\203 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\252\306\103\054\136\055\315\304\064\300\120\117\021\002\117\266 +END +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\052\060\050\006\003\125\004\003\014 +\041\104\055\124\122\125\123\124\040\122\157\157\164\040\103\154 +\141\163\163\040\063\040\103\101\040\062\040\105\126\040\062\060 +\060\071 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\011\203\364 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "PSCProcert" +# +# Issuer: E=acraiz@suscerte.gob.ve,OU=Superintendencia de Servicios de Certificacion Electronica,O=Sistema Nacional de Certificacion Electronica,ST=Distrito Capital,L=Caracas,C=VE,CN=Autoridad de Certificacion Raiz del Estado Venezolano +# Serial Number: 11 (0xb) +# Subject: CN=PSCProcert,C=VE,O=Sistema Nacional de Certificacion Electronica,OU=Proveedor de Certificados PROCERT,ST=Miranda,L=Chacao,E=contacto@procert.net.ve +# Not Valid Before: Tue Dec 28 16:51:00 2010 +# Not Valid After : Fri Dec 25 23:59:59 2020 +# Fingerprint (MD5): E6:24:E9:12:01:AE:0C:DE:8E:85:C4:CE:A3:12:DD:EC +# Fingerprint (SHA1): 70:C1:8D:74:B4:28:81:0A:E4:FD:A5:75:D7:01:9F:99:B0:3D:50:74 +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 "PSCProcert" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\321\061\046\060\044\006\011\052\206\110\206\367\015\001 +\011\001\026\027\143\157\156\164\141\143\164\157\100\160\162\157 +\143\145\162\164\056\156\145\164\056\166\145\061\017\060\015\006 +\003\125\004\007\023\006\103\150\141\143\141\157\061\020\060\016 +\006\003\125\004\010\023\007\115\151\162\141\156\144\141\061\052 +\060\050\006\003\125\004\013\023\041\120\162\157\166\145\145\144 +\157\162\040\144\145\040\103\145\162\164\151\146\151\143\141\144 +\157\163\040\120\122\117\103\105\122\124\061\066\060\064\006\003 +\125\004\012\023\055\123\151\163\164\145\155\141\040\116\141\143 +\151\157\156\141\154\040\144\145\040\103\145\162\164\151\146\151 +\143\141\143\151\157\156\040\105\154\145\143\164\162\157\156\151 +\143\141\061\013\060\011\006\003\125\004\006\023\002\126\105\061 +\023\060\021\006\003\125\004\003\023\012\120\123\103\120\162\157 +\143\145\162\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\036\061\076\060\074\006\003\125\004\003\023\065\101 +\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164 +\151\146\151\143\141\143\151\157\156\040\122\141\151\172\040\144 +\145\154\040\105\163\164\141\144\157\040\126\145\156\145\172\157 +\154\141\156\157\061\013\060\011\006\003\125\004\006\023\002\126 +\105\061\020\060\016\006\003\125\004\007\023\007\103\141\162\141 +\143\141\163\061\031\060\027\006\003\125\004\010\023\020\104\151 +\163\164\162\151\164\157\040\103\141\160\151\164\141\154\061\066 +\060\064\006\003\125\004\012\023\055\123\151\163\164\145\155\141 +\040\116\141\143\151\157\156\141\154\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\156\040\105\154\145\143\164 +\162\157\156\151\143\141\061\103\060\101\006\003\125\004\013\023 +\072\123\165\160\145\162\151\156\164\145\156\144\145\156\143\151 +\141\040\144\145\040\123\145\162\166\151\143\151\157\163\040\144 +\145\040\103\145\162\164\151\146\151\143\141\143\151\157\156\040 +\105\154\145\143\164\162\157\156\151\143\141\061\045\060\043\006 +\011\052\206\110\206\367\015\001\011\001\026\026\141\143\162\141 +\151\172\100\163\165\163\143\145\162\164\145\056\147\157\142\056 +\166\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\013 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\011\206\060\202\007\156\240\003\002\001\002\002\001\013 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\202\001\036\061\076\060\074\006\003\125\004\003\023\065\101\165 +\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\156\040\122\141\151\172\040\144\145 +\154\040\105\163\164\141\144\157\040\126\145\156\145\172\157\154 +\141\156\157\061\013\060\011\006\003\125\004\006\023\002\126\105 +\061\020\060\016\006\003\125\004\007\023\007\103\141\162\141\143 +\141\163\061\031\060\027\006\003\125\004\010\023\020\104\151\163 +\164\162\151\164\157\040\103\141\160\151\164\141\154\061\066\060 +\064\006\003\125\004\012\023\055\123\151\163\164\145\155\141\040 +\116\141\143\151\157\156\141\154\040\144\145\040\103\145\162\164 +\151\146\151\143\141\143\151\157\156\040\105\154\145\143\164\162 +\157\156\151\143\141\061\103\060\101\006\003\125\004\013\023\072 +\123\165\160\145\162\151\156\164\145\156\144\145\156\143\151\141 +\040\144\145\040\123\145\162\166\151\143\151\157\163\040\144\145 +\040\103\145\162\164\151\146\151\143\141\143\151\157\156\040\105 +\154\145\143\164\162\157\156\151\143\141\061\045\060\043\006\011 +\052\206\110\206\367\015\001\011\001\026\026\141\143\162\141\151 +\172\100\163\165\163\143\145\162\164\145\056\147\157\142\056\166 +\145\060\036\027\015\061\060\061\062\062\070\061\066\065\061\060 +\060\132\027\015\062\060\061\062\062\065\062\063\065\071\065\071 +\132\060\201\321\061\046\060\044\006\011\052\206\110\206\367\015 +\001\011\001\026\027\143\157\156\164\141\143\164\157\100\160\162 +\157\143\145\162\164\056\156\145\164\056\166\145\061\017\060\015 +\006\003\125\004\007\023\006\103\150\141\143\141\157\061\020\060 +\016\006\003\125\004\010\023\007\115\151\162\141\156\144\141\061 +\052\060\050\006\003\125\004\013\023\041\120\162\157\166\145\145 +\144\157\162\040\144\145\040\103\145\162\164\151\146\151\143\141 +\144\157\163\040\120\122\117\103\105\122\124\061\066\060\064\006 +\003\125\004\012\023\055\123\151\163\164\145\155\141\040\116\141 +\143\151\157\156\141\154\040\144\145\040\103\145\162\164\151\146 +\151\143\141\143\151\157\156\040\105\154\145\143\164\162\157\156 +\151\143\141\061\013\060\011\006\003\125\004\006\023\002\126\105 +\061\023\060\021\006\003\125\004\003\023\012\120\123\103\120\162 +\157\143\145\162\164\060\202\002\042\060\015\006\011\052\206\110 +\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002 +\012\002\202\002\001\000\325\267\364\243\224\063\241\106\251\125 +\141\111\015\250\207\163\136\221\055\160\301\006\032\224\332\075 +\354\025\102\301\365\214\256\152\027\361\212\255\374\200\225\352 +\203\104\242\133\172\125\316\117\247\245\325\272\270\037\240\047 +\300\120\123\076\215\271\300\016\270\025\334\326\154\370\236\370 +\004\045\337\200\217\020\205\335\175\057\173\200\335\127\000\144 +\043\370\156\311\276\225\117\341\165\354\340\176\136\225\315\261 +\357\276\172\102\330\311\054\323\353\032\032\042\213\267\177\006 +\211\345\074\365\022\300\273\323\013\231\137\220\174\216\055\057 +\167\063\222\112\041\106\250\251\010\254\361\366\021\002\331\225 +\026\236\215\057\226\346\002\335\165\302\024\052\132\326\311\175 +\045\302\301\374\252\147\205\342\354\276\321\174\074\372\257\325 +\156\377\123\101\324\365\062\070\261\342\137\304\371\216\020\357 +\006\251\002\211\377\343\014\156\227\340\337\235\333\041\320\364 +\076\010\151\154\330\324\344\066\370\203\266\262\066\217\234\357 +\072\067\026\175\277\242\151\327\073\133\162\320\257\252\077\134 +\146\223\254\012\042\141\266\322\240\231\310\124\223\135\250\266 +\321\275\135\012\136\167\224\242\055\300\202\216\274\312\003\052 +\064\256\163\361\324\265\014\275\276\147\233\124\353\341\372\240 +\132\354\070\176\076\301\314\242\307\104\061\165\352\077\345\007 +\322\253\241\045\226\366\346\344\240\135\067\030\071\141\000\063 +\135\106\324\000\304\264\312\074\361\242\243\076\363\072\377\151 +\060\056\100\335\366\237\234\046\311\226\067\255\347\071\242\277 +\352\151\333\125\042\225\123\052\224\265\337\255\026\070\201\165 +\146\343\307\054\033\223\234\252\214\243\312\331\154\074\027\155 +\234\334\174\123\340\040\047\103\066\371\022\341\074\134\275\146 +\277\242\151\043\070\270\231\140\231\016\126\123\072\234\176\024 +\214\260\006\157\361\206\166\220\257\375\257\376\220\306\217\237 +\177\213\222\043\234\347\025\166\217\325\213\224\023\162\151\373 +\053\141\143\210\357\346\244\136\346\243\027\152\130\107\313\161 +\117\024\013\136\310\002\010\046\242\313\351\257\153\212\031\307 +\313\024\126\365\341\332\265\331\374\277\163\070\332\371\347\257 +\156\244\067\342\007\047\002\003\001\000\001\243\202\003\027\060 +\202\003\023\060\022\006\003\125\035\023\001\001\377\004\010\060 +\006\001\001\377\002\001\001\060\067\006\003\125\035\022\004\060 +\060\056\202\017\163\165\163\143\145\162\164\145\056\147\157\142 +\056\166\145\240\033\006\005\140\206\136\002\002\240\022\014\020 +\122\111\106\055\107\055\062\060\060\060\064\060\063\066\055\060 +\060\035\006\003\125\035\016\004\026\004\024\101\017\031\070\252 +\231\177\102\013\244\327\047\230\124\242\027\114\055\121\124\060 +\202\001\120\006\003\125\035\043\004\202\001\107\060\202\001\103 +\200\024\255\273\042\035\306\340\322\001\250\375\166\120\122\223 +\355\230\301\115\256\323\241\202\001\046\244\202\001\042\060\202 +\001\036\061\076\060\074\006\003\125\004\003\023\065\101\165\164 +\157\162\151\144\141\144\040\144\145\040\103\145\162\164\151\146 +\151\143\141\143\151\157\156\040\122\141\151\172\040\144\145\154 +\040\105\163\164\141\144\157\040\126\145\156\145\172\157\154\141 +\156\157\061\013\060\011\006\003\125\004\006\023\002\126\105\061 +\020\060\016\006\003\125\004\007\023\007\103\141\162\141\143\141 +\163\061\031\060\027\006\003\125\004\010\023\020\104\151\163\164 +\162\151\164\157\040\103\141\160\151\164\141\154\061\066\060\064 +\006\003\125\004\012\023\055\123\151\163\164\145\155\141\040\116 +\141\143\151\157\156\141\154\040\144\145\040\103\145\162\164\151 +\146\151\143\141\143\151\157\156\040\105\154\145\143\164\162\157 +\156\151\143\141\061\103\060\101\006\003\125\004\013\023\072\123 +\165\160\145\162\151\156\164\145\156\144\145\156\143\151\141\040 +\144\145\040\123\145\162\166\151\143\151\157\163\040\144\145\040 +\103\145\162\164\151\146\151\143\141\143\151\157\156\040\105\154 +\145\143\164\162\157\156\151\143\141\061\045\060\043\006\011\052 +\206\110\206\367\015\001\011\001\026\026\141\143\162\141\151\172 +\100\163\165\163\143\145\162\164\145\056\147\157\142\056\166\145 +\202\001\012\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\115\006\003\125\035\021\004\106\060\104\202\016 +\160\162\157\143\145\162\164\056\156\145\164\056\166\145\240\025 +\006\005\140\206\136\002\001\240\014\014\012\120\123\103\055\060 +\060\060\060\060\062\240\033\006\005\140\206\136\002\002\240\022 +\014\020\122\111\106\055\112\055\063\061\066\063\065\063\067\063 +\055\067\060\166\006\003\125\035\037\004\157\060\155\060\106\240 +\104\240\102\206\100\150\164\164\160\072\057\057\167\167\167\056 +\163\165\163\143\145\162\164\145\056\147\157\142\056\166\145\057 +\154\143\162\057\103\105\122\124\111\106\111\103\101\104\117\055 +\122\101\111\132\055\123\110\101\063\070\064\103\122\114\104\105 +\122\056\143\162\154\060\043\240\041\240\037\206\035\154\144\141 +\160\072\057\057\141\143\162\141\151\172\056\163\165\163\143\145 +\162\164\145\056\147\157\142\056\166\145\060\067\006\010\053\006 +\001\005\005\007\001\001\004\053\060\051\060\047\006\010\053\006 +\001\005\005\007\060\001\206\033\150\164\164\160\072\057\057\157 +\143\163\160\056\163\165\163\143\145\162\164\145\056\147\157\142 +\056\166\145\060\101\006\003\125\035\040\004\072\060\070\060\066 +\006\006\140\206\136\003\001\002\060\054\060\052\006\010\053\006 +\001\005\005\007\002\001\026\036\150\164\164\160\072\057\057\167 +\167\167\056\163\165\163\143\145\162\164\145\056\147\157\142\056 +\166\145\057\144\160\143\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\003\202\002\001\000\053\131\353\042\231\273 +\204\252\117\336\220\306\321\206\161\043\236\113\003\221\107\160 +\273\300\222\140\354\340\324\347\155\306\323\355\147\203\167\122 +\325\362\345\167\247\066\262\343\124\276\331\273\012\233\021\357 +\141\364\306\231\063\231\365\257\000\071\215\203\277\246\275\065 +\176\054\134\061\064\157\154\333\363\144\001\230\252\224\054\101 +\335\025\206\312\153\051\116\026\300\111\374\327\203\110\023\007 +\121\204\061\122\210\273\206\027\307\153\057\212\040\255\305\013 +\217\160\076\052\273\033\161\217\271\244\240\375\330\225\331\257 +\131\277\045\053\230\351\143\223\057\140\036\304\252\370\167\365 +\213\154\057\355\176\056\265\117\100\015\356\274\127\167\347\331 +\266\324\077\225\047\072\040\325\345\256\253\154\065\237\301\241 +\035\131\334\204\201\356\115\007\342\110\266\236\113\225\055\101 +\261\341\350\336\176\057\005\036\150\356\277\273\220\145\072\310 +\356\352\261\030\067\034\142\223\244\240\061\354\161\154\221\346 +\244\171\211\132\024\247\024\120\005\114\244\000\127\060\054\301 +\265\141\226\334\076\036\204\257\071\102\317\345\320\054\261\044 +\274\337\100\303\355\177\143\112\275\341\117\022\144\206\225\363 +\260\347\310\267\341\123\275\222\346\363\014\226\271\353\350\346 +\222\355\247\201\011\024\013\374\225\172\317\217\326\064\117\066 +\022\334\136\321\064\165\306\106\200\057\225\004\214\307\206\304 +\250\046\211\250\077\031\233\201\273\121\244\112\206\253\013\021 +\017\261\256\143\123\155\050\352\335\063\126\070\034\262\255\200 +\323\327\162\275\232\154\231\143\350\000\273\101\166\005\267\133 +\231\030\212\303\270\022\134\126\317\126\014\175\350\342\317\355 +\274\164\107\373\356\323\027\116\042\117\126\377\120\363\056\346 +\071\246\202\326\161\312\336\267\325\272\150\010\355\231\314\375 +\242\222\313\151\270\235\371\012\244\246\076\117\223\050\052\141 +\154\007\046\000\377\226\137\150\206\270\270\316\312\125\340\253 +\261\075\177\230\327\063\016\132\075\330\170\302\304\140\057\307 +\142\360\141\221\322\070\260\366\236\125\333\100\200\005\022\063 +\316\035\222\233\321\151\263\377\277\361\222\012\141\065\077\335 +\376\206\364\274\340\032\161\263\142\246 +END + +# Trust for "PSCProcert" +# Issuer: E=acraiz@suscerte.gob.ve,OU=Superintendencia de Servicios de Certificacion Electronica,O=Sistema Nacional de Certificacion Electronica,ST=Distrito Capital,L=Caracas,C=VE,CN=Autoridad de Certificacion Raiz del Estado Venezolano +# Serial Number: 11 (0xb) +# Subject: CN=PSCProcert,C=VE,O=Sistema Nacional de Certificacion Electronica,OU=Proveedor de Certificados PROCERT,ST=Miranda,L=Chacao,E=contacto@procert.net.ve +# Not Valid Before: Tue Dec 28 16:51:00 2010 +# Not Valid After : Fri Dec 25 23:59:59 2020 +# Fingerprint (MD5): E6:24:E9:12:01:AE:0C:DE:8E:85:C4:CE:A3:12:DD:EC +# Fingerprint (SHA1): 70:C1:8D:74:B4:28:81:0A:E4:FD:A5:75:D7:01:9F:99:B0:3D:50:74 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "PSCProcert" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\160\301\215\164\264\050\201\012\344\375\245\165\327\001\237\231 +\260\075\120\164 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\346\044\351\022\001\256\014\336\216\205\304\316\243\022\335\354 +END +CKA_ISSUER MULTILINE_OCTAL +\060\202\001\036\061\076\060\074\006\003\125\004\003\023\065\101 +\165\164\157\162\151\144\141\144\040\144\145\040\103\145\162\164 +\151\146\151\143\141\143\151\157\156\040\122\141\151\172\040\144 +\145\154\040\105\163\164\141\144\157\040\126\145\156\145\172\157 +\154\141\156\157\061\013\060\011\006\003\125\004\006\023\002\126 +\105\061\020\060\016\006\003\125\004\007\023\007\103\141\162\141 +\143\141\163\061\031\060\027\006\003\125\004\010\023\020\104\151 +\163\164\162\151\164\157\040\103\141\160\151\164\141\154\061\066 +\060\064\006\003\125\004\012\023\055\123\151\163\164\145\155\141 +\040\116\141\143\151\157\156\141\154\040\144\145\040\103\145\162 +\164\151\146\151\143\141\143\151\157\156\040\105\154\145\143\164 +\162\157\156\151\143\141\061\103\060\101\006\003\125\004\013\023 +\072\123\165\160\145\162\151\156\164\145\156\144\145\156\143\151 +\141\040\144\145\040\123\145\162\166\151\143\151\157\163\040\144 +\145\040\103\145\162\164\151\146\151\143\141\143\151\157\156\040 +\105\154\145\143\164\162\157\156\151\143\141\061\045\060\043\006 +\011\052\206\110\206\367\015\001\011\001\026\026\141\143\162\141 +\151\172\100\163\165\163\143\145\162\164\145\056\147\157\142\056 +\166\145 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\013 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "China Internet Network Information Center EV Certificates Root" +# +# Issuer: CN=China Internet Network Information Center EV Certificates Root,O=China Internet Network Information Center,C=CN +# Serial Number: 1218379777 (0x489f0001) +# Subject: CN=China Internet Network Information Center EV Certificates Root,O=China Internet Network Information Center,C=CN +# Not Valid Before: Tue Aug 31 07:11:25 2010 +# Not Valid After : Sat Aug 31 07:11:25 2030 +# Fingerprint (MD5): 55:5D:63:00:97:BD:6A:97:F5:67:AB:4B:FB:6E:63:15 +# Fingerprint (SHA1): 4F:99:AA:93:FB:2B:D1:37:26:A1:99:4A:CE:7F:F0:05:F2:93:5D:1E +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 "China Internet Network Information Center EV Certificates Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\116 +\061\062\060\060\006\003\125\004\012\014\051\103\150\151\156\141 +\040\111\156\164\145\162\156\145\164\040\116\145\164\167\157\162 +\153\040\111\156\146\157\162\155\141\164\151\157\156\040\103\145 +\156\164\145\162\061\107\060\105\006\003\125\004\003\014\076\103 +\150\151\156\141\040\111\156\164\145\162\156\145\164\040\116\145 +\164\167\157\162\153\040\111\156\146\157\162\155\141\164\151\157 +\156\040\103\145\156\164\145\162\040\105\126\040\103\145\162\164 +\151\146\151\143\141\164\145\163\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\116 +\061\062\060\060\006\003\125\004\012\014\051\103\150\151\156\141 +\040\111\156\164\145\162\156\145\164\040\116\145\164\167\157\162 +\153\040\111\156\146\157\162\155\141\164\151\157\156\040\103\145 +\156\164\145\162\061\107\060\105\006\003\125\004\003\014\076\103 +\150\151\156\141\040\111\156\164\145\162\156\145\164\040\116\145 +\164\167\157\162\153\040\111\156\146\157\162\155\141\164\151\157 +\156\040\103\145\156\164\145\162\040\105\126\040\103\145\162\164 +\151\146\151\143\141\164\145\163\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\110\237\000\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\367\060\202\002\337\240\003\002\001\002\002\004\110 +\237\000\001\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\060\201\212\061\013\060\011\006\003\125\004\006\023\002 +\103\116\061\062\060\060\006\003\125\004\012\014\051\103\150\151 +\156\141\040\111\156\164\145\162\156\145\164\040\116\145\164\167 +\157\162\153\040\111\156\146\157\162\155\141\164\151\157\156\040 +\103\145\156\164\145\162\061\107\060\105\006\003\125\004\003\014 +\076\103\150\151\156\141\040\111\156\164\145\162\156\145\164\040 +\116\145\164\167\157\162\153\040\111\156\146\157\162\155\141\164 +\151\157\156\040\103\145\156\164\145\162\040\105\126\040\103\145 +\162\164\151\146\151\143\141\164\145\163\040\122\157\157\164\060 +\036\027\015\061\060\060\070\063\061\060\067\061\061\062\065\132 +\027\015\063\060\060\070\063\061\060\067\061\061\062\065\132\060 +\201\212\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\062\060\060\006\003\125\004\012\014\051\103\150\151\156\141\040 +\111\156\164\145\162\156\145\164\040\116\145\164\167\157\162\153 +\040\111\156\146\157\162\155\141\164\151\157\156\040\103\145\156 +\164\145\162\061\107\060\105\006\003\125\004\003\014\076\103\150 +\151\156\141\040\111\156\164\145\162\156\145\164\040\116\145\164 +\167\157\162\153\040\111\156\146\157\162\155\141\164\151\157\156 +\040\103\145\156\164\145\162\040\105\126\040\103\145\162\164\151 +\146\151\143\141\164\145\163\040\122\157\157\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\233\176\163 +\356\275\073\170\252\144\103\101\365\120\337\224\362\056\262\215 +\112\216\106\124\322\041\022\310\071\062\102\006\351\203\325\237 +\122\355\345\147\003\073\124\301\214\231\231\314\351\300\017\377 +\015\331\204\021\262\270\321\313\133\334\036\371\150\061\144\341 +\233\372\164\353\150\271\040\225\367\306\017\215\107\254\132\006 +\335\141\253\342\354\330\237\027\055\234\312\074\065\227\125\161 +\315\103\205\261\107\026\365\054\123\200\166\317\323\000\144\275 +\100\231\335\314\330\333\304\237\326\023\137\101\203\213\371\015 +\207\222\126\064\154\032\020\013\027\325\132\034\227\130\204\074 +\204\032\056\134\221\064\156\031\137\177\027\151\305\145\357\153 +\041\306\325\120\072\277\141\271\005\215\357\157\064\072\262\157 +\024\143\277\026\073\233\251\052\375\267\053\070\146\006\305\054 +\342\252\147\036\105\247\215\004\146\102\366\217\053\357\210\040 +\151\217\062\214\024\163\332\053\206\221\143\042\232\362\247\333 +\316\211\213\253\135\307\024\301\133\060\152\037\261\267\236\056 +\201\001\002\355\317\226\136\143\333\250\346\070\267\002\003\001 +\000\001\243\143\060\141\060\037\006\003\125\035\043\004\030\060 +\026\200\024\174\162\113\071\307\300\333\142\245\117\233\252\030 +\064\222\242\312\203\202\131\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\035\006\003\125\035\016\004 +\026\004\024\174\162\113\071\307\300\333\142\245\117\233\252\030 +\064\222\242\312\203\202\131\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\003\202\001\001\000\052\303\307\103\067 +\217\335\255\244\262\014\356\334\024\155\217\050\244\230\111\313 +\014\200\352\363\355\043\146\165\175\305\323\041\147\171\321\163 +\305\265\003\267\130\254\014\124\057\306\126\023\017\061\332\006 +\347\145\073\035\157\066\333\310\035\371\375\200\006\312\243\075 +\146\026\250\235\114\026\175\300\225\106\265\121\344\342\037\327 +\352\006\115\143\215\226\214\357\347\063\127\102\072\353\214\301 +\171\310\115\166\175\336\366\261\267\201\340\240\371\241\170\106 +\027\032\126\230\360\116\075\253\034\355\354\071\334\007\110\367 +\143\376\006\256\302\244\134\152\133\062\210\305\307\063\205\254 +\146\102\107\302\130\044\231\341\345\076\345\165\054\216\103\326 +\135\074\170\036\250\225\202\051\120\321\321\026\272\357\301\276 +\172\331\264\330\314\036\114\106\341\167\261\061\253\275\052\310 +\316\217\156\241\135\177\003\165\064\344\255\211\105\124\136\276 +\256\050\245\273\077\170\171\353\163\263\012\015\375\276\311\367 +\126\254\366\267\355\057\233\041\051\307\070\266\225\304\004\362 +\303\055\375\024\052\220\231\271\007\314\237 +END + +# Trust for "China Internet Network Information Center EV Certificates Root" +# Issuer: CN=China Internet Network Information Center EV Certificates Root,O=China Internet Network Information Center,C=CN +# Serial Number: 1218379777 (0x489f0001) +# Subject: CN=China Internet Network Information Center EV Certificates Root,O=China Internet Network Information Center,C=CN +# Not Valid Before: Tue Aug 31 07:11:25 2010 +# Not Valid After : Sat Aug 31 07:11:25 2030 +# Fingerprint (MD5): 55:5D:63:00:97:BD:6A:97:F5:67:AB:4B:FB:6E:63:15 +# Fingerprint (SHA1): 4F:99:AA:93:FB:2B:D1:37:26:A1:99:4A:CE:7F:F0:05:F2:93:5D:1E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "China Internet Network Information Center EV Certificates Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\117\231\252\223\373\053\321\067\046\241\231\112\316\177\360\005 +\362\223\135\036 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\125\135\143\000\227\275\152\227\365\147\253\113\373\156\143\025 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\212\061\013\060\011\006\003\125\004\006\023\002\103\116 +\061\062\060\060\006\003\125\004\012\014\051\103\150\151\156\141 +\040\111\156\164\145\162\156\145\164\040\116\145\164\167\157\162 +\153\040\111\156\146\157\162\155\141\164\151\157\156\040\103\145 +\156\164\145\162\061\107\060\105\006\003\125\004\003\014\076\103 +\150\151\156\141\040\111\156\164\145\162\156\145\164\040\116\145 +\164\167\157\162\153\040\111\156\146\157\162\155\141\164\151\157 +\156\040\103\145\156\164\145\162\040\105\126\040\103\145\162\164 +\151\146\151\143\141\164\145\163\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\110\237\000\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Swisscom Root CA 2" +# +# Issuer: CN=Swisscom Root CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Serial Number:1e:9e:28:e8:48:f2:e5:ef:c3:7c:4a:1e:5a:18:67:b6 +# Subject: CN=Swisscom Root CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Not Valid Before: Fri Jun 24 08:38:14 2011 +# Not Valid After : Wed Jun 25 07:38:14 2031 +# Fingerprint (MD5): 5B:04:69:EC:A5:83:94:63:18:A7:86:D0:E4:F2:6E:19 +# Fingerprint (SHA1): 77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:EC +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 "Swisscom Root CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\036\236\050\350\110\362\345\357\303\174\112\036\132\030 +\147\266 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\331\060\202\003\301\240\003\002\001\002\002\020\036 +\236\050\350\110\362\345\357\303\174\112\036\132\030\147\266\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\144 +\061\013\060\011\006\003\125\004\006\023\002\143\150\061\021\060 +\017\006\003\125\004\012\023\010\123\167\151\163\163\143\157\155 +\061\045\060\043\006\003\125\004\013\023\034\104\151\147\151\164 +\141\154\040\103\145\162\164\151\146\151\143\141\164\145\040\123 +\145\162\166\151\143\145\163\061\033\060\031\006\003\125\004\003 +\023\022\123\167\151\163\163\143\157\155\040\122\157\157\164\040 +\103\101\040\062\060\036\027\015\061\061\060\066\062\064\060\070 +\063\070\061\064\132\027\015\063\061\060\066\062\065\060\067\063 +\070\061\064\132\060\144\061\013\060\011\006\003\125\004\006\023 +\002\143\150\061\021\060\017\006\003\125\004\012\023\010\123\167 +\151\163\163\143\157\155\061\045\060\043\006\003\125\004\013\023 +\034\104\151\147\151\164\141\154\040\103\145\162\164\151\146\151 +\143\141\164\145\040\123\145\162\166\151\143\145\163\061\033\060 +\031\006\003\125\004\003\023\022\123\167\151\163\163\143\157\155 +\040\122\157\157\164\040\103\101\040\062\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\225\102\116\204\235 +\121\346\323\011\350\162\132\043\151\333\170\160\216\026\361\053 +\217\015\003\316\223\314\056\000\010\173\253\063\214\364\351\100 +\346\027\114\253\236\270\107\024\062\167\062\335\050\014\336\030 +\113\137\166\237\370\071\073\374\116\211\330\174\305\147\357\253 +\322\271\064\137\153\072\363\144\066\316\302\260\317\023\150\312 +\310\313\353\265\342\075\056\041\337\352\054\324\340\371\160\226 +\114\377\152\130\230\267\027\344\033\122\345\176\007\000\035\137 +\332\346\076\225\004\267\151\210\071\241\101\140\045\141\113\225 +\071\150\142\034\261\013\005\211\300\066\202\024\041\077\256\333 +\241\375\274\157\034\140\206\266\123\224\111\271\053\106\305\117 +\000\053\277\241\273\313\077\340\307\127\034\127\350\326\151\370 +\301\044\122\235\210\125\335\302\207\056\164\043\320\024\375\052 +\107\132\273\246\235\375\224\344\321\212\245\137\206\143\166\205 +\313\257\377\111\050\374\200\355\114\171\322\273\344\300\357\001 +\356\120\101\010\065\043\160\053\251\026\264\214\156\205\351\266 +\021\317\061\335\123\046\033\337\055\132\112\002\100\374\304\300 +\266\351\061\032\010\050\345\140\303\037\304\220\216\020\142\140 +\104\015\354\012\276\125\030\161\054\245\364\262\274\025\142\377 +\034\343\276\035\332\036\127\263\074\176\315\202\035\221\343\113 +\353\054\122\064\260\212\375\022\116\226\260\353\160\177\236\071 +\367\146\102\261\253\254\122\332\166\100\127\173\052\275\350\156 +\003\262\013\200\205\210\235\014\307\302\167\260\232\232\127\364 +\270\372\023\134\150\223\072\147\244\227\320\033\231\267\206\062 +\113\140\330\316\357\320\014\177\225\237\157\207\117\207\212\216 +\137\010\174\252\133\374\132\276\241\221\237\125\175\116\260\013 +\151\314\260\224\250\247\207\362\323\112\120\334\137\162\260\026 +\165\036\313\264\030\142\232\260\247\071\252\233\237\146\330\215 +\246\154\226\025\343\346\362\370\361\203\142\154\273\125\351\141 +\223\243\075\365\261\127\213\117\043\260\233\345\224\152\057\337 +\214\337\225\121\051\140\241\013\051\344\134\125\130\267\250\374 +\231\356\045\115\114\016\263\323\114\217\204\350\051\017\375\020 +\124\002\205\310\371\345\303\213\317\347\017\002\003\001\000\001 +\243\201\206\060\201\203\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\035\006\003\125\035\041\004\026\060 +\024\060\022\006\007\140\205\164\001\123\002\001\006\007\140\205 +\164\001\123\002\001\060\022\006\003\125\035\023\001\001\377\004 +\010\060\006\001\001\377\002\001\007\060\035\006\003\125\035\016 +\004\026\004\024\115\046\040\042\211\113\323\325\244\012\241\157 +\336\342\022\201\305\361\074\056\060\037\006\003\125\035\043\004 +\030\060\026\200\024\115\046\040\042\211\113\323\325\244\012\241 +\157\336\342\022\201\305\361\074\056\060\015\006\011\052\206\110 +\206\367\015\001\001\013\005\000\003\202\002\001\000\062\012\262 +\244\033\313\175\276\202\127\211\271\152\177\363\364\301\056\021 +\175\270\031\076\171\267\250\250\162\067\146\233\032\355\254\023 +\073\016\277\142\360\234\337\236\173\241\123\110\016\101\172\312 +\040\247\027\033\266\170\354\100\221\363\102\255\020\303\134\357 +\377\140\131\177\315\205\243\213\075\110\034\045\002\074\147\175 +\365\062\351\057\060\345\175\245\172\070\320\363\146\052\146\036 +\215\063\203\212\157\174\156\250\132\165\232\270\327\332\130\110 +\104\107\250\114\372\114\111\012\112\302\022\067\250\100\014\303 +\310\341\320\127\015\227\062\225\307\072\237\227\323\127\370\013 +\336\345\162\363\243\333\377\265\330\131\262\163\335\115\052\161 +\262\272\111\365\313\034\325\365\171\310\231\263\374\301\114\164 +\343\264\275\051\067\025\004\050\036\336\105\106\160\354\257\272 +\170\016\212\052\316\000\171\334\300\137\031\147\054\153\113\357 +\150\150\013\103\343\254\301\142\011\357\246\335\145\141\240\257 +\204\125\110\221\122\034\306\045\221\052\320\301\042\043\141\131 +\257\105\021\205\035\001\044\064\217\317\263\377\027\162\040\023 +\302\200\252\041\054\161\071\016\320\217\134\301\323\321\216\042 +\162\106\114\035\226\256\117\161\261\341\005\051\226\131\364\273 +\236\165\075\317\015\067\015\142\333\046\214\143\251\043\337\147 +\006\074\174\072\332\064\102\341\146\264\106\004\336\306\226\230 +\017\113\110\172\044\062\165\221\237\254\367\150\351\052\271\125 +\145\316\135\141\323\047\160\330\067\376\237\271\257\240\056\126 +\267\243\145\121\355\073\253\024\277\114\121\003\350\137\212\005 +\233\356\212\156\234\357\277\150\372\310\332\013\343\102\311\320 +\027\024\234\267\112\340\257\223\047\041\125\046\265\144\057\215 +\361\377\246\100\005\205\005\134\312\007\031\134\013\023\050\114 +\130\177\302\245\357\105\332\140\323\256\145\141\235\123\203\164 +\302\256\362\134\302\026\355\222\076\204\076\163\140\210\274\166 +\364\054\317\320\175\175\323\270\136\321\221\022\020\351\315\335 +\312\045\343\325\355\231\057\276\165\201\113\044\371\105\106\224 +\311\051\041\123\234\046\105\252\023\027\344\347\315\170\342\071 +\301\053\022\236\246\236\033\305\346\016\331\061\331 +END + +# Trust for "Swisscom Root CA 2" +# Issuer: CN=Swisscom Root CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Serial Number:1e:9e:28:e8:48:f2:e5:ef:c3:7c:4a:1e:5a:18:67:b6 +# Subject: CN=Swisscom Root CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Not Valid Before: Fri Jun 24 08:38:14 2011 +# Not Valid After : Wed Jun 25 07:38:14 2031 +# Fingerprint (MD5): 5B:04:69:EC:A5:83:94:63:18:A7:86:D0:E4:F2:6E:19 +# Fingerprint (SHA1): 77:47:4F:C6:30:E4:0F:4C:47:64:3F:84:BA:B8:C6:95:4A:8A:41:EC +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Swisscom Root CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\167\107\117\306\060\344\017\114\107\144\077\204\272\270\306\225 +\112\212\101\354 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\133\004\151\354\245\203\224\143\030\247\206\320\344\362\156\031 +END +CKA_ISSUER MULTILINE_OCTAL +\060\144\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\033\060\031\006\003\125 +\004\003\023\022\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\036\236\050\350\110\362\345\357\303\174\112\036\132\030 +\147\266 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Swisscom Root EV CA 2" +# +# Issuer: CN=Swisscom Root EV CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Serial Number:00:f2:fa:64:e2:74:63:d3:8d:fd:10:1d:04:1f:76:ca:58 +# Subject: CN=Swisscom Root EV CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Not Valid Before: Fri Jun 24 09:45:08 2011 +# Not Valid After : Wed Jun 25 08:45:08 2031 +# Fingerprint (MD5): 7B:30:34:9F:DD:0A:4B:6B:35:CA:31:51:28:5D:AE:EC +# Fingerprint (SHA1): E7:A1:90:29:D3:D5:52:DC:0D:0F:C6:92:D3:EA:88:0D:15:2E:1A:6B +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 "Swisscom Root EV CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\036\060\034\006\003\125 +\004\003\023\025\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\105\126\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\036\060\034\006\003\125 +\004\003\023\025\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\105\126\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\362\372\144\342\164\143\323\215\375\020\035\004\037 +\166\312\130 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\340\060\202\003\310\240\003\002\001\002\002\021\000 +\362\372\144\342\164\143\323\215\375\020\035\004\037\166\312\130 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\147\061\013\060\011\006\003\125\004\006\023\002\143\150\061\021 +\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143\157 +\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147\151 +\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145\040 +\123\145\162\166\151\143\145\163\061\036\060\034\006\003\125\004 +\003\023\025\123\167\151\163\163\143\157\155\040\122\157\157\164 +\040\105\126\040\103\101\040\062\060\036\027\015\061\061\060\066 +\062\064\060\071\064\065\060\070\132\027\015\063\061\060\066\062 +\065\060\070\064\065\060\070\132\060\147\061\013\060\011\006\003 +\125\004\006\023\002\143\150\061\021\060\017\006\003\125\004\012 +\023\010\123\167\151\163\163\143\157\155\061\045\060\043\006\003 +\125\004\013\023\034\104\151\147\151\164\141\154\040\103\145\162 +\164\151\146\151\143\141\164\145\040\123\145\162\166\151\143\145 +\163\061\036\060\034\006\003\125\004\003\023\025\123\167\151\163 +\163\143\157\155\040\122\157\157\164\040\105\126\040\103\101\040 +\062\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002 +\001\000\304\367\035\057\127\352\127\154\367\160\135\143\260\161 +\122\011\140\104\050\063\243\172\116\012\372\330\352\154\213\121 +\026\032\125\256\124\046\304\314\105\007\101\117\020\171\177\161 +\322\172\116\077\070\116\263\000\306\225\312\133\315\301\052\203 +\327\047\037\061\016\043\026\267\045\313\034\264\271\200\062\136 +\032\235\223\361\350\074\140\054\247\136\127\031\130\121\136\274 +\054\126\013\270\330\357\213\202\264\074\270\302\044\250\023\307 +\240\041\066\033\172\127\051\050\247\056\277\161\045\220\363\104 +\203\151\120\244\344\341\033\142\031\224\011\243\363\303\274\357 +\364\275\354\333\023\235\317\235\110\011\122\147\300\067\051\021 +\036\373\322\021\247\205\030\164\171\344\117\205\024\353\122\067 +\342\261\105\330\314\015\103\177\256\023\322\153\053\077\247\302 +\342\250\155\166\133\103\237\276\264\235\263\046\206\073\037\177 +\345\362\350\146\050\026\045\320\113\227\070\247\344\317\011\321 +\066\303\013\276\332\073\104\130\215\276\361\236\011\153\076\363 +\062\307\053\207\306\354\136\234\366\207\145\255\063\051\304\057 +\211\331\271\313\311\003\235\373\154\224\121\227\020\033\206\013 +\032\033\077\366\002\176\173\324\305\121\144\050\235\365\323\254 +\203\201\210\323\164\264\131\235\301\353\141\063\132\105\321\313 +\071\320\006\152\123\140\035\257\366\373\151\274\152\334\001\317 +\275\371\217\331\275\133\301\072\137\216\332\017\113\251\233\235 +\052\050\153\032\012\174\074\253\042\013\345\167\055\161\366\202 +\065\201\256\370\173\201\346\352\376\254\364\032\233\164\134\350 +\217\044\366\135\235\106\304\054\322\036\053\041\152\203\047\147 +\125\112\244\343\310\062\227\146\220\162\332\343\324\144\056\137 +\343\241\152\366\140\324\347\065\315\312\304\150\215\327\161\310 +\323\044\063\163\261\154\371\152\341\050\333\137\306\075\350\276 +\125\346\067\033\355\044\331\017\031\217\137\143\030\130\120\201 +\121\145\157\362\237\176\152\004\347\064\044\161\272\166\113\130 +\036\031\275\025\140\105\252\014\022\100\001\235\020\342\307\070 +\007\162\012\145\300\266\273\045\051\332\026\236\213\065\213\141 +\355\345\161\127\203\265\074\161\237\343\117\277\176\036\201\237 +\101\227\002\003\001\000\001\243\201\206\060\201\203\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\206\060\035\006 +\003\125\035\041\004\026\060\024\060\022\006\007\140\205\164\001 +\123\002\002\006\007\140\205\164\001\123\002\002\060\022\006\003 +\125\035\023\001\001\377\004\010\060\006\001\001\377\002\001\003 +\060\035\006\003\125\035\016\004\026\004\024\105\331\245\201\156 +\075\210\115\215\161\322\106\301\156\105\036\363\304\200\235\060 +\037\006\003\125\035\043\004\030\060\026\200\024\105\331\245\201 +\156\075\210\115\215\161\322\106\301\156\105\036\363\304\200\235 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003 +\202\002\001\000\224\072\163\006\237\122\113\060\134\324\376\261 +\134\045\371\327\216\157\365\207\144\237\355\024\216\270\004\216 +\050\113\217\252\173\216\071\264\331\130\366\173\241\065\012\241 +\235\212\367\143\345\353\275\071\202\324\343\172\055\157\337\023 +\074\272\376\176\126\230\013\363\124\237\315\104\116\156\074\341 +\076\025\277\006\046\235\344\360\220\266\324\302\236\060\056\037 +\357\307\172\304\120\307\352\173\332\120\313\172\046\313\000\264 +\132\253\265\223\037\200\211\204\004\225\215\215\177\011\223\277 +\324\250\250\344\143\155\331\144\344\270\051\132\010\277\120\341 +\204\017\125\173\137\010\042\033\365\275\231\036\024\366\316\364 +\130\020\202\263\012\075\031\301\277\133\253\252\231\330\362\061 +\275\345\070\146\334\130\005\307\355\143\032\056\012\227\174\207 +\223\053\262\212\343\361\354\030\345\165\266\051\207\347\334\213 +\032\176\264\330\311\323\212\027\154\175\051\104\276\212\252\365 +\176\072\056\150\061\223\271\152\332\232\340\333\351\056\245\204 +\315\034\012\270\112\010\371\234\361\141\046\230\223\267\173\146 +\354\221\136\335\121\077\333\163\017\255\004\130\011\335\004\002 +\225\012\076\323\166\337\246\020\036\200\075\350\315\244\144\321 +\063\307\222\307\342\116\104\343\011\311\116\302\135\207\016\022 +\236\277\017\311\005\020\336\172\243\261\074\362\077\245\252\047 +\171\255\061\175\037\375\374\031\151\305\335\271\077\174\315\306 +\264\302\060\036\176\156\222\327\177\141\166\132\217\353\225\115 +\274\021\156\041\174\131\067\231\320\006\274\371\006\155\062\026 +\245\331\151\250\341\334\074\200\036\140\121\334\327\124\041\036 +\312\142\167\117\372\330\217\263\053\072\015\170\162\311\150\101 +\132\107\112\302\243\353\032\327\012\253\074\062\125\310\012\021 +\234\337\164\326\360\100\025\035\310\271\217\265\066\305\257\370 +\042\270\312\035\363\326\266\031\017\237\141\145\152\352\164\310 +\174\217\303\117\135\145\202\037\331\015\211\332\165\162\373\357 +\361\107\147\023\263\310\321\031\210\047\046\232\231\171\177\036 +\344\054\077\173\356\361\336\115\213\226\227\303\325\077\174\033 +\043\355\244\263\035\026\162\103\113\040\341\131\176\302\350\255 +\046\277\242\367 +END + +# Trust for "Swisscom Root EV CA 2" +# Issuer: CN=Swisscom Root EV CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Serial Number:00:f2:fa:64:e2:74:63:d3:8d:fd:10:1d:04:1f:76:ca:58 +# Subject: CN=Swisscom Root EV CA 2,OU=Digital Certificate Services,O=Swisscom,C=ch +# Not Valid Before: Fri Jun 24 09:45:08 2011 +# Not Valid After : Wed Jun 25 08:45:08 2031 +# Fingerprint (MD5): 7B:30:34:9F:DD:0A:4B:6B:35:CA:31:51:28:5D:AE:EC +# Fingerprint (SHA1): E7:A1:90:29:D3:D5:52:DC:0D:0F:C6:92:D3:EA:88:0D:15:2E:1A:6B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Swisscom Root EV CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\347\241\220\051\323\325\122\334\015\017\306\222\323\352\210\015 +\025\056\032\153 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\173\060\064\237\335\012\113\153\065\312\061\121\050\135\256\354 +END +CKA_ISSUER MULTILINE_OCTAL +\060\147\061\013\060\011\006\003\125\004\006\023\002\143\150\061 +\021\060\017\006\003\125\004\012\023\010\123\167\151\163\163\143 +\157\155\061\045\060\043\006\003\125\004\013\023\034\104\151\147 +\151\164\141\154\040\103\145\162\164\151\146\151\143\141\164\145 +\040\123\145\162\166\151\143\145\163\061\036\060\034\006\003\125 +\004\003\023\025\123\167\151\163\163\143\157\155\040\122\157\157 +\164\040\105\126\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\362\372\144\342\164\143\323\215\375\020\035\004\037 +\166\312\130 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CA Disig Root R1" +# +# Issuer: CN=CA Disig Root R1,O=Disig a.s.,L=Bratislava,C=SK +# Serial Number:00:c3:03:9a:ee:50:90:6e:28 +# Subject: CN=CA Disig Root R1,O=Disig a.s.,L=Bratislava,C=SK +# Not Valid Before: Thu Jul 19 09:06:56 2012 +# Not Valid After : Sat Jul 19 09:06:56 2042 +# Fingerprint (MD5): BE:EC:11:93:9A:F5:69:21:BC:D7:C1:C0:67:89:CC:2A +# Fingerprint (SHA1): 8E:1C:74:F8:A6:20:B9:E5:8A:F4:61:FA:EC:2B:47:56:51:1A:52:C6 +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 "CA Disig Root R1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\122\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\031\060\027\006\003\125 +\004\003\023\020\103\101\040\104\151\163\151\147\040\122\157\157 +\164\040\122\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\122\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\031\060\027\006\003\125 +\004\003\023\020\103\101\040\104\151\163\151\147\040\122\157\157 +\164\040\122\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\303\003\232\356\120\220\156\050 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\151\060\202\003\121\240\003\002\001\002\002\011\000 +\303\003\232\356\120\220\156\050\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\060\122\061\013\060\011\006\003\125 +\004\006\023\002\123\113\061\023\060\021\006\003\125\004\007\023 +\012\102\162\141\164\151\163\154\141\166\141\061\023\060\021\006 +\003\125\004\012\023\012\104\151\163\151\147\040\141\056\163\056 +\061\031\060\027\006\003\125\004\003\023\020\103\101\040\104\151 +\163\151\147\040\122\157\157\164\040\122\061\060\036\027\015\061 +\062\060\067\061\071\060\071\060\066\065\066\132\027\015\064\062 +\060\067\061\071\060\071\060\066\065\066\132\060\122\061\013\060 +\011\006\003\125\004\006\023\002\123\113\061\023\060\021\006\003 +\125\004\007\023\012\102\162\141\164\151\163\154\141\166\141\061 +\023\060\021\006\003\125\004\012\023\012\104\151\163\151\147\040 +\141\056\163\056\061\031\060\027\006\003\125\004\003\023\020\103 +\101\040\104\151\163\151\147\040\122\157\157\164\040\122\061\060 +\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000 +\252\303\170\367\334\230\243\247\132\136\167\030\262\335\004\144 +\017\143\375\233\226\011\200\325\350\252\245\342\234\046\224\072 +\350\231\163\214\235\337\327\337\203\363\170\117\100\341\177\322 +\247\322\345\312\023\223\347\355\306\167\137\066\265\224\257\350 +\070\216\333\233\345\174\273\314\215\353\165\163\341\044\315\346 +\247\055\031\056\330\326\212\153\024\353\010\142\012\330\334\263 +\000\115\303\043\174\137\103\010\043\062\022\334\355\014\255\300 +\175\017\245\172\102\331\132\160\331\277\247\327\001\034\366\233 +\253\216\267\112\206\170\240\036\126\061\256\357\202\012\200\101 +\367\033\311\256\253\062\046\324\054\153\355\175\153\344\342\136 +\042\012\105\313\204\061\115\254\376\333\321\107\272\371\140\227 +\071\261\145\307\336\373\231\344\012\042\261\055\115\345\110\046 +\151\253\342\252\363\373\374\222\051\062\351\263\076\115\037\047 +\241\315\216\271\027\373\045\076\311\156\363\167\332\015\022\366 +\135\307\273\066\020\325\124\326\363\340\342\107\110\346\336\024 +\332\141\122\257\046\264\365\161\117\311\327\322\006\337\143\312 +\377\041\350\131\006\340\010\325\204\025\123\367\103\345\174\305 +\240\211\230\153\163\306\150\316\145\336\275\177\005\367\261\356 +\366\127\241\140\225\305\314\352\223\072\276\231\256\233\002\243 +\255\311\026\265\316\335\136\231\170\176\032\071\176\262\300\005 +\244\300\202\245\243\107\236\214\352\134\266\274\147\333\346\052 +\115\322\004\334\243\256\105\367\274\213\234\034\247\326\325\003 +\334\010\313\056\026\312\134\100\063\350\147\303\056\347\246\104 +\352\021\105\034\065\145\055\036\105\141\044\033\202\056\245\235 +\063\135\145\370\101\371\056\313\224\077\037\243\014\061\044\104 +\355\307\136\255\120\272\306\101\233\254\360\027\145\300\370\135 +\157\133\240\012\064\074\356\327\352\210\237\230\371\257\116\044 +\372\227\262\144\166\332\253\364\355\343\303\140\357\325\371\002 +\310\055\237\203\257\147\151\006\247\061\125\325\317\113\157\377 +\004\005\307\130\254\137\026\033\345\322\243\353\061\333\037\063 +\025\115\320\362\245\123\365\313\341\075\116\150\055\330\022\335 +\252\362\346\115\233\111\345\305\050\241\272\260\132\306\240\265 +\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125\035 +\016\004\026\004\024\211\012\264\070\223\032\346\253\356\233\221 +\030\371\365\074\076\065\320\323\202\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\002\001\000\062\213\366 +\235\112\311\276\024\345\214\254\070\312\072\011\324\033\316\206 +\263\335\353\324\272\050\276\022\256\105\054\004\164\254\023\121 +\305\130\030\146\115\202\332\325\334\223\300\047\341\276\174\237 +\122\236\022\126\366\325\234\251\364\165\234\372\067\022\217\034 +\223\354\127\376\007\017\253\325\022\367\017\256\141\136\126\200 +\111\365\374\060\365\233\117\037\101\057\034\204\323\211\307\342 +\332\002\166\355\011\317\154\301\270\034\203\034\026\372\224\315 +\175\240\310\030\322\310\235\156\365\275\151\324\155\075\065\350 +\036\242\117\140\327\007\051\374\262\243\244\235\156\025\222\126 +\031\114\012\260\351\174\322\031\115\102\106\354\275\375\366\127 +\133\335\230\176\244\115\314\162\003\203\130\135\357\223\072\101 +\172\143\252\174\072\250\365\254\244\321\335\242\055\266\052\374 +\237\001\216\342\020\261\304\312\344\147\333\125\045\031\077\375 +\350\066\176\263\341\341\201\257\021\026\213\120\227\140\031\202 +\000\300\153\115\163\270\321\023\007\076\352\266\061\117\360\102 +\232\155\342\021\164\345\224\254\215\204\225\074\041\257\305\332 +\107\310\337\071\142\142\313\133\120\013\327\201\100\005\234\233 +\355\272\266\213\036\004\157\226\040\071\355\244\175\051\333\110 +\316\202\334\324\002\215\035\004\061\132\307\113\360\154\141\122 +\327\264\121\302\201\154\315\341\373\247\241\322\222\166\317\261 +\017\067\130\244\362\122\161\147\077\014\210\170\200\211\301\310 +\265\037\222\143\276\247\172\212\126\054\032\250\246\234\265\135 +\263\143\320\023\040\241\353\221\154\320\215\175\257\337\013\344 +\027\271\206\236\070\261\224\014\130\214\340\125\252\073\143\155 +\232\211\140\270\144\052\222\306\067\364\176\103\103\267\163\350 +\001\347\177\227\017\327\362\173\031\375\032\327\217\311\372\205 +\153\172\235\236\211\266\246\050\231\223\210\100\367\076\315\121 +\243\312\352\357\171\107\041\265\376\062\342\307\303\121\157\276 +\200\164\360\244\303\072\362\117\351\137\337\031\012\362\073\023 +\103\254\061\244\263\347\353\374\030\326\001\251\363\052\217\066 +\016\353\264\261\274\267\114\311\153\277\241\363\331\364\355\342 +\360\343\355\144\236\075\057\226\122\117\200\123\213 +END + +# Trust for "CA Disig Root R1" +# Issuer: CN=CA Disig Root R1,O=Disig a.s.,L=Bratislava,C=SK +# Serial Number:00:c3:03:9a:ee:50:90:6e:28 +# Subject: CN=CA Disig Root R1,O=Disig a.s.,L=Bratislava,C=SK +# Not Valid Before: Thu Jul 19 09:06:56 2012 +# Not Valid After : Sat Jul 19 09:06:56 2042 +# Fingerprint (MD5): BE:EC:11:93:9A:F5:69:21:BC:D7:C1:C0:67:89:CC:2A +# Fingerprint (SHA1): 8E:1C:74:F8:A6:20:B9:E5:8A:F4:61:FA:EC:2B:47:56:51:1A:52:C6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CA Disig Root R1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\216\034\164\370\246\040\271\345\212\364\141\372\354\053\107\126 +\121\032\122\306 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\276\354\021\223\232\365\151\041\274\327\301\300\147\211\314\052 +END +CKA_ISSUER MULTILINE_OCTAL +\060\122\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\031\060\027\006\003\125 +\004\003\023\020\103\101\040\104\151\163\151\147\040\122\157\157 +\164\040\122\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\303\003\232\356\120\220\156\050 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CA Disig Root R2" +# +# Issuer: CN=CA Disig Root R2,O=Disig a.s.,L=Bratislava,C=SK +# Serial Number:00:92:b8:88:db:b0:8a:c1:63 +# Subject: CN=CA Disig Root R2,O=Disig a.s.,L=Bratislava,C=SK +# Not Valid Before: Thu Jul 19 09:15:30 2012 +# Not Valid After : Sat Jul 19 09:15:30 2042 +# Fingerprint (MD5): 26:01:FB:D8:27:A7:17:9A:45:54:38:1A:43:01:3B:03 +# Fingerprint (SHA1): B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71 +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 "CA Disig Root R2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\122\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\031\060\027\006\003\125 +\004\003\023\020\103\101\040\104\151\163\151\147\040\122\157\157 +\164\040\122\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\122\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\031\060\027\006\003\125 +\004\003\023\020\103\101\040\104\151\163\151\147\040\122\157\157 +\164\040\122\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\222\270\210\333\260\212\301\143 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\151\060\202\003\121\240\003\002\001\002\002\011\000 +\222\270\210\333\260\212\301\143\060\015\006\011\052\206\110\206 +\367\015\001\001\013\005\000\060\122\061\013\060\011\006\003\125 +\004\006\023\002\123\113\061\023\060\021\006\003\125\004\007\023 +\012\102\162\141\164\151\163\154\141\166\141\061\023\060\021\006 +\003\125\004\012\023\012\104\151\163\151\147\040\141\056\163\056 +\061\031\060\027\006\003\125\004\003\023\020\103\101\040\104\151 +\163\151\147\040\122\157\157\164\040\122\062\060\036\027\015\061 +\062\060\067\061\071\060\071\061\065\063\060\132\027\015\064\062 +\060\067\061\071\060\071\061\065\063\060\132\060\122\061\013\060 +\011\006\003\125\004\006\023\002\123\113\061\023\060\021\006\003 +\125\004\007\023\012\102\162\141\164\151\163\154\141\166\141\061 +\023\060\021\006\003\125\004\012\023\012\104\151\163\151\147\040 +\141\056\163\056\061\031\060\027\006\003\125\004\003\023\020\103 +\101\040\104\151\163\151\147\040\122\157\157\164\040\122\062\060 +\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000 +\242\243\304\000\011\326\205\135\055\155\024\366\302\303\163\236 +\065\302\161\125\176\201\373\253\106\120\340\301\174\111\170\346 +\253\171\130\074\332\377\174\034\237\330\227\002\170\076\153\101 +\004\351\101\275\276\003\054\105\366\057\144\324\253\135\243\107 +\075\144\233\351\150\232\306\314\033\077\272\276\262\213\064\002 +\056\230\125\031\374\214\157\252\137\332\114\316\115\003\041\243 +\330\322\064\223\126\226\313\114\014\000\026\074\137\032\315\310 +\307\154\246\255\323\061\247\274\350\345\341\146\326\322\373\003 +\264\101\145\311\020\256\016\005\143\306\200\152\151\060\375\322 +\356\220\357\015\047\337\237\225\163\364\341\045\332\154\026\336 +\101\070\064\352\213\374\321\350\004\024\141\055\101\176\254\307 +\167\116\313\121\124\373\136\222\030\033\004\132\150\306\311\304 +\372\267\023\240\230\267\021\053\267\326\127\314\174\236\027\321 +\313\045\376\206\116\044\056\126\014\170\115\236\001\022\246\053 +\247\001\145\156\174\142\035\204\204\337\352\300\153\265\245\052 +\225\203\303\123\021\014\163\035\013\262\106\220\321\102\072\316 +\100\156\225\255\377\306\224\255\156\227\204\216\175\157\236\212 +\200\015\111\155\163\342\173\222\036\303\363\301\363\353\056\005 +\157\331\033\317\067\166\004\310\264\132\344\027\247\313\335\166 +\037\320\031\166\350\054\005\263\326\234\064\330\226\334\141\207 +\221\005\344\104\010\063\301\332\271\010\145\324\256\262\066\015 +\353\272\070\272\014\345\233\236\353\215\146\335\231\317\326\211 +\101\366\004\222\212\051\051\155\153\072\034\347\165\175\002\161 +\016\363\300\347\275\313\031\335\235\140\262\302\146\140\266\261 +\004\356\311\346\206\271\232\146\100\250\347\021\355\201\105\003 +\213\366\147\131\350\301\006\021\275\335\317\200\002\117\145\100 +\170\134\107\120\310\233\346\037\201\173\344\104\250\133\205\232 +\342\336\132\325\307\371\072\104\146\113\344\062\124\174\344\154 +\234\263\016\075\027\242\262\064\022\326\176\262\250\111\273\321 +\172\050\100\276\242\026\037\337\344\067\037\021\163\373\220\012 +\145\103\242\015\174\370\006\001\125\063\175\260\015\270\364\365 +\256\245\102\127\174\066\021\214\173\136\304\003\235\214\171\235 +\002\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125\035 +\016\004\026\004\024\265\231\370\257\260\224\365\343\040\326\012 +\255\316\116\126\244\056\156\102\355\060\015\006\011\052\206\110 +\206\367\015\001\001\013\005\000\003\202\002\001\000\046\006\136 +\160\347\145\063\310\202\156\331\234\027\072\033\172\146\262\001 +\366\170\073\151\136\057\352\377\116\371\050\303\230\052\141\114 +\264\044\022\212\175\155\021\024\367\234\265\312\346\274\236\047 +\216\114\031\310\251\275\172\300\327\066\016\155\205\162\156\250 +\306\242\155\366\372\163\143\177\274\156\171\010\034\235\212\237 +\032\212\123\246\330\273\331\065\125\261\021\305\251\003\263\126 +\073\271\204\223\042\136\176\301\366\022\122\213\352\054\147\274 +\376\066\114\365\270\317\321\263\111\222\073\323\051\016\231\033 +\226\367\141\270\073\304\053\266\170\154\264\043\157\360\375\323 +\262\136\165\037\231\225\250\254\366\332\341\305\061\173\373\321 +\106\263\322\274\147\264\142\124\272\011\367\143\260\223\242\232 +\371\351\122\056\213\140\022\253\374\365\140\126\357\020\134\213 +\304\032\102\334\203\133\144\016\313\265\274\326\117\301\174\074 +\156\215\023\155\373\173\353\060\320\334\115\257\305\325\266\245 +\114\133\161\311\350\061\276\350\070\006\110\241\032\342\352\322 +\336\022\071\130\032\377\200\016\202\165\346\267\311\007\154\016 +\357\377\070\361\230\161\304\267\177\016\025\320\045\151\275\042 +\235\053\355\005\366\106\107\254\355\300\360\324\073\342\354\356 +\226\133\220\023\116\036\126\072\353\260\357\226\273\226\043\021 +\272\362\103\206\164\144\225\310\050\165\337\035\065\272\322\067 +\203\070\123\070\066\073\317\154\351\371\153\016\320\373\004\350 +\117\167\327\145\001\170\206\014\172\076\041\142\361\177\143\161 +\014\311\237\104\333\250\047\242\165\276\156\201\076\327\300\353 +\033\230\017\160\134\064\262\212\314\300\205\030\353\156\172\263 +\367\132\241\007\277\251\102\222\363\140\042\227\344\024\241\007 +\233\116\166\300\216\175\375\244\045\307\107\355\377\037\163\254 +\314\303\245\351\157\012\216\233\145\302\120\205\265\243\240\123 +\022\314\125\207\141\363\201\256\020\106\141\275\104\041\270\302 +\075\164\317\176\044\065\372\034\007\016\233\075\042\312\357\061 +\057\214\254\022\275\357\100\050\374\051\147\237\262\023\117\146 +\044\304\123\031\351\036\051\025\357\346\155\260\177\055\147\375 +\363\154\033\165\106\243\345\112\027\351\244\327\013 +END + +# Trust for "CA Disig Root R2" +# Issuer: CN=CA Disig Root R2,O=Disig a.s.,L=Bratislava,C=SK +# Serial Number:00:92:b8:88:db:b0:8a:c1:63 +# Subject: CN=CA Disig Root R2,O=Disig a.s.,L=Bratislava,C=SK +# Not Valid Before: Thu Jul 19 09:15:30 2012 +# Not Valid After : Sat Jul 19 09:15:30 2042 +# Fingerprint (MD5): 26:01:FB:D8:27:A7:17:9A:45:54:38:1A:43:01:3B:03 +# Fingerprint (SHA1): B5:61:EB:EA:A4:DE:E4:25:4B:69:1A:98:A5:57:47:C2:34:C7:D9:71 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CA Disig Root R2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\265\141\353\352\244\336\344\045\113\151\032\230\245\127\107\302 +\064\307\331\161 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\046\001\373\330\047\247\027\232\105\124\070\032\103\001\073\003 +END +CKA_ISSUER MULTILINE_OCTAL +\060\122\061\013\060\011\006\003\125\004\006\023\002\123\113\061 +\023\060\021\006\003\125\004\007\023\012\102\162\141\164\151\163 +\154\141\166\141\061\023\060\021\006\003\125\004\012\023\012\104 +\151\163\151\147\040\141\056\163\056\061\031\060\027\006\003\125 +\004\003\023\020\103\101\040\104\151\163\151\147\040\122\157\157 +\164\040\122\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\011\000\222\270\210\333\260\212\301\143 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ACCVRAIZ1" +# +# Issuer: C=ES,O=ACCV,OU=PKIACCV,CN=ACCVRAIZ1 +# Serial Number:5e:c3:b7:a6:43:7f:a4:e0 +# Subject: C=ES,O=ACCV,OU=PKIACCV,CN=ACCVRAIZ1 +# Not Valid Before: Thu May 05 09:37:37 2011 +# Not Valid After : Tue Dec 31 09:37:37 2030 +# Fingerprint (MD5): D0:A0:5A:EE:05:B6:09:94:21:A1:7D:F1:B2:29:82:02 +# Fingerprint (SHA1): 93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17 +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 "ACCVRAIZ1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\102\061\022\060\020\006\003\125\004\003\014\011\101\103\103 +\126\122\101\111\132\061\061\020\060\016\006\003\125\004\013\014 +\007\120\113\111\101\103\103\126\061\015\060\013\006\003\125\004 +\012\014\004\101\103\103\126\061\013\060\011\006\003\125\004\006 +\023\002\105\123 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\102\061\022\060\020\006\003\125\004\003\014\011\101\103\103 +\126\122\101\111\132\061\061\020\060\016\006\003\125\004\013\014 +\007\120\113\111\101\103\103\126\061\015\060\013\006\003\125\004 +\012\014\004\101\103\103\126\061\013\060\011\006\003\125\004\006 +\023\002\105\123 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\136\303\267\246\103\177\244\340 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\007\323\060\202\005\273\240\003\002\001\002\002\010\136 +\303\267\246\103\177\244\340\060\015\006\011\052\206\110\206\367 +\015\001\001\005\005\000\060\102\061\022\060\020\006\003\125\004 +\003\014\011\101\103\103\126\122\101\111\132\061\061\020\060\016 +\006\003\125\004\013\014\007\120\113\111\101\103\103\126\061\015 +\060\013\006\003\125\004\012\014\004\101\103\103\126\061\013\060 +\011\006\003\125\004\006\023\002\105\123\060\036\027\015\061\061 +\060\065\060\065\060\071\063\067\063\067\132\027\015\063\060\061 +\062\063\061\060\071\063\067\063\067\132\060\102\061\022\060\020 +\006\003\125\004\003\014\011\101\103\103\126\122\101\111\132\061 +\061\020\060\016\006\003\125\004\013\014\007\120\113\111\101\103 +\103\126\061\015\060\013\006\003\125\004\012\014\004\101\103\103 +\126\061\013\060\011\006\003\125\004\006\023\002\105\123\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\233 +\251\253\277\141\112\227\257\057\227\146\232\164\137\320\331\226 +\375\317\342\344\146\357\037\037\107\063\302\104\243\337\232\336 +\037\265\124\335\025\174\151\065\021\157\273\310\014\216\152\030 +\036\330\217\331\026\274\020\110\066\134\360\143\263\220\132\134 +\044\067\327\243\326\313\011\161\271\361\001\162\204\260\175\333 +\115\200\315\374\323\157\311\370\332\266\016\202\322\105\205\250 +\033\150\250\075\350\364\104\154\275\241\302\313\003\276\214\076 +\023\000\204\337\112\110\300\343\042\012\350\351\067\247\030\114 +\261\011\015\043\126\177\004\115\331\027\204\030\245\310\332\100 +\224\163\353\316\016\127\074\003\201\072\235\012\241\127\103\151 +\254\127\155\171\220\170\345\265\264\073\330\274\114\215\050\241 +\247\243\247\272\002\116\045\321\052\256\355\256\003\042\270\153 +\040\017\060\050\124\225\177\340\356\316\012\146\235\321\100\055 +\156\042\257\235\032\301\005\031\322\157\300\362\237\370\173\263 +\002\102\373\120\251\035\055\223\017\043\253\306\301\017\222\377 +\320\242\025\365\123\011\161\034\377\105\023\204\346\046\136\370 +\340\210\034\012\374\026\266\250\163\006\270\360\143\204\002\240 +\306\132\354\347\164\337\160\256\243\203\045\352\326\307\227\207 +\223\247\306\212\212\063\227\140\067\020\076\227\076\156\051\025 +\326\241\017\321\210\054\022\237\157\252\244\306\102\353\101\242 +\343\225\103\323\001\205\155\216\273\073\363\043\066\307\376\073 +\340\241\045\007\110\253\311\211\164\377\010\217\200\277\300\226 +\145\363\356\354\113\150\275\235\210\303\061\263\100\361\350\317 +\366\070\273\234\344\321\177\324\345\130\233\174\372\324\363\016 +\233\165\221\344\272\122\056\031\176\321\365\315\132\031\374\272 +\006\366\373\122\250\113\231\004\335\370\371\264\213\120\243\116 +\142\211\360\207\044\372\203\102\301\207\372\325\055\051\052\132 +\161\172\144\152\327\047\140\143\015\333\316\111\365\215\037\220 +\211\062\027\370\163\103\270\322\132\223\206\141\326\341\165\012 +\352\171\146\166\210\117\161\353\004\045\326\012\132\172\223\345 +\271\113\027\100\017\261\266\271\365\336\117\334\340\263\254\073 +\021\160\140\204\112\103\156\231\040\300\051\161\012\300\145\002 +\003\001\000\001\243\202\002\313\060\202\002\307\060\175\006\010 +\053\006\001\005\005\007\001\001\004\161\060\157\060\114\006\010 +\053\006\001\005\005\007\060\002\206\100\150\164\164\160\072\057 +\057\167\167\167\056\141\143\143\166\056\145\163\057\146\151\154 +\145\141\144\155\151\156\057\101\162\143\150\151\166\157\163\057 +\143\145\162\164\151\146\151\143\141\144\157\163\057\162\141\151 +\172\141\143\143\166\061\056\143\162\164\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\141\143\143\166\056\145\163\060\035\006\003\125 +\035\016\004\026\004\024\322\207\264\343\337\067\047\223\125\366 +\126\352\201\345\066\314\214\036\077\275\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\037\006\003\125 +\035\043\004\030\060\026\200\024\322\207\264\343\337\067\047\223 +\125\366\126\352\201\345\066\314\214\036\077\275\060\202\001\163 +\006\003\125\035\040\004\202\001\152\060\202\001\146\060\202\001 +\142\006\004\125\035\040\000\060\202\001\130\060\202\001\042\006 +\010\053\006\001\005\005\007\002\002\060\202\001\024\036\202\001 +\020\000\101\000\165\000\164\000\157\000\162\000\151\000\144\000 +\141\000\144\000\040\000\144\000\145\000\040\000\103\000\145\000 +\162\000\164\000\151\000\146\000\151\000\143\000\141\000\143\000 +\151\000\363\000\156\000\040\000\122\000\141\000\355\000\172\000 +\040\000\144\000\145\000\040\000\154\000\141\000\040\000\101\000 +\103\000\103\000\126\000\040\000\050\000\101\000\147\000\145\000 +\156\000\143\000\151\000\141\000\040\000\144\000\145\000\040\000 +\124\000\145\000\143\000\156\000\157\000\154\000\157\000\147\000 +\355\000\141\000\040\000\171\000\040\000\103\000\145\000\162\000 +\164\000\151\000\146\000\151\000\143\000\141\000\143\000\151\000 +\363\000\156\000\040\000\105\000\154\000\145\000\143\000\164\000 +\162\000\363\000\156\000\151\000\143\000\141\000\054\000\040\000 +\103\000\111\000\106\000\040\000\121\000\064\000\066\000\060\000 +\061\000\061\000\065\000\066\000\105\000\051\000\056\000\040\000 +\103\000\120\000\123\000\040\000\145\000\156\000\040\000\150\000 +\164\000\164\000\160\000\072\000\057\000\057\000\167\000\167\000 +\167\000\056\000\141\000\143\000\143\000\166\000\056\000\145\000 +\163\060\060\006\010\053\006\001\005\005\007\002\001\026\044\150 +\164\164\160\072\057\057\167\167\167\056\141\143\143\166\056\145 +\163\057\154\145\147\151\163\154\141\143\151\157\156\137\143\056 +\150\164\155\060\125\006\003\125\035\037\004\116\060\114\060\112 +\240\110\240\106\206\104\150\164\164\160\072\057\057\167\167\167 +\056\141\143\143\166\056\145\163\057\146\151\154\145\141\144\155 +\151\156\057\101\162\143\150\151\166\157\163\057\143\145\162\164 +\151\146\151\143\141\144\157\163\057\162\141\151\172\141\143\143 +\166\061\137\144\145\162\056\143\162\154\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\027\006\003\125\035 +\021\004\020\060\016\201\014\141\143\143\166\100\141\143\143\166 +\056\145\163\060\015\006\011\052\206\110\206\367\015\001\001\005 +\005\000\003\202\002\001\000\227\061\002\237\347\375\103\147\110 +\104\024\344\051\207\355\114\050\146\320\217\065\332\115\141\267 +\112\227\115\265\333\220\340\005\056\016\306\171\320\362\227\151 +\017\275\004\107\331\276\333\265\051\332\233\331\256\251\231\325 +\323\074\060\223\365\215\241\250\374\006\215\104\364\312\026\225 +\174\063\334\142\213\250\067\370\047\330\011\055\033\357\310\024 +\047\040\251\144\104\377\056\326\165\252\154\115\140\100\031\111 +\103\124\143\332\342\314\272\146\345\117\104\172\133\331\152\201 +\053\100\325\177\371\001\047\130\054\310\355\110\221\174\077\246 +\000\317\304\051\163\021\066\336\206\031\076\235\356\031\212\033 +\325\260\355\216\075\234\052\300\015\330\075\146\343\074\015\275 +\325\224\134\342\342\247\065\033\004\000\366\077\132\215\352\103 +\275\137\211\035\251\301\260\314\231\342\115\000\012\332\311\047 +\133\347\023\220\134\344\365\063\242\125\155\334\340\011\115\057 +\261\046\133\047\165\000\011\304\142\167\051\010\137\236\131\254 +\266\176\255\237\124\060\042\003\301\036\161\144\376\371\070\012 +\226\030\335\002\024\254\043\313\006\034\036\244\175\215\015\336 +\047\101\350\255\332\025\267\260\043\335\053\250\323\332\045\207 +\355\350\125\104\115\210\364\066\176\204\232\170\254\367\016\126 +\111\016\326\063\045\326\204\120\102\154\040\022\035\052\325\276 +\274\362\160\201\244\160\140\276\005\265\233\236\004\104\276\141 +\043\254\351\245\044\214\021\200\224\132\242\242\271\111\322\301 +\334\321\247\355\061\021\054\236\031\246\356\341\125\341\300\352 +\317\015\204\344\027\267\242\174\245\336\125\045\006\356\314\300 +\207\134\100\332\314\225\077\125\340\065\307\270\204\276\264\135 +\315\172\203\001\162\356\207\346\137\035\256\265\205\306\046\337 +\346\301\232\351\036\002\107\237\052\250\155\251\133\317\354\105 +\167\177\230\047\232\062\135\052\343\204\356\305\230\146\057\226 +\040\035\335\330\303\047\327\260\371\376\331\175\315\320\237\217 +\013\024\130\121\237\057\213\303\070\055\336\350\217\326\215\207 +\244\365\126\103\026\231\054\364\244\126\264\064\270\141\067\311 +\302\130\200\033\240\227\241\374\131\215\351\021\366\321\017\113 +\125\064\106\052\213\206\073 +END + +# Trust for "ACCVRAIZ1" +# Issuer: C=ES,O=ACCV,OU=PKIACCV,CN=ACCVRAIZ1 +# Serial Number:5e:c3:b7:a6:43:7f:a4:e0 +# Subject: C=ES,O=ACCV,OU=PKIACCV,CN=ACCVRAIZ1 +# Not Valid Before: Thu May 05 09:37:37 2011 +# Not Valid After : Tue Dec 31 09:37:37 2030 +# Fingerprint (MD5): D0:A0:5A:EE:05:B6:09:94:21:A1:7D:F1:B2:29:82:02 +# Fingerprint (SHA1): 93:05:7A:88:15:C6:4F:CE:88:2F:FA:91:16:52:28:78:BC:53:64:17 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ACCVRAIZ1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\223\005\172\210\025\306\117\316\210\057\372\221\026\122\050\170 +\274\123\144\027 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\320\240\132\356\005\266\011\224\041\241\175\361\262\051\202\002 +END +CKA_ISSUER MULTILINE_OCTAL +\060\102\061\022\060\020\006\003\125\004\003\014\011\101\103\103 +\126\122\101\111\132\061\061\020\060\016\006\003\125\004\013\014 +\007\120\113\111\101\103\103\126\061\015\060\013\006\003\125\004 +\012\014\004\101\103\103\126\061\013\060\011\006\003\125\004\006 +\023\002\105\123 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\136\303\267\246\103\177\244\340 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TWCA Global Root CA" +# +# Issuer: CN=TWCA Global Root CA,OU=Root CA,O=TAIWAN-CA,C=TW +# Serial Number: 3262 (0xcbe) +# Subject: CN=TWCA Global Root CA,OU=Root CA,O=TAIWAN-CA,C=TW +# Not Valid Before: Wed Jun 27 06:28:33 2012 +# Not Valid After : Tue Dec 31 15:59:59 2030 +# Fingerprint (MD5): F9:03:7E:CF:E6:9E:3C:73:7A:2A:90:07:69:FF:2B:96 +# Fingerprint (SHA1): 9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65 +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 "TWCA Global Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\023\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\023\007\122\157 +\157\164\040\103\101\061\034\060\032\006\003\125\004\003\023\023 +\124\127\103\101\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\023\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\023\007\122\157 +\157\164\040\103\101\061\034\060\032\006\003\125\004\003\023\023 +\124\127\103\101\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\014\276 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\101\060\202\003\051\240\003\002\001\002\002\002\014 +\276\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000 +\060\121\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\023\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\023\007\122\157 +\157\164\040\103\101\061\034\060\032\006\003\125\004\003\023\023 +\124\127\103\101\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101\060\036\027\015\061\062\060\066\062\067\060\066\062 +\070\063\063\132\027\015\063\060\061\062\063\061\061\065\065\071 +\065\071\132\060\121\061\013\060\011\006\003\125\004\006\023\002 +\124\127\061\022\060\020\006\003\125\004\012\023\011\124\101\111 +\127\101\116\055\103\101\061\020\060\016\006\003\125\004\013\023 +\007\122\157\157\164\040\103\101\061\034\060\032\006\003\125\004 +\003\023\023\124\127\103\101\040\107\154\157\142\141\154\040\122 +\157\157\164\040\103\101\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\260\005\333\310\353\214\304\156\212 +\041\357\216\115\234\161\012\037\122\160\355\155\202\234\227\305 +\327\114\116\105\111\313\100\102\265\022\064\154\031\302\164\244 +\061\137\205\002\227\354\103\063\012\123\322\234\214\216\267\270 +\171\333\053\325\152\362\216\146\304\356\053\001\007\222\324\263 +\320\002\337\120\366\125\257\146\016\313\340\107\140\057\053\062 +\071\065\122\072\050\203\370\173\026\306\030\270\142\326\107\045 +\221\316\360\031\022\115\255\143\365\323\077\165\137\051\360\241 +\060\034\052\240\230\246\025\275\356\375\031\066\360\342\221\103 +\217\372\312\326\020\047\111\114\357\335\301\361\205\160\233\312 +\352\250\132\103\374\155\206\157\163\351\067\105\251\360\066\307 +\314\210\165\036\273\154\006\377\233\153\076\027\354\141\252\161 +\174\306\035\242\367\111\351\025\265\074\326\241\141\365\021\367 +\005\157\035\375\021\276\320\060\007\302\051\260\011\116\046\334 +\343\242\250\221\152\037\302\221\105\210\134\345\230\270\161\245 +\025\031\311\174\165\021\314\160\164\117\055\233\035\221\104\375 +\126\050\240\376\273\206\152\310\372\134\013\130\334\306\113\166 +\310\253\042\331\163\017\245\364\132\002\211\077\117\236\042\202 +\356\242\164\123\052\075\123\047\151\035\154\216\062\054\144\000 +\046\143\141\066\116\243\106\267\077\175\263\055\254\155\220\242 +\225\242\316\317\332\202\347\007\064\031\226\351\270\041\252\051 +\176\246\070\276\216\051\112\041\146\171\037\263\303\265\011\147 +\336\326\324\007\106\363\052\332\346\042\067\140\313\201\266\017 +\240\017\351\310\225\177\277\125\221\005\172\317\075\025\300\157 +\336\011\224\001\203\327\064\033\314\100\245\360\270\233\147\325 +\230\221\073\247\204\170\225\046\244\132\010\370\053\164\264\000 +\004\074\337\270\024\216\350\337\251\215\154\147\222\063\035\300 +\267\322\354\222\310\276\011\277\054\051\005\157\002\153\236\357 +\274\277\052\274\133\300\120\217\101\160\161\207\262\115\267\004 +\251\204\243\062\257\256\356\153\027\213\262\261\376\154\341\220 +\214\210\250\227\110\316\310\115\313\363\006\317\137\152\012\102 +\261\036\036\167\057\216\240\346\222\016\006\374\005\042\322\046 +\341\061\121\175\062\334\017\002\003\001\000\001\243\043\060\041 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000 +\003\202\002\001\000\137\064\201\166\357\226\035\325\345\265\331 +\002\143\204\026\301\256\240\160\121\247\367\114\107\065\310\013 +\327\050\075\211\161\331\252\063\101\352\024\033\154\041\000\300 +\154\102\031\176\237\151\133\040\102\337\242\322\332\304\174\227 +\113\215\260\350\254\310\356\245\151\004\231\012\222\246\253\047 +\056\032\115\201\277\204\324\160\036\255\107\376\375\112\235\063 +\340\362\271\304\105\010\041\012\332\151\151\163\162\015\276\064 +\376\224\213\255\303\036\065\327\242\203\357\345\070\307\245\205 +\037\253\317\064\354\077\050\376\014\361\127\206\116\311\125\367 +\034\324\330\245\175\006\172\157\325\337\020\337\201\116\041\145 +\261\266\341\027\171\225\105\006\316\137\314\334\106\211\143\150 +\104\215\223\364\144\160\240\075\235\050\005\303\071\160\270\142 +\173\040\375\344\333\351\010\241\270\236\075\011\307\117\373\054 +\370\223\166\101\336\122\340\341\127\322\235\003\274\167\236\376 +\236\051\136\367\301\121\140\037\336\332\013\262\055\165\267\103 +\110\223\347\366\171\306\204\135\200\131\140\224\374\170\230\217 +\074\223\121\355\100\220\007\337\144\143\044\313\116\161\005\241 +\327\224\032\210\062\361\042\164\042\256\245\246\330\022\151\114 +\140\243\002\356\053\354\324\143\222\013\136\276\057\166\153\243 +\266\046\274\217\003\330\012\362\114\144\106\275\071\142\345\226 +\353\064\143\021\050\314\225\361\255\357\357\334\200\130\110\351 +\113\270\352\145\254\351\374\200\265\265\310\105\371\254\301\237 +\331\271\352\142\210\216\304\361\113\203\022\255\346\213\204\326 +\236\302\353\203\030\237\152\273\033\044\140\063\160\314\354\367 +\062\363\134\331\171\175\357\236\244\376\311\043\303\044\356\025 +\222\261\075\221\117\046\206\275\146\163\044\023\352\244\256\143 +\301\255\175\204\003\074\020\170\206\033\171\343\304\363\362\004 +\225\040\256\043\202\304\263\072\000\142\277\346\066\044\341\127 +\272\307\036\220\165\325\137\077\225\141\053\301\073\315\345\263 +\150\141\320\106\046\251\041\122\151\055\353\056\307\353\167\316 +\246\072\265\003\063\117\166\321\347\134\124\001\135\313\170\364 +\311\014\277\317\022\216\027\055\043\150\224\347\253\376\251\262 +\053\006\320\004\315 +END + +# Trust for "TWCA Global Root CA" +# Issuer: CN=TWCA Global Root CA,OU=Root CA,O=TAIWAN-CA,C=TW +# Serial Number: 3262 (0xcbe) +# Subject: CN=TWCA Global Root CA,OU=Root CA,O=TAIWAN-CA,C=TW +# Not Valid Before: Wed Jun 27 06:28:33 2012 +# Not Valid After : Tue Dec 31 15:59:59 2030 +# Fingerprint (MD5): F9:03:7E:CF:E6:9E:3C:73:7A:2A:90:07:69:FF:2B:96 +# Fingerprint (SHA1): 9C:BB:48:53:F6:A4:F6:D3:52:A4:E8:32:52:55:60:13:F5:AD:AF:65 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TWCA Global Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\234\273\110\123\366\244\366\323\122\244\350\062\122\125\140\023 +\365\255\257\145 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\371\003\176\317\346\236\074\163\172\052\220\007\151\377\053\226 +END +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\124\127\061 +\022\060\020\006\003\125\004\012\023\011\124\101\111\127\101\116 +\055\103\101\061\020\060\016\006\003\125\004\013\023\007\122\157 +\157\164\040\103\101\061\034\060\032\006\003\125\004\003\023\023 +\124\127\103\101\040\107\154\157\142\141\154\040\122\157\157\164 +\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\002\014\276 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TeliaSonera Root CA v1" +# +# Issuer: CN=TeliaSonera Root CA v1,O=TeliaSonera +# Serial Number:00:95:be:16:a0:f7:2e:46:f1:7b:39:82:72:fa:8b:cd:96 +# Subject: CN=TeliaSonera Root CA v1,O=TeliaSonera +# Not Valid Before: Thu Oct 18 12:00:50 2007 +# Not Valid After : Mon Oct 18 12:00:50 2032 +# Fingerprint (MD5): 37:41:49:1B:18:56:9A:26:F5:AD:C2:66:FB:40:A5:4C +# Fingerprint (SHA1): 43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37 +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 "TeliaSonera Root CA v1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\067\061\024\060\022\006\003\125\004\012\014\013\124\145\154 +\151\141\123\157\156\145\162\141\061\037\060\035\006\003\125\004 +\003\014\026\124\145\154\151\141\123\157\156\145\162\141\040\122 +\157\157\164\040\103\101\040\166\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\067\061\024\060\022\006\003\125\004\012\014\013\124\145\154 +\151\141\123\157\156\145\162\141\061\037\060\035\006\003\125\004 +\003\014\026\124\145\154\151\141\123\157\156\145\162\141\040\122 +\157\157\164\040\103\101\040\166\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\225\276\026\240\367\056\106\361\173\071\202\162\372 +\213\315\226 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\070\060\202\003\040\240\003\002\001\002\002\021\000 +\225\276\026\240\367\056\106\361\173\071\202\162\372\213\315\226 +\060\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060 +\067\061\024\060\022\006\003\125\004\012\014\013\124\145\154\151 +\141\123\157\156\145\162\141\061\037\060\035\006\003\125\004\003 +\014\026\124\145\154\151\141\123\157\156\145\162\141\040\122\157 +\157\164\040\103\101\040\166\061\060\036\027\015\060\067\061\060 +\061\070\061\062\060\060\065\060\132\027\015\063\062\061\060\061 +\070\061\062\060\060\065\060\132\060\067\061\024\060\022\006\003 +\125\004\012\014\013\124\145\154\151\141\123\157\156\145\162\141 +\061\037\060\035\006\003\125\004\003\014\026\124\145\154\151\141 +\123\157\156\145\162\141\040\122\157\157\164\040\103\101\040\166 +\061\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002 +\001\000\302\276\353\047\360\041\243\363\151\046\125\176\235\305 +\125\026\221\134\375\357\041\277\123\200\172\055\322\221\214\143 +\061\360\354\044\360\303\245\322\162\174\020\155\364\067\267\345 +\346\174\171\352\214\265\202\213\256\110\266\254\000\334\145\165 +\354\052\115\137\301\207\365\040\145\053\201\250\107\076\211\043 +\225\060\026\220\177\350\127\007\110\347\031\256\277\105\147\261 +\067\033\006\052\376\336\371\254\175\203\373\136\272\344\217\227 +\147\276\113\216\215\144\007\127\070\125\151\064\066\075\023\110 +\357\117\342\323\146\036\244\317\032\267\136\066\063\324\264\006 +\275\030\001\375\167\204\120\000\105\365\214\135\350\043\274\176 +\376\065\341\355\120\173\251\060\215\031\323\011\216\150\147\135 +\277\074\227\030\123\273\051\142\305\312\136\162\301\307\226\324 +\333\055\240\264\037\151\003\354\352\342\120\361\014\074\360\254 +\363\123\055\360\034\365\355\154\071\071\163\200\026\310\122\260 +\043\315\340\076\334\335\074\107\240\273\065\212\342\230\150\213 +\276\345\277\162\356\322\372\245\355\022\355\374\230\030\251\046 +\166\334\050\113\020\040\034\323\177\026\167\055\355\157\200\367 +\111\273\123\005\273\135\150\307\324\310\165\026\077\211\132\213 +\367\027\107\324\114\361\322\211\171\076\115\075\230\250\141\336 +\072\036\322\370\136\003\340\301\311\034\214\323\215\115\323\225 +\066\263\067\137\143\143\233\063\024\360\055\046\153\123\174\211 +\214\062\302\156\354\075\041\000\071\311\241\150\342\120\203\056 +\260\072\053\363\066\240\254\057\344\157\141\302\121\011\071\076 +\213\123\271\273\147\332\334\123\271\166\131\066\235\103\345\040 +\340\075\062\140\205\042\121\267\307\063\273\335\025\057\244\170 +\246\007\173\201\106\066\004\206\335\171\065\307\225\054\073\260 +\243\027\065\345\163\037\264\134\131\357\332\352\020\145\173\172 +\320\177\237\263\264\052\067\073\160\213\233\133\271\053\267\354 +\262\121\022\227\123\051\132\324\360\022\020\334\117\002\273\022 +\222\057\142\324\077\151\103\174\015\326\374\130\165\001\210\235 +\130\026\113\336\272\220\377\107\001\211\006\152\366\137\262\220 +\152\263\002\246\002\210\277\263\107\176\052\331\325\372\150\170 +\065\115\002\003\001\000\001\243\077\060\075\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\013\006\003 +\125\035\017\004\004\003\002\001\006\060\035\006\003\125\035\016 +\004\026\004\024\360\217\131\070\000\263\365\217\232\226\014\325 +\353\372\173\252\027\350\023\022\060\015\006\011\052\206\110\206 +\367\015\001\001\005\005\000\003\202\002\001\000\276\344\134\142 +\116\044\364\014\010\377\360\323\014\150\344\223\111\042\077\104 +\047\157\273\155\336\203\146\316\250\314\015\374\365\232\006\345 +\167\024\221\353\235\101\173\231\052\204\345\377\374\041\301\135 +\360\344\037\127\267\165\251\241\137\002\046\377\327\307\367\116 +\336\117\370\367\034\106\300\172\117\100\054\042\065\360\031\261 +\320\153\147\054\260\250\340\300\100\067\065\366\204\134\134\343 +\257\102\170\376\247\311\015\120\352\015\204\166\366\121\357\203 +\123\306\172\377\016\126\111\056\217\172\326\014\346\047\124\343 +\115\012\140\162\142\315\221\007\326\245\277\310\231\153\355\304 +\031\346\253\114\021\070\305\157\061\342\156\111\310\077\166\200 +\046\003\046\051\340\066\366\366\040\123\343\027\160\064\027\235 +\143\150\036\153\354\303\115\206\270\023\060\057\135\106\015\107 +\103\325\033\252\131\016\271\134\215\006\110\255\164\207\137\307 +\374\061\124\101\023\342\307\041\016\236\340\036\015\341\300\173 +\103\205\220\305\212\130\306\145\012\170\127\362\306\043\017\001 +\331\040\113\336\017\373\222\205\165\052\134\163\215\155\173\045 +\221\312\356\105\256\006\113\000\314\323\261\131\120\332\072\210 +\073\051\103\106\136\227\053\124\316\123\157\215\112\347\226\372 +\277\161\016\102\213\174\375\050\240\320\110\312\332\304\201\114 +\273\242\163\223\046\310\353\014\326\046\210\266\300\044\317\273 +\275\133\353\165\175\351\010\216\206\063\054\171\167\011\151\245 +\211\374\263\160\220\207\166\217\323\042\273\102\316\275\163\013 +\040\046\052\320\233\075\160\036\044\154\315\207\166\251\027\226 +\267\317\015\222\373\216\030\251\230\111\321\236\376\140\104\162 +\041\271\031\355\302\365\061\361\071\110\210\220\044\165\124\026 +\255\316\364\370\151\024\144\071\373\243\270\272\160\100\307\047 +\034\277\304\126\123\372\143\145\320\363\034\016\026\365\153\206 +\130\115\030\324\344\015\216\245\235\133\221\334\166\044\120\077 +\306\052\373\331\267\234\265\326\346\320\331\350\031\213\025\161 +\110\255\267\352\330\131\210\324\220\277\026\263\331\351\254\131 +\141\124\310\034\272\312\301\312\341\271\040\114\217\072\223\211 +\245\240\314\277\323\366\165\244\165\226\155\126 +END + +# Trust for "TeliaSonera Root CA v1" +# Issuer: CN=TeliaSonera Root CA v1,O=TeliaSonera +# Serial Number:00:95:be:16:a0:f7:2e:46:f1:7b:39:82:72:fa:8b:cd:96 +# Subject: CN=TeliaSonera Root CA v1,O=TeliaSonera +# Not Valid Before: Thu Oct 18 12:00:50 2007 +# Not Valid After : Mon Oct 18 12:00:50 2032 +# Fingerprint (MD5): 37:41:49:1B:18:56:9A:26:F5:AD:C2:66:FB:40:A5:4C +# Fingerprint (SHA1): 43:13:BB:96:F1:D5:86:9B:C1:4E:6A:92:F6:CF:F6:34:69:87:82:37 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TeliaSonera Root CA v1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\103\023\273\226\361\325\206\233\301\116\152\222\366\317\366\064 +\151\207\202\067 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\067\101\111\033\030\126\232\046\365\255\302\146\373\100\245\114 +END +CKA_ISSUER MULTILINE_OCTAL +\060\067\061\024\060\022\006\003\125\004\012\014\013\124\145\154 +\151\141\123\157\156\145\162\141\061\037\060\035\006\003\125\004 +\003\014\026\124\145\154\151\141\123\157\156\145\162\141\040\122 +\157\157\164\040\103\101\040\166\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\225\276\026\240\367\056\106\361\173\071\202\162\372 +\213\315\226 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "E-Tugra Certification Authority" +# +# Issuer: CN=E-Tugra Certification Authority,OU=E-Tugra Sertifikasyon Merkezi,O=E-Tu..ra EBG Bili..im Teknolojileri ve Hizmetleri A....,L=Ankara,C=TR +# Serial Number:6a:68:3e:9c:51:9b:cb:53 +# Subject: CN=E-Tugra Certification Authority,OU=E-Tugra Sertifikasyon Merkezi,O=E-Tu..ra EBG Bili..im Teknolojileri ve Hizmetleri A....,L=Ankara,C=TR +# Not Valid Before: Tue Mar 05 12:09:48 2013 +# Not Valid After : Fri Mar 03 12:09:48 2023 +# Fingerprint (MD5): B8:A1:03:63:B0:BD:21:71:70:8A:6F:13:3A:BB:79:49 +# Fingerprint (SHA1): 51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39 +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 "E-Tugra Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\262\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\100\060\076\006\003\125\004\012\014\067\105\055\124\165 +\304\237\162\141\040\105\102\107\040\102\151\154\151\305\237\151 +\155\040\124\145\153\156\157\154\157\152\151\154\145\162\151\040 +\166\145\040\110\151\172\155\145\164\154\145\162\151\040\101\056 +\305\236\056\061\046\060\044\006\003\125\004\013\014\035\105\055 +\124\165\147\162\141\040\123\145\162\164\151\146\151\153\141\163 +\171\157\156\040\115\145\162\153\145\172\151\061\050\060\046\006 +\003\125\004\003\014\037\105\055\124\165\147\162\141\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\201\262\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\100\060\076\006\003\125\004\012\014\067\105\055\124\165 +\304\237\162\141\040\105\102\107\040\102\151\154\151\305\237\151 +\155\040\124\145\153\156\157\154\157\152\151\154\145\162\151\040 +\166\145\040\110\151\172\155\145\164\154\145\162\151\040\101\056 +\305\236\056\061\046\060\044\006\003\125\004\013\014\035\105\055 +\124\165\147\162\141\040\123\145\162\164\151\146\151\153\141\163 +\171\157\156\040\115\145\162\153\145\172\151\061\050\060\046\006 +\003\125\004\003\014\037\105\055\124\165\147\162\141\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\010\152\150\076\234\121\233\313\123 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\113\060\202\004\063\240\003\002\001\002\002\010\152 +\150\076\234\121\233\313\123\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\060\201\262\061\013\060\011\006\003\125 +\004\006\023\002\124\122\061\017\060\015\006\003\125\004\007\014 +\006\101\156\153\141\162\141\061\100\060\076\006\003\125\004\012 +\014\067\105\055\124\165\304\237\162\141\040\105\102\107\040\102 +\151\154\151\305\237\151\155\040\124\145\153\156\157\154\157\152 +\151\154\145\162\151\040\166\145\040\110\151\172\155\145\164\154 +\145\162\151\040\101\056\305\236\056\061\046\060\044\006\003\125 +\004\013\014\035\105\055\124\165\147\162\141\040\123\145\162\164 +\151\146\151\153\141\163\171\157\156\040\115\145\162\153\145\172 +\151\061\050\060\046\006\003\125\004\003\014\037\105\055\124\165 +\147\162\141\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\061 +\063\060\063\060\065\061\062\060\071\064\070\132\027\015\062\063 +\060\063\060\063\061\062\060\071\064\070\132\060\201\262\061\013 +\060\011\006\003\125\004\006\023\002\124\122\061\017\060\015\006 +\003\125\004\007\014\006\101\156\153\141\162\141\061\100\060\076 +\006\003\125\004\012\014\067\105\055\124\165\304\237\162\141\040 +\105\102\107\040\102\151\154\151\305\237\151\155\040\124\145\153 +\156\157\154\157\152\151\154\145\162\151\040\166\145\040\110\151 +\172\155\145\164\154\145\162\151\040\101\056\305\236\056\061\046 +\060\044\006\003\125\004\013\014\035\105\055\124\165\147\162\141 +\040\123\145\162\164\151\146\151\153\141\163\171\157\156\040\115 +\145\162\153\145\172\151\061\050\060\046\006\003\125\004\003\014 +\037\105\055\124\165\147\162\141\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\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\342\365\077\223\005\121\036\205\142\124\136\172\013\365\030 +\007\203\256\176\257\174\367\324\212\153\245\143\103\071\271\113 +\367\303\306\144\211\075\224\056\124\200\122\071\071\007\113\113 +\335\205\007\166\207\314\277\057\225\114\314\175\247\075\274\107 +\017\230\160\370\214\205\036\164\216\222\155\033\100\321\231\015 +\273\165\156\310\251\153\232\300\204\061\257\312\103\313\353\053 +\064\350\217\227\153\001\233\325\016\112\010\252\133\222\164\205 +\103\323\200\256\241\210\133\256\263\352\136\313\026\232\167\104 +\310\241\366\124\150\316\336\217\227\053\272\133\100\002\014\144 +\027\300\265\223\315\341\361\023\146\316\014\171\357\321\221\050 +\253\137\240\022\122\060\163\031\216\217\341\214\007\242\303\273 +\112\360\352\037\025\250\356\045\314\244\106\370\033\042\357\263 +\016\103\272\054\044\270\305\054\134\324\034\370\135\144\275\303 +\223\136\050\247\077\047\361\216\036\323\052\120\005\243\125\331 +\313\347\071\123\300\230\236\214\124\142\213\046\260\367\175\215 +\174\344\306\236\146\102\125\202\107\347\262\130\215\146\367\007 +\174\056\066\346\120\034\077\333\103\044\305\277\206\107\171\263 +\171\034\367\132\364\023\354\154\370\077\342\131\037\225\356\102 +\076\271\255\250\062\205\111\227\106\376\113\061\217\132\313\255 +\164\107\037\351\221\267\337\050\004\042\240\324\017\135\342\171 +\117\352\154\205\206\275\250\246\316\344\372\303\341\263\256\336 +\074\121\356\313\023\174\001\177\204\016\135\121\224\236\023\014 +\266\056\245\114\371\071\160\066\157\226\312\056\014\104\125\305 +\312\372\135\002\243\337\326\144\214\132\263\001\012\251\265\012 +\107\027\377\357\221\100\052\216\241\106\072\061\230\345\021\374 +\314\273\111\126\212\374\271\320\141\232\157\145\154\346\303\313 +\076\165\111\376\217\247\342\211\305\147\327\235\106\023\116\061 +\166\073\044\263\236\021\145\206\253\177\357\035\324\370\274\347 +\254\132\134\267\132\107\134\125\316\125\264\042\161\133\133\013 +\360\317\334\240\141\144\352\251\327\150\012\143\247\340\015\077 +\240\257\323\252\322\176\357\121\240\346\121\053\125\222\025\027 +\123\313\267\146\016\146\114\370\371\165\114\220\347\022\160\307 +\105\002\003\001\000\001\243\143\060\141\060\035\006\003\125\035 +\016\004\026\004\024\056\343\333\262\111\320\234\124\171\134\372 +\047\052\376\314\116\322\350\116\124\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\037\006\003\125\035 +\043\004\030\060\026\200\024\056\343\333\262\111\320\234\124\171 +\134\372\047\052\376\314\116\322\350\116\124\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\015\006\011\052 +\206\110\206\367\015\001\001\013\005\000\003\202\002\001\000\005 +\067\072\364\115\267\105\342\105\165\044\217\266\167\122\350\034 +\330\020\223\145\363\362\131\006\244\076\036\051\354\135\321\320 +\253\174\340\012\220\110\170\355\116\230\003\231\376\050\140\221 +\035\060\035\270\143\174\250\346\065\265\372\323\141\166\346\326 +\007\113\312\151\232\262\204\172\167\223\105\027\025\237\044\320 +\230\023\022\377\273\240\056\375\116\114\207\370\316\134\252\230 +\033\005\340\000\106\112\202\200\245\063\213\050\334\355\070\323 +\337\345\076\351\376\373\131\335\141\204\117\322\124\226\023\141 +\023\076\217\200\151\276\223\107\265\065\103\322\132\273\075\134 +\357\263\102\107\315\073\125\023\006\260\011\333\375\143\366\072 +\210\012\231\157\176\341\316\033\123\152\104\146\043\121\010\173 +\274\133\122\242\375\006\067\070\100\141\217\112\226\270\220\067 +\370\146\307\170\220\000\025\056\213\255\121\065\123\007\250\153 +\150\256\371\116\074\007\046\315\010\005\160\314\071\077\166\275 +\245\323\147\046\001\206\246\123\322\140\073\174\103\177\125\212 +\274\225\032\301\050\071\114\037\103\322\221\364\162\131\212\271 +\126\374\077\264\235\332\160\234\166\132\214\103\120\356\216\060 +\162\115\337\377\111\367\306\251\147\331\155\254\002\021\342\072 +\026\045\247\130\010\313\157\123\101\234\110\070\107\150\063\321 +\327\307\217\324\164\041\324\303\005\220\172\377\316\226\210\261 +\025\051\135\043\253\320\140\241\022\117\336\364\027\315\062\345 +\311\277\310\103\255\375\056\216\361\257\342\364\230\372\022\037 +\040\330\300\247\014\205\305\220\364\073\055\226\046\261\054\276 +\114\253\353\261\322\212\311\333\170\023\017\036\011\235\155\217 +\000\237\002\332\301\372\037\172\172\011\304\112\346\210\052\227 +\237\211\213\375\067\137\137\072\316\070\131\206\113\257\161\013 +\264\330\362\160\117\237\062\023\343\260\247\127\345\332\332\103 +\313\204\064\362\050\304\352\155\364\052\357\301\153\166\332\373 +\176\273\205\074\322\123\302\115\276\161\341\105\321\375\043\147 +\015\023\165\373\317\145\147\042\235\256\260\011\321\011\377\035 +\064\277\376\043\227\067\322\071\372\075\015\006\013\264\333\073 +\243\253\157\134\035\266\176\350\263\202\064\355\006\134\044 +END + +# Trust for "E-Tugra Certification Authority" +# Issuer: CN=E-Tugra Certification Authority,OU=E-Tugra Sertifikasyon Merkezi,O=E-Tu..ra EBG Bili..im Teknolojileri ve Hizmetleri A....,L=Ankara,C=TR +# Serial Number:6a:68:3e:9c:51:9b:cb:53 +# Subject: CN=E-Tugra Certification Authority,OU=E-Tugra Sertifikasyon Merkezi,O=E-Tu..ra EBG Bili..im Teknolojileri ve Hizmetleri A....,L=Ankara,C=TR +# Not Valid Before: Tue Mar 05 12:09:48 2013 +# Not Valid After : Fri Mar 03 12:09:48 2023 +# Fingerprint (MD5): B8:A1:03:63:B0:BD:21:71:70:8A:6F:13:3A:BB:79:49 +# Fingerprint (SHA1): 51:C6:E7:08:49:06:6E:F3:92:D4:5C:A0:0D:6D:A3:62:8F:C3:52:39 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "E-Tugra Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\121\306\347\010\111\006\156\363\222\324\134\240\015\155\243\142 +\217\303\122\071 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\270\241\003\143\260\275\041\161\160\212\157\023\072\273\171\111 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\262\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\100\060\076\006\003\125\004\012\014\067\105\055\124\165 +\304\237\162\141\040\105\102\107\040\102\151\154\151\305\237\151 +\155\040\124\145\153\156\157\154\157\152\151\154\145\162\151\040 +\166\145\040\110\151\172\155\145\164\154\145\162\151\040\101\056 +\305\236\056\061\046\060\044\006\003\125\004\013\014\035\105\055 +\124\165\147\162\141\040\123\145\162\164\151\146\151\153\141\163 +\171\157\156\040\115\145\162\153\145\172\151\061\050\060\046\006 +\003\125\004\003\014\037\105\055\124\165\147\162\141\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\010\152\150\076\234\121\233\313\123 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "T-TeleSec GlobalRoot Class 2" +# +# Issuer: CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Serial Number: 1 (0x1) +# Subject: CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Not Valid Before: Wed Oct 01 10:40:14 2008 +# Not Valid After : Sat Oct 01 23:59:59 2033 +# Fingerprint (MD5): 2B:9B:9E:E4:7B:6C:1F:00:72:1A:CC:C1:77:79:DF:6A +# Fingerprint (SHA1): 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9 +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 "T-TeleSec GlobalRoot Class 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163 +\164\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040 +\123\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060 +\035\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155 +\163\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045 +\060\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123 +\145\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154 +\141\163\163\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163 +\164\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040 +\123\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060 +\035\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155 +\163\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045 +\060\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123 +\145\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154 +\141\163\163\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\303\060\202\002\253\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163\164 +\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040\123 +\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060\035 +\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155\163 +\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045\060 +\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123\145 +\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154\141 +\163\163\040\062\060\036\027\015\060\070\061\060\060\061\061\060 +\064\060\061\064\132\027\015\063\063\061\060\060\061\062\063\065 +\071\065\071\132\060\201\202\061\013\060\011\006\003\125\004\006 +\023\002\104\105\061\053\060\051\006\003\125\004\012\014\042\124 +\055\123\171\163\164\145\155\163\040\105\156\164\145\162\160\162 +\151\163\145\040\123\145\162\166\151\143\145\163\040\107\155\142 +\110\061\037\060\035\006\003\125\004\013\014\026\124\055\123\171 +\163\164\145\155\163\040\124\162\165\163\164\040\103\145\156\164 +\145\162\061\045\060\043\006\003\125\004\003\014\034\124\055\124 +\145\154\145\123\145\143\040\107\154\157\142\141\154\122\157\157 +\164\040\103\154\141\163\163\040\062\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\252\137\332\033\137\350 +\163\221\345\332\134\364\242\346\107\345\363\150\125\140\005\035 +\002\244\263\233\131\363\036\212\257\064\255\374\015\302\331\110 +\031\356\151\217\311\040\374\041\252\007\031\355\260\134\254\145 +\307\137\355\002\174\173\174\055\033\326\272\271\200\302\030\202 +\026\204\372\146\260\010\306\124\043\201\344\315\271\111\077\366 +\117\156\067\110\050\070\017\305\276\347\150\160\375\071\227\115 +\322\307\230\221\120\252\304\104\263\043\175\071\107\351\122\142 +\326\022\223\136\267\061\226\102\005\373\166\247\036\243\365\302 +\374\351\172\305\154\251\161\117\352\313\170\274\140\257\307\336 +\364\331\313\276\176\063\245\156\224\203\360\064\372\041\253\352 +\216\162\240\077\244\336\060\133\357\206\115\152\225\133\103\104 +\250\020\025\034\345\001\127\305\230\361\346\006\050\221\252\040 +\305\267\123\046\121\103\262\013\021\225\130\341\300\017\166\331 +\300\215\174\201\363\162\160\236\157\376\032\216\331\137\065\306 +\262\157\064\174\276\110\117\342\132\071\327\330\235\170\236\237 +\206\076\003\136\031\213\104\242\325\307\002\003\001\000\001\243 +\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\277 +\131\040\066\000\171\240\240\042\153\214\325\362\141\322\270\054 +\313\202\112\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\001\001\000\061\003\242\141\013\037\164\350\162 +\066\306\155\371\115\236\372\042\250\341\201\126\317\315\273\237 +\352\253\221\031\070\257\252\174\025\115\363\266\243\215\245\364 +\216\366\104\251\247\350\041\225\255\076\000\142\026\210\360\002 +\272\374\141\043\346\063\233\060\172\153\066\142\173\255\004\043 +\204\130\145\342\333\053\212\347\045\123\067\142\123\137\274\332 +\001\142\051\242\246\047\161\346\072\042\176\301\157\035\225\160 +\040\112\007\064\337\352\377\025\200\345\272\327\172\330\133\165 +\174\005\172\051\107\176\100\250\061\023\167\315\100\073\264\121 +\107\172\056\021\343\107\021\336\235\146\320\213\325\124\146\372 +\203\125\352\174\302\051\211\033\351\157\263\316\342\005\204\311 +\057\076\170\205\142\156\311\137\301\170\143\164\130\300\110\030 +\014\231\071\353\244\314\032\265\171\132\215\025\234\330\024\015 +\366\172\007\127\307\042\203\005\055\074\233\045\046\075\030\263 +\251\103\174\310\310\253\144\217\016\243\277\234\033\235\060\333 +\332\320\031\056\252\074\361\373\063\200\166\344\315\255\031\117 +\005\047\216\023\241\156\302 +END + +# Trust for "T-TeleSec GlobalRoot Class 2" +# Issuer: CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Serial Number: 1 (0x1) +# Subject: CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O=T-Systems Enterprise Services GmbH,C=DE +# Not Valid Before: Wed Oct 01 10:40:14 2008 +# Not Valid After : Sat Oct 01 23:59:59 2033 +# Fingerprint (MD5): 2B:9B:9E:E4:7B:6C:1F:00:72:1A:CC:C1:77:79:DF:6A +# Fingerprint (SHA1): 59:0D:2D:7D:88:4F:40:2E:61:7E:A5:62:32:17:65:CF:17:D8:94:E9 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "T-TeleSec GlobalRoot Class 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\131\015\055\175\210\117\100\056\141\176\245\142\062\027\145\317 +\027\330\224\351 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\053\233\236\344\173\154\037\000\162\032\314\301\167\171\337\152 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\202\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\053\060\051\006\003\125\004\012\014\042\124\055\123\171\163 +\164\145\155\163\040\105\156\164\145\162\160\162\151\163\145\040 +\123\145\162\166\151\143\145\163\040\107\155\142\110\061\037\060 +\035\006\003\125\004\013\014\026\124\055\123\171\163\164\145\155 +\163\040\124\162\165\163\164\040\103\145\156\164\145\162\061\045 +\060\043\006\003\125\004\003\014\034\124\055\124\145\154\145\123 +\145\143\040\107\154\157\142\141\154\122\157\157\164\040\103\154 +\141\163\163\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Atos TrustedRoot 2011" +# +# Issuer: C=DE,O=Atos,CN=Atos TrustedRoot 2011 +# Serial Number:5c:33:cb:62:2c:5f:b3:32 +# Subject: C=DE,O=Atos,CN=Atos TrustedRoot 2011 +# Not Valid Before: Thu Jul 07 14:58:30 2011 +# Not Valid After : Tue Dec 31 23:59:59 2030 +# Fingerprint (MD5): AE:B9:C4:32:4B:AC:7F:5D:66:CC:77:94:BB:2A:77:56 +# Fingerprint (SHA1): 2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21 +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 "Atos TrustedRoot 2011" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\074\061\036\060\034\006\003\125\004\003\014\025\101\164\157 +\163\040\124\162\165\163\164\145\144\122\157\157\164\040\062\060 +\061\061\061\015\060\013\006\003\125\004\012\014\004\101\164\157 +\163\061\013\060\011\006\003\125\004\006\023\002\104\105 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\074\061\036\060\034\006\003\125\004\003\014\025\101\164\157 +\163\040\124\162\165\163\164\145\144\122\157\157\164\040\062\060 +\061\061\061\015\060\013\006\003\125\004\012\014\004\101\164\157 +\163\061\013\060\011\006\003\125\004\006\023\002\104\105 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\134\063\313\142\054\137\263\062 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\167\060\202\002\137\240\003\002\001\002\002\010\134 +\063\313\142\054\137\263\062\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\060\074\061\036\060\034\006\003\125\004 +\003\014\025\101\164\157\163\040\124\162\165\163\164\145\144\122 +\157\157\164\040\062\060\061\061\061\015\060\013\006\003\125\004 +\012\014\004\101\164\157\163\061\013\060\011\006\003\125\004\006 +\023\002\104\105\060\036\027\015\061\061\060\067\060\067\061\064 +\065\070\063\060\132\027\015\063\060\061\062\063\061\062\063\065 +\071\065\071\132\060\074\061\036\060\034\006\003\125\004\003\014 +\025\101\164\157\163\040\124\162\165\163\164\145\144\122\157\157 +\164\040\062\060\061\061\061\015\060\013\006\003\125\004\012\014 +\004\101\164\157\163\061\013\060\011\006\003\125\004\006\023\002 +\104\105\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\225\205\073\227\157\052\073\056\073\317\246\363\051 +\065\276\317\030\254\076\252\331\370\115\240\076\032\107\271\274 +\232\337\362\376\314\076\107\350\172\226\302\044\216\065\364\251 +\014\374\202\375\155\301\162\142\047\275\352\153\353\347\212\314 +\124\076\220\120\317\200\324\225\373\350\265\202\324\024\305\266 +\251\125\045\127\333\261\120\366\260\140\144\131\172\151\317\003 +\267\157\015\276\312\076\157\164\162\352\252\060\052\163\142\276 +\111\221\141\310\021\376\016\003\052\367\152\040\334\002\025\015 +\136\025\152\374\343\202\301\265\305\235\144\011\154\243\131\230 +\007\047\307\033\226\053\141\164\161\154\103\361\367\065\211\020 +\340\236\354\125\241\067\042\242\207\004\005\054\107\175\264\034 +\271\142\051\146\050\312\267\341\223\365\244\224\003\231\271\160 +\205\265\346\110\352\215\120\374\331\336\314\157\007\016\335\013 +\162\235\200\060\026\007\225\077\050\016\375\305\165\117\123\326 +\164\232\264\044\056\216\002\221\317\166\305\233\036\125\164\234 +\170\041\261\360\055\361\013\237\302\325\226\030\037\360\124\042 +\172\214\007\002\003\001\000\001\243\175\060\173\060\035\006\003 +\125\035\016\004\026\004\024\247\245\006\261\054\246\011\140\356 +\321\227\351\160\256\274\073\031\154\333\041\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\037\006\003 +\125\035\043\004\030\060\026\200\024\247\245\006\261\054\246\011 +\140\356\321\227\351\160\256\274\073\031\154\333\041\060\030\006 +\003\125\035\040\004\021\060\017\060\015\006\013\053\006\001\004 +\001\260\055\003\004\001\001\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\206\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\003\202\001\001\000\046\167\064\333\224 +\110\206\052\101\235\054\076\006\220\140\304\214\254\013\124\270 +\037\271\173\323\007\071\344\372\076\173\262\075\116\355\237\043 +\275\227\363\153\134\357\356\375\100\246\337\241\223\241\012\206 +\254\357\040\320\171\001\275\170\367\031\330\044\061\064\004\001 +\246\272\025\232\303\047\334\330\117\017\314\030\143\377\231\017 +\016\221\153\165\026\341\041\374\330\046\307\107\267\246\317\130 +\162\161\176\272\341\115\225\107\073\311\257\155\241\264\301\354 +\211\366\264\017\070\265\342\144\334\045\317\246\333\353\232\134 +\231\241\305\010\336\375\346\332\325\326\132\105\014\304\267\302 +\265\024\357\264\021\377\016\025\265\365\365\333\306\275\353\132 +\247\360\126\042\251\074\145\124\306\025\250\275\206\236\315\203 +\226\150\172\161\201\211\341\013\341\352\021\033\150\010\314\151 +\236\354\236\101\236\104\062\046\172\342\207\012\161\075\353\344 +\132\244\322\333\305\315\306\336\140\177\271\363\117\104\222\357 +\052\267\030\076\247\031\331\013\175\261\067\101\102\260\272\140 +\035\362\376\011\021\260\360\207\173\247\235 +END + +# Trust for "Atos TrustedRoot 2011" +# Issuer: C=DE,O=Atos,CN=Atos TrustedRoot 2011 +# Serial Number:5c:33:cb:62:2c:5f:b3:32 +# Subject: C=DE,O=Atos,CN=Atos TrustedRoot 2011 +# Not Valid Before: Thu Jul 07 14:58:30 2011 +# Not Valid After : Tue Dec 31 23:59:59 2030 +# Fingerprint (MD5): AE:B9:C4:32:4B:AC:7F:5D:66:CC:77:94:BB:2A:77:56 +# Fingerprint (SHA1): 2B:B1:F5:3E:55:0C:1D:C5:F1:D4:E6:B7:6A:46:4B:55:06:02:AC:21 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Atos TrustedRoot 2011" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\053\261\365\076\125\014\035\305\361\324\346\267\152\106\113\125 +\006\002\254\041 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\256\271\304\062\113\254\177\135\146\314\167\224\273\052\167\126 +END +CKA_ISSUER MULTILINE_OCTAL +\060\074\061\036\060\034\006\003\125\004\003\014\025\101\164\157 +\163\040\124\162\165\163\164\145\144\122\157\157\164\040\062\060 +\061\061\061\015\060\013\006\003\125\004\012\014\004\101\164\157 +\163\061\013\060\011\006\003\125\004\006\023\002\104\105 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\010\134\063\313\142\054\137\263\062 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 1 G3" +# +# Issuer: CN=QuoVadis Root CA 1 G3,O=QuoVadis Limited,C=BM +# Serial Number:78:58:5f:2e:ad:2c:19:4b:e3:37:07:35:34:13:28:b5:96:d4:65:93 +# Subject: CN=QuoVadis Root CA 1 G3,O=QuoVadis Limited,C=BM +# Not Valid Before: Thu Jan 12 17:27:44 2012 +# Not Valid After : Sun Jan 12 17:27:44 2042 +# Fingerprint (SHA-256): 8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74 +# Fingerprint (SHA1): 1B:8E:EA:57:96:29:1A:C9:39:EA:B8:0A:81:1A:73:73:C0:93:79:67 +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 1 G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\061\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\061\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\170\130\137\056\255\054\031\113\343\067\007\065\064\023 +\050\265\226\324\145\223 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\140\060\202\003\110\240\003\002\001\002\002\024\170 +\130\137\056\255\054\031\113\343\067\007\065\064\023\050\265\226 +\324\145\223\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\110\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\036\060\034 +\006\003\125\004\003\023\025\121\165\157\126\141\144\151\163\040 +\122\157\157\164\040\103\101\040\061\040\107\063\060\036\027\015 +\061\062\060\061\061\062\061\067\062\067\064\064\132\027\015\064 +\062\060\061\061\062\061\067\062\067\064\064\132\060\110\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\036\060\034\006\003\125\004\003\023 +\025\121\165\157\126\141\144\151\163\040\122\157\157\164\040\103 +\101\040\061\040\107\063\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\240\276\120\020\216\351\362\154\100 +\264\004\234\205\271\061\312\334\055\344\021\251\004\074\033\125 +\301\347\130\060\035\044\264\303\357\205\336\214\054\341\301\075 +\337\202\346\117\255\107\207\154\354\133\111\301\112\325\273\217 +\354\207\254\177\202\232\206\354\075\003\231\122\001\322\065\236 +\254\332\360\123\311\146\074\324\254\002\001\332\044\323\073\250 +\002\106\257\244\034\343\370\163\130\166\267\366\016\220\015\265 +\360\317\314\372\371\306\114\345\303\206\060\012\215\027\176\065 +\353\305\337\273\016\234\300\215\207\343\210\070\205\147\372\076 +\307\253\340\023\234\005\030\230\317\223\365\261\222\264\374\043 +\323\317\325\304\047\111\340\236\074\233\010\243\213\135\052\041 +\340\374\071\252\123\332\175\176\317\032\011\123\274\135\005\004 +\317\241\112\217\213\166\202\015\241\370\322\307\024\167\133\220 +\066\007\201\233\076\006\372\122\136\143\305\246\000\376\245\351 +\122\033\122\265\222\071\162\003\011\142\275\260\140\026\156\246 +\335\045\302\003\146\335\363\004\321\100\342\116\213\206\364\157 +\345\203\240\047\204\136\004\301\365\220\275\060\075\304\357\250 +\151\274\070\233\244\244\226\321\142\332\151\300\001\226\256\313 +\304\121\064\352\014\252\377\041\216\131\217\112\134\344\141\232 +\247\322\351\052\170\215\121\075\072\025\356\242\131\216\251\134 +\336\305\371\220\042\345\210\105\161\335\221\231\154\172\237\075 +\075\230\174\136\366\276\026\150\240\136\256\013\043\374\132\017 +\252\042\166\055\311\241\020\035\344\323\104\043\220\210\237\306 +\052\346\327\365\232\263\130\036\057\060\211\010\033\124\242\265 +\230\043\354\010\167\034\225\135\141\321\313\211\234\137\242\112 +\221\232\357\041\252\111\026\010\250\275\141\050\061\311\164\255 +\205\366\331\305\261\213\321\345\020\062\115\137\213\040\072\074 +\111\037\063\205\131\015\333\313\011\165\103\151\163\373\153\161 +\175\360\337\304\114\175\306\243\056\310\225\171\313\163\242\216 +\116\115\044\373\136\344\004\276\162\033\246\047\055\111\132\231 +\172\327\134\011\040\267\177\224\271\117\361\015\034\136\210\102 +\033\021\267\347\221\333\236\154\364\152\337\214\006\230\003\255 +\314\050\357\245\107\363\123\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\035\006\003\125\035\016\004\026\004\024\243\227\326\363 +\136\242\020\341\253\105\237\074\027\144\074\356\001\160\234\314 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003 +\202\002\001\000\030\372\133\165\374\076\172\307\137\167\307\312 +\337\317\137\303\022\304\100\135\324\062\252\270\152\327\325\025 +\025\106\230\043\245\346\220\133\030\231\114\343\255\102\243\202 +\061\066\210\315\351\373\304\004\226\110\213\001\307\215\001\317 +\133\063\006\226\106\146\164\035\117\355\301\266\271\264\015\141 +\314\143\176\327\056\167\214\226\034\052\043\150\153\205\127\166 +\160\063\023\376\341\117\246\043\167\030\372\032\214\350\275\145 +\311\317\077\364\311\027\334\353\307\274\300\004\056\055\106\057 +\151\146\303\033\217\376\354\076\323\312\224\277\166\012\045\015 +\251\173\002\034\251\320\073\137\013\300\201\072\075\144\341\277 +\247\055\116\275\115\304\330\051\306\042\030\320\305\254\162\002 +\202\077\252\072\242\072\042\227\061\335\010\143\303\165\024\271 +\140\050\055\133\150\340\026\251\146\202\043\121\365\353\123\330 +\061\233\173\351\267\235\113\353\210\026\317\371\135\070\212\111 +\060\217\355\361\353\031\364\167\032\061\030\115\147\124\154\057 +\157\145\371\333\075\354\041\354\136\364\364\213\312\140\145\124 +\321\161\144\364\371\246\243\201\063\066\063\161\360\244\170\137 +\116\255\203\041\336\064\111\215\350\131\254\235\362\166\132\066 +\362\023\364\257\340\011\307\141\052\154\367\340\235\256\273\206 +\112\050\157\056\356\264\171\315\220\063\303\263\166\372\365\360 +\154\235\001\220\372\236\220\366\234\162\317\107\332\303\037\344 +\065\040\123\362\124\321\337\141\203\246\002\342\045\070\336\205 +\062\055\136\163\220\122\135\102\304\316\075\113\341\371\031\204 +\035\325\242\120\314\101\373\101\024\303\275\326\311\132\243\143 +\146\002\200\275\005\072\073\107\234\354\000\046\114\365\210\121 +\277\250\043\177\030\007\260\013\355\213\046\241\144\323\141\112 +\353\134\237\336\263\257\147\003\263\037\335\155\135\151\150\151 +\253\136\072\354\174\151\274\307\073\205\116\236\025\271\264\025 +\117\303\225\172\130\327\311\154\351\154\271\363\051\143\136\264 +\054\360\055\075\355\132\145\340\251\133\100\302\110\231\201\155 +\236\037\006\052\074\022\264\213\017\233\242\044\360\246\215\326 +\172\340\113\266\144\226\143\225\204\302\112\315\034\056\044\207 +\063\140\345\303 +END + +# Trust for "QuoVadis Root CA 1 G3" +# Issuer: CN=QuoVadis Root CA 1 G3,O=QuoVadis Limited,C=BM +# Serial Number:78:58:5f:2e:ad:2c:19:4b:e3:37:07:35:34:13:28:b5:96:d4:65:93 +# Subject: CN=QuoVadis Root CA 1 G3,O=QuoVadis Limited,C=BM +# Not Valid Before: Thu Jan 12 17:27:44 2012 +# Not Valid After : Sun Jan 12 17:27:44 2042 +# Fingerprint (SHA-256): 8A:86:6F:D1:B2:76:B5:7E:57:8E:92:1C:65:82:8A:2B:ED:58:E9:F2:F2:88:05:41:34:B7:F1:F4:BF:C9:CC:74 +# Fingerprint (SHA1): 1B:8E:EA:57:96:29:1A:C9:39:EA:B8:0A:81:1A:73:73:C0:93:79:67 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 1 G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\033\216\352\127\226\051\032\311\071\352\270\012\201\032\163\163 +\300\223\171\147 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\244\274\133\077\376\067\232\372\144\360\342\372\005\075\013\253 +END +CKA_ISSUER MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\061\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\170\130\137\056\255\054\031\113\343\067\007\065\064\023 +\050\265\226\324\145\223 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 2 G3" +# +# Issuer: CN=QuoVadis Root CA 2 G3,O=QuoVadis Limited,C=BM +# Serial Number:44:57:34:24:5b:81:89:9b:35:f2:ce:b8:2b:3b:5b:a7:26:f0:75:28 +# Subject: CN=QuoVadis Root CA 2 G3,O=QuoVadis Limited,C=BM +# Not Valid Before: Thu Jan 12 18:59:32 2012 +# Not Valid After : Sun Jan 12 18:59:32 2042 +# Fingerprint (SHA-256): 8F:E4:FB:0A:F9:3A:4D:0D:67:DB:0B:EB:B2:3E:37:C7:1B:F3:25:DC:BC:DD:24:0E:A0:4D:AF:58:B4:7E:18:40 +# Fingerprint (SHA1): 09:3C:61:F3:8B:8B:DC:7D:55:DF:75:38:02:05:00:E1:25:F5:C8:36 +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 2 G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\104\127\064\044\133\201\211\233\065\362\316\270\053\073 +\133\247\046\360\165\050 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\140\060\202\003\110\240\003\002\001\002\002\024\104 +\127\064\044\133\201\211\233\065\362\316\270\053\073\133\247\046 +\360\165\050\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\110\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\036\060\034 +\006\003\125\004\003\023\025\121\165\157\126\141\144\151\163\040 +\122\157\157\164\040\103\101\040\062\040\107\063\060\036\027\015 +\061\062\060\061\061\062\061\070\065\071\063\062\132\027\015\064 +\062\060\061\061\062\061\070\065\071\063\062\132\060\110\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\036\060\034\006\003\125\004\003\023 +\025\121\165\157\126\141\144\151\163\040\122\157\157\164\040\103 +\101\040\062\040\107\063\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\241\256\045\262\001\030\334\127\210 +\077\106\353\371\257\342\353\043\161\342\232\321\141\146\041\137 +\252\257\047\121\345\156\033\026\324\055\175\120\260\123\167\275 +\170\072\140\342\144\002\233\174\206\233\326\032\216\255\377\037 +\025\177\325\225\036\022\313\346\024\204\004\301\337\066\263\026 +\237\212\343\311\333\230\064\316\330\063\027\050\106\374\247\311 +\360\322\264\325\115\011\162\111\371\362\207\343\251\332\175\241 +\175\153\262\072\045\251\155\122\104\254\370\276\156\373\334\246 +\163\221\220\141\246\003\024\040\362\347\207\243\210\255\255\240 +\214\377\246\013\045\122\045\347\026\001\325\313\270\065\201\014 +\243\073\360\341\341\374\132\135\316\200\161\155\370\111\253\076 +\073\272\270\327\200\001\373\245\353\133\263\305\136\140\052\061 +\240\257\067\350\040\072\237\250\062\054\014\314\011\035\323\236 +\216\135\274\114\230\356\305\032\150\173\354\123\246\351\024\065 +\243\337\315\200\237\014\110\373\034\364\361\277\112\270\372\325 +\214\161\112\307\037\255\376\101\232\263\203\135\362\204\126\357 +\245\127\103\316\051\255\214\253\125\277\304\373\133\001\335\043 +\041\241\130\000\216\303\320\152\023\355\023\343\022\053\200\334 +\147\346\225\262\315\036\042\156\052\370\101\324\362\312\024\007 +\215\212\125\022\306\151\365\270\206\150\057\123\136\260\322\252 +\041\301\230\346\060\343\147\125\307\233\156\254\031\250\125\246 +\105\006\320\043\072\333\353\145\135\052\021\021\360\073\117\312 +\155\364\064\304\161\344\377\000\132\366\134\256\043\140\205\163 +\361\344\020\261\045\256\325\222\273\023\301\014\340\071\332\264 +\071\127\265\253\065\252\162\041\073\203\065\347\061\337\172\041 +\156\270\062\010\175\035\062\221\025\112\142\162\317\343\167\241 +\274\325\021\033\166\001\147\010\340\101\013\303\353\025\156\370 +\244\031\331\242\253\257\342\047\122\126\053\002\212\054\024\044 +\371\277\102\002\277\046\310\306\217\340\156\070\175\123\055\345 +\355\230\263\225\143\150\177\371\065\364\337\210\305\140\065\222 +\300\174\151\034\141\225\026\320\353\336\013\257\076\004\020\105 +\145\130\120\070\257\110\362\131\266\026\362\074\015\220\002\306 +\160\056\001\255\074\025\327\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\035\006\003\125\035\016\004\026\004\024\355\347\157\166 +\132\277\140\354\111\133\306\245\167\273\162\026\161\233\304\075 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003 +\202\002\001\000\221\337\200\077\103\011\176\161\302\367\353\263 +\210\217\341\121\262\274\075\165\371\050\135\310\274\231\233\173 +\135\252\345\312\341\012\367\350\262\323\237\335\147\061\176\272 +\001\252\307\152\101\073\220\324\010\134\262\140\152\220\360\310 +\316\003\142\371\213\355\373\156\052\334\006\115\074\051\017\211 +\026\212\130\114\110\017\350\204\141\352\074\162\246\167\344\102 +\256\210\243\103\130\171\176\256\312\245\123\015\251\075\160\275 +\040\031\141\244\154\070\374\103\062\341\301\107\377\370\354\361 +\021\042\062\226\234\302\366\133\151\226\173\040\014\103\101\232 +\133\366\131\031\210\336\125\210\067\121\013\170\134\012\036\243 +\102\375\307\235\210\017\300\362\170\002\044\124\223\257\211\207 +\210\311\112\200\035\352\320\156\076\141\056\066\273\065\016\047 +\226\375\146\064\073\141\162\163\361\026\134\107\006\124\111\000 +\172\130\022\260\012\357\205\375\261\270\063\165\152\223\034\022 +\346\140\136\157\035\177\311\037\043\313\204\141\237\036\202\104 +\371\137\255\142\125\044\232\122\230\355\121\347\241\176\227\072 +\346\057\037\021\332\123\200\054\205\236\253\065\020\333\042\137 +\152\305\136\227\123\362\062\002\011\060\243\130\360\015\001\325 +\162\306\261\174\151\173\303\365\066\105\314\141\156\136\114\224 +\305\136\256\350\016\136\213\277\367\315\340\355\241\016\033\063 +\356\124\030\376\017\276\357\176\204\153\103\343\160\230\333\135 +\165\262\015\131\007\205\025\043\071\326\361\337\251\046\017\326 +\110\307\263\246\042\365\063\067\132\225\107\237\173\272\030\025 +\157\377\326\024\144\203\111\322\012\147\041\333\017\065\143\140 +\050\042\343\261\225\203\315\205\246\335\057\017\347\147\122\156 +\273\057\205\174\365\112\163\347\305\076\300\275\041\022\005\077 +\374\267\003\111\002\133\310\045\346\342\124\070\365\171\207\214 +\035\123\262\116\205\173\006\070\307\054\370\370\260\162\215\045 +\345\167\122\364\003\034\110\246\120\137\210\040\060\156\362\202 +\103\253\075\227\204\347\123\373\041\301\117\017\042\232\206\270 +\131\052\366\107\075\031\210\055\350\205\341\236\354\205\010\152 +\261\154\064\311\035\354\110\053\073\170\355\146\304\216\171\151 +\203\336\177\214 +END + +# Trust for "QuoVadis Root CA 2 G3" +# Issuer: CN=QuoVadis Root CA 2 G3,O=QuoVadis Limited,C=BM +# Serial Number:44:57:34:24:5b:81:89:9b:35:f2:ce:b8:2b:3b:5b:a7:26:f0:75:28 +# Subject: CN=QuoVadis Root CA 2 G3,O=QuoVadis Limited,C=BM +# Not Valid Before: Thu Jan 12 18:59:32 2012 +# Not Valid After : Sun Jan 12 18:59:32 2042 +# Fingerprint (SHA-256): 8F:E4:FB:0A:F9:3A:4D:0D:67:DB:0B:EB:B2:3E:37:C7:1B:F3:25:DC:BC:DD:24:0E:A0:4D:AF:58:B4:7E:18:40 +# Fingerprint (SHA1): 09:3C:61:F3:8B:8B:DC:7D:55:DF:75:38:02:05:00:E1:25:F5:C8:36 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 2 G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\011\074\141\363\213\213\334\175\125\337\165\070\002\005\000\341 +\045\365\310\066 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\257\014\206\156\277\100\055\177\013\076\022\120\272\022\075\006 +END +CKA_ISSUER MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\062\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\104\127\064\044\133\201\211\233\065\362\316\270\053\073 +\133\247\046\360\165\050 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "QuoVadis Root CA 3 G3" +# +# Issuer: CN=QuoVadis Root CA 3 G3,O=QuoVadis Limited,C=BM +# Serial Number:2e:f5:9b:02:28:a7:db:7a:ff:d5:a3:a9:ee:bd:03:a0:cf:12:6a:1d +# Subject: CN=QuoVadis Root CA 3 G3,O=QuoVadis Limited,C=BM +# Not Valid Before: Thu Jan 12 20:26:32 2012 +# Not Valid After : Sun Jan 12 20:26:32 2042 +# Fingerprint (SHA-256): 88:EF:81:DE:20:2E:B0:18:45:2E:43:F8:64:72:5C:EA:5F:BD:1F:C2:D9:D2:05:73:07:09:C5:D8:B8:69:0F:46 +# Fingerprint (SHA1): 48:12:BD:92:3C:A8:C4:39:06:E7:30:6D:27:96:E6:A4:CF:22:2E:7D +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 3 G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\056\365\233\002\050\247\333\172\377\325\243\251\356\275 +\003\240\317\022\152\035 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\140\060\202\003\110\240\003\002\001\002\002\024\056 +\365\233\002\050\247\333\172\377\325\243\251\356\275\003\240\317 +\022\152\035\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\110\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\036\060\034 +\006\003\125\004\003\023\025\121\165\157\126\141\144\151\163\040 +\122\157\157\164\040\103\101\040\063\040\107\063\060\036\027\015 +\061\062\060\061\061\062\062\060\062\066\063\062\132\027\015\064 +\062\060\061\061\062\062\060\062\066\063\062\132\060\110\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\036\060\034\006\003\125\004\003\023 +\025\121\165\157\126\141\144\151\163\040\122\157\157\164\040\103 +\101\040\063\040\107\063\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\263\313\016\020\147\216\352\024\227 +\247\062\052\012\126\066\177\150\114\307\263\157\072\043\024\221 +\377\031\177\245\312\254\356\263\166\235\172\351\213\033\253\153 +\061\333\372\013\123\114\257\305\245\032\171\074\212\114\377\254 +\337\045\336\116\331\202\062\013\104\336\312\333\214\254\243\156 +\026\203\073\246\144\113\062\211\373\026\026\070\176\353\103\342 +\323\164\112\302\142\012\163\012\335\111\263\127\322\260\012\205 +\235\161\074\336\243\313\300\062\363\001\071\040\103\033\065\321 +\123\263\261\356\305\223\151\202\076\026\265\050\106\241\336\352 +\211\011\355\103\270\005\106\212\206\365\131\107\276\033\157\001 +\041\020\271\375\251\322\050\312\020\071\011\312\023\066\317\234 +\255\255\100\164\171\053\002\077\064\377\372\040\151\175\323\356 +\141\365\272\263\347\060\320\067\043\206\162\141\105\051\110\131 +\150\157\167\246\056\201\276\007\115\157\257\316\304\105\023\221 +\024\160\006\217\037\237\370\207\151\261\016\357\303\211\031\353 +\352\034\141\374\172\154\212\334\326\003\013\236\046\272\022\335 +\324\124\071\253\046\243\063\352\165\201\332\055\315\017\117\344 +\003\321\357\025\227\033\153\220\305\002\220\223\146\002\041\261 +\107\336\213\232\112\200\271\125\217\265\242\057\300\326\063\147 +\332\176\304\247\264\004\104\353\107\373\346\130\271\367\014\360 +\173\053\261\300\160\051\303\100\142\055\073\110\151\334\043\074 +\110\353\173\011\171\251\155\332\250\060\230\317\200\162\003\210 +\246\133\106\256\162\171\174\010\003\041\145\256\267\341\034\245 +\261\052\242\061\336\146\004\367\300\164\350\161\336\377\075\131 +\314\226\046\022\213\205\225\127\032\253\153\165\013\104\075\021 +\050\074\173\141\267\342\217\147\117\345\354\074\114\140\200\151 +\127\070\036\001\133\215\125\350\307\337\300\314\167\043\064\111 +\165\174\366\230\021\353\055\336\355\101\056\024\005\002\177\340 +\376\040\353\065\347\021\254\042\316\127\075\336\311\060\155\020 +\003\205\315\361\377\214\026\265\301\262\076\210\154\140\177\220 +\117\225\367\366\055\255\001\071\007\004\372\165\200\175\277\111 +\120\355\357\311\304\174\034\353\200\176\333\266\320\335\023\376 +\311\323\234\327\262\227\251\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\035\006\003\125\035\016\004\026\004\024\306\027\320\274 +\250\352\002\103\362\033\006\231\135\053\220\040\271\327\234\344 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003 +\202\002\001\000\064\141\331\126\265\022\207\125\115\335\243\065 +\061\106\273\244\007\162\274\137\141\142\350\245\373\013\067\261 +\074\266\263\372\051\235\177\002\365\244\311\250\223\267\172\161 +\050\151\217\163\341\122\220\332\325\276\072\345\267\166\152\126 +\200\041\337\135\346\351\072\236\345\076\366\242\151\307\052\012 +\260\030\107\334\040\160\175\122\243\076\131\174\301\272\311\310 +\025\100\141\312\162\326\160\254\322\267\360\034\344\206\051\360 +\316\357\150\143\320\265\040\212\025\141\232\176\206\230\264\311 +\302\166\373\314\272\060\026\314\243\141\306\164\023\345\153\357 +\243\025\352\003\376\023\213\144\344\323\301\322\350\204\373\111 +\321\020\115\171\146\353\252\375\364\215\061\036\160\024\255\334 +\336\147\023\114\201\025\141\274\267\331\221\167\161\031\201\140 +\273\360\130\245\265\234\013\367\217\042\125\047\300\113\001\155 +\073\231\015\324\035\233\143\147\057\320\356\015\312\146\274\224 +\117\246\255\355\374\356\143\254\127\077\145\045\317\262\206\217 +\320\010\377\270\166\024\156\336\345\047\354\253\170\265\123\271 +\266\077\350\040\371\322\250\276\141\106\312\207\214\204\363\371 +\361\240\150\233\042\036\201\046\233\020\004\221\161\300\006\037 +\334\240\323\271\126\247\343\230\055\177\203\235\337\214\053\234 +\062\216\062\224\360\001\074\042\052\237\103\302\056\303\230\071 +\007\070\173\374\136\000\102\037\363\062\046\171\203\204\366\345 +\360\301\121\022\300\013\036\004\043\014\124\245\114\057\111\305 +\112\321\266\156\140\015\153\374\153\213\205\044\144\267\211\016 +\253\045\107\133\074\317\176\111\275\307\351\012\306\332\367\176 +\016\027\010\323\110\227\320\161\222\360\017\071\076\064\152\034 +\175\330\362\042\256\273\151\364\063\264\246\110\125\321\017\016 +\046\350\354\266\013\055\247\205\065\315\375\131\310\237\321\315 +\076\132\051\064\271\075\204\316\261\145\324\131\221\221\126\165 +\041\301\167\236\371\172\341\140\235\323\255\004\030\364\174\353 +\136\223\217\123\112\042\051\370\110\053\076\115\206\254\133\177 +\313\006\231\131\140\330\130\145\225\215\104\321\367\177\176\047 +\177\175\256\200\365\007\114\266\076\234\161\124\231\004\113\375 +\130\371\230\364 +END + +# Trust for "QuoVadis Root CA 3 G3" +# Issuer: CN=QuoVadis Root CA 3 G3,O=QuoVadis Limited,C=BM +# Serial Number:2e:f5:9b:02:28:a7:db:7a:ff:d5:a3:a9:ee:bd:03:a0:cf:12:6a:1d +# Subject: CN=QuoVadis Root CA 3 G3,O=QuoVadis Limited,C=BM +# Not Valid Before: Thu Jan 12 20:26:32 2012 +# Not Valid After : Sun Jan 12 20:26:32 2042 +# Fingerprint (SHA-256): 88:EF:81:DE:20:2E:B0:18:45:2E:43:F8:64:72:5C:EA:5F:BD:1F:C2:D9:D2:05:73:07:09:C5:D8:B8:69:0F:46 +# Fingerprint (SHA1): 48:12:BD:92:3C:A8:C4:39:06:E7:30:6D:27:96:E6:A4:CF:22:2E:7D +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 3 G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\110\022\275\222\074\250\304\071\006\347\060\155\047\226\346\244 +\317\042\056\175 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\337\175\271\255\124\157\150\241\337\211\127\003\227\103\260\327 +END +CKA_ISSUER MULTILINE_OCTAL +\060\110\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\036\060\034\006\003 +\125\004\003\023\025\121\165\157\126\141\144\151\163\040\122\157 +\157\164\040\103\101\040\063\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\056\365\233\002\050\247\333\172\377\325\243\251\356\275 +\003\240\317\022\152\035 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Assured ID Root G2" +# +# Issuer: CN=DigiCert Assured ID Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:0b:93:1c:3a:d6:39:67:ea:67:23:bf:c3:af:9a:f4:4b +# Subject: CN=DigiCert Assured ID Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 7D:05:EB:B6:82:33:9F:8C:94:51:EE:09:4E:EB:FE:FA:79:53:A1:14:ED:B2:F4:49:49:45:2F:AB:7D:2F:C1:85 +# Fingerprint (SHA1): A1:4B:48:D9:43:EE:0A:0E:40:90:4F:3C:E0:A4:C0:91:93:51:5D:3F +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 "DigiCert Assured ID Root G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\013\223\034\072\326\071\147\352\147\043\277\303\257\232 +\364\113 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\226\060\202\002\176\240\003\002\001\002\002\020\013 +\223\034\072\326\071\147\352\147\043\277\303\257\232\364\113\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\145 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\044\060\042\006\003\125\004\003\023\033\104\151\147\151\103\145 +\162\164\040\101\163\163\165\162\145\144\040\111\104\040\122\157 +\157\164\040\107\062\060\036\027\015\061\063\060\070\060\061\061 +\062\060\060\060\060\132\027\015\063\070\060\061\061\065\061\062 +\060\060\060\060\132\060\145\061\013\060\011\006\003\125\004\006 +\023\002\125\123\061\025\060\023\006\003\125\004\012\023\014\104 +\151\147\151\103\145\162\164\040\111\156\143\061\031\060\027\006 +\003\125\004\013\023\020\167\167\167\056\144\151\147\151\143\145 +\162\164\056\143\157\155\061\044\060\042\006\003\125\004\003\023 +\033\104\151\147\151\103\145\162\164\040\101\163\163\165\162\145 +\144\040\111\104\040\122\157\157\164\040\107\062\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\331\347\050 +\057\122\077\066\162\111\210\223\064\363\370\152\036\061\124\200 +\237\255\124\101\265\107\337\226\250\324\257\200\055\271\012\317 +\165\375\211\245\175\044\372\343\042\014\053\274\225\027\013\063 +\277\031\115\101\006\220\000\275\014\115\020\376\007\265\347\034 +\156\042\125\061\145\227\275\323\027\322\036\142\363\333\352\154 +\120\214\077\204\014\226\317\267\313\003\340\312\155\241\024\114 +\033\211\335\355\000\260\122\174\257\221\154\261\070\023\321\351 +\022\010\300\000\260\034\053\021\332\167\160\066\233\256\316\171 +\207\334\202\160\346\011\164\160\125\151\257\243\150\237\277\335 +\266\171\263\362\235\160\051\125\364\253\377\225\141\363\311\100 +\157\035\321\276\223\273\323\210\052\273\235\277\162\132\126\161 +\073\077\324\363\321\012\376\050\357\243\356\331\231\257\003\323 +\217\140\267\362\222\241\261\275\211\211\037\060\315\303\246\056 +\142\063\256\026\002\167\104\132\347\201\012\074\247\104\056\171 +\270\077\004\274\134\240\207\341\033\257\121\216\315\354\054\372 +\370\376\155\360\072\174\252\213\344\147\225\061\215\002\003\001 +\000\001\243\102\060\100\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\206\060\035\006\003\125\035\016\004\026 +\004\024\316\303\112\271\231\125\362\270\333\140\277\251\176\275 +\126\265\227\066\247\326\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\003\202\001\001\000\312\245\125\214\343\310 +\101\156\151\047\247\165\021\357\074\206\066\157\322\235\306\170 +\070\035\151\226\242\222\151\056\070\154\233\175\004\324\211\245 +\261\061\067\212\311\041\314\253\154\315\213\034\232\326\277\110 +\322\062\146\301\212\300\363\057\072\357\300\343\324\221\206\321 +\120\343\003\333\163\167\157\112\071\123\355\336\046\307\265\175 +\257\053\102\321\165\142\343\112\053\002\307\120\113\340\151\342 +\226\154\016\104\146\020\104\217\255\005\353\370\171\254\246\033 +\350\067\064\235\123\311\141\252\242\122\257\112\160\026\206\302 +\072\310\261\023\160\066\330\317\356\364\012\064\325\133\114\375 +\007\234\242\272\331\001\162\134\363\115\301\335\016\261\034\015 +\304\143\276\255\364\024\373\211\354\242\101\016\114\314\310\127 +\100\320\156\003\252\315\014\216\211\231\231\154\360\074\060\257 +\070\337\157\274\243\276\051\040\047\253\164\377\023\042\170\336 +\227\122\125\036\203\265\124\040\003\356\256\300\117\126\336\067 +\314\303\177\252\004\047\273\323\167\270\142\333\027\174\234\050 +\042\023\163\154\317\046\365\212\051\347 +END + +# Trust for "DigiCert Assured ID Root G2" +# Issuer: CN=DigiCert Assured ID Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:0b:93:1c:3a:d6:39:67:ea:67:23:bf:c3:af:9a:f4:4b +# Subject: CN=DigiCert Assured ID Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 7D:05:EB:B6:82:33:9F:8C:94:51:EE:09:4E:EB:FE:FA:79:53:A1:14:ED:B2:F4:49:49:45:2F:AB:7D:2F:C1:85 +# Fingerprint (SHA1): A1:4B:48:D9:43:EE:0A:0E:40:90:4F:3C:E0:A4:C0:91:93:51:5D:3F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Assured ID Root G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\241\113\110\331\103\356\012\016\100\220\117\074\340\244\300\221 +\223\121\135\077 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\222\070\271\370\143\044\202\145\054\127\063\346\376\201\217\235 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\013\223\034\072\326\071\147\352\147\043\277\303\257\232 +\364\113 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Assured ID Root G3" +# +# Issuer: CN=DigiCert Assured ID Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:0b:a1:5a:fa:1d:df:a0:b5:49:44:af:cd:24:a0:6c:ec +# Subject: CN=DigiCert Assured ID Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2 +# Fingerprint (SHA1): F5:17:A2:4F:9A:48:C6:C9:F8:A2:00:26:9F:DC:0F:48:2C:AB:30:89 +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 "DigiCert Assured ID Root G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\013\241\132\372\035\337\240\265\111\104\257\315\044\240 +\154\354 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\106\060\202\001\315\240\003\002\001\002\002\020\013 +\241\132\372\035\337\240\265\111\104\257\315\044\240\154\354\060 +\012\006\010\052\206\110\316\075\004\003\003\060\145\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006\003 +\125\004\012\023\014\104\151\147\151\103\145\162\164\040\111\156 +\143\061\031\060\027\006\003\125\004\013\023\020\167\167\167\056 +\144\151\147\151\143\145\162\164\056\143\157\155\061\044\060\042 +\006\003\125\004\003\023\033\104\151\147\151\103\145\162\164\040 +\101\163\163\165\162\145\144\040\111\104\040\122\157\157\164\040 +\107\063\060\036\027\015\061\063\060\070\060\061\061\062\060\060 +\060\060\132\027\015\063\070\060\061\061\065\061\062\060\060\060 +\060\132\060\145\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\025\060\023\006\003\125\004\012\023\014\104\151\147\151 +\103\145\162\164\040\111\156\143\061\031\060\027\006\003\125\004 +\013\023\020\167\167\167\056\144\151\147\151\143\145\162\164\056 +\143\157\155\061\044\060\042\006\003\125\004\003\023\033\104\151 +\147\151\103\145\162\164\040\101\163\163\165\162\145\144\040\111 +\104\040\122\157\157\164\040\107\063\060\166\060\020\006\007\052 +\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 +\004\031\347\274\254\104\145\355\315\270\077\130\373\215\261\127 +\251\104\055\005\025\362\357\013\377\020\164\237\265\142\122\137 +\146\176\037\345\334\033\105\171\013\314\306\123\012\235\215\135 +\002\331\251\131\336\002\132\366\225\052\016\215\070\112\212\111 +\306\274\306\003\070\007\137\125\332\176\011\156\342\177\136\320 +\105\040\017\131\166\020\326\240\044\360\055\336\066\362\154\051 +\071\243\102\060\100\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\206\060\035\006\003\125\035\016\004\026\004 +\024\313\320\275\251\341\230\005\121\241\115\067\242\203\171\316 +\215\035\052\344\204\060\012\006\010\052\206\110\316\075\004\003 +\003\003\147\000\060\144\002\060\045\244\201\105\002\153\022\113 +\165\164\117\310\043\343\160\362\165\162\336\174\211\360\317\221 +\162\141\236\136\020\222\131\126\271\203\307\020\347\070\351\130 +\046\066\175\325\344\064\206\071\002\060\174\066\123\360\060\345 +\142\143\072\231\342\266\243\073\233\064\372\036\332\020\222\161 +\136\221\023\247\335\244\156\222\314\062\326\365\041\146\307\057 +\352\226\143\152\145\105\222\225\001\264 +END + +# Trust for "DigiCert Assured ID Root G3" +# Issuer: CN=DigiCert Assured ID Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:0b:a1:5a:fa:1d:df:a0:b5:49:44:af:cd:24:a0:6c:ec +# Subject: CN=DigiCert Assured ID Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 7E:37:CB:8B:4C:47:09:0C:AB:36:55:1B:A6:F4:5D:B8:40:68:0F:BA:16:6A:95:2D:B1:00:71:7F:43:05:3F:C2 +# Fingerprint (SHA1): F5:17:A2:4F:9A:48:C6:C9:F8:A2:00:26:9F:DC:0F:48:2C:AB:30:89 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Assured ID Root G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\365\027\242\117\232\110\306\311\370\242\000\046\237\334\017\110 +\054\253\060\211 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\174\177\145\061\014\201\337\215\272\076\231\342\134\255\156\373 +END +CKA_ISSUER MULTILINE_OCTAL +\060\145\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\044\060\042\006\003\125\004\003\023\033\104\151\147\151 +\103\145\162\164\040\101\163\163\165\162\145\144\040\111\104\040 +\122\157\157\164\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\013\241\132\372\035\337\240\265\111\104\257\315\044\240 +\154\354 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Global Root G2" +# +# Issuer: CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:03:3a:f1:e6:a7:11:a9:a0:bb:28:64:b1:1d:09:fa:e5 +# Subject: CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F +# Fingerprint (SHA1): DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4 +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 "DigiCert Global Root G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\003\072\361\346\247\021\251\240\273\050\144\261\035\011 +\372\345 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\216\060\202\002\166\240\003\002\001\002\002\020\003 +\072\361\346\247\021\251\240\273\050\144\261\035\011\372\345\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\141 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\040\060\036\006\003\125\004\003\023\027\104\151\147\151\103\145 +\162\164\040\107\154\157\142\141\154\040\122\157\157\164\040\107 +\062\060\036\027\015\061\063\060\070\060\061\061\062\060\060\060 +\060\132\027\015\063\070\060\061\061\065\061\062\060\060\060\060 +\132\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103 +\145\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013 +\023\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143 +\157\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147 +\151\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157 +\164\040\107\062\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\273\067\315\064\334\173\153\311\262\150\220 +\255\112\165\377\106\272\041\012\010\215\365\031\124\311\373\210 +\333\363\256\362\072\211\221\074\172\346\253\006\032\153\317\254 +\055\350\136\011\044\104\272\142\232\176\326\243\250\176\340\124 +\165\040\005\254\120\267\234\143\032\154\060\334\332\037\031\261 +\327\036\336\375\327\340\313\224\203\067\256\354\037\103\116\335 +\173\054\322\275\056\245\057\344\251\270\255\072\324\231\244\266 +\045\351\233\153\000\140\222\140\377\117\041\111\030\367\147\220 +\253\141\006\234\217\362\272\351\264\351\222\062\153\265\363\127 +\350\135\033\315\214\035\253\225\004\225\111\363\065\055\226\343 +\111\155\335\167\343\373\111\113\264\254\125\007\251\217\225\263 +\264\043\273\114\155\105\360\366\251\262\225\060\264\375\114\125 +\214\047\112\127\024\174\202\235\315\163\222\323\026\112\006\014 +\214\120\321\217\036\011\276\027\241\346\041\312\375\203\345\020 +\274\203\245\012\304\147\050\366\163\024\024\075\106\166\303\207 +\024\211\041\064\115\257\017\105\014\246\111\241\272\273\234\305 +\261\063\203\051\205\002\003\001\000\001\243\102\060\100\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060 +\035\006\003\125\035\016\004\026\004\024\116\042\124\040\030\225 +\346\343\156\346\017\372\372\271\022\355\006\027\217\071\060\015 +\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001 +\001\000\140\147\050\224\157\016\110\143\353\061\335\352\147\030 +\325\211\175\074\305\213\112\177\351\276\333\053\027\337\260\137 +\163\167\052\062\023\071\201\147\102\204\043\362\105\147\065\354 +\210\277\370\217\260\141\014\064\244\256\040\114\204\306\333\370 +\065\341\166\331\337\246\102\273\307\104\010\206\177\066\164\044 +\132\332\154\015\024\131\065\275\362\111\335\266\037\311\263\015 +\107\052\075\231\057\273\134\273\265\324\040\341\231\137\123\106 +\025\333\150\233\360\363\060\325\076\061\342\215\204\236\343\212 +\332\332\226\076\065\023\245\137\360\371\160\120\160\107\101\021 +\127\031\116\300\217\256\006\304\225\023\027\057\033\045\237\165 +\362\261\216\231\241\157\023\261\101\161\376\210\052\310\117\020 +\040\125\327\363\024\105\345\340\104\364\352\207\225\062\223\016 +\376\123\106\372\054\235\377\213\042\271\113\331\011\105\244\336 +\244\270\232\130\335\033\175\122\237\216\131\103\210\201\244\236 +\046\325\157\255\335\015\306\067\175\355\003\222\033\345\167\137 +\166\356\074\215\304\135\126\133\242\331\146\156\263\065\067\345 +\062\266 +END + +# Trust for "DigiCert Global Root G2" +# Issuer: CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:03:3a:f1:e6:a7:11:a9:a0:bb:28:64:b1:1d:09:fa:e5 +# Subject: CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): CB:3C:CB:B7:60:31:E5:E0:13:8F:8D:D3:9A:23:F9:DE:47:FF:C3:5E:43:C1:14:4C:EA:27:D4:6A:5A:B1:CB:5F +# Fingerprint (SHA1): DF:3C:24:F9:BF:D6:66:76:1B:26:80:73:FE:06:D1:CC:8D:4F:82:A4 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Global Root G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\337\074\044\371\277\326\146\166\033\046\200\163\376\006\321\314 +\215\117\202\244 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\344\246\212\310\124\254\122\102\106\012\375\162\110\033\052\104 +END +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\003\072\361\346\247\021\251\240\273\050\144\261\035\011 +\372\345 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Global Root G3" +# +# Issuer: CN=DigiCert Global Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:05:55:56:bc:f2:5e:a4:35:35:c3:a4:0f:d5:ab:45:72 +# Subject: CN=DigiCert Global Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 31:AD:66:48:F8:10:41:38:C7:38:F3:9E:A4:32:01:33:39:3E:3A:18:CC:02:29:6E:F9:7C:2A:C9:EF:67:31:D0 +# Fingerprint (SHA1): 7E:04:DE:89:6A:3E:66:6D:00:E6:87:D3:3F:FA:D9:3B:E8:3D:34:9E +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 "DigiCert Global Root G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\005\125\126\274\362\136\244\065\065\303\244\017\325\253 +\105\162 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\077\060\202\001\305\240\003\002\001\002\002\020\005 +\125\126\274\362\136\244\065\065\303\244\017\325\253\105\162\060 +\012\006\010\052\206\110\316\075\004\003\003\060\141\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\025\060\023\006\003 +\125\004\012\023\014\104\151\147\151\103\145\162\164\040\111\156 +\143\061\031\060\027\006\003\125\004\013\023\020\167\167\167\056 +\144\151\147\151\143\145\162\164\056\143\157\155\061\040\060\036 +\006\003\125\004\003\023\027\104\151\147\151\103\145\162\164\040 +\107\154\157\142\141\154\040\122\157\157\164\040\107\063\060\036 +\027\015\061\063\060\070\060\061\061\062\060\060\060\060\132\027 +\015\063\070\060\061\061\065\061\062\060\060\060\060\132\060\141 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\040\060\036\006\003\125\004\003\023\027\104\151\147\151\103\145 +\162\164\040\107\154\157\142\141\154\040\122\157\157\164\040\107 +\063\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\335\247\331\273\212\270\013 +\373\013\177\041\322\360\276\276\163\363\063\135\032\274\064\352 +\336\306\233\274\320\225\366\360\314\320\013\272\141\133\121\106 +\176\236\055\237\356\216\143\014\027\354\007\160\365\317\204\056 +\100\203\234\350\077\101\155\073\255\323\244\024\131\066\170\235 +\003\103\356\020\023\154\162\336\256\210\247\241\153\265\103\316 +\147\334\043\377\003\034\243\342\076\243\102\060\100\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\206\060\035 +\006\003\125\035\016\004\026\004\024\263\333\110\244\371\241\305 +\330\256\066\101\314\021\143\151\142\051\274\113\306\060\012\006 +\010\052\206\110\316\075\004\003\003\003\150\000\060\145\002\061 +\000\255\274\362\154\077\022\112\321\055\071\303\012\011\227\163 +\364\210\066\214\210\047\273\346\210\215\120\205\247\143\371\236 +\062\336\146\223\017\361\314\261\011\217\335\154\253\372\153\177 +\240\002\060\071\146\133\302\144\215\270\236\120\334\250\325\111 +\242\355\307\334\321\111\177\027\001\270\310\206\217\116\214\210 +\053\250\232\251\212\305\321\000\275\370\124\342\232\345\133\174 +\263\047\027 +END + +# Trust for "DigiCert Global Root G3" +# Issuer: CN=DigiCert Global Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:05:55:56:bc:f2:5e:a4:35:35:c3:a4:0f:d5:ab:45:72 +# Subject: CN=DigiCert Global Root G3,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 31:AD:66:48:F8:10:41:38:C7:38:F3:9E:A4:32:01:33:39:3E:3A:18:CC:02:29:6E:F9:7C:2A:C9:EF:67:31:D0 +# Fingerprint (SHA1): 7E:04:DE:89:6A:3E:66:6D:00:E6:87:D3:3F:FA:D9:3B:E8:3D:34:9E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Global Root G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\176\004\336\211\152\076\146\155\000\346\207\323\077\372\331\073 +\350\075\064\236 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\365\135\244\120\245\373\050\176\036\017\015\314\226\127\126\312 +END +CKA_ISSUER MULTILINE_OCTAL +\060\141\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\040\060\036\006\003\125\004\003\023\027\104\151\147\151 +\103\145\162\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\005\125\126\274\362\136\244\065\065\303\244\017\325\253 +\105\162 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "DigiCert Trusted Root G4" +# +# Issuer: CN=DigiCert Trusted Root G4,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:05:9b:1b:57:9e:8e:21:32:e2:39:07:bd:a7:77:75:5c +# Subject: CN=DigiCert Trusted Root G4,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 55:2F:7B:DC:F1:A7:AF:9E:6C:E6:72:01:7F:4F:12:AB:F7:72:40:C7:8E:76:1A:C2:03:D1:D9:D2:0A:C8:99:88 +# Fingerprint (SHA1): DD:FB:16:CD:49:31:C9:73:A2:03:7D:3F:C8:3A:4D:7D:77:5D:05:E4 +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 "DigiCert Trusted Root G4" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\041\060\037\006\003\125\004\003\023\030\104\151\147\151 +\103\145\162\164\040\124\162\165\163\164\145\144\040\122\157\157 +\164\040\107\064 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\041\060\037\006\003\125\004\003\023\030\104\151\147\151 +\103\145\162\164\040\124\162\165\163\164\145\144\040\122\157\157 +\164\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\005\233\033\127\236\216\041\062\342\071\007\275\247\167 +\165\134 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\220\060\202\003\170\240\003\002\001\002\002\020\005 +\233\033\127\236\216\041\062\342\071\007\275\247\167\165\134\060 +\015\006\011\052\206\110\206\367\015\001\001\014\005\000\060\142 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\025\060 +\023\006\003\125\004\012\023\014\104\151\147\151\103\145\162\164 +\040\111\156\143\061\031\060\027\006\003\125\004\013\023\020\167 +\167\167\056\144\151\147\151\143\145\162\164\056\143\157\155\061 +\041\060\037\006\003\125\004\003\023\030\104\151\147\151\103\145 +\162\164\040\124\162\165\163\164\145\144\040\122\157\157\164\040 +\107\064\060\036\027\015\061\063\060\070\060\061\061\062\060\060 +\060\060\132\027\015\063\070\060\061\061\065\061\062\060\060\060 +\060\132\060\142\061\013\060\011\006\003\125\004\006\023\002\125 +\123\061\025\060\023\006\003\125\004\012\023\014\104\151\147\151 +\103\145\162\164\040\111\156\143\061\031\060\027\006\003\125\004 +\013\023\020\167\167\167\056\144\151\147\151\143\145\162\164\056 +\143\157\155\061\041\060\037\006\003\125\004\003\023\030\104\151 +\147\151\103\145\162\164\040\124\162\165\163\164\145\144\040\122 +\157\157\164\040\107\064\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\277\346\220\163\150\336\273\344\135 +\112\074\060\042\060\151\063\354\302\247\045\056\311\041\075\362 +\212\330\131\302\341\051\247\075\130\253\166\232\315\256\173\033 +\204\015\304\060\037\363\033\244\070\026\353\126\306\227\155\035 +\253\262\171\362\312\021\322\344\137\326\005\074\122\017\122\037 +\306\236\025\245\176\276\237\251\127\026\131\125\162\257\150\223 +\160\302\262\272\165\231\152\163\062\224\321\020\104\020\056\337 +\202\363\007\204\346\164\073\155\161\342\055\014\033\356\040\325 +\311\040\035\143\051\055\316\354\136\116\310\223\370\041\141\233 +\064\353\005\306\136\354\133\032\274\353\311\317\315\254\064\100 +\137\261\172\146\356\167\310\110\250\146\127\127\237\124\130\216 +\014\053\267\117\247\060\331\126\356\312\173\135\343\255\311\117 +\136\345\065\347\061\313\332\223\136\334\216\217\200\332\266\221 +\230\100\220\171\303\170\307\266\261\304\265\152\030\070\003\020 +\215\330\324\067\244\056\005\175\210\365\202\076\020\221\160\253 +\125\202\101\062\327\333\004\163\052\156\221\001\174\041\114\324 +\274\256\033\003\165\135\170\146\331\072\061\104\232\063\100\277 +\010\327\132\111\244\302\346\251\240\147\335\244\047\274\241\117 +\071\265\021\130\027\367\044\134\106\217\144\367\301\151\210\166 +\230\166\075\131\135\102\166\207\211\227\151\172\110\360\340\242 +\022\033\146\232\164\312\336\113\036\347\016\143\256\346\324\357 +\222\222\072\236\075\334\000\344\105\045\211\266\232\104\031\053 +\176\300\224\264\322\141\155\353\063\331\305\337\113\004\000\314 +\175\034\225\303\217\367\041\262\262\021\267\273\177\362\325\214 +\160\054\101\140\252\261\143\030\104\225\032\166\142\176\366\200 +\260\373\350\144\246\063\321\211\007\341\275\267\346\103\244\030 +\270\246\167\001\341\017\224\014\041\035\262\124\051\045\211\154 +\345\016\122\121\107\164\276\046\254\266\101\165\336\172\254\137 +\215\077\311\274\323\101\021\022\133\345\020\120\353\061\305\312 +\162\026\042\011\337\174\114\165\077\143\354\041\137\304\040\121 +\153\157\261\253\206\213\117\302\326\105\137\235\040\374\241\036 +\305\300\217\242\261\176\012\046\231\365\344\151\057\230\035\055 +\365\331\251\262\035\345\033\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\206\060\035\006\003\125\035\016\004\026\004\024\354\327\343\202 +\322\161\135\144\114\337\056\147\077\347\272\230\256\034\017\117 +\060\015\006\011\052\206\110\206\367\015\001\001\014\005\000\003 +\202\002\001\000\273\141\331\175\251\154\276\027\304\221\033\303 +\241\242\000\215\343\144\150\017\126\317\167\256\160\371\375\232 +\112\231\271\311\170\134\014\014\137\344\346\024\051\126\013\066 +\111\135\104\143\340\255\234\226\030\146\033\043\015\075\171\351 +\155\153\326\124\370\322\074\301\103\100\256\035\120\365\122\374 +\220\073\273\230\231\151\153\307\301\247\250\150\244\047\334\235 +\371\047\256\060\205\271\366\147\115\072\076\217\131\071\042\123 +\104\353\310\135\003\312\355\120\172\175\142\041\012\200\310\163 +\146\321\240\005\140\137\350\245\264\247\257\250\367\155\065\234 +\174\132\212\326\242\070\231\363\170\213\364\115\322\040\013\336 +\004\356\214\233\107\201\162\015\300\024\062\357\060\131\056\256 +\340\161\362\126\344\152\227\157\222\120\155\226\215\150\172\232 +\262\066\024\172\006\362\044\271\011\021\120\327\010\261\270\211 +\172\204\043\141\102\051\345\243\315\242\040\101\327\321\234\144 +\331\352\046\241\213\024\327\114\031\262\120\101\161\075\077\115 +\160\043\206\014\112\334\201\322\314\062\224\204\015\010\011\227 +\034\117\300\356\153\040\164\060\322\340\071\064\020\205\041\025 +\001\010\350\125\062\336\161\111\331\050\027\120\115\346\276\115 +\321\165\254\320\312\373\101\270\103\245\252\323\303\005\104\117 +\054\066\233\342\372\342\105\270\043\123\154\006\157\147\125\177 +\106\265\114\077\156\050\132\171\046\322\244\250\142\227\322\036 +\342\355\112\213\274\033\375\107\112\015\337\147\146\176\262\133 +\101\320\073\344\364\073\364\004\143\351\357\302\124\000\121\240 +\212\052\311\316\170\314\325\352\207\004\030\263\316\257\111\210 +\257\363\222\231\266\263\346\141\017\322\205\000\347\120\032\344 +\033\225\235\031\241\271\234\261\233\261\000\036\357\320\017\117 +\102\154\311\012\274\356\103\372\072\161\245\310\115\046\245\065 +\375\211\135\274\205\142\035\062\322\240\053\124\355\232\127\301 +\333\372\020\317\031\267\213\112\033\217\001\266\047\225\123\350 +\266\211\155\133\274\150\324\043\350\213\121\242\126\371\360\246 +\200\240\326\036\263\274\017\017\123\165\051\252\352\023\167\344 +\336\214\201\041\255\007\020\107\021\255\207\075\007\321\165\274 +\317\363\146\176 +END + +# Trust for "DigiCert Trusted Root G4" +# Issuer: CN=DigiCert Trusted Root G4,OU=www.digicert.com,O=DigiCert Inc,C=US +# Serial Number:05:9b:1b:57:9e:8e:21:32:e2:39:07:bd:a7:77:75:5c +# Subject: CN=DigiCert Trusted Root G4,OU=www.digicert.com,O=DigiCert Inc,C=US +# Not Valid Before: Thu Aug 01 12:00:00 2013 +# Not Valid After : Fri Jan 15 12:00:00 2038 +# Fingerprint (SHA-256): 55:2F:7B:DC:F1:A7:AF:9E:6C:E6:72:01:7F:4F:12:AB:F7:72:40:C7:8E:76:1A:C2:03:D1:D9:D2:0A:C8:99:88 +# Fingerprint (SHA1): DD:FB:16:CD:49:31:C9:73:A2:03:7D:3F:C8:3A:4D:7D:77:5D:05:E4 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "DigiCert Trusted Root G4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\335\373\026\315\111\061\311\163\242\003\175\077\310\072\115\175 +\167\135\005\344 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\170\362\374\252\140\037\057\264\353\311\067\272\123\056\165\111 +END +CKA_ISSUER MULTILINE_OCTAL +\060\142\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\025\060\023\006\003\125\004\012\023\014\104\151\147\151\103\145 +\162\164\040\111\156\143\061\031\060\027\006\003\125\004\013\023 +\020\167\167\167\056\144\151\147\151\143\145\162\164\056\143\157 +\155\061\041\060\037\006\003\125\004\003\023\030\104\151\147\151 +\103\145\162\164\040\124\162\165\163\164\145\144\040\122\157\157 +\164\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\005\233\033\127\236\216\041\062\342\071\007\275\247\167 +\165\134 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "WoSign" +# +# Issuer: CN=Certification Authority of WoSign,O=WoSign CA Limited,C=CN +# Serial Number:5e:68:d6:11:71:94:63:50:56:00:68:f3:3e:c9:c5:91 +# Subject: CN=Certification Authority of WoSign,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Aug 08 01:00:01 2009 +# Not Valid After : Mon Aug 08 01:00:01 2039 +# Fingerprint (SHA-256): 4B:22:D5:A6:AE:C9:9F:3C:DB:79:AA:5E:C0:68:38:47:9C:D5:EC:BA:71:64:F7:F2:2D:C1:D6:5F:63:D8:57:08 +# Fingerprint (SHA1): B9:42:94:BF:91:EA:8F:B6:4B:E6:10:97:C7:FB:00:13:59:B6:76:CB +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 "WoSign" +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\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\052\060\050\006 +\003\125\004\003\023\041\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146 +\040\127\157\123\151\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\125\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\052\060\050\006 +\003\125\004\003\023\041\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146 +\040\127\157\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\136\150\326\021\161\224\143\120\126\000\150\363\076\311 +\305\221 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\166\060\202\003\136\240\003\002\001\002\002\020\136 +\150\326\021\161\224\143\120\126\000\150\363\076\311\305\221\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\103\116\061\032\060 +\030\006\003\125\004\012\023\021\127\157\123\151\147\156\040\103 +\101\040\114\151\155\151\164\145\144\061\052\060\050\006\003\125 +\004\003\023\041\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\040\157\146\040\127 +\157\123\151\147\156\060\036\027\015\060\071\060\070\060\070\060 +\061\060\060\060\061\132\027\015\063\071\060\070\060\070\060\061 +\060\060\060\061\132\060\125\061\013\060\011\006\003\125\004\006 +\023\002\103\116\061\032\060\030\006\003\125\004\012\023\021\127 +\157\123\151\147\156\040\103\101\040\114\151\155\151\164\145\144 +\061\052\060\050\006\003\125\004\003\023\041\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\157\146\040\127\157\123\151\147\156\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\275\312\215 +\254\270\221\025\126\227\173\153\134\172\302\336\153\331\241\260 +\303\020\043\372\247\241\262\314\061\372\076\331\246\051\157\026 +\075\340\153\370\270\100\137\333\071\250\000\172\213\240\115\124 +\175\302\042\170\374\216\011\270\250\205\327\314\225\227\113\164 +\330\236\176\360\000\344\016\211\256\111\050\104\032\020\231\062 +\017\045\210\123\244\015\263\017\022\010\026\013\003\161\047\034 +\177\341\333\322\375\147\150\304\005\135\012\016\135\160\327\330 +\227\240\274\123\101\232\221\215\364\236\066\146\172\176\126\301 +\220\137\346\261\150\040\066\244\214\044\054\054\107\013\131\166 +\146\060\265\276\336\355\217\370\235\323\273\001\060\346\362\363 +\016\340\054\222\200\363\205\371\050\212\264\124\056\232\355\367 +\166\374\025\150\026\353\112\154\353\056\022\217\324\317\376\014 +\307\134\035\013\176\005\062\276\136\260\011\052\102\325\311\116 +\220\263\131\015\273\172\176\315\325\010\132\264\177\330\034\151 +\021\371\047\017\173\006\257\124\203\030\173\341\335\124\172\121 +\150\156\167\374\306\277\122\112\146\106\241\262\147\032\273\243 +\117\167\240\276\135\377\374\126\013\103\162\167\220\312\236\371 +\362\071\365\015\251\364\352\327\347\263\020\057\060\102\067\041 +\314\060\160\311\206\230\017\314\130\115\203\273\175\345\032\245 +\067\215\266\254\062\227\000\072\143\161\044\036\236\067\304\377 +\164\324\067\300\342\376\210\106\140\021\335\010\077\120\066\253 +\270\172\244\225\142\152\156\260\312\152\041\132\151\363\363\373 +\035\160\071\225\363\247\156\246\201\211\241\210\305\073\161\312 +\243\122\356\203\273\375\240\167\364\344\157\347\102\333\155\112 +\231\212\064\110\274\027\334\344\200\010\042\266\362\061\300\077 +\004\076\353\237\040\171\326\270\006\144\144\002\061\327\251\315 +\122\373\204\105\151\011\000\052\334\125\213\304\006\106\113\300 +\112\035\011\133\071\050\375\251\253\316\000\371\056\110\113\046 +\346\060\114\245\130\312\264\104\202\117\347\221\036\063\303\260 +\223\377\021\374\201\322\312\037\161\051\335\166\117\222\045\257 +\035\201\267\017\057\214\303\006\314\057\047\243\112\344\016\231 +\272\174\036\105\037\177\252\031\105\226\375\374\075\002\003\001 +\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\341\146\317\016\321\361\263\113\267\006\040\024\376\207 +\022\325\366\376\373\076\060\015\006\011\052\206\110\206\367\015 +\001\001\005\005\000\003\202\002\001\000\250\313\162\100\262\166 +\301\176\173\374\255\144\343\062\173\314\074\266\135\106\323\365 +\054\342\160\135\310\056\330\006\175\230\321\013\041\240\211\131 +\044\001\235\371\257\011\175\012\043\202\064\325\374\174\162\231 +\271\243\327\124\364\352\122\160\016\305\365\326\073\341\072\011 +\062\346\041\071\223\275\263\025\352\117\152\364\365\213\077\057 +\174\215\130\056\305\341\071\240\076\307\075\112\163\236\100\172 +\300\053\141\251\147\311\363\044\271\263\155\125\054\132\035\236 +\045\162\316\013\255\252\307\125\142\013\276\373\143\263\141\104 +\043\243\313\341\032\016\367\232\006\115\336\324\043\116\041\226 +\133\071\133\127\035\057\135\010\136\011\171\377\174\227\265\115 +\203\256\015\326\346\243\171\340\063\320\231\226\002\060\247\076 +\377\322\243\103\077\005\132\006\352\104\002\332\174\370\110\320 +\063\251\371\007\307\225\341\365\076\365\135\161\272\362\225\251 +\164\210\141\131\343\277\312\132\023\272\162\264\214\135\066\207 +\351\246\305\074\023\277\336\320\104\046\356\267\354\056\160\372 +\327\235\267\254\345\305\100\132\346\327\154\173\054\303\126\233 +\107\315\013\316\372\033\264\041\327\267\146\270\364\045\060\213 +\134\015\271\352\147\262\364\155\256\325\241\236\117\330\237\351 +\047\002\260\035\006\326\217\343\373\110\022\237\177\021\241\020 +\076\114\121\072\226\260\321\023\361\307\330\046\256\072\312\221 +\304\151\235\337\001\051\144\121\157\150\332\024\354\010\101\227 +\220\215\320\262\200\362\317\302\075\277\221\150\305\200\147\036 +\304\140\023\125\325\141\231\127\174\272\225\017\141\111\072\312 +\165\274\311\012\223\077\147\016\022\362\050\342\061\033\300\127 +\026\337\010\174\031\301\176\017\037\205\036\012\066\174\133\176 +\047\274\172\277\340\333\364\332\122\275\336\014\124\160\061\221 +\103\225\310\274\360\076\335\011\176\060\144\120\355\177\001\244 +\063\147\115\150\117\276\025\357\260\366\002\021\242\033\023\045 +\072\334\302\131\361\343\134\106\273\147\054\002\106\352\036\110 +\246\346\133\331\265\274\121\242\222\226\333\252\306\067\042\246 +\376\314\040\164\243\055\251\056\153\313\300\202\021\041\265\223 +\171\356\104\206\276\327\036\344\036\373 +END + +# Trust for "WoSign" +# Issuer: CN=Certification Authority of WoSign,O=WoSign CA Limited,C=CN +# Serial Number:5e:68:d6:11:71:94:63:50:56:00:68:f3:3e:c9:c5:91 +# Subject: CN=Certification Authority of WoSign,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Aug 08 01:00:01 2009 +# Not Valid After : Mon Aug 08 01:00:01 2039 +# Fingerprint (SHA-256): 4B:22:D5:A6:AE:C9:9F:3C:DB:79:AA:5E:C0:68:38:47:9C:D5:EC:BA:71:64:F7:F2:2D:C1:D6:5F:63:D8:57:08 +# Fingerprint (SHA1): B9:42:94:BF:91:EA:8F:B6:4B:E6:10:97:C7:FB:00:13:59:B6:76:CB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "WoSign" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\271\102\224\277\221\352\217\266\113\346\020\227\307\373\000\023 +\131\266\166\313 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\241\362\371\265\322\310\172\164\270\363\005\361\327\341\204\215 +END +CKA_ISSUER MULTILINE_OCTAL +\060\125\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\052\060\050\006 +\003\125\004\003\023\041\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146 +\040\127\157\123\151\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\136\150\326\021\161\224\143\120\126\000\150\363\076\311 +\305\221 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "WoSign China" +# +# Issuer: CN=CA ...............,O=WoSign CA Limited,C=CN +# Serial Number:50:70:6b:cd:d8:13:fc:1b:4e:3b:33:72:d2:11:48:8d +# Subject: CN=CA ...............,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Aug 08 01:00:01 2009 +# Not Valid After : Mon Aug 08 01:00:01 2039 +# Fingerprint (SHA-256): D6:F0:34:BD:94:AA:23:3F:02:97:EC:A4:24:5B:28:39:73:E4:47:AA:59:0F:31:0C:77:F4:8F:DF:83:11:22:54 +# Fingerprint (SHA1): 16:32:47:8D:89:F9:21:3A:92:00:85:63:F5:A4:A7:D3:12:40:8A:D6 +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 "WoSign China" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006 +\003\125\004\003\014\022\103\101\040\346\262\203\351\200\232\346 +\240\271\350\257\201\344\271\246 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006 +\003\125\004\003\014\022\103\101\040\346\262\203\351\200\232\346 +\240\271\350\257\201\344\271\246 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\120\160\153\315\330\023\374\033\116\073\063\162\322\021 +\110\215 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\130\060\202\003\100\240\003\002\001\002\002\020\120 +\160\153\315\330\023\374\033\116\073\063\162\322\021\110\215\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\106 +\061\013\060\011\006\003\125\004\006\023\002\103\116\061\032\060 +\030\006\003\125\004\012\023\021\127\157\123\151\147\156\040\103 +\101\040\114\151\155\151\164\145\144\061\033\060\031\006\003\125 +\004\003\014\022\103\101\040\346\262\203\351\200\232\346\240\271 +\350\257\201\344\271\246\060\036\027\015\060\071\060\070\060\070 +\060\061\060\060\060\061\132\027\015\063\071\060\070\060\070\060 +\061\060\060\060\061\132\060\106\061\013\060\011\006\003\125\004 +\006\023\002\103\116\061\032\060\030\006\003\125\004\012\023\021 +\127\157\123\151\147\156\040\103\101\040\114\151\155\151\164\145 +\144\061\033\060\031\006\003\125\004\003\014\022\103\101\040\346 +\262\203\351\200\232\346\240\271\350\257\201\344\271\246\060\202 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\320 +\111\041\036\045\374\207\301\052\302\254\333\166\206\006\116\347 +\320\164\064\334\355\145\065\374\120\326\210\077\244\360\177\353 +\017\137\171\057\211\261\375\274\143\130\067\223\233\070\370\267 +\133\251\372\330\161\307\264\274\200\227\215\154\113\361\120\325 +\052\051\252\250\031\172\226\346\225\216\164\355\227\012\127\165 +\364\005\333\155\013\071\271\001\177\252\366\326\332\154\346\005 +\340\244\115\122\374\333\320\164\267\021\214\173\215\117\377\207 +\203\256\377\005\003\023\127\120\067\376\214\226\122\020\114\137 +\277\224\161\151\331\226\076\014\103\117\276\060\300\237\071\164 +\117\006\105\135\243\326\126\071\150\007\314\207\117\120\167\223 +\161\331\104\010\261\212\064\351\211\254\333\233\116\341\331\344 +\122\105\214\056\024\037\221\153\031\035\150\051\054\126\304\342 +\036\023\127\144\360\141\343\271\021\337\260\341\127\240\033\255 +\327\137\321\257\333\053\055\077\320\150\216\017\352\237\017\213 +\065\130\033\023\034\364\336\065\241\012\135\326\352\337\022\157 +\300\373\151\007\106\162\334\201\366\004\043\027\340\115\165\341 +\162\157\260\050\353\233\341\341\203\241\237\112\135\257\314\233 +\372\002\040\266\030\142\167\221\073\243\325\145\255\334\174\220 +\167\034\104\101\244\112\213\353\225\162\351\366\011\144\334\250 +\055\237\164\170\350\301\242\011\143\234\357\240\333\117\235\225 +\253\040\117\267\260\367\207\134\246\240\344\067\070\307\134\343 +\065\017\054\255\243\200\242\354\056\135\300\317\355\213\005\302 +\346\163\156\366\211\325\365\322\106\216\352\155\143\033\036\212 +\311\175\246\370\234\353\345\325\143\205\115\163\146\151\021\376 +\310\016\364\301\307\146\111\123\176\344\031\153\361\351\172\131 +\243\155\176\305\027\346\047\306\357\033\333\157\374\015\115\006 +\001\264\016\134\060\106\125\140\257\070\145\072\312\107\272\254 +\054\314\106\037\262\106\226\077\363\355\046\005\356\167\241\152 +\153\176\055\155\130\134\112\324\216\147\270\361\332\325\106\212 +\047\371\021\362\311\102\376\116\336\337\037\134\304\244\206\207 +\026\063\241\247\027\030\245\015\344\005\345\053\302\053\013\242 +\225\220\271\375\140\074\116\211\076\347\234\356\037\273\001\002 +\003\001\000\001\243\102\060\100\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016 +\004\026\004\024\340\115\277\334\233\101\135\023\350\144\360\247 +\351\025\244\341\201\301\272\061\060\015\006\011\052\206\110\206 +\367\015\001\001\013\005\000\003\202\002\001\000\152\212\160\070 +\131\266\332\213\030\310\276\052\323\266\031\325\146\051\172\135 +\315\133\057\163\034\046\116\243\175\157\253\267\051\115\246\351 +\245\021\203\247\071\163\257\020\104\222\346\045\135\117\141\372 +\310\006\276\116\113\357\376\363\061\376\306\174\160\012\101\130 +\332\350\231\113\226\311\170\274\230\174\002\051\355\011\200\346 +\012\072\202\002\052\342\311\057\310\126\031\046\356\170\034\043 +\375\367\223\145\116\347\363\230\230\257\315\335\331\236\100\210 +\061\050\072\253\056\013\260\254\014\044\372\172\046\230\363\022 +\141\020\364\135\027\367\176\342\170\227\124\342\214\350\051\272 +\214\020\062\275\335\063\153\070\206\176\071\075\016\003\162\247 +\135\171\217\105\212\131\256\133\041\156\061\106\325\131\215\317 +\025\137\335\061\045\317\333\140\326\201\104\162\051\002\127\366 +\226\324\326\377\352\051\333\071\305\270\054\212\032\215\316\313 +\347\102\061\206\005\150\016\236\024\335\000\220\272\151\105\010 +\333\156\220\201\206\247\052\005\077\346\204\071\370\267\371\127 +\137\114\244\171\132\020\014\136\325\153\377\065\137\005\121\036 +\154\243\165\251\317\120\203\323\174\364\146\367\202\215\075\014 +\175\350\337\173\250\016\033\054\234\256\100\160\207\332\355\247 +\026\202\132\276\065\154\040\116\042\141\331\274\121\172\315\172 +\141\334\113\021\371\376\147\064\317\056\004\146\141\134\127\227 +\043\214\363\206\033\110\337\052\257\247\301\377\330\216\076\003 +\273\330\052\260\372\024\045\262\121\153\206\103\205\056\007\043 +\026\200\215\114\373\264\143\073\314\303\164\355\033\243\036\376 +\065\017\137\174\035\026\206\365\016\303\225\361\057\257\135\045 +\073\121\346\327\166\101\070\321\113\003\071\050\245\036\221\162 +\324\175\253\227\063\304\323\076\340\151\266\050\171\240\011\215 +\034\321\377\101\162\110\006\374\232\056\347\040\371\233\242\336 +\211\355\256\074\011\257\312\127\263\222\211\160\100\344\057\117 +\302\160\203\100\327\044\054\153\347\011\037\323\325\307\301\010 +\364\333\016\073\034\007\013\103\021\204\041\206\351\200\324\165 +\330\253\361\002\142\301\261\176\125\141\317\023\327\046\260\327 +\234\313\051\213\070\112\013\016\220\215\272\241 +END + +# Trust for "WoSign China" +# Issuer: CN=CA ...............,O=WoSign CA Limited,C=CN +# Serial Number:50:70:6b:cd:d8:13:fc:1b:4e:3b:33:72:d2:11:48:8d +# Subject: CN=CA ...............,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Aug 08 01:00:01 2009 +# Not Valid After : Mon Aug 08 01:00:01 2039 +# Fingerprint (SHA-256): D6:F0:34:BD:94:AA:23:3F:02:97:EC:A4:24:5B:28:39:73:E4:47:AA:59:0F:31:0C:77:F4:8F:DF:83:11:22:54 +# Fingerprint (SHA1): 16:32:47:8D:89:F9:21:3A:92:00:85:63:F5:A4:A7:D3:12:40:8A:D6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "WoSign China" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\026\062\107\215\211\371\041\072\222\000\205\143\365\244\247\323 +\022\100\212\326 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\170\203\133\122\026\166\304\044\073\203\170\350\254\332\232\223 +END +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006 +\003\125\004\003\014\022\103\101\040\346\262\203\351\200\232\346 +\240\271\350\257\201\344\271\246 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\120\160\153\315\330\023\374\033\116\073\063\162\322\021 +\110\215 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "COMODO RSA Certification Authority" +# +# Issuer: CN=COMODO RSA Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number:4c:aa:f9:ca:db:63:6f:e0:1f:f7:4e:d8:5b:03:86:9d +# Subject: CN=COMODO RSA Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Tue Jan 19 00:00:00 2010 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): 52:F0:E1:C4:E5:8E:C6:29:29:1B:60:31:7F:07:46:71:B8:5D:7E:A8:0D:5B:07:27:34:63:53:4B:32:B4:02:34 +# Fingerprint (SHA1): AF:E5:D2:44:A8:D1:19:42:30:FF:47:9F:E2:F8:97:BB:CD:7A:8C:B4 +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 RSA Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\122\123\101 +\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\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\122\123\101 +\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\020\114\252\371\312\333\143\157\340\037\367\116\330\133\003 +\206\235 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\330\060\202\003\300\240\003\002\001\002\002\020\114 +\252\371\312\333\143\157\340\037\367\116\330\133\003\206\235\060 +\015\006\011\052\206\110\206\367\015\001\001\014\005\000\060\201 +\205\061\013\060\011\006\003\125\004\006\023\002\107\102\061\033 +\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061\032\060 +\030\006\003\125\004\012\023\021\103\117\115\117\104\117\040\103 +\101\040\114\151\155\151\164\145\144\061\053\060\051\006\003\125 +\004\003\023\042\103\117\115\117\104\117\040\122\123\101\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\061\060\060\061\061\071 +\060\060\060\060\060\060\132\027\015\063\070\060\061\061\070\062 +\063\065\071\065\071\132\060\201\205\061\013\060\011\006\003\125 +\004\006\023\002\107\102\061\033\060\031\006\003\125\004\010\023 +\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\023\007\123\141 +\154\146\157\162\144\061\032\060\030\006\003\125\004\012\023\021 +\103\117\115\117\104\117\040\103\101\040\114\151\155\151\164\145 +\144\061\053\060\051\006\003\125\004\003\023\042\103\117\115\117 +\104\117\040\122\123\101\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 +\002\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005 +\000\003\202\002\017\000\060\202\002\012\002\202\002\001\000\221 +\350\124\222\322\012\126\261\254\015\044\335\305\317\104\147\164 +\231\053\067\243\175\043\160\000\161\274\123\337\304\372\052\022 +\217\113\177\020\126\275\237\160\162\267\141\177\311\113\017\027 +\247\075\343\260\004\141\356\377\021\227\307\364\206\076\012\372 +\076\134\371\223\346\064\172\331\024\153\347\234\263\205\240\202 +\172\166\257\161\220\327\354\375\015\372\234\154\372\337\260\202 +\364\024\176\371\276\304\246\057\117\177\231\177\265\374\147\103 +\162\275\014\000\326\211\353\153\054\323\355\217\230\034\024\253 +\176\345\343\156\374\330\250\344\222\044\332\103\153\142\270\125 +\375\352\301\274\154\266\213\363\016\215\232\344\233\154\151\231 +\370\170\110\060\105\325\255\341\015\074\105\140\374\062\226\121 +\047\274\147\303\312\056\266\153\352\106\307\307\040\240\261\037 +\145\336\110\010\272\244\116\251\362\203\106\067\204\353\350\314 +\201\110\103\147\116\162\052\233\134\275\114\033\050\212\134\042 +\173\264\253\230\331\356\340\121\203\303\011\106\116\155\076\231 +\372\225\027\332\174\063\127\101\074\215\121\355\013\266\134\257 +\054\143\032\337\127\310\077\274\351\135\304\233\257\105\231\342 +\243\132\044\264\272\251\126\075\317\157\252\377\111\130\276\360 +\250\377\364\270\255\351\067\373\272\270\364\013\072\371\350\103 +\102\036\211\330\204\313\023\361\331\273\341\211\140\270\214\050 +\126\254\024\035\234\012\347\161\353\317\016\335\075\251\226\241 +\110\275\074\367\257\265\015\042\114\300\021\201\354\126\073\366 +\323\242\342\133\267\262\004\042\122\225\200\223\151\350\216\114 +\145\361\221\003\055\160\164\002\352\213\147\025\051\151\122\002 +\273\327\337\120\152\125\106\277\240\243\050\141\177\160\320\303 +\242\252\054\041\252\107\316\050\234\006\105\166\277\202\030\047 +\264\325\256\264\313\120\346\153\364\114\206\161\060\351\246\337 +\026\206\340\330\377\100\335\373\320\102\210\177\243\063\072\056 +\134\036\101\021\201\143\316\030\161\153\053\354\246\212\267\061 +\134\072\152\107\340\303\171\131\326\040\032\257\362\152\230\252 +\162\274\127\112\322\113\235\273\020\374\260\114\101\345\355\035 +\075\136\050\235\234\314\277\263\121\332\247\107\345\204\123\002 +\003\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004 +\026\004\024\273\257\176\002\075\372\246\361\074\204\216\255\356 +\070\230\354\331\062\062\324\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206 +\367\015\001\001\014\005\000\003\202\002\001\000\012\361\325\106 +\204\267\256\121\273\154\262\115\101\024\000\223\114\234\313\345 +\300\124\317\240\045\216\002\371\375\260\242\015\365\040\230\074 +\023\055\254\126\242\260\326\176\021\222\351\056\272\236\056\232 +\162\261\275\031\104\154\141\065\242\232\264\026\022\151\132\214 +\341\327\076\244\032\350\057\003\364\256\141\035\020\033\052\244 +\213\172\305\376\005\246\341\300\326\310\376\236\256\217\053\272 +\075\231\370\330\163\011\130\106\156\246\234\364\327\047\323\225 +\332\067\203\162\034\323\163\340\242\107\231\003\070\135\325\111 +\171\000\051\034\307\354\233\040\034\007\044\151\127\170\262\071 +\374\072\204\240\265\234\174\215\277\056\223\142\047\267\071\332 +\027\030\256\275\074\011\150\377\204\233\074\325\326\013\003\343 +\127\236\024\367\321\353\117\310\275\207\043\267\266\111\103\171 +\205\134\272\353\222\013\241\306\350\150\250\114\026\261\032\231 +\012\350\123\054\222\273\241\011\030\165\014\145\250\173\313\043 +\267\032\302\050\205\303\033\377\320\053\142\357\244\173\011\221 +\230\147\214\024\001\315\150\006\152\143\041\165\003\200\210\212 +\156\201\306\205\362\251\244\055\347\364\245\044\020\107\203\312 +\315\364\215\171\130\261\006\233\347\032\052\331\235\001\327\224 +\175\355\003\112\312\360\333\350\251\001\076\365\126\231\311\036 +\216\111\075\273\345\011\271\340\117\111\222\075\026\202\100\314 +\314\131\306\346\072\355\022\056\151\074\154\225\261\375\252\035 +\173\177\206\276\036\016\062\106\373\373\023\217\165\177\114\213 +\113\106\143\376\000\064\100\160\301\303\271\241\335\246\160\342 +\004\263\101\274\351\200\221\352\144\234\172\341\042\003\251\234 +\156\157\016\145\117\154\207\207\136\363\156\240\371\165\245\233 +\100\350\123\262\047\235\112\271\300\167\041\215\377\207\362\336 +\274\214\357\027\337\267\111\013\321\362\156\060\013\032\016\116 +\166\355\021\374\365\351\126\262\175\277\307\155\012\223\214\245 +\320\300\266\035\276\072\116\224\242\327\156\154\013\302\212\174 +\372\040\363\304\344\345\315\015\250\313\221\222\261\174\205\354 +\265\024\151\146\016\202\347\315\316\310\055\246\121\177\041\301 +\065\123\205\006\112\135\237\255\273\033\137\164 +END + +# Trust for "COMODO RSA Certification Authority" +# Issuer: CN=COMODO RSA Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Serial Number:4c:aa:f9:ca:db:63:6f:e0:1f:f7:4e:d8:5b:03:86:9d +# Subject: CN=COMODO RSA Certification Authority,O=COMODO CA Limited,L=Salford,ST=Greater Manchester,C=GB +# Not Valid Before: Tue Jan 19 00:00:00 2010 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): 52:F0:E1:C4:E5:8E:C6:29:29:1B:60:31:7F:07:46:71:B8:5D:7E:A8:0D:5B:07:27:34:63:53:4B:32:B4:02:34 +# Fingerprint (SHA1): AF:E5:D2:44:A8:D1:19:42:30:FF:47:9F:E2:F8:97:BB:CD:7A:8C:B4 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "COMODO RSA Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\257\345\322\104\250\321\031\102\060\377\107\237\342\370\227\273 +\315\172\214\264 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\033\061\260\161\100\066\314\024\066\221\255\304\076\375\354\030 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\107\102 +\061\033\060\031\006\003\125\004\010\023\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\023\007\123\141\154\146\157\162\144\061 +\032\060\030\006\003\125\004\012\023\021\103\117\115\117\104\117 +\040\103\101\040\114\151\155\151\164\145\144\061\053\060\051\006 +\003\125\004\003\023\042\103\117\115\117\104\117\040\122\123\101 +\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\020\114\252\371\312\333\143\157\340\037\367\116\330\133\003 +\206\235 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "USERTrust RSA Certification Authority" +# +# Issuer: CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Serial Number:01:fd:6d:30:fc:a3:ca:51:a8:1b:bc:64:0e:35:03:2d +# Subject: CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Not Valid Before: Mon Feb 01 00:00:00 2010 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): E7:93:C9:B0:2F:D8:AA:13:E2:1C:31:22:8A:CC:B0:81:19:64:3B:74:9C:89:89:64:B1:74:6D:46:C3:D4:CB:D2 +# Fingerprint (SHA1): 2B:8F:1B:57:33:0D:BB:A2:D0:7A:6C:51:F7:0E:E9:0D:DA:B9:AD:8E +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 "USERTrust RSA Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\210\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\023\060\021\006\003\125\004\010\023\012\116\145\167\040\112 +\145\162\163\145\171\061\024\060\022\006\003\125\004\007\023\013 +\112\145\162\163\145\171\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\056\060\054\006 +\003\125\004\003\023\045\125\123\105\122\124\162\165\163\164\040 +\122\123\101\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\201\210\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\023\060\021\006\003\125\004\010\023\012\116\145\167\040\112 +\145\162\163\145\171\061\024\060\022\006\003\125\004\007\023\013 +\112\145\162\163\145\171\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\056\060\054\006 +\003\125\004\003\023\045\125\123\105\122\124\162\165\163\164\040 +\122\123\101\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\020\001\375\155\060\374\243\312\121\250\033\274\144\016\065 +\003\055 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\336\060\202\003\306\240\003\002\001\002\002\020\001 +\375\155\060\374\243\312\121\250\033\274\144\016\065\003\055\060 +\015\006\011\052\206\110\206\367\015\001\001\014\005\000\060\201 +\210\061\013\060\011\006\003\125\004\006\023\002\125\123\061\023 +\060\021\006\003\125\004\010\023\012\116\145\167\040\112\145\162 +\163\145\171\061\024\060\022\006\003\125\004\007\023\013\112\145 +\162\163\145\171\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\056\060\054\006\003\125 +\004\003\023\045\125\123\105\122\124\162\165\163\164\040\122\123 +\101\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\061\060\060 +\062\060\061\060\060\060\060\060\060\132\027\015\063\070\060\061 +\061\070\062\063\065\071\065\071\132\060\201\210\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\023\060\021\006\003\125 +\004\010\023\012\116\145\167\040\112\145\162\163\145\171\061\024 +\060\022\006\003\125\004\007\023\013\112\145\162\163\145\171\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\056\060\054\006\003\125\004\003\023\045\125 +\123\105\122\124\162\165\163\164\040\122\123\101\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\002\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002\012 +\002\202\002\001\000\200\022\145\027\066\016\303\333\010\263\320 +\254\127\015\166\355\315\047\323\114\255\120\203\141\342\252\040 +\115\011\055\144\011\334\316\211\237\314\075\251\354\366\317\301 +\334\361\323\261\326\173\067\050\021\053\107\332\071\306\274\072 +\031\264\137\246\275\175\235\243\143\102\266\166\362\251\073\053 +\221\370\342\157\320\354\026\040\220\011\076\342\350\164\311\030 +\264\221\324\142\144\333\177\243\006\361\210\030\152\220\042\074 +\274\376\023\360\207\024\173\366\344\037\216\324\344\121\306\021 +\147\106\010\121\313\206\024\124\077\274\063\376\176\154\234\377 +\026\235\030\275\121\216\065\246\247\146\310\162\147\333\041\146 +\261\324\233\170\003\300\120\072\350\314\360\334\274\236\114\376 +\257\005\226\065\037\127\132\267\377\316\371\075\267\054\266\366 +\124\335\310\347\022\072\115\256\114\212\267\134\232\264\267\040 +\075\312\177\042\064\256\176\073\150\146\001\104\347\001\116\106 +\123\233\063\140\367\224\276\123\067\220\163\103\363\062\303\123 +\357\333\252\376\164\116\151\307\153\214\140\223\336\304\307\014 +\337\341\062\256\314\223\073\121\170\225\147\213\356\075\126\376 +\014\320\151\017\033\017\363\045\046\153\063\155\367\156\107\372 +\163\103\345\176\016\245\146\261\051\174\062\204\143\125\211\304 +\015\301\223\124\060\031\023\254\323\175\067\247\353\135\072\154 +\065\134\333\101\327\022\332\251\111\013\337\330\200\212\011\223 +\142\216\265\146\317\045\210\315\204\270\261\077\244\071\017\331 +\002\236\353\022\114\225\174\363\153\005\251\136\026\203\314\270 +\147\342\350\023\235\314\133\202\323\114\263\355\133\377\336\345 +\163\254\043\073\055\000\277\065\125\164\011\111\330\111\130\032 +\177\222\066\346\121\222\016\363\046\175\034\115\027\274\311\354 +\103\046\320\277\101\137\100\251\104\104\364\231\347\127\207\236 +\120\037\127\124\250\076\375\164\143\057\261\120\145\011\346\130 +\102\056\103\032\114\264\360\045\107\131\372\004\036\223\324\046 +\106\112\120\201\262\336\276\170\267\374\147\025\341\311\127\204 +\036\017\143\326\351\142\272\326\137\125\056\352\134\306\050\010 +\004\045\071\270\016\053\251\362\114\227\034\007\077\015\122\365 +\355\357\057\202\017\002\003\001\000\001\243\102\060\100\060\035 +\006\003\125\035\016\004\026\004\024\123\171\277\132\252\053\112 +\317\124\200\341\330\233\300\235\362\262\003\146\313\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\015 +\006\011\052\206\110\206\367\015\001\001\014\005\000\003\202\002 +\001\000\134\324\174\015\317\367\001\175\101\231\145\014\163\305 +\122\237\313\370\317\231\006\177\033\332\103\025\237\236\002\125 +\127\226\024\361\122\074\047\207\224\050\355\037\072\001\067\242 +\166\374\123\120\300\204\233\306\153\116\272\214\041\117\242\216 +\125\142\221\363\151\025\330\274\210\343\304\252\013\375\357\250 +\351\113\125\052\006\040\155\125\170\051\031\356\137\060\134\113 +\044\021\125\377\044\232\156\136\052\053\356\013\115\237\177\367 +\001\070\224\024\225\103\007\011\373\140\251\356\034\253\022\214 +\240\232\136\247\230\152\131\155\213\077\010\373\310\321\105\257 +\030\025\144\220\022\017\163\050\056\305\342\044\116\374\130\354 +\360\364\105\376\042\263\353\057\216\322\331\105\141\005\301\227 +\157\250\166\162\217\213\214\066\257\277\015\005\316\161\215\346 +\246\157\037\154\246\161\142\305\330\320\203\162\014\361\147\021 +\211\014\234\023\114\162\064\337\274\325\161\337\252\161\335\341 +\271\154\214\074\022\135\145\332\275\127\022\266\103\153\377\345 +\336\115\146\021\121\317\231\256\354\027\266\350\161\221\214\336 +\111\376\335\065\161\242\025\047\224\034\317\141\343\046\273\157 +\243\147\045\041\135\346\335\035\013\056\150\033\073\202\257\354 +\203\147\205\324\230\121\164\261\271\231\200\211\377\177\170\031 +\134\171\112\140\056\222\100\256\114\067\052\054\311\307\142\310 +\016\135\367\066\133\312\340\045\045\001\264\335\032\007\234\167 +\000\077\320\334\325\354\075\324\372\273\077\314\205\326\157\177 +\251\055\337\271\002\367\365\227\232\265\065\332\303\147\260\207 +\112\251\050\236\043\216\377\134\047\153\341\260\117\363\007\356 +\000\056\324\131\207\313\122\101\225\352\364\107\327\356\144\101 +\125\174\215\131\002\225\335\142\235\302\271\356\132\050\164\204 +\245\233\267\220\307\014\007\337\365\211\066\164\062\326\050\301 +\260\260\013\340\234\114\303\034\326\374\343\151\265\107\106\201 +\057\242\202\253\323\143\104\160\304\215\377\055\063\272\255\217 +\173\265\160\210\256\076\031\317\100\050\330\374\310\220\273\135 +\231\042\365\122\346\130\305\037\210\061\103\356\210\035\327\306 +\216\074\103\152\035\247\030\336\175\075\026\361\142\371\312\220 +\250\375 +END + +# Trust for "USERTrust RSA Certification Authority" +# Issuer: CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Serial Number:01:fd:6d:30:fc:a3:ca:51:a8:1b:bc:64:0e:35:03:2d +# Subject: CN=USERTrust RSA Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Not Valid Before: Mon Feb 01 00:00:00 2010 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): E7:93:C9:B0:2F:D8:AA:13:E2:1C:31:22:8A:CC:B0:81:19:64:3B:74:9C:89:89:64:B1:74:6D:46:C3:D4:CB:D2 +# Fingerprint (SHA1): 2B:8F:1B:57:33:0D:BB:A2:D0:7A:6C:51:F7:0E:E9:0D:DA:B9:AD:8E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "USERTrust RSA Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\053\217\033\127\063\015\273\242\320\172\154\121\367\016\351\015 +\332\271\255\216 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\033\376\151\321\221\267\031\063\243\162\250\017\341\125\345\265 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\210\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\023\060\021\006\003\125\004\010\023\012\116\145\167\040\112 +\145\162\163\145\171\061\024\060\022\006\003\125\004\007\023\013 +\112\145\162\163\145\171\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\056\060\054\006 +\003\125\004\003\023\045\125\123\105\122\124\162\165\163\164\040 +\122\123\101\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\020\001\375\155\060\374\243\312\121\250\033\274\144\016\065 +\003\055 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "USERTrust ECC Certification Authority" +# +# Issuer: CN=USERTrust ECC Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Serial Number:5c:8b:99:c5:5a:94:c5:d2:71:56:de:cd:89:80:cc:26 +# Subject: CN=USERTrust ECC Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Not Valid Before: Mon Feb 01 00:00:00 2010 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): 4F:F4:60:D5:4B:9C:86:DA:BF:BC:FC:57:12:E0:40:0D:2B:ED:3F:BC:4D:4F:BD:AA:86:E0:6A:DC:D2:A9:AD:7A +# Fingerprint (SHA1): D1:CB:CA:5D:B2:D5:2A:7F:69:3B:67:4D:E5:F0:5A:1D:0C:95:7D:F0 +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 "USERTrust ECC Certification Authority" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\210\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\023\060\021\006\003\125\004\010\023\012\116\145\167\040\112 +\145\162\163\145\171\061\024\060\022\006\003\125\004\007\023\013 +\112\145\162\163\145\171\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\056\060\054\006 +\003\125\004\003\023\045\125\123\105\122\124\162\165\163\164\040 +\105\103\103\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\201\210\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\023\060\021\006\003\125\004\010\023\012\116\145\167\040\112 +\145\162\163\145\171\061\024\060\022\006\003\125\004\007\023\013 +\112\145\162\163\145\171\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\056\060\054\006 +\003\125\004\003\023\045\125\123\105\122\124\162\165\163\164\040 +\105\103\103\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\020\134\213\231\305\132\224\305\322\161\126\336\315\211\200 +\314\046 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\217\060\202\002\025\240\003\002\001\002\002\020\134 +\213\231\305\132\224\305\322\161\126\336\315\211\200\314\046\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\210\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\023\060\021\006 +\003\125\004\010\023\012\116\145\167\040\112\145\162\163\145\171 +\061\024\060\022\006\003\125\004\007\023\013\112\145\162\163\145 +\171\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\056\060\054\006\003\125\004\003\023 +\045\125\123\105\122\124\162\165\163\164\040\105\103\103\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\061\060\060\062\060\061 +\060\060\060\060\060\060\132\027\015\063\070\060\061\061\070\062 +\063\065\071\065\071\132\060\201\210\061\013\060\011\006\003\125 +\004\006\023\002\125\123\061\023\060\021\006\003\125\004\010\023 +\012\116\145\167\040\112\145\162\163\145\171\061\024\060\022\006 +\003\125\004\007\023\013\112\145\162\163\145\171\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\056\060\054\006\003\125\004\003\023\045\125\123\105\122 +\124\162\165\163\164\040\105\103\103\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\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\032\254\124\132\251\371\150 +\043\347\172\325\044\157\123\306\132\330\113\253\306\325\266\321 +\346\163\161\256\335\234\326\014\141\375\333\240\211\003\270\005 +\024\354\127\316\356\135\077\342\041\263\316\367\324\212\171\340 +\243\203\176\055\227\320\141\304\361\231\334\045\221\143\253\177 +\060\243\264\160\342\307\241\063\234\363\277\056\134\123\261\137 +\263\175\062\177\212\064\343\171\171\243\102\060\100\060\035\006 +\003\125\035\016\004\026\004\024\072\341\011\206\324\317\031\302 +\226\166\164\111\166\334\340\065\306\143\143\232\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\012\006 +\010\052\206\110\316\075\004\003\003\003\150\000\060\145\002\060 +\066\147\241\026\010\334\344\227\000\101\035\116\276\341\143\001 +\317\073\252\102\021\144\240\235\224\071\002\021\171\134\173\035 +\372\144\271\356\026\102\263\277\212\302\011\304\354\344\261\115 +\002\061\000\351\052\141\107\214\122\112\113\116\030\160\366\326 +\104\326\156\365\203\272\155\130\275\044\331\126\110\352\357\304 +\242\106\201\210\152\072\106\321\251\233\115\311\141\332\321\135 +\127\152\030 +END + +# Trust for "USERTrust ECC Certification Authority" +# Issuer: CN=USERTrust ECC Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Serial Number:5c:8b:99:c5:5a:94:c5:d2:71:56:de:cd:89:80:cc:26 +# Subject: CN=USERTrust ECC Certification Authority,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US +# Not Valid Before: Mon Feb 01 00:00:00 2010 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): 4F:F4:60:D5:4B:9C:86:DA:BF:BC:FC:57:12:E0:40:0D:2B:ED:3F:BC:4D:4F:BD:AA:86:E0:6A:DC:D2:A9:AD:7A +# Fingerprint (SHA1): D1:CB:CA:5D:B2:D5:2A:7F:69:3B:67:4D:E5:F0:5A:1D:0C:95:7D:F0 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "USERTrust ECC Certification Authority" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\321\313\312\135\262\325\052\177\151\073\147\115\345\360\132\035 +\014\225\175\360 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\372\150\274\331\265\177\255\375\311\035\006\203\050\314\044\301 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\210\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\023\060\021\006\003\125\004\010\023\012\116\145\167\040\112 +\145\162\163\145\171\061\024\060\022\006\003\125\004\007\023\013 +\112\145\162\163\145\171\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\056\060\054\006 +\003\125\004\003\023\045\125\123\105\122\124\162\165\163\164\040 +\105\103\103\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\020\134\213\231\305\132\224\305\322\161\126\336\315\211\200 +\314\046 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign ECC Root CA - R4" +# +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R4 +# Serial Number:2a:38:a4:1c:96:0a:04:de:42:b2:28:a5:0b:e8:34:98:02 +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R4 +# Not Valid Before: Tue Nov 13 00:00:00 2012 +# Not Valid After : Tue Jan 19 03:14:07 2038 +# Fingerprint (SHA-256): BE:C9:49:11:C2:95:56:76:DB:6C:0A:55:09:86:D7:6E:3B:A0:05:66:7C:44:2C:97:62:B4:FB:B7:73:DE:22:8C +# Fingerprint (SHA1): 69:69:56:2E:40:80:F4:24:A1:E7:19:9F:14:BA:F3:EE:58:AB:6A:BB +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 "GlobalSign ECC Root CA - R4" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\120\061\044\060\042\006\003\125\004\013\023\033\107\154\157 +\142\141\154\123\151\147\156\040\105\103\103\040\122\157\157\164 +\040\103\101\040\055\040\122\064\061\023\060\021\006\003\125\004 +\012\023\012\107\154\157\142\141\154\123\151\147\156\061\023\060 +\021\006\003\125\004\003\023\012\107\154\157\142\141\154\123\151 +\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\044\060\042\006\003\125\004\013\023\033\107\154\157 +\142\141\154\123\151\147\156\040\105\103\103\040\122\157\157\164 +\040\103\101\040\055\040\122\064\061\023\060\021\006\003\125\004 +\012\023\012\107\154\157\142\141\154\123\151\147\156\061\023\060 +\021\006\003\125\004\003\023\012\107\154\157\142\141\154\123\151 +\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\052\070\244\034\226\012\004\336\102\262\050\245\013\350 +\064\230\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\001\341\060\202\001\207\240\003\002\001\002\002\021\052 +\070\244\034\226\012\004\336\102\262\050\245\013\350\064\230\002 +\060\012\006\010\052\206\110\316\075\004\003\002\060\120\061\044 +\060\042\006\003\125\004\013\023\033\107\154\157\142\141\154\123 +\151\147\156\040\105\103\103\040\122\157\157\164\040\103\101\040 +\055\040\122\064\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156\060\036 +\027\015\061\062\061\061\061\063\060\060\060\060\060\060\132\027 +\015\063\070\060\061\061\071\060\063\061\064\060\067\132\060\120 +\061\044\060\042\006\003\125\004\013\023\033\107\154\157\142\141 +\154\123\151\147\156\040\105\103\103\040\122\157\157\164\040\103 +\101\040\055\040\122\064\061\023\060\021\006\003\125\004\012\023 +\012\107\154\157\142\141\154\123\151\147\156\061\023\060\021\006 +\003\125\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +\060\131\060\023\006\007\052\206\110\316\075\002\001\006\010\052 +\206\110\316\075\003\001\007\003\102\000\004\270\306\171\323\217 +\154\045\016\237\056\071\031\034\003\244\256\232\345\071\007\011 +\026\312\143\261\271\206\370\212\127\301\127\316\102\372\163\241 +\367\145\102\377\036\301\000\262\156\163\016\377\307\041\345\030 +\244\252\331\161\077\250\324\271\316\214\035\243\102\060\100\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377 +\060\035\006\003\125\035\016\004\026\004\024\124\260\173\255\105 +\270\342\100\177\373\012\156\373\276\063\311\074\243\204\325\060 +\012\006\010\052\206\110\316\075\004\003\002\003\110\000\060\105 +\002\041\000\334\222\241\240\023\246\317\003\260\346\304\041\227 +\220\372\024\127\055\003\354\356\074\323\156\312\250\154\166\274 +\242\336\273\002\040\047\250\205\047\065\233\126\306\243\362\107 +\322\267\156\033\002\000\027\252\147\246\025\221\336\372\224\354 +\173\013\370\237\204 +END + +# Trust for "GlobalSign ECC Root CA - R4" +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R4 +# Serial Number:2a:38:a4:1c:96:0a:04:de:42:b2:28:a5:0b:e8:34:98:02 +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R4 +# Not Valid Before: Tue Nov 13 00:00:00 2012 +# Not Valid After : Tue Jan 19 03:14:07 2038 +# Fingerprint (SHA-256): BE:C9:49:11:C2:95:56:76:DB:6C:0A:55:09:86:D7:6E:3B:A0:05:66:7C:44:2C:97:62:B4:FB:B7:73:DE:22:8C +# Fingerprint (SHA1): 69:69:56:2E:40:80:F4:24:A1:E7:19:9F:14:BA:F3:EE:58:AB:6A:BB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign ECC Root CA - R4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\151\151\126\056\100\200\364\044\241\347\031\237\024\272\363\356 +\130\253\152\273 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\040\360\047\150\321\176\240\235\016\346\052\312\337\134\211\216 +END +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\044\060\042\006\003\125\004\013\023\033\107\154\157 +\142\141\154\123\151\147\156\040\105\103\103\040\122\157\157\164 +\040\103\101\040\055\040\122\064\061\023\060\021\006\003\125\004 +\012\023\012\107\154\157\142\141\154\123\151\147\156\061\023\060 +\021\006\003\125\004\003\023\012\107\154\157\142\141\154\123\151 +\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\052\070\244\034\226\012\004\336\102\262\050\245\013\350 +\064\230\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "GlobalSign ECC Root CA - R5" +# +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R5 +# Serial Number:60:59:49:e0:26:2e:bb:55:f9:0a:77:8a:71:f9:4a:d8:6c +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R5 +# Not Valid Before: Tue Nov 13 00:00:00 2012 +# Not Valid After : Tue Jan 19 03:14:07 2038 +# Fingerprint (SHA-256): 17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24 +# Fingerprint (SHA1): 1F:24:C6:30:CD:A4:18:EF:20:69:FF:AD:4F:DD:5F:46:3A:1B:69:AA +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 "GlobalSign ECC Root CA - R5" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\120\061\044\060\042\006\003\125\004\013\023\033\107\154\157 +\142\141\154\123\151\147\156\040\105\103\103\040\122\157\157\164 +\040\103\101\040\055\040\122\065\061\023\060\021\006\003\125\004 +\012\023\012\107\154\157\142\141\154\123\151\147\156\061\023\060 +\021\006\003\125\004\003\023\012\107\154\157\142\141\154\123\151 +\147\156 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\044\060\042\006\003\125\004\013\023\033\107\154\157 +\142\141\154\123\151\147\156\040\105\103\103\040\122\157\157\164 +\040\103\101\040\055\040\122\065\061\023\060\021\006\003\125\004 +\012\023\012\107\154\157\142\141\154\123\151\147\156\061\023\060 +\021\006\003\125\004\003\023\012\107\154\157\142\141\154\123\151 +\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\140\131\111\340\046\056\273\125\371\012\167\212\161\371 +\112\330\154 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\036\060\202\001\244\240\003\002\001\002\002\021\140 +\131\111\340\046\056\273\125\371\012\167\212\161\371\112\330\154 +\060\012\006\010\052\206\110\316\075\004\003\003\060\120\061\044 +\060\042\006\003\125\004\013\023\033\107\154\157\142\141\154\123 +\151\147\156\040\105\103\103\040\122\157\157\164\040\103\101\040 +\055\040\122\065\061\023\060\021\006\003\125\004\012\023\012\107 +\154\157\142\141\154\123\151\147\156\061\023\060\021\006\003\125 +\004\003\023\012\107\154\157\142\141\154\123\151\147\156\060\036 +\027\015\061\062\061\061\061\063\060\060\060\060\060\060\132\027 +\015\063\070\060\061\061\071\060\063\061\064\060\067\132\060\120 +\061\044\060\042\006\003\125\004\013\023\033\107\154\157\142\141 +\154\123\151\147\156\040\105\103\103\040\122\157\157\164\040\103 +\101\040\055\040\122\065\061\023\060\021\006\003\125\004\012\023 +\012\107\154\157\142\141\154\123\151\147\156\061\023\060\021\006 +\003\125\004\003\023\012\107\154\157\142\141\154\123\151\147\156 +\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005\053 +\201\004\000\042\003\142\000\004\107\105\016\226\373\175\135\277 +\351\071\321\041\370\237\013\266\325\173\036\222\072\110\131\034 +\360\142\061\055\300\172\050\376\032\247\134\263\266\314\227\347 +\105\324\130\372\321\167\155\103\242\300\207\145\064\012\037\172 +\335\353\074\063\241\305\235\115\244\157\101\225\070\177\311\036 +\204\353\321\236\111\222\207\224\207\014\072\205\112\146\237\235 +\131\223\115\227\141\006\206\112\243\102\060\100\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006 +\003\125\035\016\004\026\004\024\075\346\051\110\233\352\007\312 +\041\104\112\046\336\156\336\322\203\320\237\131\060\012\006\010 +\052\206\110\316\075\004\003\003\003\150\000\060\145\002\061\000 +\345\151\022\311\156\333\306\061\272\011\101\341\227\370\373\375 +\232\342\175\022\311\355\174\144\323\313\005\045\213\126\331\240 +\347\136\135\116\013\203\234\133\166\051\240\011\046\041\152\142 +\002\060\161\322\265\217\134\352\073\341\170\011\205\250\165\222 +\073\310\134\375\110\357\015\164\042\250\010\342\156\305\111\316 +\307\014\274\247\141\151\361\367\073\341\052\313\371\053\363\146 +\220\067 +END + +# Trust for "GlobalSign ECC Root CA - R5" +# Issuer: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R5 +# Serial Number:60:59:49:e0:26:2e:bb:55:f9:0a:77:8a:71:f9:4a:d8:6c +# Subject: CN=GlobalSign,O=GlobalSign,OU=GlobalSign ECC Root CA - R5 +# Not Valid Before: Tue Nov 13 00:00:00 2012 +# Not Valid After : Tue Jan 19 03:14:07 2038 +# Fingerprint (SHA-256): 17:9F:BC:14:8A:3D:D0:0F:D2:4E:A1:34:58:CC:43:BF:A7:F5:9C:81:82:D7:83:A5:13:F6:EB:EC:10:0C:89:24 +# Fingerprint (SHA1): 1F:24:C6:30:CD:A4:18:EF:20:69:FF:AD:4F:DD:5F:46:3A:1B:69:AA +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "GlobalSign ECC Root CA - R5" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\037\044\306\060\315\244\030\357\040\151\377\255\117\335\137\106 +\072\033\151\252 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\237\255\073\034\002\036\212\272\027\164\070\201\014\242\274\010 +END +CKA_ISSUER MULTILINE_OCTAL +\060\120\061\044\060\042\006\003\125\004\013\023\033\107\154\157 +\142\141\154\123\151\147\156\040\105\103\103\040\122\157\157\164 +\040\103\101\040\055\040\122\065\061\023\060\021\006\003\125\004 +\012\023\012\107\154\157\142\141\154\123\151\147\156\061\023\060 +\021\006\003\125\004\003\023\012\107\154\157\142\141\154\123\151 +\147\156 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\140\131\111\340\046\056\273\125\371\012\167\212\161\371 +\112\330\154 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "VeriSign-C3SSA-G2-temporary-intermediate-after-1024bit-removal" +# +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:2f:00:6e:cd:17:70:66:e7:5f:a3:82:0a:79:1f:05:ae +# Subject: CN=VeriSign Class 3 Secure Server CA - G2,OU=Terms of use at https://www.verisign.com/rpa (c)09,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Thu Mar 26 00:00:00 2009 +# Not Valid After : Sun Mar 24 23:59:59 2019 +# Fingerprint (SHA-256): 0A:41:51:D5:E5:8B:84:B8:AC:E5:3A:5C:12:12:2A:C9:59:CD:69:91:FB:B3:8E:99:B5:76:C0:AB:DA:C3:58:14 +# Fingerprint (SHA1): 76:44:59:78:1B:AC:B0:47:63:A5:D0:A1:58:91:65:26:1F:29:8E:3B +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 "VeriSign-C3SSA-G2-temporary-intermediate-after-1024bit-removal" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\265\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\073\060\071\006\003 +\125\004\013\023\062\124\145\162\155\163\040\157\146\040\165\163 +\145\040\141\164\040\150\164\164\160\163\072\057\057\167\167\167 +\056\166\145\162\151\163\151\147\156\056\143\157\155\057\162\160 +\141\040\050\143\051\060\071\061\057\060\055\006\003\125\004\003 +\023\046\126\145\162\151\123\151\147\156\040\103\154\141\163\163 +\040\063\040\123\145\143\165\162\145\040\123\145\162\166\145\162 +\040\103\101\040\055\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\057\000\156\315\027\160\146\347\137\243\202\012\171\037 +\005\256 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\071\060\202\004\041\240\003\002\001\002\002\020\057 +\000\156\315\027\160\146\347\137\243\202\012\171\037\005\256\060 +\015\006\011\052\206\110\206\367\015\001\001\005\005\000\060\201 +\312\061\013\060\011\006\003\125\004\006\023\002\125\123\061\027 +\060\025\006\003\125\004\012\023\016\126\145\162\151\123\151\147 +\156\054\040\111\156\143\056\061\037\060\035\006\003\125\004\013 +\023\026\126\145\162\151\123\151\147\156\040\124\162\165\163\164 +\040\116\145\164\167\157\162\153\061\072\060\070\006\003\125\004 +\013\023\061\050\143\051\040\062\060\060\066\040\126\145\162\151 +\123\151\147\156\054\040\111\156\143\056\040\055\040\106\157\162 +\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145\040 +\157\156\154\171\061\105\060\103\006\003\125\004\003\023\074\126 +\145\162\151\123\151\147\156\040\103\154\141\163\163\040\063\040 +\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040\103 +\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164 +\150\157\162\151\164\171\040\055\040\107\065\060\036\027\015\060 +\071\060\063\062\066\060\060\060\060\060\060\132\027\015\061\071 +\060\063\062\064\062\063\065\071\065\071\132\060\201\265\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\027\060\025\006 +\003\125\004\012\023\016\126\145\162\151\123\151\147\156\054\040 +\111\156\143\056\061\037\060\035\006\003\125\004\013\023\026\126 +\145\162\151\123\151\147\156\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\073\060\071\006\003\125\004\013\023\062 +\124\145\162\155\163\040\157\146\040\165\163\145\040\141\164\040 +\150\164\164\160\163\072\057\057\167\167\167\056\166\145\162\151 +\163\151\147\156\056\143\157\155\057\162\160\141\040\050\143\051 +\060\071\061\057\060\055\006\003\125\004\003\023\046\126\145\162 +\151\123\151\147\156\040\103\154\141\163\163\040\063\040\123\145 +\143\165\162\145\040\123\145\162\166\145\162\040\103\101\040\055 +\040\107\062\060\202\001\042\060\015\006\011\052\206\110\206\367 +\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002 +\202\001\001\000\324\126\217\127\073\067\050\246\100\143\322\225 +\325\005\164\332\265\031\152\226\326\161\127\057\342\300\064\214 +\240\225\263\214\341\067\044\363\056\355\103\105\005\216\211\327 +\372\332\112\265\370\076\215\116\307\371\111\120\105\067\100\237 +\164\252\240\121\125\141\361\140\204\211\245\236\200\215\057\260 +\041\252\105\202\304\317\264\024\177\107\025\040\050\202\260\150 +\022\300\256\134\007\327\366\131\314\313\142\126\134\115\111\377 +\046\210\253\124\121\072\057\112\332\016\230\342\211\162\271\374 +\367\150\074\304\037\071\172\313\027\201\363\014\255\017\334\141 +\142\033\020\013\004\036\051\030\161\136\142\313\103\336\276\061 +\272\161\002\031\116\046\251\121\332\214\144\151\003\336\234\375 +\175\375\173\141\274\374\204\174\210\134\264\303\173\355\137\053 +\106\022\361\375\000\001\232\213\133\351\243\005\056\217\056\133 +\336\363\033\170\370\146\221\010\300\136\316\325\260\066\312\324 +\250\173\240\175\371\060\172\277\370\335\031\121\053\040\272\376 +\247\317\241\116\260\147\365\200\252\053\203\056\322\216\124\211 +\216\036\051\013\002\003\001\000\001\243\202\001\054\060\202\001 +\050\060\022\006\003\125\035\023\001\001\377\004\010\060\006\001 +\001\377\002\001\000\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\051\006\003\125\035\021\004\042\060\040 +\244\036\060\034\061\032\060\030\006\003\125\004\003\023\021\103 +\154\141\163\163\063\103\101\062\060\064\070\055\061\055\065\062 +\060\035\006\003\125\035\016\004\026\004\024\245\357\013\021\316 +\300\101\003\243\112\145\220\110\262\034\340\127\055\175\107\060 +\146\006\003\125\035\040\004\137\060\135\060\133\006\013\140\206 +\110\001\206\370\105\001\007\027\003\060\114\060\043\006\010\053 +\006\001\005\005\007\002\001\026\027\150\164\164\160\163\072\057 +\057\144\056\163\171\155\143\142\056\143\157\155\057\143\160\163 +\060\045\006\010\053\006\001\005\005\007\002\002\060\031\032\027 +\150\164\164\160\163\072\057\057\144\056\163\171\155\143\142\056 +\143\157\155\057\162\160\141\060\057\006\003\125\035\037\004\050 +\060\046\060\044\240\042\240\040\206\036\150\164\164\160\072\057 +\057\163\056\163\171\155\143\142\056\143\157\155\057\160\143\141 +\063\055\147\065\056\143\162\154\060\037\006\003\125\035\043\004 +\030\060\026\200\024\177\323\145\247\302\335\354\273\360\060\011 +\363\103\071\372\002\257\063\061\063\060\015\006\011\052\206\110 +\206\367\015\001\001\005\005\000\003\202\001\001\000\053\216\024 +\314\354\206\010\140\067\213\154\145\211\045\041\336\057\122\242 +\007\236\130\323\263\026\170\001\231\121\225\264\023\167\314\167 +\335\013\134\201\067\326\276\366\142\326\004\067\013\030\163\232 +\323\366\301\242\036\155\234\273\214\021\346\076\022\136\007\137 +\013\203\134\164\002\340\120\364\261\046\033\155\306\350\351\277 +\115\271\001\025\031\354\120\232\371\021\360\201\130\103\054\115 +\021\100\263\132\106\010\246\136\163\241\210\022\065\214\377\003 +\072\275\326\235\372\347\334\226\271\032\144\076\304\375\331\012 +\266\145\236\272\245\250\130\374\073\042\360\242\127\356\212\127 +\107\234\167\307\045\341\254\064\005\115\363\202\176\101\043\272 +\264\127\363\347\306\001\145\327\115\211\231\034\151\115\136\170 +\366\353\162\161\075\262\304\225\001\237\135\014\267\057\045\246 +\134\171\101\357\236\304\147\074\241\235\177\161\072\320\225\227 +\354\170\102\164\230\156\276\076\150\114\127\074\250\223\101\207 +\013\344\271\257\221\373\120\114\014\272\300\044\047\321\025\333 +\145\110\041\012\057\327\334\176\240\314\145\176\171 +END + +# Trust for "VeriSign-C3SSA-G2-temporary-intermediate-after-1024bit-removal" +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5,OU="(c) 2006 VeriSign, Inc. - For authorized use only",OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Serial Number:2f:00:6e:cd:17:70:66:e7:5f:a3:82:0a:79:1f:05:ae +# Subject: CN=VeriSign Class 3 Secure Server CA - G2,OU=Terms of use at https://www.verisign.com/rpa (c)09,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US +# Not Valid Before: Thu Mar 26 00:00:00 2009 +# Not Valid After : Sun Mar 24 23:59:59 2019 +# Fingerprint (SHA-256): 0A:41:51:D5:E5:8B:84:B8:AC:E5:3A:5C:12:12:2A:C9:59:CD:69:91:FB:B3:8E:99:B5:76:C0:AB:DA:C3:58:14 +# Fingerprint (SHA1): 76:44:59:78:1B:AC:B0:47:63:A5:D0:A1:58:91:65:26:1F:29:8E:3B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "VeriSign-C3SSA-G2-temporary-intermediate-after-1024bit-removal" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\166\104\131\170\033\254\260\107\143\245\320\241\130\221\145\046 +\037\051\216\073 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\277\022\155\372\174\325\133\046\171\072\215\252\021\357\057\134 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\312\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\027\060\025\006\003\125\004\012\023\016\126\145\162\151\123 +\151\147\156\054\040\111\156\143\056\061\037\060\035\006\003\125 +\004\013\023\026\126\145\162\151\123\151\147\156\040\124\162\165 +\163\164\040\116\145\164\167\157\162\153\061\072\060\070\006\003 +\125\004\013\023\061\050\143\051\040\062\060\060\066\040\126\145 +\162\151\123\151\147\156\054\040\111\156\143\056\040\055\040\106 +\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163 +\145\040\157\156\154\171\061\105\060\103\006\003\125\004\003\023 +\074\126\145\162\151\123\151\147\156\040\103\154\141\163\163\040 +\063\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171 +\040\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101 +\165\164\150\157\162\151\164\171\040\055\040\107\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\057\000\156\315\027\160\146\347\137\243\202\012\171\037 +\005\256 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Staat der Nederlanden Root CA - G3" +# +# Issuer: CN=Staat der Nederlanden Root CA - G3,O=Staat der Nederlanden,C=NL +# Serial Number: 10003001 (0x98a239) +# Subject: CN=Staat der Nederlanden Root CA - G3,O=Staat der Nederlanden,C=NL +# Not Valid Before: Thu Nov 14 11:28:42 2013 +# Not Valid After : Mon Nov 13 23:00:00 2028 +# Fingerprint (SHA-256): 3C:4F:B0:B9:5A:B8:B3:00:32:F4:32:B8:6F:53:5F:E1:72:C1:85:D0:FD:39:86:58:37:CF:36:18:7F:A6:F4:28 +# Fingerprint (SHA1): D8:EB:6B:41:51:92:59:E0:F3:E7:85:00:C0:3D:B6:88:97:C9:EE:FC +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 - G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\242\071 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\164\060\202\003\134\240\003\002\001\002\002\004\000 +\230\242\071\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\132\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\036\060\034\006\003\125\004\012\014\025\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\061\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\063\060\036 +\027\015\061\063\061\061\061\064\061\061\062\070\064\062\132\027 +\015\062\070\061\061\061\063\062\063\060\060\060\060\132\060\132 +\061\013\060\011\006\003\125\004\006\023\002\116\114\061\036\060 +\034\006\003\125\004\012\014\025\123\164\141\141\164\040\144\145 +\162\040\116\145\144\145\162\154\141\156\144\145\156\061\053\060 +\051\006\003\125\004\003\014\042\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\040\055\040\107\063\060\202\002\042\060\015 +\006\011\052\206\110\206\367\015\001\001\001\005\000\003\202\002 +\017\000\060\202\002\012\002\202\002\001\000\276\062\242\124\017 +\160\373\054\134\131\353\154\304\244\121\350\205\052\263\314\112 +\064\362\260\137\363\016\307\034\075\123\036\210\010\150\330\157 +\075\255\302\236\314\202\147\007\047\207\150\161\072\237\165\226 +\042\106\005\260\355\255\307\133\236\052\336\234\374\072\306\225 +\247\365\027\147\030\347\057\111\010\014\134\317\346\314\064\355 +\170\373\120\261\334\153\062\360\242\376\266\074\344\354\132\227 +\307\077\036\160\010\060\240\334\305\263\155\157\320\202\162\021 +\253\322\201\150\131\202\027\267\170\222\140\372\314\336\077\204 +\353\215\070\063\220\012\162\043\372\065\314\046\161\061\321\162 +\050\222\331\133\043\155\146\265\155\007\102\353\246\063\316\222 +\333\300\366\154\143\170\315\312\116\075\265\345\122\233\361\276 +\073\346\124\140\260\146\036\011\253\007\376\124\211\021\102\321 +\367\044\272\140\170\032\230\367\311\021\375\026\301\065\032\124 +\165\357\103\323\345\256\116\316\347\173\303\306\116\141\121\113 +\253\232\105\113\241\037\101\275\110\123\025\161\144\013\206\263 +\345\056\276\316\244\033\301\051\204\242\265\313\010\043\166\103 +\042\044\037\027\004\324\156\234\306\374\177\053\146\032\354\212 +\345\326\317\115\365\143\011\267\025\071\326\173\254\353\343\174 +\351\116\374\165\102\310\355\130\225\014\006\102\242\234\367\344 +\160\263\337\162\157\132\067\100\211\330\205\244\327\361\013\336 +\103\031\324\112\130\054\214\212\071\236\277\204\207\361\026\073 +\066\014\351\323\264\312\154\031\101\122\011\241\035\260\152\277 +\202\357\160\121\041\062\334\005\166\214\313\367\144\344\003\120 +\257\214\221\147\253\305\362\356\130\330\336\276\367\347\061\317 +\154\311\073\161\301\325\210\265\145\274\300\350\027\027\007\022 +\265\134\322\253\040\223\264\346\202\203\160\066\305\315\243\215 +\255\213\354\243\301\103\207\346\103\342\064\276\225\213\065\355 +\007\071\332\250\035\172\237\066\236\022\260\014\145\022\220\025 +\140\331\046\100\104\343\126\140\245\020\324\152\074\375\101\334 +\016\132\107\266\357\227\141\165\117\331\376\307\262\035\324\355 +\135\111\263\251\152\313\146\204\023\325\134\240\334\337\156\167 +\006\321\161\165\310\127\157\257\017\167\133\002\003\001\000\001 +\243\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005 +\060\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024 +\124\255\372\307\222\127\256\312\065\234\056\022\373\344\272\135 +\040\334\224\127\060\015\006\011\052\206\110\206\367\015\001\001 +\013\005\000\003\202\002\001\000\060\231\235\005\062\310\136\016 +\073\230\001\072\212\244\347\007\367\172\370\347\232\337\120\103 +\123\227\052\075\312\074\107\230\056\341\025\173\361\222\363\141 +\332\220\045\026\145\300\237\124\135\016\003\073\133\167\002\234 +\204\266\015\230\137\064\335\073\143\302\303\050\201\302\234\051 +\056\051\342\310\303\001\362\063\352\052\252\314\011\010\367\145 +\147\306\315\337\323\266\053\247\275\314\321\016\160\137\270\043 +\321\313\221\116\012\364\310\172\345\331\143\066\301\324\337\374 +\042\227\367\140\135\352\051\057\130\262\275\130\275\215\226\117 +\020\165\277\110\173\075\121\207\241\074\164\042\302\374\007\177 +\200\334\304\254\376\152\301\160\060\260\351\216\151\342\054\151 +\201\224\011\272\335\376\115\300\203\214\224\130\300\106\040\257 +\234\037\002\370\065\125\111\057\106\324\300\360\240\226\002\017 +\063\305\161\363\236\043\175\224\267\375\072\323\011\203\006\041 +\375\140\075\256\062\300\322\356\215\246\360\347\264\202\174\012 +\314\160\311\171\200\370\376\114\367\065\204\031\212\061\373\012 +\331\327\177\233\360\242\232\153\303\005\112\355\101\140\024\060 +\321\252\021\102\156\323\043\002\004\013\306\145\335\335\122\167 +\332\201\153\262\250\372\001\070\271\226\352\052\154\147\227\211 +\224\236\274\341\124\325\344\152\170\357\112\275\053\232\075\100 +\176\306\300\165\322\156\373\150\060\354\354\213\235\371\111\065 +\232\032\054\331\263\225\071\325\036\222\367\246\271\145\057\345 +\075\155\072\110\114\010\334\344\050\022\050\276\175\065\134\352 +\340\026\176\023\033\152\327\076\327\236\374\055\165\262\301\024 +\325\043\003\333\133\157\013\076\170\057\015\336\063\215\026\267 +\110\347\203\232\201\017\173\301\103\115\125\004\027\070\112\121 +\325\131\242\211\164\323\237\276\036\113\327\306\155\267\210\044 +\157\140\221\244\202\205\133\126\101\274\320\104\253\152\023\276 +\321\054\130\267\022\063\130\262\067\143\334\023\365\224\035\077 +\100\121\365\117\365\072\355\310\305\353\302\036\035\026\225\172 +\307\176\102\161\223\156\113\025\267\060\337\252\355\127\205\110 +\254\035\152\335\071\151\344\341\171\170\276\316\005\277\241\014 +\367\200\173\041\147\047\060\131 +END + +# Trust for "Staat der Nederlanden Root CA - G3" +# Issuer: CN=Staat der Nederlanden Root CA - G3,O=Staat der Nederlanden,C=NL +# Serial Number: 10003001 (0x98a239) +# Subject: CN=Staat der Nederlanden Root CA - G3,O=Staat der Nederlanden,C=NL +# Not Valid Before: Thu Nov 14 11:28:42 2013 +# Not Valid After : Mon Nov 13 23:00:00 2028 +# Fingerprint (SHA-256): 3C:4F:B0:B9:5A:B8:B3:00:32:F4:32:B8:6F:53:5F:E1:72:C1:85:D0:FD:39:86:58:37:CF:36:18:7F:A6:F4:28 +# Fingerprint (SHA1): D8:EB:6B:41:51:92:59:E0:F3:E7:85:00:C0:3D:B6:88:97:C9:EE:FC +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 - G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\330\353\153\101\121\222\131\340\363\347\205\000\300\075\266\210 +\227\311\356\374 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\013\106\147\007\333\020\057\031\214\065\120\140\321\013\364\067 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\053\060\051\006\003\125\004\003\014\042\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\040\055\040\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\242\071 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Staat der Nederlanden EV Root CA" +# +# Issuer: CN=Staat der Nederlanden EV Root CA,O=Staat der Nederlanden,C=NL +# Serial Number: 10000013 (0x98968d) +# Subject: CN=Staat der Nederlanden EV Root CA,O=Staat der Nederlanden,C=NL +# Not Valid Before: Wed Dec 08 11:19:29 2010 +# Not Valid After : Thu Dec 08 11:10:28 2022 +# Fingerprint (SHA-256): 4D:24:91:41:4C:FE:95:67:46:EC:4C:EF:A6:CF:6F:72:E2:8A:13:29:43:2F:9D:8A:90:7A:C4:CB:5D:AD:C1:5A +# Fingerprint (SHA1): 76:E2:7E:C1:4F:DB:82:C1:C0:A6:75:B5:05:BE:3D:29:B4:ED:DB:BB +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 EV Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\051\060\047\006\003\125\004\003\014\040\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\105\126\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\051\060\047\006\003\125\004\003\014\040\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\105\126\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\215 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\160\060\202\003\130\240\003\002\001\002\002\004\000 +\230\226\215\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\130\061\013\060\011\006\003\125\004\006\023\002\116 +\114\061\036\060\034\006\003\125\004\012\014\025\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\061\051\060\047\006\003\125\004\003\014\040\123\164\141\141 +\164\040\144\145\162\040\116\145\144\145\162\154\141\156\144\145 +\156\040\105\126\040\122\157\157\164\040\103\101\060\036\027\015 +\061\060\061\062\060\070\061\061\061\071\062\071\132\027\015\062 +\062\061\062\060\070\061\061\061\060\062\070\132\060\130\061\013 +\060\011\006\003\125\004\006\023\002\116\114\061\036\060\034\006 +\003\125\004\012\014\025\123\164\141\141\164\040\144\145\162\040 +\116\145\144\145\162\154\141\156\144\145\156\061\051\060\047\006 +\003\125\004\003\014\040\123\164\141\141\164\040\144\145\162\040 +\116\145\144\145\162\154\141\156\144\145\156\040\105\126\040\122 +\157\157\164\040\103\101\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\343\307\176\211\371\044\113\072\322 +\063\203\065\054\151\354\334\011\244\343\121\250\045\053\171\270 +\010\075\340\221\272\204\205\306\205\244\312\346\311\056\123\244 +\311\044\036\375\125\146\161\135\054\305\140\150\004\267\331\302 +\122\046\070\210\244\326\073\100\246\302\315\077\315\230\223\263 +\124\024\130\226\125\325\120\376\206\255\244\143\177\134\207\366 +\216\346\047\222\147\027\222\002\003\054\334\326\146\164\355\335 +\147\377\301\141\215\143\117\017\233\155\027\060\046\357\253\322 +\037\020\240\371\305\177\026\151\201\003\107\355\036\150\215\162 +\241\115\262\046\306\272\154\137\155\326\257\321\261\023\216\251 +\255\363\136\151\165\046\030\076\101\053\041\177\356\213\135\007 +\006\235\103\304\051\012\053\374\052\076\206\313\074\203\072\371 +\311\015\332\305\231\342\274\170\101\063\166\341\277\057\135\345 +\244\230\120\014\025\335\340\372\234\177\070\150\320\262\246\172 +\247\321\061\275\176\212\130\047\103\263\272\063\221\323\247\230 +\025\134\232\346\323\017\165\331\374\101\230\227\076\252\045\333 +\217\222\056\260\173\014\137\361\143\251\067\371\233\165\151\114 +\050\046\045\332\325\362\022\160\105\125\343\337\163\136\067\365 +\041\154\220\216\065\132\311\323\043\353\323\300\276\170\254\102 +\050\130\146\245\106\155\160\002\327\020\371\113\124\374\135\206 +\112\207\317\177\312\105\254\021\132\265\040\121\215\057\210\107 +\227\071\300\317\272\300\102\001\100\231\110\041\013\153\247\322 +\375\226\325\321\276\106\235\111\340\013\246\240\042\116\070\320 +\301\074\060\274\160\217\054\165\314\320\305\214\121\073\075\224 +\010\144\046\141\175\271\303\145\217\024\234\041\320\252\375\027 +\162\003\217\275\233\214\346\136\123\236\271\235\357\202\273\341 +\274\342\162\101\133\041\224\323\105\067\224\321\337\011\071\135 +\347\043\252\232\035\312\155\250\012\206\205\212\202\276\102\007 +\326\362\070\202\163\332\207\133\345\074\323\236\076\247\073\236 +\364\003\263\371\361\175\023\164\002\377\273\241\345\372\000\171 +\034\246\146\101\210\134\140\127\246\056\011\304\272\375\232\317 +\247\037\100\303\273\314\132\012\125\113\073\070\166\121\270\143 +\213\204\224\026\346\126\363\002\003\001\000\001\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\035\006\003\125\035\016\004\026\004\024\376\253\000\220 +\230\236\044\374\251\314\032\212\373\047\270\277\060\156\250\073 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003 +\202\002\001\000\317\167\054\156\126\276\116\263\266\204\000\224 +\253\107\311\015\322\166\307\206\237\035\007\323\266\264\273\010 +\170\257\151\322\013\111\336\063\305\254\255\302\210\002\175\006 +\267\065\002\301\140\311\277\304\350\224\336\324\323\251\023\045 +\132\376\156\242\256\175\005\334\175\363\154\360\176\246\215\356 +\331\327\316\130\027\350\251\051\256\163\110\207\347\233\312\156 +\051\241\144\137\031\023\367\256\006\020\377\121\306\233\115\125 +\045\117\223\231\020\001\123\165\361\023\316\307\246\101\101\322 +\277\210\245\177\105\374\254\270\245\265\063\014\202\304\373\007 +\366\152\345\045\204\137\006\312\301\206\071\021\333\130\315\167 +\073\054\302\114\017\136\232\343\360\253\076\141\033\120\044\302 +\300\364\361\031\360\021\051\266\245\030\002\233\327\143\114\160 +\214\107\243\003\103\134\271\135\106\240\015\157\377\131\216\276 +\335\237\162\303\133\053\337\214\133\316\345\014\106\154\222\262 +\012\243\114\124\102\030\025\022\030\275\332\374\272\164\156\377 +\301\266\240\144\330\251\137\125\256\237\134\152\166\226\330\163 +\147\207\373\115\177\134\356\151\312\163\020\373\212\251\375\236 +\275\066\070\111\111\207\364\016\024\360\351\207\270\077\247\117 +\172\132\216\171\324\223\344\273\150\122\204\254\154\351\363\230 +\160\125\162\062\371\064\253\053\111\265\315\040\142\344\072\172 +\147\143\253\226\334\155\256\227\354\374\237\166\126\210\056\146 +\317\133\266\311\244\260\327\005\272\341\047\057\223\273\046\052 +\242\223\260\033\363\216\276\035\100\243\271\066\217\076\202\032 +\032\136\210\352\120\370\131\342\203\106\051\013\343\104\134\341 +\225\266\151\220\232\024\157\227\256\201\317\150\357\231\232\276 +\265\347\341\177\370\372\023\107\026\114\314\155\010\100\347\213 +\170\157\120\202\104\120\077\146\006\212\253\103\204\126\112\017 +\040\055\206\016\365\322\333\322\172\212\113\315\245\350\116\361 +\136\046\045\001\131\043\240\176\322\366\176\041\127\327\047\274 +\025\127\114\244\106\301\340\203\036\014\114\115\037\117\006\031 +\342\371\250\364\072\202\241\262\171\103\171\326\255\157\172\047 +\220\003\244\352\044\207\077\331\275\331\351\362\137\120\111\034 +\356\354\327\056 +END + +# Trust for "Staat der Nederlanden EV Root CA" +# Issuer: CN=Staat der Nederlanden EV Root CA,O=Staat der Nederlanden,C=NL +# Serial Number: 10000013 (0x98968d) +# Subject: CN=Staat der Nederlanden EV Root CA,O=Staat der Nederlanden,C=NL +# Not Valid Before: Wed Dec 08 11:19:29 2010 +# Not Valid After : Thu Dec 08 11:10:28 2022 +# Fingerprint (SHA-256): 4D:24:91:41:4C:FE:95:67:46:EC:4C:EF:A6:CF:6F:72:E2:8A:13:29:43:2F:9D:8A:90:7A:C4:CB:5D:AD:C1:5A +# Fingerprint (SHA1): 76:E2:7E:C1:4F:DB:82:C1:C0:A6:75:B5:05:BE:3D:29:B4:ED:DB:BB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_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 EV Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\166\342\176\301\117\333\202\301\300\246\165\265\005\276\075\051 +\264\355\333\273 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\374\006\257\173\350\032\361\232\264\350\322\160\037\300\365\272 +END +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\116\114\061 +\036\060\034\006\003\125\004\012\014\025\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\061 +\051\060\047\006\003\125\004\003\014\040\123\164\141\141\164\040 +\144\145\162\040\116\145\144\145\162\154\141\156\144\145\156\040 +\105\126\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\000\230\226\215 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IdenTrust Commercial Root CA 1" +# +# Issuer: CN=IdenTrust Commercial Root CA 1,O=IdenTrust,C=US +# Serial Number:0a:01:42:80:00:00:01:45:23:c8:44:b5:00:00:00:02 +# Subject: CN=IdenTrust Commercial Root CA 1,O=IdenTrust,C=US +# Not Valid Before: Thu Jan 16 18:12:23 2014 +# Not Valid After : Mon Jan 16 18:12:23 2034 +# Fingerprint (SHA-256): 5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE +# Fingerprint (SHA1): DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25 +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 "IdenTrust Commercial Root CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\022\060\020\006\003\125\004\012\023\011\111\144\145\156\124\162 +\165\163\164\061\047\060\045\006\003\125\004\003\023\036\111\144 +\145\156\124\162\165\163\164\040\103\157\155\155\145\162\143\151 +\141\154\040\122\157\157\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\022\060\020\006\003\125\004\012\023\011\111\144\145\156\124\162 +\165\163\164\061\047\060\045\006\003\125\004\003\023\036\111\144 +\145\156\124\162\165\163\164\040\103\157\155\155\145\162\143\151 +\141\154\040\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\102\200\000\000\001\105\043\310\104\265\000\000 +\000\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\140\060\202\003\110\240\003\002\001\002\002\020\012 +\001\102\200\000\000\001\105\043\310\104\265\000\000\000\002\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\112 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\022\060 +\020\006\003\125\004\012\023\011\111\144\145\156\124\162\165\163 +\164\061\047\060\045\006\003\125\004\003\023\036\111\144\145\156 +\124\162\165\163\164\040\103\157\155\155\145\162\143\151\141\154 +\040\122\157\157\164\040\103\101\040\061\060\036\027\015\061\064 +\060\061\061\066\061\070\061\062\062\063\132\027\015\063\064\060 +\061\061\066\061\070\061\062\062\063\132\060\112\061\013\060\011 +\006\003\125\004\006\023\002\125\123\061\022\060\020\006\003\125 +\004\012\023\011\111\144\145\156\124\162\165\163\164\061\047\060 +\045\006\003\125\004\003\023\036\111\144\145\156\124\162\165\163 +\164\040\103\157\155\155\145\162\143\151\141\154\040\122\157\157 +\164\040\103\101\040\061\060\202\002\042\060\015\006\011\052\206 +\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060\202 +\002\012\002\202\002\001\000\247\120\031\336\077\231\075\324\063 +\106\361\157\121\141\202\262\251\117\217\147\211\135\204\331\123 +\335\014\050\331\327\360\377\256\225\103\162\231\371\265\135\174 +\212\301\102\341\061\120\164\321\201\015\174\315\233\041\253\103 +\342\254\255\136\206\156\363\011\212\037\132\062\275\242\353\224 +\371\350\134\012\354\377\230\322\257\161\263\264\123\237\116\207 +\357\222\274\275\354\117\062\060\210\113\027\136\127\304\123\302 +\366\002\227\215\331\142\053\277\044\037\142\215\337\303\270\051 +\113\111\170\074\223\140\210\042\374\231\332\066\310\302\242\324 +\054\124\000\147\065\156\163\277\002\130\360\244\335\345\260\242 +\046\172\312\340\066\245\031\026\365\375\267\357\256\077\100\365 +\155\132\004\375\316\064\312\044\334\164\043\033\135\063\023\022 +\135\304\001\045\366\060\335\002\135\237\340\325\107\275\264\353 +\033\241\273\111\111\330\237\133\002\363\212\344\044\220\344\142 +\117\117\301\257\213\016\164\027\250\321\162\210\152\172\001\111 +\314\264\106\171\306\027\261\332\230\036\007\131\372\165\041\205 +\145\335\220\126\316\373\253\245\140\235\304\235\371\122\260\213 +\275\207\371\217\053\043\012\043\166\073\367\063\341\311\000\363 +\151\371\113\242\340\116\274\176\223\071\204\007\367\104\160\176 +\376\007\132\345\261\254\321\030\314\362\065\345\111\111\010\312 +\126\311\075\373\017\030\175\213\073\301\023\302\115\217\311\117 +\016\067\351\037\241\016\152\337\142\056\313\065\006\121\171\054 +\310\045\070\364\372\113\247\211\134\234\322\343\015\071\206\112 +\164\174\325\131\207\302\077\116\014\134\122\364\075\367\122\202 +\361\352\243\254\375\111\064\032\050\363\101\210\072\023\356\350 +\336\377\231\035\137\272\313\350\036\362\271\120\140\300\061\323 +\163\345\357\276\240\355\063\013\164\276\040\040\304\147\154\360 +\010\003\172\125\200\177\106\116\226\247\364\036\076\341\366\330 +\011\341\063\144\053\143\327\062\136\237\371\300\173\017\170\157 +\227\274\223\232\371\234\022\220\170\172\200\207\025\327\162\164 +\234\125\164\170\261\272\341\156\160\004\272\117\240\272\150\303 +\173\377\061\360\163\075\075\224\052\261\013\101\016\240\376\115 +\210\145\153\171\063\264\327\002\003\001\000\001\243\102\060\100 +\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\035\006\003\125\035\016\004\026\004\024\355\104\031\300 +\323\360\006\213\356\244\173\276\102\347\046\124\310\216\066\166 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003 +\202\002\001\000\015\256\220\062\366\246\113\174\104\166\031\141 +\036\047\050\315\136\124\357\045\274\343\010\220\371\051\327\256 +\150\010\341\224\000\130\357\056\056\176\123\122\214\266\134\007 +\352\210\272\231\213\120\224\327\202\200\337\141\011\000\223\255 +\015\024\346\316\301\362\067\224\170\260\137\234\263\242\163\270 +\217\005\223\070\315\215\076\260\270\373\300\317\261\362\354\055 +\055\033\314\354\252\232\263\252\140\202\033\055\073\303\204\075 +\127\212\226\036\234\165\270\323\060\315\140\010\203\220\323\216 +\124\361\115\146\300\135\164\003\100\243\356\205\176\302\037\167 +\234\006\350\301\247\030\135\122\225\355\311\335\045\236\155\372 +\251\355\243\072\064\320\131\173\332\355\120\363\065\277\355\353 +\024\115\061\307\140\364\332\361\207\234\342\110\342\306\305\067 +\373\006\020\372\165\131\146\061\107\051\332\166\232\034\351\202 +\256\357\232\271\121\367\210\043\232\151\225\142\074\345\125\200 +\066\327\124\002\377\361\271\135\316\324\043\157\330\105\204\112 +\133\145\357\211\014\335\024\247\040\313\030\245\045\264\015\371 +\001\360\242\322\364\000\310\164\216\241\052\110\216\145\333\023 +\304\342\045\027\175\353\276\207\133\027\040\124\121\223\112\123 +\003\013\354\135\312\063\355\142\375\105\307\057\133\334\130\240 +\200\071\346\372\327\376\023\024\246\355\075\224\112\102\164\324 +\303\167\131\163\315\217\106\276\125\070\357\372\350\221\062\352 +\227\130\004\042\336\070\303\314\274\155\311\063\072\152\012\151 +\077\240\310\352\162\217\214\143\206\043\275\155\074\226\236\225 +\340\111\114\252\242\271\052\033\234\066\201\170\355\303\350\106 +\342\046\131\104\165\036\331\165\211\121\315\020\204\235\141\140 +\313\135\371\227\042\115\216\230\346\343\177\366\133\273\256\315 +\312\112\201\153\136\013\363\121\341\164\053\351\176\047\247\331 +\231\111\116\370\245\200\333\045\017\034\143\142\212\311\063\147 +\153\074\020\203\306\255\336\250\315\026\216\215\360\007\067\161 +\237\362\253\374\101\365\301\213\354\000\067\135\011\345\116\200 +\357\372\261\134\070\006\245\033\112\341\334\070\055\074\334\253 +\037\220\032\325\112\234\356\321\160\154\314\356\364\127\370\030 +\272\204\156\207 +END + +# Trust for "IdenTrust Commercial Root CA 1" +# Issuer: CN=IdenTrust Commercial Root CA 1,O=IdenTrust,C=US +# Serial Number:0a:01:42:80:00:00:01:45:23:c8:44:b5:00:00:00:02 +# Subject: CN=IdenTrust Commercial Root CA 1,O=IdenTrust,C=US +# Not Valid Before: Thu Jan 16 18:12:23 2014 +# Not Valid After : Mon Jan 16 18:12:23 2034 +# Fingerprint (SHA-256): 5D:56:49:9B:E4:D2:E0:8B:CF:CA:D0:8A:3E:38:72:3D:50:50:3B:DE:70:69:48:E4:2F:55:60:30:19:E5:28:AE +# Fingerprint (SHA1): DF:71:7E:AA:4A:D9:4E:C9:55:84:99:60:2D:48:DE:5F:BC:F0:3A:25 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IdenTrust Commercial Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\337\161\176\252\112\331\116\311\125\204\231\140\055\110\336\137 +\274\360\072\045 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\263\076\167\163\165\356\240\323\343\176\111\143\111\131\273\307 +END +CKA_ISSUER MULTILINE_OCTAL +\060\112\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\022\060\020\006\003\125\004\012\023\011\111\144\145\156\124\162 +\165\163\164\061\047\060\045\006\003\125\004\003\023\036\111\144 +\145\156\124\162\165\163\164\040\103\157\155\155\145\162\143\151 +\141\154\040\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\102\200\000\000\001\105\043\310\104\265\000\000 +\000\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "IdenTrust Public Sector Root CA 1" +# +# Issuer: CN=IdenTrust Public Sector Root CA 1,O=IdenTrust,C=US +# Serial Number:0a:01:42:80:00:00:01:45:23:cf:46:7c:00:00:00:02 +# Subject: CN=IdenTrust Public Sector Root CA 1,O=IdenTrust,C=US +# Not Valid Before: Thu Jan 16 17:53:32 2014 +# Not Valid After : Mon Jan 16 17:53:32 2034 +# Fingerprint (SHA-256): 30:D0:89:5A:9A:44:8A:26:20:91:63:55:22:D1:F5:20:10:B5:86:7A:CA:E1:2C:78:EF:95:8F:D4:F4:38:9F:2F +# Fingerprint (SHA1): BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD +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 "IdenTrust Public Sector Root CA 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\115\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\022\060\020\006\003\125\004\012\023\011\111\144\145\156\124\162 +\165\163\164\061\052\060\050\006\003\125\004\003\023\041\111\144 +\145\156\124\162\165\163\164\040\120\165\142\154\151\143\040\123 +\145\143\164\157\162\040\122\157\157\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\115\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\022\060\020\006\003\125\004\012\023\011\111\144\145\156\124\162 +\165\163\164\061\052\060\050\006\003\125\004\003\023\041\111\144 +\145\156\124\162\165\163\164\040\120\165\142\154\151\143\040\123 +\145\143\164\157\162\040\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\102\200\000\000\001\105\043\317\106\174\000\000 +\000\002 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\146\060\202\003\116\240\003\002\001\002\002\020\012 +\001\102\200\000\000\001\105\043\317\106\174\000\000\000\002\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\115 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\022\060 +\020\006\003\125\004\012\023\011\111\144\145\156\124\162\165\163 +\164\061\052\060\050\006\003\125\004\003\023\041\111\144\145\156 +\124\162\165\163\164\040\120\165\142\154\151\143\040\123\145\143 +\164\157\162\040\122\157\157\164\040\103\101\040\061\060\036\027 +\015\061\064\060\061\061\066\061\067\065\063\063\062\132\027\015 +\063\064\060\061\061\066\061\067\065\063\063\062\132\060\115\061 +\013\060\011\006\003\125\004\006\023\002\125\123\061\022\060\020 +\006\003\125\004\012\023\011\111\144\145\156\124\162\165\163\164 +\061\052\060\050\006\003\125\004\003\023\041\111\144\145\156\124 +\162\165\163\164\040\120\165\142\154\151\143\040\123\145\143\164 +\157\162\040\122\157\157\164\040\103\101\040\061\060\202\002\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\002\017\000\060\202\002\012\002\202\002\001\000\266\042\224 +\374\244\110\257\350\107\153\012\373\047\166\344\362\077\212\073 +\172\112\054\061\052\214\215\260\251\303\061\153\250\167\166\204 +\046\266\254\201\102\015\010\353\125\130\273\172\370\274\145\175 +\362\240\155\213\250\107\351\142\166\036\021\356\010\024\321\262 +\104\026\364\352\320\372\036\057\136\333\313\163\101\256\274\000 +\260\112\053\100\262\254\341\073\113\302\055\235\344\241\233\354 +\032\072\036\360\010\263\320\344\044\065\007\237\234\264\311\122 +\155\333\007\312\217\265\133\360\203\363\117\307\055\245\310\255 +\313\225\040\244\061\050\127\130\132\344\215\033\232\253\236\015 +\014\362\012\063\071\042\071\012\227\056\363\123\167\271\104\105 +\375\204\313\066\040\201\131\055\232\157\155\110\110\141\312\114 +\337\123\321\257\122\274\104\237\253\057\153\203\162\357\165\200 +\332\006\063\033\135\310\332\143\306\115\315\254\146\061\315\321 +\336\076\207\020\066\341\271\244\172\357\140\120\262\313\312\246 +\126\340\067\257\253\064\023\071\045\350\071\146\344\230\172\252 +\022\230\234\131\146\206\076\255\361\260\312\076\006\017\173\360 +\021\113\067\240\104\155\173\313\250\214\161\364\325\265\221\066 +\314\360\025\306\053\336\121\027\261\227\114\120\075\261\225\131 +\174\005\175\055\041\325\000\277\001\147\242\136\173\246\134\362 +\367\042\361\220\015\223\333\252\104\121\146\314\175\166\003\353 +\152\250\052\070\031\227\166\015\153\212\141\371\274\366\356\166 +\375\160\053\335\051\074\370\012\036\133\102\034\213\126\057\125 +\033\034\241\056\265\307\026\346\370\252\074\222\216\151\266\001 +\301\265\206\235\211\017\013\070\224\124\350\352\334\236\075\045 +\274\123\046\355\325\253\071\252\305\100\114\124\253\262\264\331 +\331\370\327\162\333\034\274\155\275\145\137\357\210\065\052\146 +\057\356\366\263\145\360\063\215\174\230\101\151\106\017\103\034 +\151\372\233\265\320\141\152\315\312\113\331\114\220\106\253\025 +\131\241\107\124\051\056\203\050\137\034\302\242\253\162\027\000 +\006\216\105\354\213\342\063\075\177\332\031\104\344\142\162\303 +\337\042\306\362\126\324\335\137\225\162\355\155\137\367\110\003 +\133\375\305\052\240\366\163\043\204\020\033\001\347\002\003\001 +\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\343\161\340\236\330\247\102\331\333\161\221\153\224\223 +\353\303\243\321\024\243\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\003\202\002\001\000\107\372\335\012\260\021 +\221\070\255\115\135\367\345\016\227\124\031\202\110\207\124\214 +\252\144\231\330\132\376\210\001\305\130\245\231\261\043\124\043 +\267\152\035\040\127\345\001\142\101\027\323\011\333\165\313\156 +\124\220\165\376\032\237\201\012\302\335\327\367\011\320\133\162 +\025\344\036\011\152\075\063\363\041\232\346\025\176\255\121\325 +\015\020\355\175\102\300\217\356\300\232\010\325\101\326\134\016 +\041\151\156\200\141\016\025\300\270\317\305\111\022\122\314\276 +\072\314\324\056\070\005\336\065\375\037\157\270\200\150\230\075 +\115\240\312\100\145\322\163\174\365\213\331\012\225\077\330\077 +\043\155\032\321\052\044\031\331\205\263\027\357\170\156\251\130 +\321\043\323\307\023\355\162\045\177\135\261\163\160\320\177\006 +\227\011\204\051\200\141\035\372\136\377\163\254\240\343\211\270 +\034\161\025\306\336\061\177\022\334\341\155\233\257\347\350\237 +\165\170\114\253\106\073\232\316\277\005\030\135\115\025\074\026 +\232\031\120\004\232\262\232\157\145\213\122\137\074\130\004\050 +\045\300\146\141\061\176\271\340\165\271\032\250\201\326\162\027 +\263\305\003\061\065\021\170\170\242\340\351\060\214\177\200\337 +\130\337\074\272\047\226\342\200\064\155\343\230\323\144\047\254 +\110\176\050\167\134\306\045\141\045\370\205\014\145\372\304\062 +\057\245\230\005\344\370\013\147\026\026\306\202\270\062\031\371 +\371\271\171\334\037\315\353\257\253\016\335\033\333\105\344\172 +\347\002\342\225\135\374\151\360\123\151\141\225\165\171\013\136 +\125\346\070\034\224\251\131\063\236\310\161\164\171\177\121\211 +\266\310\152\270\060\310\152\070\303\156\236\341\067\026\352\005 +\142\114\133\022\107\355\247\264\263\130\126\307\111\363\177\022 +\150\011\061\161\360\155\370\116\107\373\326\205\356\305\130\100 +\031\244\035\247\371\113\103\067\334\150\132\117\317\353\302\144 +\164\336\264\025\331\364\124\124\032\057\034\327\227\161\124\220 +\216\331\040\235\123\053\177\253\217\342\352\060\274\120\067\357 +\361\107\265\175\174\054\004\354\150\235\264\111\104\020\364\162 +\113\034\144\347\374\346\153\220\335\151\175\151\375\000\126\245 +\267\254\266\255\267\312\076\001\357\234 +END + +# Trust for "IdenTrust Public Sector Root CA 1" +# Issuer: CN=IdenTrust Public Sector Root CA 1,O=IdenTrust,C=US +# Serial Number:0a:01:42:80:00:00:01:45:23:cf:46:7c:00:00:00:02 +# Subject: CN=IdenTrust Public Sector Root CA 1,O=IdenTrust,C=US +# Not Valid Before: Thu Jan 16 17:53:32 2014 +# Not Valid After : Mon Jan 16 17:53:32 2034 +# Fingerprint (SHA-256): 30:D0:89:5A:9A:44:8A:26:20:91:63:55:22:D1:F5:20:10:B5:86:7A:CA:E1:2C:78:EF:95:8F:D4:F4:38:9F:2F +# Fingerprint (SHA1): BA:29:41:60:77:98:3F:F4:F3:EF:F2:31:05:3B:2E:EA:6D:4D:45:FD +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "IdenTrust Public Sector Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\272\051\101\140\167\230\077\364\363\357\362\061\005\073\056\352 +\155\115\105\375 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\067\006\245\260\374\211\235\272\364\153\214\032\144\315\325\272 +END +CKA_ISSUER MULTILINE_OCTAL +\060\115\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\022\060\020\006\003\125\004\012\023\011\111\144\145\156\124\162 +\165\163\164\061\052\060\050\006\003\125\004\003\023\041\111\144 +\145\156\124\162\165\163\164\040\120\165\142\154\151\143\040\123 +\145\143\164\157\162\040\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\012\001\102\200\000\000\001\105\043\317\106\174\000\000 +\000\002 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "S-TRUST Universal Root CA" +# +# Issuer: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE +# Serial Number:60:56:c5:4b:23:40:5b:64:d4:ed:25:da:d9:d6:1e:1e +# Subject: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE +# Not Valid Before: Tue Oct 22 00:00:00 2013 +# Not Valid After : Thu Oct 21 23:59:59 2038 +# Fingerprint (SHA-256): D8:0F:EF:91:0A:E3:F1:04:72:3B:04:5C:EC:2D:01:9F:44:1C:E6:21:3A:DF:15:67:91:E7:0C:17:90:11:0A:31 +# Fingerprint (SHA1): 1B:3D:11:14:EA:7A:0F:95:58:54:41:95:BF:6B:25:82:AB:40:CE:9A +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 "S-TRUST Universal Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163 +\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040 +\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006 +\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166 +\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123 +\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154 +\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163 +\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040 +\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006 +\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166 +\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123 +\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154 +\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\140\126\305\113\043\100\133\144\324\355\045\332\331\326 +\036\036 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\330\060\202\002\300\240\003\002\001\002\002\020\140 +\126\305\113\043\100\133\144\324\355\045\332\331\326\036\036\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\205\061\013\060\011\006\003\125\004\006\023\002\104\105\061\051 +\060\047\006\003\125\004\012\023\040\104\145\165\164\163\143\150 +\145\162\040\123\160\141\162\153\141\163\163\145\156\040\126\145 +\162\154\141\147\040\107\155\142\110\061\047\060\045\006\003\125 +\004\013\023\036\123\055\124\122\125\123\124\040\103\145\162\164 +\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143 +\145\163\061\042\060\040\006\003\125\004\003\023\031\123\055\124 +\122\125\123\124\040\125\156\151\166\145\162\163\141\154\040\122 +\157\157\164\040\103\101\060\036\027\015\061\063\061\060\062\062 +\060\060\060\060\060\060\132\027\015\063\070\061\060\062\061\062 +\063\065\071\065\071\132\060\201\205\061\013\060\011\006\003\125 +\004\006\023\002\104\105\061\051\060\047\006\003\125\004\012\023 +\040\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153 +\141\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142 +\110\061\047\060\045\006\003\125\004\013\023\036\123\055\124\122 +\125\123\124\040\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\123\145\162\166\151\143\145\163\061\042\060\040\006\003 +\125\004\003\023\031\123\055\124\122\125\123\124\040\125\156\151 +\166\145\162\163\141\154\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\250 +\343\013\337\021\067\205\202\232\265\154\146\174\141\077\300\107 +\032\035\106\343\260\125\144\345\270\202\071\050\007\176\027\377 +\364\233\212\360\221\201\352\070\077\041\170\154\110\354\153\057 +\242\323\212\162\262\247\327\331\352\177\264\300\111\153\060\045 +\211\214\353\267\325\100\141\230\342\334\074\040\222\315\145\112 +\162\237\032\216\214\372\045\025\277\363\041\203\050\015\213\257 +\131\021\202\103\134\233\115\045\121\177\130\030\143\140\073\263 +\265\212\213\130\143\067\110\110\220\104\302\100\335\135\367\103 +\151\051\230\134\022\145\136\253\220\222\113\146\337\325\165\022 +\123\124\030\246\336\212\326\273\127\003\071\131\231\030\005\014 +\371\375\025\306\220\144\106\027\202\327\302\112\101\075\375\000 +\276\127\162\030\224\167\033\123\132\211\001\366\063\162\016\223 +\072\334\350\036\375\005\005\326\274\163\340\210\334\253\117\354 +\265\030\206\117\171\204\016\110\052\146\052\335\062\310\170\145 +\310\013\235\130\001\005\161\355\201\365\150\027\156\313\015\264 +\113\330\241\354\256\070\353\034\130\057\241\145\003\064\057\002 +\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\035\006\003\125\035\016 +\004\026\004\024\232\175\327\353\353\177\124\230\105\051\264\040 +\253\155\013\226\043\031\244\302\060\015\006\011\052\206\110\206 +\367\015\001\001\013\005\000\003\202\001\001\000\116\226\022\333 +\176\167\136\222\047\236\041\027\030\202\166\330\077\274\245\011 +\004\146\210\211\255\333\125\263\063\152\306\145\304\217\115\363 +\062\066\334\171\004\226\251\167\062\321\227\365\030\153\214\272 +\355\316\021\320\104\307\222\361\264\104\216\355\210\122\110\236 +\325\375\131\370\243\036\121\373\001\122\345\137\345\172\335\252 +\044\117\042\213\335\166\106\366\245\240\017\065\330\312\017\230 +\271\060\135\040\157\302\201\036\275\275\300\376\025\323\070\052 +\011\223\230\047\033\223\173\320\053\064\136\150\245\025\117\321 +\122\303\240\312\240\203\105\035\365\365\267\131\163\135\131\001 +\217\252\302\107\057\024\161\325\051\343\020\265\107\223\045\314 +\043\051\332\267\162\330\221\324\354\033\110\212\042\344\301\052 +\367\072\150\223\237\105\031\156\103\267\314\376\270\221\232\141 +\032\066\151\143\144\222\050\363\157\141\222\205\023\237\311\007 +\054\213\127\334\353\236\171\325\302\336\010\325\124\262\127\116 +\052\062\215\241\342\072\321\020\040\042\071\175\064\105\157\161 +\073\303\035\374\377\262\117\250\342\366\060\036 +END + +# Trust for "S-TRUST Universal Root CA" +# Issuer: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE +# Serial Number:60:56:c5:4b:23:40:5b:64:d4:ed:25:da:d9:d6:1e:1e +# Subject: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE +# Not Valid Before: Tue Oct 22 00:00:00 2013 +# Not Valid After : Thu Oct 21 23:59:59 2038 +# Fingerprint (SHA-256): D8:0F:EF:91:0A:E3:F1:04:72:3B:04:5C:EC:2D:01:9F:44:1C:E6:21:3A:DF:15:67:91:E7:0C:17:90:11:0A:31 +# Fingerprint (SHA1): 1B:3D:11:14:EA:7A:0F:95:58:54:41:95:BF:6B:25:82:AB:40:CE:9A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "S-TRUST Universal Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\033\075\021\024\352\172\017\225\130\124\101\225\277\153\045\202 +\253\100\316\232 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\130\366\101\001\256\365\133\121\231\116\134\041\350\117\324\146 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163 +\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040 +\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006 +\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166 +\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123 +\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154 +\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\140\126\305\113\043\100\133\144\324\355\045\332\331\326 +\036\036 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust Root Certification Authority - G2" +# +# Issuer: CN=Entrust Root Certification Authority - G2,OU="(c) 2009 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Serial Number: 1246989352 (0x4a538c28) +# Subject: CN=Entrust Root Certification Authority - G2,OU="(c) 2009 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Not Valid Before: Tue Jul 07 17:25:54 2009 +# Not Valid After : Sat Dec 07 17:55:54 2030 +# Fingerprint (SHA-256): 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39 +# Fingerprint (SHA1): 8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4 +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 "Entrust Root Certification Authority - G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\276\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\050\060\046\006\003\125\004 +\013\023\037\123\145\145\040\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\154\145\147\141\154\055\164\145\162 +\155\163\061\071\060\067\006\003\125\004\013\023\060\050\143\051 +\040\062\060\060\071\040\105\156\164\162\165\163\164\054\040\111 +\156\143\056\040\055\040\146\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\062\060 +\060\006\003\125\004\003\023\051\105\156\164\162\165\163\164\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\040\055\040\107 +\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\276\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\050\060\046\006\003\125\004 +\013\023\037\123\145\145\040\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\154\145\147\141\154\055\164\145\162 +\155\163\061\071\060\067\006\003\125\004\013\023\060\050\143\051 +\040\062\060\060\071\040\105\156\164\162\165\163\164\054\040\111 +\156\143\056\040\055\040\146\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\062\060 +\060\006\003\125\004\003\023\051\105\156\164\162\165\163\164\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\040\055\040\107 +\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\112\123\214\050 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\076\060\202\003\046\240\003\002\001\002\002\004\112 +\123\214\050\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\201\276\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\026\060\024\006\003\125\004\012\023\015\105\156\164 +\162\165\163\164\054\040\111\156\143\056\061\050\060\046\006\003 +\125\004\013\023\037\123\145\145\040\167\167\167\056\145\156\164 +\162\165\163\164\056\156\145\164\057\154\145\147\141\154\055\164 +\145\162\155\163\061\071\060\067\006\003\125\004\013\023\060\050 +\143\051\040\062\060\060\071\040\105\156\164\162\165\163\164\054 +\040\111\156\143\056\040\055\040\146\157\162\040\141\165\164\150 +\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171\061 +\062\060\060\006\003\125\004\003\023\051\105\156\164\162\165\163 +\164\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\040\055 +\040\107\062\060\036\027\015\060\071\060\067\060\067\061\067\062 +\065\065\064\132\027\015\063\060\061\062\060\067\061\067\065\065 +\065\064\132\060\201\276\061\013\060\011\006\003\125\004\006\023 +\002\125\123\061\026\060\024\006\003\125\004\012\023\015\105\156 +\164\162\165\163\164\054\040\111\156\143\056\061\050\060\046\006 +\003\125\004\013\023\037\123\145\145\040\167\167\167\056\145\156 +\164\162\165\163\164\056\156\145\164\057\154\145\147\141\154\055 +\164\145\162\155\163\061\071\060\067\006\003\125\004\013\023\060 +\050\143\051\040\062\060\060\071\040\105\156\164\162\165\163\164 +\054\040\111\156\143\056\040\055\040\146\157\162\040\141\165\164 +\150\157\162\151\172\145\144\040\165\163\145\040\157\156\154\171 +\061\062\060\060\006\003\125\004\003\023\051\105\156\164\162\165 +\163\164\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\040 +\055\040\107\062\060\202\001\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\001\017\000\060\202\001\012 +\002\202\001\001\000\272\204\266\162\333\236\014\153\342\231\351 +\060\001\247\166\352\062\270\225\101\032\311\332\141\116\130\162 +\317\376\366\202\171\277\163\141\006\012\245\047\330\263\137\323 +\105\116\034\162\326\116\062\362\162\212\017\367\203\031\320\152 +\200\200\000\105\036\260\307\347\232\277\022\127\047\034\243\150 +\057\012\207\275\152\153\016\136\145\363\034\167\325\324\205\215 +\160\041\264\263\062\347\213\242\325\206\071\002\261\270\322\107 +\316\344\311\111\304\073\247\336\373\124\175\127\276\360\350\156 +\302\171\262\072\013\125\342\120\230\026\062\023\134\057\170\126 +\301\302\224\263\362\132\344\047\232\237\044\327\306\354\320\233 +\045\202\343\314\302\304\105\305\214\227\172\006\153\052\021\237 +\251\012\156\110\073\157\333\324\021\031\102\367\217\007\277\365 +\123\137\234\076\364\027\054\346\151\254\116\062\114\142\167\352 +\267\350\345\273\064\274\031\213\256\234\121\347\267\176\265\123 +\261\063\042\345\155\317\160\074\032\372\342\233\147\266\203\364 +\215\245\257\142\114\115\340\130\254\144\064\022\003\370\266\215 +\224\143\044\244\161\002\003\001\000\001\243\102\060\100\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\035\006\003\125\035\016\004\026\004\024\152\162\046\172\320\036 +\357\175\347\073\151\121\324\154\215\237\220\022\146\253\060\015 +\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001 +\001\000\171\237\035\226\306\266\171\077\042\215\207\323\207\003 +\004\140\152\153\232\056\131\211\163\021\254\103\321\365\023\377 +\215\071\053\300\362\275\117\160\214\251\057\352\027\304\013\124 +\236\324\033\226\230\063\074\250\255\142\242\000\166\253\131\151 +\156\006\035\176\304\271\104\215\230\257\022\324\141\333\012\031 +\106\107\363\353\367\143\301\100\005\100\245\322\267\364\265\232 +\066\277\251\210\166\210\004\125\004\053\234\207\177\032\067\074 +\176\055\245\032\330\324\211\136\312\275\254\075\154\330\155\257 +\325\363\166\017\315\073\210\070\042\235\154\223\232\304\075\277 +\202\033\145\077\246\017\135\252\374\345\262\025\312\265\255\306 +\274\075\320\204\350\352\006\162\260\115\071\062\170\277\076\021 +\234\013\244\235\232\041\363\360\233\013\060\170\333\301\334\207 +\103\376\274\143\232\312\305\302\034\311\307\215\377\073\022\130 +\010\346\266\075\354\172\054\116\373\203\226\316\014\074\151\207 +\124\163\244\163\302\223\377\121\020\254\025\124\001\330\374\005 +\261\211\241\177\164\203\232\111\327\334\116\173\212\110\157\213 +\105\366 +END + +# Trust for "Entrust Root Certification Authority - G2" +# Issuer: CN=Entrust Root Certification Authority - G2,OU="(c) 2009 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Serial Number: 1246989352 (0x4a538c28) +# Subject: CN=Entrust Root Certification Authority - G2,OU="(c) 2009 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Not Valid Before: Tue Jul 07 17:25:54 2009 +# Not Valid After : Sat Dec 07 17:55:54 2030 +# Fingerprint (SHA-256): 43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39 +# Fingerprint (SHA1): 8C:F4:27:FD:79:0C:3A:D1:66:06:8D:E8:1E:57:EF:BB:93:22:72:D4 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust Root Certification Authority - G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\214\364\047\375\171\014\072\321\146\006\215\350\036\127\357\273 +\223\042\162\324 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\113\342\311\221\226\145\014\364\016\132\223\222\240\012\376\262 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\276\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\050\060\046\006\003\125\004 +\013\023\037\123\145\145\040\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\154\145\147\141\154\055\164\145\162 +\155\163\061\071\060\067\006\003\125\004\013\023\060\050\143\051 +\040\062\060\060\071\040\105\156\164\162\165\163\164\054\040\111 +\156\143\056\040\055\040\146\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\062\060 +\060\006\003\125\004\003\023\051\105\156\164\162\165\163\164\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\040\055\040\107 +\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\112\123\214\050 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Entrust Root Certification Authority - EC1" +# +# Issuer: CN=Entrust Root Certification Authority - EC1,OU="(c) 2012 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Serial Number:00:a6:8b:79:29:00:00:00:00:50:d0:91:f9 +# Subject: CN=Entrust Root Certification Authority - EC1,OU="(c) 2012 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Not Valid Before: Tue Dec 18 15:25:36 2012 +# Not Valid After : Fri Dec 18 15:55:36 2037 +# Fingerprint (SHA-256): 02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5 +# Fingerprint (SHA1): 20:D8:06:40:DF:9B:25:F5:12:25:3A:11:EA:F7:59:8A:EB:14:B5:47 +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 "Entrust Root Certification Authority - EC1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\277\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\050\060\046\006\003\125\004 +\013\023\037\123\145\145\040\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\154\145\147\141\154\055\164\145\162 +\155\163\061\071\060\067\006\003\125\004\013\023\060\050\143\051 +\040\062\060\061\062\040\105\156\164\162\165\163\164\054\040\111 +\156\143\056\040\055\040\146\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\063\060 +\061\006\003\125\004\003\023\052\105\156\164\162\165\163\164\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\040\055\040\105 +\103\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\277\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\050\060\046\006\003\125\004 +\013\023\037\123\145\145\040\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\154\145\147\141\154\055\164\145\162 +\155\163\061\071\060\067\006\003\125\004\013\023\060\050\143\051 +\040\062\060\061\062\040\105\156\164\162\165\163\164\054\040\111 +\156\143\056\040\055\040\146\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\063\060 +\061\006\003\125\004\003\023\052\105\156\164\162\165\163\164\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\040\055\040\105 +\103\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\015\000\246\213\171\051\000\000\000\000\120\320\221\371 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\371\060\202\002\200\240\003\002\001\002\002\015\000 +\246\213\171\051\000\000\000\000\120\320\221\371\060\012\006\010 +\052\206\110\316\075\004\003\003\060\201\277\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\026\060\024\006\003\125\004 +\012\023\015\105\156\164\162\165\163\164\054\040\111\156\143\056 +\061\050\060\046\006\003\125\004\013\023\037\123\145\145\040\167 +\167\167\056\145\156\164\162\165\163\164\056\156\145\164\057\154 +\145\147\141\154\055\164\145\162\155\163\061\071\060\067\006\003 +\125\004\013\023\060\050\143\051\040\062\060\061\062\040\105\156 +\164\162\165\163\164\054\040\111\156\143\056\040\055\040\146\157 +\162\040\141\165\164\150\157\162\151\172\145\144\040\165\163\145 +\040\157\156\154\171\061\063\060\061\006\003\125\004\003\023\052 +\105\156\164\162\165\163\164\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\040\055\040\105\103\061\060\036\027\015\061\062 +\061\062\061\070\061\065\062\065\063\066\132\027\015\063\067\061 +\062\061\070\061\065\065\065\063\066\132\060\201\277\061\013\060 +\011\006\003\125\004\006\023\002\125\123\061\026\060\024\006\003 +\125\004\012\023\015\105\156\164\162\165\163\164\054\040\111\156 +\143\056\061\050\060\046\006\003\125\004\013\023\037\123\145\145 +\040\167\167\167\056\145\156\164\162\165\163\164\056\156\145\164 +\057\154\145\147\141\154\055\164\145\162\155\163\061\071\060\067 +\006\003\125\004\013\023\060\050\143\051\040\062\060\061\062\040 +\105\156\164\162\165\163\164\054\040\111\156\143\056\040\055\040 +\146\157\162\040\141\165\164\150\157\162\151\172\145\144\040\165 +\163\145\040\157\156\154\171\061\063\060\061\006\003\125\004\003 +\023\052\105\156\164\162\165\163\164\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\040\055\040\105\103\061\060\166\060\020 +\006\007\052\206\110\316\075\002\001\006\005\053\201\004\000\042 +\003\142\000\004\204\023\311\320\272\155\101\173\342\154\320\353 +\125\137\146\002\032\044\364\133\211\151\107\343\270\302\175\361 +\362\002\305\237\240\366\133\325\213\006\031\206\117\123\020\155 +\007\044\047\241\240\370\325\107\031\141\114\175\312\223\047\352 +\164\014\357\157\226\011\376\143\354\160\135\066\255\147\167\256 +\311\235\174\125\104\072\242\143\121\037\365\343\142\324\251\107 +\007\076\314\040\243\102\060\100\060\016\006\003\125\035\017\001 +\001\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001 +\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016 +\004\026\004\024\267\143\347\032\335\215\351\010\246\125\203\244 +\340\152\120\101\145\021\102\111\060\012\006\010\052\206\110\316 +\075\004\003\003\003\147\000\060\144\002\060\141\171\330\345\102 +\107\337\034\256\123\231\027\266\157\034\175\341\277\021\224\321 +\003\210\165\344\215\211\244\212\167\106\336\155\141\357\002\365 +\373\265\337\314\376\116\377\376\251\346\247\002\060\133\231\327 +\205\067\006\265\173\010\375\353\047\213\112\224\371\341\372\247 +\216\046\010\350\174\222\150\155\163\330\157\046\254\041\002\270 +\231\267\046\101\133\045\140\256\320\110\032\356\006 +END + +# Trust for "Entrust Root Certification Authority - EC1" +# Issuer: CN=Entrust Root Certification Authority - EC1,OU="(c) 2012 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Serial Number:00:a6:8b:79:29:00:00:00:00:50:d0:91:f9 +# Subject: CN=Entrust Root Certification Authority - EC1,OU="(c) 2012 Entrust, Inc. - for authorized use only",OU=See www.entrust.net/legal-terms,O="Entrust, Inc.",C=US +# Not Valid Before: Tue Dec 18 15:25:36 2012 +# Not Valid After : Fri Dec 18 15:55:36 2037 +# Fingerprint (SHA-256): 02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5 +# Fingerprint (SHA1): 20:D8:06:40:DF:9B:25:F5:12:25:3A:11:EA:F7:59:8A:EB:14:B5:47 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Entrust Root Certification Authority - EC1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\040\330\006\100\337\233\045\365\022\045\072\021\352\367\131\212 +\353\024\265\107 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\266\176\035\360\130\305\111\154\044\073\075\355\230\030\355\274 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\277\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\026\060\024\006\003\125\004\012\023\015\105\156\164\162\165 +\163\164\054\040\111\156\143\056\061\050\060\046\006\003\125\004 +\013\023\037\123\145\145\040\167\167\167\056\145\156\164\162\165 +\163\164\056\156\145\164\057\154\145\147\141\154\055\164\145\162 +\155\163\061\071\060\067\006\003\125\004\013\023\060\050\143\051 +\040\062\060\061\062\040\105\156\164\162\165\163\164\054\040\111 +\156\143\056\040\055\040\146\157\162\040\141\165\164\150\157\162 +\151\172\145\144\040\165\163\145\040\157\156\154\171\061\063\060 +\061\006\003\125\004\003\023\052\105\156\164\162\165\163\164\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\040\055\040\105 +\103\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\015\000\246\213\171\051\000\000\000\000\120\320\221\371 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CFCA EV ROOT" +# +# Issuer: CN=CFCA EV ROOT,O=China Financial Certification Authority,C=CN +# Serial Number: 407555286 (0x184accd6) +# Subject: CN=CFCA EV ROOT,O=China Financial Certification Authority,C=CN +# Not Valid Before: Wed Aug 08 03:07:01 2012 +# Not Valid After : Mon Dec 31 03:07:01 2029 +# Fingerprint (SHA-256): 5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD +# Fingerprint (SHA1): E2:B8:29:4B:55:84:AB:6B:58:C2:90:46:6C:AC:3F:B8:39:8F:84:83 +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 "CFCA EV ROOT" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\126\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\060\060\056\006\003\125\004\012\014\047\103\150\151\156\141\040 +\106\151\156\141\156\143\151\141\154\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\025\060\023\006\003\125\004\003\014\014\103\106\103\101 +\040\105\126\040\122\117\117\124 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\126\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\060\060\056\006\003\125\004\012\014\047\103\150\151\156\141\040 +\106\151\156\141\156\143\151\141\154\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\025\060\023\006\003\125\004\003\014\014\103\106\103\101 +\040\105\126\040\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\030\112\314\326 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\215\060\202\003\165\240\003\002\001\002\002\004\030 +\112\314\326\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\126\061\013\060\011\006\003\125\004\006\023\002\103 +\116\061\060\060\056\006\003\125\004\012\014\047\103\150\151\156 +\141\040\106\151\156\141\156\143\151\141\154\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\025\060\023\006\003\125\004\003\014\014\103\106 +\103\101\040\105\126\040\122\117\117\124\060\036\027\015\061\062 +\060\070\060\070\060\063\060\067\060\061\132\027\015\062\071\061 +\062\063\061\060\063\060\067\060\061\132\060\126\061\013\060\011 +\006\003\125\004\006\023\002\103\116\061\060\060\056\006\003\125 +\004\012\014\047\103\150\151\156\141\040\106\151\156\141\156\143 +\151\141\154\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\025\060\023\006 +\003\125\004\003\014\014\103\106\103\101\040\105\126\040\122\117 +\117\124\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\327\135\153\315\020\077\037\005\131\325\005\115\067 +\261\016\354\230\053\216\025\035\372\223\113\027\202\041\161\020 +\122\327\121\144\160\026\302\125\151\115\216\025\155\237\277\014 +\033\302\340\243\147\326\014\254\317\042\256\257\167\124\052\113 +\114\212\123\122\172\303\356\056\336\263\161\045\301\351\135\075 +\356\241\057\243\367\052\074\311\043\035\152\253\035\241\247\361 +\363\354\240\325\104\317\025\317\162\057\035\143\227\350\231\371 +\375\223\244\124\200\114\122\324\122\253\056\111\337\220\315\270 +\137\276\077\336\241\312\115\040\324\045\350\204\051\123\267\261 +\210\037\377\372\332\220\237\012\251\055\101\077\261\361\030\051 +\356\026\131\054\064\111\032\250\006\327\250\210\322\003\162\172 +\062\342\352\150\115\156\054\226\145\173\312\131\372\362\342\335 +\356\060\054\373\314\106\254\304\143\353\157\177\066\053\064\163 +\022\224\177\337\314\046\236\361\162\135\120\145\131\217\151\263 +\207\136\062\157\303\030\212\265\225\217\260\172\067\336\132\105 +\073\307\066\341\357\147\321\071\323\227\133\163\142\031\110\055 +\207\034\006\373\164\230\040\111\163\360\005\322\033\261\240\243 +\267\033\160\323\210\151\271\132\326\070\364\142\334\045\213\170 +\277\370\350\176\270\134\311\225\117\137\247\055\271\040\153\317 +\153\335\365\015\364\202\267\364\262\146\056\020\050\366\227\132 +\173\226\026\217\001\031\055\154\156\177\071\130\006\144\203\001 +\203\203\303\115\222\335\062\306\207\244\067\351\026\316\252\055 +\150\257\012\201\145\072\160\301\233\255\115\155\124\312\052\055 +\113\205\033\263\200\346\160\105\015\153\136\065\360\177\073\270 +\234\344\004\160\211\022\045\223\332\012\231\042\140\152\143\140 +\116\166\006\230\116\275\203\255\035\130\212\045\205\322\307\145 +\036\055\216\306\337\266\306\341\177\212\004\041\025\051\164\360 +\076\234\220\235\014\056\361\212\076\132\252\014\011\036\307\325 +\074\243\355\227\303\036\064\372\070\371\010\016\343\300\135\053 +\203\321\126\152\311\266\250\124\123\056\170\062\147\075\202\177 +\164\320\373\341\266\005\140\271\160\333\216\013\371\023\130\157 +\161\140\020\122\020\271\301\101\011\357\162\037\147\061\170\377 +\226\005\215\002\003\001\000\001\243\143\060\141\060\037\006\003 +\125\035\043\004\030\060\026\200\024\343\376\055\375\050\320\013 +\265\272\266\242\304\277\006\252\005\214\223\373\057\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\035 +\006\003\125\035\016\004\026\004\024\343\376\055\375\050\320\013 +\265\272\266\242\304\277\006\252\005\214\223\373\057\060\015\006 +\011\052\206\110\206\367\015\001\001\013\005\000\003\202\002\001 +\000\045\306\272\153\353\207\313\336\202\071\226\075\360\104\247 +\153\204\163\003\336\235\053\117\272\040\177\274\170\262\317\227 +\260\033\234\363\327\171\056\365\110\266\322\373\027\210\346\323 +\172\077\355\123\023\320\342\057\152\171\313\000\043\050\346\036 +\067\127\065\211\204\302\166\117\064\066\255\147\303\316\101\006 +\210\305\367\356\330\032\270\326\013\177\120\377\223\252\027\113 +\214\354\355\122\140\262\244\006\352\116\353\364\153\031\375\353 +\365\032\340\045\052\232\334\307\101\066\367\310\164\005\204\071 +\225\071\326\013\073\244\047\372\010\330\134\036\370\004\140\122 +\021\050\050\003\377\357\123\146\000\245\112\064\026\146\174\375 +\011\244\256\236\147\032\157\101\013\153\006\023\233\217\206\161 +\005\264\057\215\211\146\063\051\166\124\232\021\370\047\372\262 +\077\221\340\316\015\033\363\060\032\255\277\042\135\033\323\277 +\045\005\115\341\222\032\177\231\237\074\104\223\312\324\100\111 +\154\200\207\327\004\072\303\062\122\065\016\126\370\245\335\175 +\304\213\015\021\037\123\313\036\262\027\266\150\167\132\340\324 +\313\310\007\256\365\072\056\216\067\267\320\001\113\103\051\167 +\214\071\227\217\202\132\370\121\345\211\240\030\347\150\177\135 +\012\056\373\243\107\016\075\246\043\172\306\001\307\217\310\136 +\277\155\200\126\276\212\044\272\063\352\237\341\062\021\236\361 +\322\117\200\366\033\100\257\070\236\021\120\171\163\022\022\315 +\346\154\235\054\210\162\074\060\201\006\221\042\352\131\255\332 +\031\056\042\302\215\271\214\207\340\146\274\163\043\137\041\144 +\143\200\110\365\240\074\030\075\224\310\110\101\035\100\272\136 +\376\376\126\071\241\310\317\136\236\031\144\106\020\332\027\221 +\267\005\200\254\213\231\222\175\347\242\330\007\013\066\047\347 +\110\171\140\212\303\327\023\134\370\162\100\337\112\313\317\231 +\000\012\000\013\021\225\332\126\105\003\210\012\237\147\320\325 +\171\261\250\215\100\155\015\302\172\100\372\363\137\144\107\222 +\313\123\271\273\131\316\117\375\320\025\123\001\330\337\353\331 +\346\166\357\320\043\273\073\251\171\263\325\002\051\315\211\243 +\226\017\112\065\347\116\102\300\165\315\007\317\346\054\353\173 +\056 +END + +# Trust for "CFCA EV ROOT" +# Issuer: CN=CFCA EV ROOT,O=China Financial Certification Authority,C=CN +# Serial Number: 407555286 (0x184accd6) +# Subject: CN=CFCA EV ROOT,O=China Financial Certification Authority,C=CN +# Not Valid Before: Wed Aug 08 03:07:01 2012 +# Not Valid After : Mon Dec 31 03:07:01 2029 +# Fingerprint (SHA-256): 5C:C3:D7:8E:4E:1D:5E:45:54:7A:04:E6:87:3E:64:F9:0C:F9:53:6D:1C:CC:2E:F8:00:F3:55:C4:C5:FD:70:FD +# Fingerprint (SHA1): E2:B8:29:4B:55:84:AB:6B:58:C2:90:46:6C:AC:3F:B8:39:8F:84:83 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CFCA EV ROOT" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\342\270\051\113\125\204\253\153\130\302\220\106\154\254\077\270 +\071\217\204\203 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\164\341\266\355\046\172\172\104\060\063\224\253\173\047\201\060 +END +CKA_ISSUER MULTILINE_OCTAL +\060\126\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\060\060\056\006\003\125\004\012\014\047\103\150\151\156\141\040 +\106\151\156\141\156\143\151\141\154\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\025\060\023\006\003\125\004\003\014\014\103\106\103\101 +\040\105\126\040\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\030\112\314\326 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Explicitly Distrusted MCSHOLDING CA" +# +# Issuer: CN=CNNIC ROOT,O=CNNIC,C=CN +# Serial Number: 1228079246 (0x4933008e) +# Subject: CN=MCSHOLDING TEST,O=MCSHOLDING,C=EG +# Not Valid Before: Thu Mar 19 06:20:09 2015 +# Not Valid After : Fri Apr 03 06:20:09 2015 +# Fingerprint (SHA-256): 27:40:D9:56:B1:12:7B:79:1A:A1:B3:CC:64:4A:4D:BE:DB:A7:61:86:A2:36:38:B9:51:02:35:1A:83:4E:A8:61 +# Fingerprint (SHA1): E1:F3:59:1E:76:98:65:C4:E4:47:AC:C3:7E:AF:C9:E2:BF:E4:C5:76 +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 "Explicitly Distrusted MCSHOLDING CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\074\061\013\060\011\006\003\125\004\006\023\002\105\107\061 +\023\060\021\006\003\125\004\012\014\012\115\103\123\110\117\114 +\104\111\116\107\061\030\060\026\006\003\125\004\003\014\017\115 +\103\123\110\117\114\104\111\116\107\040\124\105\123\124 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\111\063\000\216 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\222\060\202\003\172\240\003\002\001\002\002\004\111 +\063\000\216\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\062\061\013\060\011\006\003\125\004\006\023\002\103 +\116\061\016\060\014\006\003\125\004\012\023\005\103\116\116\111 +\103\061\023\060\021\006\003\125\004\003\023\012\103\116\116\111 +\103\040\122\117\117\124\060\036\027\015\061\065\060\063\061\071 +\060\066\062\060\060\071\132\027\015\061\065\060\064\060\063\060 +\066\062\060\060\071\132\060\074\061\013\060\011\006\003\125\004 +\006\023\002\105\107\061\023\060\021\006\003\125\004\012\014\012 +\115\103\123\110\117\114\104\111\116\107\061\030\060\026\006\003 +\125\004\003\014\017\115\103\123\110\117\114\104\111\116\107\040 +\124\105\123\124\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\245\371\165\014\006\256\356\014\021\315\226 +\063\115\153\316\300\112\014\075\135\353\322\113\011\177\347\107 +\054\254\161\000\371\010\257\064\361\243\152\307\374\346\253\316 +\320\276\312\315\052\230\230\271\320\216\063\111\007\141\040\321 +\132\064\316\203\024\006\171\216\032\277\333\344\240\070\072\356 +\224\271\243\240\130\072\211\024\254\140\076\003\324\307\315\073 +\034\260\232\210\032\111\020\251\260\262\375\345\350\341\004\342 +\352\202\155\376\014\121\105\221\255\165\042\256\377\117\220\013 +\300\123\145\167\076\036\302\126\265\066\306\326\205\314\016\203 +\032\063\037\166\231\133\053\227\053\213\327\321\024\025\114\235 +\131\327\200\057\244\242\205\325\210\066\002\140\125\312\130\337 +\223\374\112\142\007\226\323\304\372\277\215\001\047\227\057\246 +\134\164\361\072\102\156\135\171\024\060\061\032\074\331\262\127 +\115\340\270\077\017\151\061\242\235\145\231\331\326\061\207\265 +\230\046\337\360\313\273\025\300\044\023\142\122\032\153\313\105 +\007\227\343\304\224\136\311\015\107\054\351\317\351\364\217\376 +\065\341\062\347\061\002\003\001\000\001\243\202\001\244\060\202 +\001\240\060\166\006\010\053\006\001\005\005\007\001\001\004\152 +\060\150\060\051\006\010\053\006\001\005\005\007\060\001\206\035 +\150\164\164\160\072\057\057\157\143\163\160\143\156\156\151\143 +\162\157\157\164\056\143\156\156\151\143\056\143\156\060\073\006 +\010\053\006\001\005\005\007\060\002\206\057\150\164\164\160\072 +\057\057\167\167\167\056\143\156\156\151\143\056\143\156\057\144 +\157\167\156\154\157\141\144\057\143\145\162\164\057\103\116\116 +\111\103\122\117\117\124\056\143\145\162\060\037\006\003\125\035 +\043\004\030\060\026\200\024\145\362\061\255\052\367\367\335\122 +\226\012\307\002\301\016\357\246\325\073\021\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\077\006\003 +\125\035\040\004\070\060\066\060\064\006\012\053\006\001\004\001 +\201\351\014\001\006\060\046\060\044\006\010\053\006\001\005\005 +\007\002\001\026\030\150\164\164\160\072\057\057\167\167\167\056 +\143\156\156\151\143\056\143\156\057\143\160\163\057\060\201\206 +\006\003\125\035\037\004\177\060\175\060\102\240\100\240\076\244 +\074\060\072\061\013\060\011\006\003\125\004\006\023\002\103\116 +\061\016\060\014\006\003\125\004\012\014\005\103\116\116\111\103 +\061\014\060\012\006\003\125\004\013\014\003\143\162\154\061\015 +\060\013\006\003\125\004\003\014\004\143\162\154\061\060\067\240 +\065\240\063\206\061\150\164\164\160\072\057\057\143\162\154\056 +\143\156\156\151\143\056\143\156\057\144\157\167\156\154\157\141 +\144\057\162\157\157\164\163\150\141\062\143\162\154\057\103\122 +\114\061\056\143\162\154\060\013\006\003\125\035\017\004\004\003 +\002\001\006\060\035\006\003\125\035\016\004\026\004\024\104\244 +\211\253\024\137\075\157\040\074\252\174\372\031\256\364\110\140 +\005\265\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\003\202\001\001\000\134\264\365\123\233\117\271\340\204\211 +\061\276\236\056\352\236\041\113\245\217\155\241\246\363\057\110 +\353\351\333\255\036\061\200\320\171\073\020\357\232\044\367\223 +\033\065\363\032\302\307\302\054\012\177\157\133\361\137\163\221 +\004\373\015\171\015\351\032\006\326\203\375\116\140\235\154\222 +\103\114\352\144\230\104\253\327\373\107\320\257\037\144\114\342 +\335\167\150\026\302\054\241\240\201\227\000\102\037\176\040\170 +\350\306\120\035\013\177\025\223\131\130\100\024\204\360\247\220 +\153\066\005\147\352\177\042\155\273\321\245\046\115\263\060\244 +\130\324\133\265\032\214\120\214\270\015\341\240\007\263\017\130 +\316\327\005\265\175\065\171\157\242\333\014\000\052\150\044\214 +\176\234\301\166\111\272\174\146\021\336\362\107\316\376\320\316 +\125\276\010\332\362\171\046\052\025\071\316\153\030\246\337\330 +\207\050\231\224\016\055\150\241\232\316\122\066\234\053\354\264 +\150\263\154\025\254\313\160\102\362\304\101\245\310\374\041\170 +\123\167\062\040\251\041\114\162\342\323\262\311\166\033\030\130 +\102\013\102\222\263\344 +END + +# Distrust "Explicitly Distrusted MCSHOLDING CA" +# Issuer: CN=CNNIC ROOT,O=CNNIC,C=CN +# Serial Number: 1228079246 (0x4933008e) +# Subject: CN=MCSHOLDING TEST,O=MCSHOLDING,C=EG +# Not Valid Before: Thu Mar 19 06:20:09 2015 +# Not Valid After : Fri Apr 03 06:20:09 2015 +# Fingerprint (SHA-256): 27:40:D9:56:B1:12:7B:79:1A:A1:B3:CC:64:4A:4D:BE:DB:A7:61:86:A2:36:38:B9:51:02:35:1A:83:4E:A8:61 +# Fingerprint (SHA1): E1:F3:59:1E:76:98:65:C4:E4:47:AC:C3:7E:AF:C9:E2:BF:E4:C5:76 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Explicitly Distrusted MCSHOLDING CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\341\363\131\036\166\230\145\304\344\107\254\303\176\257\311\342 +\277\344\305\166 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\366\212\253\024\076\326\060\045\267\111\015\167\205\160\231\313 +END +CKA_ISSUER MULTILINE_OCTAL +\060\062\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\016\060\014\006\003\125\004\012\023\005\103\116\116\111\103\061 +\023\060\021\006\003\125\004\003\023\012\103\116\116\111\103\040 +\122\117\117\124 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\004\111\063\000\216 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_NOT_TRUSTED +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5" +# +# Issuer: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR +# Serial Number:00:8e:17:fe:24:20:81 +# Subject: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR +# Not Valid Before: Tue Apr 30 08:07:01 2013 +# Not Valid After : Fri Apr 28 08:07:01 2023 +# Fingerprint (SHA-256): 49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78 +# Fingerprint (SHA1): C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB +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 "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122 +\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154 +\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305 +\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040 +\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056 +\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113 +\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153 +\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145 +\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304 +\261\040\110\065 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122 +\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154 +\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305 +\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040 +\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056 +\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113 +\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153 +\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145 +\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304 +\261\040\110\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\007\000\216\027\376\044\040\201 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\047\060\202\003\017\240\003\002\001\002\002\007\000 +\216\027\376\044\040\201\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\060\201\261\061\013\060\011\006\003\125\004 +\006\023\002\124\122\061\017\060\015\006\003\125\004\007\014\006 +\101\156\153\141\162\141\061\115\060\113\006\003\125\004\012\014 +\104\124\303\234\122\113\124\122\125\123\124\040\102\151\154\147 +\151\040\304\260\154\145\164\151\305\237\151\155\040\166\145\040 +\102\151\154\151\305\237\151\155\040\107\303\274\166\145\156\154 +\151\304\237\151\040\110\151\172\155\145\164\154\145\162\151\040 +\101\056\305\236\056\061\102\060\100\006\003\125\004\003\014\071 +\124\303\234\122\113\124\122\125\123\124\040\105\154\145\153\164 +\162\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040 +\110\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261 +\143\304\261\163\304\261\040\110\065\060\036\027\015\061\063\060 +\064\063\060\060\070\060\067\060\061\132\027\015\062\063\060\064 +\062\070\060\070\060\067\060\061\132\060\201\261\061\013\060\011 +\006\003\125\004\006\023\002\124\122\061\017\060\015\006\003\125 +\004\007\014\006\101\156\153\141\162\141\061\115\060\113\006\003 +\125\004\012\014\104\124\303\234\122\113\124\122\125\123\124\040 +\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155 +\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274 +\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154 +\145\162\151\040\101\056\305\236\056\061\102\060\100\006\003\125 +\004\003\014\071\124\303\234\122\113\124\122\125\123\124\040\105 +\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151\146 +\151\153\141\040\110\151\172\155\145\164\040\123\141\304\237\154 +\141\171\304\261\143\304\261\163\304\261\040\110\065\060\202\001 +\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000 +\003\202\001\017\000\060\202\001\012\002\202\001\001\000\244\045 +\031\341\145\236\353\110\041\120\112\010\345\021\360\132\272\046 +\377\203\131\316\104\052\057\376\341\316\140\003\374\215\003\245 +\355\377\153\250\272\314\064\006\237\131\065\366\354\054\273\235 +\373\215\122\151\343\234\047\020\123\363\244\002\305\247\371\021 +\032\151\165\156\303\035\213\321\230\215\223\207\247\161\227\015 +\041\307\231\371\122\323\054\143\135\125\274\350\037\001\110\271 +\140\376\102\112\366\310\200\256\315\146\172\236\105\212\150\167 +\342\110\150\237\242\332\361\341\301\020\237\353\074\051\201\247 +\341\062\010\324\240\005\261\214\373\215\226\000\016\076\045\337 +\123\206\042\073\374\364\275\363\011\176\167\354\206\353\017\063 +\345\103\117\364\124\165\155\051\231\056\146\132\103\337\313\134 +\312\310\345\070\361\176\073\065\235\017\364\305\132\241\314\363 +\040\200\044\323\127\354\025\272\165\045\233\350\144\113\263\064 +\204\357\004\270\366\311\154\252\002\076\266\125\342\062\067\137 +\374\146\227\137\315\326\236\307\040\277\115\306\254\077\165\137 +\034\355\062\234\174\151\000\151\221\343\043\030\123\351\002\003 +\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026 +\004\024\126\231\007\036\323\254\014\151\144\264\014\120\107\336 +\103\054\276\040\300\373\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367 +\015\001\001\013\005\000\003\202\001\001\000\236\105\166\173\027 +\110\062\362\070\213\051\275\356\226\112\116\201\030\261\121\107 +\040\315\320\144\261\016\311\331\001\331\011\316\310\231\334\150 +\045\023\324\134\362\243\350\004\376\162\011\307\013\252\035\045 +\125\176\226\232\127\267\272\305\021\172\031\346\247\176\075\205 +\016\365\371\056\051\057\347\371\154\130\026\127\120\045\366\076 +\056\076\252\355\167\161\252\252\231\226\106\012\256\216\354\052 +\121\026\260\136\315\352\147\004\034\130\060\365\140\212\275\246 +\275\115\345\226\264\374\102\211\001\153\366\160\310\120\071\014 +\055\325\146\331\310\322\263\062\267\033\031\155\313\063\371\337 +\245\346\025\204\067\360\302\362\145\226\222\220\167\360\255\364 +\220\351\021\170\327\223\211\300\075\013\272\051\364\350\231\235 +\162\216\355\235\057\356\222\175\241\361\377\135\272\063\140\205 +\142\376\007\002\241\204\126\106\276\226\012\232\023\327\041\114 +\267\174\007\237\116\116\077\221\164\373\047\235\021\314\335\346 +\261\312\161\115\023\027\071\046\305\051\041\053\223\051\152\226 +\372\253\101\341\113\266\065\013\300\233\025 +END + +# Trust for "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5" +# Issuer: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR +# Serial Number:00:8e:17:fe:24:20:81 +# Subject: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR +# Not Valid Before: Tue Apr 30 08:07:01 2013 +# Not Valid After : Fri Apr 28 08:07:01 2023 +# Fingerprint (SHA-256): 49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78 +# Fingerprint (SHA1): C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\304\030\366\115\106\321\337\000\075\047\060\023\162\103\251\022 +\021\306\165\373 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\332\160\216\360\042\337\223\046\366\137\237\323\025\006\122\116 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162 +\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122 +\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154 +\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305 +\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040 +\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056 +\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113 +\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153 +\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145 +\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304 +\261\040\110\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\007\000\216\027\376\044\040\201 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certinomis - Root CA" +# +# Issuer: CN=Certinomis - Root CA,OU=0002 433998903,O=Certinomis,C=FR +# Serial Number: 1 (0x1) +# Subject: CN=Certinomis - Root CA,OU=0002 433998903,O=Certinomis,C=FR +# Not Valid Before: Mon Oct 21 09:17:18 2013 +# Not Valid After : Fri Oct 21 09:17:18 2033 +# Fingerprint (SHA-256): 2A:99:F5:BC:11:74:B7:3C:BB:1D:62:08:84:E0:1C:34:E5:1C:CB:39:78:DA:12:5F:0E:33:26:88:83:BF:41:58 +# Fingerprint (SHA1): 9D:70:BB:01:A5:A4:A0:18:11:2E:F7:1C:01:B9:32:C5:34:E7:88:A8 +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 "Certinomis - Root CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060 +\033\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155 +\151\163\040\055\040\122\157\157\164\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060 +\033\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155 +\151\163\040\055\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\222\060\202\003\172\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061\023 +\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156\157 +\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060\060 +\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060\033 +\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155\151 +\163\040\055\040\122\157\157\164\040\103\101\060\036\027\015\061 +\063\061\060\062\061\060\071\061\067\061\070\132\027\015\063\063 +\061\060\062\061\060\071\061\067\061\070\132\060\132\061\013\060 +\011\006\003\125\004\006\023\002\106\122\061\023\060\021\006\003 +\125\004\012\023\012\103\145\162\164\151\156\157\155\151\163\061 +\027\060\025\006\003\125\004\013\023\016\060\060\060\062\040\064 +\063\063\071\071\070\071\060\063\061\035\060\033\006\003\125\004 +\003\023\024\103\145\162\164\151\156\157\155\151\163\040\055\040 +\122\157\157\164\040\103\101\060\202\002\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060 +\202\002\012\002\202\002\001\000\324\314\011\012\054\077\222\366 +\177\024\236\013\234\232\152\035\100\060\144\375\252\337\016\036 +\006\133\237\120\205\352\315\215\253\103\147\336\260\372\176\200 +\226\236\204\170\222\110\326\343\071\356\316\344\131\130\227\345 +\056\047\230\352\223\250\167\233\112\360\357\164\200\055\353\060 +\037\265\331\307\200\234\142\047\221\210\360\112\211\335\334\210 +\346\024\371\325\003\057\377\225\333\275\237\354\054\372\024\025 +\131\225\012\306\107\174\151\030\271\247\003\371\312\166\251\317 +\307\157\264\136\005\376\356\301\122\262\165\062\207\354\355\051 +\146\073\363\112\026\202\366\326\232\333\162\230\351\336\360\305 +\114\245\253\265\352\001\342\214\056\144\177\144\157\375\243\045 +\223\213\310\242\016\111\215\064\360\037\354\130\105\056\064\252 +\204\120\275\347\262\112\023\270\260\017\256\070\135\260\251\033 +\346\163\311\132\241\331\146\100\252\251\115\246\064\002\255\204 +\176\262\043\301\373\052\306\147\364\064\266\260\225\152\063\117 +\161\104\265\255\300\171\063\210\340\277\355\243\240\024\264\234 +\011\260\012\343\140\276\370\370\146\210\315\133\361\167\005\340 +\265\163\156\301\175\106\056\216\113\047\246\315\065\012\375\345 +\115\175\252\052\243\051\307\132\150\004\350\345\326\223\244\142 +\302\305\346\364\117\306\371\237\032\215\202\111\031\212\312\131 +\103\072\350\015\062\301\364\114\023\003\157\156\246\077\221\163 +\313\312\163\157\022\040\213\356\300\202\170\336\113\056\302\111 +\303\035\355\026\366\044\364\047\033\134\127\061\334\125\356\250 +\036\157\154\254\342\105\314\127\127\212\165\127\031\340\265\130 +\231\111\066\061\074\063\001\155\026\112\315\270\052\203\204\206 +\233\371\140\322\037\155\221\003\323\140\246\325\075\232\335\167 +\220\075\065\244\237\017\136\365\122\104\151\271\300\272\334\317 +\175\337\174\331\304\254\206\042\062\274\173\153\221\357\172\370 +\027\150\260\342\123\125\140\055\257\076\302\203\330\331\011\053 +\360\300\144\333\207\213\221\314\221\353\004\375\166\264\225\232 +\346\024\006\033\325\064\035\276\330\377\164\034\123\205\231\340 +\131\122\112\141\355\210\236\153\111\211\106\176\040\132\331\347 +\112\345\152\356\322\145\021\103\002\003\001\000\001\243\143\060 +\141\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\035\006\003\125\035\016\004\026\004\024\357\221\114 +\365\245\303\060\350\057\010\352\323\161\042\244\222\150\170\164 +\331\060\037\006\003\125\035\043\004\030\060\026\200\024\357\221 +\114\365\245\303\060\350\057\010\352\323\161\042\244\222\150\170 +\164\331\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\003\202\002\001\000\176\075\124\332\042\135\032\130\076\073 +\124\047\272\272\314\310\343\032\152\352\076\371\022\353\126\137 +\075\120\316\340\352\110\046\046\317\171\126\176\221\034\231\077 +\320\241\221\034\054\017\117\230\225\131\123\275\320\042\330\210 +\135\234\067\374\373\144\301\170\214\213\232\140\011\352\325\372 +\041\137\320\164\145\347\120\305\277\056\271\013\013\255\265\260 +\027\246\022\214\324\142\170\352\126\152\354\012\322\100\303\074 +\005\060\076\115\224\267\237\112\003\323\175\047\113\266\376\104 +\316\372\031\063\032\155\244\102\321\335\314\310\310\327\026\122 +\203\117\065\224\263\022\125\175\345\342\102\353\344\234\223\011 +\300\114\133\007\253\307\155\021\240\120\027\224\043\250\265\012 +\222\017\262\172\301\140\054\070\314\032\246\133\377\362\014\343 +\252\037\034\334\270\240\223\047\336\143\343\177\041\237\072\345 +\236\372\340\023\152\165\353\226\134\142\221\224\216\147\123\266 +\211\370\022\011\313\157\122\133\003\162\206\120\225\010\324\215 +\207\206\025\037\225\044\330\244\157\232\316\244\235\233\155\322 +\262\166\006\206\306\126\010\305\353\011\332\066\302\033\133\101 +\276\141\052\343\160\346\270\246\370\266\132\304\275\041\367\377 +\252\137\241\154\166\071\146\326\352\114\125\341\000\063\233\023 +\230\143\311\157\320\001\040\011\067\122\347\014\117\076\315\274 +\365\137\226\047\247\040\002\225\340\056\350\007\101\005\037\025 +\156\326\260\344\031\340\017\002\223\000\047\162\305\213\321\124 +\037\135\112\303\100\227\176\125\246\174\301\063\004\024\001\035 +\111\040\151\013\031\223\235\156\130\042\367\100\014\106\014\043 +\143\363\071\322\177\166\121\247\364\310\241\361\014\166\042\043 +\106\122\051\055\342\243\101\007\126\151\230\322\005\011\274\151 +\307\132\141\315\217\201\140\025\115\200\335\220\342\175\304\120 +\362\214\073\156\112\307\306\346\200\053\074\201\274\021\200\026 +\020\047\327\360\315\077\171\314\163\052\303\176\123\221\326\156 +\370\365\363\307\320\121\115\216\113\245\133\346\031\027\073\326 +\201\011\334\042\334\356\216\271\304\217\123\341\147\273\063\270 +\210\025\106\317\355\151\065\377\165\015\106\363\316\161\341\305 +\153\206\102\006\271\101 +END + +# Trust for "Certinomis - Root CA" +# Issuer: CN=Certinomis - Root CA,OU=0002 433998903,O=Certinomis,C=FR +# Serial Number: 1 (0x1) +# Subject: CN=Certinomis - Root CA,OU=0002 433998903,O=Certinomis,C=FR +# Not Valid Before: Mon Oct 21 09:17:18 2013 +# Not Valid After : Fri Oct 21 09:17:18 2033 +# Fingerprint (SHA-256): 2A:99:F5:BC:11:74:B7:3C:BB:1D:62:08:84:E0:1C:34:E5:1C:CB:39:78:DA:12:5F:0E:33:26:88:83:BF:41:58 +# Fingerprint (SHA1): 9D:70:BB:01:A5:A4:A0:18:11:2E:F7:1C:01:B9:32:C5:34:E7:88:A8 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certinomis - Root CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\235\160\273\001\245\244\240\030\021\056\367\034\001\271\062\305 +\064\347\210\250 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\024\012\375\215\250\050\265\070\151\333\126\176\141\042\003\077 +END +CKA_ISSUER MULTILINE_OCTAL +\060\132\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\023\060\021\006\003\125\004\012\023\012\103\145\162\164\151\156 +\157\155\151\163\061\027\060\025\006\003\125\004\013\023\016\060 +\060\060\062\040\064\063\063\071\071\070\071\060\063\061\035\060 +\033\006\003\125\004\003\023\024\103\145\162\164\151\156\157\155 +\151\163\040\055\040\122\157\157\164\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "OISTE WISeKey Global Root GB CA" +# +# Issuer: CN=OISTE WISeKey Global Root GB CA,OU=OISTE Foundation Endorsed,O=WISeKey,C=CH +# Serial Number:76:b1:20:52:74:f0:85:87:46:b3:f8:23:1a:f6:c2:c0 +# Subject: CN=OISTE WISeKey Global Root GB CA,OU=OISTE Foundation Endorsed,O=WISeKey,C=CH +# Not Valid Before: Mon Dec 01 15:00:32 2014 +# Not Valid After : Thu Dec 01 15:10:31 2039 +# Fingerprint (SHA-256): 6B:9C:08:E8:6E:B0:F7:67:CF:AD:65:CD:98:B6:21:49:E5:49:4A:67:F5:84:5E:7B:D1:ED:01:9F:27:B8:6B:D6 +# Fingerprint (SHA1): 0F:F9:40:76:18:D3:D7:6A:4B:98:F0:A8:35:9E:0C:FD:27:AC:CC:ED +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 "OISTE WISeKey Global Root GB CA" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\155\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145 +\171\061\042\060\040\006\003\125\004\013\023\031\117\111\123\124 +\105\040\106\157\165\156\144\141\164\151\157\156\040\105\156\144 +\157\162\163\145\144\061\050\060\046\006\003\125\004\003\023\037 +\117\111\123\124\105\040\127\111\123\145\113\145\171\040\107\154 +\157\142\141\154\040\122\157\157\164\040\107\102\040\103\101 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\155\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145 +\171\061\042\060\040\006\003\125\004\013\023\031\117\111\123\124 +\105\040\106\157\165\156\144\141\164\151\157\156\040\105\156\144 +\157\162\163\145\144\061\050\060\046\006\003\125\004\003\023\037 +\117\111\123\124\105\040\127\111\123\145\113\145\171\040\107\154 +\157\142\141\154\040\122\157\157\164\040\107\102\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\166\261\040\122\164\360\205\207\106\263\370\043\032\366 +\302\300 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\265\060\202\002\235\240\003\002\001\002\002\020\166 +\261\040\122\164\360\205\207\106\263\370\043\032\366\302\300\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\155 +\061\013\060\011\006\003\125\004\006\023\002\103\110\061\020\060 +\016\006\003\125\004\012\023\007\127\111\123\145\113\145\171\061 +\042\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040 +\106\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162 +\163\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111 +\123\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142 +\141\154\040\122\157\157\164\040\107\102\040\103\101\060\036\027 +\015\061\064\061\062\060\061\061\065\060\060\063\062\132\027\015 +\063\071\061\062\060\061\061\065\061\060\063\061\132\060\155\061 +\013\060\011\006\003\125\004\006\023\002\103\110\061\020\060\016 +\006\003\125\004\012\023\007\127\111\123\145\113\145\171\061\042 +\060\040\006\003\125\004\013\023\031\117\111\123\124\105\040\106 +\157\165\156\144\141\164\151\157\156\040\105\156\144\157\162\163 +\145\144\061\050\060\046\006\003\125\004\003\023\037\117\111\123 +\124\105\040\127\111\123\145\113\145\171\040\107\154\157\142\141 +\154\040\122\157\157\164\040\107\102\040\103\101\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\330\027\267 +\034\112\044\052\326\227\261\312\342\036\373\175\070\357\230\365 +\262\071\230\116\047\270\021\135\173\322\045\224\210\202\025\046 +\152\033\061\273\250\133\041\041\053\330\017\116\237\132\361\261 +\132\344\171\326\062\043\053\341\123\314\231\105\134\173\117\255 +\274\277\207\112\013\113\227\132\250\366\110\354\175\173\015\315 +\041\006\337\236\025\375\101\212\110\267\040\364\241\172\033\127 +\324\135\120\377\272\147\330\043\231\037\310\077\343\336\377\157 +\133\167\261\153\156\270\311\144\367\341\312\101\106\016\051\161 +\320\271\043\374\311\201\137\116\367\157\337\277\204\255\163\144 +\273\267\102\216\151\366\324\166\035\176\235\247\270\127\212\121 +\147\162\327\324\250\270\225\124\100\163\003\366\352\364\353\376 +\050\102\167\077\235\043\033\262\266\075\200\024\007\114\056\117 +\367\325\012\026\015\275\146\103\067\176\043\103\171\303\100\206 +\365\114\051\332\216\232\255\015\245\004\207\210\036\205\343\351 +\123\325\233\310\213\003\143\170\353\340\031\112\156\273\057\153 +\063\144\130\223\255\151\277\217\033\357\202\110\307\002\003\001 +\000\001\243\121\060\117\060\013\006\003\125\035\017\004\004\003 +\002\001\206\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\035\006\003\125\035\016\004\026\004\024\065 +\017\310\066\143\136\342\243\354\371\073\146\025\316\121\122\343 +\221\232\075\060\020\006\011\053\006\001\004\001\202\067\025\001 +\004\003\002\001\000\060\015\006\011\052\206\110\206\367\015\001 +\001\013\005\000\003\202\001\001\000\100\114\373\207\262\231\201 +\220\176\235\305\260\260\046\315\210\173\053\062\215\156\270\041 +\161\130\227\175\256\067\024\257\076\347\367\232\342\175\366\161 +\230\231\004\252\103\164\170\243\343\111\141\076\163\214\115\224 +\340\371\161\304\266\026\016\123\170\037\326\242\207\057\002\071 +\201\051\074\257\025\230\041\060\376\050\220\000\214\321\341\313 +\372\136\310\375\370\020\106\073\242\170\102\221\027\164\125\012 +\336\120\147\115\146\321\247\377\375\331\300\265\250\243\212\316 +\146\365\017\103\315\247\053\127\173\143\106\152\252\056\122\330 +\364\355\341\155\255\051\220\170\110\272\341\043\252\243\211\354 +\265\253\226\300\264\113\242\035\227\236\172\362\156\100\161\337 +\150\361\145\115\316\174\005\337\123\145\251\245\360\261\227\004 +\160\025\106\003\230\324\322\277\124\264\240\130\175\122\157\332 +\126\046\142\324\330\333\211\061\157\034\360\042\302\323\142\034 +\065\315\114\151\025\124\032\220\230\336\353\036\137\312\167\307 +\313\216\075\103\151\234\232\130\320\044\073\337\033\100\226\176 +\065\255\201\307\116\161\272\210\023 +END + +# Trust for "OISTE WISeKey Global Root GB CA" +# Issuer: CN=OISTE WISeKey Global Root GB CA,OU=OISTE Foundation Endorsed,O=WISeKey,C=CH +# Serial Number:76:b1:20:52:74:f0:85:87:46:b3:f8:23:1a:f6:c2:c0 +# Subject: CN=OISTE WISeKey Global Root GB CA,OU=OISTE Foundation Endorsed,O=WISeKey,C=CH +# Not Valid Before: Mon Dec 01 15:00:32 2014 +# Not Valid After : Thu Dec 01 15:10:31 2039 +# Fingerprint (SHA-256): 6B:9C:08:E8:6E:B0:F7:67:CF:AD:65:CD:98:B6:21:49:E5:49:4A:67:F5:84:5E:7B:D1:ED:01:9F:27:B8:6B:D6 +# Fingerprint (SHA1): 0F:F9:40:76:18:D3:D7:6A:4B:98:F0:A8:35:9E:0C:FD:27:AC:CC:ED +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OISTE WISeKey Global Root GB CA" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\017\371\100\166\030\323\327\152\113\230\360\250\065\236\014\375 +\047\254\314\355 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\244\353\271\141\050\056\267\057\230\260\065\046\220\231\121\035 +END +CKA_ISSUER MULTILINE_OCTAL +\060\155\061\013\060\011\006\003\125\004\006\023\002\103\110\061 +\020\060\016\006\003\125\004\012\023\007\127\111\123\145\113\145 +\171\061\042\060\040\006\003\125\004\013\023\031\117\111\123\124 +\105\040\106\157\165\156\144\141\164\151\157\156\040\105\156\144 +\157\162\163\145\144\061\050\060\046\006\003\125\004\003\023\037 +\117\111\123\124\105\040\127\111\123\145\113\145\171\040\107\154 +\157\142\141\154\040\122\157\157\164\040\107\102\040\103\101 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\166\261\040\122\164\360\205\207\106\263\370\043\032\366 +\302\300 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certification Authority of WoSign G2" +# +# Issuer: CN=Certification Authority of WoSign G2,O=WoSign CA Limited,C=CN +# Serial Number:6b:25:da:8a:88:9d:7c:bc:0f:05:b3:b1:7a:61:45:44 +# Subject: CN=Certification Authority of WoSign G2,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Nov 08 00:58:58 2014 +# Not Valid After : Tue Nov 08 00:58:58 2044 +# Fingerprint (SHA-256): D4:87:A5:6F:83:B0:74:82:E8:5E:96:33:94:C1:EC:C2:C9:E5:1D:09:03:EE:94:6B:02:C3:01:58:1E:D9:9E:16 +# Fingerprint (SHA1): FB:ED:DC:90:65:B7:27:20:37:BC:55:0C:9C:56:DE:BB:F2:78:94:E1 +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 "Certification Authority of WoSign G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\055\060\053\006 +\003\125\004\003\023\044\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146 +\040\127\157\123\151\147\156\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\055\060\053\006 +\003\125\004\003\023\044\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146 +\040\127\157\123\151\147\156\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\153\045\332\212\210\235\174\274\017\005\263\261\172\141 +\105\104 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\174\060\202\002\144\240\003\002\001\002\002\020\153 +\045\332\212\210\235\174\274\017\005\263\261\172\141\105\104\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\130 +\061\013\060\011\006\003\125\004\006\023\002\103\116\061\032\060 +\030\006\003\125\004\012\023\021\127\157\123\151\147\156\040\103 +\101\040\114\151\155\151\164\145\144\061\055\060\053\006\003\125 +\004\003\023\044\103\145\162\164\151\146\151\143\141\164\151\157 +\156\040\101\165\164\150\157\162\151\164\171\040\157\146\040\127 +\157\123\151\147\156\040\107\062\060\036\027\015\061\064\061\061 +\060\070\060\060\065\070\065\070\132\027\015\064\064\061\061\060 +\070\060\060\065\070\065\070\132\060\130\061\013\060\011\006\003 +\125\004\006\023\002\103\116\061\032\060\030\006\003\125\004\012 +\023\021\127\157\123\151\147\156\040\103\101\040\114\151\155\151 +\164\145\144\061\055\060\053\006\003\125\004\003\023\044\103\145 +\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150 +\157\162\151\164\171\040\157\146\040\127\157\123\151\147\156\040 +\107\062\060\202\001\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\001\017\000\060\202\001\012\002\202 +\001\001\000\276\305\304\240\042\200\111\117\277\331\207\021\306 +\123\341\273\017\275\140\177\257\366\202\016\037\334\260\216\075 +\227\340\120\074\217\072\357\146\073\105\007\233\040\370\343\327 +\045\206\065\220\026\242\135\157\060\031\010\207\013\177\006\262 +\235\142\217\336\257\222\245\140\324\053\200\232\122\077\365\232 +\203\351\064\132\313\331\325\142\134\346\016\340\337\006\230\016 +\200\174\312\264\035\023\210\153\016\250\044\167\003\320\356\133 +\363\312\151\221\065\071\126\305\155\343\367\075\117\136\223\070 +\044\312\030\351\044\313\222\003\335\314\034\075\011\160\344\040 +\344\361\256\254\273\163\151\243\143\072\017\105\017\241\112\232 +\302\321\143\254\313\020\370\075\346\116\050\267\353\304\225\261 +\254\375\136\253\372\101\313\135\235\113\334\364\174\166\357\147 +\177\000\172\215\322\240\032\134\115\042\341\265\332\335\166\263 +\324\166\337\136\270\213\230\310\024\124\314\153\027\222\267\340 +\112\277\111\224\141\013\070\220\217\135\044\154\045\173\073\171 +\331\342\176\235\255\237\230\241\006\374\170\024\140\127\370\356 +\200\167\261\002\003\001\000\001\243\102\060\100\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003 +\125\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006 +\003\125\035\016\004\026\004\024\372\140\251\353\145\305\335\026 +\024\010\116\014\017\215\233\340\367\144\257\147\060\015\006\011 +\052\206\110\206\367\015\001\001\013\005\000\003\202\001\001\000 +\127\303\172\066\202\234\215\230\342\253\100\252\107\217\307\247 +\133\355\174\347\075\146\132\073\061\273\337\363\026\063\221\374 +\174\173\245\302\246\146\343\252\260\267\047\230\077\111\327\140 +\147\147\077\066\117\112\313\361\024\372\132\207\050\034\355\217 +\101\062\306\225\371\175\332\275\173\133\302\260\041\343\217\106 +\334\041\070\103\164\114\373\060\370\027\162\301\062\374\310\221 +\027\304\314\130\067\116\013\314\132\367\041\065\050\203\154\140 +\055\104\353\122\214\120\075\265\154\022\327\372\011\273\154\262 +\112\261\305\211\344\374\323\122\330\141\027\376\172\224\204\217 +\171\266\063\131\272\017\304\013\342\160\240\113\170\056\372\310 +\237\375\257\221\145\012\170\070\025\345\227\027\024\335\371\340 +\054\064\370\070\320\204\042\000\300\024\121\030\053\002\334\060 +\132\360\350\001\174\065\072\043\257\010\344\257\252\216\050\102 +\111\056\360\365\231\064\276\355\017\113\030\341\322\044\074\273 +\135\107\267\041\362\215\321\012\231\216\343\156\076\255\160\340 +\217\271\312\314\156\201\061\366\173\234\172\171\344\147\161\030 +END + +# Trust for "Certification Authority of WoSign G2" +# Issuer: CN=Certification Authority of WoSign G2,O=WoSign CA Limited,C=CN +# Serial Number:6b:25:da:8a:88:9d:7c:bc:0f:05:b3:b1:7a:61:45:44 +# Subject: CN=Certification Authority of WoSign G2,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Nov 08 00:58:58 2014 +# Not Valid After : Tue Nov 08 00:58:58 2044 +# Fingerprint (SHA-256): D4:87:A5:6F:83:B0:74:82:E8:5E:96:33:94:C1:EC:C2:C9:E5:1D:09:03:EE:94:6B:02:C3:01:58:1E:D9:9E:16 +# Fingerprint (SHA1): FB:ED:DC:90:65:B7:27:20:37:BC:55:0C:9C:56:DE:BB:F2:78:94:E1 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certification Authority of WoSign G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\373\355\334\220\145\267\047\040\067\274\125\014\234\126\336\273 +\362\170\224\341 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\310\034\175\031\252\313\161\223\362\120\370\122\250\036\272\140 +END +CKA_ISSUER MULTILINE_OCTAL +\060\130\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\055\060\053\006 +\003\125\004\003\023\044\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\157\146 +\040\127\157\123\151\147\156\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\153\045\332\212\210\235\174\274\017\005\263\261\172\141 +\105\104 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "CA WoSign ECC Root" +# +# Issuer: CN=CA WoSign ECC Root,O=WoSign CA Limited,C=CN +# Serial Number:68:4a:58:70:80:6b:f0:8f:02:fa:f6:de:e8:b0:90:90 +# Subject: CN=CA WoSign ECC Root,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Nov 08 00:58:58 2014 +# Not Valid After : Tue Nov 08 00:58:58 2044 +# Fingerprint (SHA-256): 8B:45:DA:1C:06:F7:91:EB:0C:AB:F2:6B:E5:88:F5:FB:23:16:5C:2E:61:4B:F8:85:56:2D:0D:CE:50:B2:9B:02 +# Fingerprint (SHA1): D2:7A:D2:BE:ED:94:C0:A1:3C:C7:25:21:EA:5D:71:BE:81:19:F3:2B +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 "CA WoSign ECC Root" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006 +\003\125\004\003\023\022\103\101\040\127\157\123\151\147\156\040 +\105\103\103\040\122\157\157\164 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006 +\003\125\004\003\023\022\103\101\040\127\157\123\151\147\156\040 +\105\103\103\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\150\112\130\160\200\153\360\217\002\372\366\336\350\260 +\220\220 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\011\060\202\001\217\240\003\002\001\002\002\020\150 +\112\130\160\200\153\360\217\002\372\366\336\350\260\220\220\060 +\012\006\010\052\206\110\316\075\004\003\003\060\106\061\013\060 +\011\006\003\125\004\006\023\002\103\116\061\032\060\030\006\003 +\125\004\012\023\021\127\157\123\151\147\156\040\103\101\040\114 +\151\155\151\164\145\144\061\033\060\031\006\003\125\004\003\023 +\022\103\101\040\127\157\123\151\147\156\040\105\103\103\040\122 +\157\157\164\060\036\027\015\061\064\061\061\060\070\060\060\065 +\070\065\070\132\027\015\064\064\061\061\060\070\060\060\065\070 +\065\070\132\060\106\061\013\060\011\006\003\125\004\006\023\002 +\103\116\061\032\060\030\006\003\125\004\012\023\021\127\157\123 +\151\147\156\040\103\101\040\114\151\155\151\164\145\144\061\033 +\060\031\006\003\125\004\003\023\022\103\101\040\127\157\123\151 +\147\156\040\105\103\103\040\122\157\157\164\060\166\060\020\006 +\007\052\206\110\316\075\002\001\006\005\053\201\004\000\042\003 +\142\000\004\341\375\216\270\103\044\253\226\173\205\302\272\013 +\255\215\340\072\343\044\271\322\261\276\210\072\312\277\112\270 +\371\357\054\057\257\121\120\074\107\165\154\370\224\267\233\374 +\050\036\305\124\314\143\235\026\113\123\301\347\040\253\315\254 +\045\322\177\217\302\301\132\202\136\060\213\172\124\316\003\265 +\221\177\252\224\320\321\212\110\314\202\005\046\241\325\121\022 +\326\173\066\243\102\060\100\060\016\006\003\125\035\017\001\001 +\377\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001 +\377\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004 +\026\004\024\252\375\325\132\243\366\207\213\062\205\375\321\062 +\133\200\105\223\363\003\270\060\012\006\010\052\206\110\316\075 +\004\003\003\003\150\000\060\145\002\061\000\344\244\204\260\201 +\325\075\260\164\254\224\244\350\016\075\000\164\114\241\227\153 +\371\015\121\074\241\331\073\364\015\253\251\237\276\116\162\312 +\205\324\331\354\265\062\105\030\157\253\255\002\060\175\307\367 +\151\143\057\241\341\230\357\023\020\321\171\077\321\376\352\073 +\177\336\126\364\220\261\025\021\330\262\042\025\320\057\303\046 +\056\153\361\221\262\220\145\364\232\346\220\356\112 +END + +# Trust for "CA WoSign ECC Root" +# Issuer: CN=CA WoSign ECC Root,O=WoSign CA Limited,C=CN +# Serial Number:68:4a:58:70:80:6b:f0:8f:02:fa:f6:de:e8:b0:90:90 +# Subject: CN=CA WoSign ECC Root,O=WoSign CA Limited,C=CN +# Not Valid Before: Sat Nov 08 00:58:58 2014 +# Not Valid After : Tue Nov 08 00:58:58 2044 +# Fingerprint (SHA-256): 8B:45:DA:1C:06:F7:91:EB:0C:AB:F2:6B:E5:88:F5:FB:23:16:5C:2E:61:4B:F8:85:56:2D:0D:CE:50:B2:9B:02 +# Fingerprint (SHA1): D2:7A:D2:BE:ED:94:C0:A1:3C:C7:25:21:EA:5D:71:BE:81:19:F3:2B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "CA WoSign ECC Root" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\322\172\322\276\355\224\300\241\074\307\045\041\352\135\161\276 +\201\031\363\053 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\200\306\123\356\141\202\050\162\360\377\041\271\027\312\262\040 +END +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\103\116\061 +\032\060\030\006\003\125\004\012\023\021\127\157\123\151\147\156 +\040\103\101\040\114\151\155\151\164\145\144\061\033\060\031\006 +\003\125\004\003\023\022\103\101\040\127\157\123\151\147\156\040 +\105\103\103\040\122\157\157\164 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\150\112\130\160\200\153\360\217\002\372\366\336\350\260 +\220\220 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "SZAFIR ROOT CA2" +# +# Issuer: CN=SZAFIR ROOT CA2,O=Krajowa Izba Rozliczeniowa S.A.,C=PL +# Serial Number:3e:8a:5d:07:ec:55:d2:32:d5:b7:e3:b6:5f:01:eb:2d:dc:e4:d6:e4 +# Subject: CN=SZAFIR ROOT CA2,O=Krajowa Izba Rozliczeniowa S.A.,C=PL +# Not Valid Before: Mon Oct 19 07:43:30 2015 +# Not Valid After : Fri Oct 19 07:43:30 2035 +# Fingerprint (SHA-256): A1:33:9D:33:28:1A:0B:56:E5:57:D3:D3:2B:1C:E7:F9:36:7E:B0:94:BD:5F:A7:2A:7E:50:04:C8:DE:D7:CA:FE +# Fingerprint (SHA1): E2:52:FA:95:3F:ED:DB:24:60:BD:6E:28:F3:9C:CC:CF:5E:B3:3F:DE +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 "SZAFIR ROOT CA2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\050\060\046\006\003\125\004\012\014\037\113\162\141\152\157\167 +\141\040\111\172\142\141\040\122\157\172\154\151\143\172\145\156 +\151\157\167\141\040\123\056\101\056\061\030\060\026\006\003\125 +\004\003\014\017\123\132\101\106\111\122\040\122\117\117\124\040 +\103\101\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\050\060\046\006\003\125\004\012\014\037\113\162\141\152\157\167 +\141\040\111\172\142\141\040\122\157\172\154\151\143\172\145\156 +\151\157\167\141\040\123\056\101\056\061\030\060\026\006\003\125 +\004\003\014\017\123\132\101\106\111\122\040\122\117\117\124\040 +\103\101\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\076\212\135\007\354\125\322\062\325\267\343\266\137\001 +\353\055\334\344\326\344 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\162\060\202\002\132\240\003\002\001\002\002\024\076 +\212\135\007\354\125\322\062\325\267\343\266\137\001\353\055\334 +\344\326\344\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\121\061\013\060\011\006\003\125\004\006\023\002\120 +\114\061\050\060\046\006\003\125\004\012\014\037\113\162\141\152 +\157\167\141\040\111\172\142\141\040\122\157\172\154\151\143\172 +\145\156\151\157\167\141\040\123\056\101\056\061\030\060\026\006 +\003\125\004\003\014\017\123\132\101\106\111\122\040\122\117\117 +\124\040\103\101\062\060\036\027\015\061\065\061\060\061\071\060 +\067\064\063\063\060\132\027\015\063\065\061\060\061\071\060\067 +\064\063\063\060\132\060\121\061\013\060\011\006\003\125\004\006 +\023\002\120\114\061\050\060\046\006\003\125\004\012\014\037\113 +\162\141\152\157\167\141\040\111\172\142\141\040\122\157\172\154 +\151\143\172\145\156\151\157\167\141\040\123\056\101\056\061\030 +\060\026\006\003\125\004\003\014\017\123\132\101\106\111\122\040 +\122\117\117\124\040\103\101\062\060\202\001\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000 +\060\202\001\012\002\202\001\001\000\267\274\076\120\250\113\315 +\100\265\316\141\347\226\312\264\241\332\014\042\260\372\265\173 +\166\000\167\214\013\317\175\250\206\314\046\121\344\040\075\205 +\014\326\130\343\347\364\052\030\235\332\321\256\046\356\353\123 +\334\364\220\326\023\112\014\220\074\303\364\332\322\216\015\222 +\072\334\261\261\377\070\336\303\272\055\137\200\271\002\275\112 +\235\033\017\264\303\302\301\147\003\335\334\033\234\075\263\260 +\336\000\036\250\064\107\273\232\353\376\013\024\275\066\204\332 +\015\040\277\372\133\313\251\026\040\255\071\140\356\057\165\266 +\347\227\234\371\076\375\176\115\157\115\057\357\210\015\152\372 +\335\361\075\156\040\245\240\022\264\115\160\271\316\327\162\073 +\211\223\247\200\204\034\047\111\162\111\265\377\073\225\236\301 +\314\310\001\354\350\016\212\012\226\347\263\246\207\345\326\371 +\005\053\015\227\100\160\074\272\254\165\132\234\325\115\235\002 +\012\322\113\233\146\113\106\007\027\145\255\237\154\210\000\334 +\042\211\340\341\144\324\147\274\061\171\141\074\273\312\101\315 +\134\152\000\310\074\070\216\130\257\002\003\001\000\001\243\102 +\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\035\006\003\125\035\016\004\026\004\024\056\026 +\251\112\030\265\313\314\365\157\120\363\043\137\370\135\347\254 +\360\310\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\003\202\001\001\000\265\163\370\003\334\131\133\035\166\351 +\243\052\173\220\050\262\115\300\063\117\252\232\261\324\270\344 +\047\377\251\226\231\316\106\340\155\174\114\242\070\244\006\160 +\360\364\101\021\354\077\107\215\077\162\207\371\073\375\244\157 +\053\123\000\340\377\071\271\152\007\016\353\035\034\366\242\162 +\220\313\202\075\021\202\213\322\273\237\052\257\041\346\143\206 +\235\171\031\357\367\273\014\065\220\303\212\355\117\017\365\314 +\022\331\244\076\273\240\374\040\225\137\117\046\057\021\043\203 +\116\165\007\017\277\233\321\264\035\351\020\004\376\312\140\217 +\242\114\270\255\317\341\220\017\315\256\012\307\135\173\267\120 +\322\324\141\372\325\025\333\327\237\207\121\124\353\245\343\353 +\311\205\240\045\040\067\373\216\316\014\064\204\341\074\201\262 +\167\116\103\245\210\137\206\147\241\075\346\264\134\141\266\076 +\333\376\267\050\305\242\007\256\265\312\312\215\052\022\357\227 +\355\302\060\244\311\052\172\373\363\115\043\033\231\063\064\240 +\056\365\251\013\077\324\135\341\317\204\237\342\031\302\137\212 +\326\040\036\343\163\267 +END + +# Trust for "SZAFIR ROOT CA2" +# Issuer: CN=SZAFIR ROOT CA2,O=Krajowa Izba Rozliczeniowa S.A.,C=PL +# Serial Number:3e:8a:5d:07:ec:55:d2:32:d5:b7:e3:b6:5f:01:eb:2d:dc:e4:d6:e4 +# Subject: CN=SZAFIR ROOT CA2,O=Krajowa Izba Rozliczeniowa S.A.,C=PL +# Not Valid Before: Mon Oct 19 07:43:30 2015 +# Not Valid After : Fri Oct 19 07:43:30 2035 +# Fingerprint (SHA-256): A1:33:9D:33:28:1A:0B:56:E5:57:D3:D3:2B:1C:E7:F9:36:7E:B0:94:BD:5F:A7:2A:7E:50:04:C8:DE:D7:CA:FE +# Fingerprint (SHA1): E2:52:FA:95:3F:ED:DB:24:60:BD:6E:28:F3:9C:CC:CF:5E:B3:3F:DE +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "SZAFIR ROOT CA2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\342\122\372\225\077\355\333\044\140\275\156\050\363\234\314\317 +\136\263\077\336 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\021\144\301\211\260\044\261\214\261\007\176\211\236\121\236\231 +END +CKA_ISSUER MULTILINE_OCTAL +\060\121\061\013\060\011\006\003\125\004\006\023\002\120\114\061 +\050\060\046\006\003\125\004\012\014\037\113\162\141\152\157\167 +\141\040\111\172\142\141\040\122\157\172\154\151\143\172\145\156 +\151\157\167\141\040\123\056\101\056\061\030\060\026\006\003\125 +\004\003\014\017\123\132\101\106\111\122\040\122\117\117\124\040 +\103\101\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\076\212\135\007\354\125\322\062\325\267\343\266\137\001 +\353\055\334\344\326\344 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certum Trusted Network CA 2" +# +# Issuer: CN=Certum Trusted Network CA 2,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Serial Number:21:d6:d0:4a:4f:25:0f:c9:32:37:fc:aa:5e:12:8d:e9 +# Subject: CN=Certum Trusted Network CA 2,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Not Valid Before: Thu Oct 06 08:39:56 2011 +# Not Valid After : Sat Oct 06 08:39:56 2046 +# Fingerprint (SHA-256): B6:76:F2:ED:DA:E8:77:5C:D3:6C:B0:F6:3C:D1:D4:60:39:61:F4:9E:62:65:BA:01:3A:2F:03:07:B6:D0:B8:04 +# Fingerprint (SHA1): D3:DD:48:3E:2B:BF:4C:05:E8:AF:10:F5:FA:76:26:CF:D3:DC:30:92 +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 Trusted Network CA 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\200\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\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\044\060 +\042\006\003\125\004\003\023\033\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103 +\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\200\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\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\044\060 +\042\006\003\125\004\003\023\033\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103 +\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\041\326\320\112\117\045\017\311\062\067\374\252\136\022 +\215\351 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\322\060\202\003\272\240\003\002\001\002\002\020\041 +\326\320\112\117\045\017\311\062\067\374\252\136\022\215\351\060 +\015\006\011\052\206\110\206\367\015\001\001\015\005\000\060\201 +\200\061\013\060\011\006\003\125\004\006\023\002\120\114\061\042 +\060\040\006\003\125\004\012\023\031\125\156\151\172\145\164\157 +\040\124\145\143\150\156\157\154\157\147\151\145\163\040\123\056 +\101\056\061\047\060\045\006\003\125\004\013\023\036\103\145\162 +\164\165\155\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\044\060\042\006 +\003\125\004\003\023\033\103\145\162\164\165\155\040\124\162\165 +\163\164\145\144\040\116\145\164\167\157\162\153\040\103\101\040 +\062\060\042\030\017\062\060\061\061\061\060\060\066\060\070\063 +\071\065\066\132\030\017\062\060\064\066\061\060\060\066\060\070 +\063\071\065\066\132\060\201\200\061\013\060\011\006\003\125\004 +\006\023\002\120\114\061\042\060\040\006\003\125\004\012\023\031 +\125\156\151\172\145\164\157\040\124\145\143\150\156\157\154\157 +\147\151\145\163\040\123\056\101\056\061\047\060\045\006\003\125 +\004\013\023\036\103\145\162\164\165\155\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\044\060\042\006\003\125\004\003\023\033\103\145\162 +\164\165\155\040\124\162\165\163\164\145\144\040\116\145\164\167 +\157\162\153\040\103\101\040\062\060\202\002\042\060\015\006\011 +\052\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000 +\060\202\002\012\002\202\002\001\000\275\371\170\370\346\325\200 +\014\144\235\206\033\226\144\147\077\042\072\036\165\001\175\357 +\373\134\147\214\311\314\134\153\251\221\346\271\102\345\040\113 +\233\332\233\173\271\231\135\331\233\200\113\327\204\100\053\047 +\323\350\272\060\273\076\011\032\247\111\225\357\053\100\044\302 +\227\307\247\356\233\045\357\250\012\000\227\205\132\252\235\334 +\051\311\342\065\007\353\160\115\112\326\301\263\126\270\241\101 +\070\233\321\373\061\177\217\340\137\341\261\077\017\216\026\111 +\140\327\006\215\030\371\252\046\020\253\052\323\320\321\147\215 +\033\106\276\107\060\325\056\162\321\305\143\332\347\143\171\104 +\176\113\143\044\211\206\056\064\077\051\114\122\213\052\247\300 +\342\221\050\211\271\300\133\371\035\331\347\047\255\377\232\002 +\227\301\306\120\222\233\002\054\275\251\271\064\131\012\277\204 +\112\377\337\376\263\237\353\331\236\340\230\043\354\246\153\167 +\026\052\333\314\255\073\034\244\207\334\106\163\136\031\142\150 +\105\127\344\220\202\102\273\102\326\360\141\340\301\243\075\146 +\243\135\364\030\356\210\311\215\027\105\051\231\062\165\002\061 +\356\051\046\310\153\002\346\265\142\105\177\067\025\132\043\150 +\211\324\076\336\116\047\260\360\100\014\274\115\027\313\115\242 +\263\036\320\006\132\335\366\223\317\127\165\231\365\372\206\032 +\147\170\263\277\226\376\064\334\275\347\122\126\345\263\345\165 +\173\327\101\221\005\334\135\151\343\225\015\103\271\374\203\226 +\071\225\173\154\200\132\117\023\162\306\327\175\051\172\104\272 +\122\244\052\325\101\106\011\040\376\042\240\266\133\060\215\274 +\211\014\325\327\160\370\207\122\375\332\357\254\121\056\007\263 +\116\376\320\011\332\160\357\230\372\126\346\155\333\265\127\113 +\334\345\054\045\025\310\236\056\170\116\370\332\234\236\206\054 +\312\127\363\032\345\310\222\213\032\202\226\172\303\274\120\022 +\151\330\016\132\106\213\072\353\046\372\043\311\266\260\201\276 +\102\000\244\370\326\376\060\056\307\322\106\366\345\216\165\375 +\362\314\271\320\207\133\314\006\020\140\273\203\065\267\136\147 +\336\107\354\231\110\361\244\241\025\376\255\214\142\216\071\125 +\117\071\026\271\261\143\235\377\267\002\003\001\000\001\243\102 +\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\035\006\003\125\035\016\004\026\004\024\266\241 +\124\071\002\303\240\077\216\212\274\372\324\370\034\246\321\072 +\016\375\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\015\005 +\000\003\202\002\001\000\161\245\016\316\344\351\277\077\070\325 +\211\132\304\002\141\373\114\305\024\027\055\213\117\123\153\020 +\027\374\145\204\307\020\111\220\336\333\307\046\223\210\046\157 +\160\326\002\136\071\240\367\217\253\226\265\245\023\134\201\024 +\155\016\201\202\021\033\212\116\306\117\245\335\142\036\104\337 +\011\131\364\133\167\013\067\351\213\040\306\370\012\116\056\130 +\034\353\063\320\317\206\140\311\332\373\200\057\236\114\140\204 +\170\075\041\144\326\373\101\037\030\017\347\311\165\161\275\275 +\134\336\064\207\076\101\260\016\366\271\326\077\011\023\226\024 +\057\336\232\035\132\271\126\316\065\072\260\137\160\115\136\343 +\051\361\043\050\162\131\266\253\302\214\146\046\034\167\054\046 +\166\065\213\050\247\151\240\371\073\365\043\335\205\020\164\311 +\220\003\126\221\347\257\272\107\324\022\227\021\042\343\242\111 +\224\154\347\267\224\113\272\055\244\332\063\213\114\246\104\377 +\132\074\306\035\144\330\265\061\344\246\074\172\250\127\013\333 +\355\141\032\313\361\316\163\167\143\244\207\157\114\121\070\326 +\344\137\307\237\266\201\052\344\205\110\171\130\136\073\370\333 +\002\202\147\301\071\333\303\164\113\075\066\036\371\051\223\210 +\150\133\250\104\031\041\360\247\350\201\015\054\350\223\066\264 +\067\262\312\260\033\046\172\232\045\037\232\232\200\236\113\052 +\077\373\243\232\376\163\062\161\302\236\306\162\341\212\150\047 +\361\344\017\264\304\114\245\141\223\370\227\020\007\052\060\045 +\251\271\310\161\270\357\150\314\055\176\365\340\176\017\202\250 +\157\266\272\154\203\103\167\315\212\222\027\241\236\133\170\026 +\075\105\342\063\162\335\341\146\312\231\323\311\305\046\375\015 +\150\004\106\256\266\331\233\214\276\031\276\261\306\362\031\343 +\134\002\312\054\330\157\112\007\331\311\065\332\100\165\362\304 +\247\031\157\236\102\020\230\165\346\225\213\140\274\355\305\022 +\327\212\316\325\230\134\126\226\003\305\356\167\006\065\377\317 +\344\356\077\023\141\356\333\332\055\205\360\315\256\235\262\030 +\011\105\303\222\241\162\027\374\107\266\240\013\054\361\304\336 +\103\150\010\152\137\073\360\166\143\373\314\006\054\246\306\342 +\016\265\271\276\044\217 +END + +# Trust for "Certum Trusted Network CA 2" +# Issuer: CN=Certum Trusted Network CA 2,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Serial Number:21:d6:d0:4a:4f:25:0f:c9:32:37:fc:aa:5e:12:8d:e9 +# Subject: CN=Certum Trusted Network CA 2,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL +# Not Valid Before: Thu Oct 06 08:39:56 2011 +# Not Valid After : Sat Oct 06 08:39:56 2046 +# Fingerprint (SHA-256): B6:76:F2:ED:DA:E8:77:5C:D3:6C:B0:F6:3C:D1:D4:60:39:61:F4:9E:62:65:BA:01:3A:2F:03:07:B6:D0:B8:04 +# Fingerprint (SHA1): D3:DD:48:3E:2B:BF:4C:05:E8:AF:10:F5:FA:76:26:CF:D3:DC:30:92 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certum Trusted Network CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\323\335\110\076\053\277\114\005\350\257\020\365\372\166\046\317 +\323\334\060\222 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\155\106\236\331\045\155\010\043\133\136\164\175\036\047\333\362 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\200\061\013\060\011\006\003\125\004\006\023\002\120\114 +\061\042\060\040\006\003\125\004\012\023\031\125\156\151\172\145 +\164\157\040\124\145\143\150\156\157\154\157\147\151\145\163\040 +\123\056\101\056\061\047\060\045\006\003\125\004\013\023\036\103 +\145\162\164\165\155\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\044\060 +\042\006\003\125\004\003\023\033\103\145\162\164\165\155\040\124 +\162\165\163\164\145\144\040\116\145\164\167\157\162\153\040\103 +\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\041\326\320\112\117\045\017\311\062\067\374\252\136\022 +\215\351 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Hellenic Academic and Research Institutions RootCA 2015" +# +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Serial Number: 0 (0x0) +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Not Valid Before: Tue Jul 07 10:11:21 2015 +# Not Valid After : Sat Jun 30 10:11:21 2040 +# Fingerprint (SHA-256): A0:40:92:9A:02:CE:53:B4:AC:F4:F2:FF:C6:98:1C:E4:49:6F:75:5E:6D:45:FE:0B:2A:69:2B:CD:52:52:3F:36 +# Fingerprint (SHA1): 01:0C:06:95:A6:98:19:14:FF:BF:5F:C6:B0:B6:95:EA:29:E9:12:A6 +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 "Hellenic Academic and Research Institutions RootCA 2015" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\246\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156 +\163\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154 +\145\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156 +\144\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151 +\164\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165 +\164\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003 +\023\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157 +\157\164\103\101\040\062\060\061\065 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\246\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156 +\163\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154 +\145\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156 +\144\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151 +\164\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165 +\164\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003 +\023\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157 +\157\164\103\101\040\062\060\061\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\006\013\060\202\003\363\240\003\002\001\002\002\001\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\246\061\013\060\011\006\003\125\004\006\023\002\107\122\061 +\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156\163 +\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165\164 +\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003\023 +\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145\155 +\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150\040 +\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157\157 +\164\103\101\040\062\060\061\065\060\036\027\015\061\065\060\067 +\060\067\061\060\061\061\062\061\132\027\015\064\060\060\066\063 +\060\061\060\061\061\062\061\132\060\201\246\061\013\060\011\006 +\003\125\004\006\023\002\107\122\061\017\060\015\006\003\125\004 +\007\023\006\101\164\150\145\156\163\061\104\060\102\006\003\125 +\004\012\023\073\110\145\154\154\145\156\151\143\040\101\143\141 +\144\145\155\151\143\040\141\156\144\040\122\145\163\145\141\162 +\143\150\040\111\156\163\164\151\164\165\164\151\157\156\163\040 +\103\145\162\164\056\040\101\165\164\150\157\162\151\164\171\061 +\100\060\076\006\003\125\004\003\023\067\110\145\154\154\145\156 +\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144\040 +\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164\165 +\164\151\157\156\163\040\122\157\157\164\103\101\040\062\060\061 +\065\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002 +\001\000\302\370\251\077\033\211\374\074\074\004\135\075\220\066 +\260\221\072\171\074\146\132\357\155\071\001\111\032\264\267\317 +\177\115\043\123\267\220\000\343\023\052\050\246\061\361\221\000 +\343\050\354\256\041\101\316\037\332\375\175\022\133\001\203\017 +\271\260\137\231\341\362\022\203\200\115\006\076\337\254\257\347 +\241\210\153\061\257\360\213\320\030\063\270\333\105\152\064\364 +\002\200\044\050\012\002\025\225\136\166\052\015\231\072\024\133 +\366\313\313\123\274\023\115\001\210\067\224\045\033\102\274\042 +\330\216\243\226\136\072\331\062\333\076\350\360\020\145\355\164 +\341\057\247\174\257\047\064\273\051\175\233\266\317\011\310\345 +\323\012\374\210\145\145\164\012\334\163\034\134\315\100\261\034 +\324\266\204\214\114\120\317\150\216\250\131\256\302\047\116\202 +\242\065\335\024\364\037\377\262\167\325\207\057\252\156\175\044 +\047\347\306\313\046\346\345\376\147\007\143\330\105\015\335\072 +\131\145\071\130\172\222\231\162\075\234\204\136\210\041\270\325 +\364\054\374\331\160\122\117\170\270\275\074\053\213\225\230\365 +\263\321\150\317\040\024\176\114\134\137\347\213\345\365\065\201 +\031\067\327\021\010\267\146\276\323\112\316\203\127\000\072\303 +\201\370\027\313\222\066\135\321\243\330\165\033\341\213\047\352 +\172\110\101\375\105\031\006\255\047\231\116\301\160\107\335\265 +\237\201\123\022\345\261\214\110\135\061\103\027\343\214\306\172 +\143\226\113\051\060\116\204\116\142\031\136\074\316\227\220\245 +\177\001\353\235\340\370\213\211\335\045\230\075\222\266\176\357 +\331\361\121\121\175\055\046\310\151\131\141\340\254\152\270\052 +\066\021\004\172\120\275\062\204\276\057\334\162\325\327\035\026 +\107\344\107\146\040\077\364\226\305\257\216\001\172\245\017\172 +\144\365\015\030\207\331\256\210\325\372\204\301\072\300\151\050 +\055\362\015\150\121\252\343\245\167\306\244\220\016\241\067\213 +\061\043\107\301\011\010\353\156\367\170\233\327\202\374\204\040 +\231\111\031\266\022\106\261\373\105\125\026\251\243\145\254\234 +\007\017\352\153\334\037\056\006\162\354\206\210\022\344\055\333 +\137\005\057\344\360\003\323\046\063\347\200\302\315\102\241\027 +\064\013\002\003\001\000\001\243\102\060\100\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003 +\125\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003 +\125\035\016\004\026\004\024\161\025\147\310\310\311\275\165\135 +\162\320\070\030\152\235\363\161\044\124\013\060\015\006\011\052 +\206\110\206\367\015\001\001\013\005\000\003\202\002\001\000\165 +\273\155\124\113\252\020\130\106\064\362\142\327\026\066\135\010 +\136\325\154\310\207\275\264\056\106\362\061\370\174\352\102\265 +\223\026\125\334\241\014\022\240\332\141\176\017\130\130\163\144 +\162\307\350\105\216\334\251\362\046\077\306\171\214\261\123\010 +\063\201\260\126\023\276\346\121\134\330\233\012\117\113\234\126 +\123\002\351\117\366\015\140\352\115\102\125\350\174\033\041\041 +\323\033\072\314\167\362\270\220\361\150\307\371\132\376\372\055 +\364\277\311\365\105\033\316\070\020\052\067\212\171\243\264\343 +\011\154\205\206\223\377\211\226\047\170\201\217\147\343\106\164 +\124\216\331\015\151\342\112\364\115\164\003\377\262\167\355\225 +\147\227\344\261\305\253\277\152\043\350\324\224\342\104\050\142 +\304\113\342\360\330\342\051\153\032\160\176\044\141\223\173\117 +\003\062\045\015\105\044\053\226\264\106\152\277\112\013\367\232 +\217\301\254\032\305\147\363\157\064\322\372\163\143\214\357\026 +\260\250\244\106\052\370\353\022\354\162\264\357\370\053\176\214 +\122\300\213\204\124\371\057\076\343\125\250\334\146\261\331\341 +\137\330\263\214\131\064\131\244\253\117\154\273\037\030\333\165 +\253\330\313\222\315\224\070\141\016\007\006\037\113\106\020\361 +\025\276\215\205\134\073\112\053\201\171\017\264\151\237\111\120 +\227\115\367\016\126\135\300\225\152\302\066\303\033\150\311\365 +\052\334\107\232\276\262\316\305\045\350\372\003\271\332\371\026 +\156\221\204\365\034\050\310\374\046\314\327\034\220\126\247\137 +\157\072\004\274\315\170\211\013\216\017\057\243\252\117\242\033 +\022\075\026\010\100\017\361\106\114\327\252\173\010\301\012\365 +\155\047\336\002\217\312\303\265\053\312\351\353\310\041\123\070 +\245\314\073\330\167\067\060\242\117\331\157\321\362\100\255\101 +\172\027\305\326\112\065\211\267\101\325\174\206\177\125\115\203 +\112\245\163\040\300\072\257\220\361\232\044\216\331\216\161\312 +\173\270\206\332\262\217\231\076\035\023\015\022\021\356\324\253 +\360\351\025\166\002\344\340\337\252\040\036\133\141\205\144\100 +\251\220\227\015\255\123\322\132\035\207\152\000\227\145\142\264 +\276\157\152\247\365\054\102\355\062\255\266\041\236\276\274 +END + +# Trust for "Hellenic Academic and Research Institutions RootCA 2015" +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Serial Number: 0 (0x0) +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Not Valid Before: Tue Jul 07 10:11:21 2015 +# Not Valid After : Sat Jun 30 10:11:21 2040 +# Fingerprint (SHA-256): A0:40:92:9A:02:CE:53:B4:AC:F4:F2:FF:C6:98:1C:E4:49:6F:75:5E:6D:45:FE:0B:2A:69:2B:CD:52:52:3F:36 +# Fingerprint (SHA1): 01:0C:06:95:A6:98:19:14:FF:BF:5F:C6:B0:B6:95:EA:29:E9:12:A6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hellenic Academic and Research Institutions RootCA 2015" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\001\014\006\225\246\230\031\024\377\277\137\306\260\266\225\352 +\051\351\022\246 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\312\377\342\333\003\331\313\113\351\017\255\204\375\173\030\316 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\246\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156 +\163\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154 +\145\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156 +\144\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151 +\164\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165 +\164\150\157\162\151\164\171\061\100\060\076\006\003\125\004\003 +\023\067\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\122\157 +\157\164\103\101\040\062\060\061\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Hellenic Academic and Research Institutions ECC RootCA 2015" +# +# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Serial Number: 0 (0x0) +# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Not Valid Before: Tue Jul 07 10:37:12 2015 +# Not Valid After : Sat Jun 30 10:37:12 2040 +# Fingerprint (SHA-256): 44:B5:45:AA:8A:25:E6:5A:73:CA:15:DC:27:FC:36:D2:4C:1C:B9:95:3A:06:65:39:B1:15:82:DC:48:7B:48:33 +# Fingerprint (SHA1): 9F:F1:71:8D:92:D5:9A:F3:7D:74:97:B4:BC:6F:84:68:0B:BA:B6:66 +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 "Hellenic Academic and Research Institutions ECC RootCA 2015" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\252\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156 +\163\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154 +\145\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156 +\144\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151 +\164\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165 +\164\150\157\162\151\164\171\061\104\060\102\006\003\125\004\003 +\023\073\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\105\103 +\103\040\122\157\157\164\103\101\040\062\060\061\065 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\252\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156 +\163\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154 +\145\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156 +\144\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151 +\164\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165 +\164\150\157\162\151\164\171\061\104\060\102\006\003\125\004\003 +\023\073\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\105\103 +\103\040\122\157\157\164\103\101\040\062\060\061\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\303\060\202\002\112\240\003\002\001\002\002\001\000 +\060\012\006\010\052\206\110\316\075\004\003\002\060\201\252\061 +\013\060\011\006\003\125\004\006\023\002\107\122\061\017\060\015 +\006\003\125\004\007\023\006\101\164\150\145\156\163\061\104\060 +\102\006\003\125\004\012\023\073\110\145\154\154\145\156\151\143 +\040\101\143\141\144\145\155\151\143\040\141\156\144\040\122\145 +\163\145\141\162\143\150\040\111\156\163\164\151\164\165\164\151 +\157\156\163\040\103\145\162\164\056\040\101\165\164\150\157\162 +\151\164\171\061\104\060\102\006\003\125\004\003\023\073\110\145 +\154\154\145\156\151\143\040\101\143\141\144\145\155\151\143\040 +\141\156\144\040\122\145\163\145\141\162\143\150\040\111\156\163 +\164\151\164\165\164\151\157\156\163\040\105\103\103\040\122\157 +\157\164\103\101\040\062\060\061\065\060\036\027\015\061\065\060 +\067\060\067\061\060\063\067\061\062\132\027\015\064\060\060\066 +\063\060\061\060\063\067\061\062\132\060\201\252\061\013\060\011 +\006\003\125\004\006\023\002\107\122\061\017\060\015\006\003\125 +\004\007\023\006\101\164\150\145\156\163\061\104\060\102\006\003 +\125\004\012\023\073\110\145\154\154\145\156\151\143\040\101\143 +\141\144\145\155\151\143\040\141\156\144\040\122\145\163\145\141 +\162\143\150\040\111\156\163\164\151\164\165\164\151\157\156\163 +\040\103\145\162\164\056\040\101\165\164\150\157\162\151\164\171 +\061\104\060\102\006\003\125\004\003\023\073\110\145\154\154\145 +\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156\144 +\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151\164 +\165\164\151\157\156\163\040\105\103\103\040\122\157\157\164\103 +\101\040\062\060\061\065\060\166\060\020\006\007\052\206\110\316 +\075\002\001\006\005\053\201\004\000\042\003\142\000\004\222\240 +\101\350\113\202\204\134\342\370\061\021\231\206\144\116\011\045 +\057\235\101\057\012\256\065\117\164\225\262\121\144\153\215\153 +\346\077\160\225\360\005\104\107\246\162\070\120\166\225\002\132 +\216\256\050\236\371\055\116\231\357\054\110\157\114\045\051\350 +\321\161\133\337\035\301\165\067\264\327\372\173\172\102\234\152 +\012\126\132\174\151\013\252\200\011\044\154\176\301\106\243\102 +\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\035\006\003\125\035\016\004\026\004\024\264\042 +\013\202\231\044\001\016\234\273\344\016\375\277\373\227\040\223 +\231\052\060\012\006\010\052\206\110\316\075\004\003\002\003\147 +\000\060\144\002\060\147\316\026\142\070\242\254\142\105\247\251 +\225\044\300\032\047\234\062\073\300\300\325\272\251\347\370\004 +\103\123\205\356\122\041\336\235\365\045\203\076\236\130\113\057 +\327\147\023\016\041\002\060\005\341\165\001\336\150\355\052\037 +\115\114\011\010\015\354\113\255\144\027\050\347\165\316\105\145 +\162\041\027\313\042\101\016\214\023\230\070\232\124\155\233\312 +\342\174\352\002\130\042\221 +END + +# Trust for "Hellenic Academic and Research Institutions ECC RootCA 2015" +# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Serial Number: 0 (0x0) +# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015,O=Hellenic Academic and Research Institutions Cert. Authority,L=Athens,C=GR +# Not Valid Before: Tue Jul 07 10:37:12 2015 +# Not Valid After : Sat Jun 30 10:37:12 2040 +# Fingerprint (SHA-256): 44:B5:45:AA:8A:25:E6:5A:73:CA:15:DC:27:FC:36:D2:4C:1C:B9:95:3A:06:65:39:B1:15:82:DC:48:7B:48:33 +# Fingerprint (SHA1): 9F:F1:71:8D:92:D5:9A:F3:7D:74:97:B4:BC:6F:84:68:0B:BA:B6:66 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Hellenic Academic and Research Institutions ECC RootCA 2015" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\237\361\161\215\222\325\232\363\175\164\227\264\274\157\204\150 +\013\272\266\146 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\201\345\264\027\353\302\365\341\113\015\101\173\111\222\376\357 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\252\061\013\060\011\006\003\125\004\006\023\002\107\122 +\061\017\060\015\006\003\125\004\007\023\006\101\164\150\145\156 +\163\061\104\060\102\006\003\125\004\012\023\073\110\145\154\154 +\145\156\151\143\040\101\143\141\144\145\155\151\143\040\141\156 +\144\040\122\145\163\145\141\162\143\150\040\111\156\163\164\151 +\164\165\164\151\157\156\163\040\103\145\162\164\056\040\101\165 +\164\150\157\162\151\164\171\061\104\060\102\006\003\125\004\003 +\023\073\110\145\154\154\145\156\151\143\040\101\143\141\144\145 +\155\151\143\040\141\156\144\040\122\145\163\145\141\162\143\150 +\040\111\156\163\164\151\164\165\164\151\157\156\163\040\105\103 +\103\040\122\157\157\164\103\101\040\062\060\061\065 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certplus Root CA G1" +# +# Issuer: CN=Certplus Root CA G1,O=Certplus,C=FR +# Serial Number:11:20:55:83:e4:2d:3e:54:56:85:2d:83:37:b7:2c:dc:46:11 +# Subject: CN=Certplus Root CA G1,O=Certplus,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 15:2A:40:2B:FC:DF:2C:D5:48:05:4D:22:75:B3:9C:7F:CA:3E:C0:97:80:78:B0:F0:EA:76:E5:61:A6:C7:43:3E +# Fingerprint (SHA1): 22:FD:D0:B7:FD:A2:4E:0D:AC:49:2C:A0:AC:A6:7B:6A:1F:E3:F7:66 +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 "Certplus Root CA G1" +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\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\125\203\344\055\076\124\126\205\055\203\067\267 +\054\334\106\021 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\153\060\202\003\123\240\003\002\001\002\002\022\021 +\040\125\203\344\055\076\124\126\205\055\203\067\267\054\334\106 +\021\060\015\006\011\052\206\110\206\367\015\001\001\015\005\000 +\060\076\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\061 +\060\036\027\015\061\064\060\065\062\066\060\060\060\060\060\060 +\132\027\015\063\070\060\061\061\065\060\060\060\060\060\060\132 +\060\076\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\061 +\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001\001 +\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002\001 +\000\332\120\207\266\332\270\251\076\235\144\372\126\063\232\126 +\075\026\345\003\225\262\064\034\232\155\142\005\324\330\217\347 +\211\144\237\272\333\144\213\144\346\171\052\141\315\257\217\132 +\211\221\145\271\130\374\264\003\137\221\077\055\020\025\340\176 +\317\274\374\177\103\147\250\255\136\066\043\330\230\263\115\363 +\103\236\071\174\052\374\354\210\325\210\356\160\275\205\026\055 +\352\113\211\074\243\161\102\376\034\375\323\034\055\020\270\206 +\124\352\103\270\333\306\207\332\250\256\200\045\317\172\046\035 +\252\221\260\110\157\256\265\336\236\330\327\372\000\375\306\217 +\320\121\273\142\175\244\261\214\262\377\040\021\272\065\143\005 +\206\107\140\103\063\220\366\107\242\003\117\226\115\235\117\301 +\352\352\234\242\376\064\056\336\267\312\033\166\244\267\255\237 +\351\250\324\170\077\170\376\362\070\011\066\035\322\026\002\310 +\354\052\150\257\365\216\224\357\055\023\172\036\102\112\035\025 +\061\256\014\004\127\374\141\163\363\061\126\206\061\200\240\304 +\021\156\060\166\343\224\360\137\004\304\254\207\162\211\230\305 +\235\314\127\010\232\364\014\374\175\172\005\072\372\107\200\071 +\266\317\204\023\167\157\047\352\377\226\147\027\010\155\351\015 +\326\043\120\060\260\025\164\023\076\345\057\377\016\315\304\013 +\112\135\360\330\000\063\111\146\353\241\030\174\131\056\075\050 +\271\141\161\313\265\245\272\270\352\334\342\160\157\010\152\334 +\207\147\064\357\337\060\162\335\363\311\077\043\377\065\341\276 +\041\051\040\060\201\344\031\245\040\351\045\312\163\061\164\051 +\276\342\102\325\363\262\046\146\307\150\375\031\263\347\040\223 +\231\350\135\340\136\207\347\106\350\045\234\012\051\044\324\315 +\130\206\122\100\044\262\173\017\230\022\040\044\366\220\154\107 +\310\015\273\030\040\056\331\375\374\213\362\051\352\207\164\225 +\340\102\120\170\204\004\101\141\260\364\041\043\217\055\313\050 +\041\362\152\154\364\032\246\305\024\264\067\145\117\225\375\200 +\310\370\162\345\045\153\304\140\261\173\155\216\112\212\163\316 +\131\373\160\172\163\006\023\331\323\164\067\044\101\012\021\157 +\227\334\347\344\176\241\275\025\362\272\207\017\075\150\212\026 +\007\002\003\001\000\001\243\143\060\141\060\016\006\003\125\035 +\017\001\001\377\004\004\003\002\001\006\060\017\006\003\125\035 +\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125 +\035\016\004\026\004\024\250\301\300\233\221\250\103\025\174\135 +\006\047\264\052\121\330\227\013\201\261\060\037\006\003\125\035 +\043\004\030\060\026\200\024\250\301\300\233\221\250\103\025\174 +\135\006\047\264\052\121\330\227\013\201\261\060\015\006\011\052 +\206\110\206\367\015\001\001\015\005\000\003\202\002\001\000\234 +\126\157\001\176\321\275\114\365\212\306\360\046\037\344\340\070 +\030\314\062\303\051\073\235\101\051\064\141\306\327\360\000\241 +\353\244\162\217\224\027\274\023\054\165\264\127\356\012\174\011 +\172\334\325\312\241\320\064\023\370\167\253\237\345\376\330\036 +\164\212\205\007\217\177\314\171\172\312\226\315\315\375\117\373 +\375\043\015\220\365\364\136\323\306\141\175\236\021\340\002\356 +\011\004\331\007\335\246\212\267\014\203\044\273\203\120\222\376 +\140\165\021\076\330\235\260\212\172\265\340\235\233\313\220\122 +\113\260\223\052\324\076\026\063\345\236\306\145\025\076\144\073 +\004\077\333\014\217\137\134\035\151\037\257\363\351\041\214\363 +\357\227\366\232\267\031\266\204\164\234\243\124\265\160\116\143 +\330\127\135\123\041\233\100\222\103\372\326\167\125\063\117\144 +\325\373\320\054\152\216\155\045\246\357\205\350\002\304\123\076 +\271\236\207\274\314\065\032\336\241\351\212\143\207\145\036\021 +\052\333\143\167\227\024\276\232\024\231\021\262\300\356\260\117 +\370\024\041\062\103\117\237\253\242\313\250\017\252\073\006\125 +\306\022\051\127\010\324\067\327\207\047\255\111\131\247\221\253 +\104\172\136\215\160\333\227\316\110\120\261\163\223\366\360\203 +\140\371\315\361\341\061\375\133\174\161\041\143\024\024\252\257 +\305\336\223\176\150\261\354\042\242\252\220\165\236\265\103\162 +\352\144\243\204\113\375\014\250\046\153\161\227\356\126\143\146 +\350\102\124\371\307\035\337\320\217\133\337\310\060\157\210\376 +\015\304\063\034\123\250\243\375\110\020\362\344\012\116\341\025 +\127\374\156\144\060\302\125\021\334\352\251\315\112\124\254\051 +\143\104\317\112\100\240\326\150\131\033\063\371\357\072\213\333 +\040\222\334\102\204\277\001\253\207\300\325\040\202\333\306\271 +\203\205\102\134\017\103\073\152\111\065\325\230\364\025\277\372 +\141\201\014\011\040\030\322\320\027\014\313\110\000\120\351\166 +\202\214\144\327\072\240\007\125\314\036\061\300\357\072\264\145 +\373\343\277\102\153\236\017\250\275\153\230\334\330\333\313\213 +\244\335\327\131\364\156\335\376\252\303\221\320\056\102\007\300 +\014\115\123\315\044\261\114\133\036\121\364\337\351\222\372 +END + +# Trust for "Certplus Root CA G1" +# Issuer: CN=Certplus Root CA G1,O=Certplus,C=FR +# Serial Number:11:20:55:83:e4:2d:3e:54:56:85:2d:83:37:b7:2c:dc:46:11 +# Subject: CN=Certplus Root CA G1,O=Certplus,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 15:2A:40:2B:FC:DF:2C:D5:48:05:4D:22:75:B3:9C:7F:CA:3E:C0:97:80:78:B0:F0:EA:76:E5:61:A6:C7:43:3E +# Fingerprint (SHA1): 22:FD:D0:B7:FD:A2:4E:0D:AC:49:2C:A0:AC:A6:7B:6A:1F:E3:F7:66 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certplus Root CA G1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\042\375\320\267\375\242\116\015\254\111\054\240\254\246\173\152 +\037\343\367\146 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\177\011\234\367\331\271\134\151\151\126\325\067\076\024\015\102 +END +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\125\203\344\055\076\124\126\205\055\203\067\267 +\054\334\106\021 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Certplus Root CA G2" +# +# Issuer: CN=Certplus Root CA G2,O=Certplus,C=FR +# Serial Number:11:20:d9:91:ce:ae:a3:e8:c5:e7:ff:e9:02:af:cf:73:bc:55 +# Subject: CN=Certplus Root CA G2,O=Certplus,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 6C:C0:50:41:E6:44:5E:74:69:6C:4C:FB:C9:F8:0F:54:3B:7E:AB:BB:44:B4:CE:6F:78:7C:6A:99:71:C4:2F:17 +# Fingerprint (SHA1): 4F:65:8E:1F:E9:06:D8:28:02:E9:54:47:41:C9:54:25:5D:69:CC:1A +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 "Certplus Root CA G2" +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\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\331\221\316\256\243\350\305\347\377\351\002\257 +\317\163\274\125 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\034\060\202\001\242\240\003\002\001\002\002\022\021 +\040\331\221\316\256\243\350\305\347\377\351\002\257\317\163\274 +\125\060\012\006\010\052\206\110\316\075\004\003\003\060\076\061 +\013\060\011\006\003\125\004\006\023\002\106\122\061\021\060\017 +\006\003\125\004\012\014\010\103\145\162\164\160\154\165\163\061 +\034\060\032\006\003\125\004\003\014\023\103\145\162\164\160\154 +\165\163\040\122\157\157\164\040\103\101\040\107\062\060\036\027 +\015\061\064\060\065\062\066\060\060\060\060\060\060\132\027\015 +\063\070\060\061\061\065\060\060\060\060\060\060\132\060\076\061 +\013\060\011\006\003\125\004\006\023\002\106\122\061\021\060\017 +\006\003\125\004\012\014\010\103\145\162\164\160\154\165\163\061 +\034\060\032\006\003\125\004\003\014\023\103\145\162\164\160\154 +\165\163\040\122\157\157\164\040\103\101\040\107\062\060\166\060 +\020\006\007\052\206\110\316\075\002\001\006\005\053\201\004\000 +\042\003\142\000\004\315\017\133\126\202\337\360\105\032\326\255 +\367\171\360\035\311\254\226\326\236\116\234\037\264\102\021\312 +\206\277\155\373\205\243\305\345\031\134\327\356\246\077\151\147 +\330\170\342\246\311\304\333\055\171\056\347\213\215\002\157\061 +\042\115\006\343\140\162\105\235\016\102\167\236\316\317\345\177 +\205\233\030\344\374\314\056\162\323\026\223\116\312\231\143\134 +\241\005\052\154\006\243\143\060\141\060\016\006\003\125\035\017 +\001\001\377\004\004\003\002\001\006\060\017\006\003\125\035\023 +\001\001\377\004\005\060\003\001\001\377\060\035\006\003\125\035 +\016\004\026\004\024\332\203\143\002\171\216\332\114\306\074\043 +\024\330\217\303\040\253\050\140\131\060\037\006\003\125\035\043 +\004\030\060\026\200\024\332\203\143\002\171\216\332\114\306\074 +\043\024\330\217\303\040\253\050\140\131\060\012\006\010\052\206 +\110\316\075\004\003\003\003\150\000\060\145\002\060\160\376\260 +\013\331\367\203\227\354\363\125\035\324\334\263\006\016\376\063 +\230\235\213\071\220\153\224\041\355\266\327\135\326\114\327\041 +\247\347\277\041\017\053\315\367\052\334\205\007\235\002\061\000 +\206\024\026\345\334\260\145\302\300\216\024\237\277\044\026\150 +\345\274\371\171\151\334\255\105\053\367\266\061\163\314\006\245 +\123\223\221\032\223\256\160\152\147\272\327\236\345\141\032\137 +END + +# Trust for "Certplus Root CA G2" +# Issuer: CN=Certplus Root CA G2,O=Certplus,C=FR +# Serial Number:11:20:d9:91:ce:ae:a3:e8:c5:e7:ff:e9:02:af:cf:73:bc:55 +# Subject: CN=Certplus Root CA G2,O=Certplus,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 6C:C0:50:41:E6:44:5E:74:69:6C:4C:FB:C9:F8:0F:54:3B:7E:AB:BB:44:B4:CE:6F:78:7C:6A:99:71:C4:2F:17 +# Fingerprint (SHA1): 4F:65:8E:1F:E9:06:D8:28:02:E9:54:47:41:C9:54:25:5D:69:CC:1A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Certplus Root CA G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\117\145\216\037\351\006\330\050\002\351\124\107\101\311\124\045 +\135\151\314\032 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\247\356\304\170\055\033\356\055\271\051\316\326\247\226\062\061 +END +CKA_ISSUER MULTILINE_OCTAL +\060\076\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\021\060\017\006\003\125\004\012\014\010\103\145\162\164\160\154 +\165\163\061\034\060\032\006\003\125\004\003\014\023\103\145\162 +\164\160\154\165\163\040\122\157\157\164\040\103\101\040\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\331\221\316\256\243\350\305\347\377\351\002\257 +\317\163\274\125 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "OpenTrust Root CA G1" +# +# Issuer: CN=OpenTrust Root CA G1,O=OpenTrust,C=FR +# Serial Number:11:20:b3:90:55:39:7d:7f:36:6d:64:c2:a7:9f:6b:63:8e:67 +# Subject: CN=OpenTrust Root CA G1,O=OpenTrust,C=FR +# Not Valid Before: Mon May 26 08:45:50 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 56:C7:71:28:D9:8C:18:D9:1B:4C:FD:FF:BC:25:EE:91:03:D4:75:8E:A2:AB:AD:82:6A:90:F3:45:7D:46:0E:B4 +# Fingerprint (SHA1): 79:91:E8:34:F7:E2:EE:DD:08:95:01:52:E9:55:2D:14:E9:58:D5:7E +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 "OpenTrust Root CA G1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\263\220\125\071\175\177\066\155\144\302\247\237 +\153\143\216\147 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\157\060\202\003\127\240\003\002\001\002\002\022\021 +\040\263\220\125\071\175\177\066\155\144\302\247\237\153\143\216 +\147\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000 +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\061\060\036\027\015\061\064\060\065\062\066\060\070\064\065 +\065\060\132\027\015\063\070\060\061\061\065\060\060\060\060\060 +\060\132\060\100\061\013\060\011\006\003\125\004\006\023\002\106 +\122\061\022\060\020\006\003\125\004\012\014\011\117\160\145\156 +\124\162\165\163\164\061\035\060\033\006\003\125\004\003\014\024 +\117\160\145\156\124\162\165\163\164\040\122\157\157\164\040\103 +\101\040\107\061\060\202\002\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002\012 +\002\202\002\001\000\370\171\106\332\226\305\060\136\212\161\003 +\055\160\244\273\260\305\010\334\315\346\065\300\200\244\021\055 +\335\346\207\256\135\075\221\322\207\154\067\267\332\142\236\233 +\302\044\327\217\361\333\246\246\337\106\157\121\246\161\313\076 +\033\061\147\142\367\021\133\064\047\325\171\116\214\233\130\275 +\042\020\015\134\047\014\335\060\345\250\323\135\041\070\164\027 +\376\343\037\266\117\073\153\055\333\175\140\037\214\175\114\005 +\302\353\001\026\025\230\024\216\321\220\167\042\077\354\302\071 +\270\171\072\360\111\044\342\225\221\334\141\064\222\214\124\164 +\357\261\175\214\001\342\070\175\301\137\152\137\044\262\216\142 +\027\255\171\040\255\253\035\267\340\264\226\110\117\146\103\020 +\006\026\044\003\341\340\234\216\306\106\117\216\032\231\341\217 +\271\216\063\154\151\336\130\255\240\016\247\144\124\021\151\104 +\146\117\114\022\247\216\054\175\304\324\133\305\000\064\060\301 +\331\231\376\062\316\007\204\264\116\315\012\377\066\115\142\361 +\247\143\127\344\333\152\247\256\277\053\271\311\346\262\047\211 +\345\176\232\034\115\150\306\301\030\336\063\053\121\106\113\034 +\216\367\075\014\371\212\064\024\304\373\063\065\043\361\314\361 +\052\307\245\273\260\242\316\376\123\153\115\101\033\146\050\262 +\226\372\247\256\012\116\271\071\063\104\234\164\301\223\034\370 +\340\236\044\045\103\361\233\043\202\252\337\054\040\260\334\066 +\116\003\263\174\002\324\346\173\032\252\207\023\277\076\241\164 +\273\233\016\341\300\223\237\327\244\146\312\273\033\073\343\060 +\364\063\131\212\007\162\003\125\347\163\152\003\061\156\157\226 +\033\343\242\237\257\222\307\355\365\102\267\045\114\073\023\004 +\317\034\226\257\034\042\243\320\253\005\262\114\022\043\122\334 +\375\031\133\047\234\036\073\172\375\102\043\333\043\200\023\360 +\274\121\025\124\224\246\167\076\320\164\121\275\121\024\010\071 +\067\313\037\064\251\060\235\122\204\056\125\220\261\272\337\125 +\000\013\330\126\055\261\111\111\162\200\251\142\327\300\366\030 +\021\004\125\315\164\173\317\141\160\171\364\173\054\134\134\222 +\374\345\270\132\253\114\223\225\241\047\356\245\276\317\161\043 +\102\272\233\166\055\002\003\001\000\001\243\143\060\141\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\035\006\003\125\035\016\004\026\004\024\227\106\041\127\041\065 +\332\066\125\307\363\361\067\160\345\010\366\223\051\266\060\037 +\006\003\125\035\043\004\030\060\026\200\024\227\106\041\127\041 +\065\332\066\125\307\363\361\067\160\345\010\366\223\051\266\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202 +\002\001\000\035\335\002\140\174\340\065\247\346\230\173\352\104 +\316\147\100\117\362\223\156\146\324\071\211\046\254\323\115\004 +\074\273\207\041\077\067\364\161\045\332\113\272\253\226\202\201 +\221\266\355\331\261\244\145\227\342\157\144\131\244\226\356\140 +\312\037\043\373\105\272\377\217\044\360\312\251\061\177\171\037 +\200\263\055\062\272\144\147\140\257\271\131\315\337\232\111\323 +\250\202\261\371\230\224\212\314\340\273\340\004\033\231\140\261 +\106\145\334\010\242\262\106\236\104\210\352\223\176\127\026\322 +\025\162\137\056\113\253\324\235\143\270\343\110\345\376\204\056 +\130\012\237\103\035\376\267\030\222\206\103\113\016\234\062\206 +\054\140\365\351\110\352\225\355\160\051\361\325\057\375\065\264 +\127\317\333\205\110\231\271\302\157\154\217\315\170\225\254\144 +\050\375\126\260\303\157\303\276\131\122\341\137\204\217\200\362 +\364\015\066\255\166\263\243\265\341\144\166\072\130\334\175\117 +\136\126\154\345\125\131\127\245\337\361\212\146\060\214\324\122 +\142\070\167\264\276\050\327\312\066\304\233\005\360\370\025\333 +\333\361\357\064\235\035\170\112\210\126\147\156\140\377\217\310 +\213\341\216\275\102\251\063\012\131\102\022\022\052\372\261\235 +\103\216\005\233\231\332\142\255\127\066\263\035\266\015\171\055 +\226\270\353\362\014\113\014\245\224\306\060\247\046\031\055\355 +\114\006\120\060\361\375\130\075\271\113\027\137\031\264\152\204 +\124\264\070\117\071\242\015\226\150\303\050\224\375\355\055\037 +\112\153\103\226\056\220\001\020\373\070\246\201\013\320\277\165 +\323\324\271\316\361\077\157\016\034\036\067\161\345\030\207\165 +\031\077\120\271\136\244\105\064\255\260\312\346\345\023\166\017 +\061\024\251\216\055\224\326\325\205\115\163\025\117\113\362\262 +\076\355\154\275\375\016\235\146\163\260\075\264\367\277\250\340 +\021\244\304\256\165\011\112\143\000\110\040\246\306\235\013\011 +\212\264\340\346\316\076\307\076\046\070\351\053\336\246\010\111 +\003\004\220\212\351\217\277\350\266\264\052\243\043\215\034\034 +\262\071\222\250\217\002\134\100\071\165\324\163\101\002\167\336 +\315\340\103\207\326\344\272\112\303\154\022\177\376\052\346\043 +\326\214\161 +END + +# Trust for "OpenTrust Root CA G1" +# Issuer: CN=OpenTrust Root CA G1,O=OpenTrust,C=FR +# Serial Number:11:20:b3:90:55:39:7d:7f:36:6d:64:c2:a7:9f:6b:63:8e:67 +# Subject: CN=OpenTrust Root CA G1,O=OpenTrust,C=FR +# Not Valid Before: Mon May 26 08:45:50 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 56:C7:71:28:D9:8C:18:D9:1B:4C:FD:FF:BC:25:EE:91:03:D4:75:8E:A2:AB:AD:82:6A:90:F3:45:7D:46:0E:B4 +# Fingerprint (SHA1): 79:91:E8:34:F7:E2:EE:DD:08:95:01:52:E9:55:2D:14:E9:58:D5:7E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OpenTrust Root CA G1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\171\221\350\064\367\342\356\335\010\225\001\122\351\125\055\024 +\351\130\325\176 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\166\000\314\201\051\315\125\136\210\152\172\056\367\115\071\332 +END +CKA_ISSUER MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\263\220\125\071\175\177\066\155\144\302\247\237 +\153\143\216\147 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "OpenTrust Root CA G2" +# +# Issuer: CN=OpenTrust Root CA G2,O=OpenTrust,C=FR +# Serial Number:11:20:a1:69:1b:bf:bd:b9:bd:52:96:8f:23:e8:48:bf:26:11 +# Subject: CN=OpenTrust Root CA G2,O=OpenTrust,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 27:99:58:29:FE:6A:75:15:C1:BF:E8:48:F9:C4:76:1D:B1:6C:22:59:29:25:7B:F4:0D:08:94:F2:9E:A8:BA:F2 +# Fingerprint (SHA1): 79:5F:88:60:C5:AB:7C:3D:92:E6:CB:F4:8D:E1:45:CD:11:EF:60:0B +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 "OpenTrust Root CA G2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\241\151\033\277\275\271\275\122\226\217\043\350 +\110\277\046\021 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\157\060\202\003\127\240\003\002\001\002\002\022\021 +\040\241\151\033\277\275\271\275\122\226\217\043\350\110\277\046 +\021\060\015\006\011\052\206\110\206\367\015\001\001\015\005\000 +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\062\060\036\027\015\061\064\060\065\062\066\060\060\060\060 +\060\060\132\027\015\063\070\060\061\061\065\060\060\060\060\060 +\060\132\060\100\061\013\060\011\006\003\125\004\006\023\002\106 +\122\061\022\060\020\006\003\125\004\012\014\011\117\160\145\156 +\124\162\165\163\164\061\035\060\033\006\003\125\004\003\014\024 +\117\160\145\156\124\162\165\163\164\040\122\157\157\164\040\103 +\101\040\107\062\060\202\002\042\060\015\006\011\052\206\110\206 +\367\015\001\001\001\005\000\003\202\002\017\000\060\202\002\012 +\002\202\002\001\000\314\266\127\245\063\224\020\201\062\123\337 +\141\176\017\166\071\317\134\302\123\165\035\111\172\226\070\335 +\242\163\152\361\157\336\136\242\132\271\161\041\276\066\331\241 +\374\274\356\154\250\174\064\032\161\032\350\032\330\137\016\104 +\006\355\247\340\363\322\141\013\340\062\242\226\321\070\360\302 +\332\001\027\374\344\254\117\350\356\211\036\164\253\117\277\036 +\011\266\066\152\126\363\341\356\226\211\146\044\006\344\315\102 +\072\112\335\340\232\260\304\202\105\263\376\311\253\134\174\076 +\311\353\027\057\014\175\156\256\245\217\310\254\045\012\157\372 +\325\105\230\322\065\011\366\003\103\224\376\331\277\040\225\171 +\200\230\212\331\211\065\273\121\033\244\067\175\374\231\073\253 +\377\277\254\015\217\103\261\231\173\026\020\176\035\157\107\304 +\025\217\004\226\010\006\102\004\370\204\326\035\274\221\246\102 +\276\111\325\152\210\077\274\055\121\321\236\215\340\122\314\127 +\335\065\065\130\333\264\217\044\210\344\213\337\334\153\124\322 +\201\053\262\316\222\113\034\037\106\372\035\330\222\313\166\147 +\265\011\231\011\345\254\027\024\125\160\306\074\240\126\012\003 +\263\334\142\031\337\310\265\060\177\365\074\046\165\021\275\327 +\033\263\207\236\007\257\145\161\345\240\317\032\247\011\020\035 +\223\211\146\133\350\074\142\062\265\265\072\156\351\205\001\213 +\236\103\214\147\163\050\131\133\353\343\334\054\314\245\046\162 +\142\022\264\346\234\203\104\366\121\244\342\300\172\044\127\312 +\016\245\077\072\265\073\213\345\166\356\160\346\222\336\026\134 +\050\133\227\031\047\222\376\172\222\124\316\223\071\012\026\207 +\274\143\263\365\261\223\134\340\156\267\320\352\371\142\062\210 +\104\373\277\047\050\266\060\225\135\022\050\271\225\276\217\123 +\030\345\242\030\026\342\126\244\262\054\020\365\035\067\246\370 +\267\366\320\131\134\211\367\302\325\265\224\164\321\325\376\033 +\266\360\346\326\036\173\322\074\313\250\343\365\030\363\041\037 +\156\357\115\150\006\173\055\135\156\103\211\246\300\371\240\277 +\202\036\317\123\177\264\353\054\333\135\366\152\175\100\044\005 +\162\211\070\001\223\313\161\302\071\135\006\021\366\157\170\370 +\067\015\071\204\047\002\003\001\000\001\243\143\060\141\060\016 +\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\035\006\003\125\035\016\004\026\004\024\152\071\372\102\042\367 +\346\211\000\115\136\175\063\203\313\270\156\167\206\257\060\037 +\006\003\125\035\043\004\030\060\026\200\024\152\071\372\102\042 +\367\346\211\000\115\136\175\063\203\313\270\156\167\206\257\060 +\015\006\011\052\206\110\206\367\015\001\001\015\005\000\003\202 +\002\001\000\230\313\253\100\074\345\063\002\227\177\055\207\246 +\217\324\136\112\257\270\036\347\273\161\373\200\144\045\251\263 +\032\076\150\135\047\046\247\272\052\341\360\127\203\012\144\117 +\036\042\164\033\351\220\137\360\254\317\377\117\150\172\070\244 +\020\154\015\261\307\244\167\200\030\266\242\050\104\166\247\064 +\235\161\204\057\312\131\322\107\210\231\101\042\311\060\230\141 +\156\075\250\250\005\155\321\037\300\121\104\126\177\047\065\002 +\335\136\230\012\102\353\060\277\215\241\233\121\252\073\352\223 +\106\144\305\000\171\336\041\153\366\127\240\206\327\006\162\354 +\160\106\113\213\163\335\240\041\165\076\334\035\300\217\323\117 +\163\034\205\331\376\177\142\310\225\157\266\323\173\214\272\123 +\302\157\233\104\114\171\320\035\160\263\327\237\002\364\262\007 +\260\307\345\370\255\043\016\246\126\311\051\022\167\110\331\057 +\106\375\073\360\374\164\160\222\245\216\070\010\037\144\060\266 +\267\113\373\066\254\020\216\240\122\063\143\235\003\065\126\305 +\151\275\306\043\132\047\224\366\244\022\370\055\063\074\241\126 +\245\137\326\031\351\355\174\010\275\167\315\047\144\314\224\332 +\116\106\120\207\340\371\301\123\200\036\273\255\373\107\122\213 +\033\375\242\371\336\016\042\267\075\063\131\154\324\336\365\225 +\006\062\015\121\031\101\134\076\117\006\367\271\053\200\047\366 +\243\252\172\174\006\341\103\303\023\071\142\032\066\275\340\050 +\056\224\002\344\051\056\140\125\256\100\075\260\164\222\136\360 +\040\144\226\077\137\105\135\210\265\212\332\002\240\133\105\124 +\336\070\075\011\300\250\112\145\106\026\374\252\277\124\116\115 +\133\276\070\103\267\050\312\213\063\252\032\045\272\045\134\051 +\057\133\112\156\214\352\055\234\052\366\005\166\340\167\227\200 +\210\335\147\023\157\035\150\044\213\117\267\164\201\345\364\140 +\237\172\125\327\076\067\332\026\153\076\167\254\256\030\160\225 +\010\171\051\003\212\376\301\073\263\077\032\017\244\073\136\037 +\130\241\225\311\253\057\163\112\320\055\156\232\131\017\125\030 +\170\055\074\121\246\227\213\346\273\262\160\252\114\021\336\377 +\174\053\067\324\172\321\167\064\217\347\371\102\367\074\201\014 +\113\122\012 +END + +# Trust for "OpenTrust Root CA G2" +# Issuer: CN=OpenTrust Root CA G2,O=OpenTrust,C=FR +# Serial Number:11:20:a1:69:1b:bf:bd:b9:bd:52:96:8f:23:e8:48:bf:26:11 +# Subject: CN=OpenTrust Root CA G2,O=OpenTrust,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): 27:99:58:29:FE:6A:75:15:C1:BF:E8:48:F9:C4:76:1D:B1:6C:22:59:29:25:7B:F4:0D:08:94:F2:9E:A8:BA:F2 +# Fingerprint (SHA1): 79:5F:88:60:C5:AB:7C:3D:92:E6:CB:F4:8D:E1:45:CD:11:EF:60:0B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OpenTrust Root CA G2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\171\137\210\140\305\253\174\075\222\346\313\364\215\341\105\315 +\021\357\140\013 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\127\044\266\131\044\153\256\310\376\034\014\040\362\300\116\353 +END +CKA_ISSUER MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\241\151\033\277\275\271\275\122\226\217\043\350 +\110\277\046\021 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "OpenTrust Root CA G3" +# +# Issuer: CN=OpenTrust Root CA G3,O=OpenTrust,C=FR +# Serial Number:11:20:e6:f8:4c:fc:24:b0:be:05:40:ac:da:83:1b:34:60:3f +# Subject: CN=OpenTrust Root CA G3,O=OpenTrust,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): B7:C3:62:31:70:6E:81:07:8C:36:7C:B8:96:19:8F:1E:32:08:DD:92:69:49:DD:8F:57:09:A4:10:F7:5B:62:92 +# Fingerprint (SHA1): 6E:26:64:F3:56:BF:34:55:BF:D1:93:3F:7C:01:DE:D8:13:DA:8A:A6 +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 "OpenTrust Root CA G3" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\346\370\114\374\044\260\276\005\100\254\332\203 +\033\064\140\077 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\041\060\202\001\246\240\003\002\001\002\002\022\021 +\040\346\370\114\374\044\260\276\005\100\254\332\203\033\064\140 +\077\060\012\006\010\052\206\110\316\075\004\003\003\060\100\061 +\013\060\011\006\003\125\004\006\023\002\106\122\061\022\060\020 +\006\003\125\004\012\014\011\117\160\145\156\124\162\165\163\164 +\061\035\060\033\006\003\125\004\003\014\024\117\160\145\156\124 +\162\165\163\164\040\122\157\157\164\040\103\101\040\107\063\060 +\036\027\015\061\064\060\065\062\066\060\060\060\060\060\060\132 +\027\015\063\070\060\061\061\065\060\060\060\060\060\060\132\060 +\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061\022 +\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162\165 +\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160\145 +\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040\107 +\063\060\166\060\020\006\007\052\206\110\316\075\002\001\006\005 +\053\201\004\000\042\003\142\000\004\112\356\130\256\115\312\146 +\336\006\072\243\021\374\340\030\360\156\034\272\055\060\014\211 +\331\326\356\233\163\203\251\043\025\214\057\131\212\132\335\024 +\352\235\131\053\103\267\006\354\062\266\272\356\101\265\255\135 +\241\205\314\352\035\024\146\243\147\176\106\342\224\363\347\266 +\126\241\025\131\241\117\067\227\271\042\036\275\021\353\364\262 +\037\136\303\024\232\345\331\227\231\243\143\060\141\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\017\006 +\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060\035 +\006\003\125\035\016\004\026\004\024\107\167\303\024\213\142\071 +\014\311\157\341\120\115\320\020\130\334\225\210\155\060\037\006 +\003\125\035\043\004\030\060\026\200\024\107\167\303\024\213\142 +\071\014\311\157\341\120\115\320\020\130\334\225\210\155\060\012 +\006\010\052\206\110\316\075\004\003\003\003\151\000\060\146\002 +\061\000\217\250\334\235\272\014\004\027\372\025\351\075\057\051 +\001\227\277\201\026\063\100\223\154\374\371\355\200\160\157\252 +\217\333\204\302\213\365\065\312\006\334\144\157\150\026\341\217 +\221\271\002\061\000\330\113\245\313\302\320\010\154\351\030\373 +\132\335\115\137\044\013\260\000\041\045\357\217\247\004\046\161 +\342\174\151\345\135\232\370\101\037\073\071\223\223\235\125\352 +\315\215\361\373\301 +END + +# Trust for "OpenTrust Root CA G3" +# Issuer: CN=OpenTrust Root CA G3,O=OpenTrust,C=FR +# Serial Number:11:20:e6:f8:4c:fc:24:b0:be:05:40:ac:da:83:1b:34:60:3f +# Subject: CN=OpenTrust Root CA G3,O=OpenTrust,C=FR +# Not Valid Before: Mon May 26 00:00:00 2014 +# Not Valid After : Fri Jan 15 00:00:00 2038 +# Fingerprint (SHA-256): B7:C3:62:31:70:6E:81:07:8C:36:7C:B8:96:19:8F:1E:32:08:DD:92:69:49:DD:8F:57:09:A4:10:F7:5B:62:92 +# Fingerprint (SHA1): 6E:26:64:F3:56:BF:34:55:BF:D1:93:3F:7C:01:DE:D8:13:DA:8A:A6 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "OpenTrust Root CA G3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\156\046\144\363\126\277\064\125\277\321\223\077\174\001\336\330 +\023\332\212\246 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\041\067\264\027\026\222\173\147\106\160\251\226\327\250\023\044 +END +CKA_ISSUER MULTILINE_OCTAL +\060\100\061\013\060\011\006\003\125\004\006\023\002\106\122\061 +\022\060\020\006\003\125\004\012\014\011\117\160\145\156\124\162 +\165\163\164\061\035\060\033\006\003\125\004\003\014\024\117\160 +\145\156\124\162\165\163\164\040\122\157\157\164\040\103\101\040 +\107\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\022\021\040\346\370\114\374\044\260\276\005\100\254\332\203 +\033\064\140\077 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "ISRG Root X1" +# +# Issuer: CN=ISRG Root X1,O=Internet Security Research Group,C=US +# Serial Number:00:82:10:cf:b0:d2:40:e3:59:44:63:e0:bb:63:82:8b:00 +# Subject: CN=ISRG Root X1,O=Internet Security Research Group,C=US +# Not Valid Before: Thu Jun 04 11:04:38 2015 +# Not Valid After : Mon Jun 04 11:04:38 2035 +# Fingerprint (SHA-256): 96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6 +# Fingerprint (SHA1): CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8 +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 "ISRG Root X1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\117\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\051\060\047\006\003\125\004\012\023\040\111\156\164\145\162\156 +\145\164\040\123\145\143\165\162\151\164\171\040\122\145\163\145 +\141\162\143\150\040\107\162\157\165\160\061\025\060\023\006\003 +\125\004\003\023\014\111\123\122\107\040\122\157\157\164\040\130 +\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\117\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\051\060\047\006\003\125\004\012\023\040\111\156\164\145\162\156 +\145\164\040\123\145\143\165\162\151\164\171\040\122\145\163\145 +\141\162\143\150\040\107\162\157\165\160\061\025\060\023\006\003 +\125\004\003\023\014\111\123\122\107\040\122\157\157\164\040\130 +\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\202\020\317\260\322\100\343\131\104\143\340\273\143 +\202\213\000 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\153\060\202\003\123\240\003\002\001\002\002\021\000 +\202\020\317\260\322\100\343\131\104\143\340\273\143\202\213\000 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\117\061\013\060\011\006\003\125\004\006\023\002\125\123\061\051 +\060\047\006\003\125\004\012\023\040\111\156\164\145\162\156\145 +\164\040\123\145\143\165\162\151\164\171\040\122\145\163\145\141 +\162\143\150\040\107\162\157\165\160\061\025\060\023\006\003\125 +\004\003\023\014\111\123\122\107\040\122\157\157\164\040\130\061 +\060\036\027\015\061\065\060\066\060\064\061\061\060\064\063\070 +\132\027\015\063\065\060\066\060\064\061\061\060\064\063\070\132 +\060\117\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\051\060\047\006\003\125\004\012\023\040\111\156\164\145\162\156 +\145\164\040\123\145\143\165\162\151\164\171\040\122\145\163\145 +\141\162\143\150\040\107\162\157\165\160\061\025\060\023\006\003 +\125\004\003\023\014\111\123\122\107\040\122\157\157\164\040\130 +\061\060\202\002\042\060\015\006\011\052\206\110\206\367\015\001 +\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202\002 +\001\000\255\350\044\163\364\024\067\363\233\236\053\127\050\034 +\207\276\334\267\337\070\220\214\156\074\346\127\240\170\367\165 +\302\242\376\365\152\156\366\000\117\050\333\336\150\206\154\104 +\223\266\261\143\375\024\022\153\277\037\322\352\061\233\041\176 +\321\063\074\272\110\365\335\171\337\263\270\377\022\361\041\232 +\113\301\212\206\161\151\112\146\146\154\217\176\074\160\277\255 +\051\042\006\363\344\300\346\200\256\342\113\217\267\231\176\224 +\003\237\323\107\227\174\231\110\043\123\350\070\256\117\012\157 +\203\056\321\111\127\214\200\164\266\332\057\320\070\215\173\003 +\160\041\033\165\362\060\074\372\217\256\335\332\143\253\353\026 +\117\302\216\021\113\176\317\013\350\377\265\167\056\364\262\173 +\112\340\114\022\045\014\160\215\003\051\240\341\123\044\354\023 +\331\356\031\277\020\263\112\214\077\211\243\141\121\336\254\207 +\007\224\364\143\161\354\056\342\157\133\230\201\341\211\134\064 +\171\154\166\357\073\220\142\171\346\333\244\232\057\046\305\320 +\020\341\016\336\331\020\216\026\373\267\367\250\367\307\345\002 +\007\230\217\066\010\225\347\342\067\226\015\066\165\236\373\016 +\162\261\035\233\274\003\371\111\005\330\201\335\005\264\052\326 +\101\351\254\001\166\225\012\017\330\337\325\275\022\037\065\057 +\050\027\154\322\230\301\250\011\144\167\156\107\067\272\316\254 +\131\136\150\235\177\162\326\211\305\006\101\051\076\131\076\335 +\046\365\044\311\021\247\132\243\114\100\037\106\241\231\265\247 +\072\121\156\206\073\236\175\162\247\022\005\170\131\355\076\121 +\170\025\013\003\217\215\320\057\005\262\076\173\112\034\113\163 +\005\022\374\306\352\340\120\023\174\103\223\164\263\312\164\347 +\216\037\001\010\320\060\324\133\161\066\264\007\272\301\060\060 +\134\110\267\202\073\230\246\175\140\212\242\243\051\202\314\272 +\275\203\004\033\242\203\003\101\241\326\005\361\033\302\266\360 +\250\174\206\073\106\250\110\052\210\334\166\232\166\277\037\152 +\245\075\031\217\353\070\363\144\336\310\053\015\012\050\377\367 +\333\342\025\102\324\042\320\047\135\341\171\376\030\347\160\210 +\255\116\346\331\213\072\306\335\047\121\156\377\274\144\365\063 +\103\117\002\003\001\000\001\243\102\060\100\060\016\006\003\125 +\035\017\001\001\377\004\004\003\002\001\006\060\017\006\003\125 +\035\023\001\001\377\004\005\060\003\001\001\377\060\035\006\003 +\125\035\016\004\026\004\024\171\264\131\346\173\266\345\344\001 +\163\200\010\210\310\032\130\366\351\233\156\060\015\006\011\052 +\206\110\206\367\015\001\001\013\005\000\003\202\002\001\000\125 +\037\130\251\274\262\250\120\320\014\261\330\032\151\040\047\051 +\010\254\141\165\134\212\156\370\202\345\151\057\325\366\126\113 +\271\270\163\020\131\323\041\227\176\347\114\161\373\262\322\140 +\255\071\250\013\352\027\041\126\205\361\120\016\131\353\316\340 +\131\351\272\311\025\357\206\235\217\204\200\366\344\351\221\220 +\334\027\233\142\033\105\360\146\225\322\174\157\302\352\073\357 +\037\317\313\326\256\047\361\251\260\310\256\375\175\176\232\372 +\042\004\353\377\331\177\352\221\053\042\261\027\016\217\362\212 +\064\133\130\330\374\001\311\124\271\270\046\314\212\210\063\211 +\114\055\204\074\202\337\356\226\127\005\272\054\273\367\304\267 +\307\116\073\202\276\061\310\042\163\163\222\321\302\200\244\071 +\071\020\063\043\202\114\074\237\206\262\125\230\035\276\051\206 +\214\042\233\236\342\153\073\127\072\202\160\115\334\011\307\211 +\313\012\007\115\154\350\135\216\311\357\316\253\307\273\265\053 +\116\105\326\112\320\046\314\345\162\312\010\152\245\225\343\025 +\241\367\244\355\311\054\137\245\373\377\254\050\002\056\276\327 +\173\273\343\161\173\220\026\323\007\136\106\123\174\067\007\102 +\214\323\304\226\234\325\231\265\052\340\225\032\200\110\256\114 +\071\007\316\314\107\244\122\225\053\272\270\373\255\322\063\123 +\175\345\035\115\155\325\241\261\307\102\157\346\100\047\065\134 +\243\050\267\007\215\347\215\063\220\347\043\237\373\120\234\171 +\154\106\325\264\025\263\226\156\176\233\014\226\072\270\122\055 +\077\326\133\341\373\010\302\204\376\044\250\243\211\332\254\152 +\341\030\052\261\250\103\141\133\323\037\334\073\215\166\362\055 +\350\215\165\337\027\063\154\075\123\373\173\313\101\137\377\334 +\242\320\141\070\341\226\270\254\135\213\067\327\165\325\063\300 +\231\021\256\235\101\301\162\165\204\276\002\101\102\137\147\044 +\110\224\321\233\047\276\007\077\271\270\117\201\164\121\341\172 +\267\355\235\043\342\276\340\325\050\004\023\074\061\003\236\335 +\172\154\217\306\007\030\306\177\336\107\216\077\050\236\004\006 +\317\245\124\064\167\275\354\211\233\351\027\103\337\133\333\137 +\376\216\036\127\242\315\100\235\176\142\042\332\336\030\047 +END + +# Trust for "ISRG Root X1" +# Issuer: CN=ISRG Root X1,O=Internet Security Research Group,C=US +# Serial Number:00:82:10:cf:b0:d2:40:e3:59:44:63:e0:bb:63:82:8b:00 +# Subject: CN=ISRG Root X1,O=Internet Security Research Group,C=US +# Not Valid Before: Thu Jun 04 11:04:38 2015 +# Not Valid After : Mon Jun 04 11:04:38 2035 +# Fingerprint (SHA-256): 96:BC:EC:06:26:49:76:F3:74:60:77:9A:CF:28:C5:A7:CF:E8:A3:C0:AA:E1:1A:8F:FC:EE:05:C0:BD:DF:08:C6 +# Fingerprint (SHA1): CA:BD:2A:79:A1:07:6A:31:F2:1D:25:36:35:CB:03:9D:43:29:A5:E8 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "ISRG Root X1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\312\275\052\171\241\007\152\061\362\035\045\066\065\313\003\235 +\103\051\245\350 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\014\322\371\340\332\027\163\351\355\206\115\245\343\160\347\116 +END +CKA_ISSUER MULTILINE_OCTAL +\060\117\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\051\060\047\006\003\125\004\012\023\040\111\156\164\145\162\156 +\145\164\040\123\145\143\165\162\151\164\171\040\122\145\163\145 +\141\162\143\150\040\107\162\157\165\160\061\025\060\023\006\003 +\125\004\003\023\014\111\123\122\107\040\122\157\157\164\040\130 +\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\202\020\317\260\322\100\343\131\104\143\340\273\143 +\202\213\000 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "AC RAIZ FNMT-RCM" +# +# Issuer: OU=AC RAIZ FNMT-RCM,O=FNMT-RCM,C=ES +# Serial Number:5d:93:8d:30:67:36:c8:06:1d:1a:c7:54:84:69:07 +# Subject: OU=AC RAIZ FNMT-RCM,O=FNMT-RCM,C=ES +# Not Valid Before: Wed Oct 29 15:59:56 2008 +# Not Valid After : Tue Jan 01 00:00:00 2030 +# Fingerprint (SHA-256): EB:C5:57:0C:29:01:8C:4D:67:B1:AA:12:7B:AF:12:F7:03:B4:61:1E:BC:17:B7:DA:B5:57:38:94:17:9B:93:FA +# Fingerprint (SHA1): EC:50:35:07:B2:15:C4:95:62:19:E2:A8:9A:5B:42:99:2C:4C:2C:20 +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 "AC RAIZ FNMT-RCM" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\021\060\017\006\003\125\004\012\014\010\106\116\115\124\055\122 +\103\115\061\031\060\027\006\003\125\004\013\014\020\101\103\040 +\122\101\111\132\040\106\116\115\124\055\122\103\115 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\021\060\017\006\003\125\004\012\014\010\106\116\115\124\055\122 +\103\115\061\031\060\027\006\003\125\004\013\014\020\101\103\040 +\122\101\111\132\040\106\116\115\124\055\122\103\115 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\017\135\223\215\060\147\066\310\006\035\032\307\124\204\151 +\007 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\203\060\202\003\153\240\003\002\001\002\002\017\135 +\223\215\060\147\066\310\006\035\032\307\124\204\151\007\060\015 +\006\011\052\206\110\206\367\015\001\001\013\005\000\060\073\061 +\013\060\011\006\003\125\004\006\023\002\105\123\061\021\060\017 +\006\003\125\004\012\014\010\106\116\115\124\055\122\103\115\061 +\031\060\027\006\003\125\004\013\014\020\101\103\040\122\101\111 +\132\040\106\116\115\124\055\122\103\115\060\036\027\015\060\070 +\061\060\062\071\061\065\065\071\065\066\132\027\015\063\060\060 +\061\060\061\060\060\060\060\060\060\132\060\073\061\013\060\011 +\006\003\125\004\006\023\002\105\123\061\021\060\017\006\003\125 +\004\012\014\010\106\116\115\124\055\122\103\115\061\031\060\027 +\006\003\125\004\013\014\020\101\103\040\122\101\111\132\040\106 +\116\115\124\055\122\103\115\060\202\002\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060 +\202\002\012\002\202\002\001\000\272\161\200\172\114\206\156\177 +\310\023\155\300\306\175\034\000\227\217\054\014\043\273\020\232 +\100\251\032\267\207\210\370\233\126\152\373\346\173\216\213\222 +\216\247\045\135\131\021\333\066\056\267\121\027\037\251\010\037 +\004\027\044\130\252\067\112\030\337\345\071\324\127\375\327\301 +\054\221\001\221\342\042\324\003\300\130\374\167\107\354\217\076 +\164\103\272\254\064\215\115\070\166\147\216\260\310\157\060\063 +\130\161\134\264\365\153\156\324\001\120\270\023\176\154\112\243 +\111\321\040\031\356\274\300\051\030\145\247\336\376\357\335\012 +\220\041\347\032\147\222\102\020\230\137\117\060\274\076\034\105 +\264\020\327\150\100\024\300\100\372\347\167\027\172\346\013\217 +\145\133\074\331\232\122\333\265\275\236\106\317\075\353\221\005 +\002\300\226\262\166\114\115\020\226\073\222\372\234\177\017\231 +\337\276\043\065\105\036\002\134\376\265\250\233\231\045\332\136 +\363\042\303\071\365\344\052\056\323\306\037\304\154\252\305\034 +\152\001\005\112\057\322\305\301\250\064\046\135\146\245\322\002 +\041\371\030\267\006\365\116\231\157\250\253\114\121\350\317\120 +\030\305\167\310\071\011\054\111\222\062\231\250\273\027\027\171 +\260\132\305\346\243\304\131\145\107\065\203\136\251\350\065\013 +\231\273\344\315\040\306\233\112\006\071\265\150\374\042\272\356 +\125\214\053\116\352\363\261\343\374\266\231\232\325\102\372\161 +\115\010\317\207\036\152\161\175\371\323\264\351\245\161\201\173 +\302\116\107\226\245\366\166\205\243\050\217\351\200\156\201\123 +\245\155\137\270\110\371\302\371\066\246\056\111\377\270\226\302 +\214\007\263\233\210\130\374\353\033\034\336\055\160\342\227\222 +\060\241\211\343\274\125\250\047\326\113\355\220\255\213\372\143 +\045\131\055\250\065\335\312\227\063\274\345\315\307\235\321\354 +\357\136\016\112\220\006\046\143\255\271\331\065\055\007\272\166 +\145\054\254\127\217\175\364\007\224\327\201\002\226\135\243\007 +\111\325\172\320\127\371\033\347\123\106\165\252\260\171\102\313 +\150\161\010\351\140\275\071\151\316\364\257\303\126\100\307\255 +\122\242\011\344\157\206\107\212\037\353\050\047\135\203\040\257 +\004\311\154\126\232\213\106\365\002\003\001\000\001\243\201\203 +\060\201\200\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\006\060\035\006\003\125\035\016\004\026\004\024\367 +\175\305\375\304\350\232\033\167\144\247\365\035\240\314\277\207 +\140\232\155\060\076\006\003\125\035\040\004\067\060\065\060\063 +\006\004\125\035\040\000\060\053\060\051\006\010\053\006\001\005 +\005\007\002\001\026\035\150\164\164\160\072\057\057\167\167\167 +\056\143\145\162\164\056\146\156\155\164\056\145\163\057\144\160 +\143\163\057\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\002\001\000\007\220\112\337\363\043\116\360\303 +\234\121\145\233\234\042\242\212\014\205\363\163\051\153\115\376 +\001\342\251\014\143\001\277\004\147\245\235\230\137\375\001\023 +\372\354\232\142\351\206\376\266\142\322\156\114\224\373\300\165 +\105\174\145\014\370\262\067\317\254\017\317\215\157\371\031\367 +\217\354\036\362\160\236\360\312\270\357\267\377\166\067\166\133 +\366\156\210\363\257\142\062\042\223\015\072\152\216\024\146\014 +\055\123\164\127\145\036\325\262\335\043\201\073\245\146\043\047 +\147\011\217\341\167\252\103\315\145\121\010\355\121\130\376\346 +\071\371\313\107\204\244\025\361\166\273\244\356\244\073\304\137 +\357\262\063\226\021\030\267\311\145\276\030\341\243\244\334\372 +\030\371\323\274\023\233\071\172\064\272\323\101\373\372\062\212 +\052\267\053\206\013\151\203\070\276\315\212\056\013\160\255\215 +\046\222\356\036\365\001\053\012\331\326\227\233\156\340\250\031 +\034\072\041\213\014\036\100\255\003\347\335\146\176\365\271\040 +\015\003\350\226\371\202\105\324\071\340\240\000\135\327\230\346 +\175\236\147\163\303\232\052\367\253\213\241\072\024\357\064\274 +\122\016\211\230\232\004\100\204\035\176\105\151\223\127\316\353 +\316\370\120\174\117\034\156\004\103\233\371\326\073\043\030\351 +\352\216\321\115\106\215\361\073\344\152\312\272\373\043\267\233 +\372\231\001\051\132\130\132\055\343\371\324\155\016\046\255\301 +\156\064\274\062\370\014\005\372\145\243\333\073\067\203\042\351 +\326\334\162\063\375\135\362\040\275\166\074\043\332\050\367\371 +\033\353\131\144\325\334\137\162\176\040\374\315\211\265\220\147 +\115\142\172\077\116\255\035\303\071\376\172\364\050\026\337\101 +\366\110\200\005\327\017\121\171\254\020\253\324\354\003\146\346 +\152\260\272\061\222\102\100\152\276\072\323\162\341\152\067\125 +\274\254\035\225\267\151\141\362\103\221\164\346\240\323\012\044 +\106\241\010\257\326\332\105\031\226\324\123\035\133\204\171\360 +\300\367\107\357\213\217\305\006\256\235\114\142\235\377\106\004 +\370\323\311\266\020\045\100\165\376\026\252\311\112\140\206\057 +\272\357\060\167\344\124\342\270\204\231\130\200\252\023\213\121 +\072\117\110\366\213\266\263 +END + +# Trust for "AC RAIZ FNMT-RCM" +# Issuer: OU=AC RAIZ FNMT-RCM,O=FNMT-RCM,C=ES +# Serial Number:5d:93:8d:30:67:36:c8:06:1d:1a:c7:54:84:69:07 +# Subject: OU=AC RAIZ FNMT-RCM,O=FNMT-RCM,C=ES +# Not Valid Before: Wed Oct 29 15:59:56 2008 +# Not Valid After : Tue Jan 01 00:00:00 2030 +# Fingerprint (SHA-256): EB:C5:57:0C:29:01:8C:4D:67:B1:AA:12:7B:AF:12:F7:03:B4:61:1E:BC:17:B7:DA:B5:57:38:94:17:9B:93:FA +# Fingerprint (SHA1): EC:50:35:07:B2:15:C4:95:62:19:E2:A8:9A:5B:42:99:2C:4C:2C:20 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "AC RAIZ FNMT-RCM" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\354\120\065\007\262\025\304\225\142\031\342\250\232\133\102\231 +\054\114\054\040 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\342\011\004\264\323\275\321\240\024\375\032\322\107\304\127\035 +END +CKA_ISSUER MULTILINE_OCTAL +\060\073\061\013\060\011\006\003\125\004\006\023\002\105\123\061 +\021\060\017\006\003\125\004\012\014\010\106\116\115\124\055\122 +\103\115\061\031\060\027\006\003\125\004\013\014\020\101\103\040 +\122\101\111\132\040\106\116\115\124\055\122\103\115 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\017\135\223\215\060\147\066\310\006\035\032\307\124\204\151 +\007 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Amazon Root CA 1" +# +# Issuer: CN=Amazon Root CA 1,O=Amazon,C=US +# Serial Number:06:6c:9f:cf:99:bf:8c:0a:39:e2:f0:78:8a:43:e6:96:36:5b:ca +# Subject: CN=Amazon Root CA 1,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sun Jan 17 00:00:00 2038 +# Fingerprint (SHA-256): 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E +# Fingerprint (SHA1): 8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16 +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 "Amazon Root CA 1" +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\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\317\231\277\214\012\071\342\360\170\212\103 +\346\226\066\133\312 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\101\060\202\002\051\240\003\002\001\002\002\023\006 +\154\237\317\231\277\214\012\071\342\360\170\212\103\346\226\066 +\133\312\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157 +\156\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172 +\157\156\040\122\157\157\164\040\103\101\040\061\060\036\027\015 +\061\065\060\065\062\066\060\060\060\060\060\060\132\027\015\063 +\070\060\061\061\067\060\060\060\060\060\060\132\060\071\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\017\060\015\006 +\003\125\004\012\023\006\101\155\141\172\157\156\061\031\060\027 +\006\003\125\004\003\023\020\101\155\141\172\157\156\040\122\157 +\157\164\040\103\101\040\061\060\202\001\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\001\017\000\060 +\202\001\012\002\202\001\001\000\262\170\200\161\312\170\325\343 +\161\257\107\200\120\164\175\156\330\327\210\166\364\231\150\367 +\130\041\140\371\164\204\001\057\254\002\055\206\323\240\103\172 +\116\262\244\320\066\272\001\276\215\333\110\310\007\027\066\114 +\364\356\210\043\307\076\353\067\365\265\031\370\111\150\260\336 +\327\271\166\070\035\141\236\244\376\202\066\245\345\112\126\344 +\105\341\371\375\264\026\372\164\332\234\233\065\071\057\372\260 +\040\120\006\154\172\320\200\262\246\371\257\354\107\031\217\120 +\070\007\334\242\207\071\130\370\272\325\251\371\110\147\060\226 +\356\224\170\136\157\211\243\121\300\060\206\146\241\105\146\272 +\124\353\243\303\221\371\110\334\377\321\350\060\055\175\055\164 +\160\065\327\210\044\367\236\304\131\156\273\163\207\027\362\062 +\106\050\270\103\372\267\035\252\312\264\362\237\044\016\055\113 +\367\161\134\136\151\377\352\225\002\313\070\212\256\120\070\157 +\333\373\055\142\033\305\307\036\124\341\167\340\147\310\017\234 +\207\043\326\077\100\040\177\040\200\304\200\114\076\073\044\046 +\216\004\256\154\232\310\252\015\002\003\001\000\001\243\102\060 +\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\001\206\060\035\006\003\125\035\016\004\026\004\024\204\030\314 +\205\064\354\274\014\224\224\056\010\131\234\307\262\020\116\012 +\010\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000 +\003\202\001\001\000\230\362\067\132\101\220\241\032\305\166\121 +\050\040\066\043\016\256\346\050\273\252\370\224\256\110\244\060 +\177\033\374\044\215\113\264\310\241\227\366\266\361\172\160\310 +\123\223\314\010\050\343\230\045\317\043\244\371\336\041\323\174 +\205\011\255\116\232\165\072\302\013\152\211\170\166\104\107\030 +\145\154\215\101\216\073\177\232\313\364\265\247\120\327\005\054 +\067\350\003\113\255\351\141\240\002\156\365\362\360\305\262\355 +\133\267\334\372\224\134\167\236\023\245\177\122\255\225\362\370 +\223\073\336\213\134\133\312\132\122\133\140\257\024\367\113\357 +\243\373\237\100\225\155\061\124\374\102\323\307\106\037\043\255 +\331\017\110\160\232\331\165\170\161\321\162\103\064\165\156\127 +\131\302\002\134\046\140\051\317\043\031\026\216\210\103\245\324 +\344\313\010\373\043\021\103\350\103\051\162\142\241\251\135\136 +\010\324\220\256\270\330\316\024\302\320\125\362\206\366\304\223 +\103\167\146\141\300\271\350\101\327\227\170\140\003\156\112\162 +\256\245\321\175\272\020\236\206\154\033\212\271\131\063\370\353 +\304\220\276\361\271 +END + +# Trust for "Amazon Root CA 1" +# Issuer: CN=Amazon Root CA 1,O=Amazon,C=US +# Serial Number:06:6c:9f:cf:99:bf:8c:0a:39:e2:f0:78:8a:43:e6:96:36:5b:ca +# Subject: CN=Amazon Root CA 1,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sun Jan 17 00:00:00 2038 +# Fingerprint (SHA-256): 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E +# Fingerprint (SHA1): 8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Amazon Root CA 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\215\247\371\145\354\136\374\067\221\017\034\156\131\375\301\314 +\152\156\336\026 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\103\306\277\256\354\376\255\057\030\306\210\150\060\374\310\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\317\231\277\214\012\071\342\360\170\212\103 +\346\226\066\133\312 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Amazon Root CA 2" +# +# Issuer: CN=Amazon Root CA 2,O=Amazon,C=US +# Serial Number:06:6c:9f:d2:96:35:86:9f:0a:0f:e5:86:78:f8:5b:26:bb:8a:37 +# Subject: CN=Amazon Root CA 2,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sat May 26 00:00:00 2040 +# Fingerprint (SHA-256): 1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4 +# Fingerprint (SHA1): 5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A +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 "Amazon Root CA 2" +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\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\322\226\065\206\237\012\017\345\206\170\370 +\133\046\273\212\067 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\101\060\202\003\051\240\003\002\001\002\002\023\006 +\154\237\322\226\065\206\237\012\017\345\206\170\370\133\046\273 +\212\067\060\015\006\011\052\206\110\206\367\015\001\001\014\005 +\000\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157 +\156\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172 +\157\156\040\122\157\157\164\040\103\101\040\062\060\036\027\015 +\061\065\060\065\062\066\060\060\060\060\060\060\132\027\015\064 +\060\060\065\062\066\060\060\060\060\060\060\132\060\071\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\017\060\015\006 +\003\125\004\012\023\006\101\155\141\172\157\156\061\031\060\027 +\006\003\125\004\003\023\020\101\155\141\172\157\156\040\122\157 +\157\164\040\103\101\040\062\060\202\002\042\060\015\006\011\052 +\206\110\206\367\015\001\001\001\005\000\003\202\002\017\000\060 +\202\002\012\002\202\002\001\000\255\226\237\055\234\112\114\112 +\201\171\121\231\354\212\313\153\140\121\023\274\115\155\006\374 +\260\010\215\335\031\020\152\307\046\014\065\330\300\157\040\204 +\351\224\261\233\205\003\303\133\333\112\350\310\370\220\166\331 +\133\117\343\114\350\006\066\115\314\232\254\075\014\220\053\222 +\324\006\031\140\254\067\104\171\205\201\202\255\132\067\340\015 +\314\235\246\114\122\166\352\103\235\267\004\321\120\366\125\340 +\325\322\246\111\205\351\067\351\312\176\256\134\225\115\110\232 +\077\256\040\132\155\210\225\331\064\270\122\032\103\220\260\277 +\154\005\271\266\170\267\352\320\344\072\074\022\123\142\377\112 +\362\173\276\065\005\251\022\064\343\363\144\164\142\054\075\000 +\111\132\050\376\062\104\273\207\335\145\047\002\161\073\332\112 +\367\037\332\315\367\041\125\220\117\017\354\256\202\341\237\153 +\331\105\323\273\360\137\207\355\074\054\071\206\332\077\336\354 +\162\125\353\171\243\255\333\335\174\260\272\034\316\374\336\117 +\065\166\317\017\370\170\037\152\066\121\106\047\141\133\351\236 +\317\360\242\125\175\174\045\212\157\057\264\305\317\204\056\053 +\375\015\121\020\154\373\137\033\274\033\176\305\256\073\230\001 +\061\222\377\013\127\364\232\262\271\127\351\253\357\015\166\321 +\360\356\364\316\206\247\340\156\351\264\151\241\337\151\366\063 +\306\151\056\227\023\236\245\207\260\127\020\201\067\311\123\263 +\273\177\366\222\321\234\320\030\364\222\156\332\203\117\246\143 +\231\114\245\373\136\357\041\144\172\040\137\154\144\205\025\313 +\067\351\142\014\013\052\026\334\001\056\062\332\076\113\365\236 +\072\366\027\100\224\357\236\221\010\206\372\276\143\250\132\063 +\354\313\164\103\225\371\154\151\122\066\307\051\157\374\125\003 +\134\037\373\237\275\107\353\347\111\107\225\013\116\211\042\011 +\111\340\365\141\036\361\277\056\212\162\156\200\131\377\127\072 +\371\165\062\243\116\137\354\355\050\142\331\115\163\362\314\201 +\027\140\355\315\353\334\333\247\312\305\176\002\275\362\124\010 +\124\375\264\055\011\054\027\124\112\230\321\124\341\121\147\010 +\322\355\156\176\157\077\322\055\201\131\051\146\313\220\071\225 +\021\036\164\047\376\335\353\257\002\003\001\000\001\243\102\060 +\100\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001 +\001\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\001\206\060\035\006\003\125\035\016\004\026\004\024\260\014\360 +\114\060\364\005\130\002\110\375\063\345\122\257\113\204\343\146 +\122\060\015\006\011\052\206\110\206\367\015\001\001\014\005\000 +\003\202\002\001\000\252\250\200\217\016\170\243\340\242\324\315 +\346\365\230\172\073\352\000\003\260\227\016\223\274\132\250\366 +\054\214\162\207\251\261\374\177\163\375\143\161\170\245\207\131 +\317\060\341\015\020\262\023\132\155\202\365\152\346\200\237\240 +\005\013\150\344\107\153\307\152\337\266\375\167\062\162\345\030 +\372\011\364\240\223\054\135\322\214\165\205\166\145\220\014\003 +\171\267\061\043\143\255\170\203\011\206\150\204\312\377\371\317 +\046\232\222\171\347\315\113\305\347\141\247\027\313\363\251\022 +\223\223\153\247\350\057\123\222\304\140\130\260\314\002\121\030 +\133\205\215\142\131\143\266\255\264\336\232\373\046\367\000\047 +\300\135\125\067\164\231\311\120\177\343\131\056\104\343\054\045 +\356\354\114\062\167\264\237\032\351\113\135\040\305\332\375\034 +\207\026\306\103\350\324\273\046\232\105\160\136\251\013\067\123 +\342\106\173\047\375\340\106\362\211\267\314\102\266\313\050\046 +\156\331\245\311\072\310\101\023\140\367\120\214\025\256\262\155 +\032\025\032\127\170\346\222\052\331\145\220\202\077\154\002\257 +\256\022\072\047\226\066\004\327\035\242\200\143\251\233\361\345 +\272\264\174\024\260\116\311\261\037\164\137\070\366\121\352\233 +\372\054\242\021\324\251\055\047\032\105\261\257\262\116\161\015 +\300\130\106\326\151\006\313\123\313\263\376\153\101\315\101\176 +\175\114\017\174\162\171\172\131\315\136\112\016\254\233\251\230 +\163\171\174\264\364\314\271\270\007\014\262\164\134\270\307\157 +\210\241\220\247\364\252\371\277\147\072\364\032\025\142\036\267 +\237\276\075\261\051\257\147\241\022\362\130\020\031\123\003\060 +\033\270\032\211\366\234\275\227\003\216\243\011\363\035\213\041 +\361\264\337\344\034\321\237\145\002\006\352\134\326\023\263\204 +\357\242\245\134\214\167\051\247\150\300\153\256\100\322\250\264 +\352\315\360\215\113\070\234\031\232\033\050\124\270\211\220\357 +\312\165\201\076\036\362\144\044\307\030\257\116\377\107\236\007 +\366\065\145\244\323\012\126\377\365\027\144\154\357\250\042\045 +\111\223\266\337\000\027\332\130\176\135\356\305\033\260\321\321 +\137\041\020\307\371\363\272\002\012\047\007\305\361\326\307\323 +\340\373\011\140\154 +END + +# Trust for "Amazon Root CA 2" +# Issuer: CN=Amazon Root CA 2,O=Amazon,C=US +# Serial Number:06:6c:9f:d2:96:35:86:9f:0a:0f:e5:86:78:f8:5b:26:bb:8a:37 +# Subject: CN=Amazon Root CA 2,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sat May 26 00:00:00 2040 +# Fingerprint (SHA-256): 1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4 +# Fingerprint (SHA1): 5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Amazon Root CA 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\132\214\357\105\327\246\230\131\166\172\214\213\104\226\265\170 +\317\107\113\032 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\310\345\215\316\250\102\342\172\300\052\134\174\236\046\277\146 +END +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\322\226\065\206\237\012\017\345\206\170\370 +\133\046\273\212\067 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Amazon Root CA 3" +# +# Issuer: CN=Amazon Root CA 3,O=Amazon,C=US +# Serial Number:06:6c:9f:d5:74:97:36:66:3f:3b:0b:9a:d9:e8:9e:76:03:f2:4a +# Subject: CN=Amazon Root CA 3,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sat May 26 00:00:00 2040 +# Fingerprint (SHA-256): 18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4 +# Fingerprint (SHA1): 0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E +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 "Amazon Root CA 3" +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\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\325\164\227\066\146\077\073\013\232\331\350 +\236\166\003\362\112 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\001\266\060\202\001\133\240\003\002\001\002\002\023\006 +\154\237\325\164\227\066\146\077\073\013\232\331\350\236\166\003 +\362\112\060\012\006\010\052\206\110\316\075\004\003\002\060\071 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\017\060 +\015\006\003\125\004\012\023\006\101\155\141\172\157\156\061\031 +\060\027\006\003\125\004\003\023\020\101\155\141\172\157\156\040 +\122\157\157\164\040\103\101\040\063\060\036\027\015\061\065\060 +\065\062\066\060\060\060\060\060\060\132\027\015\064\060\060\065 +\062\066\060\060\060\060\060\060\132\060\071\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\017\060\015\006\003\125\004 +\012\023\006\101\155\141\172\157\156\061\031\060\027\006\003\125 +\004\003\023\020\101\155\141\172\157\156\040\122\157\157\164\040 +\103\101\040\063\060\131\060\023\006\007\052\206\110\316\075\002 +\001\006\010\052\206\110\316\075\003\001\007\003\102\000\004\051 +\227\247\306\101\177\300\015\233\350\001\033\126\306\362\122\245 +\272\055\262\022\350\322\056\327\372\311\305\330\252\155\037\163 +\201\073\073\230\153\071\174\063\245\305\116\206\216\200\027\150 +\142\105\127\175\104\130\035\263\067\345\147\010\353\146\336\243 +\102\060\100\060\017\006\003\125\035\023\001\001\377\004\005\060 +\003\001\001\377\060\016\006\003\125\035\017\001\001\377\004\004 +\003\002\001\206\060\035\006\003\125\035\016\004\026\004\024\253 +\266\333\327\006\236\067\254\060\206\007\221\160\307\234\304\031 +\261\170\300\060\012\006\010\052\206\110\316\075\004\003\002\003 +\111\000\060\106\002\041\000\340\205\222\243\027\267\215\371\053 +\006\245\223\254\032\230\150\141\162\372\341\241\320\373\034\170 +\140\246\103\231\305\270\304\002\041\000\234\002\357\361\224\234 +\263\226\371\353\306\052\370\266\054\376\072\220\024\026\327\214 +\143\044\110\034\337\060\175\325\150\073 +END + +# Trust for "Amazon Root CA 3" +# Issuer: CN=Amazon Root CA 3,O=Amazon,C=US +# Serial Number:06:6c:9f:d5:74:97:36:66:3f:3b:0b:9a:d9:e8:9e:76:03:f2:4a +# Subject: CN=Amazon Root CA 3,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sat May 26 00:00:00 2040 +# Fingerprint (SHA-256): 18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4 +# Fingerprint (SHA1): 0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Amazon Root CA 3" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\015\104\335\214\074\214\032\032\130\165\144\201\351\017\056\052 +\377\263\322\156 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\240\324\357\013\367\265\330\111\225\052\354\365\304\374\201\207 +END +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\325\164\227\066\146\077\073\013\232\331\350 +\236\166\003\362\112 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Amazon Root CA 4" +# +# Issuer: CN=Amazon Root CA 4,O=Amazon,C=US +# Serial Number:06:6c:9f:d7:c1:bb:10:4c:29:43:e5:71:7b:7b:2c:c8:1a:c1:0e +# Subject: CN=Amazon Root CA 4,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sat May 26 00:00:00 2040 +# Fingerprint (SHA-256): E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92 +# Fingerprint (SHA1): F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE +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 "Amazon Root CA 4" +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\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\064 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\327\301\273\020\114\051\103\345\161\173\173 +\054\310\032\301\016 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\001\362\060\202\001\170\240\003\002\001\002\002\023\006 +\154\237\327\301\273\020\114\051\103\345\161\173\173\054\310\032 +\301\016\060\012\006\010\052\206\110\316\075\004\003\003\060\071 +\061\013\060\011\006\003\125\004\006\023\002\125\123\061\017\060 +\015\006\003\125\004\012\023\006\101\155\141\172\157\156\061\031 +\060\027\006\003\125\004\003\023\020\101\155\141\172\157\156\040 +\122\157\157\164\040\103\101\040\064\060\036\027\015\061\065\060 +\065\062\066\060\060\060\060\060\060\132\027\015\064\060\060\065 +\062\066\060\060\060\060\060\060\132\060\071\061\013\060\011\006 +\003\125\004\006\023\002\125\123\061\017\060\015\006\003\125\004 +\012\023\006\101\155\141\172\157\156\061\031\060\027\006\003\125 +\004\003\023\020\101\155\141\172\157\156\040\122\157\157\164\040 +\103\101\040\064\060\166\060\020\006\007\052\206\110\316\075\002 +\001\006\005\053\201\004\000\042\003\142\000\004\322\253\212\067 +\117\243\123\015\376\301\212\173\113\250\173\106\113\143\260\142 +\366\055\033\333\010\161\041\322\000\350\143\275\232\047\373\360 +\071\156\135\352\075\245\311\201\252\243\133\040\230\105\135\026 +\333\375\350\020\155\343\234\340\343\275\137\204\142\363\160\144 +\063\240\313\044\057\160\272\210\241\052\240\165\370\201\256\142 +\006\304\201\333\071\156\051\260\036\372\056\134\243\102\060\100 +\060\017\006\003\125\035\023\001\001\377\004\005\060\003\001\001 +\377\060\016\006\003\125\035\017\001\001\377\004\004\003\002\001 +\206\060\035\006\003\125\035\016\004\026\004\024\323\354\307\072 +\145\156\314\341\332\166\232\126\373\234\363\206\155\127\345\201 +\060\012\006\010\052\206\110\316\075\004\003\003\003\150\000\060 +\145\002\060\072\213\041\361\275\176\021\255\320\357\130\226\057 +\326\353\235\176\220\215\053\317\146\125\303\054\343\050\251\160 +\012\107\016\360\067\131\022\377\055\231\224\050\116\052\117\065 +\115\063\132\002\061\000\352\165\000\116\073\304\072\224\022\221 +\311\130\106\235\041\023\162\247\210\234\212\344\114\112\333\226 +\324\254\213\153\153\111\022\123\063\255\327\344\276\044\374\265 +\012\166\324\245\274\020 +END + +# Trust for "Amazon Root CA 4" +# Issuer: CN=Amazon Root CA 4,O=Amazon,C=US +# Serial Number:06:6c:9f:d7:c1:bb:10:4c:29:43:e5:71:7b:7b:2c:c8:1a:c1:0e +# Subject: CN=Amazon Root CA 4,O=Amazon,C=US +# Not Valid Before: Tue May 26 00:00:00 2015 +# Not Valid After : Sat May 26 00:00:00 2040 +# Fingerprint (SHA-256): E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92 +# Fingerprint (SHA1): F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Amazon Root CA 4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\366\020\204\007\326\370\273\147\230\014\302\342\104\302\353\256 +\034\357\143\276 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\211\274\047\325\353\027\215\006\152\151\325\375\211\107\264\315 +END +CKA_ISSUER MULTILINE_OCTAL +\060\071\061\013\060\011\006\003\125\004\006\023\002\125\123\061 +\017\060\015\006\003\125\004\012\023\006\101\155\141\172\157\156 +\061\031\060\027\006\003\125\004\003\023\020\101\155\141\172\157 +\156\040\122\157\157\164\040\103\101\040\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\023\006\154\237\327\301\273\020\114\051\103\345\161\173\173 +\054\310\032\301\016 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "LuxTrust Global Root 2" +# +# Issuer: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU +# Serial Number:0a:7e:a6:df:4b:44:9e:da:6a:24:85:9e:e6:b8:15:d3:16:7f:bb:b1 +# Subject: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU +# Not Valid Before: Thu Mar 05 13:21:57 2015 +# Not Valid After : Mon Mar 05 13:21:57 2035 +# Fingerprint (SHA-256): 54:45:5F:71:29:C2:0B:14:47:C4:18:F9:97:16:8F:24:C5:8F:C5:02:3B:F5:DA:5B:E2:EB:6E:1D:D8:90:2E:D5 +# Fingerprint (SHA1): 1E:0E:56:19:0A:D1:8B:25:98:B2:04:44:FF:66:8A:04:17:99:5F:3F +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 "LuxTrust Global Root 2" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\114\125\061 +\026\060\024\006\003\125\004\012\014\015\114\165\170\124\162\165 +\163\164\040\123\056\101\056\061\037\060\035\006\003\125\004\003 +\014\026\114\165\170\124\162\165\163\164\040\107\154\157\142\141 +\154\040\122\157\157\164\040\062 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\114\125\061 +\026\060\024\006\003\125\004\012\014\015\114\165\170\124\162\165 +\163\164\040\123\056\101\056\061\037\060\035\006\003\125\004\003 +\014\026\114\165\170\124\162\165\163\164\040\107\154\157\142\141 +\154\040\122\157\157\164\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\012\176\246\337\113\104\236\332\152\044\205\236\346\270 +\025\323\026\177\273\261 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\005\303\060\202\003\253\240\003\002\001\002\002\024\012 +\176\246\337\113\104\236\332\152\044\205\236\346\270\025\323\026 +\177\273\261\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\060\106\061\013\060\011\006\003\125\004\006\023\002\114 +\125\061\026\060\024\006\003\125\004\012\014\015\114\165\170\124 +\162\165\163\164\040\123\056\101\056\061\037\060\035\006\003\125 +\004\003\014\026\114\165\170\124\162\165\163\164\040\107\154\157 +\142\141\154\040\122\157\157\164\040\062\060\036\027\015\061\065 +\060\063\060\065\061\063\062\061\065\067\132\027\015\063\065\060 +\063\060\065\061\063\062\061\065\067\132\060\106\061\013\060\011 +\006\003\125\004\006\023\002\114\125\061\026\060\024\006\003\125 +\004\012\014\015\114\165\170\124\162\165\163\164\040\123\056\101 +\056\061\037\060\035\006\003\125\004\003\014\026\114\165\170\124 +\162\165\163\164\040\107\154\157\142\141\154\040\122\157\157\164 +\040\062\060\202\002\042\060\015\006\011\052\206\110\206\367\015 +\001\001\001\005\000\003\202\002\017\000\060\202\002\012\002\202 +\002\001\000\327\205\227\277\021\230\351\360\142\203\114\074\207 +\371\123\152\067\013\362\017\074\207\316\157\334\046\051\275\305 +\211\272\311\203\075\367\356\312\133\306\155\111\163\264\311\106 +\243\033\064\023\077\301\211\105\127\364\331\261\373\066\145\113 +\373\010\342\110\161\021\310\156\073\236\235\337\211\145\067\246 +\205\366\073\104\030\266\306\067\060\142\104\222\227\151\175\102 +\060\044\344\015\014\211\153\143\336\305\341\337\116\251\024\154 +\123\340\141\316\366\027\057\035\074\275\346\042\114\035\223\365 +\020\304\241\166\354\152\336\305\154\337\226\264\126\100\102\300 +\142\222\060\241\055\025\224\240\322\040\006\011\156\152\155\345 +\353\267\276\324\360\361\025\174\213\346\116\272\023\314\113\047 +\136\231\074\027\135\217\201\177\063\075\117\323\077\033\354\134 +\077\360\074\114\165\156\362\246\325\235\332\055\007\143\002\306 +\162\351\224\274\114\111\225\117\210\122\310\333\350\151\202\370 +\314\064\133\042\360\206\247\211\275\110\012\155\146\201\155\310 +\310\144\373\001\341\364\341\336\331\236\335\333\133\324\052\231 +\046\025\033\036\114\222\051\202\236\325\222\201\222\101\160\031 +\367\244\345\223\113\274\167\147\061\335\034\375\061\160\015\027 +\231\014\371\014\071\031\052\027\265\060\161\125\325\017\256\130 +\341\075\057\064\233\317\237\366\170\205\302\223\172\162\076\146 +\217\234\026\021\140\217\236\211\157\147\276\340\107\132\073\014 +\232\147\213\317\106\306\256\070\243\362\247\274\346\326\205\153 +\063\044\160\042\113\313\010\233\273\310\370\002\051\035\276\040 +\014\106\277\153\207\233\263\052\146\102\065\106\154\252\272\255 +\371\230\173\351\120\125\024\061\277\261\332\055\355\200\255\150 +\044\373\151\253\330\161\023\060\346\147\263\207\100\375\211\176 +\362\103\321\021\337\057\145\057\144\316\137\024\271\261\277\061 +\275\207\170\132\131\145\210\252\374\131\062\110\206\326\114\271 +\051\113\225\323\166\363\167\045\155\102\034\070\203\115\375\243 +\137\233\177\055\254\171\033\016\102\061\227\143\244\373\212\151 +\325\042\015\064\220\060\056\250\264\340\155\266\224\254\274\213 +\116\327\160\374\305\070\216\144\045\341\115\071\220\316\311\207 +\204\130\161\002\003\001\000\001\243\201\250\060\201\245\060\017 +\006\003\125\035\023\001\001\377\004\005\060\003\001\001\377\060 +\102\006\003\125\035\040\004\073\060\071\060\067\006\007\053\201 +\053\001\001\001\012\060\054\060\052\006\010\053\006\001\005\005 +\007\002\001\026\036\150\164\164\160\163\072\057\057\162\145\160 +\157\163\151\164\157\162\171\056\154\165\170\164\162\165\163\164 +\056\154\165\060\016\006\003\125\035\017\001\001\377\004\004\003 +\002\001\006\060\037\006\003\125\035\043\004\030\060\026\200\024 +\377\030\050\166\371\110\005\054\241\256\361\053\033\053\262\123 +\370\113\174\263\060\035\006\003\125\035\016\004\026\004\024\377 +\030\050\166\371\110\005\054\241\256\361\053\033\053\262\123\370 +\113\174\263\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\002\001\000\152\031\024\355\156\171\301\054\207 +\324\015\160\176\327\366\170\311\013\004\116\304\261\316\223\160 +\376\260\124\300\062\315\231\060\144\027\277\017\345\342\063\375 +\007\066\100\162\016\032\266\152\131\326\000\345\150\040\335\056 +\162\015\037\152\144\061\040\204\175\111\246\132\067\353\105\311 +\205\365\324\307\027\231\007\346\233\125\344\014\350\251\264\316 +\214\133\265\021\134\317\212\016\015\326\254\167\201\376\062\234 +\044\236\162\316\124\363\320\157\242\126\326\354\303\067\054\145 +\130\276\127\000\032\362\065\372\353\173\061\135\302\301\022\075 +\226\201\210\226\211\301\131\134\172\346\177\160\064\347\203\342 +\261\341\341\270\130\357\324\225\344\140\234\360\226\227\162\214 +\353\204\002\056\145\217\244\267\322\177\147\335\310\323\236\134 +\252\251\244\240\045\024\006\233\354\117\176\055\013\177\035\165 +\361\063\330\355\316\270\165\155\076\133\271\230\035\061\015\126 +\330\103\017\060\221\262\004\153\335\126\276\225\200\125\147\276 +\330\315\203\331\030\356\056\017\206\055\222\236\160\023\354\336 +\121\311\103\170\002\245\115\310\371\137\304\221\130\106\026\167 +\132\164\252\100\274\007\237\060\271\261\367\022\027\335\343\377 +\044\100\035\172\152\321\117\030\012\252\220\035\353\100\036\337 +\241\036\104\222\020\232\362\215\341\321\113\106\236\350\105\102 +\227\352\105\231\363\354\146\325\002\372\362\246\112\044\252\336 +\316\271\312\371\077\223\157\371\243\272\352\245\076\231\255\375 +\377\173\231\365\145\356\360\131\050\147\327\220\225\244\023\204 +\251\204\301\350\316\316\165\223\143\032\274\074\352\325\144\037 +\055\052\022\071\306\303\132\062\355\107\221\026\016\274\070\301 +\120\336\217\312\052\220\064\034\356\101\224\234\136\031\056\370 +\105\111\231\164\221\260\004\157\343\004\132\261\253\052\253\376 +\307\320\226\266\332\341\112\144\006\156\140\115\275\102\116\377 +\170\332\044\312\033\264\327\226\071\154\256\361\016\252\247\175 +\110\213\040\114\317\144\326\270\227\106\260\116\321\052\126\072 +\240\223\275\257\200\044\340\012\176\347\312\325\312\350\205\125 +\334\066\052\341\224\150\223\307\146\162\104\017\200\041\062\154 +\045\307\043\200\203\012\353 +END + +# Trust for "LuxTrust Global Root 2" +# Issuer: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU +# Serial Number:0a:7e:a6:df:4b:44:9e:da:6a:24:85:9e:e6:b8:15:d3:16:7f:bb:b1 +# Subject: CN=LuxTrust Global Root 2,O=LuxTrust S.A.,C=LU +# Not Valid Before: Thu Mar 05 13:21:57 2015 +# Not Valid After : Mon Mar 05 13:21:57 2035 +# Fingerprint (SHA-256): 54:45:5F:71:29:C2:0B:14:47:C4:18:F9:97:16:8F:24:C5:8F:C5:02:3B:F5:DA:5B:E2:EB:6E:1D:D8:90:2E:D5 +# Fingerprint (SHA1): 1E:0E:56:19:0A:D1:8B:25:98:B2:04:44:FF:66:8A:04:17:99:5F:3F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "LuxTrust Global Root 2" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\036\016\126\031\012\321\213\045\230\262\004\104\377\146\212\004 +\027\231\137\077 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\262\341\011\000\141\257\367\361\221\157\304\255\215\136\073\174 +END +CKA_ISSUER MULTILINE_OCTAL +\060\106\061\013\060\011\006\003\125\004\006\023\002\114\125\061 +\026\060\024\006\003\125\004\012\014\015\114\165\170\124\162\165 +\163\164\040\123\056\101\056\061\037\060\035\006\003\125\004\003 +\014\026\114\165\170\124\162\165\163\164\040\107\154\157\142\141 +\154\040\122\157\157\164\040\062 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\024\012\176\246\337\113\104\236\332\152\044\205\236\346\270 +\025\323\026\177\273\261 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Symantec Class 1 Public Primary Certification Authority - G6" +# +# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:24:32:75:f2:1d:2f:d2:09:33:f7:b4:6a:ca:d0:f3:98 +# Subject: CN=Symantec Class 1 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Tue Oct 18 00:00:00 2011 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (SHA-256): 9D:19:0B:2E:31:45:66:68:5B:E8:A8:89:E2:7A:A8:C7:D7:AE:1D:8A:AD:DB:A3:C1:EC:F9:D2:48:63:CD:34:B9 +# Fingerprint (SHA1): 51:7F:61:1E:29:91:6B:53:82:FB:72:E7:44:D9:8D:C3:CC:53:6D:64 +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 "Symantec Class 1 Public Primary Certification Authority - G6" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\066 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\044\062\165\362\035\057\322\011\063\367\264\152\312\320 +\363\230 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\366\060\202\002\336\240\003\002\001\002\002\020\044 +\062\165\362\035\057\322\011\063\367\264\152\312\320\363\230\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\224\061\013\060\011\006\003\125\004\006\023\002\125\123\061\035 +\060\033\006\003\125\004\012\023\024\123\171\155\141\156\164\145 +\143\040\103\157\162\160\157\162\141\164\151\157\156\061\037\060 +\035\006\003\125\004\013\023\026\123\171\155\141\156\164\145\143 +\040\124\162\165\163\164\040\116\145\164\167\157\162\153\061\105 +\060\103\006\003\125\004\003\023\074\123\171\155\141\156\164\145 +\143\040\103\154\141\163\163\040\061\040\120\165\142\154\151\143 +\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\066\060\036\027\015\061\061\061\060\061\070\060 +\060\060\060\060\060\132\027\015\063\067\061\062\060\061\062\063 +\065\071\065\071\132\060\201\224\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\035\060\033\006\003\125\004\012\023\024 +\123\171\155\141\156\164\145\143\040\103\157\162\160\157\162\141 +\164\151\157\156\061\037\060\035\006\003\125\004\013\023\026\123 +\171\155\141\156\164\145\143\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\105\060\103\006\003\125\004\003\023\074 +\123\171\155\141\156\164\145\143\040\103\154\141\163\163\040\061 +\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165 +\164\150\157\162\151\164\171\040\055\040\107\066\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\307\071\327 +\111\144\251\231\202\042\114\352\105\331\007\026\343\173\364\203 +\350\231\163\372\153\261\066\340\232\167\240\100\302\201\215\001 +\307\314\214\275\217\175\367\171\343\172\114\003\115\331\373\375 +\207\070\050\054\335\232\213\124\010\333\147\373\033\214\376\050 +\222\057\276\267\262\110\247\201\241\330\136\210\303\314\071\100 +\101\132\321\334\345\332\020\237\057\332\001\115\375\056\106\174 +\371\056\047\012\151\067\356\221\243\033\152\314\104\277\033\307 +\303\324\021\262\120\140\227\011\275\056\042\365\101\204\146\237 +\315\100\246\251\000\200\301\037\225\222\237\336\363\110\357\333 +\035\167\141\374\177\337\356\226\244\162\320\266\076\377\170\047 +\257\313\222\025\151\010\333\143\020\342\346\227\254\156\334\254 +\366\242\316\036\107\231\271\211\267\022\346\241\324\315\131\021 +\147\303\157\205\330\102\116\050\276\131\125\131\004\225\253\217 +\067\200\277\015\360\374\037\072\144\061\130\201\170\327\342\065 +\366\040\077\051\270\217\026\156\076\110\334\265\114\007\341\362 +\032\352\176\012\171\326\250\275\353\135\206\053\115\002\003\001 +\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\063\101\350\310\071\022\025\223\110\362\226\062\056\132 +\365\332\224\137\123\140\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\003\202\001\001\000\025\343\163\127\261\027 +\266\137\111\151\104\246\366\136\172\147\254\322\336\165\111\253 +\376\045\125\307\072\311\104\025\020\156\277\061\153\313\331\007 +\223\177\034\205\143\000\343\062\022\340\314\313\373\071\154\217 +\342\123\342\074\100\063\331\244\214\107\346\255\130\373\211\257 +\343\336\206\051\126\064\054\105\270\022\372\104\211\156\055\024 +\045\050\044\001\145\326\352\122\254\005\156\126\022\011\075\320 +\164\364\327\275\006\312\250\072\215\126\102\372\215\162\076\164 +\361\003\162\337\207\033\136\016\172\125\226\054\070\267\230\205 +\315\115\063\104\311\224\217\132\061\060\067\113\243\072\022\263 +\347\066\321\041\150\113\055\070\346\123\256\034\045\126\010\126 +\003\147\204\235\306\303\316\044\142\307\114\066\317\260\006\104 +\267\365\137\002\335\331\124\351\057\220\116\172\310\116\203\100 +\014\232\227\074\067\277\277\354\366\360\264\205\167\050\301\013 +\310\147\202\020\027\070\242\267\006\352\233\277\072\370\351\043 +\007\277\164\340\230\070\025\125\170\356\162\000\134\031\243\364 +\322\063\340\377\275\321\124\071\051\017 +END + +# Trust for "Symantec Class 1 Public Primary Certification Authority - G6" +# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:24:32:75:f2:1d:2f:d2:09:33:f7:b4:6a:ca:d0:f3:98 +# Subject: CN=Symantec Class 1 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Tue Oct 18 00:00:00 2011 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (SHA-256): 9D:19:0B:2E:31:45:66:68:5B:E8:A8:89:E2:7A:A8:C7:D7:AE:1D:8A:AD:DB:A3:C1:EC:F9:D2:48:63:CD:34:B9 +# Fingerprint (SHA1): 51:7F:61:1E:29:91:6B:53:82:FB:72:E7:44:D9:8D:C3:CC:53:6D:64 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Symantec Class 1 Public Primary Certification Authority - G6" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\121\177\141\036\051\221\153\123\202\373\162\347\104\331\215\303 +\314\123\155\144 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\057\250\264\332\366\144\113\036\202\371\106\075\124\032\174\260 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\044\062\165\362\035\057\322\011\063\367\264\152\312\320 +\363\230 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Symantec Class 2 Public Primary Certification Authority - G6" +# +# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:64:82:9e:fc:37:1e:74:5d:fc:97:ff:97:c8:b1:ff:41 +# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Tue Oct 18 00:00:00 2011 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (SHA-256): CB:62:7D:18:B5:8A:D5:6D:DE:33:1A:30:45:6B:C6:5C:60:1A:4E:9B:18:DE:DC:EA:08:E7:DA:AA:07:81:5F:F0 +# Fingerprint (SHA1): 40:B3:31:A0:E9:BF:E8:55:BC:39:93:CA:70:4F:4E:C2:51:D4:1D:8F +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 "Symantec Class 2 Public Primary Certification Authority - G6" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\066 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\144\202\236\374\067\036\164\135\374\227\377\227\310\261 +\377\101 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\003\366\060\202\002\336\240\003\002\001\002\002\020\144 +\202\236\374\067\036\164\135\374\227\377\227\310\261\377\101\060 +\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201 +\224\061\013\060\011\006\003\125\004\006\023\002\125\123\061\035 +\060\033\006\003\125\004\012\023\024\123\171\155\141\156\164\145 +\143\040\103\157\162\160\157\162\141\164\151\157\156\061\037\060 +\035\006\003\125\004\013\023\026\123\171\155\141\156\164\145\143 +\040\124\162\165\163\164\040\116\145\164\167\157\162\153\061\105 +\060\103\006\003\125\004\003\023\074\123\171\155\141\156\164\145 +\143\040\103\154\141\163\163\040\062\040\120\165\142\154\151\143 +\040\120\162\151\155\141\162\171\040\103\145\162\164\151\146\151 +\143\141\164\151\157\156\040\101\165\164\150\157\162\151\164\171 +\040\055\040\107\066\060\036\027\015\061\061\061\060\061\070\060 +\060\060\060\060\060\132\027\015\063\067\061\062\060\061\062\063 +\065\071\065\071\132\060\201\224\061\013\060\011\006\003\125\004 +\006\023\002\125\123\061\035\060\033\006\003\125\004\012\023\024 +\123\171\155\141\156\164\145\143\040\103\157\162\160\157\162\141 +\164\151\157\156\061\037\060\035\006\003\125\004\013\023\026\123 +\171\155\141\156\164\145\143\040\124\162\165\163\164\040\116\145 +\164\167\157\162\153\061\105\060\103\006\003\125\004\003\023\074 +\123\171\155\141\156\164\145\143\040\103\154\141\163\163\040\062 +\040\120\165\142\154\151\143\040\120\162\151\155\141\162\171\040 +\103\145\162\164\151\146\151\143\141\164\151\157\156\040\101\165 +\164\150\157\162\151\164\171\040\055\040\107\066\060\202\001\042 +\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003 +\202\001\017\000\060\202\001\012\002\202\001\001\000\315\314\351 +\005\310\143\205\313\077\100\143\027\275\030\372\065\346\004\147 +\127\145\230\051\244\117\311\134\217\017\064\322\370\332\250\023 +\142\252\270\036\120\147\170\260\026\114\240\071\251\025\172\256 +\355\322\242\300\360\220\067\051\030\046\134\350\015\074\266\154 +\111\077\301\340\334\331\113\266\024\031\013\246\323\226\341\326 +\011\343\031\046\034\371\037\145\113\371\032\103\034\000\203\326 +\320\252\111\242\324\333\346\142\070\272\120\024\103\155\371\061 +\370\126\026\331\070\002\221\317\353\154\335\273\071\116\231\341 +\060\147\105\361\324\360\215\303\337\376\362\070\007\041\175\000 +\136\126\104\263\344\140\275\221\053\234\253\133\004\162\017\262 +\050\331\162\253\005\040\102\045\251\133\003\152\040\020\314\061 +\360\053\332\065\054\320\373\232\227\116\360\202\113\053\330\137 +\066\243\013\055\257\143\015\035\045\177\241\156\134\142\241\215 +\050\076\241\374\034\040\370\001\057\272\125\232\021\260\031\322 +\310\120\171\153\016\152\005\327\252\004\066\262\243\362\341\137 +\167\247\167\234\345\036\334\351\337\152\301\145\135\002\003\001 +\000\001\243\102\060\100\060\016\006\003\125\035\017\001\001\377 +\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377 +\004\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026 +\004\024\207\214\040\225\310\230\112\321\326\200\006\112\220\064 +\104\337\034\115\277\260\060\015\006\011\052\206\110\206\367\015 +\001\001\013\005\000\003\202\001\001\000\201\216\262\245\146\226 +\267\041\245\266\357\157\043\132\137\333\201\305\102\245\170\301 +\151\375\364\074\327\371\134\153\160\162\032\374\132\227\115\000 +\200\210\210\202\212\303\161\015\216\305\211\233\054\355\215\013 +\322\162\124\365\175\324\134\103\127\351\363\256\245\002\021\366 +\166\053\201\127\335\175\332\164\060\375\124\107\366\340\026\156 +\246\264\012\110\346\347\165\007\017\051\031\071\316\171\364\266 +\154\305\137\231\325\037\113\372\337\155\054\074\015\124\200\160 +\360\210\013\200\317\306\150\242\270\035\160\331\166\214\374\356 +\245\311\317\255\035\317\231\045\127\132\142\105\313\026\153\275 +\111\315\245\243\214\151\171\045\256\270\114\154\213\100\146\113 +\026\077\317\002\032\335\341\154\153\007\141\152\166\025\051\231 +\177\033\335\210\200\301\277\265\217\163\305\246\226\043\204\246 +\050\206\044\063\152\001\056\127\163\045\266\136\277\217\346\035 +\141\250\100\051\147\035\207\233\035\177\233\237\231\315\061\326 +\124\276\142\273\071\254\150\022\110\221\040\245\313\261\335\376 +\157\374\132\344\202\125\131\257\061\251 +END + +# Trust for "Symantec Class 2 Public Primary Certification Authority - G6" +# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:64:82:9e:fc:37:1e:74:5d:fc:97:ff:97:c8:b1:ff:41 +# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G6,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Tue Oct 18 00:00:00 2011 +# Not Valid After : Tue Dec 01 23:59:59 2037 +# Fingerprint (SHA-256): CB:62:7D:18:B5:8A:D5:6D:DE:33:1A:30:45:6B:C6:5C:60:1A:4E:9B:18:DE:DC:EA:08:E7:DA:AA:07:81:5F:F0 +# Fingerprint (SHA1): 40:B3:31:A0:E9:BF:E8:55:BC:39:93:CA:70:4F:4E:C2:51:D4:1D:8F +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Symantec Class 2 Public Primary Certification Authority - G6" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\100\263\061\240\351\277\350\125\274\071\223\312\160\117\116\302 +\121\324\035\217 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\175\013\203\345\373\174\255\007\117\040\251\265\337\143\355\171 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\066 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\144\202\236\374\067\036\164\135\374\227\377\227\310\261 +\377\101 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Symantec Class 1 Public Primary Certification Authority - G4" +# +# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:21:6e:33:a5:cb:d3:88:a4:6f:29:07:b4:27:3c:c4:d8 +# Subject: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Wed Oct 05 00:00:00 2011 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): 36:3F:3C:84:9E:AB:03:B0:A2:A0:F6:36:D7:B8:6D:04:D3:AC:7F:CF:E2:6A:0A:91:21:AB:97:95:F6:E1:76:DF +# Fingerprint (SHA1): 84:F2:E3:DD:83:13:3E:A9:1D:19:52:7F:02:D7:29:BF:C1:5F:E6:67 +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 "Symantec Class 1 Public Primary Certification Authority - G4" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\064 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\041\156\063\245\313\323\210\244\157\051\007\264\047\074 +\304\330 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\250\060\202\002\055\240\003\002\001\002\002\020\041 +\156\063\245\313\323\210\244\157\051\007\264\047\074\304\330\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\224\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\035\060\033\006 +\003\125\004\012\023\024\123\171\155\141\156\164\145\143\040\103 +\157\162\160\157\162\141\164\151\157\156\061\037\060\035\006\003 +\125\004\013\023\026\123\171\155\141\156\164\145\143\040\124\162 +\165\163\164\040\116\145\164\167\157\162\153\061\105\060\103\006 +\003\125\004\003\023\074\123\171\155\141\156\164\145\143\040\103 +\154\141\163\163\040\061\040\120\165\142\154\151\143\040\120\162 +\151\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\064\060\036\027\015\061\061\061\060\060\065\060\060\060\060 +\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071\065 +\071\132\060\201\224\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\035\060\033\006\003\125\004\012\023\024\123\171\155 +\141\156\164\145\143\040\103\157\162\160\157\162\141\164\151\157 +\156\061\037\060\035\006\003\125\004\013\023\026\123\171\155\141 +\156\164\145\143\040\124\162\165\163\164\040\116\145\164\167\157 +\162\153\061\105\060\103\006\003\125\004\003\023\074\123\171\155 +\141\156\164\145\143\040\103\154\141\163\163\040\061\040\120\165 +\142\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\055\040\107\064\060\166\060\020\006\007\052 +\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 +\004\327\146\265\033\333\256\263\140\356\106\352\210\143\165\073 +\052\224\155\363\137\022\366\343\017\236\266\012\024\123\110\122 +\310\334\072\263\313\110\040\046\022\116\372\211\204\324\337\221 +\344\051\175\050\001\331\333\030\103\151\241\037\265\323\206\026 +\334\307\177\147\043\337\337\061\061\203\003\065\160\261\113\267 +\310\027\273\121\313\334\224\027\333\352\011\073\166\022\336\252 +\265\243\102\060\100\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 +\024\145\300\215\045\365\014\272\227\167\220\077\236\056\340\132 +\365\316\325\341\344\060\012\006\010\052\206\110\316\075\004\003 +\003\003\151\000\060\146\002\061\000\245\256\343\106\123\370\230 +\066\343\042\372\056\050\111\015\356\060\176\063\363\354\077\161 +\136\314\125\211\170\231\254\262\375\334\034\134\063\216\051\271 +\153\027\310\021\150\265\334\203\007\002\061\000\234\310\104\332 +\151\302\066\303\124\031\020\205\002\332\235\107\357\101\347\154 +\046\235\011\075\367\155\220\321\005\104\057\260\274\203\223\150 +\362\014\105\111\071\277\231\004\034\323\020\240 +END + +# Trust for "Symantec Class 1 Public Primary Certification Authority - G4" +# Issuer: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:21:6e:33:a5:cb:d3:88:a4:6f:29:07:b4:27:3c:c4:d8 +# Subject: CN=Symantec Class 1 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Wed Oct 05 00:00:00 2011 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): 36:3F:3C:84:9E:AB:03:B0:A2:A0:F6:36:D7:B8:6D:04:D3:AC:7F:CF:E2:6A:0A:91:21:AB:97:95:F6:E1:76:DF +# Fingerprint (SHA1): 84:F2:E3:DD:83:13:3E:A9:1D:19:52:7F:02:D7:29:BF:C1:5F:E6:67 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Symantec Class 1 Public Primary Certification Authority - G4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\204\362\343\335\203\023\076\251\035\031\122\177\002\327\051\277 +\301\137\346\147 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\004\345\200\077\125\377\131\207\244\062\322\025\245\345\252\346 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\061\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\041\156\063\245\313\323\210\244\157\051\007\264\047\074 +\304\330 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "Symantec Class 2 Public Primary Certification Authority - G4" +# +# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:34:17:65:12:40:3b:b7:56:80:2d:80:cb:79:55:a6:1e +# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Wed Oct 05 00:00:00 2011 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): FE:86:3D:08:22:FE:7A:23:53:FA:48:4D:59:24:E8:75:65:6D:3D:C9:FB:58:77:1F:6F:61:6F:9D:57:1B:C5:92 +# Fingerprint (SHA1): 67:24:90:2E:48:01:B0:22:96:40:10:46:B4:B1:67:2C:A9:75:FD:2B +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 "Symantec Class 2 Public Primary Certification Authority - G4" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\064 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\064\027\145\022\100\073\267\126\200\055\200\313\171\125 +\246\036 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\250\060\202\002\055\240\003\002\001\002\002\020\064 +\027\145\022\100\073\267\126\200\055\200\313\171\125\246\036\060 +\012\006\010\052\206\110\316\075\004\003\003\060\201\224\061\013 +\060\011\006\003\125\004\006\023\002\125\123\061\035\060\033\006 +\003\125\004\012\023\024\123\171\155\141\156\164\145\143\040\103 +\157\162\160\157\162\141\164\151\157\156\061\037\060\035\006\003 +\125\004\013\023\026\123\171\155\141\156\164\145\143\040\124\162 +\165\163\164\040\116\145\164\167\157\162\153\061\105\060\103\006 +\003\125\004\003\023\074\123\171\155\141\156\164\145\143\040\103 +\154\141\163\163\040\062\040\120\165\142\154\151\143\040\120\162 +\151\155\141\162\171\040\103\145\162\164\151\146\151\143\141\164 +\151\157\156\040\101\165\164\150\157\162\151\164\171\040\055\040 +\107\064\060\036\027\015\061\061\061\060\060\065\060\060\060\060 +\060\060\132\027\015\063\070\060\061\061\070\062\063\065\071\065 +\071\132\060\201\224\061\013\060\011\006\003\125\004\006\023\002 +\125\123\061\035\060\033\006\003\125\004\012\023\024\123\171\155 +\141\156\164\145\143\040\103\157\162\160\157\162\141\164\151\157 +\156\061\037\060\035\006\003\125\004\013\023\026\123\171\155\141 +\156\164\145\143\040\124\162\165\163\164\040\116\145\164\167\157 +\162\153\061\105\060\103\006\003\125\004\003\023\074\123\171\155 +\141\156\164\145\143\040\103\154\141\163\163\040\062\040\120\165 +\142\154\151\143\040\120\162\151\155\141\162\171\040\103\145\162 +\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150\157 +\162\151\164\171\040\055\040\107\064\060\166\060\020\006\007\052 +\206\110\316\075\002\001\006\005\053\201\004\000\042\003\142\000 +\004\321\331\112\216\114\015\204\112\121\272\174\357\323\314\372 +\072\232\265\247\143\023\075\001\340\111\076\372\301\107\311\222 +\263\072\327\376\157\234\367\232\072\017\365\016\012\012\303\077 +\310\347\022\024\216\325\325\155\230\054\263\161\062\012\353\052 +\275\366\327\152\040\013\147\105\234\322\262\277\123\042\146\011 +\135\333\021\363\361\005\063\130\243\342\270\317\174\315\202\233 +\275\243\102\060\100\060\016\006\003\125\035\017\001\001\377\004 +\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377\004 +\005\060\003\001\001\377\060\035\006\003\125\035\016\004\026\004 +\024\075\062\363\072\251\014\220\204\371\242\214\151\006\141\124 +\057\207\162\376\005\060\012\006\010\052\206\110\316\075\004\003 +\003\003\151\000\060\146\002\061\000\310\246\251\257\101\177\265 +\311\021\102\026\150\151\114\134\270\047\030\266\230\361\300\177 +\220\155\207\323\214\106\027\360\076\117\374\352\260\010\304\172 +\113\274\010\057\307\342\247\157\145\002\061\000\326\131\336\206 +\316\137\016\312\124\325\306\320\025\016\374\213\224\162\324\216 +\000\130\123\317\176\261\113\015\345\120\206\353\236\153\337\377 +\051\246\330\107\331\240\226\030\333\362\105\263 +END + +# Trust for "Symantec Class 2 Public Primary Certification Authority - G4" +# Issuer: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Serial Number:34:17:65:12:40:3b:b7:56:80:2d:80:cb:79:55:a6:1e +# Subject: CN=Symantec Class 2 Public Primary Certification Authority - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US +# Not Valid Before: Wed Oct 05 00:00:00 2011 +# Not Valid After : Mon Jan 18 23:59:59 2038 +# Fingerprint (SHA-256): FE:86:3D:08:22:FE:7A:23:53:FA:48:4D:59:24:E8:75:65:6D:3D:C9:FB:58:77:1F:6F:61:6F:9D:57:1B:C5:92 +# Fingerprint (SHA1): 67:24:90:2E:48:01:B0:22:96:40:10:46:B4:B1:67:2C:A9:75:FD:2B +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Symantec Class 2 Public Primary Certification Authority - G4" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\147\044\220\056\110\001\260\042\226\100\020\106\264\261\147\054 +\251\165\375\053 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\160\325\060\361\332\224\227\324\327\164\337\276\355\150\336\226 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\224\061\013\060\011\006\003\125\004\006\023\002\125\123 +\061\035\060\033\006\003\125\004\012\023\024\123\171\155\141\156 +\164\145\143\040\103\157\162\160\157\162\141\164\151\157\156\061 +\037\060\035\006\003\125\004\013\023\026\123\171\155\141\156\164 +\145\143\040\124\162\165\163\164\040\116\145\164\167\157\162\153 +\061\105\060\103\006\003\125\004\003\023\074\123\171\155\141\156 +\164\145\143\040\103\154\141\163\163\040\062\040\120\165\142\154 +\151\143\040\120\162\151\155\141\162\171\040\103\145\162\164\151 +\146\151\143\141\164\151\157\156\040\101\165\164\150\157\162\151 +\164\171\040\055\040\107\064 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\020\064\027\145\022\100\073\267\126\200\055\200\313\171\125 +\246\036 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "D-TRUST Root CA 3 2013" +# +# Issuer: CN=D-TRUST Root CA 3 2013,O=D-Trust GmbH,C=DE +# Serial Number: 1039788 (0xfddac) +# Subject: CN=D-TRUST Root CA 3 2013,O=D-Trust GmbH,C=DE +# Not Valid Before: Fri Sep 20 08:25:51 2013 +# Not Valid After : Wed Sep 20 08:25:51 2028 +# Fingerprint (SHA-256): A1:A8:6D:04:12:1E:B8:7F:02:7C:66:F5:33:03:C2:8E:57:39:F9:43:FC:84:B3:8A:D6:AF:00:90:35:DD:94:57 +# Fingerprint (SHA1): 6C:7C:CC:E7:D4:AE:51:5F:99:08:CD:3F:F6:E8:C3:78:DF:6F:EF:97 +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 "D-TRUST Root CA 3 2013" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\037\060\035\006\003\125\004\003\014 +\026\104\055\124\122\125\123\124\040\122\157\157\164\040\103\101 +\040\063\040\062\060\061\063 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\037\060\035\006\003\125\004\003\014 +\026\104\055\124\122\125\123\124\040\122\157\157\164\040\103\101 +\040\063\040\062\060\061\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\017\335\254 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\016\060\202\002\366\240\003\002\001\002\002\003\017 +\335\254\060\015\006\011\052\206\110\206\367\015\001\001\013\005 +\000\060\105\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165 +\163\164\040\107\155\142\110\061\037\060\035\006\003\125\004\003 +\014\026\104\055\124\122\125\123\124\040\122\157\157\164\040\103 +\101\040\063\040\062\060\061\063\060\036\027\015\061\063\060\071 +\062\060\060\070\062\065\065\061\132\027\015\062\070\060\071\062 +\060\060\070\062\065\065\061\132\060\105\061\013\060\011\006\003 +\125\004\006\023\002\104\105\061\025\060\023\006\003\125\004\012 +\014\014\104\055\124\162\165\163\164\040\107\155\142\110\061\037 +\060\035\006\003\125\004\003\014\026\104\055\124\122\125\123\124 +\040\122\157\157\164\040\103\101\040\063\040\062\060\061\063\060 +\202\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001 +\005\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000 +\304\173\102\222\202\037\354\355\124\230\216\022\300\312\011\337 +\223\156\072\223\134\033\344\020\167\236\116\151\210\154\366\341 +\151\362\366\233\242\141\261\275\007\040\164\230\145\361\214\046 +\010\315\250\065\312\200\066\321\143\155\350\104\172\202\303\154 +\136\336\273\350\066\322\304\150\066\214\237\062\275\204\042\340 +\334\302\356\020\106\071\155\257\223\071\256\207\346\303\274\011 +\311\054\153\147\133\331\233\166\165\114\013\340\273\305\327\274 +\076\171\362\137\276\321\220\127\371\256\366\146\137\061\277\323 +\155\217\247\272\112\363\043\145\273\267\357\243\045\327\012\352 +\130\266\357\210\372\372\171\262\122\130\325\360\254\214\241\121 +\164\051\225\252\121\073\220\062\003\237\034\162\164\220\336\075 +\355\141\322\345\343\375\144\107\345\271\267\112\251\367\037\256 +\226\206\004\254\057\343\244\201\167\267\132\026\377\330\017\077 +\366\267\170\314\244\257\372\133\074\022\133\250\122\211\162\357 +\210\363\325\104\201\206\225\043\237\173\335\274\331\064\357\174 +\224\074\252\300\101\302\343\235\120\032\300\344\031\042\374\263 +\002\003\001\000\001\243\202\001\005\060\202\001\001\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\077\220\310\175\307\025\157 +\363\044\217\251\303\057\113\242\017\041\262\057\347\060\016\006 +\003\125\035\017\001\001\377\004\004\003\002\001\006\060\201\276 +\006\003\125\035\037\004\201\266\060\201\263\060\164\240\162\240 +\160\206\156\154\144\141\160\072\057\057\144\151\162\145\143\164 +\157\162\171\056\144\055\164\162\165\163\164\056\156\145\164\057 +\103\116\075\104\055\124\122\125\123\124\045\062\060\122\157\157 +\164\045\062\060\103\101\045\062\060\063\045\062\060\062\060\061 +\063\054\117\075\104\055\124\162\165\163\164\045\062\060\107\155 +\142\110\054\103\075\104\105\077\143\145\162\164\151\146\151\143 +\141\164\145\162\145\166\157\143\141\164\151\157\156\154\151\163 +\164\060\073\240\071\240\067\206\065\150\164\164\160\072\057\057 +\143\162\154\056\144\055\164\162\165\163\164\056\156\145\164\057 +\143\162\154\057\144\055\164\162\165\163\164\137\162\157\157\164 +\137\143\141\137\063\137\062\060\061\063\056\143\162\154\060\015 +\006\011\052\206\110\206\367\015\001\001\013\005\000\003\202\001 +\001\000\016\131\016\130\344\164\110\043\104\317\064\041\265\234 +\024\032\255\232\113\267\263\210\155\134\251\027\160\360\052\237 +\215\173\371\173\205\372\307\071\350\020\010\260\065\053\137\317 +\002\322\323\234\310\013\036\356\005\124\256\067\223\004\011\175 +\154\217\302\164\274\370\034\224\276\061\001\100\055\363\044\040 +\267\204\125\054\134\310\365\164\112\020\031\213\243\307\355\065 +\326\011\110\323\016\300\272\071\250\260\106\002\260\333\306\210 +\131\302\276\374\173\261\053\317\176\142\207\125\226\314\001\157 +\233\147\041\225\065\213\370\020\374\161\033\267\113\067\151\246 +\073\326\354\213\356\301\260\363\045\311\217\222\175\241\352\303 +\312\104\277\046\245\164\222\234\343\164\353\235\164\331\313\115 +\207\330\374\264\151\154\213\240\103\007\140\170\227\351\331\223 +\174\302\106\274\233\067\122\243\355\212\074\023\251\173\123\113 +\111\232\021\005\054\013\156\126\254\037\056\202\154\340\151\147 +\265\016\155\055\331\344\300\025\361\077\372\030\162\341\025\155 +\047\133\055\060\050\053\237\110\232\144\053\231\357\362\165\111 +\137\134 +END + +# Trust for "D-TRUST Root CA 3 2013" +# Issuer: CN=D-TRUST Root CA 3 2013,O=D-Trust GmbH,C=DE +# Serial Number: 1039788 (0xfddac) +# Subject: CN=D-TRUST Root CA 3 2013,O=D-Trust GmbH,C=DE +# Not Valid Before: Fri Sep 20 08:25:51 2013 +# Not Valid After : Wed Sep 20 08:25:51 2028 +# Fingerprint (SHA-256): A1:A8:6D:04:12:1E:B8:7F:02:7C:66:F5:33:03:C2:8E:57:39:F9:43:FC:84:B3:8A:D6:AF:00:90:35:DD:94:57 +# Fingerprint (SHA1): 6C:7C:CC:E7:D4:AE:51:5F:99:08:CD:3F:F6:E8:C3:78:DF:6F:EF:97 +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "D-TRUST Root CA 3 2013" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\154\174\314\347\324\256\121\137\231\010\315\077\366\350\303\170 +\337\157\357\227 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\267\042\146\230\176\326\003\340\301\161\346\165\315\126\105\277 +END +CKA_ISSUER MULTILINE_OCTAL +\060\105\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\025\060\023\006\003\125\004\012\014\014\104\055\124\162\165\163 +\164\040\107\155\142\110\061\037\060\035\006\003\125\004\003\014 +\026\104\055\124\122\125\123\124\040\122\157\157\164\040\103\101 +\040\063\040\062\060\061\063 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\003\017\335\254 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# Certificate "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +# +# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1,OU=Kamu Sertifikasyon Merkezi - Kamu SM,O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK,L=Gebze - Kocaeli,C=TR +# Serial Number: 1 (0x1) +# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1,OU=Kamu Sertifikasyon Merkezi - Kamu SM,O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK,L=Gebze - Kocaeli,C=TR +# Not Valid Before: Mon Nov 25 08:25:55 2013 +# Not Valid After : Sun Oct 25 08:25:55 2043 +# Fingerprint (SHA-256): 46:ED:C3:68:90:46:D5:3A:45:3F:B3:10:4A:B8:0D:CA:EC:65:8B:26:60:EA:16:29:DD:7E:86:79:90:64:87:16 +# Fingerprint (SHA1): 31:43:64:9B:EC:CE:27:EC:ED:3A:3F:0B:8F:0D:E4:E8:91:DD:EE: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 "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\322\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\030\060\026\006\003\125\004\007\023\017\107\145\142\172\145 +\040\055\040\113\157\143\141\145\154\151\061\102\060\100\006\003 +\125\004\012\023\071\124\165\162\153\151\171\145\040\102\151\154 +\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154\157 +\152\151\153\040\101\162\141\163\164\151\162\155\141\040\113\165 +\162\165\155\165\040\055\040\124\125\102\111\124\101\113\061\055 +\060\053\006\003\125\004\013\023\044\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\040\055\040\113\141\155\165\040\123\115\061\066\060 +\064\006\003\125\004\003\023\055\124\125\102\111\124\101\113\040 +\113\141\155\165\040\123\115\040\123\123\114\040\113\157\153\040 +\123\145\162\164\151\146\151\153\141\163\151\040\055\040\123\165 +\162\165\155\040\061 +END +CKA_ID UTF8 "0" +CKA_ISSUER MULTILINE_OCTAL +\060\201\322\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\030\060\026\006\003\125\004\007\023\017\107\145\142\172\145 +\040\055\040\113\157\143\141\145\154\151\061\102\060\100\006\003 +\125\004\012\023\071\124\165\162\153\151\171\145\040\102\151\154 +\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154\157 +\152\151\153\040\101\162\141\163\164\151\162\155\141\040\113\165 +\162\165\155\165\040\055\040\124\125\102\111\124\101\113\061\055 +\060\053\006\003\125\004\013\023\044\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\040\055\040\113\141\155\165\040\123\115\061\066\060 +\064\006\003\125\004\003\023\055\124\125\102\111\124\101\113\040 +\113\141\155\165\040\123\115\040\123\123\114\040\113\157\153\040 +\123\145\162\164\151\146\151\153\141\163\151\040\055\040\123\165 +\162\165\155\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\004\143\060\202\003\113\240\003\002\001\002\002\001\001 +\060\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060 +\201\322\061\013\060\011\006\003\125\004\006\023\002\124\122\061 +\030\060\026\006\003\125\004\007\023\017\107\145\142\172\145\040 +\055\040\113\157\143\141\145\154\151\061\102\060\100\006\003\125 +\004\012\023\071\124\165\162\153\151\171\145\040\102\151\154\151 +\155\163\145\154\040\166\145\040\124\145\153\156\157\154\157\152 +\151\153\040\101\162\141\163\164\151\162\155\141\040\113\165\162 +\165\155\165\040\055\040\124\125\102\111\124\101\113\061\055\060 +\053\006\003\125\004\013\023\044\113\141\155\165\040\123\145\162 +\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153\145 +\172\151\040\055\040\113\141\155\165\040\123\115\061\066\060\064 +\006\003\125\004\003\023\055\124\125\102\111\124\101\113\040\113 +\141\155\165\040\123\115\040\123\123\114\040\113\157\153\040\123 +\145\162\164\151\146\151\153\141\163\151\040\055\040\123\165\162 +\165\155\040\061\060\036\027\015\061\063\061\061\062\065\060\070 +\062\065\065\065\132\027\015\064\063\061\060\062\065\060\070\062 +\065\065\065\132\060\201\322\061\013\060\011\006\003\125\004\006 +\023\002\124\122\061\030\060\026\006\003\125\004\007\023\017\107 +\145\142\172\145\040\055\040\113\157\143\141\145\154\151\061\102 +\060\100\006\003\125\004\012\023\071\124\165\162\153\151\171\145 +\040\102\151\154\151\155\163\145\154\040\166\145\040\124\145\153 +\156\157\154\157\152\151\153\040\101\162\141\163\164\151\162\155 +\141\040\113\165\162\165\155\165\040\055\040\124\125\102\111\124 +\101\113\061\055\060\053\006\003\125\004\013\023\044\113\141\155 +\165\040\123\145\162\164\151\146\151\153\141\163\171\157\156\040 +\115\145\162\153\145\172\151\040\055\040\113\141\155\165\040\123 +\115\061\066\060\064\006\003\125\004\003\023\055\124\125\102\111 +\124\101\113\040\113\141\155\165\040\123\115\040\123\123\114\040 +\113\157\153\040\123\145\162\164\151\146\151\153\141\163\151\040 +\055\040\123\165\162\165\155\040\061\060\202\001\042\060\015\006 +\011\052\206\110\206\367\015\001\001\001\005\000\003\202\001\017 +\000\060\202\001\012\002\202\001\001\000\257\165\060\063\252\273 +\153\323\231\054\022\067\204\331\215\173\227\200\323\156\347\377 +\233\120\225\076\220\225\126\102\327\031\174\046\204\215\222\372 +\001\035\072\017\342\144\070\267\214\274\350\210\371\213\044\253 +\056\243\365\067\344\100\216\030\045\171\203\165\037\073\377\154 +\250\305\306\126\370\264\355\212\104\243\253\154\114\374\035\320 +\334\357\150\275\317\344\252\316\360\125\367\242\064\324\203\153 +\067\174\034\302\376\265\003\354\127\316\274\264\265\305\355\000 +\017\123\067\052\115\364\117\014\203\373\206\317\313\376\214\116 +\275\207\371\247\213\041\127\234\172\337\003\147\211\054\235\227 +\141\247\020\270\125\220\177\016\055\047\070\164\337\347\375\332 +\116\022\343\115\025\042\002\310\340\340\374\017\255\212\327\311 +\124\120\314\073\017\312\026\200\204\320\121\126\303\216\126\177 +\211\042\063\057\346\205\012\275\245\250\033\066\336\323\334\054 +\155\073\307\023\275\131\043\054\346\345\244\367\330\013\355\352 +\220\100\104\250\225\273\223\325\320\200\064\266\106\170\016\037 +\000\223\106\341\356\351\371\354\117\027\002\003\001\000\001\243 +\102\060\100\060\035\006\003\125\035\016\004\026\004\024\145\077 +\307\212\206\306\074\335\074\124\134\065\370\072\355\122\014\107 +\127\310\060\016\006\003\125\035\017\001\001\377\004\004\003\002 +\001\006\060\017\006\003\125\035\023\001\001\377\004\005\060\003 +\001\001\377\060\015\006\011\052\206\110\206\367\015\001\001\013 +\005\000\003\202\001\001\000\052\077\341\361\062\216\256\341\230 +\134\113\136\317\153\036\152\011\322\042\251\022\307\136\127\175 +\163\126\144\200\204\172\223\344\011\271\020\315\237\052\047\341 +\000\167\276\110\310\065\250\201\237\344\270\054\311\177\016\260 +\322\113\067\135\352\271\325\013\136\064\275\364\163\051\303\355 +\046\025\234\176\010\123\212\130\215\320\113\050\337\301\263\337 +\040\363\371\343\343\072\337\314\234\224\330\116\117\303\153\027 +\267\367\162\350\255\146\063\265\045\123\253\340\370\114\251\235 +\375\362\015\272\256\271\331\252\306\153\371\223\273\256\253\270 +\227\074\003\032\272\103\306\226\271\105\162\070\263\247\241\226 +\075\221\173\176\300\041\123\114\207\355\362\013\124\225\121\223 +\325\042\245\015\212\361\223\016\076\124\016\260\330\311\116\334 +\362\061\062\126\352\144\371\352\265\235\026\146\102\162\363\177 +\323\261\061\103\374\244\216\027\361\155\043\253\224\146\370\255 +\373\017\010\156\046\055\177\027\007\011\262\214\373\120\300\237 +\226\215\317\266\375\000\235\132\024\232\277\002\104\365\301\302 +\237\042\136\242\017\241\343 +END + +# Trust for "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1,OU=Kamu Sertifikasyon Merkezi - Kamu SM,O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK,L=Gebze - Kocaeli,C=TR +# Serial Number: 1 (0x1) +# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1,OU=Kamu Sertifikasyon Merkezi - Kamu SM,O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK,L=Gebze - Kocaeli,C=TR +# Not Valid Before: Mon Nov 25 08:25:55 2013 +# Not Valid After : Sun Oct 25 08:25:55 2043 +# Fingerprint (SHA-256): 46:ED:C3:68:90:46:D5:3A:45:3F:B3:10:4A:B8:0D:CA:EC:65:8B:26:60:EA:16:29:DD:7E:86:79:90:64:87:16 +# Fingerprint (SHA1): 31:43:64:9B:EC:CE:27:EC:ED:3A:3F:0B:8F:0D:E4:E8:91:DD:EE:CA +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\061\103\144\233\354\316\047\354\355\072\077\013\217\015\344\350 +\221\335\356\312 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\334\000\201\334\151\057\076\057\260\073\366\075\132\221\216\111 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\322\061\013\060\011\006\003\125\004\006\023\002\124\122 +\061\030\060\026\006\003\125\004\007\023\017\107\145\142\172\145 +\040\055\040\113\157\143\141\145\154\151\061\102\060\100\006\003 +\125\004\012\023\071\124\165\162\153\151\171\145\040\102\151\154 +\151\155\163\145\154\040\166\145\040\124\145\153\156\157\154\157 +\152\151\153\040\101\162\141\163\164\151\162\155\141\040\113\165 +\162\165\155\165\040\055\040\124\125\102\111\124\101\113\061\055 +\060\053\006\003\125\004\013\023\044\113\141\155\165\040\123\145 +\162\164\151\146\151\153\141\163\171\157\156\040\115\145\162\153 +\145\172\151\040\055\040\113\141\155\165\040\123\115\061\066\060 +\064\006\003\125\004\003\023\055\124\125\102\111\124\101\113\040 +\113\141\155\165\040\123\115\040\123\123\114\040\113\157\153\040 +\123\145\162\164\151\146\151\153\141\163\151\040\055\040\123\165 +\162\165\155\040\061 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\001\001 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE diff --git a/security/nss/lib/ckfw/builtins/ckbiver.c b/security/nss/lib/ckfw/builtins/ckbiver.c new file mode 100644 index 000000000..208066ca3 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/ckbiver.c @@ -0,0 +1,18 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* Library identity and versioning */ + +#include "nssckbi.h" + +#if defined(DEBUG) +#define _DEBUG_STRING " (debug)" +#else +#define _DEBUG_STRING "" +#endif + +/* + * Version information + */ +const char __nss_builtins_version[] = "Version: NSS Builtin Trusted Root CAs " NSS_BUILTINS_LIBRARY_VERSION _DEBUG_STRING; diff --git a/security/nss/lib/ckfw/builtins/config.mk b/security/nss/lib/ckfw/builtins/config.mk new file mode 100644 index 000000000..6bd62f155 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/config.mk @@ -0,0 +1,38 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# +# Override TARGETS variable so that only shared libraries +# are specifed as dependencies within rules.mk. +# + +TARGETS = $(SHARED_LIBRARY) +LIBRARY = +IMPORT_LIBRARY = +PROGRAM = + +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 + DEFINES += -DNSSDEBUG +endif + +# Needed for compilation of $(OBJDIR)/certdata.c +INCLUDES += -I. + +# +# To create a loadable module on Darwin, we must use -bundle. +# +ifeq ($(OS_TARGET),Darwin) +DSO_LDOPTS = -bundle +endif + +ifdef USE_GCOV +DSO_LDOPTS += --coverage +endif diff --git a/security/nss/lib/ckfw/builtins/constants.c b/security/nss/lib/ckfw/builtins/constants.c new file mode 100644 index 000000000..f5d267b3d --- /dev/null +++ b/security/nss/lib/ckfw/builtins/constants.c @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * builtins/constants.c + * + * Identification and other constants, all collected here in one place. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKBI_H +#include "nssckbi.h" +#endif /* NSSCKBI_H */ + +const CK_VERSION + nss_builtins_CryptokiVersion = { + NSS_BUILTINS_CRYPTOKI_VERSION_MAJOR, + NSS_BUILTINS_CRYPTOKI_VERSION_MINOR + }; + +const CK_VERSION + nss_builtins_LibraryVersion = { + NSS_BUILTINS_LIBRARY_VERSION_MAJOR, + NSS_BUILTINS_LIBRARY_VERSION_MINOR + }; + +const CK_VERSION + nss_builtins_HardwareVersion = { + NSS_BUILTINS_HARDWARE_VERSION_MAJOR, + NSS_BUILTINS_HARDWARE_VERSION_MINOR + }; + +const CK_VERSION + nss_builtins_FirmwareVersion = { + NSS_BUILTINS_FIRMWARE_VERSION_MAJOR, + NSS_BUILTINS_FIRMWARE_VERSION_MINOR + }; + +const NSSUTF8 + nss_builtins_ManufacturerID[] = { "Mozilla Foundation" }; + +const NSSUTF8 + nss_builtins_LibraryDescription[] = { "NSS Builtin Object Cryptoki Module" }; + +const NSSUTF8 + nss_builtins_SlotDescription[] = { "NSS Builtin Objects" }; + +const NSSUTF8 + nss_builtins_TokenLabel[] = { "Builtin Object Token" }; + +const NSSUTF8 + nss_builtins_TokenModel[] = { "1" }; + +/* should this be e.g. the certdata.txt RCS revision number? */ +const NSSUTF8 + nss_builtins_TokenSerialNumber[] = { "1" }; diff --git a/security/nss/lib/ckfw/builtins/exports.gyp b/security/nss/lib/ckfw/builtins/exports.gyp new file mode 100644 index 000000000..6a5c38fb8 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/exports.gyp @@ -0,0 +1,25 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +{ + 'includes': [ + '../../../coreconf/config.gypi' + ], + 'targets': [ + { + 'target_name': 'lib_ckfw_builtins_exports', + 'type': 'none', + 'copies': [ + { + 'files': [ + 'nssckbi.h' + ], + 'destination': '<(nss_public_dist_dir)/<(module)' + } + ] + } + ], + 'variables': { + 'module': 'nss' + } +} diff --git a/security/nss/lib/ckfw/builtins/manifest.mn b/security/nss/lib/ckfw/builtins/manifest.mn new file mode 100644 index 000000000..7ac64bf0d --- /dev/null +++ b/security/nss/lib/ckfw/builtins/manifest.mn @@ -0,0 +1,30 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +CORE_DEPTH = ../../.. + +MODULE = nss +MAPFILE = $(OBJDIR)/nssckbi.def + +EXPORTS = \ + nssckbi.h \ + $(NULL) + +CSRCS = \ + anchor.c \ + constants.c \ + bfind.c \ + binst.c \ + bobject.c \ + bsession.c \ + bslot.c \ + btoken.c \ + certdata.c \ + ckbiver.c \ + $(NULL) + +REQUIRES = nspr + +LIBRARY_NAME = nssckbi diff --git a/security/nss/lib/ckfw/builtins/nssckbi.def b/security/nss/lib/ckfw/builtins/nssckbi.def new file mode 100644 index 000000000..8692d4cb6 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/nssckbi.def @@ -0,0 +1,26 @@ +;+# +;+# This Source Code Form is subject to the terms of the Mozilla Public +;+# License, v. 2.0. If a copy of the MPL was not distributed with this +;+# file, You can obtain one at http://mozilla.org/MPL/2.0/. +;+# +;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS +;+# 1. For all unix platforms, the string ";-" means "remove this line" +;+# 2. For all unix platforms, the string " DATA " will be removed from any +;+# line on which it occurs. +;+# 3. Lines containing ";+" will have ";+" removed on SUN and LINUX. +;+# On AIX, lines containing ";+" will be removed. +;+# 4. For all unix platforms, the string ";;" will thave the ";;" removed. +;+# 5. For all unix platforms, after the above processing has taken place, +;+# all characters after the first ";" on the line will be removed. +;+# And for AIX, the first ";" will also be removed. +;+# This file is passed directly to windows. Since ';' is a comment, all UNIX +;+# directives are hidden behind ";", ";+", and ";-" +;+ +;+NSS_3.1 { # NSS 3.1 release +;+ global: +LIBRARY nssckbi ;- +EXPORTS ;- +C_GetFunctionList; +;+ local: +;+*; +;+}; diff --git a/security/nss/lib/ckfw/builtins/nssckbi.h b/security/nss/lib/ckfw/builtins/nssckbi.h new file mode 100644 index 000000000..6e7aa2b61 --- /dev/null +++ b/security/nss/lib/ckfw/builtins/nssckbi.h @@ -0,0 +1,61 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSCKBI_H +#define NSSCKBI_H + +/* + * NSS BUILTINS Version numbers. + * + * These are the version numbers for the builtins module packaged with + * this release on NSS. To determine the version numbers of the builtin + * module you are using, use the appropriate PKCS #11 calls. + * + * 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 20 + +/* These version numbers detail the changes + * to the list of trusted certificates. + * + * The NSS_BUILTINS_LIBRARY_VERSION_MINOR macro needs to be bumped + * whenever we change the list of trusted certificates. + * + * Please use the following rules when increasing the version number: + * + * - starting with version 2.14, NSS_BUILTINS_LIBRARY_VERSION_MINOR + * must always be an EVEN number (e.g. 16, 18, 20 etc.) + * + * - whenever possible, if older branches require a modification to the + * list, these changes should be made on the main line of development (trunk), + * and the older branches should update to the most recent list. + * + * - ODD minor version numbers are reserved to indicate a snapshot that has + * deviated from the main line of development, e.g. if it was necessary + * to modify the list on a stable branch. + * Once the version has been changed to an odd number (e.g. 2.13) on a branch, + * it should remain unchanged on that branch, even if further changes are + * made on that branch. + * + * 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. + * It's recommend to switch back to 0 after having reached version 98/99. + */ +#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 2 +#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 14 +#define NSS_BUILTINS_LIBRARY_VERSION "2.14" + +/* 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 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 + +#endif /* NSSCKBI_H */ diff --git a/security/nss/lib/ckfw/builtins/nssckbi.rc b/security/nss/lib/ckfw/builtins/nssckbi.rc new file mode 100644 index 000000000..315149beb --- /dev/null +++ b/security/nss/lib/ckfw/builtins/nssckbi.rc @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "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", "Mozilla Foundation\0" + VALUE "FileDescription", MY_FILEDESCRIPTION MY_DEBUG_STR "\0" + VALUE "FileVersion", NSS_BUILTINS_LIBRARY_VERSION "\0" + VALUE "InternalName", MY_INTERNAL_NAME "\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/capi/Makefile b/security/nss/lib/ckfw/capi/Makefile new file mode 100644 index 000000000..81780d2f3 --- /dev/null +++ b/security/nss/lib/ckfw/capi/Makefile @@ -0,0 +1,75 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include manifest.mn +include $(CORE_DEPTH)/coreconf/config.mk +include config.mk + +EXTRA_LIBS = \ + $(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \ + $(NULL) + +# can't do this in manifest.mn because OS_TARGET isn't defined there. +ifeq (,$(filter-out WIN%,$(OS_TARGET))) + +ifdef NS_USE_GCC +EXTRA_LIBS += \ + -L$(NSPR_LIB_DIR) \ + -lplc4 \ + -lplds4 \ + -lnspr4 \ + -lcrypt32 \ + -ladvapi32 \ + -lrpcrt4 \ + $(NULL) +else +EXTRA_SHARED_LIBS += \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.lib \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.lib \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4.lib \ + crypt32.lib \ + advapi32.lib \ + rpcrt4.lib \ + $(NULL) +endif # NS_USE_GCC +else + +EXTRA_LIBS += \ + -L$(NSPR_LIB_DIR) \ + -lplc4 \ + -lplds4 \ + -lnspr4 \ + $(NULL) +endif + + +include $(CORE_DEPTH)/coreconf/rules.mk + +# Generate certdata.c. +generate: + $(PERL) certdata.perl < certdata.txt + +# This'll need some help from a build person. + + +ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.1) +DSO_LDOPTS = -bM:SRE -bh:4 -bnoentry +EXTRA_DSO_LDOPTS = -lc +MKSHLIB = xlC $(DSO_LDOPTS) + +$(SHARED_LIBRARY): $(OBJS) + @$(MAKE_OBJDIR) + rm -f $@ + $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DSO_LDOPTS) + chmod +x $@ + +endif + +ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.2) +LD += -G +endif + + diff --git a/security/nss/lib/ckfw/capi/README b/security/nss/lib/ckfw/capi/README new file mode 100644 index 000000000..9fc5720a9 --- /dev/null +++ b/security/nss/lib/ckfw/capi/README @@ -0,0 +1,7 @@ +This Cryptoki module provides acces to certs and keys stored in +Microsofts CAPI certificate store. + +It does not import or export CA Root trust from the CAPI. +It does not import or export CRLs from the CAPI. +It does not handle S/MIME objects (pkcs #7 in capi terms?). +It does not yet handle it's own PIN. (CAPI does all the pin prompting). diff --git a/security/nss/lib/ckfw/capi/anchor.c b/security/nss/lib/ckfw/capi/anchor.c new file mode 100644 index 000000000..2d1523e4c --- /dev/null +++ b/security/nss/lib/ckfw/capi/anchor.c @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * capi/canchor.c + * + * This file "anchors" the actual cryptoki entry points in this module's + * shared library, which is required for dynamic loading. See the + * comments in nssck.api for more information. + */ + +#include "ckcapi.h" + +#define MODULE_NAME ckcapi +#define INSTANCE_NAME (NSSCKMDInstance *)&nss_ckcapi_mdInstance +#include "nssck.api" diff --git a/security/nss/lib/ckfw/capi/cfind.c b/security/nss/lib/ckfw/capi/cfind.c new file mode 100644 index 000000000..9ea7fca61 --- /dev/null +++ b/security/nss/lib/ckfw/capi/cfind.c @@ -0,0 +1,562 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKCAPI_H +#include "ckcapi.h" +#endif /* CKCAPI_H */ + +/* + * ckcapi/cfind.c + * + * This file implements the NSSCKMDFindObjects object for the + * "capi" cryptoki module. + */ + +struct ckcapiFOStr { + NSSArena *arena; + CK_ULONG n; + CK_ULONG i; + ckcapiInternalObject **objs; +}; + +static void +ckcapi_mdFindObjects_Final( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + struct ckcapiFOStr *fo = (struct ckcapiFOStr *)mdFindObjects->etc; + NSSArena *arena = fo->arena; + PRUint32 i; + + /* walk down an free the unused 'objs' */ + for (i = fo->i; i < fo->n; i++) { + nss_ckcapi_DestroyInternalObject(fo->objs[i]); + } + + nss_ZFreeIf(fo->objs); + nss_ZFreeIf(fo); + nss_ZFreeIf(mdFindObjects); + if ((NSSArena *)NULL != arena) { + NSSArena_Destroy(arena); + } + + return; +} + +static NSSCKMDObject * +ckcapi_mdFindObjects_Next( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + struct ckcapiFOStr *fo = (struct ckcapiFOStr *)mdFindObjects->etc; + ckcapiInternalObject *io; + + if (fo->i == fo->n) { + *pError = CKR_OK; + return (NSSCKMDObject *)NULL; + } + + io = fo->objs[fo->i]; + fo->i++; + + return nss_ckcapi_CreateMDObject(arena, io, pError); +} + +static CK_BBOOL +ckcapi_attrmatch( + CK_ATTRIBUTE_PTR a, + ckcapiInternalObject *o) +{ + PRBool prb; + const NSSItem *b; + + b = nss_ckcapi_FetchAttribute(o, a->type); + if (b == NULL) { + return CK_FALSE; + } + + if (a->ulValueLen != b->size) { + /* match a decoded serial number */ + if ((a->type == CKA_SERIAL_NUMBER) && (a->ulValueLen < b->size)) { + unsigned int len; + unsigned char *data; + + data = nss_ckcapi_DERUnwrap(b->data, b->size, &len, NULL); + if ((len == a->ulValueLen) && + nsslibc_memequal(a->pValue, data, len, (PRStatus *)NULL)) { + return CK_TRUE; + } + } + return CK_FALSE; + } + + prb = nsslibc_memequal(a->pValue, b->data, b->size, (PRStatus *)NULL); + + if (PR_TRUE == prb) { + return CK_TRUE; + } else { + return CK_FALSE; + } +} + +static CK_BBOOL +ckcapi_match( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckcapiInternalObject *o) +{ + CK_ULONG i; + + for (i = 0; i < ulAttributeCount; i++) { + if (CK_FALSE == ckcapi_attrmatch(&pTemplate[i], o)) { + return CK_FALSE; + } + } + + /* Every attribute passed */ + return CK_TRUE; +} + +#define CKAPI_ITEM_CHUNK 20 + +#define PUT_Object(obj, err) \ + { \ + if (count >= size) { \ + *listp = *listp ? nss_ZREALLOCARRAY(*listp, ckcapiInternalObject *, \ + (size + \ + CKAPI_ITEM_CHUNK)) \ + : nss_ZNEWARRAY(NULL, ckcapiInternalObject *, \ + (size + \ + CKAPI_ITEM_CHUNK)); \ + if ((ckcapiInternalObject **)NULL == *listp) { \ + err = CKR_HOST_MEMORY; \ + goto loser; \ + } \ + size += CKAPI_ITEM_CHUNK; \ + } \ + (*listp)[count] = (obj); \ + count++; \ + } + +/* + * pass parameters back through the callback. + */ +typedef struct BareCollectParamsStr { + CK_OBJECT_CLASS objClass; + CK_ATTRIBUTE_PTR pTemplate; + CK_ULONG ulAttributeCount; + ckcapiInternalObject ***listp; + PRUint32 size; + PRUint32 count; +} BareCollectParams; + +/* collect_bare's callback. Called for each object that + * supposedly has a PROVINDER_INFO property */ +static BOOL WINAPI +doBareCollect( + const CRYPT_HASH_BLOB *msKeyID, + DWORD flags, + void *reserved, + void *args, + DWORD cProp, + DWORD *propID, + void **propData, + DWORD *propSize) +{ + BareCollectParams *bcp = (BareCollectParams *)args; + PRUint32 size = bcp->size; + PRUint32 count = bcp->count; + ckcapiInternalObject ***listp = bcp->listp; + ckcapiInternalObject *io = NULL; + DWORD i; + CRYPT_KEY_PROV_INFO *keyProvInfo = NULL; + void *idData; + CK_RV error; + + /* make sure there is a Key Provider Info property */ + for (i = 0; i < cProp; i++) { + if (CERT_KEY_PROV_INFO_PROP_ID == propID[i]) { + keyProvInfo = (CRYPT_KEY_PROV_INFO *)propData[i]; + break; + } + } + if ((CRYPT_KEY_PROV_INFO *)NULL == keyProvInfo) { + return 1; + } + + /* copy the key ID */ + idData = nss_ZNEWARRAY(NULL, char, msKeyID->cbData); + if ((void *)NULL == idData) { + goto loser; + } + nsslibc_memcpy(idData, msKeyID->pbData, msKeyID->cbData); + + /* build a bare internal object */ + io = nss_ZNEW(NULL, ckcapiInternalObject); + if ((ckcapiInternalObject *)NULL == io) { + goto loser; + } + io->type = ckcapiBareKey; + io->objClass = bcp->objClass; + io->u.key.provInfo = *keyProvInfo; + io->u.key.provInfo.pwszContainerName = + nss_ckcapi_WideDup(keyProvInfo->pwszContainerName); + io->u.key.provInfo.pwszProvName = + nss_ckcapi_WideDup(keyProvInfo->pwszProvName); + io->u.key.provName = nss_ckcapi_WideToUTF8(keyProvInfo->pwszProvName); + io->u.key.containerName = + nss_ckcapi_WideToUTF8(keyProvInfo->pwszContainerName); + io->u.key.hProv = 0; + io->idData = idData; + io->id.data = idData; + io->id.size = msKeyID->cbData; + idData = NULL; + + /* see if it matches */ + if (CK_FALSE == ckcapi_match(bcp->pTemplate, bcp->ulAttributeCount, io)) { + goto loser; + } + PUT_Object(io, error); + bcp->size = size; + bcp->count = count; + return 1; + +loser: + if (io) { + nss_ckcapi_DestroyInternalObject(io); + } + nss_ZFreeIf(idData); + return 1; +} + +/* + * collect the bare keys running around + */ +static PRUint32 +collect_bare( + CK_OBJECT_CLASS objClass, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckcapiInternalObject ***listp, + PRUint32 *sizep, + PRUint32 count, + CK_RV *pError) +{ + BOOL rc; + BareCollectParams bareCollectParams; + + bareCollectParams.objClass = objClass; + bareCollectParams.pTemplate = pTemplate; + bareCollectParams.ulAttributeCount = ulAttributeCount; + bareCollectParams.listp = listp; + bareCollectParams.size = *sizep; + bareCollectParams.count = count; + + rc = CryptEnumKeyIdentifierProperties(NULL, CERT_KEY_PROV_INFO_PROP_ID, 0, + NULL, NULL, &bareCollectParams, doBareCollect); + + *sizep = bareCollectParams.size; + return bareCollectParams.count; +} + +/* find all the certs that represent the appropriate object (cert, priv key, or + * pub key) in the cert store. + */ +static PRUint32 +collect_class( + CK_OBJECT_CLASS objClass, + LPCSTR storeStr, + PRBool hasID, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckcapiInternalObject ***listp, + PRUint32 *sizep, + PRUint32 count, + CK_RV *pError) +{ + PRUint32 size = *sizep; + ckcapiInternalObject *next = NULL; + HCERTSTORE hStore; + PCCERT_CONTEXT certContext = NULL; + PRBool isKey = + (objClass == CKO_PUBLIC_KEY) | (objClass == CKO_PRIVATE_KEY); + + hStore = CertOpenSystemStore((HCRYPTPROV)NULL, storeStr); + if (NULL == hStore) { + return count; /* none found does not imply an error */ + } + + /* FUTURE: use CertFindCertificateInStore to filter better -- so we don't + * have to enumerate all the certificates */ + while ((PCERT_CONTEXT)NULL != + (certContext = CertEnumCertificatesInStore(hStore, certContext))) { + /* first filter out non user certs if we are looking for keys */ + if (isKey) { + /* make sure there is a Key Provider Info property */ + CRYPT_KEY_PROV_INFO *keyProvInfo; + DWORD size = 0; + BOOL rv; + rv = CertGetCertificateContextProperty(certContext, + CERT_KEY_PROV_INFO_PROP_ID, NULL, &size); + if (!rv) { + int reason = GetLastError(); + /* we only care if it exists, we don't really need to fetch it yet */ + if (reason == CRYPT_E_NOT_FOUND) { + continue; + } + } + /* filter out the non-microsoft providers */ + keyProvInfo = (CRYPT_KEY_PROV_INFO *)nss_ZAlloc(NULL, size); + if (keyProvInfo) { + rv = CertGetCertificateContextProperty(certContext, + CERT_KEY_PROV_INFO_PROP_ID, keyProvInfo, &size); + if (rv) { + char *provName = + nss_ckcapi_WideToUTF8(keyProvInfo->pwszProvName); + nss_ZFreeIf(keyProvInfo); + + if (provName && + (strncmp(provName, "Microsoft", sizeof("Microsoft") - + 1) != 0)) { + continue; + } + } else { + int reason = + GetLastError(); + /* we only care if it exists, we don't really need to fetch it yet */ + nss_ZFreeIf(keyProvInfo); + if (reason == + CRYPT_E_NOT_FOUND) { + continue; + } + } + } + } + + if ((ckcapiInternalObject *)NULL == next) { + next = nss_ZNEW(NULL, ckcapiInternalObject); + if ((ckcapiInternalObject *)NULL == next) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + } + next->type = ckcapiCert; + next->objClass = objClass; + next->u.cert.certContext = certContext; + next->u.cert.hasID = hasID; + next->u.cert.certStore = storeStr; + if (CK_TRUE == ckcapi_match(pTemplate, ulAttributeCount, next)) { + /* clear cached values that may be dependent on our old certContext */ + memset(&next->u.cert, 0, sizeof(next->u.cert)); + /* get a 'permanent' context */ + next->u.cert.certContext = CertDuplicateCertificateContext(certContext); + next->objClass = objClass; + next->u.cert.certContext = certContext; + next->u.cert.hasID = hasID; + next->u.cert.certStore = storeStr; + PUT_Object(next, *pError); + next = NULL; /* need to allocate a new one now */ + } else { + /* don't cache the values we just loaded */ + memset(&next->u.cert, 0, sizeof(next->u.cert)); + } + } +loser: + CertCloseStore(hStore, 0); + nss_ZFreeIf(next); + *sizep = size; + return count; +} + +NSS_IMPLEMENT PRUint32 +nss_ckcapi_collect_all_certs( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckcapiInternalObject ***listp, + PRUint32 *sizep, + PRUint32 count, + CK_RV *pError) +{ + count = collect_class(CKO_CERTIFICATE, "My", PR_TRUE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); + /*count = collect_class(CKO_CERTIFICATE, "AddressBook", PR_FALSE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); */ + count = collect_class(CKO_CERTIFICATE, "CA", PR_FALSE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); + count = collect_class(CKO_CERTIFICATE, "Root", PR_FALSE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); + count = collect_class(CKO_CERTIFICATE, "Trust", PR_FALSE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); + count = collect_class(CKO_CERTIFICATE, "TrustedPeople", PR_FALSE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); + count = collect_class(CKO_CERTIFICATE, "AuthRoot", PR_FALSE, pTemplate, + ulAttributeCount, listp, sizep, count, pError); + return count; +} + +CK_OBJECT_CLASS +ckcapi_GetObjectClass(CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount) +{ + CK_ULONG i; + + for (i = 0; i < ulAttributeCount; i++) { + if (pTemplate[i].type == CKA_CLASS) { + return *(CK_OBJECT_CLASS *)pTemplate[i].pValue; + } + } + /* need to return a value that says 'fetch them all' */ + return CK_INVALID_HANDLE; +} + +static PRUint32 +collect_objects( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckcapiInternalObject ***listp, + CK_RV *pError) +{ + PRUint32 i; + PRUint32 count = 0; + PRUint32 size = 0; + CK_OBJECT_CLASS objClass; + + /* + * first handle the static build in objects (if any) + */ + for (i = 0; i < nss_ckcapi_nObjects; i++) { + ckcapiInternalObject *o = (ckcapiInternalObject *)&nss_ckcapi_data[i]; + + if (CK_TRUE == ckcapi_match(pTemplate, ulAttributeCount, o)) { + PUT_Object(o, *pError); + } + } + + /* + * now handle the various object types + */ + objClass = ckcapi_GetObjectClass(pTemplate, ulAttributeCount); + *pError = CKR_OK; + switch (objClass) { + case CKO_CERTIFICATE: + count = nss_ckcapi_collect_all_certs(pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + case CKO_PUBLIC_KEY: + count = collect_class(objClass, "My", PR_TRUE, pTemplate, + ulAttributeCount, listp, &size, count, pError); + count = collect_bare(objClass, pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + case CKO_PRIVATE_KEY: + count = collect_class(objClass, "My", PR_TRUE, pTemplate, + ulAttributeCount, listp, &size, count, pError); + count = collect_bare(objClass, pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + /* all of them */ + case CK_INVALID_HANDLE: + count = nss_ckcapi_collect_all_certs(pTemplate, ulAttributeCount, listp, + &size, count, pError); + count = collect_class(CKO_PUBLIC_KEY, "My", PR_TRUE, pTemplate, + ulAttributeCount, listp, &size, count, pError); + count = collect_bare(CKO_PUBLIC_KEY, pTemplate, ulAttributeCount, listp, + &size, count, pError); + count = collect_class(CKO_PRIVATE_KEY, "My", PR_TRUE, pTemplate, + ulAttributeCount, listp, &size, count, pError); + count = collect_bare(CKO_PRIVATE_KEY, pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + default: + goto done; /* no other object types we understand in this module */ + } + if (CKR_OK != *pError) { + goto loser; + } + +done: + return count; +loser: + nss_ZFreeIf(*listp); + return 0; +} + +NSS_IMPLEMENT NSSCKMDFindObjects * +nss_ckcapi_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + /* This could be made more efficient. I'm rather rushed. */ + NSSArena *arena; + NSSCKMDFindObjects *rv = (NSSCKMDFindObjects *)NULL; + struct ckcapiFOStr *fo = (struct ckcapiFOStr *)NULL; + ckcapiInternalObject **temp = (ckcapiInternalObject **)NULL; + + arena = NSSArena_Create(); + if ((NSSArena *)NULL == arena) { + goto loser; + } + + rv = nss_ZNEW(arena, NSSCKMDFindObjects); + if ((NSSCKMDFindObjects *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fo = nss_ZNEW(arena, struct ckcapiFOStr); + if ((struct ckcapiFOStr *)NULL == fo) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fo->arena = arena; + /* fo->n and fo->i are already zero */ + + rv->etc = (void *)fo; + rv->Final = ckcapi_mdFindObjects_Final; + rv->Next = ckcapi_mdFindObjects_Next; + rv->null = (void *)NULL; + + fo->n = collect_objects(pTemplate, ulAttributeCount, &temp, pError); + if (*pError != CKR_OK) { + goto loser; + } + + fo->objs = nss_ZNEWARRAY(arena, ckcapiInternalObject *, fo->n); + if ((ckcapiInternalObject **)NULL == fo->objs) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + (void)nsslibc_memcpy(fo->objs, temp, sizeof(ckcapiInternalObject *) * fo->n); + nss_ZFreeIf(temp); + temp = (ckcapiInternalObject **)NULL; + + return rv; + +loser: + nss_ZFreeIf(temp); + nss_ZFreeIf(fo); + nss_ZFreeIf(rv); + if ((NSSArena *)NULL != arena) { + NSSArena_Destroy(arena); + } + return (NSSCKMDFindObjects *)NULL; +} diff --git a/security/nss/lib/ckfw/capi/cinst.c b/security/nss/lib/ckfw/capi/cinst.c new file mode 100644 index 000000000..937c289a1 --- /dev/null +++ b/security/nss/lib/ckfw/capi/cinst.c @@ -0,0 +1,97 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckcapi.h" + +/* + * ckcapi/cinstance.c + * + * This file implements the NSSCKMDInstance object for the + * "capi" cryptoki module. + */ + +/* + * NSSCKMDInstance methods + */ + +static CK_ULONG +ckcapi_mdInstance_GetNSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (CK_ULONG)1; +} + +static CK_VERSION +ckcapi_mdInstance_GetCryptokiVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckcapi_CryptokiVersion; +} + +static NSSUTF8 * +ckcapi_mdInstance_GetManufacturerID( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_ManufacturerID; +} + +static NSSUTF8 * +ckcapi_mdInstance_GetLibraryDescription( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_LibraryDescription; +} + +static CK_VERSION +ckcapi_mdInstance_GetLibraryVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckcapi_LibraryVersion; +} + +static CK_RV +ckcapi_mdInstance_GetSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *slots[]) +{ + slots[0] = (NSSCKMDSlot *)&nss_ckcapi_mdSlot; + return CKR_OK; +} + +static CK_BBOOL +ckcapi_mdInstance_ModuleHandlesSessionObjects( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + /* we don't want to allow any session object creation, at least + * until we can investigate whether or not we can use those objects + */ + return CK_TRUE; +} + +NSS_IMPLEMENT_DATA const NSSCKMDInstance + nss_ckcapi_mdInstance = { + (void *)NULL, /* etc */ + NULL, /* Initialize */ + NULL, /* Finalize */ + ckcapi_mdInstance_GetNSlots, + ckcapi_mdInstance_GetCryptokiVersion, + ckcapi_mdInstance_GetManufacturerID, + ckcapi_mdInstance_GetLibraryDescription, + ckcapi_mdInstance_GetLibraryVersion, + ckcapi_mdInstance_ModuleHandlesSessionObjects, + /*NULL, /* HandleSessionObjects */ + ckcapi_mdInstance_GetSlots, + NULL, /* WaitForSlotEvent */ + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/capi/ckcapi.h b/security/nss/lib/ckfw/capi/ckcapi.h new file mode 100644 index 000000000..2c4b12aac --- /dev/null +++ b/security/nss/lib/ckfw/capi/ckcapi.h @@ -0,0 +1,242 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKCAPI_H +#define CKCAPI_H 1 + +#include "nssckmdt.h" +#include "nssckfw.h" + +/* + * I'm including this for access to the arena functions. + * Looks like we should publish that API. + */ +#ifndef BASE_H +#include "base.h" +#endif /* BASE_H */ + +/* + * This is where the Netscape extensions live, at least for now. + */ +#ifndef CKT_H +#include "ckt.h" +#endif /* CKT_H */ + +#include "wtypes.h" +#include "wincrypt.h" + +/* + * statically defined raw objects. Allows us to data description objects + * to this PKCS #11 module. + */ +struct ckcapiRawObjectStr { + CK_ULONG n; + const CK_ATTRIBUTE_TYPE *types; + const NSSItem *items; +}; +typedef struct ckcapiRawObjectStr ckcapiRawObject; + +/* + * common values needed for both bare keys and cert referenced keys. + */ +struct ckcapiKeyParamsStr { + NSSItem modulus; + NSSItem exponent; + NSSItem privateExponent; + NSSItem prime1; + NSSItem prime2; + NSSItem exponent1; + NSSItem exponent2; + NSSItem coefficient; + unsigned char publicExponentData[sizeof(CK_ULONG)]; + void *privateKey; + void *pubKey; +}; +typedef struct ckcapiKeyParamsStr ckcapiKeyParams; + +/* + * Key objects. Handles bare keys which do not yet have certs associated + * with them. These are usually short lived, but may exist for several days + * while the CA is issuing the certificate. + */ +struct ckcapiKeyObjectStr { + CRYPT_KEY_PROV_INFO provInfo; + char *provName; + char *containerName; + HCRYPTPROV hProv; + ckcapiKeyParams key; +}; +typedef struct ckcapiKeyObjectStr ckcapiKeyObject; + +/* + * Certificate and certificate referenced keys. + */ +struct ckcapiCertObjectStr { + PCCERT_CONTEXT certContext; + PRBool hasID; + const char *certStore; + NSSItem label; + NSSItem subject; + NSSItem issuer; + NSSItem serial; + NSSItem derCert; + ckcapiKeyParams key; + unsigned char *labelData; + /* static data: to do, make this dynamic like labelData */ + unsigned char derSerial[128]; +}; +typedef struct ckcapiCertObjectStr ckcapiCertObject; + +typedef enum { + ckcapiRaw, + ckcapiCert, + ckcapiBareKey +} ckcapiObjectType; + +/* + * all the various types of objects are abstracted away in cobject and + * cfind as ckcapiInternalObjects. + */ +struct ckcapiInternalObjectStr { + ckcapiObjectType type; + union { + ckcapiRawObject raw; + ckcapiCertObject cert; + ckcapiKeyObject key; + } u; + CK_OBJECT_CLASS objClass; + NSSItem hashKey; + NSSItem id; + void *idData; + unsigned char hashKeyData[128]; + NSSCKMDObject mdObject; +}; +typedef struct ckcapiInternalObjectStr ckcapiInternalObject; + +/* our raw object data array */ +NSS_EXTERN_DATA ckcapiInternalObject nss_ckcapi_data[]; +NSS_EXTERN_DATA const PRUint32 nss_ckcapi_nObjects; + +NSS_EXTERN_DATA const CK_VERSION nss_ckcapi_CryptokiVersion; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckcapi_ManufacturerID; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckcapi_LibraryDescription; +NSS_EXTERN_DATA const CK_VERSION nss_ckcapi_LibraryVersion; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckcapi_SlotDescription; +NSS_EXTERN_DATA const CK_VERSION nss_ckcapi_HardwareVersion; +NSS_EXTERN_DATA const CK_VERSION nss_ckcapi_FirmwareVersion; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckcapi_TokenLabel; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckcapi_TokenModel; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckcapi_TokenSerialNumber; + +NSS_EXTERN_DATA const NSSCKMDInstance nss_ckcapi_mdInstance; +NSS_EXTERN_DATA const NSSCKMDSlot nss_ckcapi_mdSlot; +NSS_EXTERN_DATA const NSSCKMDToken nss_ckcapi_mdToken; +NSS_EXTERN_DATA const NSSCKMDMechanism nss_ckcapi_mdMechanismRSA; + +NSS_EXTERN NSSCKMDSession * +nss_ckcapi_CreateSession( + NSSCKFWSession *fwSession, + CK_RV *pError); + +NSS_EXTERN NSSCKMDFindObjects * +nss_ckcapi_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * Object Utilities + */ +NSS_EXTERN NSSCKMDObject * +nss_ckcapi_CreateMDObject( + NSSArena *arena, + ckcapiInternalObject *io, + CK_RV *pError); + +NSS_EXTERN NSSCKMDObject * +nss_ckcapi_CreateObject( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +NSS_EXTERN const NSSItem * +nss_ckcapi_FetchAttribute( + ckcapiInternalObject *io, + CK_ATTRIBUTE_TYPE type); + +NSS_EXTERN void +nss_ckcapi_DestroyInternalObject( + ckcapiInternalObject *io); + +NSS_EXTERN CK_RV +nss_ckcapi_FetchKeyContainer( + ckcapiInternalObject *iKey, + HCRYPTPROV *hProv, + DWORD *keySpec, + HCRYPTKEY *hKey); + +/* + * generic utilities + */ + +/* + * So everyone else in the worlds stores their bignum data MSB first, but not + * Microsoft, we need to byte swap everything coming into and out of CAPI. + */ +void +ckcapi_ReverseData( + NSSItem *item); + +/* + * unwrap a single DER value + */ +unsigned char * +nss_ckcapi_DERUnwrap( + unsigned char *src, + unsigned int size, + unsigned int *outSize, + unsigned char **next); + +/* + * Return the size in bytes of a wide string + */ +int +nss_ckcapi_WideSize( + LPCWSTR wide); + +/* + * Covert a Unicode wide character string to a UTF8 string + */ +char * +nss_ckcapi_WideToUTF8( + LPCWSTR wide); + +/* + * Return a Wide String duplicated with nss allocated memory. + */ +LPWSTR +nss_ckcapi_WideDup( + LPCWSTR wide); + +/* + * Covert a UTF8 string to Unicode wide character + */ +LPWSTR +nss_ckcapi_UTF8ToWide( + char *buf); + +NSS_EXTERN PRUint32 +nss_ckcapi_collect_all_certs( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckcapiInternalObject ***listp, + PRUint32 *sizep, + PRUint32 count, + CK_RV *pError); + +#define NSS_CKCAPI_ARRAY_SIZE(x) ((sizeof(x)) / (sizeof((x)[0]))) + +#endif diff --git a/security/nss/lib/ckfw/capi/ckcapiver.c b/security/nss/lib/ckfw/capi/ckcapiver.c new file mode 100644 index 000000000..825b63074 --- /dev/null +++ b/security/nss/lib/ckfw/capi/ckcapiver.c @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/* Library identity and versioning */ + +#include "nsscapi.h" + +#if defined(DEBUG) +#define _DEBUG_STRING " (debug)" +#else +#define _DEBUG_STRING "" +#endif + +/* + * Version information + */ +const char __nss_ckcapi_version[] = "Version: NSS Access to Microsoft Certificate Store " NSS_CKCAPI_LIBRARY_VERSION _DEBUG_STRING; diff --git a/security/nss/lib/ckfw/capi/cobject.c b/security/nss/lib/ckfw/capi/cobject.c new file mode 100644 index 000000000..c4b77d27a --- /dev/null +++ b/security/nss/lib/ckfw/capi/cobject.c @@ -0,0 +1,2226 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckcapi.h" +#include "nssbase.h" + +/* + * ckcapi/cobject.c + * + * This file implements the NSSCKMDObject object for the + * "nss to capi objects" cryptoki module. + */ + +const CK_ATTRIBUTE_TYPE certAttrs[] = { + CKA_CLASS, + CKA_TOKEN, + CKA_PRIVATE, + CKA_MODIFIABLE, + CKA_LABEL, + CKA_CERTIFICATE_TYPE, + CKA_SUBJECT, + CKA_ISSUER, + CKA_SERIAL_NUMBER, + CKA_VALUE +}; +const PRUint32 certAttrsCount = NSS_CKCAPI_ARRAY_SIZE(certAttrs); + +/* private keys, for now only support RSA */ +const CK_ATTRIBUTE_TYPE privKeyAttrs[] = { + CKA_CLASS, + CKA_TOKEN, + CKA_PRIVATE, + CKA_MODIFIABLE, + CKA_LABEL, + CKA_KEY_TYPE, + CKA_DERIVE, + CKA_LOCAL, + CKA_SUBJECT, + CKA_SENSITIVE, + CKA_DECRYPT, + CKA_SIGN, + CKA_SIGN_RECOVER, + CKA_UNWRAP, + CKA_EXTRACTABLE, + CKA_ALWAYS_SENSITIVE, + CKA_NEVER_EXTRACTABLE, + CKA_MODULUS, + CKA_PUBLIC_EXPONENT, +}; +const PRUint32 privKeyAttrsCount = NSS_CKCAPI_ARRAY_SIZE(privKeyAttrs); + +/* public keys, for now only support RSA */ +const CK_ATTRIBUTE_TYPE pubKeyAttrs[] = { + CKA_CLASS, + CKA_TOKEN, + CKA_PRIVATE, + CKA_MODIFIABLE, + CKA_LABEL, + CKA_KEY_TYPE, + CKA_DERIVE, + CKA_LOCAL, + CKA_SUBJECT, + CKA_ENCRYPT, + CKA_VERIFY, + CKA_VERIFY_RECOVER, + CKA_WRAP, + CKA_MODULUS, + CKA_PUBLIC_EXPONENT, +}; +const PRUint32 pubKeyAttrsCount = NSS_CKCAPI_ARRAY_SIZE(pubKeyAttrs); +static const CK_BBOOL ck_true = CK_TRUE; +static const CK_BBOOL ck_false = CK_FALSE; +static const CK_CERTIFICATE_TYPE ckc_x509 = CKC_X_509; +static const CK_KEY_TYPE ckk_rsa = CKK_RSA; +static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE; +static const CK_OBJECT_CLASS cko_private_key = CKO_PRIVATE_KEY; +static const CK_OBJECT_CLASS cko_public_key = CKO_PUBLIC_KEY; +static const NSSItem ckcapi_trueItem = { + (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) +}; +static const NSSItem ckcapi_falseItem = { + (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) +}; +static const NSSItem ckcapi_x509Item = { + (void *)&ckc_x509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) +}; +static const NSSItem ckcapi_rsaItem = { + (void *)&ckk_rsa, (PRUint32)sizeof(CK_KEY_TYPE) +}; +static const NSSItem ckcapi_certClassItem = { + (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) +}; +static const NSSItem ckcapi_privKeyClassItem = { + (void *)&cko_private_key, (PRUint32)sizeof(CK_OBJECT_CLASS) +}; +static const NSSItem ckcapi_pubKeyClassItem = { + (void *)&cko_public_key, (PRUint32)sizeof(CK_OBJECT_CLASS) +}; +static const NSSItem ckcapi_emptyItem = { + (void *)&ck_true, 0 +}; + +/* + * these are utilities. The chould be moved to a new utilities file. + */ + +/* + * unwrap a single DER value + */ +unsigned char * +nss_ckcapi_DERUnwrap( + unsigned char *src, + unsigned int size, + unsigned int *outSize, + unsigned char **next) +{ + unsigned char *start = src; + unsigned char *end = src + size; + unsigned int len = 0; + + /* initialize error condition return values */ + *outSize = 0; + if (next) { + *next = src; + } + + if (size < 2) { + return start; + } + src++; /* skip the tag -- should check it against an expected value! */ + len = (unsigned)*src++; + if (len & 0x80) { + unsigned int count = len & 0x7f; + len = 0; + + if (count + 2 > size) { + return start; + } + while (count-- > 0) { + len = (len << 8) | (unsigned)*src++; + } + } + if (len + (src - start) > size) { + return start; + } + if (next) { + *next = src + len; + } + *outSize = len; + + return src; +} + +/* + * convert a PKCS #11 bytestrin into a CK_ULONG, the byte stream must be + * less than sizeof (CK_ULONG). + */ +CK_ULONG +nss_ckcapi_DataToInt( + NSSItem *data, + CK_RV *pError) +{ + CK_ULONG value = 0; + unsigned long count = data->size; + unsigned char *dataPtr = data->data; + unsigned long size = 0; + + *pError = CKR_OK; + + while (count--) { + value = value << 8; + value = value + *dataPtr++; + if (size || value) { + size++; + } + } + if (size > sizeof(CK_ULONG)) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + } + return value; +} + +/* + * convert a CK_ULONG to a bytestream. Data is stored in the buffer 'buf' + * and must be at least CK_ULONG. Caller must provide buf. + */ +CK_ULONG +nss_ckcapi_IntToData( + CK_ULONG value, + NSSItem *data, + unsigned char *dataPtr, + CK_RV *pError) +{ + unsigned long count = 0; + unsigned long i; +#define SHIFT ((sizeof(CK_ULONG) - 1) * 8) + PRBool first = 0; + + *pError = CKR_OK; + + data->data = dataPtr; + for (i = 0; i < sizeof(CK_ULONG); i++) { + unsigned char digit = (unsigned char)((value >> SHIFT) & 0xff); + + value = value << 8; + + /* drop leading zero bytes */ + if (first && (0 == digit)) { + continue; + } + *dataPtr++ = digit; + count++; + } + data->size = count; + return count; +} + +/* + * get an attribute from a template. Value is returned in NSS item. + * data for the item is owned by the template. + */ +CK_RV +nss_ckcapi_GetAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + NSSItem *item) +{ + CK_ULONG i; + + for (i = 0; i < templateSize; i++) { + if (template[i].type == type) { + item->data = template[i].pValue; + item->size = template[i].ulValueLen; + return CKR_OK; + } + } + return CKR_TEMPLATE_INCOMPLETE; +} + +/* + * get an attribute which is type CK_ULONG. + */ +CK_ULONG +nss_ckcapi_GetULongAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_RV *pError) +{ + NSSItem item; + + *pError = nss_ckcapi_GetAttribute(type, template, templateSize, &item); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } + if (item.size != sizeof(CK_ULONG)) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (CK_ULONG)0; + } + return *(CK_ULONG *)item.data; +} + +/* + * get an attribute which is type CK_BBOOL. + */ +CK_BBOOL +nss_ckcapi_GetBoolAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_RV *pError) +{ + NSSItem item; + + *pError = nss_ckcapi_GetAttribute(type, template, templateSize, &item); + if (CKR_OK != *pError) { + return (CK_BBOOL)0; + } + if (item.size != sizeof(CK_BBOOL)) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (CK_BBOOL)0; + } + return *(CK_BBOOL *)item.data; +} + +/* + * get an attribute which is type CK_BBOOL. + */ +char * +nss_ckcapi_GetStringAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_RV *pError) +{ + NSSItem item; + char *str; + + /* get the attribute */ + *pError = nss_ckcapi_GetAttribute(type, template, templateSize, &item); + if (CKR_OK != *pError) { + return (char *)NULL; + } + /* make sure it is null terminated */ + str = nss_ZNEWARRAY(NULL, char, item.size + 1); + if ((char *)NULL == str) { + *pError = CKR_HOST_MEMORY; + return (char *)NULL; + } + + nsslibc_memcpy(str, item.data, item.size); + str[item.size] = 0; + + return str; +} + +/* + * Return the size in bytes of a wide string, including the terminating null + * character + */ +int +nss_ckcapi_WideSize( + LPCWSTR wide) +{ + DWORD size; + + if ((LPWSTR)NULL == wide) { + return 0; + } + size = wcslen(wide) + 1; + return size * sizeof(WCHAR); +} + +/* + * Covert a Unicode wide character string to a UTF8 string + */ +char * +nss_ckcapi_WideToUTF8( + LPCWSTR wide) +{ + DWORD size; + char *buf; + + if ((LPWSTR)NULL == wide) { + return (char *)NULL; + } + + size = WideCharToMultiByte(CP_UTF8, 0, wide, -1, NULL, 0, NULL, 0); + if (size == 0) { + return (char *)NULL; + } + buf = nss_ZNEWARRAY(NULL, char, size); + size = WideCharToMultiByte(CP_UTF8, 0, wide, -1, buf, size, NULL, 0); + if (size == 0) { + nss_ZFreeIf(buf); + return (char *)NULL; + } + return buf; +} + +/* + * Return a Wide String duplicated with nss allocated memory. + */ +LPWSTR +nss_ckcapi_WideDup( + LPCWSTR wide) +{ + DWORD len; + LPWSTR buf; + + if ((LPWSTR)NULL == wide) { + return (LPWSTR)NULL; + } + + len = wcslen(wide) + 1; + + buf = nss_ZNEWARRAY(NULL, WCHAR, len); + if ((LPWSTR)NULL == buf) { + return buf; + } + nsslibc_memcpy(buf, wide, len * sizeof(WCHAR)); + return buf; +} + +/* + * Covert a UTF8 string to Unicode wide character + */ +LPWSTR +nss_ckcapi_UTF8ToWide( + char *buf) +{ + DWORD size; + LPWSTR wide; + + if ((char *)NULL == buf) { + return (LPWSTR)NULL; + } + + size = MultiByteToWideChar(CP_UTF8, 0, buf, -1, NULL, 0); + if (size == 0) { + return (LPWSTR)NULL; + } + wide = nss_ZNEWARRAY(NULL, WCHAR, size); + size = MultiByteToWideChar(CP_UTF8, 0, buf, -1, wide, size); + if (size == 0) { + nss_ZFreeIf(wide); + return (LPWSTR)NULL; + } + return wide; +} + +/* + * keep all the knowlege of how the internalObject is laid out in this function + * + * nss_ckcapi_FetchKeyContainer + * + * fetches the Provider container and info as well as a key handle for a + * private key. If something other than a private key is passed in, + * this function fails with CKR_KEY_TYPE_INCONSISTENT + */ +NSS_EXTERN CK_RV +nss_ckcapi_FetchKeyContainer( + ckcapiInternalObject *iKey, + HCRYPTPROV *hProv, + DWORD *keySpec, + HCRYPTKEY *hKey) +{ + ckcapiCertObject *co; + ckcapiKeyObject *ko; + BOOL rc, dummy; + DWORD msError; + + switch (iKey->type) { + default: + case ckcapiRaw: + /* can't have raw private keys */ + return CKR_KEY_TYPE_INCONSISTENT; + case ckcapiCert: + if (iKey->objClass != CKO_PRIVATE_KEY) { + /* Only private keys have private key provider handles */ + return CKR_KEY_TYPE_INCONSISTENT; + } + co = &iKey->u.cert; + + /* OK, get the Provider */ + rc = CryptAcquireCertificatePrivateKey(co->certContext, + CRYPT_ACQUIRE_CACHE_FLAG | + CRYPT_ACQUIRE_COMPARE_KEY_FLAG, + NULL, hProv, + keySpec, &dummy); + if (!rc) { + goto loser; + } + break; + case ckcapiBareKey: + if (iKey->objClass != CKO_PRIVATE_KEY) { + /* Only private keys have private key provider handles */ + return CKR_KEY_TYPE_INCONSISTENT; + } + ko = &iKey->u.key; + + /* OK, get the Provider */ + if (0 == ko->hProv) { + rc = + CryptAcquireContext(hProv, + ko->containerName, + ko->provName, + ko->provInfo.dwProvType, 0); + if (!rc) { + goto loser; + } + } else { + *hProv = + ko->hProv; + } + *keySpec = ko->provInfo.dwKeySpec; + break; + } + + /* and get the crypto handle */ + rc = CryptGetUserKey(*hProv, *keySpec, hKey); + if (!rc) { + goto loser; + } + return CKR_OK; +loser: + /* map the microsoft error before leaving */ + msError = GetLastError(); + switch (msError) { + case ERROR_INVALID_HANDLE: + case ERROR_INVALID_PARAMETER: + case NTE_BAD_KEY: + case NTE_NO_KEY: + case NTE_BAD_PUBLIC_KEY: + case NTE_BAD_KEYSET: + case NTE_KEYSET_NOT_DEF: + return CKR_KEY_TYPE_INCONSISTENT; + case NTE_BAD_UID: + case NTE_KEYSET_ENTRY_BAD: + return CKR_DEVICE_ERROR; + } + return CKR_GENERAL_ERROR; +} + +/* + * take a DER PUBLIC Key block and return the modulus and exponent + */ +static void +ckcapi_CertPopulateModulusExponent( + ckcapiInternalObject *io) +{ + ckcapiKeyParams *kp = &io->u.cert.key; + PCCERT_CONTEXT certContext = io->u.cert.certContext; + unsigned char *pkData = + certContext->pCertInfo->SubjectPublicKeyInfo.PublicKey.pbData; + unsigned int size = + certContext->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData; + unsigned int newSize; + unsigned char *ptr, *newptr; + + /* find the start of the modulus -- this will not give good results if + * the key isn't an rsa key! */ + ptr = nss_ckcapi_DERUnwrap(pkData, size, &newSize, NULL); + kp->modulus.data = nss_ckcapi_DERUnwrap(ptr, newSize, + &kp->modulus.size, &newptr); + /* changed from signed to unsigned int */ + if (0 == *(char *)kp->modulus.data) { + kp->modulus.data = ((char *)kp->modulus.data) + 1; + kp->modulus.size = kp->modulus.size - 1; + } + /* changed from signed to unsigned int */ + kp->exponent.data = nss_ckcapi_DERUnwrap(newptr, (newptr - ptr) + newSize, + &kp->exponent.size, NULL); + if (0 == *(char *)kp->exponent.data) { + kp->exponent.data = ((char *)kp->exponent.data) + 1; + kp->exponent.size = kp->exponent.size - 1; + } + return; +} + +typedef struct _CAPI_RSA_KEY_BLOB { + PUBLICKEYSTRUC header; + RSAPUBKEY rsa; + char data[1]; +} CAPI_RSA_KEY_BLOB; + +#define CAPI_MODULUS_OFFSET(modSize) 0 +#define CAPI_PRIME_1_OFFSET(modSize) (modSize) +#define CAPI_PRIME_2_OFFSET(modSize) ((modSize) + (modSize) / 2) +#define CAPI_EXPONENT_1_OFFSET(modSize) ((modSize)*2) +#define CAPI_EXPONENT_2_OFFSET(modSize) ((modSize)*2 + (modSize) / 2) +#define CAPI_COEFFICIENT_OFFSET(modSize) ((modSize)*3) +#define CAPI_PRIVATE_EXP_OFFSET(modSize) ((modSize)*3 + (modSize) / 2) + +void +ckcapi_FetchPublicKey( + ckcapiInternalObject *io) +{ + ckcapiKeyParams *kp; + HCRYPTPROV hProv; + DWORD keySpec; + HCRYPTKEY hKey = 0; + CK_RV error; + DWORD bufLen; + BOOL rc; + unsigned long modulus; + char *buf = NULL; + CAPI_RSA_KEY_BLOB *blob; + + error = nss_ckcapi_FetchKeyContainer(io, &hProv, &keySpec, &hKey); + if (CKR_OK != error) { + goto loser; + } + kp = (ckcapiCert == io->type) ? &io->u.cert.key : &io->u.key.key; + + rc = CryptExportKey(hKey, 0, PUBLICKEYBLOB, 0, buf, &bufLen); + if (!rc) { + goto loser; + } + buf = nss_ZNEWARRAY(NULL, char, bufLen); + rc = CryptExportKey(hKey, 0, PUBLICKEYBLOB, 0, buf, &bufLen); + if (!rc) { + goto loser; + } + /* validate the blob */ + blob = (CAPI_RSA_KEY_BLOB *)buf; + if ((PUBLICKEYBLOB != blob->header.bType) || + (0x02 != blob->header.bVersion) || + (0x31415352 != blob->rsa.magic)) { + goto loser; + } + modulus = blob->rsa.bitlen / 8; + kp->pubKey = buf; + buf = NULL; + + kp->modulus.data = &blob->data[CAPI_MODULUS_OFFSET(modulus)]; + kp->modulus.size = modulus; + ckcapi_ReverseData(&kp->modulus); + nss_ckcapi_IntToData(blob->rsa.pubexp, &kp->exponent, + kp->publicExponentData, &error); + +loser: + nss_ZFreeIf(buf); + if (0 != hKey) { + CryptDestroyKey(hKey); + } + return; +} + +void +ckcapi_FetchPrivateKey( + ckcapiInternalObject *io) +{ + ckcapiKeyParams *kp; + HCRYPTPROV hProv; + DWORD keySpec; + HCRYPTKEY hKey = 0; + CK_RV error; + DWORD bufLen; + BOOL rc; + unsigned long modulus; + char *buf = NULL; + CAPI_RSA_KEY_BLOB *blob; + + error = nss_ckcapi_FetchKeyContainer(io, &hProv, &keySpec, &hKey); + if (CKR_OK != error) { + goto loser; + } + kp = (ckcapiCert == io->type) ? &io->u.cert.key : &io->u.key.key; + + rc = CryptExportKey(hKey, 0, PRIVATEKEYBLOB, 0, buf, &bufLen); + if (!rc) { + goto loser; + } + buf = nss_ZNEWARRAY(NULL, char, bufLen); + rc = CryptExportKey(hKey, 0, PRIVATEKEYBLOB, 0, buf, &bufLen); + if (!rc) { + goto loser; + } + /* validate the blob */ + blob = (CAPI_RSA_KEY_BLOB *)buf; + if ((PRIVATEKEYBLOB != blob->header.bType) || + (0x02 != blob->header.bVersion) || + (0x32415352 != blob->rsa.magic)) { + goto loser; + } + modulus = blob->rsa.bitlen / 8; + kp->privateKey = buf; + buf = NULL; + + kp->privateExponent.data = &blob->data[CAPI_PRIVATE_EXP_OFFSET(modulus)]; + kp->privateExponent.size = modulus; + ckcapi_ReverseData(&kp->privateExponent); + kp->prime1.data = &blob->data[CAPI_PRIME_1_OFFSET(modulus)]; + kp->prime1.size = modulus / 2; + ckcapi_ReverseData(&kp->prime1); + kp->prime2.data = &blob->data[CAPI_PRIME_2_OFFSET(modulus)]; + kp->prime2.size = modulus / 2; + ckcapi_ReverseData(&kp->prime2); + kp->exponent1.data = &blob->data[CAPI_EXPONENT_1_OFFSET(modulus)]; + kp->exponent1.size = modulus / 2; + ckcapi_ReverseData(&kp->exponent1); + kp->exponent2.data = &blob->data[CAPI_EXPONENT_2_OFFSET(modulus)]; + kp->exponent2.size = modulus / 2; + ckcapi_ReverseData(&kp->exponent2); + kp->coefficient.data = &blob->data[CAPI_COEFFICIENT_OFFSET(modulus)]; + kp->coefficient.size = modulus / 2; + ckcapi_ReverseData(&kp->coefficient); + +loser: + nss_ZFreeIf(buf); + if (0 != hKey) { + CryptDestroyKey(hKey); + } + return; +} + +void +ckcapi_PopulateModulusExponent( + ckcapiInternalObject *io) +{ + if (ckcapiCert == io->type) { + ckcapi_CertPopulateModulusExponent(io); + } else { + ckcapi_FetchPublicKey(io); + } + return; +} + +/* + * fetch the friendly name attribute. + * can only be called with ckcapiCert type objects! + */ +void +ckcapi_FetchLabel( + ckcapiInternalObject *io) +{ + ckcapiCertObject *co = &io->u.cert; + char *label; + PCCERT_CONTEXT certContext = io->u.cert.certContext; + char labelDataUTF16[128]; + DWORD size = sizeof(labelDataUTF16); + DWORD size8 = sizeof(co->labelData); + BOOL rv; + + rv = CertGetCertificateContextProperty(certContext, + CERT_FRIENDLY_NAME_PROP_ID, labelDataUTF16, &size); + if (rv) { + co->labelData = nss_ckcapi_WideToUTF8((LPCWSTR)labelDataUTF16); + if ((CHAR *)NULL == co->labelData) { + rv = 0; + } else { + size = strlen(co->labelData); + } + } + label = co->labelData; + /* we are presuming a user cert, make sure it has a nickname, even if + * Microsoft never gave it one */ + if (!rv && co->hasID) { + DWORD mserror = GetLastError(); +#define DEFAULT_NICKNAME "no Microsoft nickname" + label = DEFAULT_NICKNAME; + size = sizeof(DEFAULT_NICKNAME); + rv = 1; + } + + if (rv) { + co->label.data = label; + co->label.size = size; + } + return; +} + +void +ckcapi_FetchSerial( + ckcapiInternalObject *io) +{ + ckcapiCertObject *co = &io->u.cert; + PCCERT_CONTEXT certContext = io->u.cert.certContext; + DWORD size = sizeof(co->derSerial); + + BOOL rc = CryptEncodeObject(X509_ASN_ENCODING, + X509_MULTI_BYTE_INTEGER, + &certContext->pCertInfo->SerialNumber, + co->derSerial, + &size); + if (rc) { + co->serial.data = co->derSerial; + co->serial.size = size; + } + return; +} + +/* + * fetch the key ID. + */ +void +ckcapi_FetchID( + ckcapiInternalObject *io) +{ + PCCERT_CONTEXT certContext = io->u.cert.certContext; + DWORD size = 0; + BOOL rc; + + rc = CertGetCertificateContextProperty(certContext, + CERT_KEY_IDENTIFIER_PROP_ID, NULL, &size); + if (!rc) { + return; + } + io->idData = nss_ZNEWARRAY(NULL, char, size); + if (io->idData == NULL) { + return; + } + + rc = CertGetCertificateContextProperty(certContext, + CERT_KEY_IDENTIFIER_PROP_ID, io->idData, &size); + if (!rc) { + nss_ZFreeIf(io->idData); + io->idData = NULL; + return; + } + io->id.data = io->idData; + io->id.size = size; + return; +} + +/* + * fetch the hash key. + */ +void +ckcapi_CertFetchHashKey( + ckcapiInternalObject *io) +{ + ckcapiCertObject *co = &io->u.cert; + PCCERT_CONTEXT certContext = io->u.cert.certContext; + DWORD size = certContext->cbCertEncoded; + DWORD max = sizeof(io->hashKeyData) - 1; + DWORD offset = 0; + + /* make sure we don't over flow. NOTE: cutting the top of a cert is + * not a big issue because the signature for will be unique for the cert */ + if (size > max) { + offset = size - max; + size = max; + } + + nsslibc_memcpy(io->hashKeyData, certContext->pbCertEncoded + offset, size); + io->hashKeyData[size] = (char)(io->objClass & 0xff); + + io->hashKey.data = io->hashKeyData; + io->hashKey.size = size + 1; + return; +} + +/* + * fetch the hash key. + */ +void +ckcapi_KeyFetchHashKey( + ckcapiInternalObject *io) +{ + ckcapiKeyObject *ko = &io->u.key; + DWORD size; + DWORD max = sizeof(io->hashKeyData) - 2; + DWORD offset = 0; + DWORD provLen = strlen(ko->provName); + DWORD containerLen = strlen(ko->containerName); + + size = provLen + containerLen; + + /* make sure we don't overflow, try to keep things unique */ + if (size > max) { + DWORD diff = ((size - max) + 1) / 2; + provLen -= diff; + containerLen -= diff; + size = provLen + containerLen; + } + + nsslibc_memcpy(io->hashKeyData, ko->provName, provLen); + nsslibc_memcpy(&io->hashKeyData[provLen], + ko->containerName, + containerLen); + io->hashKeyData[size] = (char)(io->objClass & 0xff); + io->hashKeyData[size + 1] = (char)(ko->provInfo.dwKeySpec & 0xff); + + io->hashKey.data = io->hashKeyData; + io->hashKey.size = size + 2; + return; +} + +/* + * fetch the hash key. + */ +void +ckcapi_FetchHashKey( + ckcapiInternalObject *io) +{ + if (ckcapiCert == io->type) { + ckcapi_CertFetchHashKey(io); + } else { + ckcapi_KeyFetchHashKey(io); + } + return; +} + +const NSSItem * +ckcapi_FetchCertAttribute( + ckcapiInternalObject *io, + CK_ATTRIBUTE_TYPE type) +{ + PCCERT_CONTEXT certContext = io->u.cert.certContext; + switch (type) { + case CKA_CLASS: + return &ckcapi_certClassItem; + case CKA_TOKEN: + return &ckcapi_trueItem; + case CKA_MODIFIABLE: + case CKA_PRIVATE: + return &ckcapi_falseItem; + case CKA_CERTIFICATE_TYPE: + return &ckcapi_x509Item; + case CKA_LABEL: + if (0 == io->u.cert.label.size) { + ckcapi_FetchLabel(io); + } + return &io->u.cert.label; + case CKA_SUBJECT: + if (0 == io->u.cert.subject.size) { + io->u.cert.subject.data = + certContext->pCertInfo->Subject.pbData; + io->u.cert.subject.size = + certContext->pCertInfo->Subject.cbData; + } + return &io->u.cert.subject; + case CKA_ISSUER: + if (0 == io->u.cert.issuer.size) { + io->u.cert.issuer.data = + certContext->pCertInfo->Issuer.pbData; + io->u.cert.issuer.size = + certContext->pCertInfo->Issuer.cbData; + } + return &io->u.cert.issuer; + case CKA_SERIAL_NUMBER: + if (0 == io->u.cert.serial.size) { + /* not exactly right. This should be the encoded serial number, but + * it's the decoded serial number! */ + ckcapi_FetchSerial(io); + } + return &io->u.cert.serial; + case CKA_VALUE: + if (0 == io->u.cert.derCert.size) { + io->u.cert.derCert.data = + io->u.cert.certContext->pbCertEncoded; + io->u.cert.derCert.size = + io->u.cert.certContext->cbCertEncoded; + } + return &io->u.cert.derCert; + case CKA_ID: + if (!io->u.cert.hasID) { + return NULL; + } + if (0 == io->id.size) { + ckcapi_FetchID(io); + } + return &io->id; + default: + break; + } + return NULL; +} + +const NSSItem * +ckcapi_FetchPubKeyAttribute( + ckcapiInternalObject *io, + CK_ATTRIBUTE_TYPE type) +{ + PRBool isCertType = (ckcapiCert == io->type); + ckcapiKeyParams *kp = isCertType ? &io->u.cert.key : &io->u.key.key; + + switch (type) { + case CKA_CLASS: + return &ckcapi_pubKeyClassItem; + case CKA_TOKEN: + case CKA_LOCAL: + case CKA_ENCRYPT: + case CKA_VERIFY: + case CKA_VERIFY_RECOVER: + return &ckcapi_trueItem; + case CKA_PRIVATE: + case CKA_MODIFIABLE: + case CKA_DERIVE: + case CKA_WRAP: + return &ckcapi_falseItem; + case CKA_KEY_TYPE: + return &ckcapi_rsaItem; + case CKA_LABEL: + if (!isCertType) { + return &ckcapi_emptyItem; + } + if (0 == io->u.cert.label.size) { + ckcapi_FetchLabel(io); + } + return &io->u.cert.label; + case CKA_SUBJECT: + if (!isCertType) { + return &ckcapi_emptyItem; + } + if (0 == io->u.cert.subject.size) { + PCCERT_CONTEXT certContext = + io->u.cert.certContext; + io->u.cert.subject.data = + certContext->pCertInfo->Subject.pbData; + io->u.cert.subject.size = + certContext->pCertInfo->Subject.cbData; + } + return &io->u.cert.subject; + case CKA_MODULUS: + if (0 == kp->modulus.size) { + ckcapi_PopulateModulusExponent(io); + } + return &kp->modulus; + case CKA_PUBLIC_EXPONENT: + if (0 == kp->modulus.size) { + ckcapi_PopulateModulusExponent(io); + } + return &kp->exponent; + case CKA_ID: + if (0 == io->id.size) { + ckcapi_FetchID(io); + } + return &io->id; + default: + break; + } + return NULL; +} + +const NSSItem * +ckcapi_FetchPrivKeyAttribute( + ckcapiInternalObject *io, + CK_ATTRIBUTE_TYPE type) +{ + PRBool isCertType = (ckcapiCert == io->type); + ckcapiKeyParams *kp = isCertType ? &io->u.cert.key : &io->u.key.key; + + switch (type) { + case CKA_CLASS: + return &ckcapi_privKeyClassItem; + case CKA_TOKEN: + case CKA_LOCAL: + case CKA_SIGN: + case CKA_DECRYPT: + case CKA_SIGN_RECOVER: + return &ckcapi_trueItem; + case CKA_SENSITIVE: + case CKA_PRIVATE: /* should move in the future */ + case CKA_MODIFIABLE: + case CKA_DERIVE: + case CKA_UNWRAP: + case CKA_EXTRACTABLE: /* will probably move in the future */ + case CKA_ALWAYS_SENSITIVE: + case CKA_NEVER_EXTRACTABLE: + return &ckcapi_falseItem; + case CKA_KEY_TYPE: + return &ckcapi_rsaItem; + case CKA_LABEL: + if (!isCertType) { + return &ckcapi_emptyItem; + } + if (0 == io->u.cert.label.size) { + ckcapi_FetchLabel(io); + } + return &io->u.cert.label; + case CKA_SUBJECT: + if (!isCertType) { + return &ckcapi_emptyItem; + } + if (0 == io->u.cert.subject.size) { + PCCERT_CONTEXT certContext = + io->u.cert.certContext; + io->u.cert.subject.data = + certContext->pCertInfo->Subject.pbData; + io->u.cert.subject.size = + certContext->pCertInfo->Subject.cbData; + } + return &io->u.cert.subject; + case CKA_MODULUS: + if (0 == kp->modulus.size) { + ckcapi_PopulateModulusExponent(io); + } + return &kp->modulus; + case CKA_PUBLIC_EXPONENT: + if (0 == kp->modulus.size) { + ckcapi_PopulateModulusExponent(io); + } + return &kp->exponent; + case CKA_PRIVATE_EXPONENT: + if (0 == kp->privateExponent.size) { + ckcapi_FetchPrivateKey(io); + } + return &kp->privateExponent; + case CKA_PRIME_1: + if (0 == kp->privateExponent.size) { + ckcapi_FetchPrivateKey(io); + } + return &kp->prime1; + case CKA_PRIME_2: + if (0 == kp->privateExponent.size) { + ckcapi_FetchPrivateKey(io); + } + return &kp->prime2; + case CKA_EXPONENT_1: + if (0 == kp->privateExponent.size) { + ckcapi_FetchPrivateKey(io); + } + return &kp->exponent1; + case CKA_EXPONENT_2: + if (0 == kp->privateExponent.size) { + ckcapi_FetchPrivateKey(io); + } + return &kp->exponent2; + case CKA_COEFFICIENT: + if (0 == kp->privateExponent.size) { + ckcapi_FetchPrivateKey(io); + } + return &kp->coefficient; + case CKA_ID: + if (0 == io->id.size) { + ckcapi_FetchID(io); + } + return &io->id; + default: + return NULL; + } +} + +const NSSItem * +nss_ckcapi_FetchAttribute( + ckcapiInternalObject *io, + CK_ATTRIBUTE_TYPE type) +{ + CK_ULONG i; + + if (io->type == ckcapiRaw) { + for (i = 0; i < io->u.raw.n; i++) { + if (type == io->u.raw.types[i]) { + return &io->u.raw.items[i]; + } + } + return NULL; + } + /* deal with the common attributes */ + switch (io->objClass) { + case CKO_CERTIFICATE: + return ckcapi_FetchCertAttribute(io, type); + case CKO_PRIVATE_KEY: + return ckcapi_FetchPrivKeyAttribute(io, type); + case CKO_PUBLIC_KEY: + return ckcapi_FetchPubKeyAttribute(io, type); + } + return NULL; +} + +/* + * check to see if the certificate already exists + */ +static PRBool +ckcapi_cert_exists( + NSSItem *value, + ckcapiInternalObject **io) +{ + int count, i; + PRUint32 size = 0; + ckcapiInternalObject **listp = NULL; + CK_ATTRIBUTE myTemplate[2]; + CK_OBJECT_CLASS cert_class = CKO_CERTIFICATE; + CK_ULONG templateCount = 2; + CK_RV error; + PRBool found = PR_FALSE; + + myTemplate[0].type = CKA_CLASS; + myTemplate[0].pValue = &cert_class; + myTemplate[0].ulValueLen = sizeof(cert_class); + myTemplate[1].type = CKA_VALUE; + myTemplate[1].pValue = value->data; + myTemplate[1].ulValueLen = value->size; + + count = nss_ckcapi_collect_all_certs(myTemplate, templateCount, &listp, + &size, 0, &error); + + /* free them */ + if (count > 1) { + *io = listp[0]; + found = PR_TRUE; + } + + for (i = 1; i < count; i++) { + nss_ckcapi_DestroyInternalObject(listp[i]); + } + nss_ZFreeIf(listp); + return found; +} + +static PRBool +ckcapi_cert_hasEmail( + PCCERT_CONTEXT certContext) +{ + int count; + + count = CertGetNameString(certContext, CERT_NAME_EMAIL_TYPE, + 0, NULL, NULL, 0); + + return count > 1 ? PR_TRUE : PR_FALSE; +} + +static PRBool +ckcapi_cert_isRoot( + PCCERT_CONTEXT certContext) +{ + return CertCompareCertificateName(certContext->dwCertEncodingType, + &certContext->pCertInfo->Issuer, &certContext->pCertInfo->Subject); +} + +static PRBool +ckcapi_cert_isCA( + PCCERT_CONTEXT certContext) +{ + PCERT_EXTENSION extension; + CERT_BASIC_CONSTRAINTS2_INFO basicInfo; + DWORD size = sizeof(basicInfo); + BOOL rc; + + extension = CertFindExtension(szOID_BASIC_CONSTRAINTS, + certContext->pCertInfo->cExtension, + certContext->pCertInfo->rgExtension); + if ((PCERT_EXTENSION)NULL == extension) { + return PR_FALSE; + } + rc = CryptDecodeObject(X509_ASN_ENCODING, szOID_BASIC_CONSTRAINTS2, + extension->Value.pbData, extension->Value.cbData, + 0, &basicInfo, &size); + if (!rc) { + return PR_FALSE; + } + return (PRBool)basicInfo.fCA; +} + +static CRYPT_KEY_PROV_INFO * +ckcapi_cert_getPrivateKeyInfo( + PCCERT_CONTEXT certContext, + NSSItem *keyID) +{ + BOOL rc; + CRYPT_HASH_BLOB msKeyID; + DWORD size = 0; + CRYPT_KEY_PROV_INFO *prov = NULL; + + msKeyID.cbData = keyID->size; + msKeyID.pbData = keyID->data; + + rc = CryptGetKeyIdentifierProperty( + &msKeyID, + CERT_KEY_PROV_INFO_PROP_ID, + 0, NULL, NULL, NULL, &size); + if (!rc) { + return (CRYPT_KEY_PROV_INFO *)NULL; + } + prov = (CRYPT_KEY_PROV_INFO *)nss_ZAlloc(NULL, size); + if ((CRYPT_KEY_PROV_INFO *)prov == NULL) { + return (CRYPT_KEY_PROV_INFO *)NULL; + } + rc = CryptGetKeyIdentifierProperty( + &msKeyID, + CERT_KEY_PROV_INFO_PROP_ID, + 0, NULL, NULL, prov, &size); + if (!rc) { + nss_ZFreeIf(prov); + return (CRYPT_KEY_PROV_INFO *)NULL; + } + + return prov; +} + +static CRYPT_KEY_PROV_INFO * +ckcapi_cert_getProvInfo( + ckcapiInternalObject *io) +{ + BOOL rc; + DWORD size = 0; + CRYPT_KEY_PROV_INFO *prov = NULL; + + rc = CertGetCertificateContextProperty( + io->u.cert.certContext, + CERT_KEY_PROV_INFO_PROP_ID, + NULL, &size); + if (!rc) { + return (CRYPT_KEY_PROV_INFO *)NULL; + } + prov = (CRYPT_KEY_PROV_INFO *)nss_ZAlloc(NULL, size); + if ((CRYPT_KEY_PROV_INFO *)prov == NULL) { + return (CRYPT_KEY_PROV_INFO *)NULL; + } + rc = CertGetCertificateContextProperty( + io->u.cert.certContext, + CERT_KEY_PROV_INFO_PROP_ID, + prov, &size); + if (!rc) { + nss_ZFreeIf(prov); + return (CRYPT_KEY_PROV_INFO *)NULL; + } + + return prov; +} + +/* forward declaration */ +static void +ckcapi_removeObjectFromHash( + ckcapiInternalObject *io); + +/* + * Finalize - unneeded + * Destroy + * IsTokenObject - CK_TRUE + * GetAttributeCount + * GetAttributeTypes + * GetAttributeSize + * GetAttribute + * SetAttribute + * GetObjectSize + */ + +static CK_RV +ckcapi_mdObject_Destroy( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + ckcapiInternalObject *io = (ckcapiInternalObject *)mdObject->etc; + CK_OBJECT_CLASS objClass; + BOOL rc; + DWORD provType; + DWORD msError; + PRBool isCertType = (PRBool)(ckcapiCert == io->type); + HCERTSTORE hStore = 0; + + if (ckcapiRaw == io->type) { + /* there is not 'object write protected' error, use the next best thing */ + return CKR_TOKEN_WRITE_PROTECTED; + } + + objClass = io->objClass; + if (CKO_CERTIFICATE == objClass) { + PCCERT_CONTEXT certContext; + + /* get the store */ + hStore = CertOpenSystemStore(0, io->u.cert.certStore); + if (0 == hStore) { + rc = 0; + goto loser; + } + certContext = CertFindCertificateInStore(hStore, X509_ASN_ENCODING, 0, + CERT_FIND_EXISTING, io->u.cert.certContext, NULL); + if ((PCCERT_CONTEXT)NULL == certContext) { + rc = 0; + goto loser; + } + rc = CertDeleteCertificateFromStore(certContext); + } else { + char *provName = NULL; + char *containerName = NULL; + HCRYPTPROV hProv; + CRYPT_HASH_BLOB msKeyID; + + if (0 == io->id.size) { + ckcapi_FetchID(io); + } + + if (isCertType) { + CRYPT_KEY_PROV_INFO *provInfo = ckcapi_cert_getProvInfo(io); + provName = nss_ckcapi_WideToUTF8(provInfo->pwszProvName); + containerName = nss_ckcapi_WideToUTF8(provInfo->pwszContainerName); + provType = provInfo->dwProvType; + nss_ZFreeIf(provInfo); + } else { + provName = io->u.key.provName; + containerName = io->u.key.containerName; + provType = io->u.key.provInfo.dwProvType; + io->u.key.provName = NULL; + io->u.key.containerName = NULL; + } + /* first remove the key id pointer */ + msKeyID.cbData = io->id.size; + msKeyID.pbData = io->id.data; + rc = CryptSetKeyIdentifierProperty(&msKeyID, + CERT_KEY_PROV_INFO_PROP_ID, CRYPT_KEYID_DELETE_FLAG, NULL, NULL, NULL); + if (rc) { + rc = CryptAcquireContext(&hProv, containerName, provName, provType, + CRYPT_DELETEKEYSET); + } + nss_ZFreeIf(provName); + nss_ZFreeIf(containerName); + } +loser: + + if (hStore) { + CertCloseStore(hStore, 0); + } + if (!rc) { + msError = GetLastError(); + return CKR_GENERAL_ERROR; + } + + /* remove it from the hash */ + ckcapi_removeObjectFromHash(io); + + /* free the puppy.. */ + nss_ckcapi_DestroyInternalObject(io); + return CKR_OK; +} + +static CK_BBOOL +ckcapi_mdObject_IsTokenObject( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_ULONG +ckcapi_mdObject_GetAttributeCount( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + ckcapiInternalObject *io = (ckcapiInternalObject *)mdObject->etc; + + if (ckcapiRaw == io->type) { + return io->u.raw.n; + } + switch (io->objClass) { + case CKO_CERTIFICATE: + return certAttrsCount; + case CKO_PUBLIC_KEY: + return pubKeyAttrsCount; + case CKO_PRIVATE_KEY: + return privKeyAttrsCount; + default: + break; + } + return 0; +} + +static CK_RV +ckcapi_mdObject_GetAttributeTypes( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ + ckcapiInternalObject *io = (ckcapiInternalObject *)mdObject->etc; + CK_ULONG i; + CK_RV error = CKR_OK; + const CK_ATTRIBUTE_TYPE *attrs = NULL; + CK_ULONG size = ckcapi_mdObject_GetAttributeCount( + mdObject, fwObject, mdSession, fwSession, + mdToken, fwToken, mdInstance, fwInstance, &error); + + if (size != ulCount) { + return CKR_BUFFER_TOO_SMALL; + } + if (io->type == ckcapiRaw) { + attrs = io->u.raw.types; + } else + switch (io->objClass) { + case CKO_CERTIFICATE: + attrs = + certAttrs; + break; + case CKO_PUBLIC_KEY: + attrs = + pubKeyAttrs; + break; + case CKO_PRIVATE_KEY: + attrs = + privKeyAttrs; + break; + default: + return CKR_OK; + } + + for (i = 0; i < size; i++) { + typeArray[i] = attrs[i]; + } + + return CKR_OK; +} + +static CK_ULONG +ckcapi_mdObject_GetAttributeSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + ckcapiInternalObject *io = (ckcapiInternalObject *)mdObject->etc; + + const NSSItem *b; + + b = nss_ckcapi_FetchAttribute(io, attribute); + + if ((const NSSItem *)NULL == b) { + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return 0; + } + return b->size; +} + +static CK_RV +ckcapi_mdObject_SetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value) +{ + return CKR_OK; +} + +static NSSCKFWItem +ckcapi_mdObject_GetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + NSSCKFWItem mdItem; + ckcapiInternalObject *io = (ckcapiInternalObject *)mdObject->etc; + + mdItem.needsFreeing = PR_FALSE; + mdItem.item = (NSSItem *)nss_ckcapi_FetchAttribute(io, attribute); + + if ((NSSItem *)NULL == mdItem.item) { + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + } + + return mdItem; +} + +static CK_ULONG +ckcapi_mdObject_GetObjectSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + ckcapiInternalObject *io = (ckcapiInternalObject *)mdObject->etc; + CK_ULONG rv = 1; + + /* size is irrelevant to this token */ + return rv; +} + +static const NSSCKMDObject + ckcapi_prototype_mdObject = { + (void *)NULL, /* etc */ + NULL, /* Finalize */ + ckcapi_mdObject_Destroy, + ckcapi_mdObject_IsTokenObject, + ckcapi_mdObject_GetAttributeCount, + ckcapi_mdObject_GetAttributeTypes, + ckcapi_mdObject_GetAttributeSize, + ckcapi_mdObject_GetAttribute, + NULL, /* FreeAttribute */ + ckcapi_mdObject_SetAttribute, + ckcapi_mdObject_GetObjectSize, + (void *)NULL /* null terminator */ + }; + +static nssHash *ckcapiInternalObjectHash = NULL; + +NSS_IMPLEMENT NSSCKMDObject * +nss_ckcapi_CreateMDObject( + NSSArena *arena, + ckcapiInternalObject *io, + CK_RV *pError) +{ + if ((nssHash *)NULL == ckcapiInternalObjectHash) { + ckcapiInternalObjectHash = nssHash_CreateItem(NULL, 10); + } + if (ckcapiCert == io->type) { + /* the hash key, not a cryptographic key */ + NSSItem *key = &io->hashKey; + ckcapiInternalObject *old_o = NULL; + + if (key->size == 0) { + ckcapi_FetchHashKey(io); + } + old_o = (ckcapiInternalObject *) + nssHash_Lookup(ckcapiInternalObjectHash, key); + if (!old_o) { + nssHash_Add(ckcapiInternalObjectHash, key, io); + } else if (old_o != io) { + nss_ckcapi_DestroyInternalObject(io); + io = old_o; + } + } + + if ((void *)NULL == io->mdObject.etc) { + (void)nsslibc_memcpy(&io->mdObject, &ckcapi_prototype_mdObject, + sizeof(ckcapi_prototype_mdObject)); + io->mdObject.etc = (void *)io; + } + return &io->mdObject; +} + +static void +ckcapi_removeObjectFromHash( + ckcapiInternalObject *io) +{ + NSSItem *key = &io->hashKey; + + if ((nssHash *)NULL == ckcapiInternalObjectHash) { + return; + } + if (key->size == 0) { + ckcapi_FetchHashKey(io); + } + nssHash_Remove(ckcapiInternalObjectHash, key); + return; +} + +void +nss_ckcapi_DestroyInternalObject( + ckcapiInternalObject *io) +{ + switch (io->type) { + case ckcapiRaw: + return; + case ckcapiCert: + CertFreeCertificateContext(io->u.cert.certContext); + nss_ZFreeIf(io->u.cert.labelData); + nss_ZFreeIf(io->u.cert.key.privateKey); + nss_ZFreeIf(io->u.cert.key.pubKey); + nss_ZFreeIf(io->idData); + break; + case ckcapiBareKey: + nss_ZFreeIf(io->u.key.provInfo.pwszContainerName); + nss_ZFreeIf(io->u.key.provInfo.pwszProvName); + nss_ZFreeIf(io->u.key.provName); + nss_ZFreeIf(io->u.key.containerName); + nss_ZFreeIf(io->u.key.key.privateKey); + nss_ZFreeIf(io->u.key.key.pubKey); + if (0 != io->u.key.hProv) { + CryptReleaseContext(io->u.key.hProv, 0); + } + nss_ZFreeIf(io->idData); + break; + } + nss_ZFreeIf(io); + return; +} + +static ckcapiInternalObject * +nss_ckcapi_CreateCertificate( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSItem value; + NSSItem keyID; + char *storeStr; + ckcapiInternalObject *io = NULL; + PCCERT_CONTEXT certContext = NULL; + PCCERT_CONTEXT storedCertContext = NULL; + CRYPT_KEY_PROV_INFO *prov_info = NULL; + char *nickname = NULL; + HCERTSTORE hStore = 0; + DWORD msError = 0; + PRBool hasID; + CK_RV dummy; + BOOL rc; + + *pError = nss_ckcapi_GetAttribute(CKA_VALUE, pTemplate, + ulAttributeCount, &value); + + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + + *pError = nss_ckcapi_GetAttribute(CKA_ID, pTemplate, + ulAttributeCount, &keyID); + + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + + if (ckcapi_cert_exists(&value, &io)) { + return io; + } + + /* OK, we are creating a new one, figure out what store it belongs to.. + * first get a certContext handle.. */ + certContext = CertCreateCertificateContext(X509_ASN_ENCODING, + value.data, value.size); + if ((PCCERT_CONTEXT)NULL == certContext) { + msError = GetLastError(); + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + + /* do we have a private key laying around... */ + prov_info = ckcapi_cert_getPrivateKeyInfo(certContext, &keyID); + if (prov_info) { + CRYPT_DATA_BLOB msKeyID; + storeStr = "My"; + hasID = PR_TRUE; + rc = CertSetCertificateContextProperty(certContext, + CERT_KEY_PROV_INFO_PROP_ID, + 0, prov_info); + nss_ZFreeIf(prov_info); + if (!rc) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + msKeyID.cbData = keyID.size; + msKeyID.pbData = keyID.data; + rc = CertSetCertificateContextProperty(certContext, + CERT_KEY_IDENTIFIER_PROP_ID, + 0, &msKeyID); + if (!rc) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + + /* does it look like a CA */ + } else if (ckcapi_cert_isCA(certContext)) { + storeStr = ckcapi_cert_isRoot(certContext) ? "CA" : "Root"; + /* does it look like an S/MIME cert */ + } else if (ckcapi_cert_hasEmail(certContext)) { + storeStr = "AddressBook"; + } else { + /* just pick a store */ + storeStr = "CA"; + } + + /* get the nickname, not an error if we can't find it */ + nickname = nss_ckcapi_GetStringAttribute(CKA_LABEL, pTemplate, + ulAttributeCount, &dummy); + if (nickname) { + LPWSTR nicknameUTF16 = NULL; + CRYPT_DATA_BLOB nicknameBlob; + + nicknameUTF16 = nss_ckcapi_UTF8ToWide(nickname); + nss_ZFreeIf(nickname); + nickname = NULL; + if ((LPWSTR)NULL == nicknameUTF16) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + nicknameBlob.cbData = nss_ckcapi_WideSize(nicknameUTF16); + nicknameBlob.pbData = (BYTE *)nicknameUTF16; + rc = CertSetCertificateContextProperty(certContext, + CERT_FRIENDLY_NAME_PROP_ID, 0, &nicknameBlob); + nss_ZFreeIf(nicknameUTF16); + if (!rc) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + } + + hStore = CertOpenSystemStore((HCRYPTPROV)NULL, storeStr); + if (0 == hStore) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + + rc = CertAddCertificateContextToStore(hStore, certContext, + CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES, &storedCertContext); + CertFreeCertificateContext(certContext); + certContext = NULL; + CertCloseStore(hStore, 0); + hStore = 0; + if (!rc) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + + io = nss_ZNEW(NULL, ckcapiInternalObject); + if ((ckcapiInternalObject *)NULL == io) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + io->type = ckcapiCert; + io->objClass = CKO_CERTIFICATE; + io->u.cert.certContext = storedCertContext; + io->u.cert.hasID = hasID; + return io; + +loser: + if (certContext) { + CertFreeCertificateContext(certContext); + certContext = NULL; + } + if (storedCertContext) { + CertFreeCertificateContext(storedCertContext); + storedCertContext = NULL; + } + if (0 != hStore) { + CertCloseStore(hStore, 0); + } + return (ckcapiInternalObject *)NULL; +} + +static char * +ckcapi_getDefaultProvider( + CK_RV *pError) +{ + char *name = NULL; + BOOL rc; + DWORD nameLength = 0; + + rc = CryptGetDefaultProvider(PROV_RSA_FULL, NULL, CRYPT_USER_DEFAULT, NULL, + &nameLength); + if (!rc) { + return (char *)NULL; + } + + name = nss_ZNEWARRAY(NULL, char, nameLength); + if ((char *)NULL == name) { + return (char *)NULL; + } + rc = CryptGetDefaultProvider(PROV_RSA_FULL, NULL, CRYPT_USER_DEFAULT, name, + &nameLength); + if (!rc) { + nss_ZFreeIf(name); + return (char *)NULL; + } + + return name; +} + +static char * +ckcapi_getContainer( + CK_RV *pError, + NSSItem *id) +{ + RPC_STATUS rstat; + UUID uuid; + char *uuidStr; + char *container; + + rstat = UuidCreate(&uuid); + rstat = UuidToString(&uuid, &uuidStr); + + /* convert it from rcp memory to our own */ + container = nssUTF8_Duplicate(uuidStr, NULL); + RpcStringFree(&uuidStr); + + return container; +} + +static CK_RV +ckcapi_buildPrivateKeyBlob( + NSSItem *keyBlob, + NSSItem *modulus, + NSSItem *publicExponent, + NSSItem *privateExponent, + NSSItem *prime1, + NSSItem *prime2, + NSSItem *exponent1, + NSSItem *exponent2, + NSSItem *coefficient, + PRBool isKeyExchange) +{ + CAPI_RSA_KEY_BLOB *keyBlobData = NULL; + unsigned char *target; + unsigned long modSize = modulus->size; + unsigned long dataSize; + CK_RV error = CKR_OK; + + /* validate extras */ + if (privateExponent->size != modSize) { + error = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + if (prime1->size != modSize / 2) { + error = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + if (prime2->size != modSize / 2) { + error = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + if (exponent1->size != modSize / 2) { + error = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + if (exponent2->size != modSize / 2) { + error = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + if (coefficient->size != modSize / 2) { + error = CKR_ATTRIBUTE_VALUE_INVALID; + goto loser; + } + dataSize = (modSize * 4) + (modSize / 2) + sizeof(CAPI_RSA_KEY_BLOB); + keyBlobData = (CAPI_RSA_KEY_BLOB *)nss_ZAlloc(NULL, dataSize); + if ((CAPI_RSA_KEY_BLOB *)NULL == keyBlobData) { + error = CKR_HOST_MEMORY; + goto loser; + } + + keyBlobData->header.bType = PRIVATEKEYBLOB; + keyBlobData->header.bVersion = 0x02; + keyBlobData->header.reserved = 0x00; + keyBlobData->header.aiKeyAlg = isKeyExchange ? CALG_RSA_KEYX : CALG_RSA_SIGN; + keyBlobData->rsa.magic = 0x32415352; + keyBlobData->rsa.bitlen = modSize * 8; + keyBlobData->rsa.pubexp = nss_ckcapi_DataToInt(publicExponent, &error); + if (CKR_OK != error) { + goto loser; + } + + target = &keyBlobData->data[CAPI_MODULUS_OFFSET(modSize)]; + nsslibc_memcpy(target, modulus->data, modulus->size); + modulus->data = target; + ckcapi_ReverseData(modulus); + + target = &keyBlobData->data[CAPI_PRIVATE_EXP_OFFSET(modSize)]; + nsslibc_memcpy(target, privateExponent->data, privateExponent->size); + privateExponent->data = target; + ckcapi_ReverseData(privateExponent); + + target = &keyBlobData->data[CAPI_PRIME_1_OFFSET(modSize)]; + nsslibc_memcpy(target, prime1->data, prime1->size); + prime1->data = target; + ckcapi_ReverseData(prime1); + + target = &keyBlobData->data[CAPI_PRIME_2_OFFSET(modSize)]; + nsslibc_memcpy(target, prime2->data, prime2->size); + prime2->data = target; + ckcapi_ReverseData(prime2); + + target = &keyBlobData->data[CAPI_EXPONENT_1_OFFSET(modSize)]; + nsslibc_memcpy(target, exponent1->data, exponent1->size); + exponent1->data = target; + ckcapi_ReverseData(exponent1); + + target = &keyBlobData->data[CAPI_EXPONENT_2_OFFSET(modSize)]; + nsslibc_memcpy(target, exponent2->data, exponent2->size); + exponent2->data = target; + ckcapi_ReverseData(exponent2); + + target = &keyBlobData->data[CAPI_COEFFICIENT_OFFSET(modSize)]; + nsslibc_memcpy(target, coefficient->data, coefficient->size); + coefficient->data = target; + ckcapi_ReverseData(coefficient); + + keyBlob->data = keyBlobData; + keyBlob->size = dataSize; + + return CKR_OK; + +loser: + nss_ZFreeIf(keyBlobData); + return error; +} + +static ckcapiInternalObject * +nss_ckcapi_CreatePrivateKey( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSItem modulus; + NSSItem publicExponent; + NSSItem privateExponent; + NSSItem exponent1; + NSSItem exponent2; + NSSItem prime1; + NSSItem prime2; + NSSItem coefficient; + NSSItem keyID; + NSSItem keyBlob; + ckcapiInternalObject *io = NULL; + char *providerName = NULL; + char *containerName = NULL; + char *idData = NULL; + CRYPT_KEY_PROV_INFO provInfo; + CRYPT_HASH_BLOB msKeyID; + CK_KEY_TYPE keyType; + HCRYPTPROV hProv = 0; + HCRYPTKEY hKey = 0; + PRBool decrypt; + DWORD keySpec; + DWORD msError; + BOOL rc; + + keyType = nss_ckcapi_GetULongAttribute(CKA_KEY_TYPE, pTemplate, ulAttributeCount, pError); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + if (CKK_RSA != keyType) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (ckcapiInternalObject *)NULL; + } + + decrypt = nss_ckcapi_GetBoolAttribute(CKA_DECRYPT, + pTemplate, ulAttributeCount, pError); + if (CKR_TEMPLATE_INCOMPLETE == *pError) { + decrypt = PR_TRUE; /* default to true */ + } + decrypt = decrypt || nss_ckcapi_GetBoolAttribute(CKA_UNWRAP, + pTemplate, ulAttributeCount, pError); + if (CKR_TEMPLATE_INCOMPLETE == *pError) { + decrypt = PR_TRUE; /* default to true */ + } + keySpec = decrypt ? AT_KEYEXCHANGE : AT_SIGNATURE; + + *pError = nss_ckcapi_GetAttribute(CKA_MODULUS, pTemplate, + ulAttributeCount, &modulus); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_PUBLIC_EXPONENT, pTemplate, + ulAttributeCount, &publicExponent); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_PRIVATE_EXPONENT, pTemplate, + ulAttributeCount, &privateExponent); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_PRIME_1, pTemplate, + ulAttributeCount, &prime1); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_PRIME_2, pTemplate, + ulAttributeCount, &prime2); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_EXPONENT_1, pTemplate, + ulAttributeCount, &exponent1); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_EXPONENT_2, pTemplate, + ulAttributeCount, &exponent2); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_COEFFICIENT, pTemplate, + ulAttributeCount, &coefficient); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + *pError = nss_ckcapi_GetAttribute(CKA_ID, pTemplate, + ulAttributeCount, &keyID); + if (CKR_OK != *pError) { + return (ckcapiInternalObject *)NULL; + } + providerName = ckcapi_getDefaultProvider(pError); + if ((char *)NULL == providerName) { + return (ckcapiInternalObject *)NULL; + } + containerName = ckcapi_getContainer(pError, &keyID); + if ((char *)NULL == containerName) { + goto loser; + } + rc = CryptAcquireContext(&hProv, containerName, providerName, + PROV_RSA_FULL, CRYPT_NEWKEYSET); + if (!rc) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + + *pError = ckcapi_buildPrivateKeyBlob( + &keyBlob, + &modulus, + &publicExponent, + &privateExponent, + &prime1, + &prime2, + &exponent1, + &exponent2, + &coefficient, + decrypt); + if (CKR_OK != *pError) { + goto loser; + } + + rc = CryptImportKey(hProv, keyBlob.data, keyBlob.size, + 0, CRYPT_EXPORTABLE, &hKey); + if (!rc) { + msError = GetLastError(); + *pError = CKR_DEVICE_ERROR; + goto loser; + } + + idData = nss_ZNEWARRAY(NULL, char, keyID.size); + if ((void *)NULL == idData) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + nsslibc_memcpy(idData, keyID.data, keyID.size); + + provInfo.pwszContainerName = nss_ckcapi_UTF8ToWide(containerName); + provInfo.pwszProvName = nss_ckcapi_UTF8ToWide(providerName); + provInfo.dwProvType = PROV_RSA_FULL; + provInfo.dwFlags = 0; + provInfo.cProvParam = 0; + provInfo.rgProvParam = NULL; + provInfo.dwKeySpec = keySpec; + + msKeyID.cbData = keyID.size; + msKeyID.pbData = keyID.data; + + rc = CryptSetKeyIdentifierProperty(&msKeyID, CERT_KEY_PROV_INFO_PROP_ID, + 0, NULL, NULL, &provInfo); + if (!rc) { + goto loser; + } + + /* handle error here */ + io = nss_ZNEW(NULL, ckcapiInternalObject); + if ((ckcapiInternalObject *)NULL == io) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + io->type = ckcapiBareKey; + io->objClass = CKO_PRIVATE_KEY; + io->u.key.provInfo = provInfo; + io->u.key.provName = providerName; + io->u.key.containerName = containerName; + io->u.key.hProv = hProv; /* save the handle */ + io->idData = idData; + io->id.data = idData; + io->id.size = keyID.size; + /* done with the key handle */ + CryptDestroyKey(hKey); + return io; + +loser: + nss_ZFreeIf(containerName); + nss_ZFreeIf(providerName); + nss_ZFreeIf(idData); + if (0 != hProv) { + CryptReleaseContext(hProv, 0); + } + if (0 != hKey) { + CryptDestroyKey(hKey); + } + return (ckcapiInternalObject *)NULL; +} + +NSS_EXTERN NSSCKMDObject * +nss_ckcapi_CreateObject( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + CK_OBJECT_CLASS objClass; + ckcapiInternalObject *io = NULL; + CK_BBOOL isToken; + + /* + * only create token objects + */ + isToken = nss_ckcapi_GetBoolAttribute(CKA_TOKEN, pTemplate, + ulAttributeCount, pError); + if (CKR_OK != *pError) { + return (NSSCKMDObject *)NULL; + } + if (!isToken) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (NSSCKMDObject *)NULL; + } + + /* + * only create keys and certs. + */ + objClass = nss_ckcapi_GetULongAttribute(CKA_CLASS, pTemplate, + ulAttributeCount, pError); + if (CKR_OK != *pError) { + return (NSSCKMDObject *)NULL; + } +#ifdef notdef + if (objClass == CKO_PUBLIC_KEY) { + return CKR_OK; /* fake public key creation, happens as a side effect of + * private key creation */ + } +#endif + if (objClass == CKO_CERTIFICATE) { + io = nss_ckcapi_CreateCertificate(fwSession, pTemplate, + ulAttributeCount, pError); + } else if (objClass == CKO_PRIVATE_KEY) { + io = nss_ckcapi_CreatePrivateKey(fwSession, pTemplate, + ulAttributeCount, pError); + } else { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + } + + if ((ckcapiInternalObject *)NULL == io) { + return (NSSCKMDObject *)NULL; + } + return nss_ckcapi_CreateMDObject(NULL, io, pError); +} diff --git a/security/nss/lib/ckfw/capi/config.mk b/security/nss/lib/ckfw/capi/config.mk new file mode 100644 index 000000000..ec0a86271 --- /dev/null +++ b/security/nss/lib/ckfw/capi/config.mk @@ -0,0 +1,31 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# +# Override TARGETS variable so that only shared libraries +# are specifed as dependencies within rules.mk. +# + +TARGETS = $(SHARED_LIBRARY) +LIBRARY = +IMPORT_LIBRARY = +PROGRAM = + +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 + DEFINES += -DNSSDEBUG +endif + +# +# To create a loadable module on Darwin, we must use -bundle. +# +ifeq ($(OS_TARGET),Darwin) +DSO_LDOPTS = -bundle +endif diff --git a/security/nss/lib/ckfw/capi/constants.c b/security/nss/lib/ckfw/capi/constants.c new file mode 100644 index 000000000..0d4b70110 --- /dev/null +++ b/security/nss/lib/ckfw/capi/constants.c @@ -0,0 +1,63 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * ckcapi/constants.c + * + * Identification and other constants, all collected here in one place. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCAPI_H +#include "nsscapi.h" +#endif /* NSSCAPI_H */ + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckcapi_CryptokiVersion = { + NSS_CKCAPI_CRYPTOKI_VERSION_MAJOR, + NSS_CKCAPI_CRYPTOKI_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckcapi_ManufacturerID = (NSSUTF8 *)"Mozilla Foundation"; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckcapi_LibraryDescription = (NSSUTF8 *)"NSS Access to Microsoft Certificate Store"; + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckcapi_LibraryVersion = { + NSS_CKCAPI_LIBRARY_VERSION_MAJOR, + NSS_CKCAPI_LIBRARY_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckcapi_SlotDescription = (NSSUTF8 *)"Microsoft Certificate Store"; + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckcapi_HardwareVersion = { + NSS_CKCAPI_HARDWARE_VERSION_MAJOR, + NSS_CKCAPI_HARDWARE_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckcapi_FirmwareVersion = { + NSS_CKCAPI_FIRMWARE_VERSION_MAJOR, + NSS_CKCAPI_FIRMWARE_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckcapi_TokenLabel = (NSSUTF8 *)"Microsoft Certificate Store"; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckcapi_TokenModel = (NSSUTF8 *)"1"; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckcapi_TokenSerialNumber = (NSSUTF8 *)"1"; diff --git a/security/nss/lib/ckfw/capi/crsa.c b/security/nss/lib/ckfw/capi/crsa.c new file mode 100644 index 000000000..62f90acb6 --- /dev/null +++ b/security/nss/lib/ckfw/capi/crsa.c @@ -0,0 +1,687 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckcapi.h" +#include "secdert.h" + +#define SSL3_SHAMD5_HASH_SIZE 36 /* LEN_MD5 (16) + LEN_SHA1 (20) */ + +/* + * ckcapi/crsa.c + * + * This file implements the NSSCKMDMechnaism and NSSCKMDCryptoOperation objects + * for the RSA operation on the CAPI cryptoki module. + */ + +/* + * write a Decimal value to a string + */ + +static char * +putDecimalString(char *cstr, unsigned long value) +{ + unsigned long tenpower; + int first = 1; + + for (tenpower = 10000000; tenpower; tenpower /= 10) { + unsigned char digit = (unsigned char)(value / tenpower); + value = value % tenpower; + + /* drop leading zeros */ + if (first && (0 == digit)) { + continue; + } + first = 0; + *cstr++ = digit + '0'; + } + + /* if value was zero, put one of them out */ + if (first) { + *cstr++ = '0'; + } + return cstr; +} + +/* + * Create a Capi OID string value from a DER OID + */ +static char * +nss_ckcapi_GetOidString( + unsigned char *oidTag, + unsigned int oidTagSize, + CK_RV *pError) +{ + unsigned char *oid; + char *oidStr; + char *cstr; + unsigned long value; + unsigned int oidSize; + + if (DER_OBJECT_ID != *oidTag) { + /* wasn't an oid */ + *pError = CKR_DATA_INVALID; + return NULL; + } + oid = nss_ckcapi_DERUnwrap(oidTag, oidTagSize, &oidSize, NULL); + + if (oidSize < 2) { + *pError = CKR_DATA_INVALID; + return NULL; + } + + oidStr = nss_ZNEWARRAY(NULL, char, oidSize * 4); + if ((char *)NULL == oidStr) { + *pError = CKR_HOST_MEMORY; + return NULL; + } + cstr = oidStr; + cstr = putDecimalString(cstr, (*oid) / 40); + *cstr++ = '.'; + cstr = putDecimalString(cstr, (*oid) % 40); + oidSize--; + + value = 0; + while (oidSize--) { + oid++; + value = (value << 7) + (*oid & 0x7f); + if (0 == (*oid & 0x80)) { + *cstr++ = '.'; + cstr = putDecimalString(cstr, value); + value = 0; + } + } + + *cstr = 0; /* NULL terminate */ + + if (value != 0) { + nss_ZFreeIf(oidStr); + *pError = CKR_DATA_INVALID; + return NULL; + } + return oidStr; +} + +/* + * PKCS #11 sign for RSA expects to take a fully DER-encoded hash value, + * which includes the hash OID. CAPI expects to take a Hash Context. While + * CAPI does have the capability of setting a raw hash value, it does not + * have the ability to sign an arbitrary value. This function tries to + * reduce the passed in data into something that CAPI could actually sign. + */ +static CK_RV +ckcapi_GetRawHash( + const NSSItem *input, + NSSItem *hash, + ALG_ID *hashAlg) +{ + unsigned char *current; + unsigned char *algid; + unsigned char *oid; + unsigned char *hashData; + char *oidStr; + CK_RV error; + unsigned int oidSize; + unsigned int size; + /* + * there are 2 types of hashes NSS typically tries to sign, regular + * RSA signature format (with encoded DER_OIDS), and SSL3 Signed hashes. + * CAPI knows not to add any oids to SSL3_Signed hashes, so if we have any + * random hash that is exactly the same size as an SSL3 hash, then we can + * just pass the data through. CAPI has know way of knowing if the value + * is really a combined hash or some other arbitrary data, so it's safe to + * handle this case first. + */ + if (SSL3_SHAMD5_HASH_SIZE == input->size) { + hash->data = input->data; + hash->size = input->size; + *hashAlg = CALG_SSL3_SHAMD5; + return CKR_OK; + } + + current = (unsigned char *)input->data; + + /* make sure we have a sequence tag */ + if ((DER_SEQUENCE | DER_CONSTRUCTED) != *current) { + return CKR_DATA_INVALID; + } + + /* parse the input block to get 1) the hash oid, and 2) the raw hash value. + * unfortunatly CAPI doesn't have a builtin function to do this work, so + * we go ahead and do it by hand here. + * + * format is: + * SEQUENCE { + * SECQUENCE { // algid + * OID {} // oid + * ANY {} // optional params + * } + * OCTECT {} // hash + */ + + /* unwrap */ + algid = nss_ckcapi_DERUnwrap(current, input->size, &size, NULL); + + if (algid + size != current + input->size) { + /* make sure there is not extra data at the end */ + return CKR_DATA_INVALID; + } + + if ((DER_SEQUENCE | DER_CONSTRUCTED) != *algid) { + /* wasn't an algid */ + return CKR_DATA_INVALID; + } + oid = nss_ckcapi_DERUnwrap(algid, size, &oidSize, &hashData); + + if (DER_OCTET_STRING != *hashData) { + /* wasn't a hash */ + return CKR_DATA_INVALID; + } + + /* get the real hash */ + current = hashData; + size = size - (hashData - algid); + hash->data = nss_ckcapi_DERUnwrap(current, size, &hash->size, NULL); + + /* get the real oid as a string. Again, Microsoft does not + * export anything that does this for us */ + oidStr = nss_ckcapi_GetOidString(oid, oidSize, &error); + if ((char *)NULL == oidStr) { + return error; + } + + /* look up the hash alg from the oid (fortunately CAPI does to this) */ + *hashAlg = CertOIDToAlgId(oidStr); + nss_ZFreeIf(oidStr); + if (0 == *hashAlg) { + return CKR_HOST_MEMORY; + } + + /* hash looks reasonably consistent, we should be able to sign it now */ + return CKR_OK; +} + +/* + * So everyone else in the worlds stores their bignum data MSB first, but not + * Microsoft, we need to byte swap everything coming into and out of CAPI. + */ +void +ckcapi_ReverseData(NSSItem *item) +{ + int end = (item->size) - 1; + int middle = (item->size) / 2; + unsigned char *buf = item->data; + int i; + + for (i = 0; i < middle; i++) { + unsigned char tmp = buf[i]; + buf[i] = buf[end - i]; + buf[end - i] = tmp; + } + return; +} + +typedef struct ckcapiInternalCryptoOperationRSAPrivStr + ckcapiInternalCryptoOperationRSAPriv; +struct ckcapiInternalCryptoOperationRSAPrivStr { + NSSCKMDCryptoOperation mdOperation; + NSSCKMDMechanism *mdMechanism; + ckcapiInternalObject *iKey; + HCRYPTPROV hProv; + DWORD keySpec; + HCRYPTKEY hKey; + NSSItem *buffer; +}; + +/* + * ckcapi_mdCryptoOperationRSAPriv_Create + */ +static NSSCKMDCryptoOperation * +ckcapi_mdCryptoOperationRSAPriv_Create( + const NSSCKMDCryptoOperation *proto, + NSSCKMDMechanism *mdMechanism, + NSSCKMDObject *mdKey, + CK_RV *pError) +{ + ckcapiInternalObject *iKey = (ckcapiInternalObject *)mdKey->etc; + const NSSItem *classItem = nss_ckcapi_FetchAttribute(iKey, CKA_CLASS); + const NSSItem *keyType = nss_ckcapi_FetchAttribute(iKey, CKA_KEY_TYPE); + ckcapiInternalCryptoOperationRSAPriv *iOperation; + CK_RV error; + HCRYPTPROV hProv; + DWORD keySpec; + HCRYPTKEY hKey; + + /* make sure we have the right objects */ + if (((const NSSItem *)NULL == classItem) || + (sizeof(CK_OBJECT_CLASS) != classItem->size) || + (CKO_PRIVATE_KEY != *(CK_OBJECT_CLASS *)classItem->data) || + ((const NSSItem *)NULL == keyType) || + (sizeof(CK_KEY_TYPE) != keyType->size) || + (CKK_RSA != *(CK_KEY_TYPE *)keyType->data)) { + *pError = CKR_KEY_TYPE_INCONSISTENT; + return (NSSCKMDCryptoOperation *)NULL; + } + + error = nss_ckcapi_FetchKeyContainer(iKey, &hProv, &keySpec, &hKey); + if (error != CKR_OK) { + *pError = error; + return (NSSCKMDCryptoOperation *)NULL; + } + + iOperation = nss_ZNEW(NULL, ckcapiInternalCryptoOperationRSAPriv); + if ((ckcapiInternalCryptoOperationRSAPriv *)NULL == iOperation) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDCryptoOperation *)NULL; + } + iOperation->mdMechanism = mdMechanism; + iOperation->iKey = iKey; + iOperation->hProv = hProv; + iOperation->keySpec = keySpec; + iOperation->hKey = hKey; + + nsslibc_memcpy(&iOperation->mdOperation, + proto, sizeof(NSSCKMDCryptoOperation)); + iOperation->mdOperation.etc = iOperation; + + return &iOperation->mdOperation; +} + +static CK_RV +ckcapi_mdCryptoOperationRSAPriv_Destroy( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + ckcapiInternalCryptoOperationRSAPriv *iOperation = + (ckcapiInternalCryptoOperationRSAPriv *)mdOperation->etc; + + if (iOperation->hKey) { + CryptDestroyKey(iOperation->hKey); + } + if (iOperation->buffer) { + nssItem_Destroy(iOperation->buffer); + } + nss_ZFreeIf(iOperation); + return CKR_OK; +} + +static CK_ULONG +ckcapi_mdCryptoOperationRSA_GetFinalLength( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + ckcapiInternalCryptoOperationRSAPriv *iOperation = + (ckcapiInternalCryptoOperationRSAPriv *)mdOperation->etc; + const NSSItem *modulus = + nss_ckcapi_FetchAttribute(iOperation->iKey, CKA_MODULUS); + + return modulus->size; +} + +/* + * ckcapi_mdCryptoOperationRSADecrypt_GetOperationLength + * we won't know the length until we actually decrypt the + * input block. Since we go to all the work to decrypt the + * the block, we'll save if for when the block is asked for + */ +static CK_ULONG +ckcapi_mdCryptoOperationRSADecrypt_GetOperationLength( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *input, + CK_RV *pError) +{ + ckcapiInternalCryptoOperationRSAPriv *iOperation = + (ckcapiInternalCryptoOperationRSAPriv *)mdOperation->etc; + BOOL rc; + + /* Microsoft's Decrypt operation works in place. Since we don't want + * to trash our input buffer, we make a copy of it */ + iOperation->buffer = nssItem_Duplicate((NSSItem *)input, NULL, NULL); + if ((NSSItem *)NULL == iOperation->buffer) { + *pError = CKR_HOST_MEMORY; + return 0; + } + /* Sigh, reverse it */ + ckcapi_ReverseData(iOperation->buffer); + + rc = CryptDecrypt(iOperation->hKey, 0, TRUE, 0, + iOperation->buffer->data, &iOperation->buffer->size); + if (!rc) { + DWORD msError = GetLastError(); + switch (msError) { + case NTE_BAD_DATA: + *pError = + CKR_ENCRYPTED_DATA_INVALID; + break; + case NTE_FAIL: + case NTE_BAD_UID: + *pError = + CKR_DEVICE_ERROR; + break; + default: + *pError = + CKR_GENERAL_ERROR; + } + return 0; + } + + return iOperation->buffer->size; +} + +/* + * ckcapi_mdCryptoOperationRSADecrypt_UpdateFinal + * + * NOTE: ckcapi_mdCryptoOperationRSADecrypt_GetOperationLength is presumed to + * have been called previously. + */ +static CK_RV +ckcapi_mdCryptoOperationRSADecrypt_UpdateFinal( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *input, + NSSItem *output) +{ + ckcapiInternalCryptoOperationRSAPriv *iOperation = + (ckcapiInternalCryptoOperationRSAPriv *)mdOperation->etc; + NSSItem *buffer = iOperation->buffer; + + if ((NSSItem *)NULL == buffer) { + return CKR_GENERAL_ERROR; + } + nsslibc_memcpy(output->data, buffer->data, buffer->size); + output->size = buffer->size; + return CKR_OK; +} + +/* + * ckcapi_mdCryptoOperationRSASign_UpdateFinal + * + */ +static CK_RV +ckcapi_mdCryptoOperationRSASign_UpdateFinal( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *input, + NSSItem *output) +{ + ckcapiInternalCryptoOperationRSAPriv *iOperation = + (ckcapiInternalCryptoOperationRSAPriv *)mdOperation->etc; + CK_RV error = CKR_OK; + DWORD msError; + NSSItem hash; + HCRYPTHASH hHash = 0; + ALG_ID hashAlg; + DWORD hashSize; + DWORD len; /* temp length value we throw away */ + BOOL rc; + + /* + * PKCS #11 sign for RSA expects to take a fully DER-encoded hash value, + * which includes the hash OID. CAPI expects to take a Hash Context. While + * CAPI does have the capability of setting a raw hash value, it does not + * have the ability to sign an arbitrary value. This function tries to + * reduce the passed in data into something that CAPI could actually sign. + */ + error = ckcapi_GetRawHash(input, &hash, &hashAlg); + if (CKR_OK != error) { + goto loser; + } + + rc = CryptCreateHash(iOperation->hProv, hashAlg, 0, 0, &hHash); + if (!rc) { + goto loser; + } + + /* make sure the hash lens match before we set it */ + len = sizeof(DWORD); + rc = CryptGetHashParam(hHash, HP_HASHSIZE, (BYTE *)&hashSize, &len, 0); + if (!rc) { + goto loser; + } + + if (hash.size != hashSize) { + /* The input must have been bad for this to happen */ + error = CKR_DATA_INVALID; + goto loser; + } + + /* we have an explicit hash, set it, note that the length is + * implicit by the hashAlg used in create */ + rc = CryptSetHashParam(hHash, HP_HASHVAL, hash.data, 0); + if (!rc) { + goto loser; + } + + /* OK, we have the data in a hash structure, sign it! */ + rc = CryptSignHash(hHash, iOperation->keySpec, NULL, 0, + output->data, &output->size); + if (!rc) { + goto loser; + } + + /* Don't return a signature that might have been broken because of a cosmic + * ray, or a broken processor, verify that it is valid... */ + rc = CryptVerifySignature(hHash, output->data, output->size, + iOperation->hKey, NULL, 0); + if (!rc) { + goto loser; + } + + /* OK, Microsoft likes to do things completely differently than anyone + * else. We need to reverse the data we received here */ + ckcapi_ReverseData(output); + CryptDestroyHash(hHash); + return CKR_OK; + +loser: + /* map the microsoft error */ + if (CKR_OK == error) { + msError = GetLastError(); + switch (msError) { + case ERROR_NOT_ENOUGH_MEMORY: + error = + CKR_HOST_MEMORY; + break; + case NTE_NO_MEMORY: + error = + CKR_DEVICE_MEMORY; + break; + case ERROR_MORE_DATA: + return CKR_BUFFER_TOO_SMALL; + case ERROR_INVALID_PARAMETER: /* these params were derived from the */ + case ERROR_INVALID_HANDLE: /* inputs, so if they are bad, the input */ + case NTE_BAD_ALGID: /* data is bad */ + case NTE_BAD_HASH: + error = + CKR_DATA_INVALID; + break; + case ERROR_BUSY: + case NTE_FAIL: + case NTE_BAD_UID: + error = + CKR_DEVICE_ERROR; + break; + default: + error = + CKR_GENERAL_ERROR; + break; + } + } + if (hHash) { + CryptDestroyHash(hHash); + } + return error; +} + +NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation + ckcapi_mdCryptoOperationRSADecrypt_proto = { + NULL, /* etc */ + ckcapi_mdCryptoOperationRSAPriv_Destroy, + NULL, /* GetFinalLengh - not needed for one shot Decrypt/Encrypt */ + ckcapi_mdCryptoOperationRSADecrypt_GetOperationLength, + NULL, /* Final - not needed for one shot operation */ + NULL, /* Update - not needed for one shot operation */ + NULL, /* DigetUpdate - not needed for one shot operation */ + ckcapi_mdCryptoOperationRSADecrypt_UpdateFinal, + NULL, /* UpdateCombo - not needed for one shot operation */ + NULL, /* DigetKey - not needed for one shot operation */ + (void *)NULL /* null terminator */ + }; + +NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation + ckcapi_mdCryptoOperationRSASign_proto = { + NULL, /* etc */ + ckcapi_mdCryptoOperationRSAPriv_Destroy, + ckcapi_mdCryptoOperationRSA_GetFinalLength, + NULL, /* GetOperationLengh - not needed for one shot Sign/Verify */ + NULL, /* Final - not needed for one shot operation */ + NULL, /* Update - not needed for one shot operation */ + NULL, /* DigetUpdate - not needed for one shot operation */ + ckcapi_mdCryptoOperationRSASign_UpdateFinal, + NULL, /* UpdateCombo - not needed for one shot operation */ + NULL, /* DigetKey - not needed for one shot operation */ + (void *)NULL /* null terminator */ + }; + +/********** NSSCKMDMechansim functions ***********************/ +/* + * ckcapi_mdMechanismRSA_Destroy + */ +static void +ckcapi_mdMechanismRSA_Destroy( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_ZFreeIf(fwMechanism); +} + +/* + * ckcapi_mdMechanismRSA_GetMinKeySize + */ +static CK_ULONG +ckcapi_mdMechanismRSA_GetMinKeySize( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return 384; +} + +/* + * ckcapi_mdMechanismRSA_GetMaxKeySize + */ +static CK_ULONG +ckcapi_mdMechanismRSA_GetMaxKeySize( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return 16384; +} + +/* + * ckcapi_mdMechanismRSA_DecryptInit + */ +static NSSCKMDCryptoOperation * +ckcapi_mdMechanismRSA_DecryptInit( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError) +{ + return ckcapi_mdCryptoOperationRSAPriv_Create( + &ckcapi_mdCryptoOperationRSADecrypt_proto, + mdMechanism, mdKey, pError); +} + +/* + * ckcapi_mdMechanismRSA_SignInit + */ +static NSSCKMDCryptoOperation * +ckcapi_mdMechanismRSA_SignInit( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError) +{ + return ckcapi_mdCryptoOperationRSAPriv_Create( + &ckcapi_mdCryptoOperationRSASign_proto, + mdMechanism, mdKey, pError); +} + +NSS_IMPLEMENT_DATA const NSSCKMDMechanism + nss_ckcapi_mdMechanismRSA = { + (void *)NULL, /* etc */ + ckcapi_mdMechanismRSA_Destroy, + ckcapi_mdMechanismRSA_GetMinKeySize, + ckcapi_mdMechanismRSA_GetMaxKeySize, + NULL, /* GetInHardware - default false */ + NULL, /* EncryptInit - default errs */ + ckcapi_mdMechanismRSA_DecryptInit, + NULL, /* DigestInit - default errs*/ + ckcapi_mdMechanismRSA_SignInit, + NULL, /* VerifyInit - default errs */ + ckcapi_mdMechanismRSA_SignInit, /* SignRecoverInit */ + NULL, /* VerifyRecoverInit - default errs */ + NULL, /* GenerateKey - default errs */ + NULL, /* GenerateKeyPair - default errs */ + NULL, /* GetWrapKeyLength - default errs */ + NULL, /* WrapKey - default errs */ + NULL, /* UnwrapKey - default errs */ + NULL, /* DeriveKey - default errs */ + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/capi/csession.c b/security/nss/lib/ckfw/capi/csession.c new file mode 100644 index 000000000..5b268ead1 --- /dev/null +++ b/security/nss/lib/ckfw/capi/csession.c @@ -0,0 +1,87 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckcapi.h" + +/* + * ckcapi/csession.c + * + * This file implements the NSSCKMDSession object for the + * "nss to capi" cryptoki module. + */ + +static NSSCKMDFindObjects * +ckcapi_mdSession_FindObjectsInit( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + return nss_ckcapi_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError); +} + +static NSSCKMDObject * +ckcapi_mdSession_CreateObject( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + return nss_ckcapi_CreateObject(fwSession, pTemplate, ulAttributeCount, pError); +} + +NSS_IMPLEMENT NSSCKMDSession * +nss_ckcapi_CreateSession( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ + NSSArena *arena; + NSSCKMDSession *rv; + + arena = NSSCKFWSession_GetArena(fwSession, pError); + if ((NSSArena *)NULL == arena) { + return (NSSCKMDSession *)NULL; + } + + rv = nss_ZNEW(arena, NSSCKMDSession); + if ((NSSCKMDSession *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSession *)NULL; + } + + /* + * rv was zeroed when allocated, so we only + * need to set the non-zero members. + */ + + rv->etc = (void *)fwSession; + /* rv->Close */ + /* rv->GetDeviceError */ + /* rv->Login */ + /* rv->Logout */ + /* rv->InitPIN */ + /* rv->SetPIN */ + /* rv->GetOperationStateLen */ + /* rv->GetOperationState */ + /* rv->SetOperationState */ + rv->CreateObject = ckcapi_mdSession_CreateObject; + /* rv->CopyObject */ + rv->FindObjectsInit = ckcapi_mdSession_FindObjectsInit; + /* rv->SeedRandom */ + /* rv->GetRandom */ + /* rv->null */ + + return rv; +} diff --git a/security/nss/lib/ckfw/capi/cslot.c b/security/nss/lib/ckfw/capi/cslot.c new file mode 100644 index 000000000..8a39b7888 --- /dev/null +++ b/security/nss/lib/ckfw/capi/cslot.c @@ -0,0 +1,81 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckcapi.h" + +/* + * ckcapi/cslot.c + * + * This file implements the NSSCKMDSlot object for the + * "nss to capi" cryptoki module. + */ + +static NSSUTF8 * +ckcapi_mdSlot_GetSlotDescription( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_SlotDescription; +} + +static NSSUTF8 * +ckcapi_mdSlot_GetManufacturerID( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_ManufacturerID; +} + +static CK_VERSION +ckcapi_mdSlot_GetHardwareVersion( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckcapi_HardwareVersion; +} + +static CK_VERSION +ckcapi_mdSlot_GetFirmwareVersion( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckcapi_FirmwareVersion; +} + +static NSSCKMDToken * +ckcapi_mdSlot_GetToken( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSCKMDToken *)&nss_ckcapi_mdToken; +} + +NSS_IMPLEMENT_DATA const NSSCKMDSlot + nss_ckcapi_mdSlot = { + (void *)NULL, /* etc */ + NULL, /* Initialize */ + NULL, /* Destroy */ + ckcapi_mdSlot_GetSlotDescription, + ckcapi_mdSlot_GetManufacturerID, + NULL, /* GetTokenPresent -- defaults to true */ + NULL, /* GetRemovableDevice -- defaults to false */ + NULL, /* GetHardwareSlot -- defaults to false */ + ckcapi_mdSlot_GetHardwareVersion, + ckcapi_mdSlot_GetFirmwareVersion, + ckcapi_mdSlot_GetToken, + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/capi/ctoken.c b/security/nss/lib/ckfw/capi/ctoken.c new file mode 100644 index 000000000..cc95c17b6 --- /dev/null +++ b/security/nss/lib/ckfw/capi/ctoken.c @@ -0,0 +1,184 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckcapi.h" + +/* + * ckcapi/ctoken.c + * + * This file implements the NSSCKMDToken object for the + * "nss to capi" cryptoki module. + */ + +static NSSUTF8 * +ckcapi_mdToken_GetLabel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_TokenLabel; +} + +static NSSUTF8 * +ckcapi_mdToken_GetManufacturerID( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_ManufacturerID; +} + +static NSSUTF8 * +ckcapi_mdToken_GetModel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_TokenModel; +} + +static NSSUTF8 * +ckcapi_mdToken_GetSerialNumber( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckcapi_TokenSerialNumber; +} + +static CK_BBOOL +ckcapi_mdToken_GetIsWriteProtected( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_FALSE; +} + +/* fake out Mozilla so we don't try to initialize the token */ +static CK_BBOOL +ckcapi_mdToken_GetUserPinInitialized( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_VERSION +ckcapi_mdToken_GetHardwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckcapi_HardwareVersion; +} + +static CK_VERSION +ckcapi_mdToken_GetFirmwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckcapi_FirmwareVersion; +} + +static NSSCKMDSession * +ckcapi_mdToken_OpenSession( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_BBOOL rw, + CK_RV *pError) +{ + return nss_ckcapi_CreateSession(fwSession, pError); +} + +static CK_ULONG +ckcapi_mdToken_GetMechanismCount( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return (CK_ULONG)1; +} + +static CK_RV +ckcapi_mdToken_GetMechanismTypes( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_MECHANISM_TYPE types[]) +{ + types[0] = CKM_RSA_PKCS; + return CKR_OK; +} + +static NSSCKMDMechanism * +ckcapi_mdToken_GetMechanism( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_MECHANISM_TYPE which, + CK_RV *pError) +{ + if (which != CKM_RSA_PKCS) { + *pError = CKR_MECHANISM_INVALID; + return (NSSCKMDMechanism *)NULL; + } + return (NSSCKMDMechanism *)&nss_ckcapi_mdMechanismRSA; +} + +NSS_IMPLEMENT_DATA const NSSCKMDToken + nss_ckcapi_mdToken = { + (void *)NULL, /* etc */ + NULL, /* Setup */ + NULL, /* Invalidate */ + NULL, /* InitToken -- default errs */ + ckcapi_mdToken_GetLabel, + ckcapi_mdToken_GetManufacturerID, + ckcapi_mdToken_GetModel, + ckcapi_mdToken_GetSerialNumber, + NULL, /* GetHasRNG -- default is false */ + ckcapi_mdToken_GetIsWriteProtected, + NULL, /* GetLoginRequired -- default is false */ + ckcapi_mdToken_GetUserPinInitialized, + NULL, /* GetRestoreKeyNotNeeded -- irrelevant */ + NULL, /* GetHasClockOnToken -- default is false */ + NULL, /* GetHasProtectedAuthenticationPath -- default is false */ + NULL, /* GetSupportsDualCryptoOperations -- default is false */ + NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetMaxPinLen -- irrelevant */ + NULL, /* GetMinPinLen -- irrelevant */ + NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ + ckcapi_mdToken_GetHardwareVersion, + ckcapi_mdToken_GetFirmwareVersion, + NULL, /* GetUTCTime -- no clock */ + ckcapi_mdToken_OpenSession, + ckcapi_mdToken_GetMechanismCount, + ckcapi_mdToken_GetMechanismTypes, + ckcapi_mdToken_GetMechanism, + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/capi/manifest.mn b/security/nss/lib/ckfw/capi/manifest.mn new file mode 100644 index 000000000..38effd759 --- /dev/null +++ b/security/nss/lib/ckfw/capi/manifest.mn @@ -0,0 +1,33 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +CORE_DEPTH = ../../../.. + +MODULE = nss +MAPFILE = $(OBJDIR)/nsscapi.def + +EXPORTS = \ + nsscapi.h \ + $(NULL) + +CSRCS = \ + anchor.c \ + constants.c \ + cfind.c \ + cinst.c \ + cobject.c \ + crsa.c \ + csession.c \ + cslot.c \ + ctoken.c \ + ckcapiver.c \ + staticobj.c \ + $(NULL) + +REQUIRES = nspr + +LIBRARY_NAME = nsscapi + +#EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -lplc4 -lplds4 diff --git a/security/nss/lib/ckfw/capi/nsscapi.def b/security/nss/lib/ckfw/capi/nsscapi.def new file mode 100644 index 000000000..d7e68c7f4 --- /dev/null +++ b/security/nss/lib/ckfw/capi/nsscapi.def @@ -0,0 +1,26 @@ +;+# +;+# This Source Code Form is subject to the terms of the Mozilla Public +;+# License, v. 2.0. If a copy of the MPL was not distributed with this +;+# file, You can obtain one at http://mozilla.org/MPL/2.0/. +;+# +;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS +;+# 1. For all unix platforms, the string ";-" means "remove this line" +;+# 2. For all unix platforms, the string " DATA " will be removed from any +;+# line on which it occurs. +;+# 3. Lines containing ";+" will have ";+" removed on SUN and LINUX. +;+# On AIX, lines containing ";+" will be removed. +;+# 4. For all unix platforms, the string ";;" will thave the ";;" removed. +;+# 5. For all unix platforms, after the above processing has taken place, +;+# all characters after the first ";" on the line will be removed. +;+# And for AIX, the first ";" will also be removed. +;+# This file is passed directly to windows. Since ';' is a comment, all UNIX +;+# directives are hidden behind ";", ";+", and ";-" +;+ +;+NSS_3.1 { # NSS 3.1 release +;+ global: +LIBRARY nsscapi ;- +EXPORTS ;- +C_GetFunctionList; +;+ local: +;+*; +;+}; diff --git a/security/nss/lib/ckfw/capi/nsscapi.h b/security/nss/lib/ckfw/capi/nsscapi.h new file mode 100644 index 000000000..78bf38b28 --- /dev/null +++ b/security/nss/lib/ckfw/capi/nsscapi.h @@ -0,0 +1,41 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSCAPI_H +#define NSSCAPI_H + +/* + * NSS CKCAPI Version numbers. + * + * These are the version numbers for the capi module packaged with + * this release on NSS. To determine the version numbers of the builtin + * module you are using, use the appropriate PKCS #11 calls. + * + * These version numbers detail changes to the PKCS #11 interface. They map + * to the PKCS #11 spec versions. + */ +#define NSS_CKCAPI_CRYPTOKI_VERSION_MAJOR 2 +#define NSS_CKCAPI_CRYPTOKI_VERSION_MINOR 20 + +/* These version numbers detail the changes + * to the list of trusted certificates. + * + * NSS_CKCAPI_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_CKCAPI_LIBRARY_VERSION_MAJOR 1 +#define NSS_CKCAPI_LIBRARY_VERSION_MINOR 1 +#define NSS_CKCAPI_LIBRARY_VERSION "1.1" + +/* These version numbers detail the semantic changes to the ckfw engine. */ +#define NSS_CKCAPI_HARDWARE_VERSION_MAJOR 1 +#define NSS_CKCAPI_HARDWARE_VERSION_MINOR 0 + +/* These version numbers detail the semantic changes to ckbi itself + * (new PKCS #11 objects), etc. */ +#define NSS_CKCAPI_FIRMWARE_VERSION_MAJOR 1 +#define NSS_CKCAPI_FIRMWARE_VERSION_MINOR 0 + +#endif /* NSSCKBI_H */ diff --git a/security/nss/lib/ckfw/capi/nsscapi.rc b/security/nss/lib/ckfw/capi/nsscapi.rc new file mode 100644 index 000000000..27912009b --- /dev/null +++ b/security/nss/lib/ckfw/capi/nsscapi.rc @@ -0,0 +1,64 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsscapi.h" +#include <winver.h> + +#define MY_LIBNAME "nsscapi" +#define MY_FILEDESCRIPTION "NSS Access to Microsoft CAPI" + +#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_CKCAPI_LIBRARY_VERSION_MAJOR,NSS_CKCAPI_LIBRARY_VERSION_MINOR,0,0 + PRODUCTVERSION NSS_CKCAPI_LIBRARY_VERSION_MAJOR,NSS_CKCAPI_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", "Mozilla Foundation\0" + VALUE "FileDescription", MY_FILEDESCRIPTION MY_DEBUG_STR "\0" + VALUE "FileVersion", NSS_CKCAPI_LIBRARY_VERSION "\0" + VALUE "InternalName", MY_INTERNAL_NAME "\0" + VALUE "OriginalFilename", MY_INTERNAL_NAME ".dll\0" + VALUE "ProductName", "Network Security Services\0" + VALUE "ProductVersion", NSS_CKCAPI_LIBRARY_VERSION "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/security/nss/lib/ckfw/capi/staticobj.c b/security/nss/lib/ckfw/capi/staticobj.c new file mode 100644 index 000000000..2d67a34b3 --- /dev/null +++ b/security/nss/lib/ckfw/capi/staticobj.c @@ -0,0 +1,40 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKCAPI_H +#include "ckcapi.h" +#endif /* CKCAPI_H */ + +static const CK_TRUST ckt_netscape_valid = CKT_NETSCAPE_VALID; +static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE; +static const CK_TRUST ckt_netscape_trusted_delegator = CKT_NETSCAPE_TRUSTED_DELEGATOR; +static const CK_OBJECT_CLASS cko_netscape_trust = CKO_NETSCAPE_TRUST; +static const CK_BBOOL ck_true = CK_TRUE; +static const CK_OBJECT_CLASS cko_data = CKO_DATA; +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_builtin_root_list = CKO_NETSCAPE_BUILTIN_ROOT_LIST; + +/* example of a static object */ +static const CK_ATTRIBUTE_TYPE nss_ckcapi_types_1[] = { + CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL +}; + +static const NSSItem nss_ckcapi_items_1[] = { + { (void *)&cko_data, (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 *)"Mozilla CAPI Access", (PRUint32)20 } +}; + +ckcapiInternalObject nss_ckcapi_data[] = { + { + ckcapiRaw, + { 5, nss_ckcapi_types_1, nss_ckcapi_items_1 }, + }, + +}; + +const PRUint32 nss_ckcapi_nObjects = 1; diff --git a/security/nss/lib/ckfw/ck.api b/security/nss/lib/ckfw/ck.api new file mode 100644 index 000000000..810e3db5c --- /dev/null +++ b/security/nss/lib/ckfw/ck.api @@ -0,0 +1,541 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +# This file is in part derived from a file "pkcs11f.h" made available +# by RSA Security at ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/pkcs11f.h + +# Fields +# FUNCTION introduces a Cryptoki function +# CK_type specifies and introduces an argument +# + +# General-purpose + +# C_Initialize initializes the Cryptoki library. +FUNCTION C_Initialize +CK_VOID_PTR pInitArgs # if this is not NULL_PTR, it gets + # cast to CK_C_INITIALIZE_ARGS_PTR + # and dereferenced + +# C_Finalize indicates that an application is done with the +# Cryptoki library. +FUNCTION C_Finalize +CK_VOID_PTR pReserved # reserved. Should be NULL_PTR + +# C_GetInfo returns general information about Cryptoki. +FUNCTION C_GetInfo +CK_INFO_PTR pInfo # location that receives information + +# C_GetFunctionList returns the function list. +FUNCTION C_GetFunctionList +CK_FUNCTION_LIST_PTR_PTR ppFunctionList # receives pointer to function + # list + + +# Slot and token management + +# C_GetSlotList obtains a list of slots in the system. +FUNCTION C_GetSlotList +CK_BBOOL tokenPresent # only slots with tokens? +CK_SLOT_ID_PTR pSlotList # receives array of slot IDs +CK_ULONG_PTR pulCount # receives number of slots + +# C_GetSlotInfo obtains information about a particular slot in the +# system. +FUNCTION C_GetSlotInfo +CK_SLOT_ID slotID # the ID of the slot +CK_SLOT_INFO_PTR pInfo # receives the slot information + +# C_GetTokenInfo obtains information about a particular token in the +# system. +FUNCTION C_GetTokenInfo +CK_SLOT_ID slotID # ID of the token's slot +CK_TOKEN_INFO_PTR pInfo # receives the token information + +# C_GetMechanismList obtains a list of mechanism types supported by a +# token. +FUNCTION C_GetMechanismList +CK_SLOT_ID slotID # ID of token's slot +CK_MECHANISM_TYPE_PTR pMechanismList # gets mech. array +CK_ULONG_PTR pulCount # gets # of mechs. + +# C_GetMechanismInfo obtains information about a particular mechanism +# possibly supported by a token. +FUNCTION C_GetMechanismInfo +CK_SLOT_ID slotID # ID of the token's slot +CK_MECHANISM_TYPE type # type of mechanism +CK_MECHANISM_INFO_PTR pInfo # receives mechanism info + +# C_InitToken initializes a token. +FUNCTION C_InitToken +CK_SLOT_ID slotID # ID of the token's slot +CK_CHAR_PTR pPin # the SO's initial PIN +CK_ULONG ulPinLen # length in bytes of the PIN +CK_CHAR_PTR pLabel # 32-byte token label (blank padded) + +# C_InitPIN initializes the normal user's PIN. +FUNCTION C_InitPIN +CK_SESSION_HANDLE hSession # the session's handle +CK_CHAR_PTR pPin # the normal user's PIN +CK_ULONG ulPinLen # length in bytes of the PIN + +# C_SetPIN modifies the PIN of the user who is logged in. +FUNCTION C_SetPIN +CK_SESSION_HANDLE hSession # the session's handle +CK_CHAR_PTR pOldPin # the old PIN +CK_ULONG ulOldLen # length of the old PIN +CK_CHAR_PTR pNewPin # the new PIN +CK_ULONG ulNewLen # length of the new PIN + + +# Session management + +# C_OpenSession opens a session between an application and a token. +FUNCTION C_OpenSession +CK_SLOT_ID slotID # the slot's ID +CK_FLAGS flags # from CK_SESSION_INFO +CK_VOID_PTR pApplication # passed to callback +CK_NOTIFY Notify # callback function +CK_SESSION_HANDLE_PTR phSession # gets session handle + +# C_CloseSession closes a session between an application and a token. +FUNCTION C_CloseSession +CK_SESSION_HANDLE hSession # the session's handle + +# C_CloseAllSessions closes all sessions with a token. +FUNCTION C_CloseAllSessions +CK_SLOT_ID slotID # the token's slot + +# C_GetSessionInfo obtains information about the session. +FUNCTION C_GetSessionInfo +CK_SESSION_HANDLE hSession # the session's handle +CK_SESSION_INFO_PTR pInfo # receives session info + +# C_GetOperationState obtains the state of the cryptographic +# operation in a session. +FUNCTION C_GetOperationState +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pOperationState # gets state +CK_ULONG_PTR pulOperationStateLen # gets state length + +# C_SetOperationState restores the state of the cryptographic +# operation in a session. +FUNCTION C_SetOperationState +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pOperationState # holds state +CK_ULONG ulOperationStateLen # holds state length +CK_OBJECT_HANDLE hEncryptionKey # en/decryption key +CK_OBJECT_HANDLE hAuthenticationKey # sign/verify key + +# C_Login logs a user into a token. +FUNCTION C_Login +CK_SESSION_HANDLE hSession # the session's handle +CK_USER_TYPE userType # the user type +CK_CHAR_PTR pPin # the user's PIN +CK_ULONG ulPinLen # the length of the PIN + +# C_Logout logs a user out from a token. +FUNCTION C_Logout +CK_SESSION_HANDLE hSession # the session's handle + + +# Object management + +# C_CreateObject creates a new object. +FUNCTION C_CreateObject +CK_SESSION_HANDLE hSession # the session's handle +CK_ATTRIBUTE_PTR pTemplate # the object's template +CK_ULONG ulCount # attributes in template +CK_OBJECT_HANDLE_PTR phObject # gets new object's handle. + +# C_CopyObject copies an object, creating a new object for the copy. +FUNCTION C_CopyObject +CK_SESSION_HANDLE hSession # the session's handle +CK_OBJECT_HANDLE hObject # the object's handle +CK_ATTRIBUTE_PTR pTemplate # template for new object +CK_ULONG ulCount # attributes in template +CK_OBJECT_HANDLE_PTR phNewObject # receives handle of copy + +# C_DestroyObject destroys an object. +FUNCTION C_DestroyObject +CK_SESSION_HANDLE hSession # the session's handle +CK_OBJECT_HANDLE hObject # the object's handle + +# C_GetObjectSize gets the size of an object in bytes. +FUNCTION C_GetObjectSize +CK_SESSION_HANDLE hSession # the session's handle +CK_OBJECT_HANDLE hObject # the object's handle +CK_ULONG_PTR pulSize # receives size of object + +# C_GetAttributeValue obtains the value of one or more object +# attributes. +FUNCTION C_GetAttributeValue +CK_SESSION_HANDLE hSession # the session's handle +CK_OBJECT_HANDLE hObject # the object's handle +CK_ATTRIBUTE_PTR pTemplate # specifies attrs; gets vals +CK_ULONG ulCount # attributes in template + +# C_SetAttributeValue modifies the value of one or more object +# attributes +FUNCTION C_SetAttributeValue +CK_SESSION_HANDLE hSession # the session's handle +CK_OBJECT_HANDLE hObject # the object's handle +CK_ATTRIBUTE_PTR pTemplate # specifies attrs and values +CK_ULONG ulCount # attributes in template + +# C_FindObjectsInit initializes a search for token and session +# objects that match a template. +FUNCTION C_FindObjectsInit +CK_SESSION_HANDLE hSession # the session's handle +CK_ATTRIBUTE_PTR pTemplate # attribute values to match +CK_ULONG ulCount # attrs in search template + +# C_FindObjects continues a search for token and session objects that +# match a template, obtaining additional object handles. +FUNCTION C_FindObjects +CK_SESSION_HANDLE hSession # session's handle +CK_OBJECT_HANDLE_PTR phObject # gets obj. handles +CK_ULONG ulMaxObjectCount # max handles to get +CK_ULONG_PTR pulObjectCount # actual # returned + +# C_FindObjectsFinal finishes a search for token and session objects. +FUNCTION C_FindObjectsFinal +CK_SESSION_HANDLE hSession # the session's handle + + +# Encryption and decryption + +# C_EncryptInit initializes an encryption operation. +FUNCTION C_EncryptInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the encryption mechanism +CK_OBJECT_HANDLE hKey # handle of encryption key + +# C_Encrypt encrypts single-part data. +FUNCTION C_Encrypt +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pData # the plaintext data +CK_ULONG ulDataLen # bytes of plaintext +CK_BYTE_PTR pEncryptedData # gets ciphertext +CK_ULONG_PTR pulEncryptedDataLen # gets c-text size + +# C_EncryptUpdate continues a multiple-part encryption operation. +FUNCTION C_EncryptUpdate +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pPart # the plaintext data +CK_ULONG ulPartLen # plaintext data len +CK_BYTE_PTR pEncryptedPart # gets ciphertext +CK_ULONG_PTR pulEncryptedPartLen # gets c-text size + +# C_EncryptFinal finishes a multiple-part encryption operation. +FUNCTION C_EncryptFinal +CK_SESSION_HANDLE hSession # session handle +CK_BYTE_PTR pLastEncryptedPart # last c-text +CK_ULONG_PTR pulLastEncryptedPartLen # gets last size + +# C_DecryptInit initializes a decryption operation. +FUNCTION C_DecryptInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the decryption mechanism +CK_OBJECT_HANDLE hKey # handle of decryption key + +# C_Decrypt decrypts encrypted data in a single part. +FUNCTION C_Decrypt +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pEncryptedData # ciphertext +CK_ULONG ulEncryptedDataLen # ciphertext length +CK_BYTE_PTR pData # gets plaintext +CK_ULONG_PTR pulDataLen # gets p-text size + +# C_DecryptUpdate continues a multiple-part decryption operation. +FUNCTION C_DecryptUpdate +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pEncryptedPart # encrypted data +CK_ULONG ulEncryptedPartLen # input length +CK_BYTE_PTR pPart # gets plaintext +CK_ULONG_PTR pulPartLen # p-text size + +# C_DecryptFinal finishes a multiple-part decryption operation. +FUNCTION C_DecryptFinal +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pLastPart # gets plaintext +CK_ULONG_PTR pulLastPartLen # p-text size + + +# Message digesting + +# C_DigestInit initializes a message-digesting operation. +FUNCTION C_DigestInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the digesting mechanism + +# C_Digest digests data in a single part. +FUNCTION C_Digest +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pData # data to be digested +CK_ULONG ulDataLen # bytes of data to digest +CK_BYTE_PTR pDigest # gets the message digest +CK_ULONG_PTR pulDigestLen # gets digest length + +# C_DigestUpdate continues a multiple-part message-digesting operation. +FUNCTION C_DigestUpdate +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pPart # data to be digested +CK_ULONG ulPartLen # bytes of data to be digested + +# C_DigestKey continues a multi-part message-digesting operation, by +# digesting the value of a secret key as part of the data already +# digested. +FUNCTION C_DigestKey +CK_SESSION_HANDLE hSession # the session's handle +CK_OBJECT_HANDLE hKey # secret key to digest + +# C_DigestFinal finishes a multiple-part message-digesting operation. +FUNCTION C_DigestFinal +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pDigest # gets the message digest +CK_ULONG_PTR pulDigestLen # gets byte count of digest + + +# Signing and MACing + +# C_SignInit initializes a signature (private key encryption) +# operation, where the signature is (will be) an appendix to the +# data, and plaintext cannot be recovered from the signature. +FUNCTION C_SignInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the signature mechanism +CK_OBJECT_HANDLE hKey # handle of signature key + +# C_Sign signs (encrypts with private key) data in a single part, +# where the signature is (will be) an appendix to the data, and +# plaintext cannot be recovered from the signature. +FUNCTION C_Sign +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pData # the data to sign +CK_ULONG ulDataLen # count of bytes to sign +CK_BYTE_PTR pSignature # gets the signature +CK_ULONG_PTR pulSignatureLen # gets signature length + +# C_SignUpdate continues a multiple-part signature operation, where +# the signature is (will be) an appendix to the data, and plaintext +# cannot be recovered from the signature. +FUNCTION C_SignUpdate +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pPart # the data to sign +CK_ULONG ulPartLen # count of bytes to sign + +# C_SignFinal finishes a multiple-part signature operation, returning +# the signature. +FUNCTION C_SignFinal +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pSignature # gets the signature +CK_ULONG_PTR pulSignatureLen # gets signature length + +# C_SignRecoverInit initializes a signature operation, where the data +# can be recovered from the signature. +FUNCTION C_SignRecoverInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the signature mechanism +CK_OBJECT_HANDLE hKey # handle of the signature key + +# C_SignRecover signs data in a single operation, where the data can +# be recovered from the signature. +FUNCTION C_SignRecover +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pData # the data to sign +CK_ULONG ulDataLen # count of bytes to sign +CK_BYTE_PTR pSignature # gets the signature +CK_ULONG_PTR pulSignatureLen # gets signature length + + +# Verifying signatures and MACs + +# C_VerifyInit initializes a verification operation, where the +# signature is an appendix to the data, and plaintext cannot cannot +# be recovered from the signature (e.g. DSA). +FUNCTION C_VerifyInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the verification mechanism +CK_OBJECT_HANDLE hKey # verification key + +# C_Verify verifies a signature in a single-part operation, where the +# signature is an appendix to the data, and plaintext cannot be +# recovered from the signature. +FUNCTION C_Verify +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pData # signed data +CK_ULONG ulDataLen # length of signed data +CK_BYTE_PTR pSignature # signature +CK_ULONG ulSignatureLen # signature length + +# C_VerifyUpdate continues a multiple-part verification operation, +# where the signature is an appendix to the data, and plaintext cannot be +# recovered from the signature. +FUNCTION C_VerifyUpdate +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pPart # signed data +CK_ULONG ulPartLen # length of signed data + +# C_VerifyFinal finishes a multiple-part verification operation, +# checking the signature. +FUNCTION C_VerifyFinal +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pSignature # signature to verify +CK_ULONG ulSignatureLen # signature length + +# C_VerifyRecoverInit initializes a signature verification operation, +# where the data is recovered from the signature. +FUNCTION C_VerifyRecoverInit +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the verification mechanism +CK_OBJECT_HANDLE hKey # verification key + +# C_VerifyRecover verifies a signature in a single-part operation, +# where the data is recovered from the signature. +FUNCTION C_VerifyRecover +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pSignature # signature to verify +CK_ULONG ulSignatureLen # signature length +CK_BYTE_PTR pData # gets signed data +CK_ULONG_PTR pulDataLen # gets signed data len + + +# Dual-function cryptographic operations + +# C_DigestEncryptUpdate continues a multiple-part digesting and +# encryption operation. +FUNCTION C_DigestEncryptUpdate +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pPart # the plaintext data +CK_ULONG ulPartLen # plaintext length +CK_BYTE_PTR pEncryptedPart # gets ciphertext +CK_ULONG_PTR pulEncryptedPartLen # gets c-text length + +# C_DecryptDigestUpdate continues a multiple-part decryption and +# digesting operation. +FUNCTION C_DecryptDigestUpdate +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pEncryptedPart # ciphertext +CK_ULONG ulEncryptedPartLen # ciphertext length +CK_BYTE_PTR pPart # gets plaintext +CK_ULONG_PTR pulPartLen # gets plaintext len + +# C_SignEncryptUpdate continues a multiple-part signing and +# encryption operation. +FUNCTION C_SignEncryptUpdate +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pPart # the plaintext data +CK_ULONG ulPartLen # plaintext length +CK_BYTE_PTR pEncryptedPart # gets ciphertext +CK_ULONG_PTR pulEncryptedPartLen # gets c-text length + +# C_DecryptVerifyUpdate continues a multiple-part decryption and +# verify operation. +FUNCTION C_DecryptVerifyUpdate +CK_SESSION_HANDLE hSession # session's handle +CK_BYTE_PTR pEncryptedPart # ciphertext +CK_ULONG ulEncryptedPartLen # ciphertext length +CK_BYTE_PTR pPart # gets plaintext +CK_ULONG_PTR pulPartLen # gets p-text length + + +# Key management + +# C_GenerateKey generates a secret key, creating a new key object. +FUNCTION C_GenerateKey +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # key generation mech. +CK_ATTRIBUTE_PTR pTemplate # template for new key +CK_ULONG ulCount # # of attrs in template +CK_OBJECT_HANDLE_PTR phKey # gets handle of new key + +# C_GenerateKeyPair generates a public-key/private-key pair, creating +# new key objects. +FUNCTION C_GenerateKeyPair +CK_SESSION_HANDLE hSession # session handle +CK_MECHANISM_PTR pMechanism # key-gen mech. +CK_ATTRIBUTE_PTR pPublicKeyTemplate # template for pub. key +CK_ULONG ulPublicKeyAttributeCount # # pub. attrs. +CK_ATTRIBUTE_PTR pPrivateKeyTemplate # template for priv. key +CK_ULONG ulPrivateKeyAttributeCount # # priv. attrs. +CK_OBJECT_HANDLE_PTR phPublicKey # gets pub. key handle +CK_OBJECT_HANDLE_PTR phPrivateKey # gets priv. key handle + +# C_WrapKey wraps (i.e., encrypts) a key. +FUNCTION C_WrapKey +CK_SESSION_HANDLE hSession # the session's handle +CK_MECHANISM_PTR pMechanism # the wrapping mechanism +CK_OBJECT_HANDLE hWrappingKey # wrapping key +CK_OBJECT_HANDLE hKey # key to be wrapped +CK_BYTE_PTR pWrappedKey # gets wrapped key +CK_ULONG_PTR pulWrappedKeyLen # gets wrapped key size + +# C_UnwrapKey unwraps (decrypts) a wrapped key, creating a new key +# object. +FUNCTION C_UnwrapKey +CK_SESSION_HANDLE hSession # session's handle +CK_MECHANISM_PTR pMechanism # unwrapping mech. +CK_OBJECT_HANDLE hUnwrappingKey # unwrapping key +CK_BYTE_PTR pWrappedKey # the wrapped key +CK_ULONG ulWrappedKeyLen # wrapped key len +CK_ATTRIBUTE_PTR pTemplate # new key template +CK_ULONG ulAttributeCount # template length +CK_OBJECT_HANDLE_PTR phKey # gets new handle + +# C_DeriveKey derives a key from a base key, creating a new key object. +FUNCTION C_DeriveKey +CK_SESSION_HANDLE hSession # session's handle +CK_MECHANISM_PTR pMechanism # key deriv. mech. +CK_OBJECT_HANDLE hBaseKey # base key +CK_ATTRIBUTE_PTR pTemplate # new key template +CK_ULONG ulAttributeCount # template length +CK_OBJECT_HANDLE_PTR phKey # gets new handle + + +# Random number generation + +# C_SeedRandom mixes additional seed material into the token's random +# number generator. +FUNCTION C_SeedRandom +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR pSeed # the seed material +CK_ULONG ulSeedLen # length of seed material + +# C_GenerateRandom generates random data. +FUNCTION C_GenerateRandom +CK_SESSION_HANDLE hSession # the session's handle +CK_BYTE_PTR RandomData # receives the random data +CK_ULONG ulRandomLen # # of bytes to generate + + +# Parallel function management + +# C_GetFunctionStatus is a legacy function; it obtains an updated +# status of a function running in parallel with an application. +FUNCTION C_GetFunctionStatus +CK_SESSION_HANDLE hSession # the session's handle + +# C_CancelFunction is a legacy function; it cancels a function running +# in parallel. +FUNCTION C_CancelFunction +CK_SESSION_HANDLE hSession # the session's handle + + +# Functions added in for Cryptoki Version 2.01 or later + +# C_WaitForSlotEvent waits for a slot event (token insertion, removal, +# etc.) to occur. +FUNCTION C_WaitForSlotEvent +CK_FLAGS flags # blocking/nonblocking flag +CK_SLOT_ID_PTR pSlot # location that receives the slot ID +CK_VOID_PTR pRserved # reserved. Should be NULL_PTR + +## C_ConfigureSlot passes an installation-specified bytestring to a +## slot. +#FUNCTION C_ConfigureSlot +#CK_SLOT_ID slotID # the slot to configure +#CK_BYTE_PTR pConfig # the configuration string +#CK_ULONG ulConfigLen # length of the config string diff --git a/security/nss/lib/ckfw/ck.h b/security/nss/lib/ckfw/ck.h new file mode 100644 index 000000000..1f0237bf8 --- /dev/null +++ b/security/nss/lib/ckfw/ck.h @@ -0,0 +1,88 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CK_H +#define CK_H + +/* + * ck.h + * + * This header file consolidates all header files needed by the source + * files implementing the NSS Cryptoki Framework. This makes managing + * the source files a bit easier. + */ + +/* Types */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFT_H +#include "nssckft.h" +#endif /* NSSCKFT_H */ + +#ifndef NSSCKEPV_H +#include "nssckepv.h" +#endif /* NSSCKEPV_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +#ifndef NSSCKMDT_H +#include "nssckmdt.h" +#endif /* NSSCKMDT_H */ + +#ifndef CKT_H +#include "ckt.h" +#endif /* CKT_H */ + +#ifndef CKFWTM_H +#include "ckfwtm.h" +#endif /* CKFWTM_H */ + +/* Prototypes */ + +#ifndef NSSBASE_H +#include "nssbase.h" +#endif /* NSSBASE_H */ + +#ifndef NSSCKG_H +#include "nssckg.h" +#endif /* NSSCKG_H */ + +#ifndef NSSCKFW_H +#include "nssckfw.h" +#endif /* NSSCKFW_H */ + +#ifndef NSSCKFWC_H +#include "nssckfwc.h" +#endif /* NSSCKFWC_H */ + +#ifndef CKFW_H +#include "ckfw.h" +#endif /* CKFW_H */ + +#ifndef CKFWM_H +#include "ckfwm.h" +#endif /* CKFWM_H */ + +#ifndef CKMD_H +#include "ckmd.h" +#endif /* CKMD_H */ + +/* NSS-private */ + +/* nss_ZNEW and the like. We might want to publish the memory APIs.. */ + +#ifndef BASE_H +#include "base.h" +#endif /* BASE_H */ + +#endif /* CK_H */ diff --git a/security/nss/lib/ckfw/ckapi.perl b/security/nss/lib/ckfw/ckapi.perl new file mode 100644 index 000000000..f294ba79d --- /dev/null +++ b/security/nss/lib/ckfw/ckapi.perl @@ -0,0 +1,434 @@ +#!perl +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +$copyright = '/* THIS IS A GENERATED FILE */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +'; + +$count = -1; +$i = 0; + +open(INPUT, "<$ARGV[0]") || die "Can't open $ARGV[0]: $!"; + +while(<INPUT>) { + s/^((?:[^"#]+|"[^"]*")*)(\s*#.*$)/$1/; + next if (/^\s*$/); + +# print; + + /^([\S]+)\s+([^"][\S]*|"[^"]*")/; + $name = $1; + $value = $2; + + if( ($name =~ "FUNCTION") && !($name =~ "CK_FUNCTION") ) { + $count++; + $x[$count]{name} = $value; + $i = 0; + } else { + if( $count < 0 ) { + $value =~ s/"//g; + $g{$name} = $value; + } else { + $x[$count]{args}[$i]{type} = $name; + $x[$count]{args}[$i]{name} = $value; + $i++; + $x[$count]{nargs} = $i; # rewritten each time, oh well + } + } +} + +close INPUT; + +# dodump(); +doprint(); + +sub dodump { + for( $j = 0; $j <= $count; $j++ ) { + print "CK_RV CK_ENTRY $x[$j]{name}\n"; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print " $x[$j]{args}[$i]{type} $x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print "\n"; + } else { + print ",\n"; + } + } + } +} + +sub doprint { +open(PROTOTYPE, ">nssckg.h") || die "Can't open nssckg.h: $!"; +open(TYPEDEF, ">nssckft.h") || die "Can't open nssckft.h: $!"; +open(EPV, ">nssckepv.h") || die "Can't open nssckepv.h: $!"; +open(API, ">nssck.api") || die "Can't open nssck.api: $!"; + +select PROTOTYPE; + +print $copyright; +print <<EOD +#ifndef NSSCKG_H +#define NSSCKG_H + +/* + * nssckg.h + * + * This automatically-generated header file prototypes the Cryptoki + * functions specified by PKCS#11. + */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +EOD + ; + +for( $j = 0; $j <= $count; $j++ ) { + print "CK_RV CK_ENTRY $x[$j]{name}\n"; + print "(\n"; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print " $x[$j]{args}[$i]{type} $x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print "\n"; + } else { + print ",\n"; + } + } + print ");\n\n"; +} + +print <<EOD +#endif /* NSSCKG_H */ +EOD + ; + +select TYPEDEF; + +print $copyright; +print <<EOD +#ifndef NSSCKFT_H +#define NSSCKFT_H + +/* + * nssckft.h + * + * The automatically-generated header file declares a typedef + * each of the Cryptoki functions specified by PKCS#11. + */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +EOD + ; + +for( $j = 0; $j <= $count; $j++ ) { +# print "typedef CK_RV (CK_ENTRY *CK_$x[$j]{name})(\n"; + print "typedef CK_CALLBACK_FUNCTION(CK_RV, CK_$x[$j]{name})(\n"; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print " $x[$j]{args}[$i]{type} $x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print "\n"; + } else { + print ",\n"; + } + } + print ");\n\n"; +} + +print <<EOD +#endif /* NSSCKFT_H */ +EOD + ; + +select EPV; + +print $copyright; +print <<EOD +#ifndef NSSCKEPV_H +#define NSSCKEPV_H + +/* + * nssckepv.h + * + * This automatically-generated header file defines the type + * CK_FUNCTION_LIST specified by PKCS#11. + */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFT_H +#include "nssckft.h" +#endif /* NSSCKFT_H */ + +#include "nssckp.h" + +struct CK_FUNCTION_LIST { + CK_VERSION version; +EOD + ; + +for( $j = 0; $j <= $count; $j++ ) { + print " CK_$x[$j]{name} $x[$j]{name};\n"; +} + +print <<EOD +}; + +#include "nsscku.h" + +#endif /* NSSCKEPV_H */ +EOD + ; + +select API; + +print $copyright; +print <<EOD + +/* + * nssck.api + * + * This automatically-generated file is used to generate a set of + * Cryptoki entry points within the object space of a Module using + * the NSS Cryptoki Framework. + * + * The Module should have a .c file with the following: + * + * #define MODULE_NAME name + * #define INSTANCE_NAME instance + * #include "nssck.api" + * + * where "name" is some module-specific name that can be used to + * disambiguate various modules. This included file will then + * define the actual Cryptoki routines which pass through to the + * Framework calls. All routines, except C_GetFunctionList, will + * be prefixed with the name; C_GetFunctionList will be generated + * to return an entry-point vector with these routines. The + * instance specified should be the basic instance of NSSCKMDInstance. + * + * If, prior to including nssck.api, the .c file also specifies + * + * #define DECLARE_STRICT_CRYTPOKI_NAMES + * + * Then a set of "stub" routines not prefixed with the name will + * be included. This would allow the combined module and framework + * to be used in applications which are hard-coded to use the + * PKCS#11 names (instead of going through the EPV). Please note + * that such applications should be careful resolving symbols when + * more than one PKCS#11 module is loaded. + */ + +#ifndef MODULE_NAME +#error "Error: MODULE_NAME must be defined." +#endif /* MODULE_NAME */ + +#ifndef INSTANCE_NAME +#error "Error: INSTANCE_NAME must be defined." +#endif /* INSTANCE_NAME */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +#ifndef NSSCKFWC_H +#include "nssckfwc.h" +#endif /* NSSCKFWC_H */ + +#ifndef NSSCKEPV_H +#include "nssckepv.h" +#endif /* NSSCKEPV_H */ + +#define ADJOIN(x,y) x##y + +#define __ADJOIN(x,y) ADJOIN(x,y) + +/* + * The anchor. This object is used to store an "anchor" pointer in + * the Module's object space, so the wrapper functions can relate + * back to this instance. + */ + +static NSSCKFWInstance *fwInstance = (NSSCKFWInstance *)0; + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Initialize) +( + CK_VOID_PTR pInitArgs +) +{ + return NSSCKFWC_Initialize(&fwInstance, INSTANCE_NAME, pInitArgs); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Initialize +( + CK_VOID_PTR pInitArgs +) +{ + return __ADJOIN(MODULE_NAME,C_Initialize)(pInitArgs); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Finalize) +( + CK_VOID_PTR pReserved +) +{ + return NSSCKFWC_Finalize(&fwInstance); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Finalize +( + CK_VOID_PTR pReserved +) +{ + return __ADJOIN(MODULE_NAME,C_Finalize)(pReserved); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetInfo) +( + CK_INFO_PTR pInfo +) +{ + return NSSCKFWC_GetInfo(fwInstance, pInfo); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetInfo +( + CK_INFO_PTR pInfo +) +{ + return __ADJOIN(MODULE_NAME,C_GetInfo)(pInfo); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +/* + * C_GetFunctionList is defined at the end. + */ + +EOD + ; + +for( $j = 4; $j <= $count; $j++ ) { + print "static CK_RV CK_ENTRY\n"; + print "__ADJOIN(MODULE_NAME,$x[$j]{name})\n"; + print "(\n"; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print " $x[$j]{args}[$i]{type} $x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print "\n"; + } else { + print ",\n"; + } + } + print ")\n"; + print "{\n"; + print " return NSSCKFW$x[$j]{name}(fwInstance, "; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print "$x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print ");\n"; + } else { + print ", "; + } + } + print "}\n\n"; + + print "#ifdef DECLARE_STRICT_CRYPTOKI_NAMES\n"; + print "CK_RV CK_ENTRY\n"; + print "$x[$j]{name}\n"; + print "(\n"; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print " $x[$j]{args}[$i]{type} $x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print "\n"; + } else { + print ",\n"; + } + } + print ")\n"; + print "{\n"; + print " return __ADJOIN(MODULE_NAME,$x[$j]{name})("; + for( $i = 0; $i < $x[$j]{nargs}; $i++ ) { + print "$x[$j]{args}[$i]{name}"; + if( $i == ($x[$j]{nargs} - 1) ) { + print ");\n"; + } else { + print ", "; + } + } + print "}\n"; + print "#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */\n\n"; +} + +print <<EOD +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetFunctionList) +( + CK_FUNCTION_LIST_PTR_PTR ppFunctionList +); + +static CK_FUNCTION_LIST FunctionList = { + { 2, 1 }, +EOD + ; + +for( $j = 0; $j <= $count; $j++ ) { + print "__ADJOIN(MODULE_NAME,$x[$j]{name})"; + if( $j < $count ) { + print ",\n"; + } else { + print "\n};\n\n"; + } +} + +print <<EOD +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetFunctionList) +( + CK_FUNCTION_LIST_PTR_PTR ppFunctionList +) +{ + *ppFunctionList = &FunctionList; + return CKR_OK; +} + +/* This one is always present */ +CK_RV CK_ENTRY +C_GetFunctionList +( + CK_FUNCTION_LIST_PTR_PTR ppFunctionList +) +{ + return __ADJOIN(MODULE_NAME,C_GetFunctionList)(ppFunctionList); +} + +#undef __ADJOIN + +EOD + ; + +select STDOUT; + +} diff --git a/security/nss/lib/ckfw/ckfw.gyp b/security/nss/lib/ckfw/ckfw.gyp new file mode 100644 index 000000000..40da8d856 --- /dev/null +++ b/security/nss/lib/ckfw/ckfw.gyp @@ -0,0 +1,34 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +{ + 'includes': [ + '../../coreconf/config.gypi' + ], + 'targets': [ + { + 'target_name': 'nssckfw', + 'type': 'static_library', + 'sources': [ + 'crypto.c', + 'find.c', + 'hash.c', + 'instance.c', + 'mechanism.c', + 'mutex.c', + 'object.c', + 'session.c', + 'sessobj.c', + 'slot.c', + 'token.c', + 'wrap.c' + ], + 'dependencies': [ + '<(DEPTH)/exports.gyp:nss_exports' + ] + } + ], + 'variables': { + 'module': 'nss' + } +}
\ No newline at end of file diff --git a/security/nss/lib/ckfw/ckfw.h b/security/nss/lib/ckfw/ckfw.h new file mode 100644 index 000000000..d4a2ead99 --- /dev/null +++ b/security/nss/lib/ckfw/ckfw.h @@ -0,0 +1,2049 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKFW_H +#define CKFW_H + +/* + * ckfw.h + * + * This file prototypes the private calls of the NSS Cryptoki Framework. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +#ifndef NSSCKMDT_H +#include "nssckmdt.h" +#endif /* NSSCKMDT_H */ + +/* + * NSSCKFWInstance + * + * -- create/destroy -- + * nssCKFWInstance_Create + * nssCKFWInstance_Destroy + * + * -- implement public accessors -- + * nssCKFWInstance_GetMDInstance + * nssCKFWInstance_GetArena + * nssCKFWInstance_MayCreatePthreads + * nssCKFWInstance_CreateMutex + * nssCKFWInstance_GetConfigurationData + * nssCKFWInstance_GetInitArgs + * + * -- private accessors -- + * nssCKFWInstance_CreateSessionHandle + * nssCKFWInstance_ResolveSessionHandle + * nssCKFWInstance_DestroySessionHandle + * nssCKFWInstance_FindSessionHandle + * nssCKFWInstance_CreateObjectHandle + * nssCKFWInstance_ResolveObjectHandle + * nssCKFWInstance_DestroyObjectHandle + * nssCKFWInstance_FindObjectHandle + * + * -- module fronts -- + * nssCKFWInstance_GetNSlots + * nssCKFWInstance_GetCryptokiVersion + * nssCKFWInstance_GetManufacturerID + * nssCKFWInstance_GetFlags + * nssCKFWInstance_GetLibraryDescription + * nssCKFWInstance_GetLibraryVersion + * nssCKFWInstance_GetModuleHandlesSessionObjects + * nssCKFWInstance_GetSlots + * nssCKFWInstance_WaitForSlotEvent + * + * -- debugging versions only -- + * nssCKFWInstance_verifyPointer + */ + +/* + * nssCKFWInstance_Create + * + */ +NSS_EXTERN NSSCKFWInstance * +nssCKFWInstance_Create( + CK_C_INITIALIZE_ARGS_PTR pInitArgs, + CryptokiLockingState LockingState, + NSSCKMDInstance *mdInstance, + CK_RV *pError); + +/* + * nssCKFWInstance_Destroy + * + */ +NSS_EXTERN CK_RV +nssCKFWInstance_Destroy( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetMDInstance + * + */ +NSS_EXTERN NSSCKMDInstance * +nssCKFWInstance_GetMDInstance( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetArena + * + */ +NSS_EXTERN NSSArena * +nssCKFWInstance_GetArena( + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +/* + * nssCKFWInstance_MayCreatePthreads + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWInstance_MayCreatePthreads( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_CreateMutex + * + */ +NSS_EXTERN NSSCKFWMutex * +nssCKFWInstance_CreateMutex( + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError); + +/* + * nssCKFWInstance_GetConfigurationData + * + */ +NSS_EXTERN NSSUTF8 * +nssCKFWInstance_GetConfigurationData( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetInitArgs + * + */ +NSS_EXTERN CK_C_INITIALIZE_ARGS_PTR +nssCKFWInstance_GetInitArgs( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_CreateSessionHandle + * + */ +NSS_EXTERN CK_SESSION_HANDLE +nssCKFWInstance_CreateSessionHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_RV *pError); + +/* + * nssCKFWInstance_ResolveSessionHandle + * + */ +NSS_EXTERN NSSCKFWSession * +nssCKFWInstance_ResolveSessionHandle( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * nssCKFWInstance_DestroySessionHandle + * + */ +NSS_EXTERN void +nssCKFWInstance_DestroySessionHandle( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * nssCKFWInstance_FindSessionHandle + * + */ +NSS_EXTERN CK_SESSION_HANDLE +nssCKFWInstance_FindSessionHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession); + +/* + * nssCKFWInstance_CreateObjectHandle + * + */ +NSS_EXTERN CK_OBJECT_HANDLE +nssCKFWInstance_CreateObjectHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * nssCKFWInstance_ResolveObjectHandle + * + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWInstance_ResolveObjectHandle( + NSSCKFWInstance *fwInstance, + CK_OBJECT_HANDLE hObject); + +/* + * nssCKFWInstance_ReassignObjectHandle + * + */ +NSS_EXTERN CK_RV +nssCKFWInstance_ReassignObjectHandle( + NSSCKFWInstance *fwInstance, + CK_OBJECT_HANDLE hObject, + NSSCKFWObject *fwObject); + +/* + * nssCKFWInstance_DestroyObjectHandle + * + */ +NSS_EXTERN void +nssCKFWInstance_DestroyObjectHandle( + NSSCKFWInstance *fwInstance, + CK_OBJECT_HANDLE hObject); + +/* + * nssCKFWInstance_FindObjectHandle + * + */ +NSS_EXTERN CK_OBJECT_HANDLE +nssCKFWInstance_FindObjectHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWObject *fwObject); + +/* + * nssCKFWInstance_GetNSlots + * + */ +NSS_EXTERN CK_ULONG +nssCKFWInstance_GetNSlots( + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +/* + * nssCKFWInstance_GetCryptokiVersion + * + */ +NSS_EXTERN CK_VERSION +nssCKFWInstance_GetCryptokiVersion( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetManufacturerID + * + */ +NSS_EXTERN CK_RV +nssCKFWInstance_GetManufacturerID( + NSSCKFWInstance *fwInstance, + CK_CHAR manufacturerID[32]); + +/* + * nssCKFWInstance_GetFlags + * + */ +NSS_EXTERN CK_ULONG +nssCKFWInstance_GetFlags( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetLibraryDescription + * + */ +NSS_EXTERN CK_RV +nssCKFWInstance_GetLibraryDescription( + NSSCKFWInstance *fwInstance, + CK_CHAR libraryDescription[32]); + +/* + * nssCKFWInstance_GetLibraryVersion + * + */ +NSS_EXTERN CK_VERSION +nssCKFWInstance_GetLibraryVersion( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetModuleHandlesSessionObjects + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWInstance_GetModuleHandlesSessionObjects( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_GetSlots + * + */ +NSS_EXTERN NSSCKFWSlot ** +nssCKFWInstance_GetSlots( + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +/* + * nssCKFWInstance_WaitForSlotEvent + * + */ +NSS_EXTERN NSSCKFWSlot * +nssCKFWInstance_WaitForSlotEvent( + NSSCKFWInstance *fwInstance, + CK_BBOOL block, + CK_RV *pError); + +/* + * nssCKFWInstance_verifyPointer + * + */ +NSS_EXTERN CK_RV +nssCKFWInstance_verifyPointer( + const NSSCKFWInstance *fwInstance); + +/* + * NSSCKFWSlot + * + * -- create/destroy -- + * nssCKFWSlot_Create + * nssCKFWSlot_Destroy + * + * -- implement public accessors -- + * nssCKFWSlot_GetMDSlot + * nssCKFWSlot_GetFWInstance + * nssCKFWSlot_GetMDInstance + * + * -- private accessors -- + * nssCKFWSlot_GetSlotID + * + * -- module fronts -- + * nssCKFWSlot_GetSlotDescription + * nssCKFWSlot_GetManufacturerID + * nssCKFWSlot_GetTokenPresent + * nssCKFWSlot_GetRemovableDevice + * nssCKFWSlot_GetHardwareSlot + * nssCKFWSlot_GetHardwareVersion + * nssCKFWSlot_GetFirmwareVersion + * nssCKFWSlot_GetToken + */ + +/* + * nssCKFWSlot_Create + * + */ +NSS_EXTERN NSSCKFWSlot * +nssCKFWSlot_Create( + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *mdSlot, + CK_SLOT_ID slotID, + CK_RV *pError); + +/* + * nssCKFWSlot_Destroy + * + */ +NSS_EXTERN CK_RV +nssCKFWSlot_Destroy( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetMDSlot + * + */ +NSS_EXTERN NSSCKMDSlot * +nssCKFWSlot_GetMDSlot( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetFWInstance + * + */ + +NSS_EXTERN NSSCKFWInstance * +nssCKFWSlot_GetFWInstance( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetMDInstance + * + */ + +NSS_EXTERN NSSCKMDInstance * +nssCKFWSlot_GetMDInstance( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetSlotID + * + */ +NSS_EXTERN CK_SLOT_ID +nssCKFWSlot_GetSlotID( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetSlotDescription + * + */ +NSS_EXTERN CK_RV +nssCKFWSlot_GetSlotDescription( + NSSCKFWSlot *fwSlot, + CK_CHAR slotDescription[64]); + +/* + * nssCKFWSlot_GetManufacturerID + * + */ +NSS_EXTERN CK_RV +nssCKFWSlot_GetManufacturerID( + NSSCKFWSlot *fwSlot, + CK_CHAR manufacturerID[32]); + +/* + * nssCKFWSlot_GetTokenPresent + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWSlot_GetTokenPresent( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetRemovableDevice + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWSlot_GetRemovableDevice( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetHardwareSlot + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWSlot_GetHardwareSlot( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetHardwareVersion + * + */ +NSS_EXTERN CK_VERSION +nssCKFWSlot_GetHardwareVersion( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetFirmwareVersion + * + */ +NSS_EXTERN CK_VERSION +nssCKFWSlot_GetFirmwareVersion( + NSSCKFWSlot *fwSlot); + +/* + * nssCKFWSlot_GetToken + * + */ +NSS_EXTERN NSSCKFWToken * +nssCKFWSlot_GetToken( + NSSCKFWSlot *fwSlot, + CK_RV *pError); + +/* + * nssCKFWSlot_ClearToken + * + */ +NSS_EXTERN void +nssCKFWSlot_ClearToken( + NSSCKFWSlot *fwSlot); + +/* + * NSSCKFWToken + * + * -- create/destroy -- + * nssCKFWToken_Create + * nssCKFWToken_Destroy + * + * -- implement public accessors -- + * nssCKFWToken_GetMDToken + * nssCKFWToken_GetFWSlot + * nssCKFWToken_GetMDSlot + * nssCKFWToken_GetSessionState + * + * -- private accessors -- + * nssCKFWToken_SetSessionState + * nssCKFWToken_RemoveSession + * nssCKFWToken_CloseAllSessions + * nssCKFWToken_GetSessionCount + * nssCKFWToken_GetRwSessionCount + * nssCKFWToken_GetRoSessionCount + * nssCKFWToken_GetSessionObjectHash + * nssCKFWToken_GetMDObjectHash + * nssCKFWToken_GetObjectHandleHash + * + * -- module fronts -- + * nssCKFWToken_InitToken + * nssCKFWToken_GetLabel + * nssCKFWToken_GetManufacturerID + * nssCKFWToken_GetModel + * nssCKFWToken_GetSerialNumber + * nssCKFWToken_GetHasRNG + * nssCKFWToken_GetIsWriteProtected + * nssCKFWToken_GetLoginRequired + * nssCKFWToken_GetUserPinInitialized + * nssCKFWToken_GetRestoreKeyNotNeeded + * nssCKFWToken_GetHasClockOnToken + * nssCKFWToken_GetHasProtectedAuthenticationPath + * nssCKFWToken_GetSupportsDualCryptoOperations + * nssCKFWToken_GetMaxSessionCount + * nssCKFWToken_GetMaxRwSessionCount + * nssCKFWToken_GetMaxPinLen + * nssCKFWToken_GetMinPinLen + * nssCKFWToken_GetTotalPublicMemory + * nssCKFWToken_GetFreePublicMemory + * nssCKFWToken_GetTotalPrivateMemory + * nssCKFWToken_GetFreePrivateMemory + * nssCKFWToken_GetHardwareVersion + * nssCKFWToken_GetFirmwareVersion + * nssCKFWToken_GetUTCTime + * nssCKFWToken_OpenSession + * nssCKFWToken_GetMechanismCount + * nssCKFWToken_GetMechanismTypes + * nssCKFWToken_GetMechanism + */ + +/* + * nssCKFWToken_Create + * + */ +NSS_EXTERN NSSCKFWToken * +nssCKFWToken_Create( + NSSCKFWSlot *fwSlot, + NSSCKMDToken *mdToken, + CK_RV *pError); + +/* + * nssCKFWToken_Destroy + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_Destroy( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMDToken + * + */ +NSS_EXTERN NSSCKMDToken * +nssCKFWToken_GetMDToken( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetArena + * + */ +NSS_EXTERN NSSArena * +nssCKFWToken_GetArena( + NSSCKFWToken *fwToken, + CK_RV *pError); + +/* + * nssCKFWToken_GetFWSlot + * + */ +NSS_EXTERN NSSCKFWSlot * +nssCKFWToken_GetFWSlot( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMDSlot + * + */ +NSS_EXTERN NSSCKMDSlot * +nssCKFWToken_GetMDSlot( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetSessionState + * + */ +NSS_EXTERN CK_STATE +nssCKFWToken_GetSessionState( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_InitToken + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_InitToken( + NSSCKFWToken *fwToken, + NSSItem *pin, + NSSUTF8 *label); + +/* + * nssCKFWToken_GetLabel + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_GetLabel( + NSSCKFWToken *fwToken, + CK_CHAR label[32]); + +/* + * nssCKFWToken_GetManufacturerID + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_GetManufacturerID( + NSSCKFWToken *fwToken, + CK_CHAR manufacturerID[32]); + +/* + * nssCKFWToken_GetModel + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_GetModel( + NSSCKFWToken *fwToken, + CK_CHAR model[16]); + +/* + * nssCKFWToken_GetSerialNumber + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_GetSerialNumber( + NSSCKFWToken *fwToken, + CK_CHAR serialNumber[16]); + +/* + * nssCKFWToken_GetHasRNG + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetHasRNG( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetIsWriteProtected + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetIsWriteProtected( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetLoginRequired + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetLoginRequired( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetUserPinInitialized + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetUserPinInitialized( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetRestoreKeyNotNeeded + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetRestoreKeyNotNeeded( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetHasClockOnToken + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetHasClockOnToken( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetHasProtectedAuthenticationPath + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetHasProtectedAuthenticationPath( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetSupportsDualCryptoOperations + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWToken_GetSupportsDualCryptoOperations( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMaxSessionCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetMaxSessionCount( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMaxRwSessionCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetMaxRwSessionCount( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMaxPinLen + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetMaxPinLen( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMinPinLen + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetMinPinLen( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetTotalPublicMemory + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetTotalPublicMemory( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetFreePublicMemory + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetFreePublicMemory( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetTotalPrivateMemory + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetTotalPrivateMemory( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetFreePrivateMemory + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetFreePrivateMemory( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetHardwareVersion + * + */ +NSS_EXTERN CK_VERSION +nssCKFWToken_GetHardwareVersion( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetFirmwareVersion + * + */ +NSS_EXTERN CK_VERSION +nssCKFWToken_GetFirmwareVersion( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetUTCTime + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_GetUTCTime( + NSSCKFWToken *fwToken, + CK_CHAR utcTime[16]); + +/* + * nssCKFWToken_OpenSession + * + */ +NSS_EXTERN NSSCKFWSession * +nssCKFWToken_OpenSession( + NSSCKFWToken *fwToken, + CK_BBOOL rw, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_RV *pError); + +/* + * nssCKFWToken_GetMechanismCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetMechanismCount( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMechanismTypes + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_GetMechanismTypes( + NSSCKFWToken *fwToken, + CK_MECHANISM_TYPE types[]); + +/* + * nssCKFWToken_GetMechanism + * + */ +NSS_EXTERN NSSCKFWMechanism * +nssCKFWToken_GetMechanism( + NSSCKFWToken *fwToken, + CK_MECHANISM_TYPE which, + CK_RV *pError); + +/* + * nssCKFWToken_SetSessionState + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_SetSessionState( + NSSCKFWToken *fwToken, + CK_STATE newState); + +/* + * nssCKFWToken_RemoveSession + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_RemoveSession( + NSSCKFWToken *fwToken, + NSSCKFWSession *fwSession); + +/* + * nssCKFWToken_CloseAllSessions + * + */ +NSS_EXTERN CK_RV +nssCKFWToken_CloseAllSessions( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetSessionCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetSessionCount( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetRwSessionCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetRwSessionCount( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetRoSessionCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWToken_GetRoSessionCount( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetSessionObjectHash + * + */ +NSS_EXTERN nssCKFWHash * +nssCKFWToken_GetSessionObjectHash( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetMDObjectHash + * + */ +NSS_EXTERN nssCKFWHash * +nssCKFWToken_GetMDObjectHash( + NSSCKFWToken *fwToken); + +/* + * nssCKFWToken_GetObjectHandleHash + * + */ +NSS_EXTERN nssCKFWHash * +nssCKFWToken_GetObjectHandleHash( + NSSCKFWToken *fwToken); + +/* + * NSSCKFWMechanism + * + * -- create/destroy -- + * nssCKFWMechanism_Create + * nssCKFWMechanism_Destroy + * + * -- implement public accessors -- + * nssCKFWMechanism_GetMDMechanism + * + * -- private accessors -- + * + * -- module fronts -- + * nssCKFWMechanism_GetMinKeySize + * nssCKFWMechanism_GetMaxKeySize + * nssCKFWMechanism_GetInHardware + * nssCKFWMechanism_GetCanEncrypt + * nssCKFWMechanism_GetCanDecrypt + * nssCKFWMechanism_GetCanDigest + * nssCKFWMechanism_GetCanSignRecover + * nssCKFWMechanism_GetCanVerify + * nssCKFWMechanism_GetCanVerifyRecover + * nssCKFWMechanism_GetCanGenerate + * nssCKFWMechanism_GetCanGenerateKeyPair + * nssCKFWMechanism_GetCanWrap + * nssCKFWMechanism_GetCanUnwrap + * nssCKFWMechanism_GetCanDerive + * nssCKFWMechanism_EncryptInit + * nssCKFWMechanism_DecryptInit + * nssCKFWMechanism_DigestInit + * nssCKFWMechanism_SignInit + * nssCKFWMechanism_SignRecoverInit + * nssCKFWMechanism_VerifyInit + * nssCKFWMechanism_VerifyRecoverInit + * nssCKFWMechanism_GenerateKey + * nssCKFWMechanism_GenerateKeyPair + * nssCKFWMechanism_GetWrapKeyLength + * nssCKFWMechanism_WrapKey + * nssCKFWMechanism_UnwrapKey + * nssCKFWMechanism_DeriveKey + */ + +/* + * nssCKFWMechanism_Create + * + */ +NSS_EXTERN NSSCKFWMechanism * +nssCKFWMechanism_Create( + NSSCKMDMechanism *mdMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWMechanism_Destroy + * + */ +NSS_EXTERN void +nssCKFWMechanism_Destroy( + NSSCKFWMechanism *fwMechanism); + +/* + * nssCKFWMechanism_GetMDMechanism + * + */ + +NSS_EXTERN NSSCKMDMechanism * +nssCKFWMechanism_GetMDMechanism( + NSSCKFWMechanism *fwMechanism); + +/* + * nssCKFWMechanism_GetMinKeySize + * + */ +NSS_EXTERN CK_ULONG +nssCKFWMechanism_GetMinKeySize( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetMaxKeySize + * + */ +NSS_EXTERN CK_ULONG +nssCKFWMechanism_GetMaxKeySize( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetInHardware + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetInHardware( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * the following are determined automatically by which of the cryptographic + * functions are defined for this mechanism. + */ +/* + * nssCKFWMechanism_GetCanEncrypt + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanEncrypt( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanDecrypt + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanDecrypt( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanDigest + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanDigest( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanSign + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanSign( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanSignRecover + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanSignRecover( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanVerify + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanVerify( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanVerifyRecover + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanVerifyRecover( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanGenerate + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanGenerate( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanGenerateKeyPair + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanGenerateKeyPair( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanWrap + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanWrap( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanUnwrap + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanUnwrap( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_GetCanDerive + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanDerive( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError); + +/* + * nssCKFWMechanism_EncryptInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_EncryptInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWMechanism_DecryptInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_DecryptInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWMechanism_DigestInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_DigestInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession); + +/* + * nssCKFWMechanism_SignInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_SignInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWMechanism_SignRecoverInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_SignRecoverInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWMechanism_VerifyInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_VerifyInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWMechanism_VerifyRecoverInit + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_VerifyRecoverInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWMechanism_GenerateKey + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWMechanism_GenerateKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * nssCKFWMechanism_GenerateKeyPair + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_GenerateKeyPair( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + NSSCKFWObject **fwPublicKeyObject, + NSSCKFWObject **fwPrivateKeyObject); + +/* + * nssCKFWMechanism_GetWrapKeyLength + */ +NSS_EXTERN CK_ULONG +nssCKFWMechanism_GetWrapKeyLength( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwWrappingKeyObject, + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * nssCKFWMechanism_WrapKey + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_WrapKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwWrappingKeyObject, + NSSCKFWObject *fwObject, + NSSItem *wrappedKey); + +/* + * nssCKFWMechanism_UnwrapKey + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWMechanism_UnwrapKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwWrappingKeyObject, + NSSItem *wrappedKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * nssCKFWMechanism_DeriveKey + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWMechanism_DeriveKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwBaseKeyObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * NSSCKFWCryptoOperation + * + * -- create/destroy -- + * nssCKFWCryptoOperation_Create + * nssCKFWCryptoOperation_Destroy + * + * -- implement public accessors -- + * nssCKFWCryptoOperation_GetMDCryptoOperation + * nssCKFWCryptoOperation_GetType + * + * -- private accessors -- + * + * -- module fronts -- + * nssCKFWCryptoOperation_GetFinalLength + * nssCKFWCryptoOperation_GetOperationLength + * nssCKFWCryptoOperation_Final + * nssCKFWCryptoOperation_Update + * nssCKFWCryptoOperation_DigestUpdate + * nssCKFWCryptoOperation_DigestKey + * nssCKFWCryptoOperation_UpdateFinal + */ + +/* + * nssCKFWCrytoOperation_Create + */ +NSS_EXTERN NSSCKFWCryptoOperation * +nssCKFWCryptoOperation_Create( + NSSCKMDCryptoOperation *mdOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWCryptoOperationType type, + CK_RV *pError); + +/* + * nssCKFWCryptoOperation_Destroy + */ +NSS_EXTERN void +nssCKFWCryptoOperation_Destroy( + NSSCKFWCryptoOperation *fwOperation); + +/* + * nssCKFWCryptoOperation_GetMDCryptoOperation + */ +NSS_EXTERN NSSCKMDCryptoOperation * +nssCKFWCryptoOperation_GetMDCryptoOperation( + NSSCKFWCryptoOperation *fwOperation); + +/* + * nssCKFWCryptoOperation_GetType + */ +NSS_EXTERN NSSCKFWCryptoOperationType +nssCKFWCryptoOperation_GetType( + NSSCKFWCryptoOperation *fwOperation); + +/* + * nssCKFWCryptoOperation_GetFinalLength + */ +NSS_EXTERN CK_ULONG +nssCKFWCryptoOperation_GetFinalLength( + NSSCKFWCryptoOperation *fwOperation, + CK_RV *pError); + +/* + * nssCKFWCryptoOperation_GetOperationLength + */ +NSS_EXTERN CK_ULONG +nssCKFWCryptoOperation_GetOperationLength( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer, + CK_RV *pError); + +/* + * nssCKFWCryptoOperation_Final + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_Final( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *outputBuffer); + +/* + * nssCKFWCryptoOperation_Update + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_Update( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer, + NSSItem *outputBuffer); + +/* + * nssCKFWCryptoOperation_DigestUpdate + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_DigestUpdate( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer); + +/* + * nssCKFWCryptoOperation_DigestKey + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_DigestKey( + NSSCKFWCryptoOperation *fwOperation, + NSSCKFWObject *fwKey); + +/* + * nssCKFWCryptoOperation_UpdateFinal + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_UpdateFinal( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer, + NSSItem *outputBuffer); + +/* + * nssCKFWCryptoOperation_UpdateCombo + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_UpdateCombo( + NSSCKFWCryptoOperation *fwOperation, + NSSCKFWCryptoOperation *fwPeerOperation, + NSSItem *inputBuffer, + NSSItem *outputBuffer); + +/* + * NSSCKFWSession + * + * -- create/destroy -- + * nssCKFWSession_Create + * nssCKFWSession_Destroy + * + * -- implement public accessors -- + * nssCKFWSession_GetMDSession + * nssCKFWSession_GetArena + * nssCKFWSession_CallNotification + * nssCKFWSession_IsRWSession + * nssCKFWSession_IsSO + * nssCKFWSession_GetCurrentCryptoOperation + * + * -- private accessors -- + * nssCKFWSession_GetFWSlot + * nssCKFWSession_GetSessionState + * nssCKFWSession_SetFWFindObjects + * nssCKFWSession_GetFWFindObjects + * nssCKFWSession_SetMDSession + * nssCKFWSession_SetHandle + * nssCKFWSession_GetHandle + * nssCKFWSession_RegisterSessionObject + * nssCKFWSession_DeregisterSessionObject + * nssCKFWSession_SetCurrentCryptoOperation + * + * -- module fronts -- + * nssCKFWSession_GetDeviceError + * nssCKFWSession_Login + * nssCKFWSession_Logout + * nssCKFWSession_InitPIN + * nssCKFWSession_SetPIN + * nssCKFWSession_GetOperationStateLen + * nssCKFWSession_GetOperationState + * nssCKFWSession_SetOperationState + * nssCKFWSession_CreateObject + * nssCKFWSession_CopyObject + * nssCKFWSession_FindObjectsInit + * nssCKFWSession_SeedRandom + * nssCKFWSession_GetRandom + * nssCKFWSession_Final + * nssCKFWSession_Update + * nssCKFWSession_DigestUpdate + * nssCKFWSession_DigestKey + * nssCKFWSession_UpdateFinal + * nssCKFWSession_UpdateCombo + */ + +/* + * nssCKFWSession_Create + * + */ +NSS_EXTERN NSSCKFWSession * +nssCKFWSession_Create( + NSSCKFWToken *fwToken, + CK_BBOOL rw, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_RV *pError); + +/* + * nssCKFWSession_Destroy + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_Destroy( + NSSCKFWSession *fwSession, + CK_BBOOL removeFromTokenHash); + +/* + * nssCKFWSession_GetMDSession + * + */ +NSS_EXTERN NSSCKMDSession * +nssCKFWSession_GetMDSession( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_GetArena + * + */ +NSS_EXTERN NSSArena * +nssCKFWSession_GetArena( + NSSCKFWSession *fwSession, + CK_RV *pError); + +/* + * nssCKFWSession_CallNotification + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_CallNotification( + NSSCKFWSession *fwSession, + CK_NOTIFICATION event); + +/* + * nssCKFWSession_IsRWSession + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWSession_IsRWSession( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_IsSO + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWSession_IsSO( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_GetFWSlot + * + */ +NSS_EXTERN NSSCKFWSlot * +nssCKFWSession_GetFWSlot( + NSSCKFWSession *fwSession); + +/* + * nssCFKWSession_GetSessionState + * + */ +NSS_EXTERN CK_STATE +nssCKFWSession_GetSessionState( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_SetFWFindObjects + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_SetFWFindObjects( + NSSCKFWSession *fwSession, + NSSCKFWFindObjects *fwFindObjects); + +/* + * nssCKFWSession_GetFWFindObjects + * + */ +NSS_EXTERN NSSCKFWFindObjects * +nssCKFWSession_GetFWFindObjects( + NSSCKFWSession *fwSesssion, + CK_RV *pError); + +/* + * nssCKFWSession_SetMDSession + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_SetMDSession( + NSSCKFWSession *fwSession, + NSSCKMDSession *mdSession); + +/* + * nssCKFWSession_SetHandle + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_SetHandle( + NSSCKFWSession *fwSession, + CK_SESSION_HANDLE hSession); + +/* + * nssCKFWSession_GetHandle + * + */ +NSS_EXTERN CK_SESSION_HANDLE +nssCKFWSession_GetHandle( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_RegisterSessionObject + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_RegisterSessionObject( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWSession_DeregisterSessionObject + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_DeregisterSessionObject( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject); + +/* + * nssCKFWSession_GetDeviceError + * + */ +NSS_EXTERN CK_ULONG +nssCKFWSession_GetDeviceError( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_Login + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_Login( + NSSCKFWSession *fwSession, + CK_USER_TYPE userType, + NSSItem *pin); + +/* + * nssCKFWSession_Logout + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_Logout( + NSSCKFWSession *fwSession); + +/* + * nssCKFWSession_InitPIN + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_InitPIN( + NSSCKFWSession *fwSession, + NSSItem *pin); + +/* + * nssCKFWSession_SetPIN + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_SetPIN( + NSSCKFWSession *fwSession, + NSSItem *newPin, + NSSItem *oldPin); + +/* + * nssCKFWSession_GetOperationStateLen + * + */ +NSS_EXTERN CK_ULONG +nssCKFWSession_GetOperationStateLen( + NSSCKFWSession *fwSession, + CK_RV *pError); + +/* + * nssCKFWSession_GetOperationState + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_GetOperationState( + NSSCKFWSession *fwSession, + NSSItem *buffer); + +/* + * nssCKFWSession_SetOperationState + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_SetOperationState( + NSSCKFWSession *fwSession, + NSSItem *state, + NSSCKFWObject *encryptionKey, + NSSCKFWObject *authenticationKey); + +/* + * nssCKFWSession_CreateObject + * + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWSession_CreateObject( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * nssCKFWSession_CopyObject + * + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWSession_CopyObject( + NSSCKFWSession *fwSession, + NSSCKFWObject *object, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * nssCKFWSession_FindObjectsInit + * + */ +NSS_EXTERN NSSCKFWFindObjects * +nssCKFWSession_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * nssCKFWSession_SetCurrentCryptoOperation + */ +NSS_IMPLEMENT void +nssCKFWSession_SetCurrentCryptoOperation( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperation *fwOperation, + NSSCKFWCryptoOperationState state); + +/* + * nssCKFWSession_GetCurrentCryptoOperation + */ +NSS_IMPLEMENT NSSCKFWCryptoOperation * +nssCKFWSession_GetCurrentCryptoOperation( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationState state); + +/* + * nssCKFWSession_Final + * (terminate a cryptographic operation and get the result) + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Final( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen); + +/* + * nssCKFWSession_Update + * (get the next step of an encrypt/decrypt operation) + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Update( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen); + +/* + * nssCKFWSession_DigestUpdate + * (do the next step of an digest/sign/verify operation) + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_DigestUpdate( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen); + +/* + * nssCKFWSession_DigestKey + * (do the next step of an digest/sign/verify operation) + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_DigestKey( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwKey); + +/* + * nssCKFWSession_UpdateFinal + * (do a single-step of a cryptographic operation and get the result) + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_UpdateFinal( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen); + +/* + * nssCKFWSession_UpdateCombo + * (do a combination encrypt/decrypt and sign/digest/verify operation) + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_UpdateCombo( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType encryptType, + NSSCKFWCryptoOperationType digestType, + NSSCKFWCryptoOperationState digestState, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen); + +/* + * nssCKFWSession_SeedRandom + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_SeedRandom( + NSSCKFWSession *fwSession, + NSSItem *seed); + +/* + * nssCKFWSession_GetRandom + * + */ +NSS_EXTERN CK_RV +nssCKFWSession_GetRandom( + NSSCKFWSession *fwSession, + NSSItem *buffer); + +/* + * NSSCKFWObject + * + * -- create/destroy -- + * nssCKFWObject_Create + * nssCKFWObject_Finalize + * nssCKFWObject_Destroy + * + * -- implement public accessors -- + * nssCKFWObject_GetMDObject + * nssCKFWObject_GetArena + * + * -- private accessors -- + * nssCKFWObject_SetHandle + * nssCKFWObject_GetHandle + * + * -- module fronts -- + * nssCKFWObject_IsTokenObject + * nssCKFWObject_GetAttributeCount + * nssCKFWObject_GetAttributeTypes + * nssCKFWObject_GetAttributeSize + * nssCKFWObject_GetAttribute + * nssCKFWObject_SetAttribute + * nssCKFWObject_GetObjectSize + */ + +/* + * nssCKFWObject_Create + * + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWObject_Create( + NSSArena *arena, + NSSCKMDObject *mdObject, + NSSCKFWSession *fwSession, + NSSCKFWToken *fwToken, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +/* + * nssCKFWObject_Finalize + * + */ +NSS_EXTERN void +nssCKFWObject_Finalize( + NSSCKFWObject *fwObject, + PRBool removeFromHash); + +/* + * nssCKFWObject_Destroy + * + */ +NSS_EXTERN void +nssCKFWObject_Destroy( + NSSCKFWObject *fwObject); + +/* + * nssCKFWObject_GetMDObject + * + */ +NSS_EXTERN NSSCKMDObject * +nssCKFWObject_GetMDObject( + NSSCKFWObject *fwObject); + +/* + * nssCKFWObject_GetArena + * + */ +NSS_EXTERN NSSArena * +nssCKFWObject_GetArena( + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * nssCKFWObject_SetHandle + * + */ +NSS_EXTERN CK_RV +nssCKFWObject_SetHandle( + NSSCKFWObject *fwObject, + CK_OBJECT_HANDLE hObject); + +/* + * nssCKFWObject_GetHandle + * + */ +NSS_EXTERN CK_OBJECT_HANDLE +nssCKFWObject_GetHandle( + NSSCKFWObject *fwObject); + +/* + * nssCKFWObject_IsTokenObject + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWObject_IsTokenObject( + NSSCKFWObject *fwObject); + +/* + * nssCKFWObject_GetAttributeCount + * + */ +NSS_EXTERN CK_ULONG +nssCKFWObject_GetAttributeCount( + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * nssCKFWObject_GetAttributeTypes + * + */ +NSS_EXTERN CK_RV +nssCKFWObject_GetAttributeTypes( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount); + +/* + * nssCKFWObject_GetAttributeSize + * + */ +NSS_EXTERN CK_ULONG +nssCKFWObject_GetAttributeSize( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError); + +/* + * nssCKFWObject_GetAttribute + * + * Usual NSS allocation rules: + * If itemOpt is not NULL, it will be returned; otherwise an NSSItem + * will be allocated. If itemOpt is not NULL but itemOpt->data is, + * the buffer will be allocated; otherwise, the buffer will be used. + * Any allocations will come from the optional arena, if one is + * specified. + */ +NSS_EXTERN NSSItem * +nssCKFWObject_GetAttribute( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *itemOpt, + NSSArena *arenaOpt, + CK_RV *pError); + +/* + * nssCKFWObject_SetAttribute + * + */ +NSS_EXTERN CK_RV +nssCKFWObject_SetAttribute( + NSSCKFWObject *fwObject, + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value); + +/* + * nssCKFWObject_GetObjectSize + * + */ +NSS_EXTERN CK_ULONG +nssCKFWObject_GetObjectSize( + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * NSSCKFWFindObjects + * + * -- create/destroy -- + * nssCKFWFindObjects_Create + * nssCKFWFindObjects_Destroy + * + * -- implement public accessors -- + * nssCKFWFindObjects_GetMDFindObjects + * + * -- private accessors -- + * + * -- module fronts -- + * nssCKFWFindObjects_Next + */ + +/* + * nssCKFWFindObjects_Create + * + */ +NSS_EXTERN NSSCKFWFindObjects * +nssCKFWFindObjects_Create( + NSSCKFWSession *fwSession, + NSSCKFWToken *fwToken, + NSSCKFWInstance *fwInstance, + NSSCKMDFindObjects *mdFindObjects1, + NSSCKMDFindObjects *mdFindObjects2, + CK_RV *pError); + +/* + * nssCKFWFindObjects_Destroy + * + */ +NSS_EXTERN void +nssCKFWFindObjects_Destroy( + NSSCKFWFindObjects *fwFindObjects); + +/* + * nssCKFWFindObjects_GetMDFindObjects + * + */ +NSS_EXTERN NSSCKMDFindObjects * +nssCKFWFindObjects_GetMDFindObjects( + NSSCKFWFindObjects *fwFindObjects); + +/* + * nssCKFWFindObjects_Next + * + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWFindObjects_Next( + NSSCKFWFindObjects *fwFindObjects, + NSSArena *arenaOpt, + CK_RV *pError); + +/* + * NSSCKFWMutex + * + * nssCKFWMutex_Create + * nssCKFWMutex_Destroy + * nssCKFWMutex_Lock + * nssCKFWMutex_Unlock + * + */ + +/* + * nssCKFWMutex_Create + * + */ +NSS_EXTERN NSSCKFWMutex * +nssCKFWMutex_Create( + CK_C_INITIALIZE_ARGS_PTR pInitArgs, + CryptokiLockingState LockingState, + NSSArena *arena, + CK_RV *pError); + +/* + * nssCKFWMutex_Destroy + * + */ +NSS_EXTERN CK_RV +nssCKFWMutex_Destroy( + NSSCKFWMutex *mutex); + +/* + * nssCKFWMutex_Lock + * + */ +NSS_EXTERN CK_RV +nssCKFWMutex_Lock( + NSSCKFWMutex *mutex); + +/* + * nssCKFWMutex_Unlock + * + */ +NSS_EXTERN CK_RV +nssCKFWMutex_Unlock( + NSSCKFWMutex *mutex); + +#endif /* CKFW_H */ diff --git a/security/nss/lib/ckfw/ckfwm.h b/security/nss/lib/ckfw/ckfwm.h new file mode 100644 index 000000000..7b14d209e --- /dev/null +++ b/security/nss/lib/ckfw/ckfwm.h @@ -0,0 +1,112 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKFWM_H +#define CKFWM_H + +/* + * ckfwm.h + * + * This file prototypes the module-private calls of the NSS Cryptoki Framework. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +/* + * nssCKFWHash + * + * nssCKFWHash_Create + * nssCKFWHash_Destroy + * nssCKFWHash_Add + * nssCKFWHash_Remove + * nssCKFWHash_Count + * nssCKFWHash_Exists + * nssCKFWHash_Lookup + * nssCKFWHash_Iterate + */ + +/* + * nssCKFWHash_Create + * + */ +NSS_EXTERN nssCKFWHash * +nssCKFWHash_Create( + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError); + +/* + * nssCKFWHash_Destroy + * + */ +NSS_EXTERN void +nssCKFWHash_Destroy( + nssCKFWHash *hash); + +/* + * nssCKFWHash_Add + * + */ +NSS_EXTERN CK_RV +nssCKFWHash_Add( + nssCKFWHash *hash, + const void *key, + const void *value); + +/* + * nssCKFWHash_Remove + * + */ +NSS_EXTERN void +nssCKFWHash_Remove( + nssCKFWHash *hash, + const void *it); + +/* + * nssCKFWHash_Count + * + */ +NSS_EXTERN CK_ULONG +nssCKFWHash_Count( + nssCKFWHash *hash); + +/* + * nssCKFWHash_Exists + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWHash_Exists( + nssCKFWHash *hash, + const void *it); + +/* + * nssCKFWHash_Lookup + * + */ +NSS_EXTERN void * +nssCKFWHash_Lookup( + nssCKFWHash *hash, + const void *it); + +/* + * nssCKFWHash_Iterate + * + */ +NSS_EXTERN void +nssCKFWHash_Iterate( + nssCKFWHash *hash, + nssCKFWHashIterator fcn, + void *closure); + +#endif /* CKFWM_H */ diff --git a/security/nss/lib/ckfw/ckfwtm.h b/security/nss/lib/ckfw/ckfwtm.h new file mode 100644 index 000000000..670298463 --- /dev/null +++ b/security/nss/lib/ckfw/ckfwtm.h @@ -0,0 +1,23 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKFWTM_H +#define CKFWTM_H + +/* + * ckfwtm.h + * + * This file declares the module-private types of the NSS Cryptoki Framework. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +struct nssCKFWHashStr; +typedef struct nssCKFWHashStr nssCKFWHash; + +typedef void(PR_CALLBACK *nssCKFWHashIterator)(const void *key, void *value, void *closure); + +#endif /* CKFWTM_H */ diff --git a/security/nss/lib/ckfw/ckmd.h b/security/nss/lib/ckfw/ckmd.h new file mode 100644 index 000000000..820cf9021 --- /dev/null +++ b/security/nss/lib/ckfw/ckmd.h @@ -0,0 +1,28 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKMD_H +#define CKMD_H + +/* + * ckmd.h + * + */ + +NSS_EXTERN NSSCKMDObject * +nssCKMDSessionObject_Create( + NSSCKFWToken *fwToken, + NSSArena *arena, + CK_ATTRIBUTE_PTR attributes, + CK_ULONG ulCount, + CK_RV *pError); + +NSS_EXTERN NSSCKMDFindObjects * +nssCKMDFindSessionObjects_Create( + NSSCKFWToken *fwToken, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_RV *pError); + +#endif /* CKMD_H */ diff --git a/security/nss/lib/ckfw/ckt.h b/security/nss/lib/ckfw/ckt.h new file mode 100644 index 000000000..05c43a5db --- /dev/null +++ b/security/nss/lib/ckfw/ckt.h @@ -0,0 +1,8 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* get back to just one set of PKCS #11 headers. Use the onese that + * are easiest to maintain from the RSA website */ +/* this one is the one that defines NSS specific data */ +#include "pkcs11n.h" diff --git a/security/nss/lib/ckfw/config.mk b/security/nss/lib/ckfw/config.mk new file mode 100644 index 000000000..a3ed5aed2 --- /dev/null +++ b/security/nss/lib/ckfw/config.mk @@ -0,0 +1,25 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +ifdef BUILD_IDG +DEFINES += -DNSSDEBUG +endif + +# +# Hack to see if everything still builds +# + + +# +# Override TARGETS variable so that only static libraries +# are specifed as dependencies within rules.mk. +# + +TARGETS = $(LIBRARY) +SHARED_LIBRARY = +IMPORT_LIBRARY = +PROGRAM = + + diff --git a/security/nss/lib/ckfw/crypto.c b/security/nss/lib/ckfw/crypto.c new file mode 100644 index 000000000..66afb773a --- /dev/null +++ b/security/nss/lib/ckfw/crypto.c @@ -0,0 +1,318 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * crypto.c + * + * This file implements the NSSCKFWCryptoOperation type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWCryptoOperation + * + * -- create/destroy -- + * nssCKFWCrytoOperation_Create + * nssCKFWCryptoOperation_Destroy + * + * -- implement public accessors -- + * nssCKFWCryptoOperation_GetMDCryptoOperation + * nssCKFWCryptoOperation_GetType + * + * -- private accessors -- + * + * -- module fronts -- + * nssCKFWCryptoOperation_GetFinalLength + * nssCKFWCryptoOperation_GetOperationLength + * nssCKFWCryptoOperation_Final + * nssCKFWCryptoOperation_Update + * nssCKFWCryptoOperation_DigestUpdate + * nssCKFWCryptoOperation_UpdateFinal + */ + +struct NSSCKFWCryptoOperationStr { + /* NSSArena *arena; */ + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKFWSession *fwSession; + NSSCKMDToken *mdToken; + NSSCKFWToken *fwToken; + NSSCKMDInstance *mdInstance; + NSSCKFWInstance *fwInstance; + NSSCKFWCryptoOperationType type; +}; + +/* + * nssCKFWCrytoOperation_Create + */ +NSS_EXTERN NSSCKFWCryptoOperation * +nssCKFWCryptoOperation_Create( + NSSCKMDCryptoOperation *mdOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWCryptoOperationType type, + CK_RV *pError) +{ + NSSCKFWCryptoOperation *fwOperation; + fwOperation = nss_ZNEW(NULL, NSSCKFWCryptoOperation); + if (!fwOperation) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWCryptoOperation *)NULL; + } + fwOperation->mdOperation = mdOperation; + fwOperation->mdSession = mdSession; + fwOperation->fwSession = fwSession; + fwOperation->mdToken = mdToken; + fwOperation->fwToken = fwToken; + fwOperation->mdInstance = mdInstance; + fwOperation->fwInstance = fwInstance; + fwOperation->type = type; + return fwOperation; +} + +/* + * nssCKFWCryptoOperation_Destroy + */ +NSS_EXTERN void +nssCKFWCryptoOperation_Destroy( + NSSCKFWCryptoOperation *fwOperation) +{ + if ((NSSCKMDCryptoOperation *)NULL != fwOperation->mdOperation) { + if (fwOperation->mdOperation->Destroy) { + fwOperation->mdOperation->Destroy( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdInstance, + fwOperation->fwInstance); + } + } + nss_ZFreeIf(fwOperation); +} + +/* + * nssCKFWCryptoOperation_GetMDCryptoOperation + */ +NSS_EXTERN NSSCKMDCryptoOperation * +nssCKFWCryptoOperation_GetMDCryptoOperation( + NSSCKFWCryptoOperation *fwOperation) +{ + return fwOperation->mdOperation; +} + +/* + * nssCKFWCryptoOperation_GetType + */ +NSS_EXTERN NSSCKFWCryptoOperationType +nssCKFWCryptoOperation_GetType( + NSSCKFWCryptoOperation *fwOperation) +{ + return fwOperation->type; +} + +/* + * nssCKFWCryptoOperation_GetFinalLength + */ +NSS_EXTERN CK_ULONG +nssCKFWCryptoOperation_GetFinalLength( + NSSCKFWCryptoOperation *fwOperation, + CK_RV *pError) +{ + if (!fwOperation->mdOperation->GetFinalLength) { + *pError = CKR_FUNCTION_FAILED; + return 0; + } + return fwOperation->mdOperation->GetFinalLength( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + pError); +} + +/* + * nssCKFWCryptoOperation_GetOperationLength + */ +NSS_EXTERN CK_ULONG +nssCKFWCryptoOperation_GetOperationLength( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer, + CK_RV *pError) +{ + if (!fwOperation->mdOperation->GetOperationLength) { + *pError = CKR_FUNCTION_FAILED; + return 0; + } + return fwOperation->mdOperation->GetOperationLength( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + inputBuffer, + pError); +} + +/* + * nssCKFWCryptoOperation_Final + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_Final( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *outputBuffer) +{ + if (!fwOperation->mdOperation->Final) { + return CKR_FUNCTION_FAILED; + } + return fwOperation->mdOperation->Final( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + outputBuffer); +} + +/* + * nssCKFWCryptoOperation_Update + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_Update( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer, + NSSItem *outputBuffer) +{ + if (!fwOperation->mdOperation->Update) { + return CKR_FUNCTION_FAILED; + } + return fwOperation->mdOperation->Update( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + inputBuffer, + outputBuffer); +} + +/* + * nssCKFWCryptoOperation_DigestUpdate + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_DigestUpdate( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer) +{ + if (!fwOperation->mdOperation->DigestUpdate) { + return CKR_FUNCTION_FAILED; + } + return fwOperation->mdOperation->DigestUpdate( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + inputBuffer); +} + +/* + * nssCKFWCryptoOperation_DigestKey + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_DigestKey( + NSSCKFWCryptoOperation *fwOperation, + NSSCKFWObject *fwObject /* Key */ + ) +{ + NSSCKMDObject *mdObject; + + if (!fwOperation->mdOperation->DigestKey) { + return CKR_FUNCTION_FAILED; + } + mdObject = nssCKFWObject_GetMDObject(fwObject); + return fwOperation->mdOperation->DigestKey( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + mdObject, + fwObject); +} + +/* + * nssCKFWCryptoOperation_UpdateFinal + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_UpdateFinal( + NSSCKFWCryptoOperation *fwOperation, + NSSItem *inputBuffer, + NSSItem *outputBuffer) +{ + if (!fwOperation->mdOperation->UpdateFinal) { + return CKR_FUNCTION_FAILED; + } + return fwOperation->mdOperation->UpdateFinal( + fwOperation->mdOperation, + fwOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + inputBuffer, + outputBuffer); +} + +/* + * nssCKFWCryptoOperation_UpdateCombo + */ +NSS_EXTERN CK_RV +nssCKFWCryptoOperation_UpdateCombo( + NSSCKFWCryptoOperation *fwOperation, + NSSCKFWCryptoOperation *fwPeerOperation, + NSSItem *inputBuffer, + NSSItem *outputBuffer) +{ + if (!fwOperation->mdOperation->UpdateCombo) { + return CKR_FUNCTION_FAILED; + } + return fwOperation->mdOperation->UpdateCombo( + fwOperation->mdOperation, + fwOperation, + fwPeerOperation->mdOperation, + fwPeerOperation, + fwOperation->mdSession, + fwOperation->fwSession, + fwOperation->mdToken, + fwOperation->fwToken, + fwOperation->mdInstance, + fwOperation->fwInstance, + inputBuffer, + outputBuffer); +} diff --git a/security/nss/lib/ckfw/dbm/Makefile b/security/nss/lib/ckfw/dbm/Makefile new file mode 100644 index 000000000..07ae9676a --- /dev/null +++ b/security/nss/lib/ckfw/dbm/Makefile @@ -0,0 +1,9 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include manifest.mn +include config.mk +include $(CORE_DEPTH)/coreconf/config.mk +include $(CORE_DEPTH)/coreconf/rules.mk diff --git a/security/nss/lib/ckfw/dbm/anchor.c b/security/nss/lib/ckfw/dbm/anchor.c new file mode 100644 index 000000000..c904d25ae --- /dev/null +++ b/security/nss/lib/ckfw/dbm/anchor.c @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * dbm/anchor.c + * + * This file "anchors" the actual cryptoki entry points in this module's + * shared library, which is required for dynamic loading. See the + * comments in nssck.api for more information. + */ + +#include "ckdbm.h" + +#define MODULE_NAME dbm +#define INSTANCE_NAME (NSSCKMDInstance *)&nss_dbm_mdInstance +#include "nssck.api" diff --git a/security/nss/lib/ckfw/dbm/ckdbm.h b/security/nss/lib/ckfw/dbm/ckdbm.h new file mode 100644 index 000000000..8c2607cb3 --- /dev/null +++ b/security/nss/lib/ckfw/dbm/ckdbm.h @@ -0,0 +1,210 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKDBM_H +#define CKDBM_H + +#include "nssckmdt.h" +#include "nssckfw.h" + +/* + * I'm including this for access to the arena functions. + * Looks like we should publish that API. + */ +#ifndef BASE_H +#include "base.h" +#endif /* BASE_H */ + +/* + * This is where the Netscape extensions live, at least for now. + */ +#ifndef CKT_H +#include "ckt.h" +#endif /* CKT_H */ + +#include "mcom_db.h" + +NSS_EXTERN_DATA NSSCKMDInstance nss_dbm_mdInstance; + +typedef struct nss_dbm_db_struct nss_dbm_db_t; +struct nss_dbm_db_struct { + DB *db; + NSSCKFWMutex *crustylock; +}; + +typedef struct nss_dbm_dbt_struct nss_dbm_dbt_t; +struct nss_dbm_dbt_struct { + DBT dbt; + nss_dbm_db_t *my_db; +}; + +typedef struct nss_dbm_instance_struct nss_dbm_instance_t; +struct nss_dbm_instance_struct { + NSSArena *arena; + CK_ULONG nSlots; + char **filenames; + int *flags; /* e.g. O_RDONLY, O_RDWR */ +}; + +typedef struct nss_dbm_slot_struct nss_dbm_slot_t; +struct nss_dbm_slot_struct { + nss_dbm_instance_t *instance; + char *filename; + int flags; + nss_dbm_db_t *token_db; +}; + +typedef struct nss_dbm_token_struct nss_dbm_token_t; +struct nss_dbm_token_struct { + NSSArena *arena; + nss_dbm_slot_t *slot; + nss_dbm_db_t *session_db; + NSSUTF8 *label; +}; + +struct nss_dbm_dbt_node { + struct nss_dbm_dbt_node *next; + nss_dbm_dbt_t *dbt; +}; + +typedef struct nss_dbm_session_struct nss_dbm_session_t; +struct nss_dbm_session_struct { + NSSArena *arena; + nss_dbm_token_t *token; + CK_ULONG deviceError; + struct nss_dbm_dbt_node *session_objects; + NSSCKFWMutex *list_lock; +}; + +typedef struct nss_dbm_object_struct nss_dbm_object_t; +struct nss_dbm_object_struct { + NSSArena *arena; /* token or session */ + nss_dbm_dbt_t *handle; +}; + +typedef struct nss_dbm_find_struct nss_dbm_find_t; +struct nss_dbm_find_struct { + NSSArena *arena; + struct nss_dbm_dbt_node *found; + NSSCKFWMutex *list_lock; +}; + +NSS_EXTERN NSSCKMDSlot * +nss_dbm_mdSlot_factory( + nss_dbm_instance_t *instance, + char *filename, + int flags, + CK_RV *pError); + +NSS_EXTERN NSSCKMDToken * +nss_dbm_mdToken_factory( + nss_dbm_slot_t *slot, + CK_RV *pError); + +NSS_EXTERN NSSCKMDSession * +nss_dbm_mdSession_factory( + nss_dbm_token_t *token, + NSSCKFWSession *fwSession, + NSSCKFWInstance *fwInstance, + CK_BBOOL rw, + CK_RV *pError); + +NSS_EXTERN NSSCKMDObject * +nss_dbm_mdObject_factory( + nss_dbm_object_t *object, + CK_RV *pError); + +NSS_EXTERN NSSCKMDFindObjects * +nss_dbm_mdFindObjects_factory( + nss_dbm_find_t *find, + CK_RV *pError); + +NSS_EXTERN nss_dbm_db_t * +nss_dbm_db_open( + NSSArena *arena, + NSSCKFWInstance *fwInstance, + char *filename, + int flags, + CK_RV *pError); + +NSS_EXTERN void +nss_dbm_db_close( + nss_dbm_db_t *db); + +NSS_EXTERN CK_VERSION +nss_dbm_db_get_format_version( + nss_dbm_db_t *db); + +NSS_EXTERN CK_RV +nss_dbm_db_set_label( + nss_dbm_db_t *db, + NSSUTF8 *label); + +NSS_EXTERN NSSUTF8 * +nss_dbm_db_get_label( + nss_dbm_db_t *db, + NSSArena *arena, + CK_RV *pError); + +NSS_EXTERN CK_RV +nss_dbm_db_delete_object( + nss_dbm_dbt_t *dbt); + +NSS_EXTERN nss_dbm_dbt_t * +nss_dbm_db_create_object( + NSSArena *arena, + nss_dbm_db_t *db, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError, + CK_ULONG *pdbrv); + +NSS_EXTERN CK_RV +nss_dbm_db_find_objects( + nss_dbm_find_t *find, + nss_dbm_db_t *db, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_ULONG *pdbrv); + +NSS_EXTERN CK_BBOOL +nss_dbm_db_object_still_exists( + nss_dbm_dbt_t *dbt); + +NSS_EXTERN CK_ULONG +nss_dbm_db_get_object_attribute_count( + nss_dbm_dbt_t *dbt, + CK_RV *pError, + CK_ULONG *pdbrv); + +NSS_EXTERN CK_RV +nss_dbm_db_get_object_attribute_types( + nss_dbm_dbt_t *dbt, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount, + CK_ULONG *pdbrv); + +NSS_EXTERN CK_ULONG +nss_dbm_db_get_object_attribute_size( + nss_dbm_dbt_t *dbt, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError, + CK_ULONG *pdbrv); + +NSS_EXTERN NSSItem * +nss_dbm_db_get_object_attribute( + nss_dbm_dbt_t *dbt, + NSSArena *arena, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError, + CK_ULONG *pdbrv); + +NSS_EXTERN CK_RV +nss_dbm_db_set_object_attribute( + nss_dbm_dbt_t *dbt, + CK_ATTRIBUTE_TYPE type, + NSSItem *value, + CK_ULONG *pdbrv); + +#endif /* CKDBM_H */ diff --git a/security/nss/lib/ckfw/dbm/config.mk b/security/nss/lib/ckfw/dbm/config.mk new file mode 100644 index 000000000..a1991e5f4 --- /dev/null +++ b/security/nss/lib/ckfw/dbm/config.mk @@ -0,0 +1,8 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +ifdef BUILD_IDG +DEFINES += -DNSSDEBUG +endif diff --git a/security/nss/lib/ckfw/dbm/db.c b/security/nss/lib/ckfw/dbm/db.c new file mode 100644 index 000000000..bbf2b9510 --- /dev/null +++ b/security/nss/lib/ckfw/dbm/db.c @@ -0,0 +1,1069 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +#define PREFIX_METADATA "0000" +#define PREFIX_OBJECT "0001" +#define PREFIX_INDEX "0002" + +static CK_VERSION nss_dbm_db_format_version = { 1, 0 }; +struct handle { + char prefix[4]; + CK_ULONG id; +}; + +NSS_IMPLEMENT nss_dbm_db_t * +nss_dbm_db_open( + NSSArena *arena, + NSSCKFWInstance *fwInstance, + char *filename, + int flags, + CK_RV *pError) +{ + nss_dbm_db_t *rv; + CK_VERSION db_version; + + rv = nss_ZNEW(arena, nss_dbm_db_t); + if ((nss_dbm_db_t *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (nss_dbm_db_t *)NULL; + } + + rv->db = dbopen(filename, flags, 0600, DB_HASH, (const void *)NULL); + if ((DB *)NULL == rv->db) { + *pError = CKR_TOKEN_NOT_PRESENT; + return (nss_dbm_db_t *)NULL; + } + + rv->crustylock = NSSCKFWInstance_CreateMutex(fwInstance, arena, pError); + if ((NSSCKFWMutex *)NULL == rv->crustylock) { + return (nss_dbm_db_t *)NULL; + } + + db_version = nss_dbm_db_get_format_version(rv); + if (db_version.major != nss_dbm_db_format_version.major) { + nss_dbm_db_close(rv); + *pError = CKR_TOKEN_NOT_RECOGNIZED; + return (nss_dbm_db_t *)NULL; + } + + return rv; +} + +NSS_IMPLEMENT void +nss_dbm_db_close( + nss_dbm_db_t *db) +{ + if ((NSSCKFWMutex *)NULL != db->crustylock) { + (void)NSSCKFWMutex_Destroy(db->crustylock); + } + + if ((DB *)NULL != db->db) { + (void)db->db->close(db->db); + } + + nss_ZFreeIf(db); +} + +NSS_IMPLEMENT CK_VERSION +nss_dbm_db_get_format_version( + nss_dbm_db_t *db) +{ + CK_VERSION rv; + DBT k, v; + int dbrv; + char buffer[64]; + + rv.major = rv.minor = 0; + + k.data = PREFIX_METADATA "FormatVersion"; + k.size = nssUTF8_Size((NSSUTF8 *)k.data, (PRStatus *)NULL); + (void)memset(&v, 0, sizeof(v)); + + /* Locked region */ + { + if (CKR_OK != NSSCKFWMutex_Lock(db->crustylock)) { + return rv; + } + + dbrv = db->db->get(db->db, &k, &v, 0); + if (dbrv == 0) { + CK_ULONG major = 0, minor = 0; + (void)PR_sscanf(v.data, "%ld.%ld", &major, &minor); + rv.major = major; + rv.minor = minor; + } else if (dbrv > 0) { + (void)PR_snprintf(buffer, sizeof(buffer), "%ld.%ld", nss_dbm_db_format_version.major, + nss_dbm_db_format_version.minor); + v.data = buffer; + v.size = nssUTF8_Size((NSSUTF8 *)v.data, (PRStatus *)NULL); + dbrv = db->db->put(db->db, &k, &v, 0); + (void)db->db->sync(db->db, 0); + rv = nss_dbm_db_format_version; + } else { + /* No error return.. */ + ; + } + + (void)NSSCKFWMutex_Unlock(db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT CK_RV +nss_dbm_db_set_label( + nss_dbm_db_t *db, + NSSUTF8 *label) +{ + CK_RV rv; + DBT k, v; + int dbrv; + + k.data = PREFIX_METADATA "Label"; + k.size = nssUTF8_Size((NSSUTF8 *)k.data, (PRStatus *)NULL); + v.data = label; + v.size = nssUTF8_Size((NSSUTF8 *)v.data, (PRStatus *)NULL); + + /* Locked region */ + { + rv = NSSCKFWMutex_Lock(db->crustylock); + if (CKR_OK != rv) { + return rv; + } + + dbrv = db->db->put(db->db, &k, &v, 0); + if (0 != dbrv) { + rv = CKR_DEVICE_ERROR; + } + + dbrv = db->db->sync(db->db, 0); + if (0 != dbrv) { + rv = CKR_DEVICE_ERROR; + } + + (void)NSSCKFWMutex_Unlock(db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT NSSUTF8 * +nss_dbm_db_get_label( + nss_dbm_db_t *db, + NSSArena *arena, + CK_RV *pError) +{ + NSSUTF8 *rv = (NSSUTF8 *)NULL; + DBT k, v; + int dbrv; + + k.data = PREFIX_METADATA "Label"; + k.size = nssUTF8_Size((NSSUTF8 *)k.data, (PRStatus *)NULL); + + /* Locked region */ + { + if (CKR_OK != NSSCKFWMutex_Lock(db->crustylock)) { + return rv; + } + + dbrv = db->db->get(db->db, &k, &v, 0); + if (0 == dbrv) { + rv = nssUTF8_Duplicate((NSSUTF8 *)v.data, arena); + if ((NSSUTF8 *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + } + } else if (dbrv > 0) { + /* Just return null */ + ; + } else { + *pError = CKR_DEVICE_ERROR; + ; + } + + (void)NSSCKFWMutex_Unlock(db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT CK_RV +nss_dbm_db_delete_object( + nss_dbm_dbt_t *dbt) +{ + CK_RV rv; + int dbrv; + + /* Locked region */ + { + rv = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != rv) { + return rv; + } + + dbrv = dbt->my_db->db->del(dbt->my_db->db, &dbt->dbt, 0); + if (0 != dbrv) { + rv = CKR_DEVICE_ERROR; + goto done; + } + + dbrv = dbt->my_db->db->sync(dbt->my_db->db, 0); + if (0 != dbrv) { + rv = CKR_DEVICE_ERROR; + goto done; + } + + done: + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + } + + return rv; +} + +static CK_ULONG +nss_dbm_db_new_handle( + nss_dbm_db_t *db, + DBT *dbt, /* pre-allocated */ + CK_RV *pError) +{ + CK_ULONG rv; + DBT k, v; + CK_ULONG align = 0, id, myid; + struct handle *hp; + + if (sizeof(struct handle) != dbt->size) { + return EINVAL; + } + + /* Locked region */ + { + *pError = NSSCKFWMutex_Lock(db->crustylock); + if (CKR_OK != *pError) { + return EINVAL; + } + + k.data = PREFIX_METADATA "LastID"; + k.size = nssUTF8_Size((NSSUTF8 *)k.data, (PRStatus *)NULL); + (void)memset(&v, 0, sizeof(v)); + + rv = db->db->get(db->db, &k, &v, 0); + if (0 == rv) { + (void)memcpy(&align, v.data, sizeof(CK_ULONG)); + id = ntohl(align); + } else if (rv > 0) { + id = 0; + } else { + goto done; + } + + myid = id; + id++; + align = htonl(id); + v.data = &align; + v.size = sizeof(CK_ULONG); + + rv = db->db->put(db->db, &k, &v, 0); + if (0 != rv) { + goto done; + } + + rv = db->db->sync(db->db, 0); + if (0 != rv) { + goto done; + } + + done: + (void)NSSCKFWMutex_Unlock(db->crustylock); + } + + if (0 != rv) { + return rv; + } + + hp = (struct handle *)dbt->data; + (void)memcpy(&hp->prefix[0], PREFIX_OBJECT, 4); + hp->id = myid; + + return 0; +} + +/* + * This attribute-type-dependent swapping should probably + * be in the Framework, because it'll be a concern of just + * about every Module. Of course any Framework implementation + * will have to be augmentable or overridable by a Module. + */ + +enum swap_type { type_byte, + type_short, + type_long, + type_opaque }; + +static enum swap_type +nss_dbm_db_swap_type( + CK_ATTRIBUTE_TYPE type) +{ + switch (type) { + case CKA_CLASS: + return type_long; + case CKA_TOKEN: + return type_byte; + case CKA_PRIVATE: + return type_byte; + case CKA_LABEL: + return type_opaque; + case CKA_APPLICATION: + return type_opaque; + case CKA_VALUE: + return type_opaque; + case CKA_CERTIFICATE_TYPE: + return type_long; + case CKA_ISSUER: + return type_opaque; + case CKA_SERIAL_NUMBER: + return type_opaque; + case CKA_KEY_TYPE: + return type_long; + case CKA_SUBJECT: + return type_opaque; + case CKA_ID: + return type_opaque; + case CKA_SENSITIVE: + return type_byte; + case CKA_ENCRYPT: + return type_byte; + case CKA_DECRYPT: + return type_byte; + case CKA_WRAP: + return type_byte; + case CKA_UNWRAP: + return type_byte; + case CKA_SIGN: + return type_byte; + case CKA_SIGN_RECOVER: + return type_byte; + case CKA_VERIFY: + return type_byte; + case CKA_VERIFY_RECOVER: + return type_byte; + case CKA_DERIVE: + return type_byte; + case CKA_START_DATE: + return type_opaque; + case CKA_END_DATE: + return type_opaque; + case CKA_MODULUS: + return type_opaque; + case CKA_MODULUS_BITS: + return type_long; + case CKA_PUBLIC_EXPONENT: + return type_opaque; + case CKA_PRIVATE_EXPONENT: + return type_opaque; + case CKA_PRIME_1: + return type_opaque; + case CKA_PRIME_2: + return type_opaque; + case CKA_EXPONENT_1: + return type_opaque; + case CKA_EXPONENT_2: + return type_opaque; + case CKA_COEFFICIENT: + return type_opaque; + case CKA_PRIME: + return type_opaque; + case CKA_SUBPRIME: + return type_opaque; + case CKA_BASE: + return type_opaque; + case CKA_VALUE_BITS: + return type_long; + case CKA_VALUE_LEN: + return type_long; + case CKA_EXTRACTABLE: + return type_byte; + case CKA_LOCAL: + return type_byte; + case CKA_NEVER_EXTRACTABLE: + return type_byte; + case CKA_ALWAYS_SENSITIVE: + return type_byte; + case CKA_MODIFIABLE: + return type_byte; + case CKA_NETSCAPE_URL: + return type_opaque; + case CKA_NETSCAPE_EMAIL: + return type_opaque; + case CKA_NETSCAPE_SMIME_INFO: + return type_opaque; + case CKA_NETSCAPE_SMIME_TIMESTAMP: + return type_opaque; + case CKA_NETSCAPE_PKCS8_SALT: + return type_opaque; + case CKA_NETSCAPE_PASSWORD_CHECK: + return type_opaque; + case CKA_NETSCAPE_EXPIRES: + return type_opaque; + case CKA_TRUST_DIGITAL_SIGNATURE: + return type_long; + case CKA_TRUST_NON_REPUDIATION: + return type_long; + case CKA_TRUST_KEY_ENCIPHERMENT: + return type_long; + case CKA_TRUST_DATA_ENCIPHERMENT: + return type_long; + case CKA_TRUST_KEY_AGREEMENT: + return type_long; + case CKA_TRUST_KEY_CERT_SIGN: + return type_long; + case CKA_TRUST_CRL_SIGN: + return type_long; + case CKA_TRUST_SERVER_AUTH: + return type_long; + case CKA_TRUST_CLIENT_AUTH: + return type_long; + case CKA_TRUST_CODE_SIGNING: + return type_long; + case CKA_TRUST_EMAIL_PROTECTION: + return type_long; + case CKA_TRUST_IPSEC_END_SYSTEM: + return type_long; + case CKA_TRUST_IPSEC_TUNNEL: + return type_long; + case CKA_TRUST_IPSEC_USER: + return type_long; + case CKA_TRUST_TIME_STAMPING: + return type_long; + case CKA_NETSCAPE_DB: + return type_opaque; + case CKA_NETSCAPE_TRUST: + return type_opaque; + default: + return type_opaque; + } +} + +static void +nss_dbm_db_swap_copy( + CK_ATTRIBUTE_TYPE type, + void *dest, + void *src, + CK_ULONG len) +{ + switch (nss_dbm_db_swap_type(type)) { + case type_byte: + case type_opaque: + (void)memcpy(dest, src, len); + break; + case type_short: { + CK_USHORT s, d; + (void)memcpy(&s, src, sizeof(CK_USHORT)); + d = htons(s); + (void)memcpy(dest, &d, sizeof(CK_USHORT)); + break; + } + case type_long: { + CK_ULONG s, d; + (void)memcpy(&s, src, sizeof(CK_ULONG)); + d = htonl(s); + (void)memcpy(dest, &d, sizeof(CK_ULONG)); + break; + } + } +} + +static CK_RV +nss_dbm_db_wrap_object( + NSSArena *arena, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + DBT *object) +{ + CK_ULONG object_size; + CK_ULONG i; + CK_ULONG *pulData; + char *pcData; + CK_ULONG offset; + + object_size = (1 + ulAttributeCount * 3) * sizeof(CK_ULONG); + offset = object_size; + for (i = 0; i < ulAttributeCount; i++) { + object_size += pTemplate[i].ulValueLen; + } + + object->size = object_size; + object->data = nss_ZAlloc(arena, object_size); + if ((void *)NULL == object->data) { + return CKR_HOST_MEMORY; + } + + pulData = (CK_ULONG *)object->data; + pcData = (char *)object->data; + + pulData[0] = htonl(ulAttributeCount); + for (i = 0; i < ulAttributeCount; i++) { + CK_ULONG len = pTemplate[i].ulValueLen; + pulData[1 + i * 3] = htonl(pTemplate[i].type); + pulData[2 + i * 3] = htonl(len); + pulData[3 + i * 3] = htonl(offset); + nss_dbm_db_swap_copy(pTemplate[i].type, &pcData[offset], pTemplate[i].pValue, len); + offset += len; + } + + return CKR_OK; +} + +static CK_RV +nss_dbm_db_unwrap_object( + NSSArena *arena, + DBT *object, + CK_ATTRIBUTE_PTR *ppTemplate, + CK_ULONG *pulAttributeCount) +{ + CK_ULONG *pulData; + char *pcData; + CK_ULONG n, i; + CK_ATTRIBUTE_PTR pTemplate; + + pulData = (CK_ULONG *)object->data; + pcData = (char *)object->data; + + n = ntohl(pulData[0]); + *pulAttributeCount = n; + pTemplate = nss_ZNEWARRAY(arena, CK_ATTRIBUTE, n); + if ((CK_ATTRIBUTE_PTR)NULL == pTemplate) { + return CKR_HOST_MEMORY; + } + + for (i = 0; i < n; i++) { + CK_ULONG len; + CK_ULONG offset; + void *p; + + pTemplate[i].type = ntohl(pulData[1 + i * 3]); + len = ntohl(pulData[2 + i * 3]); + offset = ntohl(pulData[3 + i * 3]); + + p = nss_ZAlloc(arena, len); + if ((void *)NULL == p) { + return CKR_HOST_MEMORY; + } + + nss_dbm_db_swap_copy(pTemplate[i].type, p, &pcData[offset], len); + pTemplate[i].ulValueLen = len; + pTemplate[i].pValue = p; + } + + *ppTemplate = pTemplate; + return CKR_OK; +} + +NSS_IMPLEMENT nss_dbm_dbt_t * +nss_dbm_db_create_object( + NSSArena *arena, + nss_dbm_db_t *db, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError, + CK_ULONG *pdbrv) +{ + NSSArena *tmparena = (NSSArena *)NULL; + nss_dbm_dbt_t *rv = (nss_dbm_dbt_t *)NULL; + DBT object; + + rv = nss_ZNEW(arena, nss_dbm_dbt_t); + if ((nss_dbm_dbt_t *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (nss_dbm_dbt_t *)NULL; + } + + rv->my_db = db; + rv->dbt.size = sizeof(struct handle); + rv->dbt.data = nss_ZAlloc(arena, rv->dbt.size); + if ((void *)NULL == rv->dbt.data) { + *pError = CKR_HOST_MEMORY; + return (nss_dbm_dbt_t *)NULL; + } + + *pdbrv = nss_dbm_db_new_handle(db, &rv->dbt, pError); + if (0 != *pdbrv) { + return (nss_dbm_dbt_t *)NULL; + } + + tmparena = NSSArena_Create(); + if ((NSSArena *)NULL == tmparena) { + *pError = CKR_HOST_MEMORY; + return (nss_dbm_dbt_t *)NULL; + } + + *pError = nss_dbm_db_wrap_object(tmparena, pTemplate, ulAttributeCount, &object); + if (CKR_OK != *pError) { + return (nss_dbm_dbt_t *)NULL; + } + + /* Locked region */ + { + *pError = NSSCKFWMutex_Lock(db->crustylock); + if (CKR_OK != *pError) { + goto loser; + } + + *pdbrv = db->db->put(db->db, &rv->dbt, &object, 0); + if (0 != *pdbrv) { + *pError = CKR_DEVICE_ERROR; + } + + (void)db->db->sync(db->db, 0); + + (void)NSSCKFWMutex_Unlock(db->crustylock); + } + +loser: + if ((NSSArena *)NULL != tmparena) { + (void)NSSArena_Destroy(tmparena); + } + + return rv; +} + +NSS_IMPLEMENT CK_RV +nss_dbm_db_find_objects( + nss_dbm_find_t *find, + nss_dbm_db_t *db, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_ULONG *pdbrv) +{ + CK_RV rv = CKR_OK; + + if ((nss_dbm_db_t *)NULL != db) { + DBT k, v; + + rv = NSSCKFWMutex_Lock(db->crustylock); + if (CKR_OK != rv) { + return rv; + } + + *pdbrv = db->db->seq(db->db, &k, &v, R_FIRST); + while (0 == *pdbrv) { + CK_ULONG i, j; + NSSArena *tmparena = (NSSArena *)NULL; + CK_ULONG ulac; + CK_ATTRIBUTE_PTR pt; + + if ((k.size < 4) || (0 != memcmp(k.data, PREFIX_OBJECT, 4))) { + goto nomatch; + } + + tmparena = NSSArena_Create(); + + rv = nss_dbm_db_unwrap_object(tmparena, &v, &pt, &ulac); + if (CKR_OK != rv) { + goto loser; + } + + for (i = 0; i < ulAttributeCount; i++) { + for (j = 0; j < ulac; j++) { + if (pTemplate[i].type == + pt[j].type) { + if (pTemplate[i].ulValueLen != + pt[j].ulValueLen) { + goto nomatch; + } + if (0 != + memcmp(pTemplate[i].pValue, pt[j].pValue, pt[j].ulValueLen)) { + goto nomatch; + } + break; + } + } + if (j == ulac) { + goto nomatch; + } + } + + /* entire template matches */ + { + struct nss_dbm_dbt_node *node; + + node = nss_ZNEW(find->arena, struct nss_dbm_dbt_node); + if ((struct nss_dbm_dbt_node *)NULL == node) { + rv = + CKR_HOST_MEMORY; + goto loser; + } + + node->dbt = nss_ZNEW(find->arena, nss_dbm_dbt_t); + if ((nss_dbm_dbt_t *)NULL == node->dbt) { + rv = + CKR_HOST_MEMORY; + goto loser; + } + + node->dbt->dbt.size = k.size; + node->dbt->dbt.data = nss_ZAlloc(find->arena, k.size); + if ((void *)NULL == node->dbt->dbt.data) { + rv = + CKR_HOST_MEMORY; + goto loser; + } + + (void)memcpy(node->dbt->dbt.data, k.data, k.size); + + node->dbt->my_db = db; + + node->next = find->found; + find->found = node; + } + + nomatch: + if ((NSSArena *)NULL != tmparena) { + (void)NSSArena_Destroy(tmparena); + } + *pdbrv = db->db->seq(db->db, &k, &v, R_NEXT); + } + + if (*pdbrv < 0) { + rv = CKR_DEVICE_ERROR; + goto loser; + } + + rv = CKR_OK; + + loser: + (void)NSSCKFWMutex_Unlock(db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT CK_BBOOL +nss_dbm_db_object_still_exists( + nss_dbm_dbt_t *dbt) +{ + CK_BBOOL rv; + CK_RV ckrv; + int dbrv; + DBT object; + + ckrv = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != ckrv) { + return CK_FALSE; + } + + dbrv = dbt->my_db->db->get(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 == dbrv) { + rv = CK_TRUE; + } else { + rv = CK_FALSE; + } + + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + + return rv; +} + +NSS_IMPLEMENT CK_ULONG +nss_dbm_db_get_object_attribute_count( + nss_dbm_dbt_t *dbt, + CK_RV *pError, + CK_ULONG *pdbrv) +{ + CK_ULONG rv = 0; + DBT object; + CK_ULONG *pulData; + + /* Locked region */ + { + *pError = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != *pError) { + return rv; + } + + *pdbrv = dbt->my_db->db->get(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 == *pdbrv) { + ; + } else if (*pdbrv > 0) { + *pError = CKR_OBJECT_HANDLE_INVALID; + goto done; + } else { + *pError = CKR_DEVICE_ERROR; + goto done; + } + + pulData = (CK_ULONG *)object.data; + rv = ntohl(pulData[0]); + + done: + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT CK_RV +nss_dbm_db_get_object_attribute_types( + nss_dbm_dbt_t *dbt, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount, + CK_ULONG *pdbrv) +{ + CK_RV rv = CKR_OK; + DBT object; + CK_ULONG *pulData; + CK_ULONG n, i; + + /* Locked region */ + { + rv = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != rv) { + return rv; + } + + *pdbrv = dbt->my_db->db->get(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 == *pdbrv) { + ; + } else if (*pdbrv > 0) { + rv = CKR_OBJECT_HANDLE_INVALID; + goto done; + } else { + rv = CKR_DEVICE_ERROR; + goto done; + } + + pulData = (CK_ULONG *)object.data; + n = ntohl(pulData[0]); + + if (ulCount < n) { + rv = CKR_BUFFER_TOO_SMALL; + goto done; + } + + for (i = 0; i < n; i++) { + typeArray[i] = ntohl(pulData[1 + i * 3]); + } + + done: + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT CK_ULONG +nss_dbm_db_get_object_attribute_size( + nss_dbm_dbt_t *dbt, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError, + CK_ULONG *pdbrv) +{ + CK_ULONG rv = 0; + DBT object; + CK_ULONG *pulData; + CK_ULONG n, i; + + /* Locked region */ + { + *pError = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != *pError) { + return rv; + } + + *pdbrv = dbt->my_db->db->get(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 == *pdbrv) { + ; + } else if (*pdbrv > 0) { + *pError = CKR_OBJECT_HANDLE_INVALID; + goto done; + } else { + *pError = CKR_DEVICE_ERROR; + goto done; + } + + pulData = (CK_ULONG *)object.data; + n = ntohl(pulData[0]); + + for (i = 0; i < n; i++) { + if (type == ntohl(pulData[1 + i * 3])) { + rv = ntohl(pulData[2 + i * 3]); + } + } + + if (i == n) { + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + goto done; + } + + done: + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + } + + return rv; +} + +NSS_IMPLEMENT NSSItem * +nss_dbm_db_get_object_attribute( + nss_dbm_dbt_t *dbt, + NSSArena *arena, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError, + CK_ULONG *pdbrv) +{ + NSSItem *rv = (NSSItem *)NULL; + DBT object; + CK_ULONG i; + NSSArena *tmp = NSSArena_Create(); + CK_ATTRIBUTE_PTR pTemplate; + CK_ULONG ulAttributeCount; + + /* Locked region */ + { + *pError = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != *pError) { + goto loser; + } + + *pdbrv = dbt->my_db->db->get(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 == *pdbrv) { + ; + } else if (*pdbrv > 0) { + *pError = CKR_OBJECT_HANDLE_INVALID; + goto done; + } else { + *pError = CKR_DEVICE_ERROR; + goto done; + } + + *pError = nss_dbm_db_unwrap_object(tmp, &object, &pTemplate, &ulAttributeCount); + if (CKR_OK != *pError) { + goto done; + } + + for (i = 0; i < ulAttributeCount; i++) { + if (type == pTemplate[i].type) { + rv = nss_ZNEW(arena, NSSItem); + if ((NSSItem *)NULL == rv) { + *pError = + CKR_HOST_MEMORY; + goto done; + } + rv->size = pTemplate[i].ulValueLen; + rv->data = nss_ZAlloc(arena, rv->size); + if ((void *)NULL == rv->data) { + *pError = + CKR_HOST_MEMORY; + goto done; + } + (void)memcpy(rv->data, pTemplate[i].pValue, rv->size); + break; + } + } + if (ulAttributeCount == i) { + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + goto done; + } + + done: + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + } + +loser: + if ((NSSArena *)NULL != tmp) { + NSSArena_Destroy(tmp); + } + + return rv; +} + +NSS_IMPLEMENT CK_RV +nss_dbm_db_set_object_attribute( + nss_dbm_dbt_t *dbt, + CK_ATTRIBUTE_TYPE type, + NSSItem *value, + CK_ULONG *pdbrv) +{ + CK_RV rv = CKR_OK; + DBT object; + CK_ULONG i; + NSSArena *tmp = NSSArena_Create(); + CK_ATTRIBUTE_PTR pTemplate; + CK_ULONG ulAttributeCount; + + /* Locked region */ + { + rv = NSSCKFWMutex_Lock(dbt->my_db->crustylock); + if (CKR_OK != rv) { + goto loser; + } + + *pdbrv = dbt->my_db->db->get(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 == *pdbrv) { + ; + } else if (*pdbrv > 0) { + rv = CKR_OBJECT_HANDLE_INVALID; + goto done; + } else { + rv = CKR_DEVICE_ERROR; + goto done; + } + + rv = nss_dbm_db_unwrap_object(tmp, &object, &pTemplate, &ulAttributeCount); + if (CKR_OK != rv) { + goto done; + } + + for (i = 0; i < ulAttributeCount; i++) { + if (type == pTemplate[i].type) { + /* Replacing an existing attribute */ + pTemplate[i].ulValueLen = value->size; + pTemplate[i].pValue = value->data; + break; + } + } + + if (i == ulAttributeCount) { + /* Adding a new attribute */ + CK_ATTRIBUTE_PTR npt = nss_ZNEWARRAY(tmp, CK_ATTRIBUTE, ulAttributeCount + 1); + if ((CK_ATTRIBUTE_PTR)NULL == npt) { + rv = CKR_DEVICE_ERROR; + goto done; + } + + for (i = 0; i < ulAttributeCount; i++) { + npt[i] = pTemplate[i]; + } + + npt[ulAttributeCount].type = type; + npt[ulAttributeCount].ulValueLen = value->size; + npt[ulAttributeCount].pValue = value->data; + + pTemplate = npt; + ulAttributeCount++; + } + + rv = nss_dbm_db_wrap_object(tmp, pTemplate, ulAttributeCount, &object); + if (CKR_OK != rv) { + goto done; + } + + *pdbrv = dbt->my_db->db->put(dbt->my_db->db, &dbt->dbt, &object, 0); + if (0 != *pdbrv) { + rv = CKR_DEVICE_ERROR; + goto done; + } + + (void)dbt->my_db->db->sync(dbt->my_db->db, 0); + + done: + (void)NSSCKFWMutex_Unlock(dbt->my_db->crustylock); + } + +loser: + if ((NSSArena *)NULL != tmp) { + NSSArena_Destroy(tmp); + } + + return rv; +} diff --git a/security/nss/lib/ckfw/dbm/find.c b/security/nss/lib/ckfw/dbm/find.c new file mode 100644 index 000000000..8a03855c3 --- /dev/null +++ b/security/nss/lib/ckfw/dbm/find.c @@ -0,0 +1,126 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +static void +nss_dbm_mdFindObjects_Final( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_find_t *find = (nss_dbm_find_t *)mdFindObjects->etc; + + /* Locks might have system resources associated */ + (void)NSSCKFWMutex_Destroy(find->list_lock); + (void)NSSArena_Destroy(find->arena); +} + +static NSSCKMDObject * +nss_dbm_mdFindObjects_Next( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + nss_dbm_find_t *find = (nss_dbm_find_t *)mdFindObjects->etc; + struct nss_dbm_dbt_node *node; + nss_dbm_object_t *object; + NSSCKMDObject *rv; + + while (1) { + /* Lock */ + { + *pError = NSSCKFWMutex_Lock(find->list_lock); + if (CKR_OK != *pError) { + return (NSSCKMDObject *)NULL; + } + + node = find->found; + if ((struct nss_dbm_dbt_node *)NULL != node) { + find->found = node->next; + } + + *pError = NSSCKFWMutex_Unlock(find->list_lock); + if (CKR_OK != *pError) { + /* screwed now */ + return (NSSCKMDObject *)NULL; + } + } + + if ((struct nss_dbm_dbt_node *)NULL == node) { + break; + } + + if (nss_dbm_db_object_still_exists(node->dbt)) { + break; + } + } + + if ((struct nss_dbm_dbt_node *)NULL == node) { + *pError = CKR_OK; + return (NSSCKMDObject *)NULL; + } + + object = nss_ZNEW(arena, nss_dbm_object_t); + if ((nss_dbm_object_t *)NULL == object) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDObject *)NULL; + } + + object->arena = arena; + object->handle = nss_ZNEW(arena, nss_dbm_dbt_t); + if ((nss_dbm_dbt_t *)NULL == object->handle) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDObject *)NULL; + } + + object->handle->my_db = node->dbt->my_db; + object->handle->dbt.size = node->dbt->dbt.size; + object->handle->dbt.data = nss_ZAlloc(arena, node->dbt->dbt.size); + if ((void *)NULL == object->handle->dbt.data) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDObject *)NULL; + } + + (void)memcpy(object->handle->dbt.data, node->dbt->dbt.data, node->dbt->dbt.size); + + rv = nss_dbm_mdObject_factory(object, pError); + if ((NSSCKMDObject *)NULL == rv) { + return (NSSCKMDObject *)NULL; + } + + return rv; +} + +NSS_IMPLEMENT NSSCKMDFindObjects * +nss_dbm_mdFindObjects_factory( + nss_dbm_find_t *find, + CK_RV *pError) +{ + NSSCKMDFindObjects *rv; + + rv = nss_ZNEW(find->arena, NSSCKMDFindObjects); + if ((NSSCKMDFindObjects *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDFindObjects *)NULL; + } + + rv->etc = (void *)find; + rv->Final = nss_dbm_mdFindObjects_Final; + rv->Next = nss_dbm_mdFindObjects_Next; + + return rv; +} diff --git a/security/nss/lib/ckfw/dbm/instance.c b/security/nss/lib/ckfw/dbm/instance.c new file mode 100644 index 000000000..fbb11722d --- /dev/null +++ b/security/nss/lib/ckfw/dbm/instance.c @@ -0,0 +1,147 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +static CK_RV +nss_dbm_mdInstance_Initialize( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSUTF8 *configurationData) +{ + CK_RV rv = CKR_OK; + NSSArena *arena; + nss_dbm_instance_t *instance; + + arena = NSSCKFWInstance_GetArena(fwInstance, &rv); + if (((NSSArena *)NULL == arena) && (CKR_OK != rv)) { + return rv; + } + + instance = nss_ZNEW(arena, nss_dbm_instance_t); + if ((nss_dbm_instance_t *)NULL == instance) { + return CKR_HOST_MEMORY; + } + + instance->arena = arena; + + /* + * This should parse the configuration data for information on + * number and locations of databases, modes (e.g. readonly), etc. + * But for now, we'll have one slot with a creatable read-write + * database called "cert8.db." + */ + + instance->nSlots = 1; + instance->filenames = nss_ZNEWARRAY(arena, char *, instance->nSlots); + if ((char **)NULL == instance->filenames) { + return CKR_HOST_MEMORY; + } + + instance->flags = nss_ZNEWARRAY(arena, int, instance->nSlots); + if ((int *)NULL == instance->flags) { + return CKR_HOST_MEMORY; + } + + instance->filenames[0] = "cert8.db"; + instance->flags[0] = O_RDWR | O_CREAT; + + mdInstance->etc = (void *)instance; + return CKR_OK; +} + +/* nss_dbm_mdInstance_Finalize is not required */ + +static CK_ULONG +nss_dbm_mdInstance_GetNSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + nss_dbm_instance_t *instance = (nss_dbm_instance_t *)mdInstance->etc; + return instance->nSlots; +} + +static CK_VERSION +nss_dbm_mdInstance_GetCryptokiVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + static CK_VERSION rv = { 2, 1 }; + return rv; +} + +static NSSUTF8 * +nss_dbm_mdInstance_GetManufacturerID( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return "Mozilla Foundation"; +} + +static NSSUTF8 * +nss_dbm_mdInstance_GetLibraryDescription( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return "Berkeley Database Module"; +} + +static CK_VERSION +nss_dbm_mdInstance_GetLibraryVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + static CK_VERSION rv = { 1, 0 }; /* My own version number */ + return rv; +} + +static CK_BBOOL +nss_dbm_mdInstance_ModuleHandlesSessionObjects( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_RV +nss_dbm_mdInstance_GetSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *slots[]) +{ + nss_dbm_instance_t *instance = (nss_dbm_instance_t *)mdInstance->etc; + CK_ULONG i; + CK_RV rv = CKR_OK; + + for (i = 0; i < instance->nSlots; i++) { + slots[i] = nss_dbm_mdSlot_factory(instance, instance->filenames[i], + instance->flags[i], &rv); + if ((NSSCKMDSlot *)NULL == slots[i]) { + return rv; + } + } + + return rv; +} + +/* nss_dbm_mdInstance_WaitForSlotEvent is not relevant */ + +NSS_IMPLEMENT_DATA NSSCKMDInstance + nss_dbm_mdInstance = { + NULL, /* etc; filled in later */ + nss_dbm_mdInstance_Initialize, + NULL, /* nss_dbm_mdInstance_Finalize */ + nss_dbm_mdInstance_GetNSlots, + nss_dbm_mdInstance_GetCryptokiVersion, + nss_dbm_mdInstance_GetManufacturerID, + nss_dbm_mdInstance_GetLibraryDescription, + nss_dbm_mdInstance_GetLibraryVersion, + nss_dbm_mdInstance_ModuleHandlesSessionObjects, + nss_dbm_mdInstance_GetSlots, + NULL, /* nss_dbm_mdInstance_WaitForSlotEvent */ + NULL /* terminator */ + }; diff --git a/security/nss/lib/ckfw/dbm/manifest.mn b/security/nss/lib/ckfw/dbm/manifest.mn new file mode 100644 index 000000000..1f87f4353 --- /dev/null +++ b/security/nss/lib/ckfw/dbm/manifest.mn @@ -0,0 +1,25 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +CORE_DEPTH = ../../../.. + +MODULE = nss + +CSRCS = \ + anchor.c \ + instance.c \ + slot.c \ + token.c \ + session.c \ + object.c \ + find.c \ + db.c \ + $(NULL) + +REQUIRES = dbm nspr + +LIBRARY_NAME = nssckdbm + +EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -ldbm -lnspr4 -lplc4 -lplds4 diff --git a/security/nss/lib/ckfw/dbm/object.c b/security/nss/lib/ckfw/dbm/object.c new file mode 100644 index 000000000..4f6e4d409 --- /dev/null +++ b/security/nss/lib/ckfw/dbm/object.c @@ -0,0 +1,155 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +static void +nss_dbm_mdObject_Finalize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + ; +} + +static CK_RV +nss_dbm_mdObject_Destroy( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; + return nss_dbm_db_delete_object(object->handle); +} + +static CK_ULONG +nss_dbm_mdObject_GetAttributeCount( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + return nss_dbm_db_get_object_attribute_count(object->handle, pError, + &session->deviceError); +} + +static CK_RV +nss_dbm_mdObject_GetAttributeTypes( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ + nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + return nss_dbm_db_get_object_attribute_types(object->handle, typeArray, + ulCount, &session->deviceError); +} + +static CK_ULONG +nss_dbm_mdObject_GetAttributeSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + return nss_dbm_db_get_object_attribute_size(object->handle, attribute, pError, + &session->deviceError); +} + +static NSSItem * +nss_dbm_mdObject_GetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + return nss_dbm_db_get_object_attribute(object->handle, object->arena, attribute, + pError, &session->deviceError); +} + +static CK_RV +nss_dbm_mdObject_SetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value) +{ + nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc; + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + return nss_dbm_db_set_object_attribute(object->handle, attribute, value, + &session->deviceError); +} + +NSS_IMPLEMENT NSSCKMDObject * +nss_dbm_mdObject_factory( + nss_dbm_object_t *object, + CK_RV *pError) +{ + NSSCKMDObject *rv; + + rv = nss_ZNEW(object->arena, NSSCKMDObject); + if ((NSSCKMDObject *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDObject *)NULL; + } + + rv->etc = (void *)object; + rv->Finalize = nss_dbm_mdObject_Finalize; + rv->Destroy = nss_dbm_mdObject_Destroy; + /* IsTokenObject can be deferred */ + rv->GetAttributeCount = nss_dbm_mdObject_GetAttributeCount; + rv->GetAttributeTypes = nss_dbm_mdObject_GetAttributeTypes; + rv->GetAttributeSize = nss_dbm_mdObject_GetAttributeSize; + rv->GetAttribute = nss_dbm_mdObject_GetAttribute; + rv->SetAttribute = nss_dbm_mdObject_SetAttribute; + /* GetObjectSize can be deferred */ + + return rv; +} diff --git a/security/nss/lib/ckfw/dbm/session.c b/security/nss/lib/ckfw/dbm/session.c new file mode 100644 index 000000000..a1c2ee5fa --- /dev/null +++ b/security/nss/lib/ckfw/dbm/session.c @@ -0,0 +1,255 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +static void +nss_dbm_mdSession_Close( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + + struct nss_dbm_dbt_node *w; + + /* Lock */ + { + if (CKR_OK != NSSCKFWMutex_Lock(session->list_lock)) { + return; + } + + w = session->session_objects; + session->session_objects = (struct nss_dbm_dbt_node *)NULL; /* sanity */ + + (void)NSSCKFWMutex_Unlock(session->list_lock); + } + + for (; (struct nss_dbm_dbt_node *)NULL != w; w = w->next) { + (void)nss_dbm_db_delete_object(w->dbt); + } +} + +static CK_ULONG +nss_dbm_mdSession_GetDeviceError( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + return session->deviceError; +} + +/* Login isn't needed */ +/* Logout isn't needed */ +/* InitPIN is irrelevant */ +/* SetPIN is irrelevant */ +/* GetOperationStateLen is irrelevant */ +/* GetOperationState is irrelevant */ +/* SetOperationState is irrelevant */ + +static NSSCKMDObject * +nss_dbm_mdSession_CreateObject( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *handyArenaPointer, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + CK_ULONG i; + CK_BBOOL isToken = CK_FALSE; /* defaults to false */ + NSSCKMDObject *rv; + struct nss_dbm_dbt_node *node = (struct nss_dbm_dbt_node *)NULL; + nss_dbm_object_t *object; + nss_dbm_db_t *which_db; + + /* This framework should really pass this to me */ + for (i = 0; i < ulAttributeCount; i++) { + if (CKA_TOKEN == pTemplate[i].type) { + isToken = *(CK_BBOOL *)pTemplate[i].pValue; + break; + } + } + + object = nss_ZNEW(handyArenaPointer, nss_dbm_object_t); + if ((nss_dbm_object_t *)NULL == object) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDObject *)NULL; + } + + object->arena = handyArenaPointer; + which_db = isToken ? token->slot->token_db : token->session_db; + + /* Do this before the actual database call; it's easier to recover from */ + rv = nss_dbm_mdObject_factory(object, pError); + if ((NSSCKMDObject *)NULL == rv) { + return (NSSCKMDObject *)NULL; + } + + if (CK_FALSE == isToken) { + node = nss_ZNEW(session->arena, struct nss_dbm_dbt_node); + if ((struct nss_dbm_dbt_node *)NULL == node) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDObject *)NULL; + } + } + + object->handle = nss_dbm_db_create_object(handyArenaPointer, which_db, + pTemplate, ulAttributeCount, + pError, &session->deviceError); + if ((nss_dbm_dbt_t *)NULL == object->handle) { + return (NSSCKMDObject *)NULL; + } + + if (CK_FALSE == isToken) { + node->dbt = object->handle; + /* Lock */ + { + *pError = NSSCKFWMutex_Lock(session->list_lock); + if (CKR_OK != *pError) { + (void)nss_dbm_db_delete_object(object->handle); + return (NSSCKMDObject *)NULL; + } + + node->next = session->session_objects; + session->session_objects = node; + + *pError = NSSCKFWMutex_Unlock(session->list_lock); + } + } + + return rv; +} + +/* CopyObject isn't needed; the framework will use CreateObject */ + +static NSSCKMDFindObjects * +nss_dbm_mdSession_FindObjectsInit( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc; + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + NSSArena *arena; + nss_dbm_find_t *find; + NSSCKMDFindObjects *rv; + + arena = NSSArena_Create(); + if ((NSSArena *)NULL == arena) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + find = nss_ZNEW(arena, nss_dbm_find_t); + if ((nss_dbm_find_t *)NULL == find) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + find->arena = arena; + find->list_lock = NSSCKFWInstance_CreateMutex(fwInstance, arena, pError); + if ((NSSCKFWMutex *)NULL == find->list_lock) { + goto loser; + } + + *pError = nss_dbm_db_find_objects(find, token->slot->token_db, pTemplate, + ulAttributeCount, &session->deviceError); + if (CKR_OK != *pError) { + goto loser; + } + + *pError = nss_dbm_db_find_objects(find, token->session_db, pTemplate, + ulAttributeCount, &session->deviceError); + if (CKR_OK != *pError) { + goto loser; + } + + rv = nss_dbm_mdFindObjects_factory(find, pError); + if ((NSSCKMDFindObjects *)NULL == rv) { + goto loser; + } + + return rv; + +loser: + if ((NSSArena *)NULL != arena) { + (void)NSSArena_Destroy(arena); + } + + return (NSSCKMDFindObjects *)NULL; +} + +/* SeedRandom is irrelevant */ +/* GetRandom is irrelevant */ + +NSS_IMPLEMENT NSSCKMDSession * +nss_dbm_mdSession_factory( + nss_dbm_token_t *token, + NSSCKFWSession *fwSession, + NSSCKFWInstance *fwInstance, + CK_BBOOL rw, + CK_RV *pError) +{ + NSSArena *arena; + nss_dbm_session_t *session; + NSSCKMDSession *rv; + + arena = NSSCKFWSession_GetArena(fwSession, pError); + + session = nss_ZNEW(arena, nss_dbm_session_t); + if ((nss_dbm_session_t *)NULL == session) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSession *)NULL; + } + + rv = nss_ZNEW(arena, NSSCKMDSession); + if ((NSSCKMDSession *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSession *)NULL; + } + + session->arena = arena; + session->token = token; + session->list_lock = NSSCKFWInstance_CreateMutex(fwInstance, arena, pError); + if ((NSSCKFWMutex *)NULL == session->list_lock) { + return (NSSCKMDSession *)NULL; + } + + rv->etc = (void *)session; + rv->Close = nss_dbm_mdSession_Close; + rv->GetDeviceError = nss_dbm_mdSession_GetDeviceError; + /* Login isn't needed */ + /* Logout isn't needed */ + /* InitPIN is irrelevant */ + /* SetPIN is irrelevant */ + /* GetOperationStateLen is irrelevant */ + /* GetOperationState is irrelevant */ + /* SetOperationState is irrelevant */ + rv->CreateObject = nss_dbm_mdSession_CreateObject; + /* CopyObject isn't needed; the framework will use CreateObject */ + rv->FindObjectsInit = nss_dbm_mdSession_FindObjectsInit; + rv->null = NULL; + + return rv; +} diff --git a/security/nss/lib/ckfw/dbm/slot.c b/security/nss/lib/ckfw/dbm/slot.c new file mode 100644 index 000000000..06824d59e --- /dev/null +++ b/security/nss/lib/ckfw/dbm/slot.c @@ -0,0 +1,165 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +static CK_RV +nss_dbm_mdSlot_Initialize( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_slot_t *slot = (nss_dbm_slot_t *)mdSlot->etc; + nss_dbm_instance_t *instance = (nss_dbm_instance_t *)mdInstance->etc; + CK_RV rv = CKR_OK; + + slot->token_db = nss_dbm_db_open(instance->arena, fwInstance, slot->filename, + slot->flags, &rv); + if ((nss_dbm_db_t *)NULL == slot->token_db) { + if (CKR_TOKEN_NOT_PRESENT == rv) { + /* This is not an error-- just means "the token isn't there" */ + rv = CKR_OK; + } + } + + return rv; +} + +static void +nss_dbm_mdSlot_Destroy( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_slot_t *slot = (nss_dbm_slot_t *)mdSlot->etc; + + if ((nss_dbm_db_t *)NULL != slot->token_db) { + nss_dbm_db_close(slot->token_db); + slot->token_db = (nss_dbm_db_t *)NULL; + } +} + +static NSSUTF8 * +nss_dbm_mdSlot_GetSlotDescription( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return "Database"; +} + +static NSSUTF8 * +nss_dbm_mdSlot_GetManufacturerID( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return "Berkeley"; +} + +static CK_BBOOL +nss_dbm_mdSlot_GetTokenPresent( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_slot_t *slot = (nss_dbm_slot_t *)mdSlot->etc; + + if ((nss_dbm_db_t *)NULL == slot->token_db) { + return CK_FALSE; + } else { + return CK_TRUE; + } +} + +static CK_BBOOL +nss_dbm_mdSlot_GetRemovableDevice( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + /* + * Well, this supports "tokens" (databases) that aren't there, so in + * that sense they're removable. It'd be nice to handle databases + * that suddenly disappear (NFS-mounted home directories and network + * errors, for instance) but that's a harder problem. We'll say + * we support removable devices, badly. + */ + + return CK_TRUE; +} + +/* nss_dbm_mdSlot_GetHardwareSlot defaults to CK_FALSE */ +/* + * nss_dbm_mdSlot_GetHardwareVersion + * nss_dbm_mdSlot_GetFirmwareVersion + * + * These are kinda fuzzy concepts here. I suppose we could return the + * Berkeley DB version for one of them, if we had an actual number we + * were confident in. But mcom's "dbm" has been hacked enough that I + * don't really know from what "real" version it stems.. + */ + +static NSSCKMDToken * +nss_dbm_mdSlot_GetToken( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + nss_dbm_slot_t *slot = (nss_dbm_slot_t *)mdSlot->etc; + return nss_dbm_mdToken_factory(slot, pError); +} + +NSS_IMPLEMENT NSSCKMDSlot * +nss_dbm_mdSlot_factory( + nss_dbm_instance_t *instance, + char *filename, + int flags, + CK_RV *pError) +{ + nss_dbm_slot_t *slot; + NSSCKMDSlot *rv; + + slot = nss_ZNEW(instance->arena, nss_dbm_slot_t); + if ((nss_dbm_slot_t *)NULL == slot) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSlot *)NULL; + } + + slot->instance = instance; + slot->filename = filename; + slot->flags = flags; + slot->token_db = (nss_dbm_db_t *)NULL; + + rv = nss_ZNEW(instance->arena, NSSCKMDSlot); + if ((NSSCKMDSlot *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSlot *)NULL; + } + + rv->etc = (void *)slot; + rv->Initialize = nss_dbm_mdSlot_Initialize; + rv->Destroy = nss_dbm_mdSlot_Destroy; + rv->GetSlotDescription = nss_dbm_mdSlot_GetSlotDescription; + rv->GetManufacturerID = nss_dbm_mdSlot_GetManufacturerID; + rv->GetTokenPresent = nss_dbm_mdSlot_GetTokenPresent; + rv->GetRemovableDevice = nss_dbm_mdSlot_GetRemovableDevice; + /* GetHardwareSlot */ + /* GetHardwareVersion */ + /* GetFirmwareVersion */ + rv->GetToken = nss_dbm_mdSlot_GetToken; + rv->null = (void *)NULL; + + return rv; +} diff --git a/security/nss/lib/ckfw/dbm/token.c b/security/nss/lib/ckfw/dbm/token.c new file mode 100644 index 000000000..6873bf0ec --- /dev/null +++ b/security/nss/lib/ckfw/dbm/token.c @@ -0,0 +1,260 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckdbm.h" + +static CK_RV +nss_dbm_mdToken_Setup( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + CK_RV rv = CKR_OK; + + token->arena = NSSCKFWToken_GetArena(fwToken, &rv); + token->session_db = nss_dbm_db_open(token->arena, fwInstance, (char *)NULL, + O_RDWR | O_CREAT, &rv); + if ((nss_dbm_db_t *)NULL == token->session_db) { + return rv; + } + + /* Add a label record if there isn't one? */ + + return CKR_OK; +} + +static void +nss_dbm_mdToken_Invalidate( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + + if ((nss_dbm_db_t *)NULL != token->session_db) { + nss_dbm_db_close(token->session_db); + token->session_db = (nss_dbm_db_t *)NULL; + } +} + +static CK_RV +nss_dbm_mdToken_InitToken( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *pin, + NSSUTF8 *label) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + nss_dbm_instance_t *instance = (nss_dbm_instance_t *)mdInstance->etc; + CK_RV rv; + + /* Wipe the session object data */ + + if ((nss_dbm_db_t *)NULL != token->session_db) { + nss_dbm_db_close(token->session_db); + } + + token->session_db = nss_dbm_db_open(token->arena, fwInstance, (char *)NULL, + O_RDWR | O_CREAT, &rv); + if ((nss_dbm_db_t *)NULL == token->session_db) { + return rv; + } + + /* Wipe the token object data */ + + if (token->slot->flags & O_RDWR) { + if ((nss_dbm_db_t *)NULL != token->slot->token_db) { + nss_dbm_db_close(token->slot->token_db); + } + + token->slot->token_db = nss_dbm_db_open(instance->arena, fwInstance, + token->slot->filename, + token->slot->flags | O_CREAT | O_TRUNC, + &rv); + if ((nss_dbm_db_t *)NULL == token->slot->token_db) { + return rv; + } + + /* PIN is irrelevant */ + + rv = nss_dbm_db_set_label(token->slot->token_db, label); + if (CKR_OK != rv) { + return rv; + } + } + + return CKR_OK; +} + +static NSSUTF8 * +nss_dbm_mdToken_GetLabel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + + if ((NSSUTF8 *)NULL == token->label) { + token->label = nss_dbm_db_get_label(token->slot->token_db, token->arena, pError); + } + + /* If no label has been set, return *something* */ + if ((NSSUTF8 *)NULL == token->label) { + return token->slot->filename; + } + + return token->label; +} + +static NSSUTF8 * +nss_dbm_mdToken_GetManufacturerID( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return "mozilla.org NSS"; +} + +static NSSUTF8 * +nss_dbm_mdToken_GetModel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return "dbm"; +} + +/* GetSerialNumber is irrelevant */ +/* GetHasRNG defaults to CK_FALSE */ + +static CK_BBOOL +nss_dbm_mdToken_GetIsWriteProtected( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + + if (token->slot->flags & O_RDWR) { + return CK_FALSE; + } else { + return CK_TRUE; + } +} + +/* GetLoginRequired defaults to CK_FALSE */ +/* GetUserPinInitialized defaults to CK_FALSE */ +/* GetRestoreKeyNotNeeded is irrelevant */ +/* GetHasClockOnToken defaults to CK_FALSE */ +/* GetHasProtectedAuthenticationPath defaults to CK_FALSE */ +/* GetSupportsDualCryptoOperations is irrelevant */ + +static CK_ULONG +nss_dbm_mdToken_effectively_infinite( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_EFFECTIVELY_INFINITE; +} + +static CK_VERSION +nss_dbm_mdToken_GetHardwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + return nss_dbm_db_get_format_version(token->slot->token_db); +} + +/* GetFirmwareVersion is irrelevant */ +/* GetUTCTime is irrelevant */ + +static NSSCKMDSession * +nss_dbm_mdToken_OpenSession( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_BBOOL rw, + CK_RV *pError) +{ + nss_dbm_token_t *token = (nss_dbm_token_t *)mdToken->etc; + return nss_dbm_mdSession_factory(token, fwSession, fwInstance, rw, pError); +} + +/* GetMechanismCount defaults to zero */ +/* GetMechanismTypes is irrelevant */ +/* GetMechanism is irrelevant */ + +NSS_IMPLEMENT NSSCKMDToken * +nss_dbm_mdToken_factory( + nss_dbm_slot_t *slot, + CK_RV *pError) +{ + nss_dbm_token_t *token; + NSSCKMDToken *rv; + + token = nss_ZNEW(slot->instance->arena, nss_dbm_token_t); + if ((nss_dbm_token_t *)NULL == token) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDToken *)NULL; + } + + rv = nss_ZNEW(slot->instance->arena, NSSCKMDToken); + if ((NSSCKMDToken *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDToken *)NULL; + } + + token->slot = slot; + + rv->etc = (void *)token; + rv->Setup = nss_dbm_mdToken_Setup; + rv->Invalidate = nss_dbm_mdToken_Invalidate; + rv->InitToken = nss_dbm_mdToken_InitToken; + rv->GetLabel = nss_dbm_mdToken_GetLabel; + rv->GetManufacturerID = nss_dbm_mdToken_GetManufacturerID; + rv->GetModel = nss_dbm_mdToken_GetModel; + /* GetSerialNumber is irrelevant */ + /* GetHasRNG defaults to CK_FALSE */ + rv->GetIsWriteProtected = nss_dbm_mdToken_GetIsWriteProtected; + /* GetLoginRequired defaults to CK_FALSE */ + /* GetUserPinInitialized defaults to CK_FALSE */ + /* GetRestoreKeyNotNeeded is irrelevant */ + /* GetHasClockOnToken defaults to CK_FALSE */ + /* GetHasProtectedAuthenticationPath defaults to CK_FALSE */ + /* GetSupportsDualCryptoOperations is irrelevant */ + rv->GetMaxSessionCount = nss_dbm_mdToken_effectively_infinite; + rv->GetMaxRwSessionCount = nss_dbm_mdToken_effectively_infinite; + /* GetMaxPinLen is irrelevant */ + /* GetMinPinLen is irrelevant */ + /* GetTotalPublicMemory defaults to CK_UNAVAILABLE_INFORMATION */ + /* GetFreePublicMemory defaults to CK_UNAVAILABLE_INFORMATION */ + /* GetTotalPrivateMemory defaults to CK_UNAVAILABLE_INFORMATION */ + /* GetFreePrivateMemory defaults to CK_UNAVAILABLE_INFORMATION */ + rv->GetHardwareVersion = nss_dbm_mdToken_GetHardwareVersion; + /* GetFirmwareVersion is irrelevant */ + /* GetUTCTime is irrelevant */ + rv->OpenSession = nss_dbm_mdToken_OpenSession; + rv->null = NULL; + + return rv; +} diff --git a/security/nss/lib/ckfw/exports.gyp b/security/nss/lib/ckfw/exports.gyp new file mode 100644 index 000000000..b986fd807 --- /dev/null +++ b/security/nss/lib/ckfw/exports.gyp @@ -0,0 +1,44 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +{ + 'includes': [ + '../../coreconf/config.gypi' + ], + 'targets': [ + { + 'target_name': 'lib_ckfw_exports', + 'type': 'none', + 'copies': [ + { + 'files': [ + 'nssck.api', + 'nssckepv.h', + 'nssckft.h', + 'nssckfw.h', + 'nssckfwc.h', + 'nssckfwt.h', + 'nssckg.h', + 'nssckmdt.h', + 'nssckt.h' + ], + 'destination': '<(nss_public_dist_dir)/<(module)' + }, + { + 'files': [ + 'ck.h', + 'ckfw.h', + 'ckfwm.h', + 'ckfwtm.h', + 'ckmd.h', + 'ckt.h' + ], + 'destination': '<(nss_private_dist_dir)/<(module)' + } + ] + } + ], + 'variables': { + 'module': 'nss' + } +} diff --git a/security/nss/lib/ckfw/find.c b/security/nss/lib/ckfw/find.c new file mode 100644 index 000000000..55732e626 --- /dev/null +++ b/security/nss/lib/ckfw/find.c @@ -0,0 +1,362 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * find.c + * + * This file implements the nssCKFWFindObjects type and methods. + */ + +#ifndef CK_H +#include "ck.h" +#endif /* CK_H */ + +/* + * NSSCKFWFindObjects + * + * -- create/destroy -- + * nssCKFWFindObjects_Create + * nssCKFWFindObjects_Destroy + * + * -- public accessors -- + * NSSCKFWFindObjects_GetMDFindObjects + * + * -- implement public accessors -- + * nssCKFWFindObjects_GetMDFindObjects + * + * -- private accessors -- + * + * -- module fronts -- + * nssCKFWFindObjects_Next + */ + +struct NSSCKFWFindObjectsStr { + NSSCKFWMutex *mutex; /* merely to serialise the MDObject calls */ + NSSCKMDFindObjects *mdfo1; + NSSCKMDFindObjects *mdfo2; + NSSCKFWSession *fwSession; + NSSCKMDSession *mdSession; + NSSCKFWToken *fwToken; + NSSCKMDToken *mdToken; + NSSCKFWInstance *fwInstance; + NSSCKMDInstance *mdInstance; + + NSSCKMDFindObjects *mdFindObjects; /* varies */ +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do these routines as no-ops. + */ + +static CK_RV +findObjects_add_pointer( + const NSSCKFWFindObjects *fwFindObjects) +{ + return CKR_OK; +} + +static CK_RV +findObjects_remove_pointer( + const NSSCKFWFindObjects *fwFindObjects) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWFindObjects_verifyPointer( + const NSSCKFWFindObjects *fwFindObjects) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWFindObjects_Create + * + */ +NSS_EXTERN NSSCKFWFindObjects * +nssCKFWFindObjects_Create( + NSSCKFWSession *fwSession, + NSSCKFWToken *fwToken, + NSSCKFWInstance *fwInstance, + NSSCKMDFindObjects *mdFindObjects1, + NSSCKMDFindObjects *mdFindObjects2, + CK_RV *pError) +{ + NSSCKFWFindObjects *fwFindObjects = NULL; + NSSCKMDSession *mdSession; + NSSCKMDToken *mdToken; + NSSCKMDInstance *mdInstance; + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdToken = nssCKFWToken_GetMDToken(fwToken); + mdInstance = nssCKFWInstance_GetMDInstance(fwInstance); + + fwFindObjects = nss_ZNEW(NULL, NSSCKFWFindObjects); + if (!fwFindObjects) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fwFindObjects->mdfo1 = mdFindObjects1; + fwFindObjects->mdfo2 = mdFindObjects2; + fwFindObjects->fwSession = fwSession; + fwFindObjects->mdSession = mdSession; + fwFindObjects->fwToken = fwToken; + fwFindObjects->mdToken = mdToken; + fwFindObjects->fwInstance = fwInstance; + fwFindObjects->mdInstance = mdInstance; + + fwFindObjects->mutex = nssCKFWInstance_CreateMutex(fwInstance, NULL, pError); + if (!fwFindObjects->mutex) { + goto loser; + } + +#ifdef DEBUG + *pError = findObjects_add_pointer(fwFindObjects); + if (CKR_OK != *pError) { + goto loser; + } +#endif /* DEBUG */ + + return fwFindObjects; + +loser: + if (fwFindObjects) { + if (NULL != mdFindObjects1) { + if (NULL != mdFindObjects1->Final) { + fwFindObjects->mdFindObjects = mdFindObjects1; + mdFindObjects1->Final(mdFindObjects1, fwFindObjects, mdSession, + fwSession, mdToken, fwToken, mdInstance, fwInstance); + } + } + + if (NULL != mdFindObjects2) { + if (NULL != mdFindObjects2->Final) { + fwFindObjects->mdFindObjects = mdFindObjects2; + mdFindObjects2->Final(mdFindObjects2, fwFindObjects, mdSession, + fwSession, mdToken, fwToken, mdInstance, fwInstance); + } + } + + nss_ZFreeIf(fwFindObjects); + } + + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + + return (NSSCKFWFindObjects *)NULL; +} + +/* + * nssCKFWFindObjects_Destroy + * + */ +NSS_EXTERN void +nssCKFWFindObjects_Destroy( + NSSCKFWFindObjects *fwFindObjects) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWFindObjects_verifyPointer(fwFindObjects)) { + return; + } +#endif /* NSSDEBUG */ + + (void)nssCKFWMutex_Destroy(fwFindObjects->mutex); + + if (fwFindObjects->mdfo1) { + if (fwFindObjects->mdfo1->Final) { + fwFindObjects->mdFindObjects = fwFindObjects->mdfo1; + fwFindObjects->mdfo1->Final(fwFindObjects->mdfo1, fwFindObjects, + fwFindObjects->mdSession, fwFindObjects->fwSession, + fwFindObjects->mdToken, fwFindObjects->fwToken, + fwFindObjects->mdInstance, fwFindObjects->fwInstance); + } + } + + if (fwFindObjects->mdfo2) { + if (fwFindObjects->mdfo2->Final) { + fwFindObjects->mdFindObjects = fwFindObjects->mdfo2; + fwFindObjects->mdfo2->Final(fwFindObjects->mdfo2, fwFindObjects, + fwFindObjects->mdSession, fwFindObjects->fwSession, + fwFindObjects->mdToken, fwFindObjects->fwToken, + fwFindObjects->mdInstance, fwFindObjects->fwInstance); + } + } + + nss_ZFreeIf(fwFindObjects); + +#ifdef DEBUG + (void)findObjects_remove_pointer(fwFindObjects); +#endif /* DEBUG */ + + return; +} + +/* + * nssCKFWFindObjects_GetMDFindObjects + * + */ +NSS_EXTERN NSSCKMDFindObjects * +nssCKFWFindObjects_GetMDFindObjects( + NSSCKFWFindObjects *fwFindObjects) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWFindObjects_verifyPointer(fwFindObjects)) { + return (NSSCKMDFindObjects *)NULL; + } +#endif /* NSSDEBUG */ + + return fwFindObjects->mdFindObjects; +} + +/* + * nssCKFWFindObjects_Next + * + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWFindObjects_Next( + NSSCKFWFindObjects *fwFindObjects, + NSSArena *arenaOpt, + CK_RV *pError) +{ + NSSCKMDObject *mdObject; + NSSCKFWObject *fwObject = (NSSCKFWObject *)NULL; + NSSArena *objArena; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWObject *)NULL; + } + + *pError = nssCKFWFindObjects_verifyPointer(fwFindObjects); + if (CKR_OK != *pError) { + return (NSSCKFWObject *)NULL; + } +#endif /* NSSDEBUG */ + + *pError = nssCKFWMutex_Lock(fwFindObjects->mutex); + if (CKR_OK != *pError) { + return (NSSCKFWObject *)NULL; + } + + if (fwFindObjects->mdfo1) { + if (fwFindObjects->mdfo1->Next) { + fwFindObjects->mdFindObjects = fwFindObjects->mdfo1; + mdObject = fwFindObjects->mdfo1->Next(fwFindObjects->mdfo1, + fwFindObjects, fwFindObjects->mdSession, fwFindObjects->fwSession, + fwFindObjects->mdToken, fwFindObjects->fwToken, + fwFindObjects->mdInstance, fwFindObjects->fwInstance, + arenaOpt, pError); + if (!mdObject) { + if (CKR_OK != *pError) { + goto done; + } + + /* All done. */ + fwFindObjects->mdfo1->Final(fwFindObjects->mdfo1, fwFindObjects, + fwFindObjects->mdSession, fwFindObjects->fwSession, + fwFindObjects->mdToken, fwFindObjects->fwToken, + fwFindObjects->mdInstance, fwFindObjects->fwInstance); + fwFindObjects->mdfo1 = (NSSCKMDFindObjects *)NULL; + } else { + goto wrap; + } + } + } + + if (fwFindObjects->mdfo2) { + if (fwFindObjects->mdfo2->Next) { + fwFindObjects->mdFindObjects = fwFindObjects->mdfo2; + mdObject = fwFindObjects->mdfo2->Next(fwFindObjects->mdfo2, + fwFindObjects, fwFindObjects->mdSession, fwFindObjects->fwSession, + fwFindObjects->mdToken, fwFindObjects->fwToken, + fwFindObjects->mdInstance, fwFindObjects->fwInstance, + arenaOpt, pError); + if (!mdObject) { + if (CKR_OK != *pError) { + goto done; + } + + /* All done. */ + fwFindObjects->mdfo2->Final(fwFindObjects->mdfo2, fwFindObjects, + fwFindObjects->mdSession, fwFindObjects->fwSession, + fwFindObjects->mdToken, fwFindObjects->fwToken, + fwFindObjects->mdInstance, fwFindObjects->fwInstance); + fwFindObjects->mdfo2 = (NSSCKMDFindObjects *)NULL; + } else { + goto wrap; + } + } + } + + /* No more objects */ + *pError = CKR_OK; + goto done; + +wrap: + /* + * This seems is less than ideal-- we should determine if it's a token + * object or a session object, and use the appropriate arena. + * But that duplicates logic in nssCKFWObject_IsTokenObject. + * Also we should lookup the real session the object was created on + * if the object was a session object... however this code is actually + * correct because nssCKFWObject_Create will return a cached version of + * the object from it's hash. This is necessary because 1) we don't want + * to create an arena style leak (where our arena grows with every search), + * and 2) we want the same object to always have the same ID. This means + * the only case the nssCKFWObject_Create() will need the objArena and the + * Session is in the case of token objects (session objects should already + * exist in the cache from their initial creation). So this code is correct, + * but it depends on nssCKFWObject_Create caching all objects. + */ + objArena = nssCKFWToken_GetArena(fwFindObjects->fwToken, pError); + if (!objArena) { + if (CKR_OK == *pError) { + *pError = CKR_HOST_MEMORY; + } + goto done; + } + + fwObject = nssCKFWObject_Create(objArena, mdObject, + NULL, fwFindObjects->fwToken, + fwFindObjects->fwInstance, pError); + if (!fwObject) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + } + +done: + (void)nssCKFWMutex_Unlock(fwFindObjects->mutex); + return fwObject; +} + +/* + * NSSCKFWFindObjects_GetMDFindObjects + * + */ + +NSS_EXTERN NSSCKMDFindObjects * +NSSCKFWFindObjects_GetMDFindObjects( + NSSCKFWFindObjects *fwFindObjects) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWFindObjects_verifyPointer(fwFindObjects)) { + return (NSSCKMDFindObjects *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWFindObjects_GetMDFindObjects(fwFindObjects); +} diff --git a/security/nss/lib/ckfw/hash.c b/security/nss/lib/ckfw/hash.c new file mode 100644 index 000000000..50de4ce14 --- /dev/null +++ b/security/nss/lib/ckfw/hash.c @@ -0,0 +1,280 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * hash.c + * + * This is merely a couple wrappers around NSPR's PLHashTable, using + * the identity hash and arena-aware allocators. The reason I did + * this is that hash tables are used in a few places throughout the + * NSS Cryptoki Framework in a fairly stereotyped way, and this allows + * me to pull the commonalities into one place. Should we ever want + * to change the implementation, it's all right here. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * nssCKFWHash + * + * nssCKFWHash_Create + * nssCKFWHash_Destroy + * nssCKFWHash_Add + * nssCKFWHash_Remove + * nssCKFWHash_Count + * nssCKFWHash_Exists + * nssCKFWHash_Lookup + * nssCKFWHash_Iterate + */ + +struct nssCKFWHashStr { + NSSCKFWMutex *mutex; + + /* + * The invariant that mutex protects is: + * The count accurately reflects the hashtable state. + */ + + PLHashTable *plHashTable; + CK_ULONG count; +}; + +static PLHashNumber +nss_ckfw_identity_hash( + const void *key) +{ + return (PLHashNumber)((char *)key - (char *)NULL); +} + +/* + * nssCKFWHash_Create + * + */ +NSS_IMPLEMENT nssCKFWHash * +nssCKFWHash_Create( + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + nssCKFWHash *rv; + +#ifdef NSSDEBUG + if (!pError) { + return (nssCKFWHash *)NULL; + } + + if (PR_SUCCESS != nssArena_verifyPointer(arena)) { + *pError = CKR_ARGUMENTS_BAD; + return (nssCKFWHash *)NULL; + } +#endif /* NSSDEBUG */ + + rv = nss_ZNEW(arena, nssCKFWHash); + if (!rv) { + *pError = CKR_HOST_MEMORY; + return (nssCKFWHash *)NULL; + } + + rv->mutex = nssCKFWInstance_CreateMutex(fwInstance, arena, pError); + if (!rv->mutex) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + (void)nss_ZFreeIf(rv); + return (nssCKFWHash *)NULL; + } + + rv->plHashTable = PL_NewHashTable(0, nss_ckfw_identity_hash, + PL_CompareValues, PL_CompareValues, &nssArenaHashAllocOps, arena); + if (!rv->plHashTable) { + (void)nssCKFWMutex_Destroy(rv->mutex); + (void)nss_ZFreeIf(rv); + *pError = CKR_HOST_MEMORY; + return (nssCKFWHash *)NULL; + } + + rv->count = 0; + + return rv; +} + +/* + * nssCKFWHash_Destroy + * + */ +NSS_IMPLEMENT void +nssCKFWHash_Destroy( + nssCKFWHash *hash) +{ + (void)nssCKFWMutex_Destroy(hash->mutex); + PL_HashTableDestroy(hash->plHashTable); + (void)nss_ZFreeIf(hash); +} + +/* + * nssCKFWHash_Add + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWHash_Add( + nssCKFWHash *hash, + const void *key, + const void *value) +{ + CK_RV error = CKR_OK; + PLHashEntry *he; + + error = nssCKFWMutex_Lock(hash->mutex); + if (CKR_OK != error) { + return error; + } + + he = PL_HashTableAdd(hash->plHashTable, key, (void *)value); + if (!he) { + error = CKR_HOST_MEMORY; + } else { + hash->count++; + } + + (void)nssCKFWMutex_Unlock(hash->mutex); + + return error; +} + +/* + * nssCKFWHash_Remove + * + */ +NSS_IMPLEMENT void +nssCKFWHash_Remove( + nssCKFWHash *hash, + const void *it) +{ + PRBool found; + + if (CKR_OK != nssCKFWMutex_Lock(hash->mutex)) { + return; + } + + found = PL_HashTableRemove(hash->plHashTable, it); + if (found) { + hash->count--; + } + + (void)nssCKFWMutex_Unlock(hash->mutex); + return; +} + +/* + * nssCKFWHash_Count + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWHash_Count( + nssCKFWHash *hash) +{ + CK_ULONG count; + + if (CKR_OK != nssCKFWMutex_Lock(hash->mutex)) { + return (CK_ULONG)0; + } + + count = hash->count; + + (void)nssCKFWMutex_Unlock(hash->mutex); + + return count; +} + +/* + * nssCKFWHash_Exists + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWHash_Exists( + nssCKFWHash *hash, + const void *it) +{ + void *value; + + if (CKR_OK != nssCKFWMutex_Lock(hash->mutex)) { + return CK_FALSE; + } + + value = PL_HashTableLookup(hash->plHashTable, it); + + (void)nssCKFWMutex_Unlock(hash->mutex); + + if (!value) { + return CK_FALSE; + } else { + return CK_TRUE; + } +} + +/* + * nssCKFWHash_Lookup + * + */ +NSS_IMPLEMENT void * +nssCKFWHash_Lookup( + nssCKFWHash *hash, + const void *it) +{ + void *rv; + + if (CKR_OK != nssCKFWMutex_Lock(hash->mutex)) { + return (void *)NULL; + } + + rv = PL_HashTableLookup(hash->plHashTable, it); + + (void)nssCKFWMutex_Unlock(hash->mutex); + + return rv; +} + +struct arg_str { + nssCKFWHashIterator fcn; + void *closure; +}; + +static PRIntn +nss_ckfwhash_enumerator( + PLHashEntry *he, + PRIntn index, + void *arg) +{ + struct arg_str *as = (struct arg_str *)arg; + as->fcn(he->key, he->value, as->closure); + return HT_ENUMERATE_NEXT; +} + +/* + * nssCKFWHash_Iterate + * + * NOTE that the iteration function will be called with the hashtable locked. + */ +NSS_IMPLEMENT void +nssCKFWHash_Iterate( + nssCKFWHash *hash, + nssCKFWHashIterator fcn, + void *closure) +{ + struct arg_str as; + as.fcn = fcn; + as.closure = closure; + + if (CKR_OK != nssCKFWMutex_Lock(hash->mutex)) { + return; + } + + PL_HashTableEnumerateEntries(hash->plHashTable, nss_ckfwhash_enumerator, &as); + + (void)nssCKFWMutex_Unlock(hash->mutex); + + return; +} diff --git a/security/nss/lib/ckfw/instance.c b/security/nss/lib/ckfw/instance.c new file mode 100644 index 000000000..cee56c97c --- /dev/null +++ b/security/nss/lib/ckfw/instance.c @@ -0,0 +1,1294 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * instance.c + * + * This file implements the NSSCKFWInstance type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWInstance + * + * -- create/destroy -- + * nssCKFWInstance_Create + * nssCKFWInstance_Destroy + * + * -- public accessors -- + * NSSCKFWInstance_GetMDInstance + * NSSCKFWInstance_GetArena + * NSSCKFWInstance_MayCreatePthreads + * NSSCKFWInstance_CreateMutex + * NSSCKFWInstance_GetConfigurationData + * NSSCKFWInstance_GetInitArgs + * NSSCKFWInstance_DestroySessionHandle + * NSSCKFWInstance_FindSessionHandle + * + * -- implement public accessors -- + * nssCKFWInstance_GetMDInstance + * nssCKFWInstance_GetArena + * nssCKFWInstance_MayCreatePthreads + * nssCKFWInstance_CreateMutex + * nssCKFWInstance_GetConfigurationData + * nssCKFWInstance_GetInitArgs + * nssCKFWInstance_DestroySessionHandle + * nssCKFWInstance_FindSessionHandle + * + * -- private accessors -- + * nssCKFWInstance_CreateSessionHandle + * nssCKFWInstance_ResolveSessionHandle + * nssCKFWInstance_CreateObjectHandle + * nssCKFWInstance_ResolveObjectHandle + * nssCKFWInstance_DestroyObjectHandle + * + * -- module fronts -- + * nssCKFWInstance_GetNSlots + * nssCKFWInstance_GetCryptokiVersion + * nssCKFWInstance_GetManufacturerID + * nssCKFWInstance_GetFlags + * nssCKFWInstance_GetLibraryDescription + * nssCKFWInstance_GetLibraryVersion + * nssCKFWInstance_GetModuleHandlesSessionObjects + * nssCKFWInstance_GetSlots + * nssCKFWInstance_WaitForSlotEvent + * + * -- debugging versions only -- + * nssCKFWInstance_verifyPointer + */ + +struct NSSCKFWInstanceStr { + NSSCKFWMutex *mutex; + 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; + NSSCKFWSlot **fwSlotList; + NSSCKMDSlot **mdSlotList; + CK_BBOOL moduleHandlesSessionObjects; + + /* + * Everything above is set at creation time, and then not modified. + * The invariants the mutex protects are: + * + * 1) Each of the cached descriptions (versions, etc.) are in an + * internally consistant state. + * + * 2) The session handle hashes and count are consistant + * + * 3) The object handle hashes and count are consistant. + * + * I could use multiple locks, but let's wait to see if that's + * really necessary. + * + * Note that the calls accessing the cached descriptions will + * call the NSSCKMDInstance methods with the mutex locked. Those + * methods may then call the public NSSCKFWInstance routines. + * Those public routines only access the constant data above, so + * there's no problem. But be careful if you add to this object; + * mutexes are in general not reentrant, so don't create deadlock + * situations. + */ + + CK_VERSION cryptokiVersion; + NSSUTF8 *manufacturerID; + NSSUTF8 *libraryDescription; + CK_VERSION libraryVersion; + + CK_ULONG lastSessionHandle; + nssCKFWHash *sessionHandleHash; + + CK_ULONG lastObjectHandle; + nssCKFWHash *objectHandleHash; +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +instance_add_pointer( + const NSSCKFWInstance *fwInstance) +{ + return CKR_OK; +} + +static CK_RV +instance_remove_pointer( + const NSSCKFWInstance *fwInstance) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWInstance_verifyPointer( + const NSSCKFWInstance *fwInstance) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWInstance_Create + * + */ +NSS_IMPLEMENT NSSCKFWInstance * +nssCKFWInstance_Create( + CK_C_INITIALIZE_ARGS_PTR pInitArgs, + CryptokiLockingState LockingState, + NSSCKMDInstance *mdInstance, + CK_RV *pError) +{ + NSSCKFWInstance *fwInstance; + NSSArena *arena = (NSSArena *)NULL; + CK_ULONG i; + CK_BBOOL called_Initialize = CK_FALSE; + +#ifdef NSSDEBUG + if ((CK_RV)NULL == pError) { + return (NSSCKFWInstance *)NULL; + } + + if (!mdInstance) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWInstance *)NULL; + } +#endif /* NSSDEBUG */ + + arena = NSSArena_Create(); + if (!arena) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWInstance *)NULL; + } + + fwInstance = nss_ZNEW(arena, NSSCKFWInstance); + if (!fwInstance) { + goto nomem; + } + + fwInstance->arena = arena; + fwInstance->mdInstance = mdInstance; + + 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 { + fwInstance->mayCreatePthreads = CK_TRUE; + } + fwInstance->configurationData = (NSSUTF8 *)(pInitArgs->pReserved); + } else { + fwInstance->mayCreatePthreads = CK_TRUE; + } + + fwInstance->mutex = nssCKFWMutex_Create(pInitArgs, LockingState, arena, + pError); + if (!fwInstance->mutex) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + + if (mdInstance->Initialize) { + *pError = mdInstance->Initialize(mdInstance, fwInstance, fwInstance->configurationData); + if (CKR_OK != *pError) { + goto loser; + } + + called_Initialize = CK_TRUE; + } + + if (mdInstance->ModuleHandlesSessionObjects) { + fwInstance->moduleHandlesSessionObjects = + mdInstance->ModuleHandlesSessionObjects(mdInstance, fwInstance); + } else { + fwInstance->moduleHandlesSessionObjects = CK_FALSE; + } + + if (!mdInstance->GetNSlots) { + /* That routine is required */ + *pError = CKR_GENERAL_ERROR; + goto loser; + } + + fwInstance->nSlots = mdInstance->GetNSlots(mdInstance, fwInstance, pError); + if ((CK_ULONG)0 == fwInstance->nSlots) { + if (CKR_OK == *pError) { + /* Zero is not a legitimate answer */ + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + + fwInstance->fwSlotList = nss_ZNEWARRAY(arena, NSSCKFWSlot *, fwInstance->nSlots); + if ((NSSCKFWSlot **)NULL == fwInstance->fwSlotList) { + goto nomem; + } + + fwInstance->mdSlotList = nss_ZNEWARRAY(arena, NSSCKMDSlot *, fwInstance->nSlots); + if ((NSSCKMDSlot **)NULL == fwInstance->mdSlotList) { + goto nomem; + } + + fwInstance->sessionHandleHash = nssCKFWHash_Create(fwInstance, + fwInstance->arena, pError); + if (!fwInstance->sessionHandleHash) { + goto loser; + } + + fwInstance->objectHandleHash = nssCKFWHash_Create(fwInstance, + fwInstance->arena, pError); + if (!fwInstance->objectHandleHash) { + goto loser; + } + + if (!mdInstance->GetSlots) { + /* That routine is required */ + *pError = CKR_GENERAL_ERROR; + goto loser; + } + + *pError = mdInstance->GetSlots(mdInstance, fwInstance, fwInstance->mdSlotList); + if (CKR_OK != *pError) { + goto loser; + } + + for (i = 0; i < fwInstance->nSlots; i++) { + NSSCKMDSlot *mdSlot = fwInstance->mdSlotList[i]; + + if (!mdSlot) { + *pError = CKR_GENERAL_ERROR; + goto loser; + } + + fwInstance->fwSlotList[i] = nssCKFWSlot_Create(fwInstance, mdSlot, i, pError); + if (CKR_OK != *pError) { + CK_ULONG j; + + for (j = 0; j < i; j++) { + (void)nssCKFWSlot_Destroy(fwInstance->fwSlotList[j]); + } + + for (j = i; j < fwInstance->nSlots; j++) { + NSSCKMDSlot *mds = fwInstance->mdSlotList[j]; + if (mds->Destroy) { + mds->Destroy(mds, (NSSCKFWSlot *)NULL, mdInstance, fwInstance); + } + } + + goto loser; + } + } + +#ifdef DEBUG + *pError = instance_add_pointer(fwInstance); + if (CKR_OK != *pError) { + for (i = 0; i < fwInstance->nSlots; i++) { + (void)nssCKFWSlot_Destroy(fwInstance->fwSlotList[i]); + } + + goto loser; + } +#endif /* DEBUG */ + + *pError = CKR_OK; + return fwInstance; + +nomem: + *pError = CKR_HOST_MEMORY; +/*FALLTHROUGH*/ +loser: + + if (CK_TRUE == called_Initialize) { + if (mdInstance->Finalize) { + mdInstance->Finalize(mdInstance, fwInstance); + } + } + + if (fwInstance && fwInstance->mutex) { + nssCKFWMutex_Destroy(fwInstance->mutex); + } + + if (arena) { + (void)NSSArena_Destroy(arena); + } + return (NSSCKFWInstance *)NULL; +} + +/* + * nssCKFWInstance_Destroy + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWInstance_Destroy( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + CK_ULONG i; + +#ifdef NSSDEBUG + error = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + nssCKFWMutex_Destroy(fwInstance->mutex); + + for (i = 0; i < fwInstance->nSlots; i++) { + (void)nssCKFWSlot_Destroy(fwInstance->fwSlotList[i]); + } + + if (fwInstance->mdInstance->Finalize) { + fwInstance->mdInstance->Finalize(fwInstance->mdInstance, fwInstance); + } + + if (fwInstance->sessionHandleHash) { + nssCKFWHash_Destroy(fwInstance->sessionHandleHash); + } + + if (fwInstance->objectHandleHash) { + nssCKFWHash_Destroy(fwInstance->objectHandleHash); + } + +#ifdef DEBUG + (void)instance_remove_pointer(fwInstance); +#endif /* DEBUG */ + + (void)NSSArena_Destroy(fwInstance->arena); + return CKR_OK; +} + +/* + * nssCKFWInstance_GetMDInstance + * + */ +NSS_IMPLEMENT NSSCKMDInstance * +nssCKFWInstance_GetMDInstance( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (NSSCKMDInstance *)NULL; + } +#endif /* NSSDEBUG */ + + return fwInstance->mdInstance; +} + +/* + * nssCKFWInstance_GetArena + * + */ +NSS_IMPLEMENT NSSArena * +nssCKFWInstance_GetArena( + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* NSSDEBUG */ + + *pError = CKR_OK; + return fwInstance->arena; +} + +/* + * nssCKFWInstance_MayCreatePthreads + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWInstance_MayCreatePthreads( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + return fwInstance->mayCreatePthreads; +} + +/* + * nssCKFWInstance_CreateMutex + * + */ +NSS_IMPLEMENT NSSCKFWMutex * +nssCKFWInstance_CreateMutex( + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + NSSCKFWMutex *mutex; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWMutex *)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSCKFWMutex *)NULL; + } +#endif /* NSSDEBUG */ + + mutex = nssCKFWMutex_Create(fwInstance->pInitArgs, fwInstance->LockingState, + arena, pError); + if (!mutex) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + + return (NSSCKFWMutex *)NULL; + } + + return mutex; +} + +/* + * nssCKFWInstance_GetConfigurationData + * + */ +NSS_IMPLEMENT NSSUTF8 * +nssCKFWInstance_GetConfigurationData( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (NSSUTF8 *)NULL; + } +#endif /* NSSDEBUG */ + + return fwInstance->configurationData; +} + +/* + * nssCKFWInstance_GetInitArgs + * + */ +CK_C_INITIALIZE_ARGS_PTR +nssCKFWInstance_GetInitArgs( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (CK_C_INITIALIZE_ARGS_PTR)NULL; + } +#endif /* NSSDEBUG */ + + return fwInstance->pInitArgs; +} + +/* + * nssCKFWInstance_CreateSessionHandle + * + */ +NSS_IMPLEMENT CK_SESSION_HANDLE +nssCKFWInstance_CreateSessionHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_RV *pError) +{ + CK_SESSION_HANDLE hSession; + +#ifdef NSSDEBUG + if (!pError) { + return (CK_SESSION_HANDLE)0; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (CK_SESSION_HANDLE)0; + } +#endif /* NSSDEBUG */ + + *pError = nssCKFWMutex_Lock(fwInstance->mutex); + if (CKR_OK != *pError) { + return (CK_SESSION_HANDLE)0; + } + + hSession = ++(fwInstance->lastSessionHandle); + + /* Alan would say I should unlock for this call. */ + + *pError = nssCKFWSession_SetHandle(fwSession, hSession); + if (CKR_OK != *pError) { + goto done; + } + + *pError = nssCKFWHash_Add(fwInstance->sessionHandleHash, + (const void *)hSession, (const void *)fwSession); + if (CKR_OK != *pError) { + hSession = (CK_SESSION_HANDLE)0; + goto done; + } + +done: + nssCKFWMutex_Unlock(fwInstance->mutex); + return hSession; +} + +/* + * nssCKFWInstance_ResolveSessionHandle + * + */ +NSS_IMPLEMENT NSSCKFWSession * +nssCKFWInstance_ResolveSessionHandle( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + NSSCKFWSession *fwSession; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (NSSCKFWSession *)NULL; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwInstance->mutex)) { + return (NSSCKFWSession *)NULL; + } + + fwSession = (NSSCKFWSession *)nssCKFWHash_Lookup( + fwInstance->sessionHandleHash, (const void *)hSession); + + /* Assert(hSession == nssCKFWSession_GetHandle(fwSession)) */ + + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + + return fwSession; +} + +/* + * nssCKFWInstance_DestroySessionHandle + * + */ +NSS_IMPLEMENT void +nssCKFWInstance_DestroySessionHandle( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + NSSCKFWSession *fwSession; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwInstance->mutex)) { + return; + } + + fwSession = (NSSCKFWSession *)nssCKFWHash_Lookup( + fwInstance->sessionHandleHash, (const void *)hSession); + if (fwSession) { + nssCKFWHash_Remove(fwInstance->sessionHandleHash, (const void *)hSession); + nssCKFWSession_SetHandle(fwSession, (CK_SESSION_HANDLE)0); + } + + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + + return; +} + +/* + * nssCKFWInstance_FindSessionHandle + * + */ +NSS_IMPLEMENT CK_SESSION_HANDLE +nssCKFWInstance_FindSessionHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (CK_SESSION_HANDLE)0; + } + + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return (CK_SESSION_HANDLE)0; + } +#endif /* NSSDEBUG */ + + return nssCKFWSession_GetHandle(fwSession); + /* look it up and assert? */ +} + +/* + * nssCKFWInstance_CreateObjectHandle + * + */ +NSS_IMPLEMENT CK_OBJECT_HANDLE +nssCKFWInstance_CreateObjectHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWObject *fwObject, + CK_RV *pError) +{ + CK_OBJECT_HANDLE hObject; + +#ifdef NSSDEBUG + if (!pError) { + return (CK_OBJECT_HANDLE)0; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (CK_OBJECT_HANDLE)0; + } +#endif /* NSSDEBUG */ + + *pError = nssCKFWMutex_Lock(fwInstance->mutex); + if (CKR_OK != *pError) { + return (CK_OBJECT_HANDLE)0; + } + + hObject = ++(fwInstance->lastObjectHandle); + + *pError = nssCKFWObject_SetHandle(fwObject, hObject); + if (CKR_OK != *pError) { + hObject = (CK_OBJECT_HANDLE)0; + goto done; + } + + *pError = nssCKFWHash_Add(fwInstance->objectHandleHash, + (const void *)hObject, (const void *)fwObject); + if (CKR_OK != *pError) { + hObject = (CK_OBJECT_HANDLE)0; + goto done; + } + +done: + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return hObject; +} + +/* + * nssCKFWInstance_ResolveObjectHandle + * + */ +NSS_IMPLEMENT NSSCKFWObject * +nssCKFWInstance_ResolveObjectHandle( + NSSCKFWInstance *fwInstance, + CK_OBJECT_HANDLE hObject) +{ + NSSCKFWObject *fwObject; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (NSSCKFWObject *)NULL; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwInstance->mutex)) { + return (NSSCKFWObject *)NULL; + } + + fwObject = (NSSCKFWObject *)nssCKFWHash_Lookup( + fwInstance->objectHandleHash, (const void *)hObject); + + /* Assert(hObject == nssCKFWObject_GetHandle(fwObject)) */ + + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return fwObject; +} + +/* + * nssCKFWInstance_ReassignObjectHandle + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWInstance_ReassignObjectHandle( + NSSCKFWInstance *fwInstance, + CK_OBJECT_HANDLE hObject, + NSSCKFWObject *fwObject) +{ + CK_RV error = CKR_OK; + NSSCKFWObject *oldObject; + +#ifdef NSSDEBUG + error = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwInstance->mutex); + if (CKR_OK != error) { + return error; + } + + oldObject = (NSSCKFWObject *)nssCKFWHash_Lookup( + fwInstance->objectHandleHash, (const void *)hObject); + if (oldObject) { + /* Assert(hObject == nssCKFWObject_GetHandle(oldObject) */ + (void)nssCKFWObject_SetHandle(oldObject, (CK_SESSION_HANDLE)0); + nssCKFWHash_Remove(fwInstance->objectHandleHash, (const void *)hObject); + } + + error = nssCKFWObject_SetHandle(fwObject, hObject); + if (CKR_OK != error) { + goto done; + } + error = nssCKFWHash_Add(fwInstance->objectHandleHash, + (const void *)hObject, (const void *)fwObject); + +done: + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return error; +} + +/* + * nssCKFWInstance_DestroyObjectHandle + * + */ +NSS_IMPLEMENT void +nssCKFWInstance_DestroyObjectHandle( + NSSCKFWInstance *fwInstance, + CK_OBJECT_HANDLE hObject) +{ + NSSCKFWObject *fwObject; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwInstance->mutex)) { + return; + } + + fwObject = (NSSCKFWObject *)nssCKFWHash_Lookup( + fwInstance->objectHandleHash, (const void *)hObject); + if (fwObject) { + /* Assert(hObject = nssCKFWObject_GetHandle(fwObject)) */ + nssCKFWHash_Remove(fwInstance->objectHandleHash, (const void *)hObject); + (void)nssCKFWObject_SetHandle(fwObject, (CK_SESSION_HANDLE)0); + } + + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return; +} + +/* + * nssCKFWInstance_FindObjectHandle + * + */ +NSS_IMPLEMENT CK_OBJECT_HANDLE +nssCKFWInstance_FindObjectHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWObject *fwObject) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (CK_OBJECT_HANDLE)0; + } + + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return (CK_OBJECT_HANDLE)0; + } +#endif /* NSSDEBUG */ + + return nssCKFWObject_GetHandle(fwObject); +} + +/* + * nssCKFWInstance_GetNSlots + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWInstance_GetNSlots( + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + *pError = CKR_OK; + return fwInstance->nSlots; +} + +/* + * nssCKFWInstance_GetCryptokiVersion + * + */ +NSS_IMPLEMENT CK_VERSION +nssCKFWInstance_GetCryptokiVersion( + NSSCKFWInstance *fwInstance) +{ + CK_VERSION rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + rv.major = rv.minor = 0; + return rv; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwInstance->mutex)) { + rv.major = rv.minor = 0; + return rv; + } + + if ((0 != fwInstance->cryptokiVersion.major) || + (0 != fwInstance->cryptokiVersion.minor)) { + rv = fwInstance->cryptokiVersion; + goto done; + } + + if (fwInstance->mdInstance->GetCryptokiVersion) { + fwInstance->cryptokiVersion = fwInstance->mdInstance->GetCryptokiVersion( + fwInstance->mdInstance, fwInstance); + } else { + fwInstance->cryptokiVersion.major = 2; + fwInstance->cryptokiVersion.minor = 1; + } + + rv = fwInstance->cryptokiVersion; + +done: + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return rv; +} + +/* + * nssCKFWInstance_GetManufacturerID + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWInstance_GetManufacturerID( + NSSCKFWInstance *fwInstance, + CK_CHAR manufacturerID[32]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == manufacturerID) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwInstance->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwInstance->manufacturerID) { + if (fwInstance->mdInstance->GetManufacturerID) { + fwInstance->manufacturerID = fwInstance->mdInstance->GetManufacturerID( + fwInstance->mdInstance, fwInstance, &error); + if ((!fwInstance->manufacturerID) && (CKR_OK != error)) { + goto done; + } + } else { + fwInstance->manufacturerID = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwInstance->manufacturerID, (char *)manufacturerID, 32, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return error; +} + +/* + * nssCKFWInstance_GetFlags + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWInstance_GetFlags( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + /* No "instance flags" are yet defined by Cryptoki. */ + return (CK_ULONG)0; +} + +/* + * nssCKFWInstance_GetLibraryDescription + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWInstance_GetLibraryDescription( + NSSCKFWInstance *fwInstance, + CK_CHAR libraryDescription[32]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == libraryDescription) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwInstance->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwInstance->libraryDescription) { + if (fwInstance->mdInstance->GetLibraryDescription) { + fwInstance->libraryDescription = fwInstance->mdInstance->GetLibraryDescription( + fwInstance->mdInstance, fwInstance, &error); + if ((!fwInstance->libraryDescription) && (CKR_OK != error)) { + goto done; + } + } else { + fwInstance->libraryDescription = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwInstance->libraryDescription, (char *)libraryDescription, 32, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return error; +} + +/* + * nssCKFWInstance_GetLibraryVersion + * + */ +NSS_IMPLEMENT CK_VERSION +nssCKFWInstance_GetLibraryVersion( + NSSCKFWInstance *fwInstance) +{ + CK_VERSION rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + rv.major = rv.minor = 0; + return rv; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwInstance->mutex)) { + rv.major = rv.minor = 0; + return rv; + } + + if ((0 != fwInstance->libraryVersion.major) || + (0 != fwInstance->libraryVersion.minor)) { + rv = fwInstance->libraryVersion; + goto done; + } + + if (fwInstance->mdInstance->GetLibraryVersion) { + fwInstance->libraryVersion = fwInstance->mdInstance->GetLibraryVersion( + fwInstance->mdInstance, fwInstance); + } else { + fwInstance->libraryVersion.major = 0; + fwInstance->libraryVersion.minor = 3; + } + + rv = fwInstance->libraryVersion; +done: + (void)nssCKFWMutex_Unlock(fwInstance->mutex); + return rv; +} + +/* + * nssCKFWInstance_GetModuleHandlesSessionObjects + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWInstance_GetModuleHandlesSessionObjects( + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + return fwInstance->moduleHandlesSessionObjects; +} + +/* + * nssCKFWInstance_GetSlots + * + */ +NSS_IMPLEMENT NSSCKFWSlot ** +nssCKFWInstance_GetSlots( + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWSlot **)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSCKFWSlot **)NULL; + } +#endif /* NSSDEBUG */ + + return fwInstance->fwSlotList; +} + +/* + * nssCKFWInstance_WaitForSlotEvent + * + */ +NSS_IMPLEMENT NSSCKFWSlot * +nssCKFWInstance_WaitForSlotEvent( + NSSCKFWInstance *fwInstance, + CK_BBOOL block, + CK_RV *pError) +{ + NSSCKFWSlot *fwSlot = (NSSCKFWSlot *)NULL; + NSSCKMDSlot *mdSlot; + CK_ULONG i, n; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWSlot *)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSCKFWSlot *)NULL; + } + + switch (block) { + case CK_TRUE: + case CK_FALSE: + break; + default: + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWSlot *)NULL; + } +#endif /* NSSDEBUG */ + + if (!fwInstance->mdInstance->WaitForSlotEvent) { + *pError = CKR_NO_EVENT; + return (NSSCKFWSlot *)NULL; + } + + mdSlot = fwInstance->mdInstance->WaitForSlotEvent( + fwInstance->mdInstance, + fwInstance, + block, + pError); + + if (!mdSlot) { + return (NSSCKFWSlot *)NULL; + } + + n = nssCKFWInstance_GetNSlots(fwInstance, pError); + if (((CK_ULONG)0 == n) && (CKR_OK != *pError)) { + return (NSSCKFWSlot *)NULL; + } + + for (i = 0; i < n; i++) { + if (fwInstance->mdSlotList[i] == mdSlot) { + fwSlot = fwInstance->fwSlotList[i]; + break; + } + } + + if (!fwSlot) { + /* Internal error */ + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWSlot *)NULL; + } + + return fwSlot; +} + +/* + * NSSCKFWInstance_GetMDInstance + * + */ +NSS_IMPLEMENT NSSCKMDInstance * +NSSCKFWInstance_GetMDInstance( + NSSCKFWInstance *fwInstance) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (NSSCKMDInstance *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWInstance_GetMDInstance(fwInstance); +} + +/* + * NSSCKFWInstance_GetArena + * + */ +NSS_IMPLEMENT NSSArena * +NSSCKFWInstance_GetArena( + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWInstance_GetArena(fwInstance, pError); +} + +/* + * NSSCKFWInstance_MayCreatePthreads + * + */ +NSS_IMPLEMENT CK_BBOOL +NSSCKFWInstance_MayCreatePthreads( + NSSCKFWInstance *fwInstance) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return CK_FALSE; + } +#endif /* DEBUG */ + + return nssCKFWInstance_MayCreatePthreads(fwInstance); +} + +/* + * NSSCKFWInstance_CreateMutex + * + */ +NSS_IMPLEMENT NSSCKFWMutex * +NSSCKFWInstance_CreateMutex( + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (NSSCKFWMutex *)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSCKFWMutex *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWInstance_CreateMutex(fwInstance, arena, pError); +} + +/* + * NSSCKFWInstance_GetConfigurationData + * + */ +NSS_IMPLEMENT NSSUTF8 * +NSSCKFWInstance_GetConfigurationData( + NSSCKFWInstance *fwInstance) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (NSSUTF8 *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWInstance_GetConfigurationData(fwInstance); +} + +/* + * NSSCKFWInstance_GetInitArgs + * + */ +NSS_IMPLEMENT CK_C_INITIALIZE_ARGS_PTR +NSSCKFWInstance_GetInitArgs( + NSSCKFWInstance *fwInstance) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWInstance_verifyPointer(fwInstance)) { + return (CK_C_INITIALIZE_ARGS_PTR)NULL; + } +#endif /* DEBUG */ + + return nssCKFWInstance_GetInitArgs(fwInstance); +} + +/* + * nssCKFWInstance_DestroySessionHandle + * + */ +NSS_IMPLEMENT void +NSSCKFWInstance_DestroySessionHandle( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + nssCKFWInstance_DestroySessionHandle(fwInstance, hSession); +} + +/* + * nssCKFWInstance_FindSessionHandle + * + */ +NSS_IMPLEMENT CK_SESSION_HANDLE +NSSCKFWInstance_FindSessionHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession) +{ + return nssCKFWInstance_FindSessionHandle(fwInstance, fwSession); +} diff --git a/security/nss/lib/ckfw/manifest.mn b/security/nss/lib/ckfw/manifest.mn new file mode 100644 index 000000000..20bebeb31 --- /dev/null +++ b/security/nss/lib/ckfw/manifest.mn @@ -0,0 +1,53 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +CORE_DEPTH = ../.. + +DIRS = builtins + +PRIVATE_EXPORTS = \ + ck.h \ + ckfw.h \ + ckfwm.h \ + ckfwtm.h \ + ckmd.h \ + ckt.h \ + $(NULL) + +EXPORTS = \ + nssck.api \ + nssckepv.h \ + nssckft.h \ + nssckfw.h \ + nssckfwc.h \ + nssckfwt.h \ + nssckg.h \ + nssckmdt.h \ + nssckt.h \ + $(NULL) + +MODULE = nss + +CSRCS = \ + crypto.c \ + find.c \ + hash.c \ + instance.c \ + mutex.c \ + object.c \ + session.c \ + sessobj.c \ + slot.c \ + token.c \ + wrap.c \ + mechanism.c \ + $(NULL) + +REQUIRES = nspr + +LIBRARY_NAME = nssckfw + +# This part of the code, including all sub-dirs, can be optimized for size +export ALLOW_OPT_CODE_SIZE = 1 diff --git a/security/nss/lib/ckfw/mechanism.c b/security/nss/lib/ckfw/mechanism.c new file mode 100644 index 000000000..fe20aa94a --- /dev/null +++ b/security/nss/lib/ckfw/mechanism.c @@ -0,0 +1,1102 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * mechanism.c + * + * This file implements the NSSCKFWMechanism type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWMechanism + * + * -- create/destroy -- + * nssCKFWMechanism_Create + * nssCKFWMechanism_Destroy + * + * -- implement public accessors -- + * nssCKFWMechanism_GetMDMechanism + * nssCKFWMechanism_GetParameter + * + * -- private accessors -- + * + * -- module fronts -- + * nssCKFWMechanism_GetMinKeySize + * nssCKFWMechanism_GetMaxKeySize + * nssCKFWMechanism_GetInHardware + * nssCKFWMechanism_GetCanEncrypt + * nssCKFWMechanism_GetCanDecrypt + * nssCKFWMechanism_GetCanDigest + * nssCKFWMechanism_GetCanSign + * nssCKFWMechanism_GetCanSignRecover + * nssCKFWMechanism_GetCanVerify + * nssCKFWMechanism_GetCanGenerate + * nssCKFWMechanism_GetCanGenerateKeyPair + * nssCKFWMechanism_GetCanUnwrap + * nssCKFWMechanism_GetCanWrap + * nssCKFWMechanism_GetCanDerive + * nssCKFWMechanism_EncryptInit + * nssCKFWMechanism_DecryptInit + * nssCKFWMechanism_DigestInit + * nssCKFWMechanism_SignInit + * nssCKFWMechanism_VerifyInit + * nssCKFWMechanism_SignRecoverInit + * nssCKFWMechanism_VerifyRecoverInit + * nssCKFWMechanism_GenerateKey + * nssCKFWMechanism_GenerateKeyPair + * nssCKFWMechanism_GetWrapKeyLength + * nssCKFWMechanism_WrapKey + * nssCKFWMechanism_UnwrapKey + * nssCKFWMechanism_DeriveKey + */ + +struct NSSCKFWMechanismStr { + NSSCKMDMechanism *mdMechanism; + NSSCKMDToken *mdToken; + NSSCKFWToken *fwToken; + NSSCKMDInstance *mdInstance; + NSSCKFWInstance *fwInstance; +}; + +/* + * nssCKFWMechanism_Create + * + */ +NSS_IMPLEMENT NSSCKFWMechanism * +nssCKFWMechanism_Create( + NSSCKMDMechanism *mdMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + NSSCKFWMechanism *fwMechanism; + + fwMechanism = nss_ZNEW(NULL, NSSCKFWMechanism); + if (!fwMechanism) { + return (NSSCKFWMechanism *)NULL; + } + fwMechanism->mdMechanism = mdMechanism; + fwMechanism->mdToken = mdToken; + fwMechanism->fwToken = fwToken; + fwMechanism->mdInstance = mdInstance; + fwMechanism->fwInstance = fwInstance; + return fwMechanism; +} + +/* + * nssCKFWMechanism_Destroy + * + */ +NSS_IMPLEMENT void +nssCKFWMechanism_Destroy( + NSSCKFWMechanism *fwMechanism) +{ + /* destroy any fw resources held by nssCKFWMechanism (currently none) */ + + if (fwMechanism->mdMechanism->Destroy) { + /* destroys it's parent as well */ + fwMechanism->mdMechanism->Destroy( + fwMechanism->mdMechanism, + fwMechanism, + fwMechanism->mdInstance, + fwMechanism->fwInstance); + } + /* if the Destroy function wasn't supplied, then the mechanism is 'static', + * and there is nothing to destroy */ + return; +} + +/* + * nssCKFWMechanism_GetMDMechanism + * + */ +NSS_IMPLEMENT NSSCKMDMechanism * +nssCKFWMechanism_GetMDMechanism( + NSSCKFWMechanism *fwMechanism) +{ + return fwMechanism->mdMechanism; +} + +/* + * nssCKFWMechanism_GetMinKeySize + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWMechanism_GetMinKeySize( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->GetMinKeySize) { + return 0; + } + + return fwMechanism->mdMechanism->GetMinKeySize(fwMechanism->mdMechanism, + fwMechanism, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, pError); +} + +/* + * nssCKFWMechanism_GetMaxKeySize + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWMechanism_GetMaxKeySize( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->GetMaxKeySize) { + return 0; + } + + return fwMechanism->mdMechanism->GetMaxKeySize(fwMechanism->mdMechanism, + fwMechanism, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, pError); +} + +/* + * nssCKFWMechanism_GetInHardware + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWMechanism_GetInHardware( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->GetInHardware) { + return CK_FALSE; + } + + return fwMechanism->mdMechanism->GetInHardware(fwMechanism->mdMechanism, + fwMechanism, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, pError); +} + +/* + * the following are determined automatically by which of the cryptographic + * functions are defined for this mechanism. + */ +/* + * nssCKFWMechanism_GetCanEncrypt + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanEncrypt( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->EncryptInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanDecrypt + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanDecrypt( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->DecryptInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanDigest + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanDigest( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->DigestInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanSign + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanSign( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->SignInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanSignRecover + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanSignRecover( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->SignRecoverInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanVerify + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanVerify( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->VerifyInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanVerifyRecover + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanVerifyRecover( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->VerifyRecoverInit) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanGenerate + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanGenerate( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->GenerateKey) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanGenerateKeyPair + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanGenerateKeyPair( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->GenerateKeyPair) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanUnwrap + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanUnwrap( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->UnwrapKey) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanWrap + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanWrap( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->WrapKey) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * nssCKFWMechanism_GetCanDerive + * + */ +NSS_EXTERN CK_BBOOL +nssCKFWMechanism_GetCanDerive( + NSSCKFWMechanism *fwMechanism, + CK_RV *pError) +{ + if (!fwMechanism->mdMechanism->DeriveKey) { + return CK_FALSE; + } + return CK_TRUE; +} + +/* + * These are the actual crypto operations + */ + +/* + * nssCKFWMechanism_EncryptInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_EncryptInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_EncryptDecrypt); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->EncryptInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = nssCKFWObject_GetMDObject(fwObject); + mdOperation = fwMechanism->mdMechanism->EncryptInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdObject, + fwObject, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_Encrypt, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_EncryptDecrypt); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_DecryptInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_DecryptInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_EncryptDecrypt); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->DecryptInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = nssCKFWObject_GetMDObject(fwObject); + mdOperation = fwMechanism->mdMechanism->DecryptInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdObject, + fwObject, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_Decrypt, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_EncryptDecrypt); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_DigestInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_DigestInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_Digest); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->DigestInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdOperation = fwMechanism->mdMechanism->DigestInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_Digest, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_Digest); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_SignInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_SignInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_SignVerify); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->SignInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = nssCKFWObject_GetMDObject(fwObject); + mdOperation = fwMechanism->mdMechanism->SignInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdObject, + fwObject, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_Sign, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_SignVerify); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_VerifyInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_VerifyInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_SignVerify); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->VerifyInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = nssCKFWObject_GetMDObject(fwObject); + mdOperation = fwMechanism->mdMechanism->VerifyInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdObject, + fwObject, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_Verify, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_SignVerify); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_SignRecoverInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_SignRecoverInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_SignVerify); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->SignRecoverInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = nssCKFWObject_GetMDObject(fwObject); + mdOperation = fwMechanism->mdMechanism->SignRecoverInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdObject, + fwObject, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_SignRecover, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_SignVerify); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_VerifyRecoverInit + * Start an encryption session. + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_VerifyRecoverInit( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKMDCryptoOperation *mdOperation; + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + CK_RV error = CKR_OK; + + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_SignVerify); + if (fwOperation) { + return CKR_OPERATION_ACTIVE; + } + + if (!fwMechanism->mdMechanism->VerifyRecoverInit) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = nssCKFWObject_GetMDObject(fwObject); + mdOperation = fwMechanism->mdMechanism->VerifyRecoverInit( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdObject, + fwObject, + &error); + if (!mdOperation) { + goto loser; + } + + fwOperation = nssCKFWCryptoOperation_Create(mdOperation, + mdSession, fwSession, fwMechanism->mdToken, fwMechanism->fwToken, + fwMechanism->mdInstance, fwMechanism->fwInstance, + NSSCKFWCryptoOperationType_VerifyRecover, &error); + if (fwOperation) { + nssCKFWSession_SetCurrentCryptoOperation(fwSession, fwOperation, + NSSCKFWCryptoOperationState_SignVerify); + } + +loser: + return error; +} + +/* + * nssCKFWMechanism_GenerateKey + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWMechanism_GenerateKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + NSSCKFWObject *fwObject = NULL; + NSSArena *arena; + + if (!fwMechanism->mdMechanism->GenerateKey) { + *pError = CKR_FUNCTION_FAILED; + return (NSSCKFWObject *)NULL; + } + + arena = nssCKFWToken_GetArena(fwMechanism->fwToken, pError); + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdObject = fwMechanism->mdMechanism->GenerateKey( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + pTemplate, + ulAttributeCount, + pError); + + if (!mdObject) { + return (NSSCKFWObject *)NULL; + } + + fwObject = nssCKFWObject_Create(arena, mdObject, + fwSession, fwMechanism->fwToken, fwMechanism->fwInstance, pError); + + return fwObject; +} + +/* + * nssCKFWMechanism_GenerateKeyPair + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_GenerateKeyPair( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + NSSCKFWObject **fwPublicKeyObject, + NSSCKFWObject **fwPrivateKeyObject) +{ + NSSCKMDSession *mdSession; + NSSCKMDObject *mdPublicKeyObject; + NSSCKMDObject *mdPrivateKeyObject; + NSSArena *arena; + CK_RV error = CKR_OK; + + if (!fwMechanism->mdMechanism->GenerateKeyPair) { + return CKR_FUNCTION_FAILED; + } + + arena = nssCKFWToken_GetArena(fwMechanism->fwToken, &error); + if (!arena) { + if (CKR_OK == error) { + error = CKR_GENERAL_ERROR; + } + return error; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + error = fwMechanism->mdMechanism->GenerateKeyPair( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + pPublicKeyTemplate, + ulPublicKeyAttributeCount, + pPrivateKeyTemplate, + ulPrivateKeyAttributeCount, + &mdPublicKeyObject, + &mdPrivateKeyObject); + + if (CKR_OK != error) { + return error; + } + + *fwPublicKeyObject = nssCKFWObject_Create(arena, mdPublicKeyObject, + fwSession, fwMechanism->fwToken, fwMechanism->fwInstance, &error); + if (!*fwPublicKeyObject) { + return error; + } + *fwPrivateKeyObject = nssCKFWObject_Create(arena, mdPrivateKeyObject, + fwSession, fwMechanism->fwToken, fwMechanism->fwInstance, &error); + + return error; +} + +/* + * nssCKFWMechanism_GetWrapKeyLength + */ +NSS_EXTERN CK_ULONG +nssCKFWMechanism_GetWrapKeyLength( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwWrappingKeyObject, + NSSCKFWObject *fwKeyObject, + CK_RV *pError) +{ + NSSCKMDSession *mdSession; + NSSCKMDObject *mdWrappingKeyObject; + NSSCKMDObject *mdKeyObject; + + if (!fwMechanism->mdMechanism->WrapKey) { + *pError = CKR_FUNCTION_FAILED; + return (CK_ULONG)0; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdWrappingKeyObject = nssCKFWObject_GetMDObject(fwWrappingKeyObject); + mdKeyObject = nssCKFWObject_GetMDObject(fwKeyObject); + return fwMechanism->mdMechanism->GetWrapKeyLength( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdWrappingKeyObject, + fwWrappingKeyObject, + mdKeyObject, + fwKeyObject, + pError); +} + +/* + * nssCKFWMechanism_WrapKey + */ +NSS_EXTERN CK_RV +nssCKFWMechanism_WrapKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwWrappingKeyObject, + NSSCKFWObject *fwKeyObject, + NSSItem *wrappedKey) +{ + NSSCKMDSession *mdSession; + NSSCKMDObject *mdWrappingKeyObject; + NSSCKMDObject *mdKeyObject; + + if (!fwMechanism->mdMechanism->WrapKey) { + return CKR_FUNCTION_FAILED; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdWrappingKeyObject = nssCKFWObject_GetMDObject(fwWrappingKeyObject); + mdKeyObject = nssCKFWObject_GetMDObject(fwKeyObject); + return fwMechanism->mdMechanism->WrapKey( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdWrappingKeyObject, + fwWrappingKeyObject, + mdKeyObject, + fwKeyObject, + wrappedKey); +} + +/* + * nssCKFWMechanism_UnwrapKey + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWMechanism_UnwrapKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwWrappingKeyObject, + NSSItem *wrappedKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + NSSCKMDObject *mdWrappingKeyObject; + NSSCKFWObject *fwObject = NULL; + NSSArena *arena; + + if (!fwMechanism->mdMechanism->UnwrapKey) { + /* we could simulate UnwrapKey using Decrypt and Create object, but + * 1) it's not clear that would work well, and 2) the low level token + * may want to restrict unwrap key for a reason, so just fail it it + * can't be done */ + *pError = CKR_FUNCTION_FAILED; + return (NSSCKFWObject *)NULL; + } + + arena = nssCKFWToken_GetArena(fwMechanism->fwToken, pError); + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdWrappingKeyObject = nssCKFWObject_GetMDObject(fwWrappingKeyObject); + mdObject = fwMechanism->mdMechanism->UnwrapKey( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdWrappingKeyObject, + fwWrappingKeyObject, + wrappedKey, + pTemplate, + ulAttributeCount, + pError); + + if (!mdObject) { + return (NSSCKFWObject *)NULL; + } + + fwObject = nssCKFWObject_Create(arena, mdObject, + fwSession, fwMechanism->fwToken, fwMechanism->fwInstance, pError); + + return fwObject; +} + +/* + * nssCKFWMechanism_DeriveKey + */ +NSS_EXTERN NSSCKFWObject * +nssCKFWMechanism_DeriveKey( + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKFWSession *fwSession, + NSSCKFWObject *fwBaseKeyObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSCKMDSession *mdSession; + NSSCKMDObject *mdObject; + NSSCKMDObject *mdBaseKeyObject; + NSSCKFWObject *fwObject = NULL; + NSSArena *arena; + + if (!fwMechanism->mdMechanism->DeriveKey) { + *pError = CKR_FUNCTION_FAILED; + return (NSSCKFWObject *)NULL; + } + + arena = nssCKFWToken_GetArena(fwMechanism->fwToken, pError); + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + mdSession = nssCKFWSession_GetMDSession(fwSession); + mdBaseKeyObject = nssCKFWObject_GetMDObject(fwBaseKeyObject); + mdObject = fwMechanism->mdMechanism->DeriveKey( + fwMechanism->mdMechanism, + fwMechanism, + pMechanism, + mdSession, + fwSession, + fwMechanism->mdToken, + fwMechanism->fwToken, + fwMechanism->mdInstance, + fwMechanism->fwInstance, + mdBaseKeyObject, + fwBaseKeyObject, + pTemplate, + ulAttributeCount, + pError); + + if (!mdObject) { + return (NSSCKFWObject *)NULL; + } + + fwObject = nssCKFWObject_Create(arena, mdObject, + fwSession, fwMechanism->fwToken, fwMechanism->fwInstance, pError); + + return fwObject; +} diff --git a/security/nss/lib/ckfw/mutex.c b/security/nss/lib/ckfw/mutex.c new file mode 100644 index 000000000..be569e196 --- /dev/null +++ b/security/nss/lib/ckfw/mutex.c @@ -0,0 +1,248 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * mutex.c + * + * This file implements a mutual-exclusion locking facility for Modules + * using the NSS Cryptoki Framework. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWMutex + * + * NSSCKFWMutex_Destroy + * NSSCKFWMutex_Lock + * NSSCKFWMutex_Unlock + * + * nssCKFWMutex_Create + * nssCKFWMutex_Destroy + * nssCKFWMutex_Lock + * nssCKFWMutex_Unlock + * + * -- debugging versions only -- + * nssCKFWMutex_verifyPointer + * + */ + +struct NSSCKFWMutexStr { + PRLock *lock; +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +mutex_add_pointer( + const NSSCKFWMutex *fwMutex) +{ + return CKR_OK; +} + +static CK_RV +mutex_remove_pointer( + const NSSCKFWMutex *fwMutex) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWMutex_verifyPointer( + const NSSCKFWMutex *fwMutex) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWMutex_Create + * + */ +NSS_EXTERN NSSCKFWMutex * +nssCKFWMutex_Create( + CK_C_INITIALIZE_ARGS_PTR pInitArgs, + CryptokiLockingState LockingState, + NSSArena *arena, + CK_RV *pError) +{ + NSSCKFWMutex *mutex; + + mutex = nss_ZNEW(arena, NSSCKFWMutex); + if (!mutex) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWMutex *)NULL; + } + *pError = CKR_OK; + mutex->lock = NULL; + if (LockingState == MultiThreaded) { + mutex->lock = PR_NewLock(); + if (!mutex->lock) { + *pError = CKR_HOST_MEMORY; /* we couldn't get the resource */ + } + } + + if (CKR_OK != *pError) { + (void)nss_ZFreeIf(mutex); + return (NSSCKFWMutex *)NULL; + } + +#ifdef DEBUG + *pError = mutex_add_pointer(mutex); + if (CKR_OK != *pError) { + if (mutex->lock) { + PR_DestroyLock(mutex->lock); + } + (void)nss_ZFreeIf(mutex); + return (NSSCKFWMutex *)NULL; + } +#endif /* DEBUG */ + + return mutex; +} + +/* + * nssCKFWMutex_Destroy + * + */ +NSS_EXTERN CK_RV +nssCKFWMutex_Destroy( + NSSCKFWMutex *mutex) +{ + CK_RV rv = CKR_OK; + +#ifdef NSSDEBUG + rv = nssCKFWMutex_verifyPointer(mutex); + if (CKR_OK != rv) { + return rv; + } +#endif /* NSSDEBUG */ + + if (mutex->lock) { + PR_DestroyLock(mutex->lock); + } + +#ifdef DEBUG + (void)mutex_remove_pointer(mutex); +#endif /* DEBUG */ + + (void)nss_ZFreeIf(mutex); + return rv; +} + +/* + * nssCKFWMutex_Lock + * + */ +NSS_EXTERN CK_RV +nssCKFWMutex_Lock( + NSSCKFWMutex *mutex) +{ +#ifdef NSSDEBUG + CK_RV rv = nssCKFWMutex_verifyPointer(mutex); + if (CKR_OK != rv) { + return rv; + } +#endif /* NSSDEBUG */ + if (mutex->lock) { + PR_Lock(mutex->lock); + } + + return CKR_OK; +} + +/* + * nssCKFWMutex_Unlock + * + */ +NSS_EXTERN CK_RV +nssCKFWMutex_Unlock( + NSSCKFWMutex *mutex) +{ + PRStatus nrv; +#ifdef NSSDEBUG + CK_RV rv = nssCKFWMutex_verifyPointer(mutex); + + if (CKR_OK != rv) { + return rv; + } +#endif /* NSSDEBUG */ + + if (!mutex->lock) + return CKR_OK; + + nrv = PR_Unlock(mutex->lock); + + /* if unlock fails, either we have a programming error, or we have + * some sort of hardware failure... in either case return CKR_DEVICE_ERROR. + */ + return nrv == PR_SUCCESS ? CKR_OK : CKR_DEVICE_ERROR; +} + +/* + * NSSCKFWMutex_Destroy + * + */ +NSS_EXTERN CK_RV +NSSCKFWMutex_Destroy( + NSSCKFWMutex *mutex) +{ +#ifdef DEBUG + CK_RV rv = nssCKFWMutex_verifyPointer(mutex); + if (CKR_OK != rv) { + return rv; + } +#endif /* DEBUG */ + + return nssCKFWMutex_Destroy(mutex); +} + +/* + * NSSCKFWMutex_Lock + * + */ +NSS_EXTERN CK_RV +NSSCKFWMutex_Lock( + NSSCKFWMutex *mutex) +{ +#ifdef DEBUG + CK_RV rv = nssCKFWMutex_verifyPointer(mutex); + if (CKR_OK != rv) { + return rv; + } +#endif /* DEBUG */ + + return nssCKFWMutex_Lock(mutex); +} + +/* + * NSSCKFWMutex_Unlock + * + */ +NSS_EXTERN CK_RV +NSSCKFWMutex_Unlock( + NSSCKFWMutex *mutex) +{ +#ifdef DEBUG + CK_RV rv = nssCKFWMutex_verifyPointer(mutex); + if (CKR_OK != rv) { + return rv; + } +#endif /* DEBUG */ + + return nssCKFWMutex_Unlock(mutex); +} diff --git a/security/nss/lib/ckfw/nssck.api b/security/nss/lib/ckfw/nssck.api new file mode 100644 index 000000000..55b43512a --- /dev/null +++ b/security/nss/lib/ckfw/nssck.api @@ -0,0 +1,1854 @@ +/* THIS IS A GENERATED FILE */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * nssck.api + * + * This automatically-generated file is used to generate a set of + * Cryptoki entry points within the object space of a Module using + * the NSS Cryptoki Framework. + * + * The Module should have a .c file with the following: + * + * #define MODULE_NAME name + * #define INSTANCE_NAME instance + * #include "nssck.api" + * + * where "name" is some module-specific name that can be used to + * disambiguate various modules. This included file will then + * define the actual Cryptoki routines which pass through to the + * Framework calls. All routines, except C_GetFunctionList, will + * be prefixed with the name; C_GetFunctionList will be generated + * to return an entry-point vector with these routines. The + * instance specified should be the basic instance of NSSCKMDInstance. + * + * If, prior to including nssck.api, the .c file also specifies + * + * #define DECLARE_STRICT_CRYTPOKI_NAMES + * + * Then a set of "stub" routines not prefixed with the name will + * be included. This would allow the combined module and framework + * to be used in applications which are hard-coded to use the + * PKCS#11 names (instead of going through the EPV). Please note + * that such applications should be careful resolving symbols when + * more than one PKCS#11 module is loaded. + */ + +#ifndef MODULE_NAME +#error "Error: MODULE_NAME must be defined." +#endif /* MODULE_NAME */ + +#ifndef INSTANCE_NAME +#error "Error: INSTANCE_NAME must be defined." +#endif /* INSTANCE_NAME */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +#ifndef NSSCKFWC_H +#include "nssckfwc.h" +#endif /* NSSCKFWC_H */ + +#ifndef NSSCKEPV_H +#include "nssckepv.h" +#endif /* NSSCKEPV_H */ + +#define ADJOIN(x,y) x##y + +#define __ADJOIN(x,y) ADJOIN(x,y) + +/* + * The anchor. This object is used to store an "anchor" pointer in + * the Module's object space, so the wrapper functions can relate + * back to this instance. + */ + +static NSSCKFWInstance *fwInstance = (NSSCKFWInstance *)0; + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Initialize) +( + CK_VOID_PTR pInitArgs +) +{ + return NSSCKFWC_Initialize(&fwInstance, INSTANCE_NAME, pInitArgs); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Initialize +( + CK_VOID_PTR pInitArgs +) +{ + return __ADJOIN(MODULE_NAME,C_Initialize)(pInitArgs); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Finalize) +( + CK_VOID_PTR pReserved +) +{ + return NSSCKFWC_Finalize(&fwInstance); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Finalize +( + CK_VOID_PTR pReserved +) +{ + return __ADJOIN(MODULE_NAME,C_Finalize)(pReserved); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetInfo) +( + CK_INFO_PTR pInfo +) +{ + return NSSCKFWC_GetInfo(fwInstance, pInfo); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetInfo +( + CK_INFO_PTR pInfo +) +{ + return __ADJOIN(MODULE_NAME,C_GetInfo)(pInfo); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +/* + * C_GetFunctionList is defined at the end. + */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetSlotList) +( + CK_BBOOL tokenPresent, + CK_SLOT_ID_PTR pSlotList, + CK_ULONG_PTR pulCount +) +{ + return NSSCKFWC_GetSlotList(fwInstance, tokenPresent, pSlotList, pulCount); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetSlotList +( + CK_BBOOL tokenPresent, + CK_SLOT_ID_PTR pSlotList, + CK_ULONG_PTR pulCount +) +{ + return __ADJOIN(MODULE_NAME,C_GetSlotList)(tokenPresent, pSlotList, pulCount); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetSlotInfo) +( + CK_SLOT_ID slotID, + CK_SLOT_INFO_PTR pInfo +) +{ + return NSSCKFWC_GetSlotInfo(fwInstance, slotID, pInfo); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetSlotInfo +( + CK_SLOT_ID slotID, + CK_SLOT_INFO_PTR pInfo +) +{ + return __ADJOIN(MODULE_NAME,C_GetSlotInfo)(slotID, pInfo); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetTokenInfo) +( + CK_SLOT_ID slotID, + CK_TOKEN_INFO_PTR pInfo +) +{ + return NSSCKFWC_GetTokenInfo(fwInstance, slotID, pInfo); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetTokenInfo +( + CK_SLOT_ID slotID, + CK_TOKEN_INFO_PTR pInfo +) +{ + return __ADJOIN(MODULE_NAME,C_GetTokenInfo)(slotID, pInfo); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetMechanismList) +( + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE_PTR pMechanismList, + CK_ULONG_PTR pulCount +) +{ + return NSSCKFWC_GetMechanismList(fwInstance, slotID, pMechanismList, pulCount); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetMechanismList +( + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE_PTR pMechanismList, + CK_ULONG_PTR pulCount +) +{ + return __ADJOIN(MODULE_NAME,C_GetMechanismList)(slotID, pMechanismList, pulCount); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetMechanismInfo) +( + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE type, + CK_MECHANISM_INFO_PTR pInfo +) +{ + return NSSCKFWC_GetMechanismInfo(fwInstance, slotID, type, pInfo); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetMechanismInfo +( + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE type, + CK_MECHANISM_INFO_PTR pInfo +) +{ + return __ADJOIN(MODULE_NAME,C_GetMechanismInfo)(slotID, type, pInfo); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_InitToken) +( + CK_SLOT_ID slotID, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen, + CK_CHAR_PTR pLabel +) +{ + return NSSCKFWC_InitToken(fwInstance, slotID, pPin, ulPinLen, pLabel); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_InitToken +( + CK_SLOT_ID slotID, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen, + CK_CHAR_PTR pLabel +) +{ + return __ADJOIN(MODULE_NAME,C_InitToken)(slotID, pPin, ulPinLen, pLabel); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_InitPIN) +( + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen +) +{ + return NSSCKFWC_InitPIN(fwInstance, hSession, pPin, ulPinLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_InitPIN +( + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen +) +{ + return __ADJOIN(MODULE_NAME,C_InitPIN)(hSession, pPin, ulPinLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SetPIN) +( + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pOldPin, + CK_ULONG ulOldLen, + CK_CHAR_PTR pNewPin, + CK_ULONG ulNewLen +) +{ + return NSSCKFWC_SetPIN(fwInstance, hSession, pOldPin, ulOldLen, pNewPin, ulNewLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SetPIN +( + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pOldPin, + CK_ULONG ulOldLen, + CK_CHAR_PTR pNewPin, + CK_ULONG ulNewLen +) +{ + return __ADJOIN(MODULE_NAME,C_SetPIN)(hSession, pOldPin, ulOldLen, pNewPin, ulNewLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_OpenSession) +( + CK_SLOT_ID slotID, + CK_FLAGS flags, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_SESSION_HANDLE_PTR phSession +) +{ + return NSSCKFWC_OpenSession(fwInstance, slotID, flags, pApplication, Notify, phSession); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_OpenSession +( + CK_SLOT_ID slotID, + CK_FLAGS flags, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_SESSION_HANDLE_PTR phSession +) +{ + return __ADJOIN(MODULE_NAME,C_OpenSession)(slotID, flags, pApplication, Notify, phSession); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_CloseSession) +( + CK_SESSION_HANDLE hSession +) +{ + return NSSCKFWC_CloseSession(fwInstance, hSession); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_CloseSession +( + CK_SESSION_HANDLE hSession +) +{ + return __ADJOIN(MODULE_NAME,C_CloseSession)(hSession); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_CloseAllSessions) +( + CK_SLOT_ID slotID +) +{ + return NSSCKFWC_CloseAllSessions(fwInstance, slotID); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_CloseAllSessions +( + CK_SLOT_ID slotID +) +{ + return __ADJOIN(MODULE_NAME,C_CloseAllSessions)(slotID); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetSessionInfo) +( + CK_SESSION_HANDLE hSession, + CK_SESSION_INFO_PTR pInfo +) +{ + return NSSCKFWC_GetSessionInfo(fwInstance, hSession, pInfo); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetSessionInfo +( + CK_SESSION_HANDLE hSession, + CK_SESSION_INFO_PTR pInfo +) +{ + return __ADJOIN(MODULE_NAME,C_GetSessionInfo)(hSession, pInfo); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetOperationState) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG_PTR pulOperationStateLen +) +{ + return NSSCKFWC_GetOperationState(fwInstance, hSession, pOperationState, pulOperationStateLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetOperationState +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG_PTR pulOperationStateLen +) +{ + return __ADJOIN(MODULE_NAME,C_GetOperationState)(hSession, pOperationState, pulOperationStateLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SetOperationState) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG ulOperationStateLen, + CK_OBJECT_HANDLE hEncryptionKey, + CK_OBJECT_HANDLE hAuthenticationKey +) +{ + return NSSCKFWC_SetOperationState(fwInstance, hSession, pOperationState, ulOperationStateLen, hEncryptionKey, hAuthenticationKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SetOperationState +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG ulOperationStateLen, + CK_OBJECT_HANDLE hEncryptionKey, + CK_OBJECT_HANDLE hAuthenticationKey +) +{ + return __ADJOIN(MODULE_NAME,C_SetOperationState)(hSession, pOperationState, ulOperationStateLen, hEncryptionKey, hAuthenticationKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Login) +( + CK_SESSION_HANDLE hSession, + CK_USER_TYPE userType, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen +) +{ + return NSSCKFWC_Login(fwInstance, hSession, userType, pPin, ulPinLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Login +( + CK_SESSION_HANDLE hSession, + CK_USER_TYPE userType, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen +) +{ + return __ADJOIN(MODULE_NAME,C_Login)(hSession, userType, pPin, ulPinLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Logout) +( + CK_SESSION_HANDLE hSession +) +{ + return NSSCKFWC_Logout(fwInstance, hSession); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Logout +( + CK_SESSION_HANDLE hSession +) +{ + return __ADJOIN(MODULE_NAME,C_Logout)(hSession); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_CreateObject) +( + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phObject +) +{ + return NSSCKFWC_CreateObject(fwInstance, hSession, pTemplate, ulCount, phObject); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_CreateObject +( + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phObject +) +{ + return __ADJOIN(MODULE_NAME,C_CreateObject)(hSession, pTemplate, ulCount, phObject); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_CopyObject) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phNewObject +) +{ + return NSSCKFWC_CopyObject(fwInstance, hSession, hObject, pTemplate, ulCount, phNewObject); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_CopyObject +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phNewObject +) +{ + return __ADJOIN(MODULE_NAME,C_CopyObject)(hSession, hObject, pTemplate, ulCount, phNewObject); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DestroyObject) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject +) +{ + return NSSCKFWC_DestroyObject(fwInstance, hSession, hObject); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DestroyObject +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject +) +{ + return __ADJOIN(MODULE_NAME,C_DestroyObject)(hSession, hObject); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetObjectSize) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ULONG_PTR pulSize +) +{ + return NSSCKFWC_GetObjectSize(fwInstance, hSession, hObject, pulSize); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetObjectSize +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ULONG_PTR pulSize +) +{ + return __ADJOIN(MODULE_NAME,C_GetObjectSize)(hSession, hObject, pulSize); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetAttributeValue) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount +) +{ + return NSSCKFWC_GetAttributeValue(fwInstance, hSession, hObject, pTemplate, ulCount); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetAttributeValue +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount +) +{ + return __ADJOIN(MODULE_NAME,C_GetAttributeValue)(hSession, hObject, pTemplate, ulCount); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SetAttributeValue) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount +) +{ + return NSSCKFWC_SetAttributeValue(fwInstance, hSession, hObject, pTemplate, ulCount); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SetAttributeValue +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount +) +{ + return __ADJOIN(MODULE_NAME,C_SetAttributeValue)(hSession, hObject, pTemplate, ulCount); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_FindObjectsInit) +( + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount +) +{ + return NSSCKFWC_FindObjectsInit(fwInstance, hSession, pTemplate, ulCount); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_FindObjectsInit +( + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount +) +{ + return __ADJOIN(MODULE_NAME,C_FindObjectsInit)(hSession, pTemplate, ulCount); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_FindObjects) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE_PTR phObject, + CK_ULONG ulMaxObjectCount, + CK_ULONG_PTR pulObjectCount +) +{ + return NSSCKFWC_FindObjects(fwInstance, hSession, phObject, ulMaxObjectCount, pulObjectCount); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_FindObjects +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE_PTR phObject, + CK_ULONG ulMaxObjectCount, + CK_ULONG_PTR pulObjectCount +) +{ + return __ADJOIN(MODULE_NAME,C_FindObjects)(hSession, phObject, ulMaxObjectCount, pulObjectCount); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_FindObjectsFinal) +( + CK_SESSION_HANDLE hSession +) +{ + return NSSCKFWC_FindObjectsFinal(fwInstance, hSession); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_FindObjectsFinal +( + CK_SESSION_HANDLE hSession +) +{ + return __ADJOIN(MODULE_NAME,C_FindObjectsFinal)(hSession); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_EncryptInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_EncryptInit(fwInstance, hSession, pMechanism, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_EncryptInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_EncryptInit)(hSession, pMechanism, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Encrypt) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pEncryptedData, + CK_ULONG_PTR pulEncryptedDataLen +) +{ + return NSSCKFWC_Encrypt(fwInstance, hSession, pData, ulDataLen, pEncryptedData, pulEncryptedDataLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Encrypt +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pEncryptedData, + CK_ULONG_PTR pulEncryptedDataLen +) +{ + return __ADJOIN(MODULE_NAME,C_Encrypt)(hSession, pData, ulDataLen, pEncryptedData, pulEncryptedDataLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_EncryptUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen +) +{ + return NSSCKFWC_EncryptUpdate(fwInstance, hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_EncryptUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_EncryptUpdate)(hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_EncryptFinal) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastEncryptedPart, + CK_ULONG_PTR pulLastEncryptedPartLen +) +{ + return NSSCKFWC_EncryptFinal(fwInstance, hSession, pLastEncryptedPart, pulLastEncryptedPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_EncryptFinal +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastEncryptedPart, + CK_ULONG_PTR pulLastEncryptedPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_EncryptFinal)(hSession, pLastEncryptedPart, pulLastEncryptedPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DecryptInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_DecryptInit(fwInstance, hSession, pMechanism, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DecryptInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_DecryptInit)(hSession, pMechanism, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Decrypt) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedData, + CK_ULONG ulEncryptedDataLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen +) +{ + return NSSCKFWC_Decrypt(fwInstance, hSession, pEncryptedData, ulEncryptedDataLen, pData, pulDataLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Decrypt +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedData, + CK_ULONG ulEncryptedDataLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen +) +{ + return __ADJOIN(MODULE_NAME,C_Decrypt)(hSession, pEncryptedData, ulEncryptedDataLen, pData, pulDataLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DecryptUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen +) +{ + return NSSCKFWC_DecryptUpdate(fwInstance, hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DecryptUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_DecryptUpdate)(hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DecryptFinal) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastPart, + CK_ULONG_PTR pulLastPartLen +) +{ + return NSSCKFWC_DecryptFinal(fwInstance, hSession, pLastPart, pulLastPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DecryptFinal +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastPart, + CK_ULONG_PTR pulLastPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_DecryptFinal)(hSession, pLastPart, pulLastPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DigestInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism +) +{ + return NSSCKFWC_DigestInit(fwInstance, hSession, pMechanism); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DigestInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism +) +{ + return __ADJOIN(MODULE_NAME,C_DigestInit)(hSession, pMechanism); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Digest) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen +) +{ + return NSSCKFWC_Digest(fwInstance, hSession, pData, ulDataLen, pDigest, pulDigestLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Digest +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen +) +{ + return __ADJOIN(MODULE_NAME,C_Digest)(hSession, pData, ulDataLen, pDigest, pulDigestLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DigestUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen +) +{ + return NSSCKFWC_DigestUpdate(fwInstance, hSession, pPart, ulPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DigestUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_DigestUpdate)(hSession, pPart, ulPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DigestKey) +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_DigestKey(fwInstance, hSession, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DigestKey +( + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_DigestKey)(hSession, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DigestFinal) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen +) +{ + return NSSCKFWC_DigestFinal(fwInstance, hSession, pDigest, pulDigestLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DigestFinal +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen +) +{ + return __ADJOIN(MODULE_NAME,C_DigestFinal)(hSession, pDigest, pulDigestLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SignInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_SignInit(fwInstance, hSession, pMechanism, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SignInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_SignInit)(hSession, pMechanism, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Sign) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen +) +{ + return NSSCKFWC_Sign(fwInstance, hSession, pData, ulDataLen, pSignature, pulSignatureLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Sign +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen +) +{ + return __ADJOIN(MODULE_NAME,C_Sign)(hSession, pData, ulDataLen, pSignature, pulSignatureLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SignUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen +) +{ + return NSSCKFWC_SignUpdate(fwInstance, hSession, pPart, ulPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SignUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_SignUpdate)(hSession, pPart, ulPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SignFinal) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen +) +{ + return NSSCKFWC_SignFinal(fwInstance, hSession, pSignature, pulSignatureLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SignFinal +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen +) +{ + return __ADJOIN(MODULE_NAME,C_SignFinal)(hSession, pSignature, pulSignatureLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SignRecoverInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_SignRecoverInit(fwInstance, hSession, pMechanism, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SignRecoverInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_SignRecoverInit)(hSession, pMechanism, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SignRecover) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen +) +{ + return NSSCKFWC_SignRecover(fwInstance, hSession, pData, ulDataLen, pSignature, pulSignatureLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SignRecover +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen +) +{ + return __ADJOIN(MODULE_NAME,C_SignRecover)(hSession, pData, ulDataLen, pSignature, pulSignatureLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_VerifyInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_VerifyInit(fwInstance, hSession, pMechanism, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_VerifyInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_VerifyInit)(hSession, pMechanism, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_Verify) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen +) +{ + return NSSCKFWC_Verify(fwInstance, hSession, pData, ulDataLen, pSignature, ulSignatureLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_Verify +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen +) +{ + return __ADJOIN(MODULE_NAME,C_Verify)(hSession, pData, ulDataLen, pSignature, ulSignatureLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_VerifyUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen +) +{ + return NSSCKFWC_VerifyUpdate(fwInstance, hSession, pPart, ulPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_VerifyUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_VerifyUpdate)(hSession, pPart, ulPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_VerifyFinal) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen +) +{ + return NSSCKFWC_VerifyFinal(fwInstance, hSession, pSignature, ulSignatureLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_VerifyFinal +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen +) +{ + return __ADJOIN(MODULE_NAME,C_VerifyFinal)(hSession, pSignature, ulSignatureLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_VerifyRecoverInit) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return NSSCKFWC_VerifyRecoverInit(fwInstance, hSession, pMechanism, hKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_VerifyRecoverInit +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey +) +{ + return __ADJOIN(MODULE_NAME,C_VerifyRecoverInit)(hSession, pMechanism, hKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_VerifyRecover) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen +) +{ + return NSSCKFWC_VerifyRecover(fwInstance, hSession, pSignature, ulSignatureLen, pData, pulDataLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_VerifyRecover +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen +) +{ + return __ADJOIN(MODULE_NAME,C_VerifyRecover)(hSession, pSignature, ulSignatureLen, pData, pulDataLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DigestEncryptUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen +) +{ + return NSSCKFWC_DigestEncryptUpdate(fwInstance, hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DigestEncryptUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_DigestEncryptUpdate)(hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DecryptDigestUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen +) +{ + return NSSCKFWC_DecryptDigestUpdate(fwInstance, hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DecryptDigestUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_DecryptDigestUpdate)(hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SignEncryptUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen +) +{ + return NSSCKFWC_SignEncryptUpdate(fwInstance, hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SignEncryptUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_SignEncryptUpdate)(hSession, pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DecryptVerifyUpdate) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen +) +{ + return NSSCKFWC_DecryptVerifyUpdate(fwInstance, hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DecryptVerifyUpdate +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen +) +{ + return __ADJOIN(MODULE_NAME,C_DecryptVerifyUpdate)(hSession, pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GenerateKey) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phKey +) +{ + return NSSCKFWC_GenerateKey(fwInstance, hSession, pMechanism, pTemplate, ulCount, phKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GenerateKey +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phKey +) +{ + return __ADJOIN(MODULE_NAME,C_GenerateKey)(hSession, pMechanism, pTemplate, ulCount, phKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GenerateKeyPair) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + CK_OBJECT_HANDLE_PTR phPublicKey, + CK_OBJECT_HANDLE_PTR phPrivateKey +) +{ + return NSSCKFWC_GenerateKeyPair(fwInstance, hSession, pMechanism, pPublicKeyTemplate, ulPublicKeyAttributeCount, pPrivateKeyTemplate, ulPrivateKeyAttributeCount, phPublicKey, phPrivateKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GenerateKeyPair +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + CK_OBJECT_HANDLE_PTR phPublicKey, + CK_OBJECT_HANDLE_PTR phPrivateKey +) +{ + return __ADJOIN(MODULE_NAME,C_GenerateKeyPair)(hSession, pMechanism, pPublicKeyTemplate, ulPublicKeyAttributeCount, pPrivateKeyTemplate, ulPrivateKeyAttributeCount, phPublicKey, phPrivateKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_WrapKey) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hWrappingKey, + CK_OBJECT_HANDLE hKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG_PTR pulWrappedKeyLen +) +{ + return NSSCKFWC_WrapKey(fwInstance, hSession, pMechanism, hWrappingKey, hKey, pWrappedKey, pulWrappedKeyLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_WrapKey +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hWrappingKey, + CK_OBJECT_HANDLE hKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG_PTR pulWrappedKeyLen +) +{ + return __ADJOIN(MODULE_NAME,C_WrapKey)(hSession, pMechanism, hWrappingKey, hKey, pWrappedKey, pulWrappedKeyLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_UnwrapKey) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hUnwrappingKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG ulWrappedKeyLen, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey +) +{ + return NSSCKFWC_UnwrapKey(fwInstance, hSession, pMechanism, hUnwrappingKey, pWrappedKey, ulWrappedKeyLen, pTemplate, ulAttributeCount, phKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_UnwrapKey +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hUnwrappingKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG ulWrappedKeyLen, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey +) +{ + return __ADJOIN(MODULE_NAME,C_UnwrapKey)(hSession, pMechanism, hUnwrappingKey, pWrappedKey, ulWrappedKeyLen, pTemplate, ulAttributeCount, phKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_DeriveKey) +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hBaseKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey +) +{ + return NSSCKFWC_DeriveKey(fwInstance, hSession, pMechanism, hBaseKey, pTemplate, ulAttributeCount, phKey); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_DeriveKey +( + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hBaseKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey +) +{ + return __ADJOIN(MODULE_NAME,C_DeriveKey)(hSession, pMechanism, hBaseKey, pTemplate, ulAttributeCount, phKey); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_SeedRandom) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSeed, + CK_ULONG ulSeedLen +) +{ + return NSSCKFWC_SeedRandom(fwInstance, hSession, pSeed, ulSeedLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_SeedRandom +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSeed, + CK_ULONG ulSeedLen +) +{ + return __ADJOIN(MODULE_NAME,C_SeedRandom)(hSession, pSeed, ulSeedLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GenerateRandom) +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR RandomData, + CK_ULONG ulRandomLen +) +{ + return NSSCKFWC_GenerateRandom(fwInstance, hSession, RandomData, ulRandomLen); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GenerateRandom +( + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR RandomData, + CK_ULONG ulRandomLen +) +{ + return __ADJOIN(MODULE_NAME,C_GenerateRandom)(hSession, RandomData, ulRandomLen); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetFunctionStatus) +( + CK_SESSION_HANDLE hSession +) +{ + return NSSCKFWC_GetFunctionStatus(fwInstance, hSession); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_GetFunctionStatus +( + CK_SESSION_HANDLE hSession +) +{ + return __ADJOIN(MODULE_NAME,C_GetFunctionStatus)(hSession); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_CancelFunction) +( + CK_SESSION_HANDLE hSession +) +{ + return NSSCKFWC_CancelFunction(fwInstance, hSession); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_CancelFunction +( + CK_SESSION_HANDLE hSession +) +{ + return __ADJOIN(MODULE_NAME,C_CancelFunction)(hSession); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_WaitForSlotEvent) +( + CK_FLAGS flags, + CK_SLOT_ID_PTR pSlot, + CK_VOID_PTR pRserved +) +{ + return NSSCKFWC_WaitForSlotEvent(fwInstance, flags, pSlot, pRserved); +} + +#ifdef DECLARE_STRICT_CRYPTOKI_NAMES +CK_RV CK_ENTRY +C_WaitForSlotEvent +( + CK_FLAGS flags, + CK_SLOT_ID_PTR pSlot, + CK_VOID_PTR pRserved +) +{ + return __ADJOIN(MODULE_NAME,C_WaitForSlotEvent)(flags, pSlot, pRserved); +} +#endif /* DECLARE_STRICT_CRYPTOKI_NAMES */ + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetFunctionList) +( + CK_FUNCTION_LIST_PTR_PTR ppFunctionList +); + +static CK_FUNCTION_LIST FunctionList = { + { 2, 1 }, +__ADJOIN(MODULE_NAME,C_Initialize), +__ADJOIN(MODULE_NAME,C_Finalize), +__ADJOIN(MODULE_NAME,C_GetInfo), +__ADJOIN(MODULE_NAME,C_GetFunctionList), +__ADJOIN(MODULE_NAME,C_GetSlotList), +__ADJOIN(MODULE_NAME,C_GetSlotInfo), +__ADJOIN(MODULE_NAME,C_GetTokenInfo), +__ADJOIN(MODULE_NAME,C_GetMechanismList), +__ADJOIN(MODULE_NAME,C_GetMechanismInfo), +__ADJOIN(MODULE_NAME,C_InitToken), +__ADJOIN(MODULE_NAME,C_InitPIN), +__ADJOIN(MODULE_NAME,C_SetPIN), +__ADJOIN(MODULE_NAME,C_OpenSession), +__ADJOIN(MODULE_NAME,C_CloseSession), +__ADJOIN(MODULE_NAME,C_CloseAllSessions), +__ADJOIN(MODULE_NAME,C_GetSessionInfo), +__ADJOIN(MODULE_NAME,C_GetOperationState), +__ADJOIN(MODULE_NAME,C_SetOperationState), +__ADJOIN(MODULE_NAME,C_Login), +__ADJOIN(MODULE_NAME,C_Logout), +__ADJOIN(MODULE_NAME,C_CreateObject), +__ADJOIN(MODULE_NAME,C_CopyObject), +__ADJOIN(MODULE_NAME,C_DestroyObject), +__ADJOIN(MODULE_NAME,C_GetObjectSize), +__ADJOIN(MODULE_NAME,C_GetAttributeValue), +__ADJOIN(MODULE_NAME,C_SetAttributeValue), +__ADJOIN(MODULE_NAME,C_FindObjectsInit), +__ADJOIN(MODULE_NAME,C_FindObjects), +__ADJOIN(MODULE_NAME,C_FindObjectsFinal), +__ADJOIN(MODULE_NAME,C_EncryptInit), +__ADJOIN(MODULE_NAME,C_Encrypt), +__ADJOIN(MODULE_NAME,C_EncryptUpdate), +__ADJOIN(MODULE_NAME,C_EncryptFinal), +__ADJOIN(MODULE_NAME,C_DecryptInit), +__ADJOIN(MODULE_NAME,C_Decrypt), +__ADJOIN(MODULE_NAME,C_DecryptUpdate), +__ADJOIN(MODULE_NAME,C_DecryptFinal), +__ADJOIN(MODULE_NAME,C_DigestInit), +__ADJOIN(MODULE_NAME,C_Digest), +__ADJOIN(MODULE_NAME,C_DigestUpdate), +__ADJOIN(MODULE_NAME,C_DigestKey), +__ADJOIN(MODULE_NAME,C_DigestFinal), +__ADJOIN(MODULE_NAME,C_SignInit), +__ADJOIN(MODULE_NAME,C_Sign), +__ADJOIN(MODULE_NAME,C_SignUpdate), +__ADJOIN(MODULE_NAME,C_SignFinal), +__ADJOIN(MODULE_NAME,C_SignRecoverInit), +__ADJOIN(MODULE_NAME,C_SignRecover), +__ADJOIN(MODULE_NAME,C_VerifyInit), +__ADJOIN(MODULE_NAME,C_Verify), +__ADJOIN(MODULE_NAME,C_VerifyUpdate), +__ADJOIN(MODULE_NAME,C_VerifyFinal), +__ADJOIN(MODULE_NAME,C_VerifyRecoverInit), +__ADJOIN(MODULE_NAME,C_VerifyRecover), +__ADJOIN(MODULE_NAME,C_DigestEncryptUpdate), +__ADJOIN(MODULE_NAME,C_DecryptDigestUpdate), +__ADJOIN(MODULE_NAME,C_SignEncryptUpdate), +__ADJOIN(MODULE_NAME,C_DecryptVerifyUpdate), +__ADJOIN(MODULE_NAME,C_GenerateKey), +__ADJOIN(MODULE_NAME,C_GenerateKeyPair), +__ADJOIN(MODULE_NAME,C_WrapKey), +__ADJOIN(MODULE_NAME,C_UnwrapKey), +__ADJOIN(MODULE_NAME,C_DeriveKey), +__ADJOIN(MODULE_NAME,C_SeedRandom), +__ADJOIN(MODULE_NAME,C_GenerateRandom), +__ADJOIN(MODULE_NAME,C_GetFunctionStatus), +__ADJOIN(MODULE_NAME,C_CancelFunction), +__ADJOIN(MODULE_NAME,C_WaitForSlotEvent) +}; + +static CK_RV CK_ENTRY +__ADJOIN(MODULE_NAME,C_GetFunctionList) +( + CK_FUNCTION_LIST_PTR_PTR ppFunctionList +) +{ + *ppFunctionList = &FunctionList; + return CKR_OK; +} + +/* This one is always present */ +CK_RV CK_ENTRY +C_GetFunctionList +( + CK_FUNCTION_LIST_PTR_PTR ppFunctionList +) +{ + return __ADJOIN(MODULE_NAME,C_GetFunctionList)(ppFunctionList); +} + +#undef __ADJOIN + diff --git a/security/nss/lib/ckfw/nssckepv.h b/security/nss/lib/ckfw/nssckepv.h new file mode 100644 index 000000000..042845d31 --- /dev/null +++ b/security/nss/lib/ckfw/nssckepv.h @@ -0,0 +1,10 @@ +/* THIS IS A GENERATED FILE */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#ifndef NSSCKEPV_H +#define NSSCKEPV_H + +#include "pkcs11.h" + +#endif /* NSSCKEPV_H */ diff --git a/security/nss/lib/ckfw/nssckft.h b/security/nss/lib/ckfw/nssckft.h new file mode 100644 index 000000000..80ee29245 --- /dev/null +++ b/security/nss/lib/ckfw/nssckft.h @@ -0,0 +1,11 @@ +/* THIS IS A GENERATED FILE */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef _NSSCKFT_H_ +#define _NSSCKFT_H_ 1 + +#include "pkcs11t.h" + +#endif /* _NSSCKFT_H_ */ diff --git a/security/nss/lib/ckfw/nssckfw.h b/security/nss/lib/ckfw/nssckfw.h new file mode 100644 index 000000000..0f93eaa09 --- /dev/null +++ b/security/nss/lib/ckfw/nssckfw.h @@ -0,0 +1,462 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSCKFW_H +#define NSSCKFW_H + +/* + * nssckfw.h + * + * This file prototypes the publicly available calls of the + * NSS Cryptoki Framework. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +/* + * NSSCKFWInstance + * + * NSSCKFWInstance_GetMDInstance + * NSSCKFWInstance_GetArena + * NSSCKFWInstance_MayCreatePthreads + * NSSCKFWInstance_CreateMutex + * NSSCKFWInstance_GetConfigurationData + * NSSCKFWInstance_GetInitArgs + * NSSCKFWInstance_DestroySessionHandle + * NSSCKFWInstance_FindSessionHandle + */ + +/* + * NSSCKFWInstance_GetMDInstance + * + */ + +NSS_EXTERN NSSCKMDInstance * +NSSCKFWInstance_GetMDInstance( + NSSCKFWInstance *fwInstance); + +/* + * NSSCKFWInstance_GetArena + * + */ + +NSS_EXTERN NSSArena * +NSSCKFWInstance_GetArena( + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +/* + * NSSCKFWInstance_MayCreatePthreads + * + */ + +NSS_EXTERN CK_BBOOL +NSSCKFWInstance_MayCreatePthreads( + NSSCKFWInstance *fwInstance); + +/* + * NSSCKFWInstance_CreateMutex + * + */ + +NSS_EXTERN NSSCKFWMutex * +NSSCKFWInstance_CreateMutex( + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError); + +/* + * NSSCKFWInstance_GetConfigurationData + * + */ + +NSS_EXTERN NSSUTF8 * +NSSCKFWInstance_GetConfigurationData( + NSSCKFWInstance *fwInstance); + +/* + * NSSCKFWInstance_GetInitArgs + * + */ + +NSS_EXTERN CK_C_INITIALIZE_ARGS_PTR +NSSCKFWInstance_GetInitArgs( + NSSCKFWInstance *fwInstance); + +/* + * nssCKFWInstance_DestroySessionHandle + * + */ +NSS_EXTERN void +NSSCKFWInstance_DestroySessionHandle( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * nssCKFWInstance_FindSessionHandle + * + */ +NSS_EXTERN CK_SESSION_HANDLE +NSSCKFWInstance_FindSessionHandle( + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession); + +/* + * NSSCKFWSlot + * + * NSSCKFWSlot_GetMDSlot + * NSSCKFWSlot_GetFWInstance + * NSSCKFWSlot_GetMDInstance + * NSSCKFWSlot_GetSlotID + * + */ + +/* + * NSSCKFWSlot_GetMDSlot + * + */ + +NSS_EXTERN NSSCKMDSlot * +NSSCKFWSlot_GetMDSlot( + NSSCKFWSlot *fwSlot); + +/* + * NSSCKFWSlot_GetFWInstance + * + */ + +NSS_EXTERN NSSCKFWInstance * +NSSCKFWSlot_GetFWInstance( + NSSCKFWSlot *fwSlot); + +/* + * NSSCKFWSlot_GetMDInstance + * + */ + +NSS_EXTERN NSSCKMDInstance * +NSSCKFWSlot_GetMDInstance( + NSSCKFWSlot *fwSlot); + +/* + * NSSCKFWSlot_GetSlotID + * + */ + +NSS_EXTERN CK_SLOT_ID +NSSCKFWSlot_GetSlotID( + NSSCKFWSlot *fwSlot); + +/* + * NSSCKFWToken + * + * NSSCKFWToken_GetMDToken + * NSSCKFWToken_GetFWSlot + * NSSCKFWToken_GetMDSlot + * NSSCKFWToken_GetSessionState + * + */ + +/* + * NSSCKFWToken_GetMDToken + * + */ + +NSS_EXTERN NSSCKMDToken * +NSSCKFWToken_GetMDToken( + NSSCKFWToken *fwToken); + +/* + * NSSCKFWToken_GetArena + * + */ + +NSS_EXTERN NSSArena * +NSSCKFWToken_GetArena( + NSSCKFWToken *fwToken, + CK_RV *pError); + +/* + * NSSCKFWToken_GetFWSlot + * + */ + +NSS_EXTERN NSSCKFWSlot * +NSSCKFWToken_GetFWSlot( + NSSCKFWToken *fwToken); + +/* + * NSSCKFWToken_GetMDSlot + * + */ + +NSS_EXTERN NSSCKMDSlot * +NSSCKFWToken_GetMDSlot( + NSSCKFWToken *fwToken); + +/* + * NSSCKFWToken_GetSessionState + * + */ + +NSS_EXTERN CK_STATE +NSSCKFWToken_GetSessionState( + NSSCKFWToken *fwToken); + +/* + * NSSCKFWMechanism + * + * NSSKCFWMechanism_GetMDMechanism + * NSSCKFWMechanism_GetParameter + * + */ + +/* + * NSSKCFWMechanism_GetMDMechanism + * + */ + +NSS_EXTERN NSSCKMDMechanism * +NSSCKFWMechanism_GetMDMechanism( + NSSCKFWMechanism *fwMechanism); + +/* + * NSSCKFWMechanism_GetParameter + * + */ + +NSS_EXTERN NSSItem * +NSSCKFWMechanism_GetParameter( + NSSCKFWMechanism *fwMechanism); + +/* + * NSSCKFWSession + * + * NSSCKFWSession_GetMDSession + * NSSCKFWSession_GetArena + * NSSCKFWSession_CallNotification + * NSSCKFWSession_IsRWSession + * NSSCKFWSession_IsSO + * NSSCKFWSession_GetCurrentCryptoOperation + * NSSCKFWSession_GetFWSlot + * + */ + +/* + * NSSCKFWSession_GetMDSession + * + */ + +NSS_EXTERN NSSCKMDSession * +NSSCKFWSession_GetMDSession( + NSSCKFWSession *fwSession); + +/* + * NSSCKFWSession_GetArena + * + */ + +NSS_EXTERN NSSArena * +NSSCKFWSession_GetArena( + NSSCKFWSession *fwSession, + CK_RV *pError); + +/* + * NSSCKFWSession_CallNotification + * + */ + +NSS_EXTERN CK_RV +NSSCKFWSession_CallNotification( + NSSCKFWSession *fwSession, + CK_NOTIFICATION event); + +/* + * NSSCKFWSession_IsRWSession + * + */ + +NSS_EXTERN CK_BBOOL +NSSCKFWSession_IsRWSession( + NSSCKFWSession *fwSession); + +/* + * NSSCKFWSession_IsSO + * + */ + +NSS_EXTERN CK_BBOOL +NSSCKFWSession_IsSO( + NSSCKFWSession *fwSession); + +/* + * NSSCKFWSession_GetCurrentCryptoOperation + * + */ + +NSS_EXTERN NSSCKFWCryptoOperation * +NSSCKFWSession_GetCurrentCryptoOperation( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationState state); + +/* + * NSSCKFWSession_GetFWSlot + * + */ + +NSS_EXTERN NSSCKFWSlot * +NSSCKFWSession_GetFWSlot( + NSSCKFWSession *fwSession); + +/* + * NSSCKFWObject + * + * NSSCKFWObject_GetMDObject + * NSSCKFWObject_GetArena + * NSSCKFWObject_IsTokenObject + * NSSCKFWObject_GetAttributeCount + * NSSCKFWObject_GetAttributeTypes + * NSSCKFWObject_GetAttributeSize + * NSSCKFWObject_GetAttribute + * NSSCKFWObject_GetObjectSize + */ + +/* + * NSSCKFWObject_GetMDObject + * + */ +NSS_EXTERN NSSCKMDObject * +NSSCKFWObject_GetMDObject( + NSSCKFWObject *fwObject); + +/* + * NSSCKFWObject_GetArena + * + */ +NSS_EXTERN NSSArena * +NSSCKFWObject_GetArena( + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * NSSCKFWObject_IsTokenObject + * + */ +NSS_EXTERN CK_BBOOL +NSSCKFWObject_IsTokenObject( + NSSCKFWObject *fwObject); + +/* + * NSSCKFWObject_GetAttributeCount + * + */ +NSS_EXTERN CK_ULONG +NSSCKFWObject_GetAttributeCount( + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * NSSCKFWObject_GetAttributeTypes + * + */ +NSS_EXTERN CK_RV +NSSCKFWObject_GetAttributeTypes( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount); + +/* + * NSSCKFWObject_GetAttributeSize + * + */ +NSS_EXTERN CK_ULONG +NSSCKFWObject_GetAttributeSize( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError); + +/* + * NSSCKFWObject_GetAttribute + * + */ +NSS_EXTERN NSSItem * +NSSCKFWObject_GetAttribute( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *itemOpt, + NSSArena *arenaOpt, + CK_RV *pError); + +/* + * NSSCKFWObject_GetObjectSize + * + */ +NSS_EXTERN CK_ULONG +NSSCKFWObject_GetObjectSize( + NSSCKFWObject *fwObject, + CK_RV *pError); + +/* + * NSSCKFWFindObjects + * + * NSSCKFWFindObjects_GetMDFindObjects + * + */ + +/* + * NSSCKFWFindObjects_GetMDFindObjects + * + */ + +NSS_EXTERN NSSCKMDFindObjects * +NSSCKFWFindObjects_GetMDFindObjects( + NSSCKFWFindObjects *); + +/* + * NSSCKFWMutex + * + * NSSCKFWMutex_Destroy + * NSSCKFWMutex_Lock + * NSSCKFWMutex_Unlock + * + */ + +/* + * NSSCKFWMutex_Destroy + * + */ + +NSS_EXTERN CK_RV +NSSCKFWMutex_Destroy( + NSSCKFWMutex *mutex); + +/* + * NSSCKFWMutex_Lock + * + */ + +NSS_EXTERN CK_RV +NSSCKFWMutex_Lock( + NSSCKFWMutex *mutex); + +/* + * NSSCKFWMutex_Unlock + * + */ + +NSS_EXTERN CK_RV +NSSCKFWMutex_Unlock( + NSSCKFWMutex *mutex); + +#endif /* NSSCKFW_H */ diff --git a/security/nss/lib/ckfw/nssckfwc.h b/security/nss/lib/ckfw/nssckfwc.h new file mode 100644 index 000000000..734a67cf8 --- /dev/null +++ b/security/nss/lib/ckfw/nssckfwc.h @@ -0,0 +1,879 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSCKFWC_H +#define NSSCKFWC_H + +/* + * nssckfwc.h + * + * This file prototypes all of the NSS Cryptoki Framework "wrapper" + * which implement the PKCS#11 API. Technically, these are public + * routines (with capital "NSS" prefixes), since they are called + * from (generated) code within a Module using the Framework. + * However, they should not be called except from those generated + * calls. Hence, the prototypes have been split out into this file. + */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +#ifndef NSSCKMDT_H +#include "nssckmdt.h" +#endif /* NSSCKMDT_H */ + +/* + * NSSCKFWC_Initialize + * NSSCKFWC_Finalize + * NSSCKFWC_GetInfo + * -- NSSCKFWC_GetFunctionList -- see the API insert file + * NSSCKFWC_GetSlotList + * NSSCKFWC_GetSlotInfo + * NSSCKFWC_GetTokenInfo + * NSSCKFWC_WaitForSlotEvent + * NSSCKFWC_GetMechanismList + * NSSCKFWC_GetMechanismInfo + * NSSCKFWC_InitToken + * NSSCKFWC_InitPIN + * NSSCKFWC_SetPIN + * NSSCKFWC_OpenSession + * NSSCKFWC_CloseSession + * NSSCKFWC_CloseAllSessions + * NSSCKFWC_GetSessionInfo + * NSSCKFWC_GetOperationState + * NSSCKFWC_SetOperationState + * NSSCKFWC_Login + * NSSCKFWC_Logout + * NSSCKFWC_CreateObject + * NSSCKFWC_CopyObject + * NSSCKFWC_DestroyObject + * NSSCKFWC_GetObjectSize + * NSSCKFWC_GetAttributeValue + * NSSCKFWC_SetAttributeValue + * NSSCKFWC_FindObjectsInit + * NSSCKFWC_FindObjects + * NSSCKFWC_FindObjectsFinal + * NSSCKFWC_EncryptInit + * NSSCKFWC_Encrypt + * NSSCKFWC_EncryptUpdate + * NSSCKFWC_EncryptFinal + * NSSCKFWC_DecryptInit + * NSSCKFWC_Decrypt + * NSSCKFWC_DecryptUpdate + * NSSCKFWC_DecryptFinal + * NSSCKFWC_DigestInit + * NSSCKFWC_Digest + * NSSCKFWC_DigestUpdate + * NSSCKFWC_DigestKey + * NSSCKFWC_DigestFinal + * NSSCKFWC_SignInit + * NSSCKFWC_Sign + * NSSCKFWC_SignUpdate + * NSSCKFWC_SignFinal + * NSSCKFWC_SignRecoverInit + * NSSCKFWC_SignRecover + * NSSCKFWC_VerifyInit + * NSSCKFWC_Verify + * NSSCKFWC_VerifyUpdate + * NSSCKFWC_VerifyFinal + * NSSCKFWC_VerifyRecoverInit + * NSSCKFWC_VerifyRecover + * NSSCKFWC_DigestEncryptUpdate + * NSSCKFWC_DecryptDigestUpdate + * NSSCKFWC_SignEncryptUpdate + * NSSCKFWC_DecryptVerifyUpdate + * NSSCKFWC_GenerateKey + * NSSCKFWC_GenerateKeyPair + * NSSCKFWC_WrapKey + * NSSCKFWC_UnwrapKey + * NSSCKFWC_DeriveKey + * NSSCKFWC_SeedRandom + * NSSCKFWC_GenerateRandom + * NSSCKFWC_GetFunctionStatus + * NSSCKFWC_CancelFunction + */ + +/* + * NSSCKFWC_Initialize + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Initialize( + NSSCKFWInstance **pFwInstance, + NSSCKMDInstance *mdInstance, + CK_VOID_PTR pInitArgs); + +/* + * NSSCKFWC_Finalize + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Finalize( + NSSCKFWInstance **pFwInstance); + +/* + * NSSCKFWC_GetInfo + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetInfo( + NSSCKFWInstance *fwInstance, + CK_INFO_PTR pInfo); + +/* + * C_GetFunctionList is implemented entirely in the Module's file which + * includes the Framework API insert file. It requires no "actual" + * NSSCKFW routine. + */ + +/* + * NSSCKFWC_GetSlotList + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetSlotList( + NSSCKFWInstance *fwInstance, + CK_BBOOL tokenPresent, + CK_SLOT_ID_PTR pSlotList, + CK_ULONG_PTR pulCount); + +/* + * NSSCKFWC_GetSlotInfo + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetSlotInfo( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_SLOT_INFO_PTR pInfo); + +/* + * NSSCKFWC_GetTokenInfo + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetTokenInfo( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_TOKEN_INFO_PTR pInfo); + +/* + * NSSCKFWC_WaitForSlotEvent + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_WaitForSlotEvent( + NSSCKFWInstance *fwInstance, + CK_FLAGS flags, + CK_SLOT_ID_PTR pSlot, + CK_VOID_PTR pReserved); + +/* + * NSSCKFWC_GetMechanismList + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetMechanismList( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE_PTR pMechanismList, + CK_ULONG_PTR pulCount); + +/* + * NSSCKFWC_GetMechanismInfo + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetMechanismInfo( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE type, + CK_MECHANISM_INFO_PTR pInfo); + +/* + * NSSCKFWC_InitToken + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_InitToken( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen, + CK_CHAR_PTR pLabel); + +/* + * NSSCKFWC_InitPIN + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_InitPIN( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen); + +/* + * NSSCKFWC_SetPIN + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SetPIN( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pOldPin, + CK_ULONG ulOldLen, + CK_CHAR_PTR pNewPin, + CK_ULONG ulNewLen); + +/* + * NSSCKFWC_OpenSession + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_OpenSession( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_FLAGS flags, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_SESSION_HANDLE_PTR phSession); + +/* + * NSSCKFWC_CloseSession + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_CloseSession( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * NSSCKFWC_CloseAllSessions + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_CloseAllSessions( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID); + +/* + * NSSCKFWC_GetSessionInfo + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetSessionInfo( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_SESSION_INFO_PTR pInfo); + +/* + * NSSCKFWC_GetOperationState + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetOperationState( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG_PTR pulOperationStateLen); + +/* + * NSSCKFWC_SetOperationState + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SetOperationState( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG ulOperationStateLen, + CK_OBJECT_HANDLE hEncryptionKey, + CK_OBJECT_HANDLE hAuthenticationKey); + +/* + * NSSCKFWC_Login + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Login( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_USER_TYPE userType, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen); + +/* + * NSSCKFWC_Logout + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Logout( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * NSSCKFWC_CreateObject + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_CreateObject( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phObject); + +/* + * NSSCKFWC_CopyObject + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_CopyObject( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phNewObject); + +/* + * NSSCKFWC_DestroyObject + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DestroyObject( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject); + +/* + * NSSCKFWC_GetObjectSize + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetObjectSize( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ULONG_PTR pulSize); + +/* + * NSSCKFWC_GetAttributeValue + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetAttributeValue( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount); + +/* + * NSSCKFWC_SetAttributeValue + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SetAttributeValue( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount); + +/* + * NSSCKFWC_FindObjectsInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_FindObjectsInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount); + +/* + * NSSCKFWC_FindObjects + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_FindObjects( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE_PTR phObject, + CK_ULONG ulMaxObjectCount, + CK_ULONG_PTR pulObjectCount); + +/* + * NSSCKFWC_FindObjectsFinal + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_FindObjectsFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * NSSCKFWC_EncryptInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_EncryptInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_Encrypt + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Encrypt( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pEncryptedData, + CK_ULONG_PTR pulEncryptedDataLen); + +/* + * NSSCKFWC_EncryptUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_EncryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen); + +/* + * NSSCKFWC_EncryptFinal + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_EncryptFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastEncryptedPart, + CK_ULONG_PTR pulLastEncryptedPartLen); + +/* + * NSSCKFWC_DecryptInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DecryptInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_Decrypt + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Decrypt( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedData, + CK_ULONG ulEncryptedDataLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen); + +/* + * NSSCKFWC_DecryptUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DecryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen); + +/* + * NSSCKFWC_DecryptFinal + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DecryptFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastPart, + CK_ULONG_PTR pulLastPartLen); + +/* + * NSSCKFWC_DigestInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DigestInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism); + +/* + * NSSCKFWC_Digest + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Digest( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen); + +/* + * NSSCKFWC_DigestUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DigestUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen); + +/* + * NSSCKFWC_DigestKey + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DigestKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_DigestFinal + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DigestFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen); + +/* + * NSSCKFWC_SignInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SignInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_Sign + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Sign( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen); + +/* + * NSSCKFWC_SignUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SignUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen); + +/* + * NSSCKFWC_SignFinal + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SignFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen); + +/* + * NSSCKFWC_SignRecoverInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SignRecoverInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_SignRecover + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SignRecover( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen); + +/* + * NSSCKFWC_VerifyInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_VerifyInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_Verify + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_Verify( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen); + +/* + * NSSCKFWC_VerifyUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_VerifyUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen); + +/* + * NSSCKFWC_VerifyFinal + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_VerifyFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen); + +/* + * NSSCKFWC_VerifyRecoverInit + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_VerifyRecoverInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey); + +/* + * NSSCKFWC_VerifyRecover + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_VerifyRecover( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen); + +/* + * NSSCKFWC_DigestEncryptUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DigestEncryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen); + +/* + * NSSCKFWC_DecryptDigestUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DecryptDigestUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen); + +/* + * NSSCKFWC_SignEncryptUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SignEncryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen); + +/* + * NSSCKFWC_DecryptVerifyUpdate + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DecryptVerifyUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen); + +/* + * NSSCKFWC_GenerateKey + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GenerateKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phKey); + +/* + * NSSCKFWC_GenerateKeyPair + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GenerateKeyPair( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + CK_OBJECT_HANDLE_PTR phPublicKey, + CK_OBJECT_HANDLE_PTR phPrivateKey); + +/* + * NSSCKFWC_WrapKey + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_WrapKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hWrappingKey, + CK_OBJECT_HANDLE hKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG_PTR pulWrappedKeyLen); + +/* + * NSSCKFWC_UnwrapKey + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_UnwrapKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hUnwrappingKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG ulWrappedKeyLen, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey); + +/* + * NSSCKFWC_DeriveKey + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_DeriveKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hBaseKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey); + +/* + * NSSCKFWC_SeedRandom + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_SeedRandom( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSeed, + CK_ULONG ulSeedLen); + +/* + * NSSCKFWC_GenerateRandom + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GenerateRandom( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pRandomData, + CK_ULONG ulRandomLen); + +/* + * NSSCKFWC_GetFunctionStatus + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_GetFunctionStatus( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +/* + * NSSCKFWC_CancelFunction + * + */ +NSS_EXTERN CK_RV +NSSCKFWC_CancelFunction( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession); + +#endif /* NSSCKFWC_H */ diff --git a/security/nss/lib/ckfw/nssckfwt.h b/security/nss/lib/ckfw/nssckfwt.h new file mode 100644 index 000000000..cd015d515 --- /dev/null +++ b/security/nss/lib/ckfw/nssckfwt.h @@ -0,0 +1,109 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSCKFWT_H +#define NSSCKFWT_H + +/* + * nssckfwt.h + * + * This file declares the public types used by the NSS Cryptoki Framework. + */ + +/* + * NSSCKFWInstance + * + */ + +struct NSSCKFWInstanceStr; +typedef struct NSSCKFWInstanceStr NSSCKFWInstance; + +/* + * NSSCKFWSlot + * + */ + +struct NSSCKFWSlotStr; +typedef struct NSSCKFWSlotStr NSSCKFWSlot; + +/* + * NSSCKFWToken + * + */ + +struct NSSCKFWTokenStr; +typedef struct NSSCKFWTokenStr NSSCKFWToken; + +/* + * NSSCKFWMechanism + * + */ + +struct NSSCKFWMechanismStr; +typedef struct NSSCKFWMechanismStr NSSCKFWMechanism; + +/* + * NSSCKFWCryptoOperation + * + */ + +struct NSSCKFWCryptoOperationStr; +typedef struct NSSCKFWCryptoOperationStr NSSCKFWCryptoOperation; + +/* + * NSSCKFWSession + * + */ + +struct NSSCKFWSessionStr; +typedef struct NSSCKFWSessionStr NSSCKFWSession; + +/* + * NSSCKFWObject + * + */ + +struct NSSCKFWObjectStr; +typedef struct NSSCKFWObjectStr NSSCKFWObject; + +/* + * NSSCKFWFindObjects + * + */ + +struct NSSCKFWFindObjectsStr; +typedef struct NSSCKFWFindObjectsStr NSSCKFWFindObjects; + +/* + * NSSCKFWMutex + * + */ + +struct NSSCKFWMutexStr; +typedef struct NSSCKFWMutexStr NSSCKFWMutex; + +typedef enum { + SingleThreaded, + MultiThreaded +} CryptokiLockingState; + +/* used as an index into an array, make sure it starts at '0' */ +typedef enum { + NSSCKFWCryptoOperationState_EncryptDecrypt = 0, + NSSCKFWCryptoOperationState_SignVerify, + NSSCKFWCryptoOperationState_Digest, + NSSCKFWCryptoOperationState_Max +} NSSCKFWCryptoOperationState; + +typedef enum { + NSSCKFWCryptoOperationType_Encrypt, + NSSCKFWCryptoOperationType_Decrypt, + NSSCKFWCryptoOperationType_Digest, + NSSCKFWCryptoOperationType_Sign, + NSSCKFWCryptoOperationType_Verify, + NSSCKFWCryptoOperationType_SignRecover, + NSSCKFWCryptoOperationType_VerifyRecover +} NSSCKFWCryptoOperationType; + +#endif /* NSSCKFWT_H */ diff --git a/security/nss/lib/ckfw/nssckg.h b/security/nss/lib/ckfw/nssckg.h new file mode 100644 index 000000000..bf0d43fb0 --- /dev/null +++ b/security/nss/lib/ckfw/nssckg.h @@ -0,0 +1,10 @@ +/* THIS IS A GENERATED FILE */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#ifndef NSSCKG_H +#define NSSCKG_H + +#include "pkcs11.h" + +#endif /* NSSCKG_H */ diff --git a/security/nss/lib/ckfw/nssckmdt.h b/security/nss/lib/ckfw/nssckmdt.h new file mode 100644 index 000000000..d98f9b02a --- /dev/null +++ b/security/nss/lib/ckfw/nssckmdt.h @@ -0,0 +1,1904 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSCKMDT_H +#define NSSCKMDT_H + +/* + * nssckmdt.h + * + * This file specifies the basic types that must be implemented by + * any Module using the NSS Cryptoki Framework. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#ifndef NSSCKFWT_H +#include "nssckfwt.h" +#endif /* NSSCKFWT_H */ + +typedef struct NSSCKMDInstanceStr NSSCKMDInstance; +typedef struct NSSCKMDSlotStr NSSCKMDSlot; +typedef struct NSSCKMDTokenStr NSSCKMDToken; +typedef struct NSSCKMDSessionStr NSSCKMDSession; +typedef struct NSSCKMDCryptoOperationStr NSSCKMDCryptoOperation; +typedef struct NSSCKMDFindObjectsStr NSSCKMDFindObjects; +typedef struct NSSCKMDMechanismStr NSSCKMDMechanism; +typedef struct NSSCKMDObjectStr NSSCKMDObject; + +/* + * NSSCKFWItem + * + * This is a structure used by modules to return object attributes. + * The needsFreeing bit indicates whether the object needs to be freed. + * If so, the framework will call the FreeAttribute function on the item + * after it is done using it. + * + */ + +typedef struct { + PRBool needsFreeing; + NSSItem *item; +} NSSCKFWItem; + +/* + * NSSCKMDInstance + * + * This is the basic handle for an instance of a PKCS#11 Module. + * It is returned by the Module's CreateInstance routine, and + * may be obtained from the corresponding NSSCKFWInstance object. + * It contains a pointer for use by the Module, to store any + * instance-related data, and it contains the EPV for a set of + * routines which the Module may implement for use by the Framework. + * Some of these routines are optional; others are mandatory. + */ + +struct NSSCKMDInstanceStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is called by the Framework to initialize + * the Module. This routine is optional; if unimplemented, + * it won't be called. If this routine returns an error, + * then the initialization will fail. + */ + CK_RV(PR_CALLBACK *Initialize) + ( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSUTF8 *configurationData); + + /* + * This routine is called when the Framework is finalizing + * the PKCS#11 Module. It is the last thing called before + * the NSSCKFWInstance's NSSArena is destroyed. This routine + * is optional; if unimplemented, it merely won't be called. + */ + void(PR_CALLBACK *Finalize)( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine gets the number of slots. This value must + * never change, once the instance is initialized. This + * routine must be implemented. It may return zero on error. + */ + CK_ULONG(PR_CALLBACK *GetNSlots) + ( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns the version of the Cryptoki standard + * to which this Module conforms. This routine is optional; + * if unimplemented, the Framework uses the version to which + * ~it~ was implemented. + */ + CK_VERSION(PR_CALLBACK *GetCryptokiVersion) + ( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing the manufacturer ID for this Module. Only + * the characters completely encoded in the first thirty- + * two bytes are significant. This routine is optional. + * The string returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetManufacturerID)( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing a description of this Module library. Only + * the characters completely encoded in the first thirty- + * two bytes are significant. This routine is optional. + * The string returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetLibraryDescription)( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns the version of this Module library. + * This routine is optional; if unimplemented, the Framework + * will assume a Module library version of 0.1. + */ + CK_VERSION(PR_CALLBACK *GetLibraryVersion) + ( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if the Module wishes to + * handle session objects. This routine is optional. + * If this routine is NULL, or if it exists but returns + * CK_FALSE, the Framework will assume responsibility + * for managing session objects. + */ + CK_BBOOL(PR_CALLBACK *ModuleHandlesSessionObjects) + ( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine stuffs pointers to NSSCKMDSlot objects into + * the specified array; one for each slot supported by this + * instance. The Framework will determine the size needed + * for the array by calling GetNSlots. This routine is + * required. + */ + CK_RV(PR_CALLBACK *GetSlots) + ( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *slots[]); + + /* + * This call returns a pointer to the slot in which an event + * has occurred. If the block argument is CK_TRUE, the call + * should block until a slot event occurs; if CK_FALSE, it + * should check to see if an event has occurred, occurred, + * but return NULL (and set *pError to CK_NO_EVENT) if one + * hasn't. This routine is optional; if unimplemented, the + * Framework will assume that no event has happened. This + * routine may return NULL upon error. + */ + NSSCKMDSlot *(PR_CALLBACK *WaitForSlotEvent)( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_BBOOL block, + CK_RV *pError); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDSlot + * + * This is the basic handle for a PKCS#11 Module Slot. It is + * created by the NSSCKMDInstance->GetSlots call, and may be + * obtained from the Framework's corresponding NSSCKFWSlot + * object. It contains a pointer for use by the Module, to + * store any slot-related data, and it contains the EPV for + * a set of routines which the Module may implement for use + * by the Framework. Some of these routines are optional. + */ + +struct NSSCKMDSlotStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is called during the Framework initialization + * step, after the Framework Instance has obtained the list + * of slots (by calling NSSCKMDInstance->GetSlots). Any slot- + * specific initialization can be done here. This routine is + * optional; if unimplemented, it won't be called. Note that + * if this routine returns an error, the entire Framework + * initialization for this Module will fail. + */ + CK_RV(PR_CALLBACK *Initialize) + ( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine is called when the Framework is finalizing + * the PKCS#11 Module. This call (for each of the slots) + * is the last thing called before NSSCKMDInstance->Finalize. + * This routine is optional; if unimplemented, it merely + * won't be called. Note: In the rare circumstance that + * the Framework initialization cannot complete (due to, + * for example, memory limitations), this can be called with + * a NULL value for fwSlot. + */ + void(PR_CALLBACK *Destroy)( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing a description of this slot. Only the characters + * completely encoded in the first sixty-four bytes are + * significant. This routine is optional. The string + * returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetSlotDescription)( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing a description of the manufacturer of this slot. + * Only the characters completely encoded in the first thirty- + * two bytes are significant. This routine is optional. + * The string returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetManufacturerID)( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns CK_TRUE if a token is present in this + * slot. This routine is optional; if unimplemented, CK_TRUE + * is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetTokenPresent) + ( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if the slot supports removable + * tokens. This routine is optional; if unimplemented, CK_FALSE + * is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetRemovableDevice) + ( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if this slot is a hardware + * device, or CK_FALSE if this slot is a software device. This + * routine is optional; if unimplemented, CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetHardwareSlot) + ( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the version of this slot's hardware. + * This routine is optional; if unimplemented, the Framework + * will assume a hardware version of 0.1. + */ + CK_VERSION(PR_CALLBACK *GetHardwareVersion) + ( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the version of this slot's firmware. + * This routine is optional; if unimplemented, the Framework + * will assume a hardware version of 0.1. + */ + CK_VERSION(PR_CALLBACK *GetFirmwareVersion) + ( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine should return a pointer to an NSSCKMDToken + * object corresponding to the token in the specified slot. + * The NSSCKFWToken object passed in has an NSSArena + * available which is dedicated for this token. This routine + * must be implemented. This routine may return NULL upon + * error. + */ + NSSCKMDToken *(PR_CALLBACK *GetToken)( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDToken + * + * This is the basic handle for a PKCS#11 Token. It is created by + * the NSSCKMDSlot->GetToken call, and may be obtained from the + * Framework's corresponding NSSCKFWToken object. It contains a + * pointer for use by the Module, to store any token-related + * data, and it contains the EPV for a set of routines which the + * Module may implement for use by the Framework. Some of these + * routines are optional. + */ + +struct NSSCKMDTokenStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is used to prepare a Module token object for + * use. It is called after the NSSCKMDToken object is obtained + * from NSSCKMDSlot->GetToken. It is named "Setup" here because + * Cryptoki already defines "InitToken" to do the process of + * wiping out any existing state on a token and preparing it for + * a new use. This routine is optional; if unimplemented, it + * merely won't be called. + */ + CK_RV(PR_CALLBACK *Setup) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine is called by the Framework whenever it notices + * that the token object is invalid. (Typically this is when a + * routine indicates an error such as CKR_DEVICE_REMOVED). This + * call is the last thing called before the NSSArena in the + * corresponding NSSCKFWToken is destroyed. This routine is + * optional; if unimplemented, it merely won't be called. + */ + void(PR_CALLBACK *Invalidate)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine initialises the token in the specified slot. + * This routine is optional; if unimplemented, the Framework + * will fail this operation with an error of CKR_DEVICE_ERROR. + */ + + CK_RV(PR_CALLBACK *InitToken) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *pin, + NSSUTF8 *label); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing this token's label. Only the characters + * completely encoded in the first thirty-two bytes are + * significant. This routine is optional. The string + * returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetLabel)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing this token's manufacturer ID. Only the characters + * completely encoded in the first thirty-two bytes are + * significant. This routine is optional. The string + * returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetManufacturerID)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing this token's model name. Only the characters + * completely encoded in the first thirty-two bytes are + * significant. This routine is optional. The string + * returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetModel)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns a pointer to a UTF8-encoded string + * containing this token's serial number. Only the characters + * completely encoded in the first thirty-two bytes are + * significant. This routine is optional. The string + * returned is never freed; if dynamically generated, + * the space for it should be allocated from the NSSArena + * that may be obtained from the NSSCKFWInstance. This + * routine may return NULL upon error; however if *pError + * is CKR_OK, the NULL will be considered the valid response. + */ + NSSUTF8 *(PR_CALLBACK *GetSerialNumber)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns CK_TRUE if the token has its own + * random number generator. This routine is optional; if + * unimplemented, CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetHasRNG) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if this token is write-protected. + * This routine is optional; if unimplemented, CK_FALSE is + * assumed. + */ + CK_BBOOL(PR_CALLBACK *GetIsWriteProtected) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if this token requires a login. + * This routine is optional; if unimplemented, CK_FALSE is + * assumed. + */ + CK_BBOOL(PR_CALLBACK *GetLoginRequired) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if the normal user's PIN on this + * token has been initialised. This routine is optional; if + * unimplemented, CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetUserPinInitialized) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if a successful save of a + * session's cryptographic operations state ~always~ contains + * all keys needed to restore the state of the session. This + * routine is optional; if unimplemented, CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetRestoreKeyNotNeeded) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if the token has its own + * hardware clock. This routine is optional; if unimplemented, + * CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetHasClockOnToken) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if the token has a protected + * authentication path. This routine is optional; if + * unimplemented, CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetHasProtectedAuthenticationPath) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns CK_TRUE if the token supports dual + * cryptographic operations within a single session. This + * routine is optional; if unimplemented, CK_FALSE is assumed. + */ + CK_BBOOL(PR_CALLBACK *GetSupportsDualCryptoOperations) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * XXX fgmr-- should we have a call to return all the flags + * at once, for folks who already know about Cryptoki? + */ + + /* + * This routine returns the maximum number of sessions that + * may be opened on this token. This routine is optional; + * if unimplemented, the special value CK_UNAVAILABLE_INFORMATION + * is assumed. XXX fgmr-- or CK_EFFECTIVELY_INFINITE? + */ + CK_ULONG(PR_CALLBACK *GetMaxSessionCount) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the maximum number of read/write + * sesisons that may be opened on this token. This routine + * is optional; if unimplemented, the special value + * CK_UNAVAILABLE_INFORMATION is assumed. XXX fgmr-- or + * CK_EFFECTIVELY_INFINITE? + */ + CK_ULONG(PR_CALLBACK *GetMaxRwSessionCount) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the maximum PIN code length that is + * supported on this token. This routine is optional; + * if unimplemented, the special value CK_UNAVAILABLE_INFORMATION + * is assumed. + */ + CK_ULONG(PR_CALLBACK *GetMaxPinLen) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the minimum PIN code length that is + * supported on this token. This routine is optional; if + * unimplemented, the special value CK_UNAVAILABLE_INFORMATION + * is assumed. XXX fgmr-- or 0? + */ + CK_ULONG(PR_CALLBACK *GetMinPinLen) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the total amount of memory on the token + * in which public objects may be stored. This routine is + * optional; if unimplemented, the special value + * CK_UNAVAILABLE_INFORMATION is assumed. + */ + CK_ULONG(PR_CALLBACK *GetTotalPublicMemory) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the amount of unused memory on the + * token in which public objects may be stored. This routine + * is optional; if unimplemented, the special value + * CK_UNAVAILABLE_INFORMATION is assumed. + */ + CK_ULONG(PR_CALLBACK *GetFreePublicMemory) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the total amount of memory on the token + * in which private objects may be stored. This routine is + * optional; if unimplemented, the special value + * CK_UNAVAILABLE_INFORMATION is assumed. + */ + CK_ULONG(PR_CALLBACK *GetTotalPrivateMemory) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the amount of unused memory on the + * token in which private objects may be stored. This routine + * is optional; if unimplemented, the special value + * CK_UNAVAILABLE_INFORMATION is assumed. + */ + CK_ULONG(PR_CALLBACK *GetFreePrivateMemory) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the version number of this token's + * hardware. This routine is optional; if unimplemented, + * the value 0.1 is assumed. + */ + CK_VERSION(PR_CALLBACK *GetHardwareVersion) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the version number of this token's + * firmware. This routine is optional; if unimplemented, + * the value 0.1 is assumed. + */ + CK_VERSION(PR_CALLBACK *GetFirmwareVersion) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine stuffs the current UTC time, as obtained from + * the token, into the sixteen-byte buffer in the form + * YYYYMMDDhhmmss00. This routine need only be implemented + * by token which indicate that they have a real-time clock. + * XXX fgmr-- think about time formats. + */ + CK_RV(PR_CALLBACK *GetUTCTime) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_CHAR utcTime[16]); + + /* + * This routine creates a session on the token, and returns + * the corresponding NSSCKMDSession object. The value of + * rw will be CK_TRUE if the session is to be a read/write + * session, or CK_FALSE otherwise. An NSSArena dedicated to + * the new session is available from the specified NSSCKFWSession. + * This routine may return NULL upon error. + */ + NSSCKMDSession *(PR_CALLBACK *OpenSession)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_BBOOL rw, + CK_RV *pError); + + /* + * This routine returns the number of PKCS#11 Mechanisms + * supported by this token. This routine is optional; if + * unimplemented, zero is assumed. + */ + CK_ULONG(PR_CALLBACK *GetMechanismCount) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine stuffs into the specified array the types + * of the mechanisms supported by this token. The Framework + * determines the size of the array by calling GetMechanismCount. + */ + CK_RV(PR_CALLBACK *GetMechanismTypes) + ( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_MECHANISM_TYPE types[]); + + /* + * This routine returns a pointer to a Module mechanism + * object corresponding to a specified type. This routine + * need only exist for tokens implementing at least one + * mechanism. + */ + NSSCKMDMechanism *(PR_CALLBACK *GetMechanism)( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_MECHANISM_TYPE which, + CK_RV *pError); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDSession + * + * This is the basic handle for a session on a PKCS#11 Token. It + * is created by NSSCKMDToken->OpenSession, and may be obtained + * from the Framework's corresponding NSSCKFWSession object. It + * contains a pointer for use by the Module, to store any session- + * realted data, and it contains the EPV for a set of routines + * which the Module may implement for use by the Framework. Some + * of these routines are optional. + */ + +struct NSSCKMDSessionStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is called by the Framework when a session is + * closed. This call is the last thing called before the + * NSSArena in the correspoinding NSSCKFWSession is destroyed. + * This routine is optional; if unimplemented, it merely won't + * be called. + */ + void(PR_CALLBACK *Close)( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine is used to get any device-specific error. + * This routine is optional. + */ + CK_ULONG(PR_CALLBACK *GetDeviceError) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine is used to log in a user to the token. This + * routine is optional, since the Framework's NSSCKFWSession + * object keeps track of the login state. + */ + CK_RV(PR_CALLBACK *Login) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_USER_TYPE userType, + NSSItem *pin, + CK_STATE oldState, + CK_STATE newState); + + /* + * This routine is used to log out a user from the token. This + * routine is optional, since the Framework's NSSCKFWSession + * object keeps track of the login state. + */ + CK_RV(PR_CALLBACK *Logout) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_STATE oldState, + CK_STATE newState); + + /* + * This routine is used to initialize the normal user's PIN or + * password. This will only be called in the "read/write + * security officer functions" state. If this token has a + * protected authentication path, then the pin argument will + * be NULL. This routine is optional; if unimplemented, the + * Framework will return the error CKR_TOKEN_WRITE_PROTECTED. + */ + CK_RV(PR_CALLBACK *InitPIN) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *pin); + + /* + * This routine is used to modify a user's PIN or password. This + * routine will only be called in the "read/write security officer + * functions" or "read/write user functions" state. If this token + * has a protected authentication path, then the pin arguments + * will be NULL. This routine is optional; if unimplemented, the + * Framework will return the error CKR_TOKEN_WRITE_PROTECTED. + */ + CK_RV(PR_CALLBACK *SetPIN) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *oldPin, + NSSItem *newPin); + + /* + * This routine is used to find out how much space would be required + * to save the current operational state. This routine is optional; + * if unimplemented, the Framework will reject any attempts to save + * the operational state with the error CKR_STATE_UNSAVEABLE. This + * routine may return zero on error. + */ + CK_ULONG(PR_CALLBACK *GetOperationStateLen) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine is used to store the current operational state. This + * routine is only required if GetOperationStateLen is implemented + * and can return a nonzero value. The buffer in the specified item + * will be pre-allocated, and the length will specify the amount of + * space available (which may be more than GetOperationStateLen + * asked for, but which will not be smaller). + */ + CK_RV(PR_CALLBACK *GetOperationState) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *buffer); + + /* + * This routine is used to restore an operational state previously + * obtained with GetOperationState. The Framework will take pains + * to be sure that the state is (or was at one point) valid; if the + * Module notices that the state is invalid, it should return an + * error, but it is not required to be paranoid about the issue. + * [XXX fgmr-- should (can?) the framework verify the keys match up?] + * This routine is required only if GetOperationState is implemented. + */ + CK_RV(PR_CALLBACK *SetOperationState) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *state, + NSSCKMDObject *mdEncryptionKey, + NSSCKFWObject *fwEncryptionKey, + NSSCKMDObject *mdAuthenticationKey, + NSSCKFWObject *fwAuthenticationKey); + + /* + * This routine is used to create an object. The specified template + * will only specify a session object if the Module has indicated + * that it wishes to handle its own session objects. This routine + * is optional; if unimplemented, the Framework will reject the + * operation with the error CKR_TOKEN_WRITE_PROTECTED. Space for + * token objects should come from the NSSArena available from the + * NSSCKFWToken object; space for session objects (if supported) + * should come from the NSSArena available from the NSSCKFWSession + * object. The appropriate NSSArena pointer will, as a convenience, + * be passed as the handyArenaPointer argument. This routine may + * return NULL upon error. + */ + NSSCKMDObject *(PR_CALLBACK *CreateObject)( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *handyArenaPointer, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + + /* + * This routine is used to make a copy of an object. It is entirely + * optional; if unimplemented, the Framework will try to use + * CreateObject instead. If the Module has indicated that it does + * not wish to handle session objects, then this routine will only + * be called to copy a token object to another token object. + * Otherwise, either the original object or the new may be of + * either the token or session variety. As with CreateObject, the + * handyArenaPointer will point to the appropriate arena for the + * new object. This routine may return NULL upon error. + */ + NSSCKMDObject *(PR_CALLBACK *CopyObject)( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdOldObject, + NSSCKFWObject *fwOldObject, + NSSArena *handyArenaPointer, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + + /* + * This routine is used to begin an object search. This routine may + * be unimplemented only if the Module does not handle session + * objects, and if none of its tokens have token objects. The + * NSSCKFWFindObjects pointer has an NSSArena that may be used for + * storage for the life of this "find" operation. This routine may + * return NULL upon error. If the Module can determine immediately + * that the search will not find any matching objects, it may return + * NULL, and specify CKR_OK as the error. + */ + NSSCKMDFindObjects *(PR_CALLBACK *FindObjectsInit)( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + + /* + * This routine seeds the random-number generator. It is + * optional, even if GetRandom is implemented. If unimplemented, + * the Framework will issue the error CKR_RANDOM_SEED_NOT_SUPPORTED. + */ + CK_RV(PR_CALLBACK *SeedRandom) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *seed); + + /* + * This routine gets random data. It is optional. If unimplemented, + * the Framework will issue the error CKR_RANDOM_NO_RNG. + */ + CK_RV(PR_CALLBACK *GetRandom) + ( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *buffer); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDFindObjects + * + * This is the basic handle for an object search. It is + * created by NSSCKMDSession->FindObjectsInit, and may be + * obtained from the Framework's corresponding object. + * It contains a pointer for use by the Module, to store + * any search-related data, and it contains the EPV for a + * set of routines which the Module may implement for use + * by the Framework. Some of these routines are optional. + */ + +struct NSSCKMDFindObjectsStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is called by the Framework to finish a + * search operation. Note that the Framework may finish + * a search before it has completed. This routine is + * optional; if unimplemented, it merely won't be called. + */ + void(PR_CALLBACK *Final)( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine is used to obtain another pointer to an + * object matching the search criteria. This routine is + * required. If no (more) objects match the search, it + * should return NULL and set the error to CKR_OK. + */ + NSSCKMDObject *(PR_CALLBACK *Next)( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDCryptoOperaion + * + * This is the basic handle for an encryption, decryption, + * sign, verify, or hash opertion. + * created by NSSCKMDMechanism->XXXXInit, and may be + * obtained from the Framework's corresponding object. + * It contains a pointer for use by the Module, to store + * any intermediate data, and it contains the EPV for a + * set of routines which the Module may implement for use + * by the Framework. Some of these routines are optional. + */ + +struct NSSCKMDCryptoOperationStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is called by the Framework clean up the mdCryptoOperation + * structure. + * This routine is optional; if unimplemented, it will be ignored. + */ + void(PR_CALLBACK *Destroy)( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * how many bytes do we need to finish this buffer? + * must be implemented if Final is implemented. + */ + CK_ULONG(PR_CALLBACK *GetFinalLength) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * how many bytes do we need to complete the next operation. + * used in both Update and UpdateFinal. + */ + CK_ULONG(PR_CALLBACK *GetOperationLength) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *inputBuffer, + CK_RV *pError); + + /* + * This routine is called by the Framework to finish a + * search operation. Note that the Framework may finish + * a search before it has completed. This routine is + * optional; if unimplemented, it merely won't be called. + * The respective final call with fail with CKR_FUNCTION_FAILED + * Final should not free the mdCryptoOperation. + */ + CK_RV(PR_CALLBACK *Final) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSItem *outputBuffer); + + /* + * This routine is called by the Framework to complete the + * next step in an encryption/decryption operation. + * This routine is optional; if unimplemented, the respective + * update call with fail with CKR_FUNCTION_FAILED. + * Update should not be implemented for signing/verification/digest + * mechanisms. + */ + CK_RV(PR_CALLBACK *Update) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *inputBuffer, + NSSItem *outputBuffer); + + /* + * This routine is called by the Framework to complete the + * next step in a signing/verification/digest operation. + * This routine is optional; if unimplemented, the respective + * update call with fail with CKR_FUNCTION_FAILED + * Update should not be implemented for encryption/decryption + * mechanisms. + */ + CK_RV(PR_CALLBACK *DigestUpdate) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *inputBuffer); + + /* + * This routine is called by the Framework to complete a + * single step operation. This routine is optional; if unimplemented, + * the framework will use the Update and Final functions to complete + * the operation. + */ + CK_RV(PR_CALLBACK *UpdateFinal) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *inputBuffer, + NSSItem *outputBuffer); + + /* + * This routine is called by the Framework to complete next + * step in a combined operation. The Decrypt/Encrypt mechanism + * should define and drive the combo step. + * This routine is optional; if unimplemented, + * the framework will use the appropriate Update functions to complete + * the operation. + */ + CK_RV(PR_CALLBACK *UpdateCombo) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDCryptoOperation *mdPeerCryptoOperation, + NSSCKFWCryptoOperation *fwPeerCryptoOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *inputBuffer, + NSSItem *outputBuffer); + + /* + * Hash a key directly into the digest + */ + CK_RV(PR_CALLBACK *DigestKey) + ( + NSSCKMDCryptoOperation *mdCryptoOperation, + NSSCKFWCryptoOperation *fwCryptoOperation, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDMechanism + * + */ + +struct NSSCKMDMechanismStr { + /* + * The Module may use this pointer for its own purposes. + */ + void *etc; + + /* + * This also frees the fwMechanism if appropriate. + * If it is not supplied, the Framework will assume that the Token + * Manages a static list of mechanisms and the function will not be called. + */ + void(PR_CALLBACK *Destroy)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the minimum key size allowed for + * this mechanism. This routine is optional; if unimplemented, + * zero will be assumed. This routine may return zero on + * error; if the error is CKR_OK, zero will be accepted as + * a valid response. + */ + CK_ULONG(PR_CALLBACK *GetMinKeySize) + ( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine returns the maximum key size allowed for + * this mechanism. This routine is optional; if unimplemented, + * zero will be assumed. This routine may return zero on + * error; if the error is CKR_OK, zero will be accepted as + * a valid response. + */ + CK_ULONG(PR_CALLBACK *GetMaxKeySize) + ( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine is called to determine if the mechanism is + * implemented in hardware or software. It returns CK_TRUE + * if it is done in hardware. + */ + CK_BBOOL(PR_CALLBACK *GetInHardware) + ( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * The crypto routines themselves. Most crypto operations may + * be performed in two ways, streaming and single-part. The + * streaming operations involve the use of (typically) three + * calls-- an Init method to set up the operation, an Update + * method to feed data to the operation, and a Final method to + * obtain the final result. Single-part operations involve + * one method, to perform the crypto operation all at once. + * + * The NSS Cryptoki Framework can implement the single-part + * operations in terms of the streaming operations on behalf + * of the Module. There are a few variances. + * + * Only the Init Functions are defined by the mechanism. Each + * init function will return a NSSCKFWCryptoOperation which + * can supply update, final, the single part updateFinal, and + * the combo updateCombo functions. + * + * For simplicity, the routines are listed in summary here: + * + * EncryptInit, + * DecryptInit, + * DigestInit, + * SignInit, + * SignRecoverInit; + * VerifyInit, + * VerifyRecoverInit; + * + * The key-management routines are + * + * GenerateKey + * GenerateKeyPair + * WrapKey + * UnwrapKey + * DeriveKey + * + * All of these routines based on the Cryptoki API; + * see PKCS#11 for further information. + */ + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *EncryptInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError); + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *DecryptInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError); + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *DigestInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *SignInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError); + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *VerifyInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError); + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *SignRecoverInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError); + + /* + */ + NSSCKMDCryptoOperation *(PR_CALLBACK *VerifyRecoverInit)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError); + + /* + * Key management operations. + */ + + /* + * This routine generates a key. This routine may return NULL + * upon error. + */ + NSSCKMDObject *(PR_CALLBACK *GenerateKey)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + + /* + * This routine generates a key pair. + */ + CK_RV(PR_CALLBACK *GenerateKeyPair) + ( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + NSSCKMDObject **pPublicKey, + NSSCKMDObject **pPrivateKey); + + /* + * This routine wraps a key. + */ + CK_ULONG(PR_CALLBACK *GetWrapKeyLength) + ( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdWrappingKey, + NSSCKFWObject *fwWrappingKey, + NSSCKMDObject *mdWrappedKey, + NSSCKFWObject *fwWrappedKey, + CK_RV *pError); + + /* + * This routine wraps a key. + */ + CK_RV(PR_CALLBACK *WrapKey) + ( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdWrappingKey, + NSSCKFWObject *fwWrappingKey, + NSSCKMDObject *mdKeyObject, + NSSCKFWObject *fwKeyObject, + NSSItem *wrappedKey); + + /* + * This routine unwraps a key. This routine may return NULL + * upon error. + */ + NSSCKMDObject *(PR_CALLBACK *UnwrapKey)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdWrappingKey, + NSSCKFWObject *fwWrappingKey, + NSSItem *wrappedKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + + /* + * This routine derives a key. This routine may return NULL + * upon error. + */ + NSSCKMDObject *(PR_CALLBACK *DeriveKey)( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM_PTR pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdBaseKey, + NSSCKFWObject *fwBaseKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +/* + * NSSCKMDObject + * + * This is the basic handle for any object used by a PKCS#11 Module. + * Modules must implement it if they support their own objects, and + * the Framework supports it for Modules that do not handle session + * objects. This type contains a pointer for use by the implementor, + * to store any object-specific data, and it contains an EPV for a + * set of routines used to access the object. + */ + +struct NSSCKMDObjectStr { + /* + * The implementation my use this pointer for its own purposes. + */ + void *etc; + + /* + * This routine is called by the Framework when it is letting + * go of an object handle. It can be used by the Module to + * free any resources tied up by an object "in use." It is + * optional. + */ + void(PR_CALLBACK *Finalize)( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine is used to completely destroy an object. + * It is optional. The parameter fwObject might be NULL + * if the framework runs out of memory at the wrong moment. + */ + CK_RV(PR_CALLBACK *Destroy) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This helper routine is used by the Framework, and is especially + * useful when it is managing session objects on behalf of the + * Module. This routine is optional; if unimplemented, the + * Framework will actually look up the CKA_TOKEN attribute. In the + * event of an error, just make something up-- the Framework will + * find out soon enough anyway. + */ + CK_BBOOL(PR_CALLBACK *IsTokenObject) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + + /* + * This routine returns the number of attributes of which this + * object consists. It is mandatory. It can return zero on + * error. + */ + CK_ULONG(PR_CALLBACK *GetAttributeCount) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This routine stuffs the attribute types into the provided array. + * The array size (as obtained from GetAttributeCount) is passed in + * as a check; return CKR_BUFFER_TOO_SMALL if the count is wrong + * (either too big or too small). + */ + CK_RV(PR_CALLBACK *GetAttributeTypes) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount); + + /* + * This routine returns the size (in bytes) of the specified + * attribute. It can return zero on error. + */ + CK_ULONG(PR_CALLBACK *GetAttributeSize) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError); + + /* + * This routine returns an NSSCKFWItem structure. + * The item pointer points to an NSSItem containing the attribute value. + * The needsFreeing bit tells the framework whether to call the + * FreeAttribute function . Upon error, an NSSCKFWItem structure + * with a NULL NSSItem item pointer will be returned + */ + NSSCKFWItem(PR_CALLBACK *GetAttribute)( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError); + + /* + * This routine returns CKR_OK if the attribute could be freed. + */ + CK_RV(PR_CALLBACK *FreeAttribute) + ( + NSSCKFWItem *item); + + /* + * This routine changes the specified attribute. If unimplemented, + * the object will be considered read-only. + */ + CK_RV(PR_CALLBACK *SetAttribute) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value); + + /* + * This routine returns the storage requirements of this object, + * in bytes. Cryptoki doesn't strictly define the definition, + * but it should relate to the values returned by the "Get Memory" + * routines of the NSSCKMDToken. This routine is optional; if + * unimplemented, the Framework will consider this information + * sensitive. This routine may return zero on error. If the + * specified error is CKR_OK, zero will be accepted as a valid + * response. + */ + CK_ULONG(PR_CALLBACK *GetObjectSize) + ( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + + /* + * This object may be extended in future versions of the + * NSS Cryptoki Framework. To allow for some flexibility + * in the area of binary compatibility, this field should + * be NULL. + */ + void *null; +}; + +#endif /* NSSCKMDT_H */ diff --git a/security/nss/lib/ckfw/nssckt.h b/security/nss/lib/ckfw/nssckt.h new file mode 100644 index 000000000..b50a88f7b --- /dev/null +++ b/security/nss/lib/ckfw/nssckt.h @@ -0,0 +1,12 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#ifndef _NSSCKT_H_ +#define _NSSCKT_H_ 1 + +#include "pkcs11t.h" + +typedef CK_ATTRIBUTE_TYPE CK_PTR CK_ATTRIBUTE_TYPE_PTR; +#define CK_ENTRY + +#endif /* _NSSCKT_H_ */ diff --git a/security/nss/lib/ckfw/nssmkey/Makefile b/security/nss/lib/ckfw/nssmkey/Makefile new file mode 100644 index 000000000..e630e84b0 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/Makefile @@ -0,0 +1,72 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +include manifest.mn +include $(CORE_DEPTH)/coreconf/config.mk +include config.mk + +EXTRA_LIBS = \ + $(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \ + $(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \ + $(NULL) + +# can't do this in manifest.mn because OS_TARGET isn't defined there. +ifeq (,$(filter-out WIN%,$(OS_TARGET))) + +ifdef NS_USE_GCC +EXTRA_LIBS += \ + -L$(NSPR_LIB_DIR) \ + -lplc4 \ + -lplds4 \ + -lnspr4 \ + $(NULL) +else +EXTRA_SHARED_LIBS += \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.lib \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.lib \ + $(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4.lib \ + $(NULL) +endif # NS_USE_GCC +else + +EXTRA_LIBS += \ + -L$(NSPR_LIB_DIR) \ + -lplc4 \ + -lplds4 \ + -lnspr4 \ + -framework Security \ + -framework CoreServices \ + $(NULL) +endif + + +include $(CORE_DEPTH)/coreconf/rules.mk + +# Generate certdata.c. +generate: + perl certdata.perl < certdata.txt + +# This'll need some help from a build person. + + +ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.1) +DSO_LDOPTS = -bM:SRE -bh:4 -bnoentry +EXTRA_DSO_LDOPTS = -lc +MKSHLIB = xlC $(DSO_LDOPTS) + +$(SHARED_LIBRARY): $(OBJS) + @$(MAKE_OBJDIR) + rm -f $@ + $(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DSO_LDOPTS) + chmod +x $@ + +endif + +ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.2) +LD += -G +endif + + diff --git a/security/nss/lib/ckfw/nssmkey/README b/security/nss/lib/ckfw/nssmkey/README new file mode 100644 index 000000000..c060d9c3c --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/README @@ -0,0 +1,21 @@ +This Cryptoki module provides acces to certs and keys stored in +Macintosh key Ring. + +- It does not yet export PKCS #12 keys. To get this to work should be + implemented using exporting the key object in PKCS #8 wrapped format. + PSM work needs to happen before this can be completed. +- It does not import or export CA Root trust from the mac keychain. +- It does not handle S/MIME objects (pkcs #7 in mac keychain terms?). +- The AuthRoots don't show up on the default list. +- Only RSA keys are supported currently. + +There are a number of things that have not been tested that other PKCS #11 +apps may need: +- reading Modulus and Public Exponents from private keys and public keys. +- storing public keys. +- setting attributes other than CKA_ID and CKA_LABEL. + +Other TODOs: +- Check for and plug memory leaks. +- Need to map mac errors into something more intellegible than + CKR_GENERAL_ERROR. diff --git a/security/nss/lib/ckfw/nssmkey/ckmk.h b/security/nss/lib/ckfw/nssmkey/ckmk.h new file mode 100644 index 000000000..4f3ab82d7 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/ckmk.h @@ -0,0 +1,182 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKMK_H +#define CKMK_H 1 + +#include <Security/SecKeychainSearch.h> +#include <Security/SecKeychainItem.h> +#include <Security/SecKeychain.h> +#include <Security/cssmtype.h> +#include <Security/cssmapi.h> +#include <Security/SecKey.h> +#include <Security/SecCertificate.h> + +#define NTO + +#include "nssckmdt.h" +#include "nssckfw.h" +/* + * I'm including this for access to the arena functions. + * Looks like we should publish that API. + */ +#ifndef BASE_H +#include "base.h" +#endif /* BASE_H */ +/* + * This is where the Netscape extensions live, at least for now. + */ +#ifndef CKT_H +#include "ckt.h" +#endif /* CKT_H */ + +/* + * statically defined raw objects. Allows us to data description objects + * to this PKCS #11 module. + */ +struct ckmkRawObjectStr { + CK_ULONG n; + const CK_ATTRIBUTE_TYPE *types; + const NSSItem *items; +}; +typedef struct ckmkRawObjectStr ckmkRawObject; + +/* + * Key/Cert Items + */ +struct ckmkItemObjectStr { + SecKeychainItemRef itemRef; + SecItemClass itemClass; + PRBool hasID; + NSSItem modify; + NSSItem private; + NSSItem encrypt; + NSSItem decrypt; + NSSItem derive; + NSSItem sign; + NSSItem signRecover; + NSSItem verify; + NSSItem verifyRecover; + NSSItem wrap; + NSSItem unwrap; + NSSItem label; + NSSItem subject; + NSSItem issuer; + NSSItem serial; + NSSItem derCert; + NSSItem id; + NSSItem modulus; + NSSItem exponent; + NSSItem privateExponent; + NSSItem prime1; + NSSItem prime2; + NSSItem exponent1; + NSSItem exponent2; + NSSItem coefficient; +}; +typedef struct ckmkItemObjectStr ckmkItemObject; + +typedef enum { + ckmkRaw, + ckmkItem, +} ckmkObjectType; + +/* + * all the various types of objects are abstracted away in cobject and + * cfind as ckmkInternalObjects. + */ +struct ckmkInternalObjectStr { + ckmkObjectType type; + union { + ckmkRawObject raw; + ckmkItemObject item; + } u; + CK_OBJECT_CLASS objClass; + NSSItem hashKey; + unsigned char hashKeyData[128]; + NSSCKMDObject mdObject; +}; +typedef struct ckmkInternalObjectStr ckmkInternalObject; + +/* our raw object data array */ +NSS_EXTERN_DATA ckmkInternalObject nss_ckmk_data[]; +NSS_EXTERN_DATA const PRUint32 nss_ckmk_nObjects; + +NSS_EXTERN_DATA const CK_VERSION nss_ckmk_CryptokiVersion; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_ManufacturerID; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_LibraryDescription; +NSS_EXTERN_DATA const CK_VERSION nss_ckmk_LibraryVersion; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_SlotDescription; +NSS_EXTERN_DATA const CK_VERSION nss_ckmk_HardwareVersion; +NSS_EXTERN_DATA const CK_VERSION nss_ckmk_FirmwareVersion; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenLabel; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenModel; +NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenSerialNumber; + +NSS_EXTERN_DATA const NSSCKMDInstance nss_ckmk_mdInstance; +NSS_EXTERN_DATA const NSSCKMDSlot nss_ckmk_mdSlot; +NSS_EXTERN_DATA const NSSCKMDToken nss_ckmk_mdToken; +NSS_EXTERN_DATA const NSSCKMDMechanism nss_ckmk_mdMechanismRSA; + +NSS_EXTERN NSSCKMDSession * +nss_ckmk_CreateSession( + NSSCKFWSession *fwSession, + CK_RV *pError); + +NSS_EXTERN NSSCKMDFindObjects * +nss_ckmk_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +/* + * Object Utilities + */ +NSS_EXTERN NSSCKMDObject * +nss_ckmk_CreateMDObject( + NSSArena *arena, + ckmkInternalObject *io, + CK_RV *pError); + +NSS_EXTERN NSSCKMDObject * +nss_ckmk_CreateObject( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError); + +NSS_EXTERN const NSSItem * +nss_ckmk_FetchAttribute( + ckmkInternalObject *io, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError); + +NSS_EXTERN void +nss_ckmk_DestroyInternalObject( + ckmkInternalObject *io); + +unsigned char * +nss_ckmk_DERUnwrap( + unsigned char *src, + int size, + int *outSize, + unsigned char **next); + +CK_ULONG +nss_ckmk_GetULongAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_RV *pError); + +#define NSS_CKMK_ARRAY_SIZE(x) ((sizeof(x)) / (sizeof((x)[0]))) + +#ifdef DEBUG +#define CKMK_MACERR(str, err) cssmPerror(str, err) +#else +#define CKMK_MACERR(str, err) +#endif + +#endif diff --git a/security/nss/lib/ckfw/nssmkey/ckmkver.c b/security/nss/lib/ckfw/nssmkey/ckmkver.c new file mode 100644 index 000000000..2b99f1e22 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/ckmkver.c @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +/* Library identity and versioning */ + +#include "nssmkey.h" + +#if defined(DEBUG) +#define _DEBUG_STRING " (debug)" +#else +#define _DEBUG_STRING "" +#endif + +/* + * Version information + */ +const char __nss_ckmk_version[] = "Version: NSS Access to the MAC OS X Key Ring " NSS_CKMK_LIBRARY_VERSION _DEBUG_STRING; diff --git a/security/nss/lib/ckfw/nssmkey/config.mk b/security/nss/lib/ckfw/nssmkey/config.mk new file mode 100644 index 000000000..709691067 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/config.mk @@ -0,0 +1,24 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +ifdef BUILD_IDG +DEFINES += -DNSSDEBUG +endif + +ifdef NS_USE_CKFW_TRACE +DEFINES += -DTRACE +endif + +# +# Override TARGETS variable so that only static libraries +# are specifed as dependencies within rules.mk. +# + +TARGETS = $(LIBRARY) +SHARED_LIBRARY = +IMPORT_LIBRARY = +PROGRAM = + + diff --git a/security/nss/lib/ckfw/nssmkey/manchor.c b/security/nss/lib/ckfw/nssmkey/manchor.c new file mode 100644 index 000000000..3b8bc2dbb --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/manchor.c @@ -0,0 +1,17 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * nssmkey/manchor.c + * + * This file "anchors" the actual cryptoki entry points in this module's + * shared library, which is required for dynamic loading. See the + * comments in nssck.api for more information. + */ + +#include "ckmk.h" + +#define MODULE_NAME ckmk +#define INSTANCE_NAME (NSSCKMDInstance *)&nss_ckmk_mdInstance +#include "nssck.api" diff --git a/security/nss/lib/ckfw/nssmkey/manifest.mn b/security/nss/lib/ckfw/nssmkey/manifest.mn new file mode 100644 index 000000000..036d9bc3f --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/manifest.mn @@ -0,0 +1,33 @@ +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +CORE_DEPTH = ../../../.. + +MODULE = nss +MAPFILE = $(OBJDIR)/nssmkey.def + +EXPORTS = \ + nssmkey.h \ + $(NULL) + +CSRCS = \ + manchor.c \ + mconstants.c \ + mfind.c \ + minst.c \ + mobject.c \ + mrsa.c \ + msession.c \ + mslot.c \ + mtoken.c \ + ckmkver.c \ + staticobj.c \ + $(NULL) + +REQUIRES = nspr + +LIBRARY_NAME = nssmkey + +#EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -lplc4 -lplds4 diff --git a/security/nss/lib/ckfw/nssmkey/mconstants.c b/security/nss/lib/ckfw/nssmkey/mconstants.c new file mode 100644 index 000000000..c26298ada --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/mconstants.c @@ -0,0 +1,61 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * nssmkey/constants.c + * + * Identification and other constants, all collected here in one place. + */ + +#ifndef NSSBASET_H +#include "nssbaset.h" +#endif /* NSSBASET_H */ + +#ifndef NSSCKT_H +#include "nssckt.h" +#endif /* NSSCKT_H */ + +#include "nssmkey.h" + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckmk_CryptokiVersion = { + NSS_CKMK_CRYPTOKI_VERSION_MAJOR, + NSS_CKMK_CRYPTOKI_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckmk_ManufacturerID = (NSSUTF8 *)"Mozilla Foundation"; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckmk_LibraryDescription = (NSSUTF8 *)"NSS Access to Mac OS X Key Ring"; + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckmk_LibraryVersion = { + NSS_CKMK_LIBRARY_VERSION_MAJOR, + NSS_CKMK_LIBRARY_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckmk_SlotDescription = (NSSUTF8 *)"Mac OS X Key Ring"; + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckmk_HardwareVersion = { + NSS_CKMK_HARDWARE_VERSION_MAJOR, + NSS_CKMK_HARDWARE_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const CK_VERSION + nss_ckmk_FirmwareVersion = { + NSS_CKMK_FIRMWARE_VERSION_MAJOR, + NSS_CKMK_FIRMWARE_VERSION_MINOR + }; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckmk_TokenLabel = (NSSUTF8 *)"Mac OS X Key Ring"; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckmk_TokenModel = (NSSUTF8 *)"1"; + +NSS_IMPLEMENT_DATA const NSSUTF8 * + nss_ckmk_TokenSerialNumber = (NSSUTF8 *)"1"; diff --git a/security/nss/lib/ckfw/nssmkey/mfind.c b/security/nss/lib/ckfw/nssmkey/mfind.c new file mode 100644 index 000000000..d193a8de7 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/mfind.c @@ -0,0 +1,352 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKMK_H +#include "ckmk.h" +#endif /* CKMK_H */ + +/* + * nssmkey/mfind.c + * + * This file implements the NSSCKMDFindObjects object for the + * "nssmkey" cryptoki module. + */ + +struct ckmkFOStr { + NSSArena *arena; + CK_ULONG n; + CK_ULONG i; + ckmkInternalObject **objs; +}; + +static void +ckmk_mdFindObjects_Final( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + struct ckmkFOStr *fo = (struct ckmkFOStr *)mdFindObjects->etc; + NSSArena *arena = fo->arena; + PRUint32 i; + + /* walk down an free the unused 'objs' */ + for (i = fo->i; i < fo->n; i++) { + nss_ckmk_DestroyInternalObject(fo->objs[i]); + } + + nss_ZFreeIf(fo->objs); + nss_ZFreeIf(fo); + nss_ZFreeIf(mdFindObjects); + if ((NSSArena *)NULL != arena) { + NSSArena_Destroy(arena); + } + + return; +} + +static NSSCKMDObject * +ckmk_mdFindObjects_Next( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + struct ckmkFOStr *fo = (struct ckmkFOStr *)mdFindObjects->etc; + ckmkInternalObject *io; + + if (fo->i == fo->n) { + *pError = CKR_OK; + return (NSSCKMDObject *)NULL; + } + + io = fo->objs[fo->i]; + fo->i++; + + return nss_ckmk_CreateMDObject(arena, io, pError); +} + +static CK_BBOOL +ckmk_attrmatch( + CK_ATTRIBUTE_PTR a, + ckmkInternalObject *o) +{ + PRBool prb; + const NSSItem *b; + CK_RV error; + + b = nss_ckmk_FetchAttribute(o, a->type, &error); + if (b == NULL) { + return CK_FALSE; + } + + if (a->ulValueLen != b->size) { + /* match a decoded serial number */ + if ((a->type == CKA_SERIAL_NUMBER) && (a->ulValueLen < b->size)) { + int len; + unsigned char *data; + + data = nss_ckmk_DERUnwrap(b->data, b->size, &len, NULL); + if ((len == a->ulValueLen) && + nsslibc_memequal(a->pValue, data, len, (PRStatus *)NULL)) { + return CK_TRUE; + } + } + return CK_FALSE; + } + + prb = nsslibc_memequal(a->pValue, b->data, b->size, (PRStatus *)NULL); + + if (PR_TRUE == prb) { + return CK_TRUE; + } else { + return CK_FALSE; + } +} + +static CK_BBOOL +ckmk_match( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckmkInternalObject *o) +{ + CK_ULONG i; + + for (i = 0; i < ulAttributeCount; i++) { + if (CK_FALSE == ckmk_attrmatch(&pTemplate[i], o)) { + return CK_FALSE; + } + } + + /* Every attribute passed */ + return CK_TRUE; +} + +#define CKMK_ITEM_CHUNK 20 + +#define PUT_OBJECT(obj, err, size, count, list) \ + { \ + if (count >= size) { \ + (list) = (list) ? nss_ZREALLOCARRAY(list, ckmkInternalObject *, \ + ((size) + \ + CKMK_ITEM_CHUNK)) \ + : nss_ZNEWARRAY(NULL, ckmkInternalObject *, \ + ((size) + \ + CKMK_ITEM_CHUNK)); \ + if ((ckmkInternalObject **)NULL == list) { \ + err = CKR_HOST_MEMORY; \ + goto loser; \ + } \ + (size) += CKMK_ITEM_CHUNK; \ + } \ + (list)[count] = (obj); \ + count++; \ + } + +/* find all the certs that represent the appropriate object (cert, priv key, or + * pub key) in the cert store. + */ +static PRUint32 +collect_class( + CK_OBJECT_CLASS objClass, + SecItemClass itemClass, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckmkInternalObject ***listp, + PRUint32 *sizep, + PRUint32 count, + CK_RV *pError) +{ + ckmkInternalObject *next = NULL; + SecKeychainSearchRef searchRef = 0; + SecKeychainItemRef itemRef = 0; + OSStatus error; + + /* future, build the attribute list based on the template + * so we can refine the search */ + error = SecKeychainSearchCreateFromAttributes( + NULL, itemClass, NULL, &searchRef); + + while (noErr == SecKeychainSearchCopyNext(searchRef, &itemRef)) { + /* if we don't have an internal object structure, get one */ + if ((ckmkInternalObject *)NULL == next) { + next = nss_ZNEW(NULL, ckmkInternalObject); + if ((ckmkInternalObject *)NULL == next) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + } + /* fill in the relevant object data */ + next->type = ckmkItem; + next->objClass = objClass; + next->u.item.itemRef = itemRef; + next->u.item.itemClass = itemClass; + + /* see if this is one of the objects we are looking for */ + if (CK_TRUE == ckmk_match(pTemplate, ulAttributeCount, next)) { + /* yes, put it on the list */ + PUT_OBJECT(next, *pError, *sizep, count, *listp); + next = NULL; /* this one is on the list, need to allocate a new one now */ + } else { + /* no , release the current item and clear out the structure for reuse */ + CFRelease(itemRef); + /* don't cache the values we just loaded */ + nsslibc_memset(next, 0, sizeof(*next)); + } + } +loser: + if (searchRef) { + CFRelease(searchRef); + } + nss_ZFreeIf(next); + return count; +} + +static PRUint32 +collect_objects( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + ckmkInternalObject ***listp, + CK_RV *pError) +{ + PRUint32 i; + PRUint32 count = 0; + PRUint32 size = 0; + CK_OBJECT_CLASS objClass; + + /* + * first handle the static build in objects (if any) + */ + for (i = 0; i < nss_ckmk_nObjects; i++) { + ckmkInternalObject *o = (ckmkInternalObject *)&nss_ckmk_data[i]; + + if (CK_TRUE == ckmk_match(pTemplate, ulAttributeCount, o)) { + PUT_OBJECT(o, *pError, size, count, *listp); + } + } + + /* + * now handle the various object types + */ + objClass = nss_ckmk_GetULongAttribute(CKA_CLASS, + pTemplate, ulAttributeCount, pError); + if (CKR_OK != *pError) { + objClass = CK_INVALID_HANDLE; + } + *pError = CKR_OK; + switch (objClass) { + case CKO_CERTIFICATE: + count = collect_class(objClass, kSecCertificateItemClass, + pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + case CKO_PUBLIC_KEY: + count = collect_class(objClass, CSSM_DL_DB_RECORD_PUBLIC_KEY, + pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + case CKO_PRIVATE_KEY: + count = collect_class(objClass, CSSM_DL_DB_RECORD_PRIVATE_KEY, + pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + /* all of them */ + case CK_INVALID_HANDLE: + count = collect_class(CKO_CERTIFICATE, kSecCertificateItemClass, + pTemplate, ulAttributeCount, listp, + &size, count, pError); + count = collect_class(CKO_PUBLIC_KEY, CSSM_DL_DB_RECORD_PUBLIC_KEY, + pTemplate, ulAttributeCount, listp, + &size, count, pError); + count = collect_class(CKO_PUBLIC_KEY, CSSM_DL_DB_RECORD_PRIVATE_KEY, + pTemplate, ulAttributeCount, listp, + &size, count, pError); + break; + default: + break; + } + if (CKR_OK != *pError) { + goto loser; + } + + return count; +loser: + nss_ZFreeIf(*listp); + return 0; +} + +NSS_IMPLEMENT NSSCKMDFindObjects * +nss_ckmk_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + /* This could be made more efficient. I'm rather rushed. */ + NSSArena *arena; + NSSCKMDFindObjects *rv = (NSSCKMDFindObjects *)NULL; + struct ckmkFOStr *fo = (struct ckmkFOStr *)NULL; + ckmkInternalObject **temp = (ckmkInternalObject **)NULL; + + arena = NSSArena_Create(); + if ((NSSArena *)NULL == arena) { + goto loser; + } + + rv = nss_ZNEW(arena, NSSCKMDFindObjects); + if ((NSSCKMDFindObjects *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fo = nss_ZNEW(arena, struct ckmkFOStr); + if ((struct ckmkFOStr *)NULL == fo) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fo->arena = arena; + /* fo->n and fo->i are already zero */ + + rv->etc = (void *)fo; + rv->Final = ckmk_mdFindObjects_Final; + rv->Next = ckmk_mdFindObjects_Next; + rv->null = (void *)NULL; + + fo->n = collect_objects(pTemplate, ulAttributeCount, &temp, pError); + if (*pError != CKR_OK) { + goto loser; + } + + fo->objs = nss_ZNEWARRAY(arena, ckmkInternalObject *, fo->n); + if ((ckmkInternalObject **)NULL == fo->objs) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + (void)nsslibc_memcpy(fo->objs, temp, sizeof(ckmkInternalObject *) * fo->n); + nss_ZFreeIf(temp); + temp = (ckmkInternalObject **)NULL; + + return rv; + +loser: + nss_ZFreeIf(temp); + nss_ZFreeIf(fo); + nss_ZFreeIf(rv); + if ((NSSArena *)NULL != arena) { + NSSArena_Destroy(arena); + } + return (NSSCKMDFindObjects *)NULL; +} diff --git a/security/nss/lib/ckfw/nssmkey/minst.c b/security/nss/lib/ckfw/nssmkey/minst.c new file mode 100644 index 000000000..fcb96c652 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/minst.c @@ -0,0 +1,97 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckmk.h" + +/* + * nssmkey/minstance.c + * + * This file implements the NSSCKMDInstance object for the + * "nssmkey" cryptoki module. + */ + +/* + * NSSCKMDInstance methods + */ + +static CK_ULONG +ckmk_mdInstance_GetNSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (CK_ULONG)1; +} + +static CK_VERSION +ckmk_mdInstance_GetCryptokiVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckmk_CryptokiVersion; +} + +static NSSUTF8 * +ckmk_mdInstance_GetManufacturerID( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_ManufacturerID; +} + +static NSSUTF8 * +ckmk_mdInstance_GetLibraryDescription( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_LibraryDescription; +} + +static CK_VERSION +ckmk_mdInstance_GetLibraryVersion( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckmk_LibraryVersion; +} + +static CK_RV +ckmk_mdInstance_GetSlots( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *slots[]) +{ + slots[0] = (NSSCKMDSlot *)&nss_ckmk_mdSlot; + return CKR_OK; +} + +static CK_BBOOL +ckmk_mdInstance_ModuleHandlesSessionObjects( + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + /* we don't want to allow any session object creation, at least + * until we can investigate whether or not we can use those objects + */ + return CK_TRUE; +} + +NSS_IMPLEMENT_DATA const NSSCKMDInstance + nss_ckmk_mdInstance = { + (void *)NULL, /* etc */ + NULL, /* Initialize */ + NULL, /* Finalize */ + ckmk_mdInstance_GetNSlots, + ckmk_mdInstance_GetCryptokiVersion, + ckmk_mdInstance_GetManufacturerID, + ckmk_mdInstance_GetLibraryDescription, + ckmk_mdInstance_GetLibraryVersion, + ckmk_mdInstance_ModuleHandlesSessionObjects, + /*NULL, /* HandleSessionObjects */ + ckmk_mdInstance_GetSlots, + NULL, /* WaitForSlotEvent */ + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/nssmkey/mobject.c b/security/nss/lib/ckfw/nssmkey/mobject.c new file mode 100644 index 000000000..b19a8fdbd --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/mobject.c @@ -0,0 +1,1861 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckmk.h" +#include "nssbase.h" + +#include "secdert.h" /* for DER_INTEGER */ +#include "string.h" + +/* asn1 encoder (to build pkcs#8 blobs) */ +#include <seccomon.h> +#include <secitem.h> +#include <blapit.h> +#include <secoid.h> +#include <secasn1.h> + +/* for importing the keys */ +#include <CoreFoundation/CoreFoundation.h> +#include <security/SecImportExport.h> + +/* + * nssmkey/mobject.c + * + * This file implements the NSSCKMDObject object for the + * "nssmkey" cryptoki module. + */ + +const CK_ATTRIBUTE_TYPE certAttrs[] = { + CKA_CLASS, + CKA_TOKEN, + CKA_PRIVATE, + CKA_MODIFIABLE, + CKA_LABEL, + CKA_CERTIFICATE_TYPE, + CKA_SUBJECT, + CKA_ISSUER, + CKA_SERIAL_NUMBER, + CKA_VALUE +}; +const PRUint32 certAttrsCount = NSS_CKMK_ARRAY_SIZE(certAttrs); + +/* private keys, for now only support RSA */ +const CK_ATTRIBUTE_TYPE privKeyAttrs[] = { + CKA_CLASS, + CKA_TOKEN, + CKA_PRIVATE, + CKA_MODIFIABLE, + CKA_LABEL, + CKA_KEY_TYPE, + CKA_DERIVE, + CKA_LOCAL, + CKA_SUBJECT, + CKA_SENSITIVE, + CKA_DECRYPT, + CKA_SIGN, + CKA_SIGN_RECOVER, + CKA_UNWRAP, + CKA_EXTRACTABLE, + CKA_ALWAYS_SENSITIVE, + CKA_NEVER_EXTRACTABLE, + CKA_MODULUS, + CKA_PUBLIC_EXPONENT, +}; +const PRUint32 privKeyAttrsCount = NSS_CKMK_ARRAY_SIZE(privKeyAttrs); + +/* public keys, for now only support RSA */ +const CK_ATTRIBUTE_TYPE pubKeyAttrs[] = { + CKA_CLASS, + CKA_TOKEN, + CKA_PRIVATE, + CKA_MODIFIABLE, + CKA_LABEL, + CKA_KEY_TYPE, + CKA_DERIVE, + CKA_LOCAL, + CKA_SUBJECT, + CKA_ENCRYPT, + CKA_VERIFY, + CKA_VERIFY_RECOVER, + CKA_WRAP, + CKA_MODULUS, + CKA_PUBLIC_EXPONENT, +}; +const PRUint32 pubKeyAttrsCount = NSS_CKMK_ARRAY_SIZE(pubKeyAttrs); +static const CK_BBOOL ck_true = CK_TRUE; +static const CK_BBOOL ck_false = CK_FALSE; +static const CK_CERTIFICATE_TYPE ckc_x509 = CKC_X_509; +static const CK_KEY_TYPE ckk_rsa = CKK_RSA; +static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE; +static const CK_OBJECT_CLASS cko_private_key = CKO_PRIVATE_KEY; +static const CK_OBJECT_CLASS cko_public_key = CKO_PUBLIC_KEY; +static const NSSItem ckmk_trueItem = { + (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) +}; +static const NSSItem ckmk_falseItem = { + (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) +}; +static const NSSItem ckmk_x509Item = { + (void *)&ckc_x509, (PRUint32)sizeof(CK_CERTIFICATE_TYPE) +}; +static const NSSItem ckmk_rsaItem = { + (void *)&ckk_rsa, (PRUint32)sizeof(CK_KEY_TYPE) +}; +static const NSSItem ckmk_certClassItem = { + (void *)&cko_certificate, (PRUint32)sizeof(CK_OBJECT_CLASS) +}; +static const NSSItem ckmk_privKeyClassItem = { + (void *)&cko_private_key, (PRUint32)sizeof(CK_OBJECT_CLASS) +}; +static const NSSItem ckmk_pubKeyClassItem = { + (void *)&cko_public_key, (PRUint32)sizeof(CK_OBJECT_CLASS) +}; +static const NSSItem ckmk_emptyItem = { + (void *)&ck_true, 0 +}; + +/* + * these are utilities. The chould be moved to a new utilities file. + */ +#ifdef DEBUG +static void +itemdump(char *str, void *data, int size, CK_RV error) +{ + unsigned char *ptr = (unsigned char *)data; + int i; + fprintf(stderr, str); + for (i = 0; i < size; i++) { + fprintf(stderr, "%02x ", (unsigned int)ptr[i]); + } + fprintf(stderr, " (error = %d)\n", (int)error); +} +#endif + +/* + * unwrap a single DER value + * now that we have util linked in, we should probably use + * the ANS1_Decoder for this work... + */ +unsigned char * +nss_ckmk_DERUnwrap( + unsigned char *src, + int size, + int *outSize, + unsigned char **next) +{ + unsigned char *start = src; + unsigned int len = 0; + + /* initialize error condition return values */ + *outSize = 0; + if (next) { + *next = src; + } + + if (size < 2) { + return start; + } + src++; /* skip the tag -- should check it against an expected value! */ + len = (unsigned)*src++; + if (len & 0x80) { + int count = len & 0x7f; + len = 0; + + if (count + 2 > size) { + return start; + } + while (count-- > 0) { + len = (len << 8) | (unsigned)*src++; + } + } + if (len + (src - start) > (unsigned int)size) { + return start; + } + if (next) { + *next = src + len; + } + *outSize = len; + + return src; +} + +/* + * get an attribute from a template. Value is returned in NSS item. + * data for the item is owned by the template. + */ +CK_RV +nss_ckmk_GetAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + NSSItem *item) +{ + CK_ULONG i; + + for (i = 0; i < templateSize; i++) { + if (template[i].type == type) { + item->data = template[i].pValue; + item->size = template[i].ulValueLen; + return CKR_OK; + } + } + return CKR_TEMPLATE_INCOMPLETE; +} + +/* + * get an attribute which is type CK_ULONG. + */ +CK_ULONG +nss_ckmk_GetULongAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_RV *pError) +{ + NSSItem item; + + *pError = nss_ckmk_GetAttribute(type, template, templateSize, &item); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } + if (item.size != sizeof(CK_ULONG)) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (CK_ULONG)0; + } + return *(CK_ULONG *)item.data; +} + +/* + * get an attribute which is type CK_BBOOL. + */ +CK_BBOOL +nss_ckmk_GetBoolAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_BBOOL defaultBool) +{ + NSSItem item; + CK_RV error; + + error = nss_ckmk_GetAttribute(type, template, templateSize, &item); + if (CKR_OK != error) { + return defaultBool; + } + if (item.size != sizeof(CK_BBOOL)) { + return defaultBool; + } + return *(CK_BBOOL *)item.data; +} + +/* + * get an attribute as a NULL terminated string. Caller is responsible to + * free the string. + */ +char * +nss_ckmk_GetStringAttribute( + CK_ATTRIBUTE_TYPE type, + CK_ATTRIBUTE *template, + CK_ULONG templateSize, + CK_RV *pError) +{ + NSSItem item; + char *str; + + /* get the attribute */ + *pError = nss_ckmk_GetAttribute(type, template, templateSize, &item); + if (CKR_OK != *pError) { + return (char *)NULL; + } + /* make sure it is null terminated */ + str = nss_ZNEWARRAY(NULL, char, item.size + 1); + if ((char *)NULL == str) { + *pError = CKR_HOST_MEMORY; + return (char *)NULL; + } + + nsslibc_memcpy(str, item.data, item.size); + str[item.size] = 0; + + return str; +} + +/* + * Apple doesn't seem to have a public interface to the DER encoder, + * wip out a quick one for integers only (anything more complicated, + * we should use one of the 3 in lib/util). -- especially since we + * now link with it. + */ +static CK_RV +ckmk_encodeInt(NSSItem *dest, void *src, int srcLen) +{ + int dataLen = srcLen; + int lenLen = 1; + int encLen; + int isSigned = 0; + int offset = 0; + unsigned char *data = NULL; + int i; + + if (*(unsigned char *)src & 0x80) { + dataLen++; + isSigned = 1; + } + + /* calculate the length of the length specifier */ + /* (NOTE: destroys dataLen value) */ + if (dataLen > 0x7f) { + do { + lenLen++; + dataLen >>= 8; + } while (dataLen); + } + + /* calculate our total length */ + dataLen = isSigned + srcLen; + encLen = 1 + lenLen + dataLen; + data = nss_ZNEWARRAY(NULL, unsigned char, encLen); + if ((unsigned char *)NULL == data) { + return CKR_HOST_MEMORY; + } + data[0] = DER_INTEGER; + if (1 == lenLen) { + data[1] = dataLen; + } else { + data[1] = 0x80 + lenLen; + for (i = 0; i < lenLen; i++) { + data[i + 1] = ((dataLen >> ((lenLen - + i - 1) * + 8)) & + 0xff); + } + } + offset = lenLen + 1; + + if (isSigned) { + data[offset++] = 0; + } + nsslibc_memcpy(&data[offset], src, srcLen); + dest->data = data; + dest->size = encLen; + return CKR_OK; +} + +/* + * Get a Keyring attribute. If content is set to true, then we get the + * content, not the attribute. + */ +static CK_RV +ckmk_GetCommonAttribute( + ckmkInternalObject *io, + SecItemAttr itemAttr, + PRBool content, + NSSItem *item, + char *dbString) +{ + SecKeychainAttributeList *attrList = NULL; + SecKeychainAttributeInfo attrInfo; + PRUint32 len = 0; + PRUint32 dataLen = 0; + PRUint32 attrFormat = 0; + void *dataVal = 0; + void *out = NULL; + CK_RV error = CKR_OK; + OSStatus macErr; + + attrInfo.count = 1; + attrInfo.tag = &itemAttr; + attrInfo.format = &attrFormat; + + macErr = SecKeychainItemCopyAttributesAndData(io->u.item.itemRef, + &attrInfo, NULL, &attrList, &len, &out); + if (noErr != macErr) { + CKMK_MACERR(dbString, macErr); + return CKR_ATTRIBUTE_TYPE_INVALID; + } + dataLen = content ? len : attrList->attr->length; + dataVal = content ? out : attrList->attr->data; + + /* Apple's documentation says this value is DER Encoded, but it clearly isn't + * der encode it before we ship it back off to NSS + */ + if (kSecSerialNumberItemAttr == itemAttr) { + error = ckmk_encodeInt(item, dataVal, dataLen); + goto loser; /* logically 'done' if error == CKR_OK */ + } + item->data = nss_ZNEWARRAY(NULL, char, dataLen); + if (NULL == item->data) { + error = CKR_HOST_MEMORY; + goto loser; + } + nsslibc_memcpy(item->data, dataVal, dataLen); + item->size = dataLen; + +loser: + SecKeychainItemFreeAttributesAndData(attrList, out); + return error; +} + +/* + * change an attribute (does not operate on the content). + */ +static CK_RV +ckmk_updateAttribute( + SecKeychainItemRef itemRef, + SecItemAttr itemAttr, + void *data, + PRUint32 len, + char *dbString) +{ + SecKeychainAttributeList attrList; + SecKeychainAttribute attrAttr; + OSStatus macErr; + CK_RV error = CKR_OK; + + attrList.count = 1; + attrList.attr = &attrAttr; + attrAttr.tag = itemAttr; + attrAttr.data = data; + attrAttr.length = len; + macErr = SecKeychainItemModifyAttributesAndData(itemRef, &attrList, 0, NULL); + if (noErr != macErr) { + CKMK_MACERR(dbString, macErr); + error = CKR_ATTRIBUTE_TYPE_INVALID; + } + return error; +} + +/* + * get an attribute (does not operate on the content) + */ +static CK_RV +ckmk_GetDataAttribute( + ckmkInternalObject *io, + SecItemAttr itemAttr, + NSSItem *item, + char *dbString) +{ + return ckmk_GetCommonAttribute(io, itemAttr, PR_FALSE, item, dbString); +} + +/* + * get an attribute we know is a BOOL. + */ +static CK_RV +ckmk_GetBoolAttribute( + ckmkInternalObject *io, + SecItemAttr itemAttr, + NSSItem *item, + char *dbString) +{ + SecKeychainAttribute attr; + SecKeychainAttributeList attrList; + CK_BBOOL *boolp = NULL; + PRUint32 len = 0; + ; + void *out = NULL; + CK_RV error = CKR_OK; + OSStatus macErr; + + attr.tag = itemAttr; + attr.length = 0; + attr.data = NULL; + attrList.count = 1; + attrList.attr = &attr; + + boolp = nss_ZNEW(NULL, CK_BBOOL); + if ((CK_BBOOL *)NULL == boolp) { + error = CKR_HOST_MEMORY; + goto loser; + } + + macErr = SecKeychainItemCopyContent(io->u.item.itemRef, NULL, + &attrList, &len, &out); + if (noErr != macErr) { + CKMK_MACERR(dbString, macErr); + error = CKR_ATTRIBUTE_TYPE_INVALID; + goto loser; + } + if (sizeof(PRUint32) != attr.length) { + error = CKR_ATTRIBUTE_TYPE_INVALID; + goto loser; + } + *boolp = *(PRUint32 *)attr.data ? 1 : 0; + item->data = boolp; + boolp = NULL; + item->size = sizeof(CK_BBOOL); + +loser: + nss_ZFreeIf(boolp); + SecKeychainItemFreeContent(&attrList, out); + return error; +} + +/* + * macros for fetching attributes into a cache and returning the + * appropriate value. These operate inside switch statements + */ +#define CKMK_HANDLE_ITEM(func, io, type, loc, item, error, str) \ + if (0 == (item)->loc.size) { \ + error = func(io, type, &(item)->loc, str); \ + } \ + return (CKR_OK == (error)) ? &(item)->loc : NULL; + +#define CKMK_HANDLE_OPT_ITEM(func, io, type, loc, item, error, str) \ + if (0 == (item)->loc.size) { \ + (void)func(io, type, &(item)->loc, str); \ + } \ + return &(item)->loc; + +#define CKMK_HANDLE_BOOL_ITEM(io, type, loc, item, error, str) \ + CKMK_HANDLE_ITEM(ckmk_GetBoolAttribute, io, type, loc, item, error, str) +#define CKMK_HANDLE_DATA_ITEM(io, type, loc, item, error, str) \ + CKMK_HANDLE_ITEM(ckmk_GetDataAttribute, io, type, loc, item, error, str) +#define CKMK_HANDLE_OPT_DATA_ITEM(io, type, loc, item, error, str) \ + CKMK_HANDLE_OPT_ITEM(ckmk_GetDataAttribute, io, type, loc, item, error, str) + +/* + * fetch the unique identifier for each object type. + */ +static void +ckmk_FetchHashKey( + ckmkInternalObject *io) +{ + NSSItem *key = &io->hashKey; + + if (io->objClass == CKO_CERTIFICATE) { + ckmk_GetCommonAttribute(io, kSecCertEncodingItemAttr, + PR_TRUE, key, "Fetching HashKey (cert)"); + } else { + ckmk_GetCommonAttribute(io, kSecKeyLabel, + PR_FALSE, key, "Fetching HashKey (key)"); + } +} + +/* + * Apple mucks with the actual subject and issuer, so go fetch + * the real ones ourselves. + */ +static void +ckmk_fetchCert( + ckmkInternalObject *io) +{ + CK_RV error; + unsigned char *cert, *next; + int certSize, thisEntrySize; + + error = ckmk_GetCommonAttribute(io, kSecCertEncodingItemAttr, PR_TRUE, + &io->u.item.derCert, "Fetching Value (cert)"); + if (CKR_OK != error) { + return; + } + /* unwrap the cert bundle */ + cert = nss_ckmk_DERUnwrap((unsigned char *)io->u.item.derCert.data, + io->u.item.derCert.size, + &certSize, NULL); + /* unwrap the cert itself */ + /* cert == certdata */ + cert = nss_ckmk_DERUnwrap(cert, certSize, &certSize, NULL); + + /* skip the optional version */ + if ((cert[0] & 0xa0) == 0xa0) { + nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next); + certSize -= next - cert; + cert = next; + } + /* skip the serial number */ + nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next); + certSize -= next - cert; + cert = next; + + /* skip the OID */ + nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next); + certSize -= next - cert; + cert = next; + + /* save the (wrapped) issuer */ + io->u.item.issuer.data = cert; + nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next); + io->u.item.issuer.size = next - cert; + certSize -= io->u.item.issuer.size; + cert = next; + + /* skip the OID */ + nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next); + certSize -= next - cert; + cert = next; + + /* save the (wrapped) subject */ + io->u.item.subject.data = cert; + nss_ckmk_DERUnwrap(cert, certSize, &thisEntrySize, &next); + io->u.item.subject.size = next - cert; + certSize -= io->u.item.subject.size; + cert = next; +} + +static void +ckmk_fetchModulus( + ckmkInternalObject *io) +{ + NSSItem item; + PRInt32 modLen; + CK_RV error; + + /* we can't reliably get the modulus for private keys through CSSM (sigh). + * For NSS this is OK because we really only use this to get the modulus + * length (unless we are trying to get a public key from a private keys, + * something CSSM ALSO does not do!). + */ + error = ckmk_GetDataAttribute(io, kSecKeyKeySizeInBits, &item, + "Key Fetch Modulus"); + if (CKR_OK != error) { + return; + } + + modLen = *(PRInt32 *)item.data; + modLen = modLen / 8; /* convert from bits to bytes */ + + nss_ZFreeIf(item.data); + io->u.item.modulus.data = nss_ZNEWARRAY(NULL, char, modLen); + if (NULL == io->u.item.modulus.data) { + return; + } + *(char *)io->u.item.modulus.data = 0x80; /* fake NSS out or it will + * drop the first byte */ + io->u.item.modulus.size = modLen; + return; +} + +const NSSItem * +ckmk_FetchCertAttribute( + ckmkInternalObject *io, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError) +{ + ckmkItemObject *item = &io->u.item; + *pError = CKR_OK; + switch (type) { + case CKA_CLASS: + return &ckmk_certClassItem; + case CKA_TOKEN: + case CKA_MODIFIABLE: + return &ckmk_trueItem; + case CKA_PRIVATE: + return &ckmk_falseItem; + case CKA_CERTIFICATE_TYPE: + return &ckmk_x509Item; + case CKA_LABEL: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecLabelItemAttr, label, item, *pError, + "Cert:Label attr") + case CKA_SUBJECT: + /* OK, well apple does provide an subject and issuer attribute, but they + * decided to cannonicalize that value. Probably a good move for them, + * but makes it useless for most users of PKCS #11.. Get the real subject + * from the certificate */ + if (0 == item->derCert.size) { + ckmk_fetchCert(io); + } + return &item->subject; + case CKA_ISSUER: + if (0 == item->derCert.size) { + ckmk_fetchCert(io); + } + return &item->issuer; + case CKA_SERIAL_NUMBER: + CKMK_HANDLE_DATA_ITEM(io, kSecSerialNumberItemAttr, serial, item, *pError, + "Cert:Serial Number attr") + case CKA_VALUE: + if (0 == item->derCert.size) { + ckmk_fetchCert(io); + } + return &item->derCert; + case CKA_ID: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecPublicKeyHashItemAttr, id, item, *pError, + "Cert:ID attr") + default: + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + break; + } + return NULL; +} + +const NSSItem * +ckmk_FetchPubKeyAttribute( + ckmkInternalObject *io, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError) +{ + ckmkItemObject *item = &io->u.item; + *pError = CKR_OK; + + switch (type) { + case CKA_CLASS: + return &ckmk_pubKeyClassItem; + case CKA_TOKEN: + case CKA_LOCAL: + return &ckmk_trueItem; + case CKA_KEY_TYPE: + return &ckmk_rsaItem; + case CKA_LABEL: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyPrintName, label, item, *pError, + "PubKey:Label attr") + case CKA_ENCRYPT: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyEncrypt, encrypt, item, *pError, + "PubKey:Encrypt attr") + case CKA_VERIFY: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyVerify, verify, item, *pError, + "PubKey:Verify attr") + case CKA_VERIFY_RECOVER: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyVerifyRecover, verifyRecover, + item, *pError, "PubKey:VerifyRecover attr") + case CKA_PRIVATE: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyPrivate, private, item, *pError, + "PubKey:Private attr") + case CKA_MODIFIABLE: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyModifiable, modify, item, *pError, + "PubKey:Modify attr") + case CKA_DERIVE: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyDerive, derive, item, *pError, + "PubKey:Derive attr") + case CKA_WRAP: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyWrap, wrap, item, *pError, + "PubKey:Wrap attr") + case CKA_SUBJECT: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecSubjectItemAttr, subject, item, *pError, + "PubKey:Subect attr") + case CKA_MODULUS: + return &ckmk_emptyItem; + case CKA_PUBLIC_EXPONENT: + return &ckmk_emptyItem; + case CKA_ID: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyLabel, id, item, *pError, + "PubKey:ID attr") + default: + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + break; + } + return NULL; +} + +const NSSItem * +ckmk_FetchPrivKeyAttribute( + ckmkInternalObject *io, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError) +{ + ckmkItemObject *item = &io->u.item; + *pError = CKR_OK; + + switch (type) { + case CKA_CLASS: + return &ckmk_privKeyClassItem; + case CKA_TOKEN: + case CKA_LOCAL: + return &ckmk_trueItem; + case CKA_SENSITIVE: + case CKA_EXTRACTABLE: /* will probably move in the future */ + case CKA_ALWAYS_SENSITIVE: + case CKA_NEVER_EXTRACTABLE: + return &ckmk_falseItem; + case CKA_KEY_TYPE: + return &ckmk_rsaItem; + case CKA_LABEL: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyPrintName, label, item, *pError, + "PrivateKey:Label attr") + case CKA_DECRYPT: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyDecrypt, decrypt, item, *pError, + "PrivateKey:Decrypt attr") + case CKA_SIGN: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeySign, sign, item, *pError, + "PrivateKey:Sign attr") + case CKA_SIGN_RECOVER: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeySignRecover, signRecover, item, *pError, + "PrivateKey:Sign Recover attr") + case CKA_PRIVATE: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyPrivate, private, item, *pError, + "PrivateKey:Private attr") + case CKA_MODIFIABLE: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyModifiable, modify, item, *pError, + "PrivateKey:Modify attr") + case CKA_DERIVE: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyDerive, derive, item, *pError, + "PrivateKey:Derive attr") + case CKA_UNWRAP: + CKMK_HANDLE_BOOL_ITEM(io, kSecKeyUnwrap, unwrap, item, *pError, + "PrivateKey:Unwrap attr") + case CKA_SUBJECT: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecSubjectItemAttr, subject, item, *pError, + "PrivateKey:Subject attr") + case CKA_MODULUS: + if (0 == item->modulus.size) { + ckmk_fetchModulus(io); + } + return &item->modulus; + case CKA_PUBLIC_EXPONENT: + return &ckmk_emptyItem; +#ifdef notdef + /* the following are sensitive attributes. We could implement them for + * sensitive keys using the key export function, but it's better to + * just support wrap through this token. That will more reliably allow us + * to export any private key that is truly exportable. + */ + case CKA_PRIVATE_EXPONENT: + CKMK_HANDLE_DATA_ITEM(io, kSecPrivateExponentItemAttr, privateExponent, + item, *pError) + case CKA_PRIME_1: + CKMK_HANDLE_DATA_ITEM(io, kSecPrime1ItemAttr, prime1, item, *pError) + case CKA_PRIME_2: + CKMK_HANDLE_DATA_ITEM(io, kSecPrime2ItemAttr, prime2, item, *pError) + case CKA_EXPONENT_1: + CKMK_HANDLE_DATA_ITEM(io, kSecExponent1ItemAttr, exponent1, item, *pError) + case CKA_EXPONENT_2: + CKMK_HANDLE_DATA_ITEM(io, kSecExponent2ItemAttr, exponent2, item, *pError) + case CKA_COEFFICIENT: + CKMK_HANDLE_DATA_ITEM(io, kSecCoefficientItemAttr, coefficient, + item, *pError) +#endif + case CKA_ID: + CKMK_HANDLE_OPT_DATA_ITEM(io, kSecKeyLabel, id, item, *pError, + "PrivateKey:ID attr") + default: + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return NULL; + } +} + +const NSSItem * +nss_ckmk_FetchAttribute( + ckmkInternalObject *io, + CK_ATTRIBUTE_TYPE type, + CK_RV *pError) +{ + CK_ULONG i; + const NSSItem *value = NULL; + + if (io->type == ckmkRaw) { + for (i = 0; i < io->u.raw.n; i++) { + if (type == io->u.raw.types[i]) { + return &io->u.raw.items[i]; + } + } + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return NULL; + } + /* deal with the common attributes */ + switch (io->objClass) { + case CKO_CERTIFICATE: + value = ckmk_FetchCertAttribute(io, type, pError); + break; + case CKO_PRIVATE_KEY: + value = ckmk_FetchPrivKeyAttribute(io, type, pError); + break; + case CKO_PUBLIC_KEY: + value = ckmk_FetchPubKeyAttribute(io, type, pError); + break; + default: + *pError = CKR_OBJECT_HANDLE_INVALID; + return NULL; + } + +#ifdef DEBUG + if (CKA_ID == type) { + itemdump("id: ", value->data, value->size, *pError); + } +#endif + return value; +} + +static void +ckmk_removeObjectFromHash( + ckmkInternalObject *io); + +/* + * + * These are the MSObject functions we need to implement + * + * Finalize - unneeded (actually we should clean up the hashtables) + * Destroy + * IsTokenObject - CK_TRUE + * GetAttributeCount + * GetAttributeTypes + * GetAttributeSize + * GetAttribute + * SetAttribute + * GetObjectSize + */ + +static CK_RV +ckmk_mdObject_Destroy( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc; + OSStatus macErr; + + if (ckmkRaw == io->type) { + /* there is not 'object write protected' error, use the next best thing */ + return CKR_TOKEN_WRITE_PROTECTED; + } + + /* This API is done well. The following 4 lines are the complete apple + * specific part of this implementation */ + macErr = SecKeychainItemDelete(io->u.item.itemRef); + if (noErr != macErr) { + CKMK_MACERR("Delete object", macErr); + } + + /* remove it from the hash */ + ckmk_removeObjectFromHash(io); + + /* free the puppy.. */ + nss_ckmk_DestroyInternalObject(io); + + return CKR_OK; +} + +static CK_BBOOL +ckmk_mdObject_IsTokenObject( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_ULONG +ckmk_mdObject_GetAttributeCount( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc; + + if (ckmkRaw == io->type) { + return io->u.raw.n; + } + switch (io->objClass) { + case CKO_CERTIFICATE: + return certAttrsCount; + case CKO_PUBLIC_KEY: + return pubKeyAttrsCount; + case CKO_PRIVATE_KEY: + return privKeyAttrsCount; + default: + break; + } + return 0; +} + +static CK_RV +ckmk_mdObject_GetAttributeTypes( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ + ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc; + CK_ULONG i; + CK_RV error = CKR_OK; + const CK_ATTRIBUTE_TYPE *attrs = NULL; + CK_ULONG size = ckmk_mdObject_GetAttributeCount( + mdObject, fwObject, mdSession, fwSession, + mdToken, fwToken, mdInstance, fwInstance, &error); + + if (size != ulCount) { + return CKR_BUFFER_TOO_SMALL; + } + if (io->type == ckmkRaw) { + attrs = io->u.raw.types; + } else + switch (io->objClass) { + case CKO_CERTIFICATE: + attrs = + certAttrs; + break; + case CKO_PUBLIC_KEY: + attrs = + pubKeyAttrs; + break; + case CKO_PRIVATE_KEY: + attrs = + privKeyAttrs; + break; + default: + return CKR_OK; + } + + for (i = 0; i < size; i++) { + typeArray[i] = attrs[i]; + } + + return CKR_OK; +} + +static CK_ULONG +ckmk_mdObject_GetAttributeSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc; + + const NSSItem *b; + + b = nss_ckmk_FetchAttribute(io, attribute, pError); + + if ((const NSSItem *)NULL == b) { + return 0; + } + return b->size; +} + +static CK_RV +ckmk_mdObject_SetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value) +{ + ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc; + SecKeychainItemRef itemRef; + + if (io->type == ckmkRaw) { + return CKR_TOKEN_WRITE_PROTECTED; + } + itemRef = io->u.item.itemRef; + + switch (io->objClass) { + case CKO_PRIVATE_KEY: + case CKO_PUBLIC_KEY: + switch (attribute) { + case CKA_ID: + ckmk_updateAttribute(itemRef, kSecKeyLabel, + value->data, value->size, "Set Attr Key ID"); +#ifdef DEBUG + itemdump("key id: ", value->data, value->size, CKR_OK); +#endif + break; + case CKA_LABEL: + ckmk_updateAttribute(itemRef, kSecKeyPrintName, value->data, + value->size, "Set Attr Key Label"); + break; + default: + break; + } + break; + + case CKO_CERTIFICATE: + switch (attribute) { + case CKA_ID: + ckmk_updateAttribute(itemRef, kSecPublicKeyHashItemAttr, + value->data, value->size, "Set Attr Cert ID"); + break; + case CKA_LABEL: + ckmk_updateAttribute(itemRef, kSecLabelItemAttr, value->data, + value->size, "Set Attr Cert Label"); + break; + default: + break; + } + break; + + default: + break; + } + return CKR_OK; +} + +static NSSCKFWItem +ckmk_mdObject_GetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + NSSCKFWItem mdItem; + ckmkInternalObject *io = (ckmkInternalObject *)mdObject->etc; + + mdItem.needsFreeing = PR_FALSE; + mdItem.item = (NSSItem *)nss_ckmk_FetchAttribute(io, attribute, pError); + + return mdItem; +} + +static CK_ULONG +ckmk_mdObject_GetObjectSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + CK_ULONG rv = 1; + + /* size is irrelevant to this token */ + return rv; +} + +static const NSSCKMDObject + ckmk_prototype_mdObject = { + (void *)NULL, /* etc */ + NULL, /* Finalize */ + ckmk_mdObject_Destroy, + ckmk_mdObject_IsTokenObject, + ckmk_mdObject_GetAttributeCount, + ckmk_mdObject_GetAttributeTypes, + ckmk_mdObject_GetAttributeSize, + ckmk_mdObject_GetAttribute, + NULL, /* FreeAttribute */ + ckmk_mdObject_SetAttribute, + ckmk_mdObject_GetObjectSize, + (void *)NULL /* null terminator */ + }; + +static nssHash *ckmkInternalObjectHash = NULL; + +NSS_IMPLEMENT NSSCKMDObject * +nss_ckmk_CreateMDObject( + NSSArena *arena, + ckmkInternalObject *io, + CK_RV *pError) +{ + if ((nssHash *)NULL == ckmkInternalObjectHash) { + ckmkInternalObjectHash = nssHash_CreateItem(NULL, 10); + } + if (ckmkItem == io->type) { + /* the hash key, not a cryptographic key */ + NSSItem *key = &io->hashKey; + ckmkInternalObject *old_o = NULL; + + if (key->size == 0) { + ckmk_FetchHashKey(io); + } + old_o = (ckmkInternalObject *) + nssHash_Lookup(ckmkInternalObjectHash, key); + if (!old_o) { + nssHash_Add(ckmkInternalObjectHash, key, io); + } else if (old_o != io) { + nss_ckmk_DestroyInternalObject(io); + io = old_o; + } + } + + if ((void *)NULL == io->mdObject.etc) { + (void)nsslibc_memcpy(&io->mdObject, &ckmk_prototype_mdObject, + sizeof(ckmk_prototype_mdObject)); + io->mdObject.etc = (void *)io; + } + return &io->mdObject; +} + +static void +ckmk_removeObjectFromHash( + ckmkInternalObject *io) +{ + NSSItem *key = &io->hashKey; + + if ((nssHash *)NULL == ckmkInternalObjectHash) { + return; + } + if (key->size == 0) { + ckmk_FetchHashKey(io); + } + nssHash_Remove(ckmkInternalObjectHash, key); + return; +} + +void +nss_ckmk_DestroyInternalObject( + ckmkInternalObject *io) +{ + switch (io->type) { + case ckmkRaw: + return; + case ckmkItem: + nss_ZFreeIf(io->u.item.modify.data); + nss_ZFreeIf(io->u.item.private.data); + nss_ZFreeIf(io->u.item.encrypt.data); + nss_ZFreeIf(io->u.item.decrypt.data); + nss_ZFreeIf(io->u.item.derive.data); + nss_ZFreeIf(io->u.item.sign.data); + nss_ZFreeIf(io->u.item.signRecover.data); + nss_ZFreeIf(io->u.item.verify.data); + nss_ZFreeIf(io->u.item.verifyRecover.data); + nss_ZFreeIf(io->u.item.wrap.data); + nss_ZFreeIf(io->u.item.unwrap.data); + nss_ZFreeIf(io->u.item.label.data); + /*nss_ZFreeIf(io->u.item.subject.data); */ + /*nss_ZFreeIf(io->u.item.issuer.data); */ + nss_ZFreeIf(io->u.item.serial.data); + nss_ZFreeIf(io->u.item.modulus.data); + nss_ZFreeIf(io->u.item.exponent.data); + nss_ZFreeIf(io->u.item.privateExponent.data); + nss_ZFreeIf(io->u.item.prime1.data); + nss_ZFreeIf(io->u.item.prime2.data); + nss_ZFreeIf(io->u.item.exponent1.data); + nss_ZFreeIf(io->u.item.exponent2.data); + nss_ZFreeIf(io->u.item.coefficient.data); + break; + } + nss_ZFreeIf(io); + return; +} + +static ckmkInternalObject * +nss_ckmk_NewInternalObject( + CK_OBJECT_CLASS objClass, + SecKeychainItemRef itemRef, + SecItemClass itemClass, + CK_RV *pError) +{ + ckmkInternalObject *io = nss_ZNEW(NULL, ckmkInternalObject); + + if ((ckmkInternalObject *)NULL == io) { + *pError = CKR_HOST_MEMORY; + return io; + } + io->type = ckmkItem; + io->objClass = objClass; + io->u.item.itemRef = itemRef; + io->u.item.itemClass = itemClass; + return io; +} + +/* + * Apple doesn't alway have a default keyChain set by the OS, use the + * SearchList to try to find one. + */ +static CK_RV +ckmk_GetSafeDefaultKeychain( + SecKeychainRef *keychainRef) +{ + OSStatus macErr; + CFArrayRef searchList = 0; + CK_RV error = CKR_OK; + + macErr = SecKeychainCopyDefault(keychainRef); + if (noErr != macErr) { + int searchCount = 0; + if (errSecNoDefaultKeychain != macErr) { + CKMK_MACERR("Getting default key chain", macErr); + error = CKR_GENERAL_ERROR; + goto loser; + } + /* ok, we don't have a default key chain, find one */ + macErr = SecKeychainCopySearchList(&searchList); + if (noErr != macErr) { + CKMK_MACERR("failed to find a keyring searchList", macErr); + error = CKR_DEVICE_REMOVED; + goto loser; + } + searchCount = CFArrayGetCount(searchList); + if (searchCount < 1) { + error = CKR_DEVICE_REMOVED; + goto loser; + } + *keychainRef = + (SecKeychainRef)CFRetain(CFArrayGetValueAtIndex(searchList, 0)); + if (0 == *keychainRef) { + error = CKR_DEVICE_REMOVED; + goto loser; + } + /* should we set it as default? */ + } +loser: + if (0 != searchList) { + CFRelease(searchList); + } + return error; +} +static ckmkInternalObject * +nss_ckmk_CreateCertificate( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSItem value; + ckmkInternalObject *io = NULL; + OSStatus macErr; + SecCertificateRef certRef; + SecKeychainItemRef itemRef; + SecKeychainRef keychainRef; + CSSM_DATA certData; + + *pError = nss_ckmk_GetAttribute(CKA_VALUE, pTemplate, + ulAttributeCount, &value); + if (CKR_OK != *pError) { + goto loser; + } + + certData.Data = value.data; + certData.Length = value.size; + macErr = SecCertificateCreateFromData(&certData, CSSM_CERT_X_509v3, + CSSM_CERT_ENCODING_BER, &certRef); + if (noErr != macErr) { + CKMK_MACERR("Create cert from data Failed", macErr); + *pError = CKR_GENERAL_ERROR; /* need to map macErr */ + goto loser; + } + + *pError = ckmk_GetSafeDefaultKeychain(&keychainRef); + if (CKR_OK != *pError) { + goto loser; + } + + macErr = SecCertificateAddToKeychain(certRef, keychainRef); + itemRef = (SecKeychainItemRef)certRef; + if (errSecDuplicateItem != macErr) { + NSSItem keyID = { NULL, 0 }; + char *nickname = NULL; + CK_RV dummy; + + if (noErr != macErr) { + CKMK_MACERR("Add cert to keychain Failed", macErr); + *pError = CKR_GENERAL_ERROR; /* need to map macErr */ + goto loser; + } + /* these two are optional */ + nickname = nss_ckmk_GetStringAttribute(CKA_LABEL, pTemplate, + ulAttributeCount, &dummy); + /* we've added a new one, update the attributes in the key ring */ + if (nickname) { + ckmk_updateAttribute(itemRef, kSecLabelItemAttr, nickname, + strlen(nickname) + 1, "Modify Cert Label"); + nss_ZFreeIf(nickname); + } + dummy = nss_ckmk_GetAttribute(CKA_ID, pTemplate, + ulAttributeCount, &keyID); + if (CKR_OK == dummy) { + dummy = ckmk_updateAttribute(itemRef, kSecPublicKeyHashItemAttr, + keyID.data, keyID.size, "Modify Cert ID"); + } + } + + io = nss_ckmk_NewInternalObject(CKO_CERTIFICATE, itemRef, + kSecCertificateItemClass, pError); + if ((ckmkInternalObject *)NULL != io) { + itemRef = 0; + } + +loser: + if (0 != itemRef) { + CFRelease(itemRef); + } + if (0 != keychainRef) { + CFRelease(keychainRef); + } + + return io; +} + +/* + * PKCS #8 attributes + */ +struct ckmk_AttributeStr { + SECItem attrType; + SECItem *attrValue; +}; +typedef struct ckmk_AttributeStr ckmk_Attribute; + +/* + ** A PKCS#8 private key info object + */ +struct PrivateKeyInfoStr { + PLArenaPool *arena; + SECItem version; + SECAlgorithmID algorithm; + SECItem privateKey; + ckmk_Attribute **attributes; +}; +typedef struct PrivateKeyInfoStr PrivateKeyInfo; + +const SEC_ASN1Template ckmk_RSAPrivateKeyTemplate[] = { + { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(RSAPrivateKey) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, version) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, modulus) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, publicExponent) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, privateExponent) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, prime1) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, prime2) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, exponent1) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, exponent2) }, + { SEC_ASN1_INTEGER, offsetof(RSAPrivateKey, coefficient) }, + { 0 } +}; + +const SEC_ASN1Template ckmk_AttributeTemplate[] = { + { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(ckmk_Attribute) }, + { SEC_ASN1_OBJECT_ID, offsetof(ckmk_Attribute, attrType) }, + { SEC_ASN1_SET_OF, offsetof(ckmk_Attribute, attrValue), + SEC_AnyTemplate }, + { 0 } +}; + +const SEC_ASN1Template ckmk_SetOfAttributeTemplate[] = { + { SEC_ASN1_SET_OF, 0, ckmk_AttributeTemplate }, +}; + +SEC_ASN1_MKSUB(SECOID_AlgorithmIDTemplate) + +/* ASN1 Templates for new decoder/encoder */ +const SEC_ASN1Template ckmk_PrivateKeyInfoTemplate[] = { + { SEC_ASN1_SEQUENCE, 0, NULL, sizeof(PrivateKeyInfo) }, + { SEC_ASN1_INTEGER, offsetof(PrivateKeyInfo, version) }, + { SEC_ASN1_INLINE | SEC_ASN1_XTRN, offsetof(PrivateKeyInfo, algorithm), + SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) }, + { SEC_ASN1_OCTET_STRING, offsetof(PrivateKeyInfo, privateKey) }, + { SEC_ASN1_OPTIONAL | SEC_ASN1_CONSTRUCTED | SEC_ASN1_CONTEXT_SPECIFIC | 0, + offsetof(PrivateKeyInfo, attributes), ckmk_SetOfAttributeTemplate }, + { 0 } +}; + +#define CKMK_PRIVATE_KEY_INFO_VERSION 0 +static CK_RV +ckmk_CreateRSAKeyBlob( + RSAPrivateKey *lk, + NSSItem *keyBlob) +{ + PrivateKeyInfo *pki = NULL; + PLArenaPool *arena = NULL; + SECOidTag algorithm = SEC_OID_UNKNOWN; + void *dummy; + SECStatus rv; + SECItem *encodedKey = NULL; + CK_RV error = CKR_OK; + + arena = PORT_NewArena(2048); /* XXX different size? */ + if (!arena) { + error = CKR_HOST_MEMORY; + goto loser; + } + + pki = (PrivateKeyInfo *)PORT_ArenaZAlloc(arena, sizeof(PrivateKeyInfo)); + if (!pki) { + error = CKR_HOST_MEMORY; + goto loser; + } + pki->arena = arena; + + dummy = SEC_ASN1EncodeItem(arena, &pki->privateKey, lk, + ckmk_RSAPrivateKeyTemplate); + algorithm = SEC_OID_PKCS1_RSA_ENCRYPTION; + + if (!dummy) { + error = CKR_DEVICE_ERROR; /* should map NSS SECError */ + goto loser; + } + + rv = SECOID_SetAlgorithmID(arena, &pki->algorithm, algorithm, + (SECItem *)NULL); + if (rv != SECSuccess) { + error = CKR_DEVICE_ERROR; /* should map NSS SECError */ + goto loser; + } + + dummy = SEC_ASN1EncodeInteger(arena, &pki->version, + CKMK_PRIVATE_KEY_INFO_VERSION); + if (!dummy) { + error = CKR_DEVICE_ERROR; /* should map NSS SECError */ + goto loser; + } + + encodedKey = SEC_ASN1EncodeItem(NULL, NULL, pki, + ckmk_PrivateKeyInfoTemplate); + if (!encodedKey) { + error = CKR_DEVICE_ERROR; + goto loser; + } + + keyBlob->data = nss_ZNEWARRAY(NULL, char, encodedKey->len); + if (NULL == keyBlob->data) { + error = CKR_HOST_MEMORY; + goto loser; + } + nsslibc_memcpy(keyBlob->data, encodedKey->data, encodedKey->len); + keyBlob->size = encodedKey->len; + +loser: + if (arena) { + PORT_FreeArena(arena, PR_TRUE); + } + if (encodedKey) { + SECITEM_FreeItem(encodedKey, PR_TRUE); + } + + return error; +} +/* + * There MUST be a better way to do this. For now, find the key based on the + * default name Apple gives it once we import. + */ +#define IMPORTED_NAME "Imported Private Key" +static CK_RV +ckmk_FindImportedKey( + SecKeychainRef keychainRef, + SecItemClass itemClass, + SecKeychainItemRef *outItemRef) +{ + OSStatus macErr; + SecKeychainSearchRef searchRef = 0; + SecKeychainItemRef newItemRef; + + macErr = SecKeychainSearchCreateFromAttributes(keychainRef, itemClass, + NULL, &searchRef); + if (noErr != macErr) { + CKMK_MACERR("Can't search for Key", macErr); + return CKR_GENERAL_ERROR; + } + while (noErr == SecKeychainSearchCopyNext(searchRef, &newItemRef)) { + SecKeychainAttributeList *attrList = NULL; + SecKeychainAttributeInfo attrInfo; + SecItemAttr itemAttr = kSecKeyPrintName; + PRUint32 attrFormat = 0; + OSStatus macErr; + + attrInfo.count = 1; + attrInfo.tag = &itemAttr; + attrInfo.format = &attrFormat; + + macErr = SecKeychainItemCopyAttributesAndData(newItemRef, + &attrInfo, NULL, &attrList, NULL, NULL); + if (noErr == macErr) { + if (nsslibc_memcmp(attrList->attr->data, IMPORTED_NAME, + attrList->attr->length, NULL) == 0) { + *outItemRef = newItemRef; + CFRelease(searchRef); + SecKeychainItemFreeAttributesAndData(attrList, NULL); + return CKR_OK; + } + SecKeychainItemFreeAttributesAndData(attrList, NULL); + } + CFRelease(newItemRef); + } + CFRelease(searchRef); + return CKR_GENERAL_ERROR; /* we can come up with something better! */ +} + +static ckmkInternalObject * +nss_ckmk_CreatePrivateKey( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSItem attribute; + RSAPrivateKey lk; + NSSItem keyID; + char *nickname = NULL; + ckmkInternalObject *io = NULL; + CK_KEY_TYPE keyType; + OSStatus macErr; + SecKeychainItemRef itemRef = 0; + NSSItem keyBlob = { NULL, 0 }; + CFDataRef dataRef = 0; + SecExternalFormat inputFormat = kSecFormatBSAFE; + /*SecExternalFormat inputFormat = kSecFormatOpenSSL; */ + SecExternalItemType itemType = kSecItemTypePrivateKey; + SecKeyImportExportParameters keyParams; + SecKeychainRef targetKeychain = 0; + unsigned char zero = 0; + CK_RV error; + + keyParams.version = SEC_KEY_IMPORT_EXPORT_PARAMS_VERSION; + keyParams.flags = 0; + keyParams.passphrase = 0; + keyParams.alertTitle = 0; + keyParams.alertPrompt = 0; + keyParams.accessRef = 0; /* default */ + keyParams.keyUsage = 0; /* will get filled in */ + keyParams.keyAttributes = CSSM_KEYATTR_PERMANENT; /* will get filled in */ + keyType = nss_ckmk_GetULongAttribute(CKA_KEY_TYPE, pTemplate, ulAttributeCount, pError); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + if (CKK_RSA != keyType) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (ckmkInternalObject *)NULL; + } + if (nss_ckmk_GetBoolAttribute(CKA_DECRYPT, + pTemplate, ulAttributeCount, CK_TRUE)) { + keyParams.keyUsage |= CSSM_KEYUSE_DECRYPT; + } + if (nss_ckmk_GetBoolAttribute(CKA_UNWRAP, + pTemplate, ulAttributeCount, CK_TRUE)) { + keyParams.keyUsage |= CSSM_KEYUSE_UNWRAP; + } + if (nss_ckmk_GetBoolAttribute(CKA_SIGN, + pTemplate, ulAttributeCount, CK_TRUE)) { + keyParams.keyUsage |= CSSM_KEYUSE_SIGN; + } + if (nss_ckmk_GetBoolAttribute(CKA_DERIVE, + pTemplate, ulAttributeCount, CK_FALSE)) { + keyParams.keyUsage |= CSSM_KEYUSE_DERIVE; + } + if (nss_ckmk_GetBoolAttribute(CKA_SENSITIVE, + pTemplate, ulAttributeCount, CK_TRUE)) { + keyParams.keyAttributes |= CSSM_KEYATTR_SENSITIVE; + } + if (nss_ckmk_GetBoolAttribute(CKA_EXTRACTABLE, + pTemplate, ulAttributeCount, CK_TRUE)) { + keyParams.keyAttributes |= CSSM_KEYATTR_EXTRACTABLE; + } + + lk.version.type = siUnsignedInteger; + lk.version.data = &zero; + lk.version.len = 1; + + *pError = nss_ckmk_GetAttribute(CKA_MODULUS, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.modulus.type = siUnsignedInteger; + lk.modulus.data = attribute.data; + lk.modulus.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_PUBLIC_EXPONENT, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.publicExponent.type = siUnsignedInteger; + lk.publicExponent.data = attribute.data; + lk.publicExponent.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_PRIVATE_EXPONENT, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.privateExponent.type = siUnsignedInteger; + lk.privateExponent.data = attribute.data; + lk.privateExponent.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_PRIME_1, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.prime1.type = siUnsignedInteger; + lk.prime1.data = attribute.data; + lk.prime1.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_PRIME_2, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.prime2.type = siUnsignedInteger; + lk.prime2.data = attribute.data; + lk.prime2.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_EXPONENT_1, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.exponent1.type = siUnsignedInteger; + lk.exponent1.data = attribute.data; + lk.exponent1.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_EXPONENT_2, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.exponent2.type = siUnsignedInteger; + lk.exponent2.data = attribute.data; + lk.exponent2.len = attribute.size; + + *pError = nss_ckmk_GetAttribute(CKA_COEFFICIENT, pTemplate, + ulAttributeCount, &attribute); + if (CKR_OK != *pError) { + return (ckmkInternalObject *)NULL; + } + lk.coefficient.type = siUnsignedInteger; + lk.coefficient.data = attribute.data; + lk.coefficient.len = attribute.size; + + /* ASN1 Encode the pkcs8 structure... look at softoken to see how this + * is done... */ + error = ckmk_CreateRSAKeyBlob(&lk, &keyBlob); + if (CKR_OK != error) { + goto loser; + } + + dataRef = CFDataCreate(NULL, (UInt8 *)keyBlob.data, keyBlob.size); + if (0 == dataRef) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + *pError == ckmk_GetSafeDefaultKeychain(&targetKeychain); + if (CKR_OK != *pError) { + goto loser; + } + + /* the itemArray that is returned is useless. the item does not + * is 'not on the key chain' so none of the modify calls work on it. + * It also has a key that isn't the same key as the one in the actual + * key chain. In short it isn't the item we want, and it gives us zero + * information about the item we want, so don't even bother with it... + */ + macErr = SecKeychainItemImport(dataRef, NULL, &inputFormat, &itemType, 0, + &keyParams, targetKeychain, NULL); + if (noErr != macErr) { + CKMK_MACERR("Import Private Key", macErr); + *pError = CKR_GENERAL_ERROR; + goto loser; + } + + *pError = ckmk_FindImportedKey(targetKeychain, + CSSM_DL_DB_RECORD_PRIVATE_KEY, + &itemRef); + if (CKR_OK != *pError) { +#ifdef DEBUG + fprintf(stderr, "couldn't find key in keychain \n"); +#endif + goto loser; + } + + /* set the CKA_ID and the CKA_LABEL */ + error = nss_ckmk_GetAttribute(CKA_ID, pTemplate, + ulAttributeCount, &keyID); + if (CKR_OK == error) { + error = ckmk_updateAttribute(itemRef, kSecKeyLabel, + keyID.data, keyID.size, "Modify Key ID"); +#ifdef DEBUG + itemdump("key id: ", keyID.data, keyID.size, error); +#endif + } + nickname = nss_ckmk_GetStringAttribute(CKA_LABEL, pTemplate, + ulAttributeCount, &error); + if (nickname) { + ckmk_updateAttribute(itemRef, kSecKeyPrintName, nickname, + strlen(nickname) + 1, "Modify Key Label"); + } else { +#define DEFAULT_NICKNAME "NSS Imported Key" + ckmk_updateAttribute(itemRef, kSecKeyPrintName, DEFAULT_NICKNAME, + sizeof(DEFAULT_NICKNAME), "Modify Key Label"); + } + + io = nss_ckmk_NewInternalObject(CKO_PRIVATE_KEY, itemRef, + CSSM_DL_DB_RECORD_PRIVATE_KEY, pError); + if ((ckmkInternalObject *)NULL == io) { + CFRelease(itemRef); + } + + return io; + +loser: + /* free the key blob */ + if (keyBlob.data) { + nss_ZFreeIf(keyBlob.data); + } + if (0 != targetKeychain) { + CFRelease(targetKeychain); + } + if (0 != dataRef) { + CFRelease(dataRef); + } + return io; +} + +NSS_EXTERN NSSCKMDObject * +nss_ckmk_CreateObject( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + CK_OBJECT_CLASS objClass; + ckmkInternalObject *io = NULL; + CK_BBOOL isToken; + + /* + * only create token objects + */ + isToken = nss_ckmk_GetBoolAttribute(CKA_TOKEN, pTemplate, + ulAttributeCount, CK_FALSE); + if (!isToken) { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + return (NSSCKMDObject *)NULL; + } + + /* + * only create keys and certs. + */ + objClass = nss_ckmk_GetULongAttribute(CKA_CLASS, pTemplate, + ulAttributeCount, pError); + if (CKR_OK != *pError) { + return (NSSCKMDObject *)NULL; + } +#ifdef notdef + if (objClass == CKO_PUBLIC_KEY) { + return CKR_OK; /* fake public key creation, happens as a side effect of + * private key creation */ + } +#endif + if (objClass == CKO_CERTIFICATE) { + io = nss_ckmk_CreateCertificate(fwSession, pTemplate, + ulAttributeCount, pError); + } else if (objClass == CKO_PRIVATE_KEY) { + io = nss_ckmk_CreatePrivateKey(fwSession, pTemplate, + ulAttributeCount, pError); + } else { + *pError = CKR_ATTRIBUTE_VALUE_INVALID; + } + + if ((ckmkInternalObject *)NULL == io) { + return (NSSCKMDObject *)NULL; + } + return nss_ckmk_CreateMDObject(NULL, io, pError); +} diff --git a/security/nss/lib/ckfw/nssmkey/mrsa.c b/security/nss/lib/ckfw/nssmkey/mrsa.c new file mode 100644 index 000000000..00175b47a --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/mrsa.c @@ -0,0 +1,479 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckmk.h" + +/* Sigh, For all the talk about 'ease of use', apple has hidden the interfaces + * needed to be able to truly use CSSM. These came from their modification + * to NSS's S/MIME code. The following two functions currently are not + * part of the SecKey.h interface. + */ +OSStatus +SecKeyGetCredentials( + SecKeyRef keyRef, + CSSM_ACL_AUTHORIZATION_TAG authTag, + int type, + const CSSM_ACCESS_CREDENTIALS **creds); + +/* this function could be implemented using 'SecKeychainItemCopyKeychain' and + * 'SecKeychainGetCSPHandle' */ +OSStatus +SecKeyGetCSPHandle( + SecKeyRef keyRef, + CSSM_CSP_HANDLE *cspHandle); + +typedef struct ckmkInternalCryptoOperationRSAPrivStr + ckmkInternalCryptoOperationRSAPriv; +struct ckmkInternalCryptoOperationRSAPrivStr { + NSSCKMDCryptoOperation mdOperation; + NSSCKMDMechanism *mdMechanism; + ckmkInternalObject *iKey; + NSSItem *buffer; + CSSM_CC_HANDLE cssmContext; +}; + +typedef enum { + CKMK_DECRYPT, + CKMK_SIGN +} ckmkRSAOpType; + +/* + * ckmk_mdCryptoOperationRSAPriv_Create + */ +static NSSCKMDCryptoOperation * +ckmk_mdCryptoOperationRSAPriv_Create( + const NSSCKMDCryptoOperation *proto, + NSSCKMDMechanism *mdMechanism, + NSSCKMDObject *mdKey, + ckmkRSAOpType type, + CK_RV *pError) +{ + ckmkInternalObject *iKey = (ckmkInternalObject *)mdKey->etc; + const NSSItem *classItem = nss_ckmk_FetchAttribute(iKey, CKA_CLASS, pError); + const NSSItem *keyType = nss_ckmk_FetchAttribute(iKey, CKA_KEY_TYPE, pError); + ckmkInternalCryptoOperationRSAPriv *iOperation; + SecKeyRef privateKey; + OSStatus macErr; + CSSM_RETURN cssmErr; + const CSSM_KEY *cssmKey; + CSSM_CSP_HANDLE cspHandle; + const CSSM_ACCESS_CREDENTIALS *creds = NULL; + CSSM_CC_HANDLE cssmContext; + CSSM_ACL_AUTHORIZATION_TAG authType; + + /* make sure we have the right objects */ + if (((const NSSItem *)NULL == classItem) || + (sizeof(CK_OBJECT_CLASS) != classItem->size) || + (CKO_PRIVATE_KEY != *(CK_OBJECT_CLASS *)classItem->data) || + ((const NSSItem *)NULL == keyType) || + (sizeof(CK_KEY_TYPE) != keyType->size) || + (CKK_RSA != *(CK_KEY_TYPE *)keyType->data)) { + *pError = CKR_KEY_TYPE_INCONSISTENT; + return (NSSCKMDCryptoOperation *)NULL; + } + + privateKey = (SecKeyRef)iKey->u.item.itemRef; + macErr = SecKeyGetCSSMKey(privateKey, &cssmKey); + if (noErr != macErr) { + CKMK_MACERR("Getting CSSM Key", macErr); + *pError = CKR_KEY_HANDLE_INVALID; + return (NSSCKMDCryptoOperation *)NULL; + } + macErr = SecKeyGetCSPHandle(privateKey, &cspHandle); + if (noErr != macErr) { + CKMK_MACERR("Getting CSP for Key", macErr); + *pError = CKR_KEY_HANDLE_INVALID; + return (NSSCKMDCryptoOperation *)NULL; + } + switch (type) { + case CKMK_DECRYPT: + authType = CSSM_ACL_AUTHORIZATION_DECRYPT; + break; + case CKMK_SIGN: + authType = CSSM_ACL_AUTHORIZATION_SIGN; + break; + default: + *pError = CKR_GENERAL_ERROR; +#ifdef DEBUG + fprintf(stderr, "RSAPriv_Create: bad type = %d\n", type); +#endif + return (NSSCKMDCryptoOperation *)NULL; + } + + macErr = SecKeyGetCredentials(privateKey, authType, 0, &creds); + if (noErr != macErr) { + CKMK_MACERR("Getting Credentials for Key", macErr); + *pError = CKR_KEY_HANDLE_INVALID; + return (NSSCKMDCryptoOperation *)NULL; + } + + switch (type) { + case CKMK_DECRYPT: + cssmErr = CSSM_CSP_CreateAsymmetricContext(cspHandle, CSSM_ALGID_RSA, + creds, cssmKey, CSSM_PADDING_PKCS1, &cssmContext); + break; + case CKMK_SIGN: + cssmErr = CSSM_CSP_CreateSignatureContext(cspHandle, CSSM_ALGID_RSA, + creds, cssmKey, &cssmContext); + break; + default: + *pError = CKR_GENERAL_ERROR; +#ifdef DEBUG + fprintf(stderr, "RSAPriv_Create: bad type = %d\n", type); +#endif + return (NSSCKMDCryptoOperation *)NULL; + } + if (noErr != cssmErr) { + CKMK_MACERR("Getting Context for Key", cssmErr); + *pError = CKR_GENERAL_ERROR; + return (NSSCKMDCryptoOperation *)NULL; + } + + iOperation = nss_ZNEW(NULL, ckmkInternalCryptoOperationRSAPriv); + if ((ckmkInternalCryptoOperationRSAPriv *)NULL == iOperation) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDCryptoOperation *)NULL; + } + iOperation->mdMechanism = mdMechanism; + iOperation->iKey = iKey; + iOperation->cssmContext = cssmContext; + + nsslibc_memcpy(&iOperation->mdOperation, + proto, sizeof(NSSCKMDCryptoOperation)); + iOperation->mdOperation.etc = iOperation; + + return &iOperation->mdOperation; +} + +static void +ckmk_mdCryptoOperationRSAPriv_Destroy( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + ckmkInternalCryptoOperationRSAPriv *iOperation = + (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc; + + if (iOperation->buffer) { + nssItem_Destroy(iOperation->buffer); + } + if (iOperation->cssmContext) { + CSSM_DeleteContext(iOperation->cssmContext); + } + nss_ZFreeIf(iOperation); + return; +} + +static CK_ULONG +ckmk_mdCryptoOperationRSA_GetFinalLength( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + ckmkInternalCryptoOperationRSAPriv *iOperation = + (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc; + const NSSItem *modulus = + nss_ckmk_FetchAttribute(iOperation->iKey, CKA_MODULUS, pError); + + return modulus->size; +} + +/* + * ckmk_mdCryptoOperationRSADecrypt_GetOperationLength + * we won't know the length until we actually decrypt the + * input block. Since we go to all the work to decrypt the + * the block, we'll save if for when the block is asked for + */ +static CK_ULONG +ckmk_mdCryptoOperationRSADecrypt_GetOperationLength( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *input, + CK_RV *pError) +{ + ckmkInternalCryptoOperationRSAPriv *iOperation = + (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc; + CSSM_DATA cssmInput; + CSSM_DATA cssmOutput = { 0, NULL }; + PRUint32 bytesDecrypted; + CSSM_DATA remainder = { 0, NULL }; + NSSItem output; + CSSM_RETURN cssmErr; + + if (iOperation->buffer) { + return iOperation->buffer->size; + } + + cssmInput.Data = input->data; + cssmInput.Length = input->size; + + cssmErr = CSSM_DecryptData(iOperation->cssmContext, + &cssmInput, 1, &cssmOutput, 1, + &bytesDecrypted, &remainder); + if (CSSM_OK != cssmErr) { + CKMK_MACERR("Decrypt Failed", cssmErr); + *pError = CKR_DATA_INVALID; + return 0; + } + /* we didn't suppy any buffers, so it should all be in remainder */ + output.data = nss_ZNEWARRAY(NULL, char, bytesDecrypted + remainder.Length); + if (NULL == output.data) { + free(cssmOutput.Data); + free(remainder.Data); + *pError = CKR_HOST_MEMORY; + return 0; + } + output.size = bytesDecrypted + remainder.Length; + + if (0 != bytesDecrypted) { + nsslibc_memcpy(output.data, cssmOutput.Data, bytesDecrypted); + free(cssmOutput.Data); + } + if (0 != remainder.Length) { + nsslibc_memcpy(((char *)output.data) + bytesDecrypted, + remainder.Data, remainder.Length); + free(remainder.Data); + } + + iOperation->buffer = nssItem_Duplicate(&output, NULL, NULL); + nss_ZFreeIf(output.data); + if ((NSSItem *)NULL == iOperation->buffer) { + *pError = CKR_HOST_MEMORY; + return 0; + } + + return iOperation->buffer->size; +} + +/* + * ckmk_mdCryptoOperationRSADecrypt_UpdateFinal + * + * NOTE: ckmk_mdCryptoOperationRSADecrypt_GetOperationLength is presumed to + * have been called previously. + */ +static CK_RV +ckmk_mdCryptoOperationRSADecrypt_UpdateFinal( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *input, + NSSItem *output) +{ + ckmkInternalCryptoOperationRSAPriv *iOperation = + (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc; + NSSItem *buffer = iOperation->buffer; + + if ((NSSItem *)NULL == buffer) { + return CKR_GENERAL_ERROR; + } + nsslibc_memcpy(output->data, buffer->data, buffer->size); + output->size = buffer->size; + return CKR_OK; +} + +/* + * ckmk_mdCryptoOperationRSASign_UpdateFinal + * + */ +static CK_RV +ckmk_mdCryptoOperationRSASign_UpdateFinal( + NSSCKMDCryptoOperation *mdOperation, + NSSCKFWCryptoOperation *fwOperation, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + const NSSItem *input, + NSSItem *output) +{ + ckmkInternalCryptoOperationRSAPriv *iOperation = + (ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc; + CSSM_DATA cssmInput; + CSSM_DATA cssmOutput = { 0, NULL }; + CSSM_RETURN cssmErr; + + cssmInput.Data = input->data; + cssmInput.Length = input->size; + + cssmErr = CSSM_SignData(iOperation->cssmContext, &cssmInput, 1, + CSSM_ALGID_NONE, &cssmOutput); + if (CSSM_OK != cssmErr) { + CKMK_MACERR("Signed Failed", cssmErr); + return CKR_FUNCTION_FAILED; + } + if (cssmOutput.Length > output->size) { + free(cssmOutput.Data); + return CKR_BUFFER_TOO_SMALL; + } + nsslibc_memcpy(output->data, cssmOutput.Data, cssmOutput.Length); + free(cssmOutput.Data); + output->size = cssmOutput.Length; + + return CKR_OK; +} + +NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation + ckmk_mdCryptoOperationRSADecrypt_proto = { + NULL, /* etc */ + ckmk_mdCryptoOperationRSAPriv_Destroy, + NULL, /* GetFinalLengh - not needed for one shot Decrypt/Encrypt */ + ckmk_mdCryptoOperationRSADecrypt_GetOperationLength, + NULL, /* Final - not needed for one shot operation */ + NULL, /* Update - not needed for one shot operation */ + NULL, /* DigetUpdate - not needed for one shot operation */ + ckmk_mdCryptoOperationRSADecrypt_UpdateFinal, + NULL, /* UpdateCombo - not needed for one shot operation */ + NULL, /* DigetKey - not needed for one shot operation */ + (void *)NULL /* null terminator */ + }; + +NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation + ckmk_mdCryptoOperationRSASign_proto = { + NULL, /* etc */ + ckmk_mdCryptoOperationRSAPriv_Destroy, + ckmk_mdCryptoOperationRSA_GetFinalLength, + NULL, /* GetOperationLengh - not needed for one shot Sign/Verify */ + NULL, /* Final - not needed for one shot operation */ + NULL, /* Update - not needed for one shot operation */ + NULL, /* DigetUpdate - not needed for one shot operation */ + ckmk_mdCryptoOperationRSASign_UpdateFinal, + NULL, /* UpdateCombo - not needed for one shot operation */ + NULL, /* DigetKey - not needed for one shot operation */ + (void *)NULL /* null terminator */ + }; + +/********** NSSCKMDMechansim functions ***********************/ +/* + * ckmk_mdMechanismRSA_Destroy + */ +static void +ckmk_mdMechanismRSA_Destroy( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nss_ZFreeIf(fwMechanism); +} + +/* + * ckmk_mdMechanismRSA_GetMinKeySize + */ +static CK_ULONG +ckmk_mdMechanismRSA_GetMinKeySize( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return 384; +} + +/* + * ckmk_mdMechanismRSA_GetMaxKeySize + */ +static CK_ULONG +ckmk_mdMechanismRSA_GetMaxKeySize( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return 16384; +} + +/* + * ckmk_mdMechanismRSA_DecryptInit + */ +static NSSCKMDCryptoOperation * +ckmk_mdMechanismRSA_DecryptInit( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError) +{ + return ckmk_mdCryptoOperationRSAPriv_Create( + &ckmk_mdCryptoOperationRSADecrypt_proto, + mdMechanism, mdKey, CKMK_DECRYPT, pError); +} + +/* + * ckmk_mdMechanismRSA_SignInit + */ +static NSSCKMDCryptoOperation * +ckmk_mdMechanismRSA_SignInit( + NSSCKMDMechanism *mdMechanism, + NSSCKFWMechanism *fwMechanism, + CK_MECHANISM *pMechanism, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKMDObject *mdKey, + NSSCKFWObject *fwKey, + CK_RV *pError) +{ + return ckmk_mdCryptoOperationRSAPriv_Create( + &ckmk_mdCryptoOperationRSASign_proto, + mdMechanism, mdKey, CKMK_SIGN, pError); +} + +NSS_IMPLEMENT_DATA const NSSCKMDMechanism + nss_ckmk_mdMechanismRSA = { + (void *)NULL, /* etc */ + ckmk_mdMechanismRSA_Destroy, + ckmk_mdMechanismRSA_GetMinKeySize, + ckmk_mdMechanismRSA_GetMaxKeySize, + NULL, /* GetInHardware - default false */ + NULL, /* EncryptInit - default errs */ + ckmk_mdMechanismRSA_DecryptInit, + NULL, /* DigestInit - default errs*/ + ckmk_mdMechanismRSA_SignInit, + NULL, /* VerifyInit - default errs */ + ckmk_mdMechanismRSA_SignInit, /* SignRecoverInit */ + NULL, /* VerifyRecoverInit - default errs */ + NULL, /* GenerateKey - default errs */ + NULL, /* GenerateKeyPair - default errs */ + NULL, /* GetWrapKeyLength - default errs */ + NULL, /* WrapKey - default errs */ + NULL, /* UnwrapKey - default errs */ + NULL, /* DeriveKey - default errs */ + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/nssmkey/msession.c b/security/nss/lib/ckfw/nssmkey/msession.c new file mode 100644 index 000000000..e6a29244a --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/msession.c @@ -0,0 +1,87 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckmk.h" + +/* + * nssmkey/msession.c + * + * This file implements the NSSCKMDSession object for the + * "nssmkey" cryptoki module. + */ + +static NSSCKMDFindObjects * +ckmk_mdSession_FindObjectsInit( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + return nss_ckmk_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError); +} + +static NSSCKMDObject * +ckmk_mdSession_CreateObject( + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + return nss_ckmk_CreateObject(fwSession, pTemplate, ulAttributeCount, pError); +} + +NSS_IMPLEMENT NSSCKMDSession * +nss_ckmk_CreateSession( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ + NSSArena *arena; + NSSCKMDSession *rv; + + arena = NSSCKFWSession_GetArena(fwSession, pError); + if ((NSSArena *)NULL == arena) { + return (NSSCKMDSession *)NULL; + } + + rv = nss_ZNEW(arena, NSSCKMDSession); + if ((NSSCKMDSession *)NULL == rv) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDSession *)NULL; + } + + /* + * rv was zeroed when allocated, so we only + * need to set the non-zero members. + */ + + rv->etc = (void *)fwSession; + /* rv->Close */ + /* rv->GetDeviceError */ + /* rv->Login */ + /* rv->Logout */ + /* rv->InitPIN */ + /* rv->SetPIN */ + /* rv->GetOperationStateLen */ + /* rv->GetOperationState */ + /* rv->SetOperationState */ + rv->CreateObject = ckmk_mdSession_CreateObject; + /* rv->CopyObject */ + rv->FindObjectsInit = ckmk_mdSession_FindObjectsInit; + /* rv->SeedRandom */ + /* rv->GetRandom */ + /* rv->null */ + + return rv; +} diff --git a/security/nss/lib/ckfw/nssmkey/mslot.c b/security/nss/lib/ckfw/nssmkey/mslot.c new file mode 100644 index 000000000..b2747ff7b --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/mslot.c @@ -0,0 +1,81 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckmk.h" + +/* + * nssmkey/mslot.c + * + * This file implements the NSSCKMDSlot object for the + * "nssmkey" cryptoki module. + */ + +static NSSUTF8 * +ckmk_mdSlot_GetSlotDescription( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_SlotDescription; +} + +static NSSUTF8 * +ckmk_mdSlot_GetManufacturerID( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_ManufacturerID; +} + +static CK_VERSION +ckmk_mdSlot_GetHardwareVersion( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckmk_HardwareVersion; +} + +static CK_VERSION +ckmk_mdSlot_GetFirmwareVersion( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckmk_FirmwareVersion; +} + +static NSSCKMDToken * +ckmk_mdSlot_GetToken( + NSSCKMDSlot *mdSlot, + NSSCKFWSlot *fwSlot, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSCKMDToken *)&nss_ckmk_mdToken; +} + +NSS_IMPLEMENT_DATA const NSSCKMDSlot + nss_ckmk_mdSlot = { + (void *)NULL, /* etc */ + NULL, /* Initialize */ + NULL, /* Destroy */ + ckmk_mdSlot_GetSlotDescription, + ckmk_mdSlot_GetManufacturerID, + NULL, /* GetTokenPresent -- defaults to true */ + NULL, /* GetRemovableDevice -- defaults to false */ + NULL, /* GetHardwareSlot -- defaults to false */ + ckmk_mdSlot_GetHardwareVersion, + ckmk_mdSlot_GetFirmwareVersion, + ckmk_mdSlot_GetToken, + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/nssmkey/mtoken.c b/security/nss/lib/ckfw/nssmkey/mtoken.c new file mode 100644 index 000000000..e18d61240 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/mtoken.c @@ -0,0 +1,184 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "ckmk.h" + +/* + * nssmkey/mtoken.c + * + * This file implements the NSSCKMDToken object for the + * "nssmkey" cryptoki module. + */ + +static NSSUTF8 * +ckmk_mdToken_GetLabel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_TokenLabel; +} + +static NSSUTF8 * +ckmk_mdToken_GetManufacturerID( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_ManufacturerID; +} + +static NSSUTF8 * +ckmk_mdToken_GetModel( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_TokenModel; +} + +static NSSUTF8 * +ckmk_mdToken_GetSerialNumber( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + return (NSSUTF8 *)nss_ckmk_TokenSerialNumber; +} + +static CK_BBOOL +ckmk_mdToken_GetIsWriteProtected( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_FALSE; +} + +/* fake out Mozilla so we don't try to initialize the token */ +static CK_BBOOL +ckmk_mdToken_GetUserPinInitialized( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return CK_TRUE; +} + +static CK_VERSION +ckmk_mdToken_GetHardwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckmk_HardwareVersion; +} + +static CK_VERSION +ckmk_mdToken_GetFirmwareVersion( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return nss_ckmk_FirmwareVersion; +} + +static NSSCKMDSession * +ckmk_mdToken_OpenSession( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSCKFWSession *fwSession, + CK_BBOOL rw, + CK_RV *pError) +{ + return nss_ckmk_CreateSession(fwSession, pError); +} + +static CK_ULONG +ckmk_mdToken_GetMechanismCount( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + return (CK_ULONG)1; +} + +static CK_RV +ckmk_mdToken_GetMechanismTypes( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_MECHANISM_TYPE types[]) +{ + types[0] = CKM_RSA_PKCS; + return CKR_OK; +} + +static NSSCKMDMechanism * +ckmk_mdToken_GetMechanism( + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_MECHANISM_TYPE which, + CK_RV *pError) +{ + if (which != CKM_RSA_PKCS) { + *pError = CKR_MECHANISM_INVALID; + return (NSSCKMDMechanism *)NULL; + } + return (NSSCKMDMechanism *)&nss_ckmk_mdMechanismRSA; +} + +NSS_IMPLEMENT_DATA const NSSCKMDToken + nss_ckmk_mdToken = { + (void *)NULL, /* etc */ + NULL, /* Setup */ + NULL, /* Invalidate */ + NULL, /* InitToken -- default errs */ + ckmk_mdToken_GetLabel, + ckmk_mdToken_GetManufacturerID, + ckmk_mdToken_GetModel, + ckmk_mdToken_GetSerialNumber, + NULL, /* GetHasRNG -- default is false */ + ckmk_mdToken_GetIsWriteProtected, + NULL, /* GetLoginRequired -- default is false */ + ckmk_mdToken_GetUserPinInitialized, + NULL, /* GetRestoreKeyNotNeeded -- irrelevant */ + NULL, /* GetHasClockOnToken -- default is false */ + NULL, /* GetHasProtectedAuthenticationPath -- default is false */ + NULL, /* GetSupportsDualCryptoOperations -- default is false */ + NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetMaxPinLen -- irrelevant */ + NULL, /* GetMinPinLen -- irrelevant */ + NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ + NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */ + ckmk_mdToken_GetHardwareVersion, + ckmk_mdToken_GetFirmwareVersion, + NULL, /* GetUTCTime -- no clock */ + ckmk_mdToken_OpenSession, + ckmk_mdToken_GetMechanismCount, + ckmk_mdToken_GetMechanismTypes, + ckmk_mdToken_GetMechanism, + (void *)NULL /* null terminator */ + }; diff --git a/security/nss/lib/ckfw/nssmkey/nssmkey.def b/security/nss/lib/ckfw/nssmkey/nssmkey.def new file mode 100644 index 000000000..45d307ff0 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/nssmkey.def @@ -0,0 +1,26 @@ +;+# +;+# This Source Code Form is subject to the terms of the Mozilla Public +;+# License, v. 2.0. If a copy of the MPL was not distributed with this +;+# file, You can obtain one at http://mozilla.org/MPL/2.0/. +;+# +;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS +;+# 1. For all unix platforms, the string ";-" means "remove this line" +;+# 2. For all unix platforms, the string " DATA " will be removed from any +;+# line on which it occurs. +;+# 3. Lines containing ";+" will have ";+" removed on SUN and LINUX. +;+# On AIX, lines containing ";+" will be removed. +;+# 4. For all unix platforms, the string ";;" will thave the ";;" removed. +;+# 5. For all unix platforms, after the above processing has taken place, +;+# all characters after the first ";" on the line will be removed. +;+# And for AIX, the first ";" will also be removed. +;+# This file is passed directly to windows. Since ';' is a comment, all UNIX +;+# directives are hidden behind ";", ";+", and ";-" +;+ +;+NSSMKEY_3.0 { # First release of nssmkey +;+ global: +LIBRARY nssmkey ;- +EXPORTS ;- +C_GetFunctionList; +;+ local: +;+*; +;+}; diff --git a/security/nss/lib/ckfw/nssmkey/nssmkey.h b/security/nss/lib/ckfw/nssmkey/nssmkey.h new file mode 100644 index 000000000..ba58233e6 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/nssmkey.h @@ -0,0 +1,41 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef NSSMKEY_H +#define NSSMKEY_H + +/* + * NSS CKMK Version numbers. + * + * These are the version numbers for the nssmkey module packaged with + * this release on NSS. To determine the version numbers of the builtin + * module you are using, use the appropriate PKCS #11 calls. + * + * These version numbers detail changes to the PKCS #11 interface. They map + * to the PKCS #11 spec versions. + */ +#define NSS_CKMK_CRYPTOKI_VERSION_MAJOR 2 +#define NSS_CKMK_CRYPTOKI_VERSION_MINOR 20 + +/* These version numbers detail the changes + * to the list of trusted certificates. + * + * NSS_CKMK_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_CKMK_LIBRARY_VERSION_MAJOR 1 +#define NSS_CKMK_LIBRARY_VERSION_MINOR 1 +#define NSS_CKMK_LIBRARY_VERSION "1.1" + +/* These version numbers detail the semantic changes to the ckfw engine. */ +#define NSS_CKMK_HARDWARE_VERSION_MAJOR 1 +#define NSS_CKMK_HARDWARE_VERSION_MINOR 0 + +/* These version numbers detail the semantic changes to ckbi itself + * (new PKCS #11 objects), etc. */ +#define NSS_CKMK_FIRMWARE_VERSION_MAJOR 1 +#define NSS_CKMK_FIRMWARE_VERSION_MINOR 0 + +#endif /* NSSMKEY_H */ diff --git a/security/nss/lib/ckfw/nssmkey/staticobj.c b/security/nss/lib/ckfw/nssmkey/staticobj.c new file mode 100644 index 000000000..5f3bb7c72 --- /dev/null +++ b/security/nss/lib/ckfw/nssmkey/staticobj.c @@ -0,0 +1,36 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef CKMK_H +#include "ckmk.h" +#endif /* CKMK_H */ + +static const CK_TRUST ckt_netscape_valid = CKT_NETSCAPE_VALID; +static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE; +static const CK_TRUST ckt_netscape_trusted_delegator = CKT_NETSCAPE_TRUSTED_DELEGATOR; +static const CK_OBJECT_CLASS cko_netscape_trust = CKO_NETSCAPE_TRUST; +static const CK_BBOOL ck_true = CK_TRUE; +static const CK_OBJECT_CLASS cko_data = CKO_DATA; +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_builtin_root_list = CKO_NETSCAPE_BUILTIN_ROOT_LIST; + +/* example of a static object */ +static const CK_ATTRIBUTE_TYPE nss_ckmk_types_1[] = { + CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL +}; + +static const NSSItem nss_ckmk_items_1[] = { + { (void *)&cko_data, (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 *)"Mozilla Mac Key Ring Access", (PRUint32)28 } +}; + +ckmkInternalObject nss_ckmk_data[] = { + { ckmkRaw, { { 5, nss_ckmk_types_1, nss_ckmk_items_1 } }, CKO_DATA, { NULL } }, +}; + +const PRUint32 nss_ckmk_nObjects = 1; diff --git a/security/nss/lib/ckfw/object.c b/security/nss/lib/ckfw/object.c new file mode 100644 index 000000000..ff0542ee4 --- /dev/null +++ b/security/nss/lib/ckfw/object.c @@ -0,0 +1,973 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * object.c + * + * This file implements the NSSCKFWObject type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWObject + * + * -- create/destroy -- + * nssCKFWObject_Create + * nssCKFWObject_Finalize + * nssCKFWObject_Destroy + * + * -- public accessors -- + * NSSCKFWObject_GetMDObject + * NSSCKFWObject_GetArena + * NSSCKFWObject_IsTokenObject + * NSSCKFWObject_GetAttributeCount + * NSSCKFWObject_GetAttributeTypes + * NSSCKFWObject_GetAttributeSize + * NSSCKFWObject_GetAttribute + * NSSCKFWObject_SetAttribute + * NSSCKFWObject_GetObjectSize + * + * -- implement public accessors -- + * nssCKFWObject_GetMDObject + * nssCKFWObject_GetArena + * + * -- private accessors -- + * nssCKFWObject_SetHandle + * nssCKFWObject_GetHandle + * + * -- module fronts -- + * nssCKFWObject_IsTokenObject + * nssCKFWObject_GetAttributeCount + * nssCKFWObject_GetAttributeTypes + * nssCKFWObject_GetAttributeSize + * nssCKFWObject_GetAttribute + * nssCKFWObject_SetAttribute + * nssCKFWObject_GetObjectSize + */ + +struct NSSCKFWObjectStr { + NSSCKFWMutex *mutex; /* merely to serialise the MDObject calls */ + NSSArena *arena; + NSSCKMDObject *mdObject; + NSSCKMDSession *mdSession; + NSSCKFWSession *fwSession; + NSSCKMDToken *mdToken; + NSSCKFWToken *fwToken; + NSSCKMDInstance *mdInstance; + NSSCKFWInstance *fwInstance; + CK_OBJECT_HANDLE hObject; +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +object_add_pointer( + const NSSCKFWObject *fwObject) +{ + return CKR_OK; +} + +static CK_RV +object_remove_pointer( + const NSSCKFWObject *fwObject) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWObject_verifyPointer( + const NSSCKFWObject *fwObject) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWObject_Create + * + */ +NSS_IMPLEMENT NSSCKFWObject * +nssCKFWObject_Create( + NSSArena *arena, + NSSCKMDObject *mdObject, + NSSCKFWSession *fwSession, + NSSCKFWToken *fwToken, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + NSSCKFWObject *fwObject; + nssCKFWHash *mdObjectHash; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWObject *)NULL; + } + + if (PR_SUCCESS != nssArena_verifyPointer(arena)) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWObject *)NULL; + } +#endif /* NSSDEBUG */ + + if (!fwToken) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWObject *)NULL; + } + mdObjectHash = nssCKFWToken_GetMDObjectHash(fwToken); + if (!mdObjectHash) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWObject *)NULL; + } + + if (nssCKFWHash_Exists(mdObjectHash, mdObject)) { + fwObject = nssCKFWHash_Lookup(mdObjectHash, mdObject); + return fwObject; + } + + fwObject = nss_ZNEW(arena, NSSCKFWObject); + if (!fwObject) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWObject *)NULL; + } + + fwObject->arena = arena; + fwObject->mdObject = mdObject; + fwObject->fwSession = fwSession; + + if (fwSession) { + fwObject->mdSession = nssCKFWSession_GetMDSession(fwSession); + } + + fwObject->fwToken = fwToken; + fwObject->mdToken = nssCKFWToken_GetMDToken(fwToken); + fwObject->fwInstance = fwInstance; + fwObject->mdInstance = nssCKFWInstance_GetMDInstance(fwInstance); + fwObject->mutex = nssCKFWInstance_CreateMutex(fwInstance, arena, pError); + if (!fwObject->mutex) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + nss_ZFreeIf(fwObject); + return (NSSCKFWObject *)NULL; + } + + *pError = nssCKFWHash_Add(mdObjectHash, mdObject, fwObject); + if (CKR_OK != *pError) { + nss_ZFreeIf(fwObject); + return (NSSCKFWObject *)NULL; + } + +#ifdef DEBUG + *pError = object_add_pointer(fwObject); + if (CKR_OK != *pError) { + nssCKFWHash_Remove(mdObjectHash, mdObject); + nss_ZFreeIf(fwObject); + return (NSSCKFWObject *)NULL; + } +#endif /* DEBUG */ + + *pError = CKR_OK; + return fwObject; +} + +/* + * nssCKFWObject_Finalize + * + */ +NSS_IMPLEMENT void +nssCKFWObject_Finalize( + NSSCKFWObject *fwObject, + PRBool removeFromHash) +{ + nssCKFWHash *mdObjectHash; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return; + } +#endif /* NSSDEBUG */ + + (void)nssCKFWMutex_Destroy(fwObject->mutex); + + if (fwObject->mdObject->Finalize) { + fwObject->mdObject->Finalize(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance); + } + + if (removeFromHash) { + mdObjectHash = nssCKFWToken_GetMDObjectHash(fwObject->fwToken); + if (mdObjectHash) { + nssCKFWHash_Remove(mdObjectHash, fwObject->mdObject); + } + } + + if (fwObject->fwSession) { + nssCKFWSession_DeregisterSessionObject(fwObject->fwSession, fwObject); + } + nss_ZFreeIf(fwObject); + +#ifdef DEBUG + (void)object_remove_pointer(fwObject); +#endif /* DEBUG */ + + return; +} + +/* + * nssCKFWObject_Destroy + * + */ +NSS_IMPLEMENT void +nssCKFWObject_Destroy( + NSSCKFWObject *fwObject) +{ + nssCKFWHash *mdObjectHash; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return; + } +#endif /* NSSDEBUG */ + + (void)nssCKFWMutex_Destroy(fwObject->mutex); + + if (fwObject->mdObject->Destroy) { + fwObject->mdObject->Destroy(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance); + } + + mdObjectHash = nssCKFWToken_GetMDObjectHash(fwObject->fwToken); + if (mdObjectHash) { + nssCKFWHash_Remove(mdObjectHash, fwObject->mdObject); + } + + if (fwObject->fwSession) { + nssCKFWSession_DeregisterSessionObject(fwObject->fwSession, fwObject); + } + nss_ZFreeIf(fwObject); + +#ifdef DEBUG + (void)object_remove_pointer(fwObject); +#endif /* DEBUG */ + + return; +} + +/* + * nssCKFWObject_GetMDObject + * + */ +NSS_IMPLEMENT NSSCKMDObject * +nssCKFWObject_GetMDObject( + NSSCKFWObject *fwObject) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return (NSSCKMDObject *)NULL; + } +#endif /* NSSDEBUG */ + + return fwObject->mdObject; +} + +/* + * nssCKFWObject_GetArena + * + */ +NSS_IMPLEMENT NSSArena * +nssCKFWObject_GetArena( + NSSCKFWObject *fwObject, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* NSSDEBUG */ + + return fwObject->arena; +} + +/* + * nssCKFWObject_SetHandle + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWObject_SetHandle( + NSSCKFWObject *fwObject, + CK_OBJECT_HANDLE hObject) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + +#ifdef NSSDEBUG + error = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + if ((CK_OBJECT_HANDLE)0 != fwObject->hObject) { + return CKR_GENERAL_ERROR; + } + + fwObject->hObject = hObject; + + return CKR_OK; +} + +/* + * nssCKFWObject_GetHandle + * + */ +NSS_IMPLEMENT CK_OBJECT_HANDLE +nssCKFWObject_GetHandle( + NSSCKFWObject *fwObject) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return (CK_OBJECT_HANDLE)0; + } +#endif /* NSSDEBUG */ + + return fwObject->hObject; +} + +/* + * nssCKFWObject_IsTokenObject + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWObject_IsTokenObject( + NSSCKFWObject *fwObject) +{ + CK_BBOOL b = CK_FALSE; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwObject->mdObject->IsTokenObject) { + NSSItem item; + NSSItem *pItem; + CK_RV rv = CKR_OK; + + item.data = (void *)&b; + item.size = sizeof(b); + + pItem = nssCKFWObject_GetAttribute(fwObject, CKA_TOKEN, &item, + (NSSArena *)NULL, &rv); + if (!pItem) { + /* Error of some type */ + b = CK_FALSE; + goto done; + } + + goto done; + } + + b = fwObject->mdObject->IsTokenObject(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance); + +done: + return b; +} + +/* + * nssCKFWObject_GetAttributeCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWObject_GetAttributeCount( + NSSCKFWObject *fwObject, + CK_RV *pError) +{ + CK_ULONG rv; + +#ifdef NSSDEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (!fwObject->mdObject->GetAttributeCount) { + *pError = CKR_GENERAL_ERROR; + return (CK_ULONG)0; + } + + *pError = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } + + rv = fwObject->mdObject->GetAttributeCount(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance, + pError); + + (void)nssCKFWMutex_Unlock(fwObject->mutex); + return rv; +} + +/* + * nssCKFWObject_GetAttributeTypes + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWObject_GetAttributeTypes( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != error) { + return error; + } + + if ((CK_ATTRIBUTE_TYPE_PTR)NULL == typeArray) { + return CKR_ARGUMENTS_BAD; + } +#endif /* NSSDEBUG */ + + if (!fwObject->mdObject->GetAttributeTypes) { + return CKR_GENERAL_ERROR; + } + + error = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != error) { + return error; + } + + error = fwObject->mdObject->GetAttributeTypes(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance, + typeArray, ulCount); + + (void)nssCKFWMutex_Unlock(fwObject->mutex); + return error; +} + +/* + * nssCKFWObject_GetAttributeSize + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWObject_GetAttributeSize( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + CK_ULONG rv; + +#ifdef NSSDEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (!fwObject->mdObject->GetAttributeSize) { + *pError = CKR_GENERAL_ERROR; + return (CK_ULONG)0; + } + + *pError = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } + + rv = fwObject->mdObject->GetAttributeSize(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance, + attribute, pError); + + (void)nssCKFWMutex_Unlock(fwObject->mutex); + return rv; +} + +/* + * nssCKFWObject_GetAttribute + * + * Usual NSS allocation rules: + * If itemOpt is not NULL, it will be returned; otherwise an NSSItem + * will be allocated. If itemOpt is not NULL but itemOpt->data is, + * the buffer will be allocated; otherwise, the buffer will be used. + * Any allocations will come from the optional arena, if one is + * specified. + */ +NSS_IMPLEMENT NSSItem * +nssCKFWObject_GetAttribute( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *itemOpt, + NSSArena *arenaOpt, + CK_RV *pError) +{ + NSSItem *rv = (NSSItem *)NULL; + NSSCKFWItem mdItem; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSItem *)NULL; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (NSSItem *)NULL; + } +#endif /* NSSDEBUG */ + + if (!fwObject->mdObject->GetAttribute) { + *pError = CKR_GENERAL_ERROR; + return (NSSItem *)NULL; + } + + *pError = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != *pError) { + return (NSSItem *)NULL; + } + + mdItem = fwObject->mdObject->GetAttribute(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance, + attribute, pError); + + if (!mdItem.item) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + + goto done; + } + + if (!itemOpt) { + rv = nss_ZNEW(arenaOpt, NSSItem); + if (!rv) { + *pError = CKR_HOST_MEMORY; + goto done; + } + } else { + rv = itemOpt; + } + + if (!rv->data) { + rv->size = mdItem.item->size; + rv->data = nss_ZAlloc(arenaOpt, rv->size); + if (!rv->data) { + *pError = CKR_HOST_MEMORY; + if (!itemOpt) { + nss_ZFreeIf(rv); + } + rv = (NSSItem *)NULL; + goto done; + } + } else { + if (rv->size >= mdItem.item->size) { + rv->size = mdItem.item->size; + } else { + *pError = CKR_BUFFER_TOO_SMALL; + /* Should we set rv->size to mdItem->size? */ + /* rv can't have been allocated */ + rv = (NSSItem *)NULL; + goto done; + } + } + + (void)nsslibc_memcpy(rv->data, mdItem.item->data, rv->size); + + if (PR_TRUE == mdItem.needsFreeing) { + PR_ASSERT(fwObject->mdObject->FreeAttribute); + if (fwObject->mdObject->FreeAttribute) { + *pError = fwObject->mdObject->FreeAttribute(&mdItem); + } + } + +done: + (void)nssCKFWMutex_Unlock(fwObject->mutex); + return rv; +} + +/* + * nssCKFWObject_SetAttribute + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWObject_SetAttribute( + NSSCKFWObject *fwObject, + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + if (CKA_TOKEN == attribute) { + /* + * We're changing from a session object to a token object or + * vice-versa. + */ + + CK_ATTRIBUTE a; + NSSCKFWObject *newFwObject; + NSSCKFWObject swab; + + a.type = CKA_TOKEN; + a.pValue = value->data; + a.ulValueLen = value->size; + + newFwObject = nssCKFWSession_CopyObject(fwSession, fwObject, + &a, 1, &error); + if (!newFwObject) { + if (CKR_OK == error) { + error = CKR_GENERAL_ERROR; + } + return error; + } + + /* + * Actually, I bet the locking is worse than this.. this part of + * the code could probably use some scrutiny and reworking. + */ + error = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != error) { + nssCKFWObject_Destroy(newFwObject); + return error; + } + + error = nssCKFWMutex_Lock(newFwObject->mutex); + if (CKR_OK != error) { + nssCKFWMutex_Unlock(fwObject->mutex); + nssCKFWObject_Destroy(newFwObject); + return error; + } + + /* + * Now, we have our new object, but it has a new fwObject pointer, + * while we have to keep the existing one. So quick swap the contents. + */ + swab = *fwObject; + *fwObject = *newFwObject; + *newFwObject = swab; + + /* But keep the mutexes the same */ + swab.mutex = fwObject->mutex; + fwObject->mutex = newFwObject->mutex; + newFwObject->mutex = swab.mutex; + + (void)nssCKFWMutex_Unlock(newFwObject->mutex); + (void)nssCKFWMutex_Unlock(fwObject->mutex); + + /* + * Either remove or add this to the list of session objects + */ + + if (CK_FALSE == *(CK_BBOOL *)value->data) { + /* + * New one is a session object, except since we "stole" the fwObject, it's + * not in the list. Add it. + */ + nssCKFWSession_RegisterSessionObject(fwSession, fwObject); + } else { + /* + * New one is a token object, except since we "stole" the fwObject, it's + * in the list. Remove it. + */ + if (fwObject->fwSession) { + nssCKFWSession_DeregisterSessionObject(fwObject->fwSession, fwObject); + } + } + + /* + * Now delete the old object. Remember the names have changed. + */ + nssCKFWObject_Destroy(newFwObject); + + return CKR_OK; + } else { + /* + * An "ordinary" change. + */ + if (!fwObject->mdObject->SetAttribute) { + /* We could fake it with copying, like above.. later */ + return CKR_ATTRIBUTE_READ_ONLY; + } + + error = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != error) { + return error; + } + + error = fwObject->mdObject->SetAttribute(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance, + attribute, value); + + (void)nssCKFWMutex_Unlock(fwObject->mutex); + + return error; + } +} + +/* + * nssCKFWObject_GetObjectSize + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWObject_GetObjectSize( + NSSCKFWObject *fwObject, + CK_RV *pError) +{ + CK_ULONG rv; + +#ifdef NSSDEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (!fwObject->mdObject->GetObjectSize) { + *pError = CKR_INFORMATION_SENSITIVE; + return (CK_ULONG)0; + } + + *pError = nssCKFWMutex_Lock(fwObject->mutex); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } + + rv = fwObject->mdObject->GetObjectSize(fwObject->mdObject, fwObject, + fwObject->mdSession, fwObject->fwSession, fwObject->mdToken, + fwObject->fwToken, fwObject->mdInstance, fwObject->fwInstance, + pError); + + (void)nssCKFWMutex_Unlock(fwObject->mutex); + return rv; +} + +/* + * NSSCKFWObject_GetMDObject + * + */ +NSS_IMPLEMENT NSSCKMDObject * +NSSCKFWObject_GetMDObject( + NSSCKFWObject *fwObject) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return (NSSCKMDObject *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetMDObject(fwObject); +} + +/* + * NSSCKFWObject_GetArena + * + */ +NSS_IMPLEMENT NSSArena * +NSSCKFWObject_GetArena( + NSSCKFWObject *fwObject, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetArena(fwObject, pError); +} + +/* + * NSSCKFWObject_IsTokenObject + * + */ +NSS_IMPLEMENT CK_BBOOL +NSSCKFWObject_IsTokenObject( + NSSCKFWObject *fwObject) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWObject_verifyPointer(fwObject)) { + return CK_FALSE; + } +#endif /* DEBUG */ + + return nssCKFWObject_IsTokenObject(fwObject); +} + +/* + * NSSCKFWObject_GetAttributeCount + * + */ +NSS_IMPLEMENT CK_ULONG +NSSCKFWObject_GetAttributeCount( + NSSCKFWObject *fwObject, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetAttributeCount(fwObject, pError); +} + +/* + * NSSCKFWObject_GetAttributeTypes + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWObject_GetAttributeTypes( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ +#ifdef DEBUG + CK_RV error = CKR_OK; + + error = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != error) { + return error; + } + + if ((CK_ATTRIBUTE_TYPE_PTR)NULL == typeArray) { + return CKR_ARGUMENTS_BAD; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetAttributeTypes(fwObject, typeArray, ulCount); +} + +/* + * NSSCKFWObject_GetAttributeSize + * + */ +NSS_IMPLEMENT CK_ULONG +NSSCKFWObject_GetAttributeSize( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetAttributeSize(fwObject, attribute, pError); +} + +/* + * NSSCKFWObject_GetAttribute + * + */ +NSS_IMPLEMENT NSSItem * +NSSCKFWObject_GetAttribute( + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *itemOpt, + NSSArena *arenaOpt, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (NSSItem *)NULL; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (NSSItem *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetAttribute(fwObject, attribute, itemOpt, arenaOpt, pError); +} + +/* + * NSSCKFWObject_GetObjectSize + * + */ +NSS_IMPLEMENT CK_ULONG +NSSCKFWObject_GetObjectSize( + NSSCKFWObject *fwObject, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } +#endif /* DEBUG */ + + return nssCKFWObject_GetObjectSize(fwObject, pError); +} diff --git a/security/nss/lib/ckfw/session.c b/security/nss/lib/ckfw/session.c new file mode 100644 index 000000000..a3119345c --- /dev/null +++ b/security/nss/lib/ckfw/session.c @@ -0,0 +1,2390 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * session.c + * + * This file implements the NSSCKFWSession type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWSession + * + * -- create/destroy -- + * nssCKFWSession_Create + * nssCKFWSession_Destroy + * + * -- public accessors -- + * NSSCKFWSession_GetMDSession + * NSSCKFWSession_GetArena + * NSSCKFWSession_CallNotification + * NSSCKFWSession_IsRWSession + * NSSCKFWSession_IsSO + * NSSCKFWSession_GetFWSlot + * + * -- implement public accessors -- + * nssCKFWSession_GetMDSession + * nssCKFWSession_GetArena + * nssCKFWSession_CallNotification + * nssCKFWSession_IsRWSession + * nssCKFWSession_IsSO + * nssCKFWSession_GetFWSlot + * + * -- private accessors -- + * nssCKFWSession_GetSessionState + * nssCKFWSession_SetFWFindObjects + * nssCKFWSession_GetFWFindObjects + * nssCKFWSession_SetMDSession + * nssCKFWSession_SetHandle + * nssCKFWSession_GetHandle + * nssCKFWSession_RegisterSessionObject + * nssCKFWSession_DeegisterSessionObject + * + * -- module fronts -- + * nssCKFWSession_GetDeviceError + * nssCKFWSession_Login + * nssCKFWSession_Logout + * nssCKFWSession_InitPIN + * nssCKFWSession_SetPIN + * nssCKFWSession_GetOperationStateLen + * nssCKFWSession_GetOperationState + * nssCKFWSession_SetOperationState + * nssCKFWSession_CreateObject + * nssCKFWSession_CopyObject + * nssCKFWSession_FindObjectsInit + * nssCKFWSession_SeedRandom + * nssCKFWSession_GetRandom + */ + +struct NSSCKFWSessionStr { + NSSArena *arena; + NSSCKMDSession *mdSession; + NSSCKFWToken *fwToken; + NSSCKMDToken *mdToken; + NSSCKFWInstance *fwInstance; + NSSCKMDInstance *mdInstance; + CK_VOID_PTR pApplication; + CK_NOTIFY Notify; + + /* + * Everything above is set at creation time, and then not modified. + * The items below are atomic. No locking required. If we fear + * about pointer-copies being nonatomic, we'll lock fwFindObjects. + */ + + CK_BBOOL rw; + NSSCKFWFindObjects *fwFindObjects; + NSSCKFWCryptoOperation *fwOperationArray[NSSCKFWCryptoOperationState_Max]; + nssCKFWHash *sessionObjectHash; + CK_SESSION_HANDLE hSession; +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +session_add_pointer( + const NSSCKFWSession *fwSession) +{ + return CKR_OK; +} + +static CK_RV +session_remove_pointer( + const NSSCKFWSession *fwSession) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWSession_verifyPointer( + const NSSCKFWSession *fwSession) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWSession_Create + * + */ +NSS_IMPLEMENT NSSCKFWSession * +nssCKFWSession_Create( + NSSCKFWToken *fwToken, + CK_BBOOL rw, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_RV *pError) +{ + NSSArena *arena = (NSSArena *)NULL; + NSSCKFWSession *fwSession; + NSSCKFWSlot *fwSlot; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWSession *)NULL; + } + + *pError = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != *pError) { + return (NSSCKFWSession *)NULL; + } +#endif /* NSSDEBUG */ + + arena = NSSArena_Create(); + if (!arena) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWSession *)NULL; + } + + fwSession = nss_ZNEW(arena, NSSCKFWSession); + if (!fwSession) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fwSession->arena = arena; + fwSession->mdSession = (NSSCKMDSession *)NULL; /* set later */ + fwSession->fwToken = fwToken; + fwSession->mdToken = nssCKFWToken_GetMDToken(fwToken); + + fwSlot = nssCKFWToken_GetFWSlot(fwToken); + fwSession->fwInstance = nssCKFWSlot_GetFWInstance(fwSlot); + fwSession->mdInstance = nssCKFWSlot_GetMDInstance(fwSlot); + + fwSession->rw = rw; + fwSession->pApplication = pApplication; + fwSession->Notify = Notify; + + fwSession->fwFindObjects = (NSSCKFWFindObjects *)NULL; + + fwSession->sessionObjectHash = nssCKFWHash_Create(fwSession->fwInstance, arena, pError); + if (!fwSession->sessionObjectHash) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + +#ifdef DEBUG + *pError = session_add_pointer(fwSession); + if (CKR_OK != *pError) { + goto loser; + } +#endif /* DEBUG */ + + return fwSession; + +loser: + if (arena) { + if (fwSession && fwSession->sessionObjectHash) { + (void)nssCKFWHash_Destroy(fwSession->sessionObjectHash); + } + NSSArena_Destroy(arena); + } + + return (NSSCKFWSession *)NULL; +} + +static void +nss_ckfw_session_object_destroy_iterator( + const void *key, + void *value, + void *closure) +{ + NSSCKFWObject *fwObject = (NSSCKFWObject *)value; + nssCKFWObject_Finalize(fwObject, PR_TRUE); +} + +/* + * nssCKFWSession_Destroy + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Destroy( + NSSCKFWSession *fwSession, + CK_BBOOL removeFromTokenHash) +{ + CK_RV error = CKR_OK; + nssCKFWHash *sessionObjectHash; + NSSCKFWCryptoOperationState i; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + if (removeFromTokenHash) { + error = nssCKFWToken_RemoveSession(fwSession->fwToken, fwSession); + } + + /* + * Invalidate session objects + */ + + sessionObjectHash = fwSession->sessionObjectHash; + fwSession->sessionObjectHash = (nssCKFWHash *)NULL; + + nssCKFWHash_Iterate(sessionObjectHash, + nss_ckfw_session_object_destroy_iterator, + (void *)NULL); + + for (i = 0; i < NSSCKFWCryptoOperationState_Max; i++) { + if (fwSession->fwOperationArray[i]) { + nssCKFWCryptoOperation_Destroy(fwSession->fwOperationArray[i]); + } + } + +#ifdef DEBUG + (void)session_remove_pointer(fwSession); +#endif /* DEBUG */ + (void)nssCKFWHash_Destroy(sessionObjectHash); + NSSArena_Destroy(fwSession->arena); + + return error; +} + +/* + * nssCKFWSession_GetMDSession + * + */ +NSS_IMPLEMENT NSSCKMDSession * +nssCKFWSession_GetMDSession( + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return (NSSCKMDSession *)NULL; + } +#endif /* NSSDEBUG */ + + return fwSession->mdSession; +} + +/* + * nssCKFWSession_GetArena + * + */ +NSS_IMPLEMENT NSSArena * +nssCKFWSession_GetArena( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* NSSDEBUG */ + + return fwSession->arena; +} + +/* + * nssCKFWSession_CallNotification + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_CallNotification( + NSSCKFWSession *fwSession, + CK_NOTIFICATION event) +{ + CK_RV error = CKR_OK; + CK_SESSION_HANDLE handle; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + if ((CK_NOTIFY)NULL == fwSession->Notify) { + return CKR_OK; + } + + handle = nssCKFWInstance_FindSessionHandle(fwSession->fwInstance, fwSession); + if ((CK_SESSION_HANDLE)0 == handle) { + return CKR_GENERAL_ERROR; + } + + error = fwSession->Notify(handle, event, fwSession->pApplication); + + return error; +} + +/* + * nssCKFWSession_IsRWSession + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWSession_IsRWSession( + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + return fwSession->rw; +} + +/* + * nssCKFWSession_IsSO + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWSession_IsSO( + NSSCKFWSession *fwSession) +{ + CK_STATE state; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + state = nssCKFWToken_GetSessionState(fwSession->fwToken); + switch (state) { + case CKS_RO_PUBLIC_SESSION: + case CKS_RO_USER_FUNCTIONS: + case CKS_RW_PUBLIC_SESSION: + case CKS_RW_USER_FUNCTIONS: + return CK_FALSE; + case CKS_RW_SO_FUNCTIONS: + return CK_TRUE; + default: + return CK_FALSE; + } +} + +/* + * nssCKFWSession_GetFWSlot + * + */ +NSS_IMPLEMENT NSSCKFWSlot * +nssCKFWSession_GetFWSlot( + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return (NSSCKFWSlot *)NULL; + } +#endif /* NSSDEBUG */ + + return nssCKFWToken_GetFWSlot(fwSession->fwToken); +} + +/* + * nssCFKWSession_GetSessionState + * + */ +NSS_IMPLEMENT CK_STATE +nssCKFWSession_GetSessionState( + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CKS_RO_PUBLIC_SESSION; /* whatever */ + } +#endif /* NSSDEBUG */ + + return nssCKFWToken_GetSessionState(fwSession->fwToken); +} + +/* + * nssCKFWSession_SetFWFindObjects + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_SetFWFindObjects( + NSSCKFWSession *fwSession, + NSSCKFWFindObjects *fwFindObjects) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + +/* fwFindObjects may be null */ +#endif /* NSSDEBUG */ + + if ((fwSession->fwFindObjects) && + (fwFindObjects)) { + return CKR_OPERATION_ACTIVE; + } + + fwSession->fwFindObjects = fwFindObjects; + + return CKR_OK; +} + +/* + * nssCKFWSession_GetFWFindObjects + * + */ +NSS_IMPLEMENT NSSCKFWFindObjects * +nssCKFWSession_GetFWFindObjects( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWFindObjects *)NULL; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != *pError) { + return (NSSCKFWFindObjects *)NULL; + } +#endif /* NSSDEBUG */ + + if (!fwSession->fwFindObjects) { + *pError = CKR_OPERATION_NOT_INITIALIZED; + return (NSSCKFWFindObjects *)NULL; + } + + return fwSession->fwFindObjects; +} + +/* + * nssCKFWSession_SetMDSession + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_SetMDSession( + NSSCKFWSession *fwSession, + NSSCKMDSession *mdSession) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!mdSession) { + return CKR_ARGUMENTS_BAD; + } +#endif /* NSSDEBUG */ + + if (fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } + + fwSession->mdSession = mdSession; + + return CKR_OK; +} + +/* + * nssCKFWSession_SetHandle + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_SetHandle( + NSSCKFWSession *fwSession, + CK_SESSION_HANDLE hSession) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + if ((CK_SESSION_HANDLE)0 != fwSession->hSession) { + return CKR_GENERAL_ERROR; + } + + fwSession->hSession = hSession; + + return CKR_OK; +} + +/* + * nssCKFWSession_GetHandle + * + */ +NSS_IMPLEMENT CK_SESSION_HANDLE +nssCKFWSession_GetHandle( + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return NULL; + } +#endif /* NSSDEBUG */ + + return fwSession->hSession; +} + +/* + * nssCKFWSession_RegisterSessionObject + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_RegisterSessionObject( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ + CK_RV rv = CKR_OK; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + if (fwSession->sessionObjectHash) { + rv = nssCKFWHash_Add(fwSession->sessionObjectHash, fwObject, fwObject); + } + + return rv; +} + +/* + * nssCKFWSession_DeregisterSessionObject + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_DeregisterSessionObject( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + if (fwSession->sessionObjectHash) { + nssCKFWHash_Remove(fwSession->sessionObjectHash, fwObject); + } + + return CKR_OK; +} + +/* + * nssCKFWSession_GetDeviceError + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWSession_GetDeviceError( + NSSCKFWSession *fwSession) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return (CK_ULONG)0; + } + + if (!fwSession->mdSession) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (!fwSession->mdSession->GetDeviceError) { + return (CK_ULONG)0; + } + + return fwSession->mdSession->GetDeviceError(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance); +} + +/* + * nssCKFWSession_Login + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Login( + NSSCKFWSession *fwSession, + CK_USER_TYPE userType, + NSSItem *pin) +{ + CK_RV error = CKR_OK; + CK_STATE oldState; + CK_STATE newState; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + switch (userType) { + case CKU_SO: + case CKU_USER: + break; + default: + return CKR_USER_TYPE_INVALID; + } + + if (!pin) { + if (CK_TRUE != nssCKFWToken_GetHasProtectedAuthenticationPath(fwSession->fwToken)) { + return CKR_ARGUMENTS_BAD; + } + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + oldState = nssCKFWToken_GetSessionState(fwSession->fwToken); + + /* + * It's not clear what happens when you're already logged in. + * I'll just fail; but if we decide to change, the logic is + * all right here. + */ + + if (CKU_SO == userType) { + switch (oldState) { + case CKS_RO_PUBLIC_SESSION: + /* + * There's no such thing as a read-only security officer + * session, so fail. The error should be CKR_SESSION_READ_ONLY, + * except that C_Login isn't defined to return that. So we'll + * do CKR_SESSION_READ_ONLY_EXISTS, which is what is documented. + */ + return CKR_SESSION_READ_ONLY_EXISTS; + case CKS_RO_USER_FUNCTIONS: + return CKR_USER_ANOTHER_ALREADY_LOGGED_IN; + case CKS_RW_PUBLIC_SESSION: + newState = + CKS_RW_SO_FUNCTIONS; + break; + case CKS_RW_USER_FUNCTIONS: + return CKR_USER_ANOTHER_ALREADY_LOGGED_IN; + case CKS_RW_SO_FUNCTIONS: + return CKR_USER_ALREADY_LOGGED_IN; + default: + return CKR_GENERAL_ERROR; + } + } else /* CKU_USER == userType */ { + switch (oldState) { + case CKS_RO_PUBLIC_SESSION: + newState = + CKS_RO_USER_FUNCTIONS; + break; + case CKS_RO_USER_FUNCTIONS: + return CKR_USER_ALREADY_LOGGED_IN; + case CKS_RW_PUBLIC_SESSION: + newState = + CKS_RW_USER_FUNCTIONS; + break; + case CKS_RW_USER_FUNCTIONS: + return CKR_USER_ALREADY_LOGGED_IN; + case CKS_RW_SO_FUNCTIONS: + return CKR_USER_ANOTHER_ALREADY_LOGGED_IN; + default: + return CKR_GENERAL_ERROR; + } + } + + /* + * So now we're in one of three cases: + * + * Old == CKS_RW_PUBLIC_SESSION, New == CKS_RW_SO_FUNCTIONS; + * Old == CKS_RW_PUBLIC_SESSION, New == CKS_RW_USER_FUNCTIONS; + * Old == CKS_RO_PUBLIC_SESSION, New == CKS_RO_USER_FUNCTIONS; + */ + + if (!fwSession->mdSession->Login) { + /* + * The Module doesn't want to be informed (or check the pin) + * it'll just rely on the Framework as needed. + */ + ; + } else { + error = fwSession->mdSession->Login(fwSession->mdSession, fwSession, + fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, userType, pin, oldState, newState); + if (CKR_OK != error) { + return error; + } + } + + (void)nssCKFWToken_SetSessionState(fwSession->fwToken, newState); + return CKR_OK; +} + +/* + * nssCKFWSession_Logout + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Logout( + NSSCKFWSession *fwSession) +{ + CK_RV error = CKR_OK; + CK_STATE oldState; + CK_STATE newState; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + oldState = nssCKFWToken_GetSessionState(fwSession->fwToken); + + switch (oldState) { + case CKS_RO_PUBLIC_SESSION: + return CKR_USER_NOT_LOGGED_IN; + case CKS_RO_USER_FUNCTIONS: + newState = CKS_RO_PUBLIC_SESSION; + break; + case CKS_RW_PUBLIC_SESSION: + return CKR_USER_NOT_LOGGED_IN; + case CKS_RW_USER_FUNCTIONS: + newState = CKS_RW_PUBLIC_SESSION; + break; + case CKS_RW_SO_FUNCTIONS: + newState = CKS_RW_PUBLIC_SESSION; + break; + default: + return CKR_GENERAL_ERROR; + } + + /* + * So now we're in one of three cases: + * + * Old == CKS_RW_SO_FUNCTIONS, New == CKS_RW_PUBLIC_SESSION; + * Old == CKS_RW_USER_FUNCTIONS, New == CKS_RW_PUBLIC_SESSION; + * Old == CKS_RO_USER_FUNCTIONS, New == CKS_RO_PUBLIC_SESSION; + */ + + if (!fwSession->mdSession->Logout) { + /* + * The Module doesn't want to be informed. Okay. + */ + ; + } else { + error = fwSession->mdSession->Logout(fwSession->mdSession, fwSession, + fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, oldState, newState); + if (CKR_OK != error) { + /* + * Now what?! A failure really should end up with the Framework + * considering it logged out, right? + */ + ; + } + } + + (void)nssCKFWToken_SetSessionState(fwSession->fwToken, newState); + return error; +} + +/* + * nssCKFWSession_InitPIN + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_InitPIN( + NSSCKFWSession *fwSession, + NSSItem *pin) +{ + CK_RV error = CKR_OK; + CK_STATE state; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + state = nssCKFWToken_GetSessionState(fwSession->fwToken); + if (CKS_RW_SO_FUNCTIONS != state) { + return CKR_USER_NOT_LOGGED_IN; + } + + if (!pin) { + CK_BBOOL has = nssCKFWToken_GetHasProtectedAuthenticationPath(fwSession->fwToken); + if (CK_TRUE != has) { + return CKR_ARGUMENTS_BAD; + } + } + + if (!fwSession->mdSession->InitPIN) { + return CKR_TOKEN_WRITE_PROTECTED; + } + + error = fwSession->mdSession->InitPIN(fwSession->mdSession, fwSession, + fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, pin); + + return error; +} + +/* + * nssCKFWSession_SetPIN + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_SetPIN( + NSSCKFWSession *fwSession, + NSSItem *oldPin, + NSSItem *newPin) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + if (!newPin) { + CK_BBOOL has = nssCKFWToken_GetHasProtectedAuthenticationPath(fwSession->fwToken); + if (CK_TRUE != has) { + return CKR_ARGUMENTS_BAD; + } + } + + if (!oldPin) { + CK_BBOOL has = nssCKFWToken_GetHasProtectedAuthenticationPath(fwSession->fwToken); + if (CK_TRUE != has) { + return CKR_ARGUMENTS_BAD; + } + } + + if (!fwSession->mdSession->SetPIN) { + return CKR_TOKEN_WRITE_PROTECTED; + } + + error = fwSession->mdSession->SetPIN(fwSession->mdSession, fwSession, + fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, oldPin, newPin); + + return error; +} + +/* + * nssCKFWSession_GetOperationStateLen + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWSession_GetOperationStateLen( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ + CK_ULONG mdAmt; + CK_ULONG fwAmt; + +#ifdef NSSDEBUG + if (!pError) { + return (CK_ULONG)0; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != *pError) { + return (CK_ULONG)0; + } + + if (!fwSession->mdSession) { + *pError = CKR_GENERAL_ERROR; + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (!fwSession->mdSession->GetOperationStateLen) { + *pError = CKR_STATE_UNSAVEABLE; + return (CK_ULONG)0; + } + + /* + * We could check that the session is actually in some state.. + */ + + mdAmt = fwSession->mdSession->GetOperationStateLen(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, pError); + + if (((CK_ULONG)0 == mdAmt) && (CKR_OK != *pError)) { + return (CK_ULONG)0; + } + + /* + * Add a bit of sanity-checking + */ + fwAmt = mdAmt + 2 * sizeof(CK_ULONG); + + return fwAmt; +} + +/* + * nssCKFWSession_GetOperationState + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_GetOperationState( + NSSCKFWSession *fwSession, + NSSItem *buffer) +{ + CK_RV error = CKR_OK; + CK_ULONG fwAmt; + CK_ULONG *ulBuffer; + NSSItem i2; + CK_ULONG n, i; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!buffer) { + return CKR_ARGUMENTS_BAD; + } + + if (!buffer->data) { + return CKR_ARGUMENTS_BAD; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + if (!fwSession->mdSession->GetOperationState) { + return CKR_STATE_UNSAVEABLE; + } + + /* + * Sanity-check the caller's buffer. + */ + + error = CKR_OK; + fwAmt = nssCKFWSession_GetOperationStateLen(fwSession, &error); + if (((CK_ULONG)0 == fwAmt) && (CKR_OK != error)) { + return error; + } + + if (buffer->size < fwAmt) { + return CKR_BUFFER_TOO_SMALL; + } + + ulBuffer = (CK_ULONG *)buffer->data; + + i2.size = buffer->size - 2 * sizeof(CK_ULONG); + i2.data = (void *)&ulBuffer[2]; + + error = fwSession->mdSession->GetOperationState(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance, &i2); + + if (CKR_OK != error) { + return error; + } + + /* + * Add a little integrety/identity check. + * NOTE: right now, it's pretty stupid. + * A CRC or something would be better. + */ + + ulBuffer[0] = 0x434b4657; /* CKFW */ + ulBuffer[1] = 0; + n = i2.size / sizeof(CK_ULONG); + for (i = 0; i < n; i++) { + ulBuffer[1] ^= ulBuffer[2 + i]; + } + + return CKR_OK; +} + +/* + * nssCKFWSession_SetOperationState + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_SetOperationState( + NSSCKFWSession *fwSession, + NSSItem *state, + NSSCKFWObject *encryptionKey, + NSSCKFWObject *authenticationKey) +{ + CK_RV error = CKR_OK; + CK_ULONG *ulBuffer; + CK_ULONG n, i; + CK_ULONG x; + NSSItem s; + NSSCKMDObject *mdek; + NSSCKMDObject *mdak; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!state) { + return CKR_ARGUMENTS_BAD; + } + + if (!state->data) { + return CKR_ARGUMENTS_BAD; + } + + if (encryptionKey) { + error = nssCKFWObject_verifyPointer(encryptionKey); + if (CKR_OK != error) { + return error; + } + } + + if (authenticationKey) { + error = nssCKFWObject_verifyPointer(authenticationKey); + if (CKR_OK != error) { + return error; + } + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + ulBuffer = (CK_ULONG *)state->data; + if (0x43b4657 != ulBuffer[0]) { + return CKR_SAVED_STATE_INVALID; + } + n = (state->size / sizeof(CK_ULONG)) - 2; + x = (CK_ULONG)0; + for (i = 0; i < n; i++) { + x ^= ulBuffer[2 + i]; + } + + if (x != ulBuffer[1]) { + return CKR_SAVED_STATE_INVALID; + } + + if (!fwSession->mdSession->SetOperationState) { + return CKR_GENERAL_ERROR; + } + + s.size = state->size - 2 * sizeof(CK_ULONG); + s.data = (void *)&ulBuffer[2]; + + if (encryptionKey) { + mdek = nssCKFWObject_GetMDObject(encryptionKey); + } else { + mdek = (NSSCKMDObject *)NULL; + } + + if (authenticationKey) { + mdak = nssCKFWObject_GetMDObject(authenticationKey); + } else { + mdak = (NSSCKMDObject *)NULL; + } + + error = fwSession->mdSession->SetOperationState(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, &s, mdek, encryptionKey, mdak, authenticationKey); + + if (CKR_OK != error) { + return error; + } + + /* + * Here'd we restore any session data + */ + + return CKR_OK; +} + +static CK_BBOOL +nss_attributes_form_token_object( + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount) +{ + CK_ULONG i; + CK_BBOOL rv; + + for (i = 0; i < ulAttributeCount; i++) { + if (CKA_TOKEN == pTemplate[i].type) { + /* If we sanity-check, we can remove this sizeof check */ + if (sizeof(CK_BBOOL) == pTemplate[i].ulValueLen) { + (void)nsslibc_memcpy(&rv, pTemplate[i].pValue, sizeof(CK_BBOOL)); + return rv; + } else { + return CK_FALSE; + } + } + } + + return CK_FALSE; +} + +/* + * nssCKFWSession_CreateObject + * + */ +NSS_IMPLEMENT NSSCKFWObject * +nssCKFWSession_CreateObject( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSArena *arena; + NSSCKMDObject *mdObject; + NSSCKFWObject *fwObject; + CK_BBOOL isTokenObject; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWObject *)NULL; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != pError) { + return (NSSCKFWObject *)NULL; + } + + if ((CK_ATTRIBUTE_PTR)NULL == pTemplate) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWObject *)NULL; + } + + if (!fwSession->mdSession) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWObject *)NULL; + } +#endif /* NSSDEBUG */ + + /* + * Here would be an excellent place to sanity-check the object. + */ + + isTokenObject = nss_attributes_form_token_object(pTemplate, ulAttributeCount); + if (CK_TRUE == isTokenObject) { + /* === TOKEN OBJECT === */ + + if (!fwSession->mdSession->CreateObject) { + *pError = CKR_TOKEN_WRITE_PROTECTED; + return (NSSCKFWObject *)NULL; + } + + arena = nssCKFWToken_GetArena(fwSession->fwToken, pError); + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + goto callmdcreateobject; + } else { + /* === SESSION OBJECT === */ + + arena = nssCKFWSession_GetArena(fwSession, pError); + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + if (CK_TRUE == nssCKFWInstance_GetModuleHandlesSessionObjects( + fwSession->fwInstance)) { + /* --- module handles the session object -- */ + + if (!fwSession->mdSession->CreateObject) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWObject *)NULL; + } + + goto callmdcreateobject; + } else { + /* --- framework handles the session object -- */ + mdObject = nssCKMDSessionObject_Create(fwSession->fwToken, + arena, pTemplate, ulAttributeCount, pError); + goto gotmdobject; + } + } + +callmdcreateobject: + mdObject = fwSession->mdSession->CreateObject(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance, arena, pTemplate, + ulAttributeCount, pError); + +gotmdobject: + if (!mdObject) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + fwObject = nssCKFWObject_Create(arena, mdObject, + isTokenObject ? NULL + : fwSession, + fwSession->fwToken, fwSession->fwInstance, pError); + if (!fwObject) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + + if (mdObject->Destroy) { + (void)mdObject->Destroy(mdObject, (NSSCKFWObject *)NULL, + fwSession->mdSession, fwSession, fwSession->mdToken, + fwSession->fwToken, fwSession->mdInstance, fwSession->fwInstance); + } + + return (NSSCKFWObject *)NULL; + } + + if (CK_FALSE == isTokenObject) { + if (CK_FALSE == nssCKFWHash_Exists(fwSession->sessionObjectHash, fwObject)) { + *pError = nssCKFWHash_Add(fwSession->sessionObjectHash, fwObject, fwObject); + if (CKR_OK != *pError) { + nssCKFWObject_Finalize(fwObject, PR_TRUE); + return (NSSCKFWObject *)NULL; + } + } + } + + return fwObject; +} + +/* + * nssCKFWSession_CopyObject + * + */ +NSS_IMPLEMENT NSSCKFWObject * +nssCKFWSession_CopyObject( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + CK_BBOOL oldIsToken; + CK_BBOOL newIsToken; + CK_ULONG i; + NSSCKFWObject *rv; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWObject *)NULL; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != *pError) { + return (NSSCKFWObject *)NULL; + } + + *pError = nssCKFWObject_verifyPointer(fwObject); + if (CKR_OK != *pError) { + return (NSSCKFWObject *)NULL; + } + + if (!fwSession->mdSession) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWObject *)NULL; + } +#endif /* NSSDEBUG */ + + /* + * Sanity-check object + */ + + if (!fwObject) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWObject *)NULL; + } + + oldIsToken = nssCKFWObject_IsTokenObject(fwObject); + + newIsToken = oldIsToken; + for (i = 0; i < ulAttributeCount; i++) { + if (CKA_TOKEN == pTemplate[i].type) { + /* Since we sanity-checked the object, we know this is the right size. */ + (void)nsslibc_memcpy(&newIsToken, pTemplate[i].pValue, sizeof(CK_BBOOL)); + break; + } + } + + /* + * If the Module handles its session objects, or if both the new + * and old object are token objects, use CopyObject if it exists. + */ + + if ((fwSession->mdSession->CopyObject) && + (((CK_TRUE == oldIsToken) && (CK_TRUE == newIsToken)) || + (CK_TRUE == nssCKFWInstance_GetModuleHandlesSessionObjects( + fwSession->fwInstance)))) { + /* use copy object */ + NSSArena *arena; + NSSCKMDObject *mdOldObject; + NSSCKMDObject *mdObject; + + mdOldObject = nssCKFWObject_GetMDObject(fwObject); + + if (CK_TRUE == newIsToken) { + arena = nssCKFWToken_GetArena(fwSession->fwToken, pError); + } else { + arena = nssCKFWSession_GetArena(fwSession, pError); + } + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + mdObject = fwSession->mdSession->CopyObject(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance, mdOldObject, + fwObject, arena, pTemplate, ulAttributeCount, pError); + if (!mdObject) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWObject *)NULL; + } + + rv = nssCKFWObject_Create(arena, mdObject, + newIsToken ? NULL + : fwSession, + fwSession->fwToken, fwSession->fwInstance, pError); + + if (CK_FALSE == newIsToken) { + if (CK_FALSE == nssCKFWHash_Exists(fwSession->sessionObjectHash, rv)) { + *pError = nssCKFWHash_Add(fwSession->sessionObjectHash, rv, rv); + if (CKR_OK != *pError) { + nssCKFWObject_Finalize(rv, PR_TRUE); + return (NSSCKFWObject *)NULL; + } + } + } + + return rv; + } else { + /* use create object */ + NSSArena *tmpArena; + CK_ATTRIBUTE_PTR newTemplate; + CK_ULONG i, j, n, newLength, k; + CK_ATTRIBUTE_TYPE_PTR oldTypes; + NSSCKFWObject *rv; + + n = nssCKFWObject_GetAttributeCount(fwObject, pError); + if ((0 == n) && (CKR_OK != *pError)) { + return (NSSCKFWObject *)NULL; + } + + tmpArena = NSSArena_Create(); + if (!tmpArena) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWObject *)NULL; + } + + oldTypes = nss_ZNEWARRAY(tmpArena, CK_ATTRIBUTE_TYPE, n); + if ((CK_ATTRIBUTE_TYPE_PTR)NULL == oldTypes) { + NSSArena_Destroy(tmpArena); + *pError = CKR_HOST_MEMORY; + return (NSSCKFWObject *)NULL; + } + + *pError = nssCKFWObject_GetAttributeTypes(fwObject, oldTypes, n); + if (CKR_OK != *pError) { + NSSArena_Destroy(tmpArena); + return (NSSCKFWObject *)NULL; + } + + newLength = n; + for (i = 0; i < ulAttributeCount; i++) { + for (j = 0; j < n; j++) { + if (oldTypes[j] == pTemplate[i].type) { + if ((CK_VOID_PTR)NULL == + pTemplate[i].pValue) { + /* Removing the attribute */ + newLength--; + } + break; + } + } + if (j == n) { + /* Not found */ + newLength++; + } + } + + newTemplate = nss_ZNEWARRAY(tmpArena, CK_ATTRIBUTE, newLength); + if ((CK_ATTRIBUTE_PTR)NULL == newTemplate) { + NSSArena_Destroy(tmpArena); + *pError = CKR_HOST_MEMORY; + return (NSSCKFWObject *)NULL; + } + + k = 0; + for (j = 0; j < n; j++) { + for (i = 0; i < ulAttributeCount; i++) { + if (oldTypes[j] == pTemplate[i].type) { + if ((CK_VOID_PTR)NULL == + pTemplate[i].pValue) { + /* This attribute is being deleted */ + ; + } else { + /* This attribute is being replaced */ + newTemplate[k].type = + pTemplate[i].type; + newTemplate[k].pValue = + pTemplate[i].pValue; + newTemplate[k].ulValueLen = + pTemplate[i].ulValueLen; + k++; + } + break; + } + } + if (i == ulAttributeCount) { + /* This attribute is being copied over from the old object */ + NSSItem item, *it; + item.size = 0; + item.data = (void *)NULL; + it = nssCKFWObject_GetAttribute(fwObject, oldTypes[j], + &item, tmpArena, pError); + if (!it) { + if (CKR_OK == + *pError) { + *pError = + CKR_GENERAL_ERROR; + } + NSSArena_Destroy(tmpArena); + return (NSSCKFWObject *)NULL; + } + newTemplate[k].type = oldTypes[j]; + newTemplate[k].pValue = it->data; + newTemplate[k].ulValueLen = it->size; + k++; + } + } + /* assert that k == newLength */ + + rv = nssCKFWSession_CreateObject(fwSession, newTemplate, newLength, pError); + if (!rv) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + NSSArena_Destroy(tmpArena); + return (NSSCKFWObject *)NULL; + } + + NSSArena_Destroy(tmpArena); + return rv; + } +} + +/* + * nssCKFWSession_FindObjectsInit + * + */ +NSS_IMPLEMENT NSSCKFWFindObjects * +nssCKFWSession_FindObjectsInit( + NSSCKFWSession *fwSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_RV *pError) +{ + NSSCKMDFindObjects *mdfo1 = (NSSCKMDFindObjects *)NULL; + NSSCKMDFindObjects *mdfo2 = (NSSCKMDFindObjects *)NULL; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWFindObjects *)NULL; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != *pError) { + return (NSSCKFWFindObjects *)NULL; + } + + if (((CK_ATTRIBUTE_PTR)NULL == pTemplate) && (ulAttributeCount != 0)) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWFindObjects *)NULL; + } + + if (!fwSession->mdSession) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWFindObjects *)NULL; + } +#endif /* NSSDEBUG */ + + if (CK_TRUE != nssCKFWInstance_GetModuleHandlesSessionObjects( + fwSession->fwInstance)) { + CK_ULONG i; + + /* + * Does the search criteria restrict us to token or session + * objects? + */ + + for (i = 0; i < ulAttributeCount; i++) { + if (CKA_TOKEN == pTemplate[i].type) { + /* Yes, it does. */ + CK_BBOOL isToken; + if (sizeof(CK_BBOOL) != pTemplate[i].ulValueLen) { + *pError = + CKR_ATTRIBUTE_VALUE_INVALID; + return (NSSCKFWFindObjects *)NULL; + } + (void)nsslibc_memcpy(&isToken, pTemplate[i].pValue, sizeof(CK_BBOOL)); + + if (CK_TRUE == isToken) { + /* Pass it on to the module's search routine */ + if (!fwSession->mdSession->FindObjectsInit) { + goto wrap; + } + + mdfo1 = + fwSession->mdSession->FindObjectsInit(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance, + pTemplate, ulAttributeCount, pError); + } else { + /* Do the search ourselves */ + mdfo1 = + nssCKMDFindSessionObjects_Create(fwSession->fwToken, + pTemplate, ulAttributeCount, pError); + } + + if (!mdfo1) { + if (CKR_OK == + *pError) { + *pError = + CKR_GENERAL_ERROR; + } + return (NSSCKFWFindObjects *)NULL; + } + + goto wrap; + } + } + + if (i == ulAttributeCount) { + /* No, it doesn't. Do a hybrid search. */ + mdfo1 = fwSession->mdSession->FindObjectsInit(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance, + pTemplate, ulAttributeCount, pError); + + if (!mdfo1) { + if (CKR_OK == *pError) { + *pError = + CKR_GENERAL_ERROR; + } + return (NSSCKFWFindObjects *)NULL; + } + + mdfo2 = nssCKMDFindSessionObjects_Create(fwSession->fwToken, + pTemplate, ulAttributeCount, pError); + if (!mdfo2) { + if (CKR_OK == *pError) { + *pError = + CKR_GENERAL_ERROR; + } + if (mdfo1->Final) { + mdfo1->Final(mdfo1, (NSSCKFWFindObjects *)NULL, fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance); + } + return (NSSCKFWFindObjects *)NULL; + } + + goto wrap; + } + /*NOTREACHED*/ + } else { + /* Module handles all its own objects. Pass on to module's search */ + mdfo1 = fwSession->mdSession->FindObjectsInit(fwSession->mdSession, + fwSession, fwSession->mdToken, fwSession->fwToken, + fwSession->mdInstance, fwSession->fwInstance, + pTemplate, ulAttributeCount, pError); + + if (!mdfo1) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWFindObjects *)NULL; + } + + goto wrap; + } + +wrap: + return nssCKFWFindObjects_Create(fwSession, fwSession->fwToken, + fwSession->fwInstance, mdfo1, mdfo2, pError); +} + +/* + * nssCKFWSession_SeedRandom + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_SeedRandom( + NSSCKFWSession *fwSession, + NSSItem *seed) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!seed) { + return CKR_ARGUMENTS_BAD; + } + + if (!seed->data) { + return CKR_ARGUMENTS_BAD; + } + + if (0 == seed->size) { + return CKR_ARGUMENTS_BAD; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + if (!fwSession->mdSession->SeedRandom) { + return CKR_RANDOM_SEED_NOT_SUPPORTED; + } + + error = fwSession->mdSession->SeedRandom(fwSession->mdSession, fwSession, + fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, seed); + + return error; +} + +/* + * nssCKFWSession_GetRandom + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_GetRandom( + NSSCKFWSession *fwSession, + NSSItem *buffer) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!buffer) { + return CKR_ARGUMENTS_BAD; + } + + if (!buffer->data) { + return CKR_ARGUMENTS_BAD; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + if (!fwSession->mdSession->GetRandom) { + if (CK_TRUE == nssCKFWToken_GetHasRNG(fwSession->fwToken)) { + return CKR_GENERAL_ERROR; + } else { + return CKR_RANDOM_NO_RNG; + } + } + + if (0 == buffer->size) { + return CKR_OK; + } + + error = fwSession->mdSession->GetRandom(fwSession->mdSession, fwSession, + fwSession->mdToken, fwSession->fwToken, fwSession->mdInstance, + fwSession->fwInstance, buffer); + + return error; +} + +/* + * nssCKFWSession_SetCurrentCryptoOperation + */ +NSS_IMPLEMENT void +nssCKFWSession_SetCurrentCryptoOperation( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperation *fwOperation, + NSSCKFWCryptoOperationState state) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return; + } + + if (state >= NSSCKFWCryptoOperationState_Max) { + return; + } + + if (!fwSession->mdSession) { + return; + } +#endif /* NSSDEBUG */ + fwSession->fwOperationArray[state] = fwOperation; + return; +} + +/* + * nssCKFWSession_GetCurrentCryptoOperation + */ +NSS_IMPLEMENT NSSCKFWCryptoOperation * +nssCKFWSession_GetCurrentCryptoOperation( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationState state) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return (NSSCKFWCryptoOperation *)NULL; + } + + if (state >= NSSCKFWCryptoOperationState_Max) { + return (NSSCKFWCryptoOperation *)NULL; + } + + if (!fwSession->mdSession) { + return (NSSCKFWCryptoOperation *)NULL; + } +#endif /* NSSDEBUG */ + return fwSession->fwOperationArray[state]; +} + +/* + * nssCKFWSession_Final + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Final( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSItem outputBuffer; + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + /* make sure we have a valid operation initialized */ + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, state); + if (!fwOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (type != nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* handle buffer issues, note for Verify, the type is an input buffer. */ + if (NSSCKFWCryptoOperationType_Verify == type) { + if ((CK_BYTE_PTR)NULL == outBuf) { + error = CKR_ARGUMENTS_BAD; + goto done; + } + } else { + CK_ULONG len = nssCKFWCryptoOperation_GetFinalLength(fwOperation, &error); + CK_ULONG maxBufLen = *outBufLen; + + if (CKR_OK != error) { + goto done; + } + *outBufLen = len; + if ((CK_BYTE_PTR)NULL == outBuf) { + return CKR_OK; + } + + if (len > maxBufLen) { + return CKR_BUFFER_TOO_SMALL; + } + } + outputBuffer.data = outBuf; + outputBuffer.size = *outBufLen; + + error = nssCKFWCryptoOperation_Final(fwOperation, &outputBuffer); +done: + if (CKR_BUFFER_TOO_SMALL == error) { + return error; + } + /* clean up our state */ + nssCKFWCryptoOperation_Destroy(fwOperation); + nssCKFWSession_SetCurrentCryptoOperation(fwSession, NULL, state); + return error; +} + +/* + * nssCKFWSession_Update + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_Update( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSItem inputBuffer; + NSSItem outputBuffer; + CK_ULONG len; + CK_ULONG maxBufLen; + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + /* make sure we have a valid operation initialized */ + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, state); + if (!fwOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (type != nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + inputBuffer.data = inBuf; + inputBuffer.size = inBufLen; + + /* handle buffer issues, note for Verify, the type is an input buffer. */ + len = nssCKFWCryptoOperation_GetOperationLength(fwOperation, &inputBuffer, + &error); + if (CKR_OK != error) { + return error; + } + maxBufLen = *outBufLen; + + *outBufLen = len; + if ((CK_BYTE_PTR)NULL == outBuf) { + return CKR_OK; + } + + if (len > maxBufLen) { + return CKR_BUFFER_TOO_SMALL; + } + outputBuffer.data = outBuf; + outputBuffer.size = *outBufLen; + + return nssCKFWCryptoOperation_Update(fwOperation, + &inputBuffer, &outputBuffer); +} + +/* + * nssCKFWSession_DigestUpdate + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_DigestUpdate( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSItem inputBuffer; + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + /* make sure we have a valid operation initialized */ + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, state); + if (!fwOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (type != nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + inputBuffer.data = inBuf; + inputBuffer.size = inBufLen; + + error = nssCKFWCryptoOperation_DigestUpdate(fwOperation, &inputBuffer); + return error; +} + +/* + * nssCKFWSession_DigestUpdate + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_DigestKey( + NSSCKFWSession *fwSession, + NSSCKFWObject *fwKey) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSItem *inputBuffer; + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + /* make sure we have a valid operation initialized */ + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_Digest); + if (!fwOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (NSSCKFWCryptoOperationType_Digest != + nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + error = nssCKFWCryptoOperation_DigestKey(fwOperation, fwKey); + if (CKR_FUNCTION_FAILED != error) { + return error; + } + + /* no machine depended way for this to happen, do it by hand */ + inputBuffer = nssCKFWObject_GetAttribute(fwKey, CKA_VALUE, NULL, NULL, &error); + if (!inputBuffer) { + /* couldn't get the value, just fail then */ + return error; + } + error = nssCKFWCryptoOperation_DigestUpdate(fwOperation, inputBuffer); + nssItem_Destroy(inputBuffer); + return error; +} + +/* + * nssCKFWSession_UpdateFinal + */ +NSS_IMPLEMENT CK_RV +nssCKFWSession_UpdateFinal( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType type, + NSSCKFWCryptoOperationState state, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSItem inputBuffer; + NSSItem outputBuffer; + PRBool isEncryptDecrypt; + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + /* make sure we have a valid operation initialized */ + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, state); + if (!fwOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (type != nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + inputBuffer.data = inBuf; + inputBuffer.size = inBufLen; + isEncryptDecrypt = (PRBool)((NSSCKFWCryptoOperationType_Encrypt == type) || + (NSSCKFWCryptoOperationType_Decrypt == type)); + + /* handle buffer issues, note for Verify, the type is an input buffer. */ + if (NSSCKFWCryptoOperationType_Verify == type) { + if ((CK_BYTE_PTR)NULL == outBuf) { + error = CKR_ARGUMENTS_BAD; + goto done; + } + } else { + CK_ULONG maxBufLen = *outBufLen; + CK_ULONG len; + + len = (isEncryptDecrypt) ? nssCKFWCryptoOperation_GetOperationLength(fwOperation, + &inputBuffer, &error) + : nssCKFWCryptoOperation_GetFinalLength(fwOperation, &error); + + if (CKR_OK != error) { + goto done; + } + + *outBufLen = len; + if ((CK_BYTE_PTR)NULL == outBuf) { + return CKR_OK; + } + + if (len > maxBufLen) { + return CKR_BUFFER_TOO_SMALL; + } + } + outputBuffer.data = outBuf; + outputBuffer.size = *outBufLen; + + error = nssCKFWCryptoOperation_UpdateFinal(fwOperation, + &inputBuffer, &outputBuffer); + + /* UpdateFinal isn't support, manually use Update and Final */ + if (CKR_FUNCTION_FAILED == error) { + error = isEncryptDecrypt ? nssCKFWCryptoOperation_Update(fwOperation, &inputBuffer, &outputBuffer) + : nssCKFWCryptoOperation_DigestUpdate(fwOperation, &inputBuffer); + + if (CKR_OK == error) { + error = nssCKFWCryptoOperation_Final(fwOperation, &outputBuffer); + } + } + +done: + if (CKR_BUFFER_TOO_SMALL == error) { + /* if we return CKR_BUFFER_TOO_SMALL, we the caller is not expecting. + * the crypto state to be freed */ + return error; + } + + /* clean up our state */ + nssCKFWCryptoOperation_Destroy(fwOperation); + nssCKFWSession_SetCurrentCryptoOperation(fwSession, NULL, state); + return error; +} + +NSS_IMPLEMENT CK_RV +nssCKFWSession_UpdateCombo( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationType encryptType, + NSSCKFWCryptoOperationType digestType, + NSSCKFWCryptoOperationState digestState, + CK_BYTE_PTR inBuf, + CK_ULONG inBufLen, + CK_BYTE_PTR outBuf, + CK_ULONG_PTR outBufLen) +{ + NSSCKFWCryptoOperation *fwOperation; + NSSCKFWCryptoOperation *fwPeerOperation; + NSSItem inputBuffer; + NSSItem outputBuffer; + CK_ULONG maxBufLen = *outBufLen; + CK_ULONG len; + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } + + if (!fwSession->mdSession) { + return CKR_GENERAL_ERROR; + } +#endif /* NSSDEBUG */ + + /* make sure we have a valid operation initialized */ + fwOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + NSSCKFWCryptoOperationState_EncryptDecrypt); + if (!fwOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (encryptType != nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + /* make sure we have a valid operation initialized */ + fwPeerOperation = nssCKFWSession_GetCurrentCryptoOperation(fwSession, + digestState); + if (!fwPeerOperation) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + /* make sure it's the correct type */ + if (digestType != nssCKFWCryptoOperation_GetType(fwOperation)) { + return CKR_OPERATION_NOT_INITIALIZED; + } + + inputBuffer.data = inBuf; + inputBuffer.size = inBufLen; + len = nssCKFWCryptoOperation_GetOperationLength(fwOperation, + &inputBuffer, &error); + if (CKR_OK != error) { + return error; + } + + *outBufLen = len; + if ((CK_BYTE_PTR)NULL == outBuf) { + return CKR_OK; + } + + if (len > maxBufLen) { + return CKR_BUFFER_TOO_SMALL; + } + + outputBuffer.data = outBuf; + outputBuffer.size = *outBufLen; + + error = nssCKFWCryptoOperation_UpdateCombo(fwOperation, fwPeerOperation, + &inputBuffer, &outputBuffer); + if (CKR_FUNCTION_FAILED == error) { + PRBool isEncrypt = + (PRBool)(NSSCKFWCryptoOperationType_Encrypt == encryptType); + + if (isEncrypt) { + error = nssCKFWCryptoOperation_DigestUpdate(fwPeerOperation, + &inputBuffer); + if (CKR_OK != error) { + return error; + } + } + error = nssCKFWCryptoOperation_Update(fwOperation, + &inputBuffer, &outputBuffer); + if (CKR_OK != error) { + return error; + } + if (!isEncrypt) { + error = nssCKFWCryptoOperation_DigestUpdate(fwPeerOperation, + &outputBuffer); + } + } + return error; +} + +/* + * NSSCKFWSession_GetMDSession + * + */ + +NSS_IMPLEMENT NSSCKMDSession * +NSSCKFWSession_GetMDSession( + NSSCKFWSession *fwSession) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return (NSSCKMDSession *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWSession_GetMDSession(fwSession); +} + +/* + * NSSCKFWSession_GetArena + * + */ + +NSS_IMPLEMENT NSSArena * +NSSCKFWSession_GetArena( + NSSCKFWSession *fwSession, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWSession_GetArena(fwSession, pError); +} + +/* + * NSSCKFWSession_CallNotification + * + */ + +NSS_IMPLEMENT CK_RV +NSSCKFWSession_CallNotification( + NSSCKFWSession *fwSession, + CK_NOTIFICATION event) +{ +#ifdef DEBUG + CK_RV error = CKR_OK; + + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } +#endif /* DEBUG */ + + return nssCKFWSession_CallNotification(fwSession, event); +} + +/* + * NSSCKFWSession_IsRWSession + * + */ + +NSS_IMPLEMENT CK_BBOOL +NSSCKFWSession_IsRWSession( + NSSCKFWSession *fwSession) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CK_FALSE; + } +#endif /* DEBUG */ + + return nssCKFWSession_IsRWSession(fwSession); +} + +/* + * NSSCKFWSession_IsSO + * + */ + +NSS_IMPLEMENT CK_BBOOL +NSSCKFWSession_IsSO( + NSSCKFWSession *fwSession) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWSession_verifyPointer(fwSession)) { + return CK_FALSE; + } +#endif /* DEBUG */ + + return nssCKFWSession_IsSO(fwSession); +} + +NSS_IMPLEMENT NSSCKFWCryptoOperation * +NSSCKFWSession_GetCurrentCryptoOperation( + NSSCKFWSession *fwSession, + NSSCKFWCryptoOperationState state) +{ +#ifdef DEBUG + CK_RV error = CKR_OK; + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return (NSSCKFWCryptoOperation *)NULL; + } + + if (state >= NSSCKFWCryptoOperationState_Max) { + return (NSSCKFWCryptoOperation *)NULL; + } +#endif /* DEBUG */ + return nssCKFWSession_GetCurrentCryptoOperation(fwSession, state); +} + +/* + * NSSCKFWSession_GetFWSlot + * + */ + +NSS_IMPLEMENT NSSCKFWSlot * +NSSCKFWSession_GetFWSlot( + NSSCKFWSession *fwSession) +{ + return nssCKFWSession_GetFWSlot(fwSession); +} diff --git a/security/nss/lib/ckfw/sessobj.c b/security/nss/lib/ckfw/sessobj.c new file mode 100644 index 000000000..11721b8aa --- /dev/null +++ b/security/nss/lib/ckfw/sessobj.c @@ -0,0 +1,1012 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * sessobj.c + * + * This file contains an NSSCKMDObject implementation for session + * objects. The framework uses this implementation to manage + * session objects when a Module doesn't wish to be bothered. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * nssCKMDSessionObject + * + * -- create -- + * nssCKMDSessionObject_Create + * + * -- EPV calls -- + * nss_ckmdSessionObject_Finalize + * nss_ckmdSessionObject_IsTokenObject + * nss_ckmdSessionObject_GetAttributeCount + * nss_ckmdSessionObject_GetAttributeTypes + * nss_ckmdSessionObject_GetAttributeSize + * nss_ckmdSessionObject_GetAttribute + * nss_ckmdSessionObject_SetAttribute + * nss_ckmdSessionObject_GetObjectSize + */ + +struct nssCKMDSessionObjectStr { + CK_ULONG n; + NSSArena *arena; + NSSItem *attributes; + CK_ATTRIBUTE_TYPE_PTR types; + nssCKFWHash *hash; +}; +typedef struct nssCKMDSessionObjectStr nssCKMDSessionObject; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +nss_ckmdSessionObject_add_pointer( + const NSSCKMDObject *mdObject) +{ + return CKR_OK; +} + +static CK_RV +nss_ckmdSessionObject_remove_pointer( + const NSSCKMDObject *mdObject) +{ + return CKR_OK; +} + +#ifdef NSS_DEBUG +static CK_RV +nss_ckmdSessionObject_verifyPointer( + const NSSCKMDObject *mdObject) +{ + return CKR_OK; +} +#endif + +#endif /* DEBUG */ + +/* + * We must forward-declare these routines + */ +static void +nss_ckmdSessionObject_Finalize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + +static CK_RV +nss_ckmdSessionObject_Destroy( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + +static CK_BBOOL +nss_ckmdSessionObject_IsTokenObject( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + +static CK_ULONG +nss_ckmdSessionObject_GetAttributeCount( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +static CK_RV +nss_ckmdSessionObject_GetAttributeTypes( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount); + +static CK_ULONG +nss_ckmdSessionObject_GetAttributeSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError); + +static NSSCKFWItem +nss_ckmdSessionObject_GetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError); + +static CK_RV +nss_ckmdSessionObject_SetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value); + +static CK_ULONG +nss_ckmdSessionObject_GetObjectSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError); + +/* + * nssCKMDSessionObject_Create + * + */ +NSS_IMPLEMENT NSSCKMDObject * +nssCKMDSessionObject_Create( + NSSCKFWToken *fwToken, + NSSArena *arena, + CK_ATTRIBUTE_PTR attributes, + CK_ULONG ulCount, + CK_RV *pError) +{ + NSSCKMDObject *mdObject = (NSSCKMDObject *)NULL; + nssCKMDSessionObject *mdso = (nssCKMDSessionObject *)NULL; + CK_ULONG i; + nssCKFWHash *hash; + + *pError = CKR_OK; + + mdso = nss_ZNEW(arena, nssCKMDSessionObject); + if (!mdso) { + goto loser; + } + + mdso->arena = arena; + mdso->n = ulCount; + mdso->attributes = nss_ZNEWARRAY(arena, NSSItem, ulCount); + if (!mdso->attributes) { + goto loser; + } + + mdso->types = nss_ZNEWARRAY(arena, CK_ATTRIBUTE_TYPE, ulCount); + if (!mdso->types) { + goto loser; + } + for (i = 0; i < ulCount; i++) { + mdso->types[i] = attributes[i].type; + mdso->attributes[i].size = attributes[i].ulValueLen; + mdso->attributes[i].data = nss_ZAlloc(arena, attributes[i].ulValueLen); + if (!mdso->attributes[i].data) { + goto loser; + } + (void)nsslibc_memcpy(mdso->attributes[i].data, attributes[i].pValue, + attributes[i].ulValueLen); + } + + mdObject = nss_ZNEW(arena, NSSCKMDObject); + if (!mdObject) { + goto loser; + } + + mdObject->etc = (void *)mdso; + mdObject->Finalize = nss_ckmdSessionObject_Finalize; + mdObject->Destroy = nss_ckmdSessionObject_Destroy; + mdObject->IsTokenObject = nss_ckmdSessionObject_IsTokenObject; + mdObject->GetAttributeCount = nss_ckmdSessionObject_GetAttributeCount; + mdObject->GetAttributeTypes = nss_ckmdSessionObject_GetAttributeTypes; + mdObject->GetAttributeSize = nss_ckmdSessionObject_GetAttributeSize; + mdObject->GetAttribute = nss_ckmdSessionObject_GetAttribute; + mdObject->SetAttribute = nss_ckmdSessionObject_SetAttribute; + mdObject->GetObjectSize = nss_ckmdSessionObject_GetObjectSize; + + hash = nssCKFWToken_GetSessionObjectHash(fwToken); + if (!hash) { + *pError = CKR_GENERAL_ERROR; + goto loser; + } + + mdso->hash = hash; + + *pError = nssCKFWHash_Add(hash, mdObject, mdObject); + if (CKR_OK != *pError) { + goto loser; + } + +#ifdef DEBUG + if ((*pError = nss_ckmdSessionObject_add_pointer(mdObject)) != CKR_OK) { + goto loser; + } +#endif /* DEBUG */ + + return mdObject; + +loser: + if (mdso) { + if (mdso->attributes) { + for (i = 0; i < ulCount; i++) { + nss_ZFreeIf(mdso->attributes[i].data); + } + nss_ZFreeIf(mdso->attributes); + } + nss_ZFreeIf(mdso->types); + nss_ZFreeIf(mdso); + } + + nss_ZFreeIf(mdObject); + if (*pError == CKR_OK) { + *pError = CKR_HOST_MEMORY; + } + return (NSSCKMDObject *)NULL; +} + +/* + * nss_ckmdSessionObject_Finalize + * + */ +static void +nss_ckmdSessionObject_Finalize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + /* This shouldn't ever be called */ + return; +} + +/* + * nss_ckmdSessionObject_Destroy + * + */ + +static CK_RV +nss_ckmdSessionObject_Destroy( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + nssCKMDSessionObject *mdso; + CK_ULONG i; + +#ifdef NSSDEBUG + error = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + mdso = (nssCKMDSessionObject *)mdObject->etc; + + nssCKFWHash_Remove(mdso->hash, mdObject); + + for (i = 0; i < mdso->n; i++) { + nss_ZFreeIf(mdso->attributes[i].data); + } + nss_ZFreeIf(mdso->attributes); + nss_ZFreeIf(mdso->types); + nss_ZFreeIf(mdso); + nss_ZFreeIf(mdObject); + +#ifdef DEBUG + (void)nss_ckmdSessionObject_remove_pointer(mdObject); +#endif /* DEBUG */ + + return CKR_OK; +} + +/* + * nss_ckmdSessionObject_IsTokenObject + * + */ + +static CK_BBOOL +nss_ckmdSessionObject_IsTokenObject( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ +#ifdef NSSDEBUG + if (CKR_OK != nss_ckmdSessionObject_verifyPointer(mdObject)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + /* + * This implementation is only ever used for session objects. + */ + return CK_FALSE; +} + +/* + * nss_ckmdSessionObject_GetAttributeCount + * + */ +static CK_ULONG +nss_ckmdSessionObject_GetAttributeCount( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + nssCKMDSessionObject *obj; + +#ifdef NSSDEBUG + if (!pError) { + return 0; + } + + *pError = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != *pError) { + return 0; + } + +/* We could even check all the other arguments, for sanity. */ +#endif /* NSSDEBUG */ + + obj = (nssCKMDSessionObject *)mdObject->etc; + + return obj->n; +} + +/* + * nss_ckmdSessionObject_GetAttributeTypes + * + */ +static CK_RV +nss_ckmdSessionObject_GetAttributeTypes( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE_PTR typeArray, + CK_ULONG ulCount) +{ +#ifdef NSSDEBUG + CK_RV error = CKR_OK; +#endif /* NSSDEBUG */ + nssCKMDSessionObject *obj; + +#ifdef NSSDEBUG + error = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != error) { + return error; + } + +/* We could even check all the other arguments, for sanity. */ +#endif /* NSSDEBUG */ + + obj = (nssCKMDSessionObject *)mdObject->etc; + + if (ulCount < obj->n) { + return CKR_BUFFER_TOO_SMALL; + } + + (void)nsslibc_memcpy(typeArray, obj->types, + sizeof(CK_ATTRIBUTE_TYPE) * + obj->n); + + return CKR_OK; +} + +/* + * nss_ckmdSessionObject_GetAttributeSize + * + */ +static CK_ULONG +nss_ckmdSessionObject_GetAttributeSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + nssCKMDSessionObject *obj; + CK_ULONG i; + +#ifdef NSSDEBUG + if (!pError) { + return 0; + } + + *pError = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != *pError) { + return 0; + } + +/* We could even check all the other arguments, for sanity. */ +#endif /* NSSDEBUG */ + + obj = (nssCKMDSessionObject *)mdObject->etc; + + for (i = 0; i < obj->n; i++) { + if (attribute == obj->types[i]) { + return (CK_ULONG)(obj->attributes[i].size); + } + } + + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return 0; +} + +/* + * nss_ckmdSessionObject_GetAttribute + * + */ +static NSSCKFWItem +nss_ckmdSessionObject_GetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + CK_RV *pError) +{ + NSSCKFWItem item; + nssCKMDSessionObject *obj; + CK_ULONG i; + + item.needsFreeing = PR_FALSE; + item.item = NULL; +#ifdef NSSDEBUG + if (!pError) { + return item; + } + + *pError = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != *pError) { + return item; + } + +/* We could even check all the other arguments, for sanity. */ +#endif /* NSSDEBUG */ + + obj = (nssCKMDSessionObject *)mdObject->etc; + + for (i = 0; i < obj->n; i++) { + if (attribute == obj->types[i]) { + item.item = &obj->attributes[i]; + return item; + } + } + + *pError = CKR_ATTRIBUTE_TYPE_INVALID; + return item; +} + +/* + * nss_ckmdSessionObject_SetAttribute + * + */ + +/* + * Okay, so this implementation sucks. It doesn't support removing + * an attribute (if value == NULL), and could be more graceful about + * memory. It should allow "blank" slots in the arrays, with some + * invalid attribute type, and then it could support removal much + * more easily. Do this later. + */ +static CK_RV +nss_ckmdSessionObject_SetAttribute( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_ATTRIBUTE_TYPE attribute, + NSSItem *value) +{ + nssCKMDSessionObject *obj; + CK_ULONG i; + NSSItem n; + NSSItem *ra; + CK_ATTRIBUTE_TYPE_PTR rt; +#ifdef NSSDEBUG + CK_RV error; +#endif /* NSSDEBUG */ + +#ifdef NSSDEBUG + error = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != error) { + return 0; + } + +/* We could even check all the other arguments, for sanity. */ +#endif /* NSSDEBUG */ + + obj = (nssCKMDSessionObject *)mdObject->etc; + + n.size = value->size; + n.data = nss_ZAlloc(obj->arena, n.size); + if (!n.data) { + return CKR_HOST_MEMORY; + } + (void)nsslibc_memcpy(n.data, value->data, n.size); + + for (i = 0; i < obj->n; i++) { + if (attribute == obj->types[i]) { + nss_ZFreeIf(obj->attributes[i].data); + obj->attributes[i] = n; + return CKR_OK; + } + } + + /* + * It's new. + */ + + ra = (NSSItem *)nss_ZRealloc(obj->attributes, sizeof(NSSItem) * (obj->n + 1)); + if (!ra) { + nss_ZFreeIf(n.data); + return CKR_HOST_MEMORY; + } + obj->attributes = ra; + + rt = (CK_ATTRIBUTE_TYPE_PTR)nss_ZRealloc(obj->types, + sizeof(CK_ATTRIBUTE_TYPE) * (obj->n + 1)); + if (!rt) { + nss_ZFreeIf(n.data); + return CKR_HOST_MEMORY; + } + + obj->types = rt; + obj->attributes[obj->n] = n; + obj->types[obj->n] = attribute; + obj->n++; + + return CKR_OK; +} + +/* + * nss_ckmdSessionObject_GetObjectSize + * + */ +static CK_ULONG +nss_ckmdSessionObject_GetObjectSize( + NSSCKMDObject *mdObject, + NSSCKFWObject *fwObject, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + CK_RV *pError) +{ + nssCKMDSessionObject *obj; + CK_ULONG i; + CK_ULONG rv = (CK_ULONG)0; + +#ifdef NSSDEBUG + if (!pError) { + return 0; + } + + *pError = nss_ckmdSessionObject_verifyPointer(mdObject); + if (CKR_OK != *pError) { + return 0; + } + +/* We could even check all the other arguments, for sanity. */ +#endif /* NSSDEBUG */ + + obj = (nssCKMDSessionObject *)mdObject->etc; + + for (i = 0; i < obj->n; i++) { + rv += obj->attributes[i].size; + } + + rv += sizeof(NSSItem) * obj->n; + rv += sizeof(CK_ATTRIBUTE_TYPE) * obj->n; + rv += sizeof(nssCKMDSessionObject); + + return rv; +} + +/* + * nssCKMDFindSessionObjects + * + * -- create -- + * nssCKMDFindSessionObjects_Create + * + * -- EPV calls -- + * nss_ckmdFindSessionObjects_Final + * nss_ckmdFindSessionObjects_Next + */ + +struct nodeStr { + struct nodeStr *next; + NSSCKMDObject *mdObject; +}; + +struct nssCKMDFindSessionObjectsStr { + NSSArena *arena; + CK_RV error; + CK_ATTRIBUTE_PTR pTemplate; + CK_ULONG ulCount; + struct nodeStr *list; + nssCKFWHash *hash; +}; +typedef struct nssCKMDFindSessionObjectsStr nssCKMDFindSessionObjects; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +nss_ckmdFindSessionObjects_add_pointer( + const NSSCKMDFindObjects *mdFindObjects) +{ + return CKR_OK; +} + +static CK_RV +nss_ckmdFindSessionObjects_remove_pointer( + const NSSCKMDFindObjects *mdFindObjects) +{ + return CKR_OK; +} + +#ifdef NSS_DEBUG +static CK_RV +nss_ckmdFindSessionObjects_verifyPointer( + const NSSCKMDFindObjects *mdFindObjects) +{ + return CKR_OK; +} +#endif + +#endif /* DEBUG */ + +/* + * We must forward-declare these routines. + */ +static void +nss_ckmdFindSessionObjects_Final( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance); + +static NSSCKMDObject * +nss_ckmdFindSessionObjects_Next( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError); + +static CK_BBOOL +items_match( + NSSItem *a, + CK_VOID_PTR pValue, + CK_ULONG ulValueLen) +{ + if (a->size != ulValueLen) { + return CK_FALSE; + } + + if (PR_TRUE == nsslibc_memequal(a->data, pValue, ulValueLen, (PRStatus *)NULL)) { + return CK_TRUE; + } else { + return CK_FALSE; + } +} + +/* + * Our hashtable iterator + */ +static void +findfcn( + const void *key, + void *value, + void *closure) +{ + NSSCKMDObject *mdObject = (NSSCKMDObject *)value; + nssCKMDSessionObject *mdso = (nssCKMDSessionObject *)mdObject->etc; + nssCKMDFindSessionObjects *mdfso = (nssCKMDFindSessionObjects *)closure; + CK_ULONG i, j; + struct nodeStr *node; + + if (CKR_OK != mdfso->error) { + return; + } + + for (i = 0; i < mdfso->ulCount; i++) { + CK_ATTRIBUTE_PTR p = &mdfso->pTemplate[i]; + + for (j = 0; j < mdso->n; j++) { + if (mdso->types[j] == p->type) { + if (!items_match(&mdso->attributes[j], p->pValue, p->ulValueLen)) { + return; + } else { + break; + } + } + } + + if (j == mdso->n) { + /* Attribute not found */ + return; + } + } + + /* Matches */ + node = nss_ZNEW(mdfso->arena, struct nodeStr); + if ((struct nodeStr *)NULL == node) { + mdfso->error = CKR_HOST_MEMORY; + return; + } + + node->mdObject = mdObject; + node->next = mdfso->list; + mdfso->list = node; + + return; +} + +/* + * nssCKMDFindSessionObjects_Create + * + */ +NSS_IMPLEMENT NSSCKMDFindObjects * +nssCKMDFindSessionObjects_Create( + NSSCKFWToken *fwToken, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_RV *pError) +{ + NSSArena *arena; + nssCKMDFindSessionObjects *mdfso; + nssCKFWHash *hash; + NSSCKMDFindObjects *rv; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKMDFindObjects *)NULL; + } + + *pError = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != *pError) { + return (NSSCKMDFindObjects *)NULL; + } + + if ((CK_ATTRIBUTE_PTR)NULL == pTemplate) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKMDFindObjects *)NULL; + } +#endif /* NSSDEBUG */ + + *pError = CKR_OK; + + hash = nssCKFWToken_GetSessionObjectHash(fwToken); + if (!hash) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKMDFindObjects *)NULL; + } + + arena = NSSArena_Create(); + if (!arena) { + *pError = CKR_HOST_MEMORY; + return (NSSCKMDFindObjects *)NULL; + } + + mdfso = nss_ZNEW(arena, nssCKMDFindSessionObjects); + if (!mdfso) { + goto loser; + } + + rv = nss_ZNEW(arena, NSSCKMDFindObjects); + if (rv == NULL) { + goto loser; + } + + mdfso->error = CKR_OK; + mdfso->pTemplate = pTemplate; + mdfso->ulCount = ulCount; + mdfso->hash = hash; + + nssCKFWHash_Iterate(hash, findfcn, mdfso); + + if (CKR_OK != mdfso->error) { + goto loser; + } + + rv->etc = (void *)mdfso; + rv->Final = nss_ckmdFindSessionObjects_Final; + rv->Next = nss_ckmdFindSessionObjects_Next; + +#ifdef DEBUG + if ((*pError = nss_ckmdFindSessionObjects_add_pointer(rv)) != CKR_OK) { + goto loser; + } +#endif /* DEBUG */ + mdfso->arena = arena; + + return rv; + +loser: + if (arena) { + NSSArena_Destroy(arena); + } + if (*pError == CKR_OK) { + *pError = CKR_HOST_MEMORY; + } + return NULL; +} + +static void +nss_ckmdFindSessionObjects_Final( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance) +{ + nssCKMDFindSessionObjects *mdfso; + +#ifdef NSSDEBUG + if (CKR_OK != nss_ckmdFindSessionObjects_verifyPointer(mdFindObjects)) { + return; + } +#endif /* NSSDEBUG */ + + mdfso = (nssCKMDFindSessionObjects *)mdFindObjects->etc; + if (mdfso->arena) + NSSArena_Destroy(mdfso->arena); + +#ifdef DEBUG + (void)nss_ckmdFindSessionObjects_remove_pointer(mdFindObjects); +#endif /* DEBUG */ + + return; +} + +static NSSCKMDObject * +nss_ckmdFindSessionObjects_Next( + NSSCKMDFindObjects *mdFindObjects, + NSSCKFWFindObjects *fwFindObjects, + NSSCKMDSession *mdSession, + NSSCKFWSession *fwSession, + NSSCKMDToken *mdToken, + NSSCKFWToken *fwToken, + NSSCKMDInstance *mdInstance, + NSSCKFWInstance *fwInstance, + NSSArena *arena, + CK_RV *pError) +{ + nssCKMDFindSessionObjects *mdfso; + NSSCKMDObject *rv = (NSSCKMDObject *)NULL; + +#ifdef NSSDEBUG + if (CKR_OK != nss_ckmdFindSessionObjects_verifyPointer(mdFindObjects)) { + return (NSSCKMDObject *)NULL; + } +#endif /* NSSDEBUG */ + + mdfso = (nssCKMDFindSessionObjects *)mdFindObjects->etc; + + while (!rv) { + if ((struct nodeStr *)NULL == mdfso->list) { + *pError = CKR_OK; + return (NSSCKMDObject *)NULL; + } + + if (nssCKFWHash_Exists(mdfso->hash, mdfso->list->mdObject)) { + rv = mdfso->list->mdObject; + } + + mdfso->list = mdfso->list->next; + } + + return rv; +} diff --git a/security/nss/lib/ckfw/slot.c b/security/nss/lib/ckfw/slot.c new file mode 100644 index 000000000..43d4f0d57 --- /dev/null +++ b/security/nss/lib/ckfw/slot.c @@ -0,0 +1,694 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * slot.c + * + * This file implements the NSSCKFWSlot type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWSlot + * + * -- create/destroy -- + * nssCKFWSlot_Create + * nssCKFWSlot_Destroy + * + * -- public accessors -- + * NSSCKFWSlot_GetMDSlot + * NSSCKFWSlot_GetFWInstance + * NSSCKFWSlot_GetMDInstance + * NSSCKFWSlot_GetSlotID + * + * -- implement public accessors -- + * nssCKFWSlot_GetMDSlot + * nssCKFWSlot_GetFWInstance + * nssCKFWSlot_GetMDInstance + * nssCKFWSlot_GetSlotID + * + * -- private accessors -- + * nssCKFWSlot_ClearToken + * + * -- module fronts -- + * nssCKFWSlot_GetSlotDescription + * nssCKFWSlot_GetManufacturerID + * nssCKFWSlot_GetTokenPresent + * nssCKFWSlot_GetRemovableDevice + * nssCKFWSlot_GetHardwareSlot + * nssCKFWSlot_GetHardwareVersion + * nssCKFWSlot_GetFirmwareVersion + * nssCKFWSlot_InitToken + * nssCKFWSlot_GetToken + */ + +struct NSSCKFWSlotStr { + NSSCKFWMutex *mutex; + NSSCKMDSlot *mdSlot; + NSSCKFWInstance *fwInstance; + NSSCKMDInstance *mdInstance; + CK_SLOT_ID slotID; + + /* + * Everything above is set at creation time, and then not modified. + * The invariants the mutex protects are: + * + * 1) Each of the cached descriptions (versions, etc.) are in an + * internally consistant state. + * + * 2) The fwToken points to the token currently in the slot, and + * it is in a consistant state. + * + * Note that the calls accessing the cached descriptions will + * call the NSSCKMDSlot methods with the mutex locked. Those + * methods may then call the public NSSCKFWSlot routines. Those + * public routines only access the constant data above, so there's + * no problem. But be careful if you add to this object; mutexes + * are in general not reentrant, so don't create deadlock situations. + */ + + NSSUTF8 *slotDescription; + NSSUTF8 *manufacturerID; + CK_VERSION hardwareVersion; + CK_VERSION firmwareVersion; + NSSCKFWToken *fwToken; +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +slot_add_pointer( + const NSSCKFWSlot *fwSlot) +{ + return CKR_OK; +} + +static CK_RV +slot_remove_pointer( + const NSSCKFWSlot *fwSlot) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWSlot_verifyPointer( + const NSSCKFWSlot *fwSlot) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWSlot_Create + * + */ +NSS_IMPLEMENT NSSCKFWSlot * +nssCKFWSlot_Create( + NSSCKFWInstance *fwInstance, + NSSCKMDSlot *mdSlot, + CK_SLOT_ID slotID, + CK_RV *pError) +{ + NSSCKFWSlot *fwSlot; + NSSCKMDInstance *mdInstance; + NSSArena *arena; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWSlot *)NULL; + } + + *pError = nssCKFWInstance_verifyPointer(fwInstance); + if (CKR_OK != *pError) { + return (NSSCKFWSlot *)NULL; + } +#endif /* NSSDEBUG */ + + mdInstance = nssCKFWInstance_GetMDInstance(fwInstance); + if (!mdInstance) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWSlot *)NULL; + } + + arena = nssCKFWInstance_GetArena(fwInstance, pError); + if (!arena) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + } + + fwSlot = nss_ZNEW(arena, NSSCKFWSlot); + if (!fwSlot) { + *pError = CKR_HOST_MEMORY; + return (NSSCKFWSlot *)NULL; + } + + fwSlot->mdSlot = mdSlot; + fwSlot->fwInstance = fwInstance; + fwSlot->mdInstance = mdInstance; + fwSlot->slotID = slotID; + + fwSlot->mutex = nssCKFWInstance_CreateMutex(fwInstance, arena, pError); + if (!fwSlot->mutex) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + (void)nss_ZFreeIf(fwSlot); + return (NSSCKFWSlot *)NULL; + } + + if (mdSlot->Initialize) { + *pError = CKR_OK; + *pError = mdSlot->Initialize(mdSlot, fwSlot, mdInstance, fwInstance); + if (CKR_OK != *pError) { + (void)nssCKFWMutex_Destroy(fwSlot->mutex); + (void)nss_ZFreeIf(fwSlot); + return (NSSCKFWSlot *)NULL; + } + } + +#ifdef DEBUG + *pError = slot_add_pointer(fwSlot); + if (CKR_OK != *pError) { + if (mdSlot->Destroy) { + mdSlot->Destroy(mdSlot, fwSlot, mdInstance, fwInstance); + } + + (void)nssCKFWMutex_Destroy(fwSlot->mutex); + (void)nss_ZFreeIf(fwSlot); + return (NSSCKFWSlot *)NULL; + } +#endif /* DEBUG */ + + return fwSlot; +} + +/* + * nssCKFWSlot_Destroy + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSlot_Destroy( + NSSCKFWSlot *fwSlot) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWSlot_verifyPointer(fwSlot); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + if (fwSlot->fwToken) { + nssCKFWToken_Destroy(fwSlot->fwToken); + } + + (void)nssCKFWMutex_Destroy(fwSlot->mutex); + + if (fwSlot->mdSlot->Destroy) { + fwSlot->mdSlot->Destroy(fwSlot->mdSlot, fwSlot, + fwSlot->mdInstance, fwSlot->fwInstance); + } + +#ifdef DEBUG + error = slot_remove_pointer(fwSlot); +#endif /* DEBUG */ + (void)nss_ZFreeIf(fwSlot); + return error; +} + +/* + * nssCKFWSlot_GetMDSlot + * + */ +NSS_IMPLEMENT NSSCKMDSlot * +nssCKFWSlot_GetMDSlot( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (NSSCKMDSlot *)NULL; + } +#endif /* NSSDEBUG */ + + return fwSlot->mdSlot; +} + +/* + * nssCKFWSlot_GetFWInstance + * + */ + +NSS_IMPLEMENT NSSCKFWInstance * +nssCKFWSlot_GetFWInstance( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (NSSCKFWInstance *)NULL; + } +#endif /* NSSDEBUG */ + + return fwSlot->fwInstance; +} + +/* + * nssCKFWSlot_GetMDInstance + * + */ + +NSS_IMPLEMENT NSSCKMDInstance * +nssCKFWSlot_GetMDInstance( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (NSSCKMDInstance *)NULL; + } +#endif /* NSSDEBUG */ + + return fwSlot->mdInstance; +} + +/* + * nssCKFWSlot_GetSlotID + * + */ +NSS_IMPLEMENT CK_SLOT_ID +nssCKFWSlot_GetSlotID( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (CK_SLOT_ID)0; + } +#endif /* NSSDEBUG */ + + return fwSlot->slotID; +} + +/* + * nssCKFWSlot_GetSlotDescription + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSlot_GetSlotDescription( + NSSCKFWSlot *fwSlot, + CK_CHAR slotDescription[64]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == slotDescription) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWSlot_verifyPointer(fwSlot); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwSlot->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwSlot->slotDescription) { + if (fwSlot->mdSlot->GetSlotDescription) { + fwSlot->slotDescription = fwSlot->mdSlot->GetSlotDescription( + fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, + fwSlot->fwInstance, &error); + if ((!fwSlot->slotDescription) && (CKR_OK != error)) { + goto done; + } + } else { + fwSlot->slotDescription = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwSlot->slotDescription, (char *)slotDescription, 64, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwSlot->mutex); + return error; +} + +/* + * nssCKFWSlot_GetManufacturerID + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWSlot_GetManufacturerID( + NSSCKFWSlot *fwSlot, + CK_CHAR manufacturerID[32]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == manufacturerID) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWSlot_verifyPointer(fwSlot); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwSlot->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwSlot->manufacturerID) { + if (fwSlot->mdSlot->GetManufacturerID) { + fwSlot->manufacturerID = fwSlot->mdSlot->GetManufacturerID( + fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, + fwSlot->fwInstance, &error); + if ((!fwSlot->manufacturerID) && (CKR_OK != error)) { + goto done; + } + } else { + fwSlot->manufacturerID = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwSlot->manufacturerID, (char *)manufacturerID, 32, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwSlot->mutex); + return error; +} + +/* + * nssCKFWSlot_GetTokenPresent + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWSlot_GetTokenPresent( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwSlot->mdSlot->GetTokenPresent) { + return CK_TRUE; + } + + return fwSlot->mdSlot->GetTokenPresent(fwSlot->mdSlot, fwSlot, + fwSlot->mdInstance, fwSlot->fwInstance); +} + +/* + * nssCKFWSlot_GetRemovableDevice + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWSlot_GetRemovableDevice( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwSlot->mdSlot->GetRemovableDevice) { + return CK_FALSE; + } + + return fwSlot->mdSlot->GetRemovableDevice(fwSlot->mdSlot, fwSlot, + fwSlot->mdInstance, fwSlot->fwInstance); +} + +/* + * nssCKFWSlot_GetHardwareSlot + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWSlot_GetHardwareSlot( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwSlot->mdSlot->GetHardwareSlot) { + return CK_FALSE; + } + + return fwSlot->mdSlot->GetHardwareSlot(fwSlot->mdSlot, fwSlot, + fwSlot->mdInstance, fwSlot->fwInstance); +} + +/* + * nssCKFWSlot_GetHardwareVersion + * + */ +NSS_IMPLEMENT CK_VERSION +nssCKFWSlot_GetHardwareVersion( + NSSCKFWSlot *fwSlot) +{ + CK_VERSION rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + rv.major = rv.minor = 0; + return rv; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwSlot->mutex)) { + rv.major = rv.minor = 0; + return rv; + } + + if ((0 != fwSlot->hardwareVersion.major) || + (0 != fwSlot->hardwareVersion.minor)) { + rv = fwSlot->hardwareVersion; + goto done; + } + + if (fwSlot->mdSlot->GetHardwareVersion) { + fwSlot->hardwareVersion = fwSlot->mdSlot->GetHardwareVersion( + fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance); + } else { + fwSlot->hardwareVersion.major = 0; + fwSlot->hardwareVersion.minor = 1; + } + + rv = fwSlot->hardwareVersion; +done: + (void)nssCKFWMutex_Unlock(fwSlot->mutex); + return rv; +} + +/* + * nssCKFWSlot_GetFirmwareVersion + * + */ +NSS_IMPLEMENT CK_VERSION +nssCKFWSlot_GetFirmwareVersion( + NSSCKFWSlot *fwSlot) +{ + CK_VERSION rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + rv.major = rv.minor = 0; + return rv; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwSlot->mutex)) { + rv.major = rv.minor = 0; + return rv; + } + + if ((0 != fwSlot->firmwareVersion.major) || + (0 != fwSlot->firmwareVersion.minor)) { + rv = fwSlot->firmwareVersion; + goto done; + } + + if (fwSlot->mdSlot->GetFirmwareVersion) { + fwSlot->firmwareVersion = fwSlot->mdSlot->GetFirmwareVersion( + fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance); + } else { + fwSlot->firmwareVersion.major = 0; + fwSlot->firmwareVersion.minor = 1; + } + + rv = fwSlot->firmwareVersion; +done: + (void)nssCKFWMutex_Unlock(fwSlot->mutex); + return rv; +} + +/* + * nssCKFWSlot_GetToken + * + */ +NSS_IMPLEMENT NSSCKFWToken * +nssCKFWSlot_GetToken( + NSSCKFWSlot *fwSlot, + CK_RV *pError) +{ + NSSCKMDToken *mdToken; + NSSCKFWToken *fwToken; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWToken *)NULL; + } + + *pError = nssCKFWSlot_verifyPointer(fwSlot); + if (CKR_OK != *pError) { + return (NSSCKFWToken *)NULL; + } +#endif /* NSSDEBUG */ + + *pError = nssCKFWMutex_Lock(fwSlot->mutex); + if (CKR_OK != *pError) { + return (NSSCKFWToken *)NULL; + } + + if (!fwSlot->fwToken) { + if (!fwSlot->mdSlot->GetToken) { + *pError = CKR_GENERAL_ERROR; + fwToken = (NSSCKFWToken *)NULL; + goto done; + } + + mdToken = fwSlot->mdSlot->GetToken(fwSlot->mdSlot, fwSlot, + fwSlot->mdInstance, fwSlot->fwInstance, pError); + if (!mdToken) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + return (NSSCKFWToken *)NULL; + } + + fwToken = nssCKFWToken_Create(fwSlot, mdToken, pError); + fwSlot->fwToken = fwToken; + } else { + fwToken = fwSlot->fwToken; + } + +done: + (void)nssCKFWMutex_Unlock(fwSlot->mutex); + return fwToken; +} + +/* + * nssCKFWSlot_ClearToken + * + */ +NSS_IMPLEMENT void +nssCKFWSlot_ClearToken( + NSSCKFWSlot *fwSlot) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwSlot->mutex)) { + /* Now what? */ + return; + } + + fwSlot->fwToken = (NSSCKFWToken *)NULL; + (void)nssCKFWMutex_Unlock(fwSlot->mutex); + return; +} + +/* + * NSSCKFWSlot_GetMDSlot + * + */ + +NSS_IMPLEMENT NSSCKMDSlot * +NSSCKFWSlot_GetMDSlot( + NSSCKFWSlot *fwSlot) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (NSSCKMDSlot *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWSlot_GetMDSlot(fwSlot); +} + +/* + * NSSCKFWSlot_GetFWInstance + * + */ + +NSS_IMPLEMENT NSSCKFWInstance * +NSSCKFWSlot_GetFWInstance( + NSSCKFWSlot *fwSlot) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (NSSCKFWInstance *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWSlot_GetFWInstance(fwSlot); +} + +/* + * NSSCKFWSlot_GetMDInstance + * + */ + +NSS_IMPLEMENT NSSCKMDInstance * +NSSCKFWSlot_GetMDInstance( + NSSCKFWSlot *fwSlot) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWSlot_verifyPointer(fwSlot)) { + return (NSSCKMDInstance *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWSlot_GetMDInstance(fwSlot); +} + +/* + * NSSCKFWSlot_GetSlotID + * + */ + +NSS_IMPLEMENT CK_SLOT_ID +NSSCKFWSlot_GetSlotID( + NSSCKFWSlot *fwSlot) +{ + return nssCKFWSlot_GetSlotID(fwSlot); +} diff --git a/security/nss/lib/ckfw/token.c b/security/nss/lib/ckfw/token.c new file mode 100644 index 000000000..4483bb5c9 --- /dev/null +++ b/security/nss/lib/ckfw/token.c @@ -0,0 +1,1791 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * token.c + * + * This file implements the NSSCKFWToken type and methods. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWToken + * + * -- create/destroy -- + * nssCKFWToken_Create + * nssCKFWToken_Destroy + * + * -- public accessors -- + * NSSCKFWToken_GetMDToken + * NSSCKFWToken_GetFWSlot + * NSSCKFWToken_GetMDSlot + * NSSCKFWToken_GetSessionState + * + * -- implement public accessors -- + * nssCKFWToken_GetMDToken + * nssCKFWToken_GetFWSlot + * nssCKFWToken_GetMDSlot + * nssCKFWToken_GetSessionState + * nssCKFWToken_SetSessionState + * + * -- private accessors -- + * nssCKFWToken_SetSessionState + * nssCKFWToken_RemoveSession + * nssCKFWToken_CloseAllSessions + * nssCKFWToken_GetSessionCount + * nssCKFWToken_GetRwSessionCount + * nssCKFWToken_GetRoSessionCount + * nssCKFWToken_GetSessionObjectHash + * nssCKFWToken_GetMDObjectHash + * nssCKFWToken_GetObjectHandleHash + * + * -- module fronts -- + * nssCKFWToken_InitToken + * nssCKFWToken_GetLabel + * nssCKFWToken_GetManufacturerID + * nssCKFWToken_GetModel + * nssCKFWToken_GetSerialNumber + * nssCKFWToken_GetHasRNG + * nssCKFWToken_GetIsWriteProtected + * nssCKFWToken_GetLoginRequired + * nssCKFWToken_GetUserPinInitialized + * nssCKFWToken_GetRestoreKeyNotNeeded + * nssCKFWToken_GetHasClockOnToken + * nssCKFWToken_GetHasProtectedAuthenticationPath + * nssCKFWToken_GetSupportsDualCryptoOperations + * nssCKFWToken_GetMaxSessionCount + * nssCKFWToken_GetMaxRwSessionCount + * nssCKFWToken_GetMaxPinLen + * nssCKFWToken_GetMinPinLen + * nssCKFWToken_GetTotalPublicMemory + * nssCKFWToken_GetFreePublicMemory + * nssCKFWToken_GetTotalPrivateMemory + * nssCKFWToken_GetFreePrivateMemory + * nssCKFWToken_GetHardwareVersion + * nssCKFWToken_GetFirmwareVersion + * nssCKFWToken_GetUTCTime + * nssCKFWToken_OpenSession + * nssCKFWToken_GetMechanismCount + * nssCKFWToken_GetMechanismTypes + * nssCKFWToken_GetMechanism + */ + +struct NSSCKFWTokenStr { + NSSCKFWMutex *mutex; + NSSArena *arena; + NSSCKMDToken *mdToken; + NSSCKFWSlot *fwSlot; + NSSCKMDSlot *mdSlot; + NSSCKFWInstance *fwInstance; + NSSCKMDInstance *mdInstance; + + /* + * Everything above is set at creation time, and then not modified. + * The invariants the mutex protects are: + * + * 1) Each of the cached descriptions (versions, etc.) are in an + * internally consistant state. + * + * 2) The session counts and hashes are consistant. + * + * 3) The object hashes are consistant. + * + * Note that the calls accessing the cached descriptions will call + * the NSSCKMDToken methods with the mutex locked. Those methods + * may then call the public NSSCKFWToken routines. Those public + * routines only access the constant data above and the atomic + * CK_STATE session state variable below, so there's no problem. + * But be careful if you add to this object; mutexes are in + * general not reentrant, so don't create deadlock situations. + */ + + NSSUTF8 *label; + NSSUTF8 *manufacturerID; + NSSUTF8 *model; + NSSUTF8 *serialNumber; + CK_VERSION hardwareVersion; + CK_VERSION firmwareVersion; + + CK_ULONG sessionCount; + CK_ULONG rwSessionCount; + nssCKFWHash *sessions; + nssCKFWHash *sessionObjectHash; + nssCKFWHash *mdObjectHash; + nssCKFWHash *mdMechanismHash; + + CK_STATE state; +}; + +#ifdef DEBUG +/* + * But first, the pointer-tracking stuff. + * + * NOTE: the pointer-tracking support in NSS/base currently relies + * upon NSPR's CallOnce support. That, however, relies upon NSPR's + * locking, which is tied into the runtime. We need a pointer-tracker + * implementation that uses the locks supplied through C_Initialize. + * That support, however, can be filled in later. So for now, I'll + * just do this routines as no-ops. + */ + +static CK_RV +token_add_pointer( + const NSSCKFWToken *fwToken) +{ + return CKR_OK; +} + +static CK_RV +token_remove_pointer( + const NSSCKFWToken *fwToken) +{ + return CKR_OK; +} + +NSS_IMPLEMENT CK_RV +nssCKFWToken_verifyPointer( + const NSSCKFWToken *fwToken) +{ + return CKR_OK; +} + +#endif /* DEBUG */ + +/* + * nssCKFWToken_Create + * + */ +NSS_IMPLEMENT NSSCKFWToken * +nssCKFWToken_Create( + NSSCKFWSlot *fwSlot, + NSSCKMDToken *mdToken, + CK_RV *pError) +{ + NSSArena *arena = (NSSArena *)NULL; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + CK_BBOOL called_setup = CK_FALSE; + + /* + * We have already verified the arguments in nssCKFWSlot_GetToken. + */ + + arena = NSSArena_Create(); + if (!arena) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fwToken = nss_ZNEW(arena, NSSCKFWToken); + if (!fwToken) { + *pError = CKR_HOST_MEMORY; + goto loser; + } + + fwToken->arena = arena; + fwToken->mdToken = mdToken; + fwToken->fwSlot = fwSlot; + fwToken->fwInstance = nssCKFWSlot_GetFWInstance(fwSlot); + fwToken->mdInstance = nssCKFWSlot_GetMDInstance(fwSlot); + fwToken->state = CKS_RO_PUBLIC_SESSION; /* some default */ + fwToken->sessionCount = 0; + fwToken->rwSessionCount = 0; + + fwToken->mutex = nssCKFWInstance_CreateMutex(fwToken->fwInstance, arena, pError); + if (!fwToken->mutex) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + + fwToken->sessions = nssCKFWHash_Create(fwToken->fwInstance, arena, pError); + if (!fwToken->sessions) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + + if (CK_TRUE != nssCKFWInstance_GetModuleHandlesSessionObjects( + fwToken->fwInstance)) { + fwToken->sessionObjectHash = nssCKFWHash_Create(fwToken->fwInstance, + arena, pError); + if (!fwToken->sessionObjectHash) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + } + + fwToken->mdObjectHash = nssCKFWHash_Create(fwToken->fwInstance, + arena, pError); + if (!fwToken->mdObjectHash) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + + fwToken->mdMechanismHash = nssCKFWHash_Create(fwToken->fwInstance, + arena, pError); + if (!fwToken->mdMechanismHash) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto loser; + } + + /* More here */ + + if (mdToken->Setup) { + *pError = mdToken->Setup(mdToken, fwToken, fwToken->mdInstance, fwToken->fwInstance); + if (CKR_OK != *pError) { + goto loser; + } + } + + called_setup = CK_TRUE; + +#ifdef DEBUG + *pError = token_add_pointer(fwToken); + if (CKR_OK != *pError) { + goto loser; + } +#endif /* DEBUG */ + + *pError = CKR_OK; + return fwToken; + +loser: + + if (CK_TRUE == called_setup) { + if (mdToken->Invalidate) { + mdToken->Invalidate(mdToken, fwToken, fwToken->mdInstance, fwToken->fwInstance); + } + } + + if (arena) { + (void)NSSArena_Destroy(arena); + } + + return (NSSCKFWToken *)NULL; +} + +static void +nss_ckfwtoken_session_iterator( + const void *key, + void *value, + void *closure) +{ + /* + * Remember that the fwToken->mutex is locked + */ + NSSCKFWSession *fwSession = (NSSCKFWSession *)value; + (void)nssCKFWSession_Destroy(fwSession, CK_FALSE); + return; +} + +static void +nss_ckfwtoken_object_iterator( + const void *key, + void *value, + void *closure) +{ + /* + * Remember that the fwToken->mutex is locked + */ + NSSCKFWObject *fwObject = (NSSCKFWObject *)value; + (void)nssCKFWObject_Finalize(fwObject, CK_FALSE); + return; +} + +/* + * nssCKFWToken_Destroy + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_Destroy( + NSSCKFWToken *fwToken) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + (void)nssCKFWMutex_Destroy(fwToken->mutex); + + if (fwToken->mdToken->Invalidate) { + fwToken->mdToken->Invalidate(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); + } + /* we can destroy the list without locking now because no one else is + * referencing us (or _Destroy was invalidly called!) + */ + nssCKFWHash_Iterate(fwToken->sessions, nss_ckfwtoken_session_iterator, + (void *)NULL); + nssCKFWHash_Destroy(fwToken->sessions); + + /* session objects go away when their sessions are removed */ + if (fwToken->sessionObjectHash) { + nssCKFWHash_Destroy(fwToken->sessionObjectHash); + } + + /* free up the token objects */ + if (fwToken->mdObjectHash) { + nssCKFWHash_Iterate(fwToken->mdObjectHash, nss_ckfwtoken_object_iterator, + (void *)NULL); + nssCKFWHash_Destroy(fwToken->mdObjectHash); + } + if (fwToken->mdMechanismHash) { + nssCKFWHash_Destroy(fwToken->mdMechanismHash); + } + + nssCKFWSlot_ClearToken(fwToken->fwSlot); + +#ifdef DEBUG + error = token_remove_pointer(fwToken); +#endif /* DEBUG */ + + (void)NSSArena_Destroy(fwToken->arena); + return error; +} + +/* + * nssCKFWToken_GetMDToken + * + */ +NSS_IMPLEMENT NSSCKMDToken * +nssCKFWToken_GetMDToken( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (NSSCKMDToken *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->mdToken; +} + +/* + * nssCKFWToken_GetArena + * + */ +NSS_IMPLEMENT NSSArena * +nssCKFWToken_GetArena( + NSSCKFWToken *fwToken, + CK_RV *pError) +{ +#ifdef NSSDEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + *pError = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != *pError) { + return (NSSArena *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->arena; +} + +/* + * nssCKFWToken_GetFWSlot + * + */ +NSS_IMPLEMENT NSSCKFWSlot * +nssCKFWToken_GetFWSlot( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (NSSCKFWSlot *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->fwSlot; +} + +/* + * nssCKFWToken_GetMDSlot + * + */ +NSS_IMPLEMENT NSSCKMDSlot * +nssCKFWToken_GetMDSlot( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (NSSCKMDSlot *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->mdSlot; +} + +/* + * nssCKFWToken_GetSessionState + * + */ +NSS_IMPLEMENT CK_STATE +nssCKFWToken_GetSessionState( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CKS_RO_PUBLIC_SESSION; /* whatever */ + } +#endif /* NSSDEBUG */ + + /* + * BTW, do not lock the token in this method. + */ + + /* + * Theoretically, there is no state if there aren't any + * sessions open. But then we'd need to worry about + * reporting an error, etc. What the heck-- let's just + * revert to CKR_RO_PUBLIC_SESSION as the "default." + */ + + return fwToken->state; +} + +/* + * nssCKFWToken_InitToken + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_InitToken( + NSSCKFWToken *fwToken, + NSSItem *pin, + NSSUTF8 *label) +{ + CK_RV error; + +#ifdef NSSDEBUG + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return CKR_ARGUMENTS_BAD; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + if (fwToken->sessionCount > 0) { + error = CKR_SESSION_EXISTS; + goto done; + } + + if (!fwToken->mdToken->InitToken) { + error = CKR_DEVICE_ERROR; + goto done; + } + + if (!pin) { + if (nssCKFWToken_GetHasProtectedAuthenticationPath(fwToken)) { + ; /* okay */ + } else { + error = CKR_PIN_INCORRECT; + goto done; + } + } + + if (!label) { + label = (NSSUTF8 *)""; + } + + error = fwToken->mdToken->InitToken(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, pin, label); + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_GetLabel + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_GetLabel( + NSSCKFWToken *fwToken, + CK_CHAR label[32]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == label) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwToken->label) { + if (fwToken->mdToken->GetLabel) { + fwToken->label = fwToken->mdToken->GetLabel(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, &error); + if ((!fwToken->label) && (CKR_OK != error)) { + goto done; + } + } else { + fwToken->label = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwToken->label, (char *)label, 32, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_GetManufacturerID + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_GetManufacturerID( + NSSCKFWToken *fwToken, + CK_CHAR manufacturerID[32]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == manufacturerID) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwToken->manufacturerID) { + if (fwToken->mdToken->GetManufacturerID) { + fwToken->manufacturerID = fwToken->mdToken->GetManufacturerID(fwToken->mdToken, + fwToken, fwToken->mdInstance, fwToken->fwInstance, &error); + if ((!fwToken->manufacturerID) && (CKR_OK != error)) { + goto done; + } + } else { + fwToken->manufacturerID = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwToken->manufacturerID, (char *)manufacturerID, 32, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_GetModel + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_GetModel( + NSSCKFWToken *fwToken, + CK_CHAR model[16]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == model) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwToken->model) { + if (fwToken->mdToken->GetModel) { + fwToken->model = fwToken->mdToken->GetModel(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, &error); + if ((!fwToken->model) && (CKR_OK != error)) { + goto done; + } + } else { + fwToken->model = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwToken->model, (char *)model, 16, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_GetSerialNumber + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_GetSerialNumber( + NSSCKFWToken *fwToken, + CK_CHAR serialNumber[16]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + if ((CK_CHAR_PTR)NULL == serialNumber) { + return CKR_ARGUMENTS_BAD; + } + + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + if (!fwToken->serialNumber) { + if (fwToken->mdToken->GetSerialNumber) { + fwToken->serialNumber = fwToken->mdToken->GetSerialNumber(fwToken->mdToken, + fwToken, fwToken->mdInstance, fwToken->fwInstance, &error); + if ((!fwToken->serialNumber) && (CKR_OK != error)) { + goto done; + } + } else { + fwToken->serialNumber = (NSSUTF8 *)""; + } + } + + (void)nssUTF8_CopyIntoFixedBuffer(fwToken->serialNumber, (char *)serialNumber, 16, ' '); + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_GetHasRNG + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetHasRNG( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetHasRNG) { + return CK_FALSE; + } + + return fwToken->mdToken->GetHasRNG(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetIsWriteProtected + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetIsWriteProtected( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetIsWriteProtected) { + return CK_FALSE; + } + + return fwToken->mdToken->GetIsWriteProtected(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetLoginRequired + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetLoginRequired( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetLoginRequired) { + return CK_FALSE; + } + + return fwToken->mdToken->GetLoginRequired(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetUserPinInitialized + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetUserPinInitialized( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetUserPinInitialized) { + return CK_FALSE; + } + + return fwToken->mdToken->GetUserPinInitialized(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetRestoreKeyNotNeeded + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetRestoreKeyNotNeeded( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetRestoreKeyNotNeeded) { + return CK_FALSE; + } + + return fwToken->mdToken->GetRestoreKeyNotNeeded(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetHasClockOnToken + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetHasClockOnToken( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetHasClockOnToken) { + return CK_FALSE; + } + + return fwToken->mdToken->GetHasClockOnToken(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetHasProtectedAuthenticationPath + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetHasProtectedAuthenticationPath( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetHasProtectedAuthenticationPath) { + return CK_FALSE; + } + + return fwToken->mdToken->GetHasProtectedAuthenticationPath(fwToken->mdToken, + fwToken, fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetSupportsDualCryptoOperations + * + */ +NSS_IMPLEMENT CK_BBOOL +nssCKFWToken_GetSupportsDualCryptoOperations( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_FALSE; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetSupportsDualCryptoOperations) { + return CK_FALSE; + } + + return fwToken->mdToken->GetSupportsDualCryptoOperations(fwToken->mdToken, + fwToken, fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetMaxSessionCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetMaxSessionCount( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetMaxSessionCount) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetMaxSessionCount(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetMaxRwSessionCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetMaxRwSessionCount( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetMaxRwSessionCount) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetMaxRwSessionCount(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetMaxPinLen + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetMaxPinLen( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetMaxPinLen) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetMaxPinLen(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetMinPinLen + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetMinPinLen( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetMinPinLen) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetMinPinLen(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetTotalPublicMemory + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetTotalPublicMemory( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetTotalPublicMemory) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetTotalPublicMemory(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetFreePublicMemory + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetFreePublicMemory( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetFreePublicMemory) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetFreePublicMemory(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetTotalPrivateMemory + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetTotalPrivateMemory( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetTotalPrivateMemory) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetTotalPrivateMemory(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetFreePrivateMemory + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetFreePrivateMemory( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CK_UNAVAILABLE_INFORMATION; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetFreePrivateMemory) { + return CK_UNAVAILABLE_INFORMATION; + } + + return fwToken->mdToken->GetFreePrivateMemory(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetHardwareVersion + * + */ +NSS_IMPLEMENT CK_VERSION +nssCKFWToken_GetHardwareVersion( + NSSCKFWToken *fwToken) +{ + CK_VERSION rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + rv.major = rv.minor = 0; + return rv; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwToken->mutex)) { + rv.major = rv.minor = 0; + return rv; + } + + if ((0 != fwToken->hardwareVersion.major) || + (0 != fwToken->hardwareVersion.minor)) { + rv = fwToken->hardwareVersion; + goto done; + } + + if (fwToken->mdToken->GetHardwareVersion) { + fwToken->hardwareVersion = fwToken->mdToken->GetHardwareVersion( + fwToken->mdToken, fwToken, fwToken->mdInstance, fwToken->fwInstance); + } else { + fwToken->hardwareVersion.major = 0; + fwToken->hardwareVersion.minor = 1; + } + + rv = fwToken->hardwareVersion; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return rv; +} + +/* + * nssCKFWToken_GetFirmwareVersion + * + */ +NSS_IMPLEMENT CK_VERSION +nssCKFWToken_GetFirmwareVersion( + NSSCKFWToken *fwToken) +{ + CK_VERSION rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + rv.major = rv.minor = 0; + return rv; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwToken->mutex)) { + rv.major = rv.minor = 0; + return rv; + } + + if ((0 != fwToken->firmwareVersion.major) || + (0 != fwToken->firmwareVersion.minor)) { + rv = fwToken->firmwareVersion; + goto done; + } + + if (fwToken->mdToken->GetFirmwareVersion) { + fwToken->firmwareVersion = fwToken->mdToken->GetFirmwareVersion( + fwToken->mdToken, fwToken, fwToken->mdInstance, fwToken->fwInstance); + } else { + fwToken->firmwareVersion.major = 0; + fwToken->firmwareVersion.minor = 1; + } + + rv = fwToken->firmwareVersion; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return rv; +} + +/* + * nssCKFWToken_GetUTCTime + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_GetUTCTime( + NSSCKFWToken *fwToken, + CK_CHAR utcTime[16]) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } + + if ((CK_CHAR_PTR)NULL == utcTime) { + return CKR_ARGUMENTS_BAD; + } +#endif /* DEBUG */ + + if (CK_TRUE != nssCKFWToken_GetHasClockOnToken(fwToken)) { + /* return CKR_DEVICE_ERROR; */ + (void)nssUTF8_CopyIntoFixedBuffer((NSSUTF8 *)NULL, (char *)utcTime, 16, ' '); + return CKR_OK; + } + + if (!fwToken->mdToken->GetUTCTime) { + /* It said it had one! */ + return CKR_GENERAL_ERROR; + } + + error = fwToken->mdToken->GetUTCTime(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, utcTime); + if (CKR_OK != error) { + return error; + } + + /* Sanity-check the data */ + { + /* Format is YYYYMMDDhhmmss00 */ + int i; + int Y, M, D, h, m, s; + static int dims[] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; + + for (i = 0; i < 16; i++) { + if ((utcTime[i] < '0') || (utcTime[i] > '9')) { + goto badtime; + } + } + + Y = ((utcTime[0] - '0') * 1000) + ((utcTime[1] - '0') * 100) + + ((utcTime[2] - '0') * 10) + (utcTime[3] - '0'); + M = ((utcTime[4] - '0') * 10) + (utcTime[5] - '0'); + D = ((utcTime[6] - '0') * 10) + (utcTime[7] - '0'); + h = ((utcTime[8] - '0') * 10) + (utcTime[9] - '0'); + m = ((utcTime[10] - '0') * 10) + (utcTime[11] - '0'); + s = ((utcTime[12] - '0') * 10) + (utcTime[13] - '0'); + + if ((Y < 1990) || (Y > 3000)) + goto badtime; /* Y3K problem. heh heh heh */ + if ((M < 1) || (M > 12)) + goto badtime; + if ((D < 1) || (D > 31)) + goto badtime; + + if (D > dims[M - 1]) + goto badtime; /* per-month check */ + if ((2 == M) && (((Y % 4) || !(Y % 100)) && + (Y % 400)) && + (D > 28)) + goto badtime; /* leap years */ + + if ((h < 0) || (h > 23)) + goto badtime; + if ((m < 0) || (m > 60)) + goto badtime; + if ((s < 0) || (s > 61)) + goto badtime; + + /* 60m and 60 or 61s is only allowed for leap seconds. */ + if ((60 == m) || (s >= 60)) { + if ((23 != h) || (60 != m) || (s < 60)) + goto badtime; + /* leap seconds can only happen on June 30 or Dec 31.. I think */ + /* if( ((6 != M) || (30 != D)) && ((12 != M) || (31 != D)) ) goto badtime; */ + } + } + + return CKR_OK; + +badtime: + return CKR_GENERAL_ERROR; +} + +/* + * nssCKFWToken_OpenSession + * + */ +NSS_IMPLEMENT NSSCKFWSession * +nssCKFWToken_OpenSession( + NSSCKFWToken *fwToken, + CK_BBOOL rw, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_RV *pError) +{ + NSSCKFWSession *fwSession = (NSSCKFWSession *)NULL; + NSSCKMDSession *mdSession; + +#ifdef NSSDEBUG + if (!pError) { + return (NSSCKFWSession *)NULL; + } + + *pError = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != *pError) { + return (NSSCKFWSession *)NULL; + } + + switch (rw) { + case CK_TRUE: + case CK_FALSE: + break; + default: + *pError = CKR_ARGUMENTS_BAD; + return (NSSCKFWSession *)NULL; + } +#endif /* NSSDEBUG */ + + *pError = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != *pError) { + return (NSSCKFWSession *)NULL; + } + + if (CK_TRUE == rw) { + /* Read-write session desired */ + if (CK_TRUE == nssCKFWToken_GetIsWriteProtected(fwToken)) { + *pError = CKR_TOKEN_WRITE_PROTECTED; + goto done; + } + } else { + /* Read-only session desired */ + if (CKS_RW_SO_FUNCTIONS == nssCKFWToken_GetSessionState(fwToken)) { + *pError = CKR_SESSION_READ_WRITE_SO_EXISTS; + goto done; + } + } + + /* We could compare sesion counts to any limits we know of, I guess.. */ + + if (!fwToken->mdToken->OpenSession) { + /* + * I'm not sure that the Module actually needs to implement + * mdSessions -- the Framework can keep track of everything + * needed, really. But I'll sort out that detail later.. + */ + *pError = CKR_GENERAL_ERROR; + goto done; + } + + fwSession = nssCKFWSession_Create(fwToken, rw, pApplication, Notify, pError); + if (!fwSession) { + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto done; + } + + mdSession = fwToken->mdToken->OpenSession(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, fwSession, + rw, pError); + if (!mdSession) { + (void)nssCKFWSession_Destroy(fwSession, CK_FALSE); + if (CKR_OK == *pError) { + *pError = CKR_GENERAL_ERROR; + } + goto done; + } + + *pError = nssCKFWSession_SetMDSession(fwSession, mdSession); + if (CKR_OK != *pError) { + if (mdSession->Close) { + mdSession->Close(mdSession, fwSession, fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); + } + (void)nssCKFWSession_Destroy(fwSession, CK_FALSE); + goto done; + } + + *pError = nssCKFWHash_Add(fwToken->sessions, fwSession, fwSession); + if (CKR_OK != *pError) { + (void)nssCKFWSession_Destroy(fwSession, CK_FALSE); + fwSession = (NSSCKFWSession *)NULL; + goto done; + } + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return fwSession; +} + +/* + * nssCKFWToken_GetMechanismCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetMechanismCount( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return 0; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetMechanismCount) { + return 0; + } + + return fwToken->mdToken->GetMechanismCount(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +/* + * nssCKFWToken_GetMechanismTypes + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_GetMechanismTypes( + NSSCKFWToken *fwToken, + CK_MECHANISM_TYPE types[]) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CKR_ARGUMENTS_BAD; + } + + if (!types) { + return CKR_ARGUMENTS_BAD; + } +#endif /* NSSDEBUG */ + + if (!fwToken->mdToken->GetMechanismTypes) { + /* + * This should only be called with a sufficiently-large + * "types" array, which can only be done if GetMechanismCount + * is implemented. If that's implemented (and returns nonzero), + * then this should be too. So return an error. + */ + return CKR_GENERAL_ERROR; + } + + return fwToken->mdToken->GetMechanismTypes(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, types); +} + +/* + * nssCKFWToken_GetMechanism + * + */ +NSS_IMPLEMENT NSSCKFWMechanism * +nssCKFWToken_GetMechanism( + NSSCKFWToken *fwToken, + CK_MECHANISM_TYPE which, + CK_RV *pError) +{ + NSSCKMDMechanism *mdMechanism; + if (!fwToken->mdMechanismHash) { + *pError = CKR_GENERAL_ERROR; + return (NSSCKFWMechanism *)NULL; + } + + if (!fwToken->mdToken->GetMechanism) { + /* + * If we don't implement any GetMechanism function, then we must + * not support any. + */ + *pError = CKR_MECHANISM_INVALID; + return (NSSCKFWMechanism *)NULL; + } + + /* lookup in hash table */ + mdMechanism = fwToken->mdToken->GetMechanism(fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance, which, pError); + if (!mdMechanism) { + return (NSSCKFWMechanism *)NULL; + } + /* store in hash table */ + return nssCKFWMechanism_Create(mdMechanism, fwToken->mdToken, fwToken, + fwToken->mdInstance, fwToken->fwInstance); +} + +NSS_IMPLEMENT CK_RV +nssCKFWToken_SetSessionState( + NSSCKFWToken *fwToken, + CK_STATE newState) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } + + switch (newState) { + case CKS_RO_PUBLIC_SESSION: + case CKS_RO_USER_FUNCTIONS: + case CKS_RW_PUBLIC_SESSION: + case CKS_RW_USER_FUNCTIONS: + case CKS_RW_SO_FUNCTIONS: + break; + default: + return CKR_ARGUMENTS_BAD; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + fwToken->state = newState; + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return CKR_OK; +} + +/* + * nssCKFWToken_RemoveSession + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_RemoveSession( + NSSCKFWToken *fwToken, + NSSCKFWSession *fwSession) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } + + error = nssCKFWSession_verifyPointer(fwSession); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + if (CK_TRUE != nssCKFWHash_Exists(fwToken->sessions, fwSession)) { + error = CKR_SESSION_HANDLE_INVALID; + goto done; + } + + nssCKFWHash_Remove(fwToken->sessions, fwSession); + fwToken->sessionCount--; + + if (nssCKFWSession_IsRWSession(fwSession)) { + fwToken->rwSessionCount--; + } + + if (0 == fwToken->sessionCount) { + fwToken->rwSessionCount = 0; /* sanity */ + fwToken->state = CKS_RO_PUBLIC_SESSION; /* some default */ + } + + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_CloseAllSessions + * + */ +NSS_IMPLEMENT CK_RV +nssCKFWToken_CloseAllSessions( + NSSCKFWToken *fwToken) +{ + CK_RV error = CKR_OK; + +#ifdef NSSDEBUG + error = nssCKFWToken_verifyPointer(fwToken); + if (CKR_OK != error) { + return error; + } +#endif /* NSSDEBUG */ + + error = nssCKFWMutex_Lock(fwToken->mutex); + if (CKR_OK != error) { + return error; + } + + nssCKFWHash_Iterate(fwToken->sessions, nss_ckfwtoken_session_iterator, (void *)NULL); + + nssCKFWHash_Destroy(fwToken->sessions); + + fwToken->sessions = nssCKFWHash_Create(fwToken->fwInstance, fwToken->arena, &error); + if (!fwToken->sessions) { + if (CKR_OK == error) { + error = CKR_GENERAL_ERROR; + } + goto done; + } + + fwToken->state = CKS_RO_PUBLIC_SESSION; /* some default */ + fwToken->sessionCount = 0; + fwToken->rwSessionCount = 0; + + error = CKR_OK; + +done: + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return error; +} + +/* + * nssCKFWToken_GetSessionCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetSessionCount( + NSSCKFWToken *fwToken) +{ + CK_ULONG rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwToken->mutex)) { + return (CK_ULONG)0; + } + + rv = fwToken->sessionCount; + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return rv; +} + +/* + * nssCKFWToken_GetRwSessionCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetRwSessionCount( + NSSCKFWToken *fwToken) +{ + CK_ULONG rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwToken->mutex)) { + return (CK_ULONG)0; + } + + rv = fwToken->rwSessionCount; + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return rv; +} + +/* + * nssCKFWToken_GetRoSessionCount + * + */ +NSS_IMPLEMENT CK_ULONG +nssCKFWToken_GetRoSessionCount( + NSSCKFWToken *fwToken) +{ + CK_ULONG rv; + +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (CK_ULONG)0; + } +#endif /* NSSDEBUG */ + + if (CKR_OK != nssCKFWMutex_Lock(fwToken->mutex)) { + return (CK_ULONG)0; + } + + rv = fwToken->sessionCount - fwToken->rwSessionCount; + (void)nssCKFWMutex_Unlock(fwToken->mutex); + return rv; +} + +/* + * nssCKFWToken_GetSessionObjectHash + * + */ +NSS_IMPLEMENT nssCKFWHash * +nssCKFWToken_GetSessionObjectHash( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (nssCKFWHash *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->sessionObjectHash; +} + +/* + * nssCKFWToken_GetMDObjectHash + * + */ +NSS_IMPLEMENT nssCKFWHash * +nssCKFWToken_GetMDObjectHash( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (nssCKFWHash *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->mdObjectHash; +} + +/* + * nssCKFWToken_GetObjectHandleHash + * + */ +NSS_IMPLEMENT nssCKFWHash * +nssCKFWToken_GetObjectHandleHash( + NSSCKFWToken *fwToken) +{ +#ifdef NSSDEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (nssCKFWHash *)NULL; + } +#endif /* NSSDEBUG */ + + return fwToken->mdObjectHash; +} + +/* + * NSSCKFWToken_GetMDToken + * + */ + +NSS_IMPLEMENT NSSCKMDToken * +NSSCKFWToken_GetMDToken( + NSSCKFWToken *fwToken) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (NSSCKMDToken *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWToken_GetMDToken(fwToken); +} + +/* + * NSSCKFWToken_GetArena + * + */ + +NSS_IMPLEMENT NSSArena * +NSSCKFWToken_GetArena( + NSSCKFWToken *fwToken, + CK_RV *pError) +{ +#ifdef DEBUG + if (!pError) { + return (NSSArena *)NULL; + } + + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + *pError = CKR_ARGUMENTS_BAD; + return (NSSArena *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWToken_GetArena(fwToken, pError); +} + +/* + * NSSCKFWToken_GetFWSlot + * + */ + +NSS_IMPLEMENT NSSCKFWSlot * +NSSCKFWToken_GetFWSlot( + NSSCKFWToken *fwToken) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (NSSCKFWSlot *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWToken_GetFWSlot(fwToken); +} + +/* + * NSSCKFWToken_GetMDSlot + * + */ + +NSS_IMPLEMENT NSSCKMDSlot * +NSSCKFWToken_GetMDSlot( + NSSCKFWToken *fwToken) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return (NSSCKMDSlot *)NULL; + } +#endif /* DEBUG */ + + return nssCKFWToken_GetMDSlot(fwToken); +} + +/* + * NSSCKFWToken_GetSessionState + * + */ + +NSS_IMPLEMENT CK_STATE +NSSCKFWSession_GetSessionState( + NSSCKFWToken *fwToken) +{ +#ifdef DEBUG + if (CKR_OK != nssCKFWToken_verifyPointer(fwToken)) { + return CKS_RO_PUBLIC_SESSION; + } +#endif /* DEBUG */ + + return nssCKFWToken_GetSessionState(fwToken); +} diff --git a/security/nss/lib/ckfw/wrap.c b/security/nss/lib/ckfw/wrap.c new file mode 100644 index 000000000..44c2e8e5b --- /dev/null +++ b/security/nss/lib/ckfw/wrap.c @@ -0,0 +1,5550 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * wrap.c + * + * This file contains the routines that actually implement the cryptoki + * API, using the internal APIs of the NSS Cryptoki Framework. There is + * one routine here for every cryptoki routine. For linking reasons + * the actual entry points passed back with C_GetFunctionList have to + * exist in one of the Module's source files; however, those are merely + * simple wrappers that call these routines. The intelligence of the + * implementations is here. + */ + +#ifndef CK_T +#include "ck.h" +#endif /* CK_T */ + +/* + * NSSCKFWC_Initialize + * NSSCKFWC_Finalize + * NSSCKFWC_GetInfo + * -- NSSCKFWC_GetFunctionList -- see the API insert file + * NSSCKFWC_GetSlotList + * NSSCKFWC_GetSlotInfo + * NSSCKFWC_GetTokenInfo + * NSSCKFWC_WaitForSlotEvent + * NSSCKFWC_GetMechanismList + * NSSCKFWC_GetMechanismInfo + * NSSCKFWC_InitToken + * NSSCKFWC_InitPIN + * NSSCKFWC_SetPIN + * NSSCKFWC_OpenSession + * NSSCKFWC_CloseSession + * NSSCKFWC_CloseAllSessions + * NSSCKFWC_GetSessionInfo + * NSSCKFWC_GetOperationState + * NSSCKFWC_SetOperationState + * NSSCKFWC_Login + * NSSCKFWC_Logout + * NSSCKFWC_CreateObject + * NSSCKFWC_CopyObject + * NSSCKFWC_DestroyObject + * NSSCKFWC_GetObjectSize + * NSSCKFWC_GetAttributeValue + * NSSCKFWC_SetAttributeValue + * NSSCKFWC_FindObjectsInit + * NSSCKFWC_FindObjects + * NSSCKFWC_FindObjectsFinal + * NSSCKFWC_EncryptInit + * NSSCKFWC_Encrypt + * NSSCKFWC_EncryptUpdate + * NSSCKFWC_EncryptFinal + * NSSCKFWC_DecryptInit + * NSSCKFWC_Decrypt + * NSSCKFWC_DecryptUpdate + * NSSCKFWC_DecryptFinal + * NSSCKFWC_DigestInit + * NSSCKFWC_Digest + * NSSCKFWC_DigestUpdate + * NSSCKFWC_DigestKey + * NSSCKFWC_DigestFinal + * NSSCKFWC_SignInit + * NSSCKFWC_Sign + * NSSCKFWC_SignUpdate + * NSSCKFWC_SignFinal + * NSSCKFWC_SignRecoverInit + * NSSCKFWC_SignRecover + * NSSCKFWC_VerifyInit + * NSSCKFWC_Verify + * NSSCKFWC_VerifyUpdate + * NSSCKFWC_VerifyFinal + * NSSCKFWC_VerifyRecoverInit + * NSSCKFWC_VerifyRecover + * NSSCKFWC_DigestEncryptUpdate + * NSSCKFWC_DecryptDigestUpdate + * NSSCKFWC_SignEncryptUpdate + * NSSCKFWC_DecryptVerifyUpdate + * NSSCKFWC_GenerateKey + * NSSCKFWC_GenerateKeyPair + * NSSCKFWC_WrapKey + * NSSCKFWC_UnwrapKey + * NSSCKFWC_DeriveKey + * NSSCKFWC_SeedRandom + * NSSCKFWC_GenerateRandom + * NSSCKFWC_GetFunctionStatus + * NSSCKFWC_CancelFunction + */ + +/* figure out out locking semantics */ +static CK_RV +nssCKFW_GetThreadSafeState(CK_C_INITIALIZE_ARGS_PTR pInitArgs, + CryptokiLockingState *pLocking_state) +{ + int functionCount = 0; + + /* parsed according to (PKCS #11 Section 11.4) */ + /* no args, the degenerate version of case 1 */ + if (!pInitArgs) { + *pLocking_state = SingleThreaded; + return CKR_OK; + } + + /* CKF_OS_LOCKING_OK set, Cases 2 and 4 */ + if (pInitArgs->flags & CKF_OS_LOCKING_OK) { + *pLocking_state = MultiThreaded; + return CKR_OK; + } + if ((CK_CREATEMUTEX)NULL != pInitArgs->CreateMutex) + functionCount++; + if ((CK_DESTROYMUTEX)NULL != pInitArgs->DestroyMutex) + functionCount++; + if ((CK_LOCKMUTEX)NULL != pInitArgs->LockMutex) + functionCount++; + if ((CK_UNLOCKMUTEX)NULL != pInitArgs->UnlockMutex) + functionCount++; + + /* CKF_OS_LOCKING_OK is not set, and not functions supplied, + * explicit case 1 */ + if (0 == functionCount) { + *pLocking_state = SingleThreaded; + return CKR_OK; + } + + /* OS_LOCKING_OK is not set and functions have been supplied. Since + * ckfw uses nssbase library which explicitly calls NSPR, and since + * there is no way to reliably override these explicit calls to NSPR, + * therefore we can't support applications which have their own threading + * module. Return CKR_CANT_LOCK if they supplied the correct number of + * arguments, or CKR_ARGUMENTS_BAD if they did not in either case we will + * fail the initialize */ + return (4 == functionCount) ? CKR_CANT_LOCK : CKR_ARGUMENTS_BAD; +} + +static PRInt32 liveInstances; + +/* + * NSSCKFWC_Initialize + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Initialize( + NSSCKFWInstance **pFwInstance, + NSSCKMDInstance *mdInstance, + CK_VOID_PTR pInitArgs) +{ + CK_RV error = CKR_OK; + CryptokiLockingState locking_state; + + if ((NSSCKFWInstance **)NULL == pFwInstance) { + error = CKR_GENERAL_ERROR; + goto loser; + } + + if (*pFwInstance) { + error = CKR_CRYPTOKI_ALREADY_INITIALIZED; + goto loser; + } + + if (!mdInstance) { + error = CKR_GENERAL_ERROR; + goto loser; + } + + error = nssCKFW_GetThreadSafeState(pInitArgs, &locking_state); + if (CKR_OK != error) { + goto loser; + } + + *pFwInstance = nssCKFWInstance_Create(pInitArgs, locking_state, mdInstance, &error); + if (!*pFwInstance) { + goto loser; + } + PR_ATOMIC_INCREMENT(&liveInstances); + return CKR_OK; + +loser: + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CANT_LOCK: + case CKR_CRYPTOKI_ALREADY_INITIALIZED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_NEED_TO_CREATE_THREADS: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_Finalize + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Finalize( + NSSCKFWInstance **pFwInstance) +{ + CK_RV error = CKR_OK; + + if ((NSSCKFWInstance **)NULL == pFwInstance) { + error = CKR_GENERAL_ERROR; + goto loser; + } + + if (!*pFwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + error = nssCKFWInstance_Destroy(*pFwInstance); + + /* In any case */ + *pFwInstance = (NSSCKFWInstance *)NULL; + +loser: + switch (error) { + PRInt32 remainingInstances; + case CKR_OK: + remainingInstances = PR_ATOMIC_DECREMENT(&liveInstances); + if (!remainingInstances) { + nssArena_Shutdown(); + } + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + break; + default: + error = CKR_GENERAL_ERROR; + break; + } + + /* + * A thread's error stack is automatically destroyed when the thread + * terminates or, for the primordial thread, by PR_Cleanup. On + * Windows with MinGW, the thread private data destructor PR_Free + * registered by this module is actually a thunk for PR_Free defined + * in this module. When the thread that unloads this module terminates + * or calls PR_Cleanup, the thunk for PR_Free is already gone with the + * module. Therefore we need to destroy the error stack before the + * module is unloaded. + */ + nss_DestroyErrorStack(); + return error; +} + +/* + * NSSCKFWC_GetInfo + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetInfo( + NSSCKFWInstance *fwInstance, + CK_INFO_PTR pInfo) +{ + CK_RV error = CKR_OK; + + if ((CK_INFO_PTR)CK_NULL_PTR == pInfo) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here means a caller error + */ + (void)nsslibc_memset(pInfo, 0, sizeof(CK_INFO)); + + pInfo->cryptokiVersion = nssCKFWInstance_GetCryptokiVersion(fwInstance); + + error = nssCKFWInstance_GetManufacturerID(fwInstance, pInfo->manufacturerID); + if (CKR_OK != error) { + goto loser; + } + + pInfo->flags = nssCKFWInstance_GetFlags(fwInstance); + + error = nssCKFWInstance_GetLibraryDescription(fwInstance, pInfo->libraryDescription); + if (CKR_OK != error) { + goto loser; + } + + pInfo->libraryVersion = nssCKFWInstance_GetLibraryVersion(fwInstance); + + return CKR_OK; + +loser: + switch (error) { + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + break; + default: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * C_GetFunctionList is implemented entirely in the Module's file which + * includes the Framework API insert file. It requires no "actual" + * NSSCKFW routine. + */ + +/* + * NSSCKFWC_GetSlotList + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetSlotList( + NSSCKFWInstance *fwInstance, + CK_BBOOL tokenPresent, + CK_SLOT_ID_PTR pSlotList, + CK_ULONG_PTR pulCount) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + switch (tokenPresent) { + case CK_TRUE: + case CK_FALSE: + break; + default: + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + if ((CK_ULONG_PTR)CK_NULL_PTR == pulCount) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((CK_SLOT_ID_PTR)CK_NULL_PTR == pSlotList) { + *pulCount = nSlots; + return CKR_OK; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pSlotList, 0, *pulCount * sizeof(CK_SLOT_ID)); + + if (*pulCount < nSlots) { + *pulCount = nSlots; + error = CKR_BUFFER_TOO_SMALL; + goto loser; + } else { + CK_ULONG i; + *pulCount = nSlots; + + /* + * Our secret "mapping": CK_SLOT_IDs are integers [1,N], and we + * just index one when we need it. + */ + + for (i = 0; i < nSlots; i++) { + pSlotList[i] = i + 1; + } + + return CKR_OK; + } + +loser: + switch (error) { + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetSlotInfo + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetSlotInfo( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_SLOT_INFO_PTR pInfo) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + if ((CK_SLOT_INFO_PTR)CK_NULL_PTR == pInfo) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pInfo, 0, sizeof(CK_SLOT_INFO)); + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + error = nssCKFWSlot_GetSlotDescription(fwSlot, pInfo->slotDescription); + if (CKR_OK != error) { + goto loser; + } + + error = nssCKFWSlot_GetManufacturerID(fwSlot, pInfo->manufacturerID); + if (CKR_OK != error) { + goto loser; + } + + if (nssCKFWSlot_GetTokenPresent(fwSlot)) { + pInfo->flags |= CKF_TOKEN_PRESENT; + } + + if (nssCKFWSlot_GetRemovableDevice(fwSlot)) { + pInfo->flags |= CKF_REMOVABLE_DEVICE; + } + + if (nssCKFWSlot_GetHardwareSlot(fwSlot)) { + pInfo->flags |= CKF_HW_SLOT; + } + + pInfo->hardwareVersion = nssCKFWSlot_GetHardwareVersion(fwSlot); + pInfo->firmwareVersion = nssCKFWSlot_GetFirmwareVersion(fwSlot); + + return CKR_OK; + +loser: + switch (error) { + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SLOT_ID_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + } + + return error; +} + +/* + * NSSCKFWC_GetTokenInfo + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetTokenInfo( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_TOKEN_INFO_PTR pInfo) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + if ((CK_TOKEN_INFO_PTR)CK_NULL_PTR == pInfo) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pInfo, 0, sizeof(CK_TOKEN_INFO)); + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + error = nssCKFWToken_GetLabel(fwToken, pInfo->label); + if (CKR_OK != error) { + goto loser; + } + + error = nssCKFWToken_GetManufacturerID(fwToken, pInfo->manufacturerID); + if (CKR_OK != error) { + goto loser; + } + + error = nssCKFWToken_GetModel(fwToken, pInfo->model); + if (CKR_OK != error) { + goto loser; + } + + error = nssCKFWToken_GetSerialNumber(fwToken, pInfo->serialNumber); + if (CKR_OK != error) { + goto loser; + } + + if (nssCKFWToken_GetHasRNG(fwToken)) { + pInfo->flags |= CKF_RNG; + } + + if (nssCKFWToken_GetIsWriteProtected(fwToken)) { + pInfo->flags |= CKF_WRITE_PROTECTED; + } + + if (nssCKFWToken_GetLoginRequired(fwToken)) { + pInfo->flags |= CKF_LOGIN_REQUIRED; + } + + if (nssCKFWToken_GetUserPinInitialized(fwToken)) { + pInfo->flags |= CKF_USER_PIN_INITIALIZED; + } + + if (nssCKFWToken_GetRestoreKeyNotNeeded(fwToken)) { + pInfo->flags |= CKF_RESTORE_KEY_NOT_NEEDED; + } + + if (nssCKFWToken_GetHasClockOnToken(fwToken)) { + pInfo->flags |= CKF_CLOCK_ON_TOKEN; + } + + if (nssCKFWToken_GetHasProtectedAuthenticationPath(fwToken)) { + pInfo->flags |= CKF_PROTECTED_AUTHENTICATION_PATH; + } + + if (nssCKFWToken_GetSupportsDualCryptoOperations(fwToken)) { + pInfo->flags |= CKF_DUAL_CRYPTO_OPERATIONS; + } + + pInfo->ulMaxSessionCount = nssCKFWToken_GetMaxSessionCount(fwToken); + pInfo->ulSessionCount = nssCKFWToken_GetSessionCount(fwToken); + pInfo->ulMaxRwSessionCount = nssCKFWToken_GetMaxRwSessionCount(fwToken); + pInfo->ulRwSessionCount = nssCKFWToken_GetRwSessionCount(fwToken); + pInfo->ulMaxPinLen = nssCKFWToken_GetMaxPinLen(fwToken); + pInfo->ulMinPinLen = nssCKFWToken_GetMinPinLen(fwToken); + pInfo->ulTotalPublicMemory = nssCKFWToken_GetTotalPublicMemory(fwToken); + pInfo->ulFreePublicMemory = nssCKFWToken_GetFreePublicMemory(fwToken); + pInfo->ulTotalPrivateMemory = nssCKFWToken_GetTotalPrivateMemory(fwToken); + pInfo->ulFreePrivateMemory = nssCKFWToken_GetFreePrivateMemory(fwToken); + pInfo->hardwareVersion = nssCKFWToken_GetHardwareVersion(fwToken); + pInfo->firmwareVersion = nssCKFWToken_GetFirmwareVersion(fwToken); + + error = nssCKFWToken_GetUTCTime(fwToken, pInfo->utcTime); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_DEVICE_REMOVED: + case CKR_TOKEN_NOT_PRESENT: + if (fwToken) + nssCKFWToken_Destroy(fwToken); + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SLOT_ID_INVALID: + case CKR_TOKEN_NOT_RECOGNIZED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_WaitForSlotEvent + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_WaitForSlotEvent( + NSSCKFWInstance *fwInstance, + CK_FLAGS flags, + CK_SLOT_ID_PTR pSlot, + CK_VOID_PTR pReserved) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + CK_BBOOL block; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + CK_ULONG i; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + if (flags & ~CKF_DONT_BLOCK) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + block = (flags & CKF_DONT_BLOCK) ? CK_TRUE : CK_FALSE; + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((CK_SLOT_ID_PTR)CK_NULL_PTR == pSlot) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + if ((CK_VOID_PTR)CK_NULL_PTR != pReserved) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = nssCKFWInstance_WaitForSlotEvent(fwInstance, block, &error); + if (!fwSlot) { + goto loser; + } + + for (i = 0; i < nSlots; i++) { + if (fwSlot == slots[i]) { + *pSlot = (CK_SLOT_ID)(CK_ULONG)(i + 1); + return CKR_OK; + } + } + + error = CKR_GENERAL_ERROR; /* returned something not in the slot list */ + +loser: + switch (error) { + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_NO_EVENT: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetMechanismList + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetMechanismList( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE_PTR pMechanismList, + CK_ULONG_PTR pulCount) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + CK_ULONG count; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + if ((CK_ULONG_PTR)CK_NULL_PTR == pulCount) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + count = nssCKFWToken_GetMechanismCount(fwToken); + + if ((CK_MECHANISM_TYPE_PTR)CK_NULL_PTR == pMechanismList) { + *pulCount = count; + return CKR_OK; + } + + if (*pulCount < count) { + *pulCount = count; + error = CKR_BUFFER_TOO_SMALL; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pMechanismList, 0, *pulCount * sizeof(CK_MECHANISM_TYPE)); + + *pulCount = count; + + if (0 != count) { + error = nssCKFWToken_GetMechanismTypes(fwToken, pMechanismList); + } else { + error = CKR_OK; + } + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + switch (error) { + case CKR_DEVICE_REMOVED: + case CKR_TOKEN_NOT_PRESENT: + if (fwToken) + nssCKFWToken_Destroy(fwToken); + break; + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SLOT_ID_INVALID: + case CKR_TOKEN_NOT_RECOGNIZED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetMechanismInfo + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetMechanismInfo( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_MECHANISM_TYPE type, + CK_MECHANISM_INFO_PTR pInfo) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + if ((CK_MECHANISM_INFO_PTR)CK_NULL_PTR == pInfo) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pInfo, 0, sizeof(CK_MECHANISM_INFO)); + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, type, &error); + if (!fwMechanism) { + goto loser; + } + + pInfo->ulMinKeySize = nssCKFWMechanism_GetMinKeySize(fwMechanism, &error); + pInfo->ulMaxKeySize = nssCKFWMechanism_GetMaxKeySize(fwMechanism, &error); + + if (nssCKFWMechanism_GetInHardware(fwMechanism, &error)) { + pInfo->flags |= CKF_HW; + } + if (nssCKFWMechanism_GetCanEncrypt(fwMechanism, &error)) { + pInfo->flags |= CKF_ENCRYPT; + } + if (nssCKFWMechanism_GetCanDecrypt(fwMechanism, &error)) { + pInfo->flags |= CKF_DECRYPT; + } + if (nssCKFWMechanism_GetCanDigest(fwMechanism, &error)) { + pInfo->flags |= CKF_DIGEST; + } + if (nssCKFWMechanism_GetCanSign(fwMechanism, &error)) { + pInfo->flags |= CKF_SIGN; + } + if (nssCKFWMechanism_GetCanSignRecover(fwMechanism, &error)) { + pInfo->flags |= CKF_SIGN_RECOVER; + } + if (nssCKFWMechanism_GetCanVerify(fwMechanism, &error)) { + pInfo->flags |= CKF_VERIFY; + } + if (nssCKFWMechanism_GetCanVerifyRecover(fwMechanism, &error)) { + pInfo->flags |= CKF_VERIFY_RECOVER; + } + if (nssCKFWMechanism_GetCanGenerate(fwMechanism, &error)) { + pInfo->flags |= CKF_GENERATE; + } + if (nssCKFWMechanism_GetCanGenerateKeyPair(fwMechanism, &error)) { + pInfo->flags |= CKF_GENERATE_KEY_PAIR; + } + if (nssCKFWMechanism_GetCanWrap(fwMechanism, &error)) { + pInfo->flags |= CKF_WRAP; + } + if (nssCKFWMechanism_GetCanUnwrap(fwMechanism, &error)) { + pInfo->flags |= CKF_UNWRAP; + } + if (nssCKFWMechanism_GetCanDerive(fwMechanism, &error)) { + pInfo->flags |= CKF_DERIVE; + } + nssCKFWMechanism_Destroy(fwMechanism); + + return error; + +loser: + switch (error) { + case CKR_DEVICE_REMOVED: + case CKR_TOKEN_NOT_PRESENT: + if (fwToken) + nssCKFWToken_Destroy(fwToken); + break; + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_MECHANISM_INVALID: + case CKR_SLOT_ID_INVALID: + case CKR_TOKEN_NOT_RECOGNIZED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_InitToken + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_InitToken( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen, + CK_CHAR_PTR pLabel) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + NSSItem pin; + NSSUTF8 *label; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + pin.size = (PRUint32)ulPinLen; + pin.data = (void *)pPin; + label = (NSSUTF8 *)pLabel; /* identity conversion */ + + error = nssCKFWToken_InitToken(fwToken, &pin, label); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_DEVICE_REMOVED: + case CKR_TOKEN_NOT_PRESENT: + if (fwToken) + nssCKFWToken_Destroy(fwToken); + break; + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_PIN_INCORRECT: + case CKR_PIN_LOCKED: + case CKR_SESSION_EXISTS: + case CKR_SLOT_ID_INVALID: + case CKR_TOKEN_NOT_RECOGNIZED: + case CKR_TOKEN_WRITE_PROTECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_InitPIN + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_InitPIN( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSItem pin, *arg; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_CHAR_PTR)CK_NULL_PTR == pPin) { + arg = (NSSItem *)NULL; + } else { + arg = &pin; + pin.size = (PRUint32)ulPinLen; + pin.data = (void *)pPin; + } + + error = nssCKFWSession_InitPIN(fwSession, arg); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_PIN_INVALID: + case CKR_PIN_LEN_RANGE: + case CKR_SESSION_READ_ONLY: + case CKR_SESSION_HANDLE_INVALID: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_SetPIN + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SetPIN( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_CHAR_PTR pOldPin, + CK_ULONG ulOldLen, + CK_CHAR_PTR pNewPin, + CK_ULONG ulNewLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSItem oldPin, newPin, *oldArg, *newArg; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_CHAR_PTR)CK_NULL_PTR == pOldPin) { + oldArg = (NSSItem *)NULL; + } else { + oldArg = &oldPin; + oldPin.size = (PRUint32)ulOldLen; + oldPin.data = (void *)pOldPin; + } + + if ((CK_CHAR_PTR)CK_NULL_PTR == pNewPin) { + newArg = (NSSItem *)NULL; + } else { + newArg = &newPin; + newPin.size = (PRUint32)ulNewLen; + newPin.data = (void *)pNewPin; + } + + error = nssCKFWSession_SetPIN(fwSession, oldArg, newArg); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_PIN_INCORRECT: + case CKR_PIN_INVALID: + case CKR_PIN_LEN_RANGE: + case CKR_PIN_LOCKED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TOKEN_WRITE_PROTECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_OpenSession + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_OpenSession( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID, + CK_FLAGS flags, + CK_VOID_PTR pApplication, + CK_NOTIFY Notify, + CK_SESSION_HANDLE_PTR phSession) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + NSSCKFWSession *fwSession; + CK_BBOOL rw; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + if (flags & CKF_RW_SESSION) { + rw = CK_TRUE; + } else { + rw = CK_FALSE; + } + + if (flags & CKF_SERIAL_SESSION) { + ; + } else { + error = CKR_SESSION_PARALLEL_NOT_SUPPORTED; + goto loser; + } + + if (flags & ~(CKF_RW_SESSION | CKF_SERIAL_SESSION)) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + if ((CK_SESSION_HANDLE_PTR)CK_NULL_PTR == phSession) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + *phSession = (CK_SESSION_HANDLE)0; + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwSession = nssCKFWToken_OpenSession(fwToken, rw, pApplication, + Notify, &error); + if (!fwSession) { + goto loser; + } + + *phSession = nssCKFWInstance_CreateSessionHandle(fwInstance, + fwSession, &error); + if ((CK_SESSION_HANDLE)0 == *phSession) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SESSION_COUNT: + case CKR_SESSION_EXISTS: + case CKR_SESSION_PARALLEL_NOT_SUPPORTED: + case CKR_SESSION_READ_WRITE_SO_EXISTS: + case CKR_SLOT_ID_INVALID: + case CKR_TOKEN_NOT_PRESENT: + case CKR_TOKEN_NOT_RECOGNIZED: + case CKR_TOKEN_WRITE_PROTECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_CloseSession + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_CloseSession( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + nssCKFWInstance_DestroySessionHandle(fwInstance, hSession); + error = nssCKFWSession_Destroy(fwSession, CK_TRUE); + + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_CloseAllSessions + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_CloseAllSessions( + NSSCKFWInstance *fwInstance, + CK_SLOT_ID slotID) +{ + CK_RV error = CKR_OK; + CK_ULONG nSlots; + NSSCKFWSlot **slots; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken = (NSSCKFWToken *)NULL; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + nSlots = nssCKFWInstance_GetNSlots(fwInstance, &error); + if ((CK_ULONG)0 == nSlots) { + goto loser; + } + + if ((slotID < 1) || (slotID > nSlots)) { + error = CKR_SLOT_ID_INVALID; + goto loser; + } + + slots = nssCKFWInstance_GetSlots(fwInstance, &error); + if ((NSSCKFWSlot **)NULL == slots) { + goto loser; + } + + fwSlot = slots[slotID - 1]; + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + error = nssCKFWToken_CloseAllSessions(fwToken); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SLOT_ID_INVALID: + case CKR_TOKEN_NOT_PRESENT: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetSessionInfo + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetSessionInfo( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_SESSION_INFO_PTR pInfo) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWSlot *fwSlot; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_SESSION_INFO_PTR)CK_NULL_PTR == pInfo) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pInfo, 0, sizeof(CK_SESSION_INFO)); + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; + goto loser; + } + + pInfo->slotID = nssCKFWSlot_GetSlotID(fwSlot); + pInfo->state = nssCKFWSession_GetSessionState(fwSession); + + if (CK_TRUE == nssCKFWSession_IsRWSession(fwSession)) { + pInfo->flags |= CKF_RW_SESSION; + } + + pInfo->flags |= CKF_SERIAL_SESSION; /* Always true */ + + pInfo->ulDeviceError = nssCKFWSession_GetDeviceError(fwSession); + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetOperationState + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetOperationState( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG_PTR pulOperationStateLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + CK_ULONG len; + NSSItem buf; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_ULONG_PTR)CK_NULL_PTR == pulOperationStateLen) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + len = nssCKFWSession_GetOperationStateLen(fwSession, &error); + if (((CK_ULONG)0 == len) && (CKR_OK != error)) { + goto loser; + } + + if ((CK_BYTE_PTR)CK_NULL_PTR == pOperationState) { + *pulOperationStateLen = len; + return CKR_OK; + } + + if (*pulOperationStateLen < len) { + *pulOperationStateLen = len; + error = CKR_BUFFER_TOO_SMALL; + goto loser; + } + + buf.size = (PRUint32)*pulOperationStateLen; + buf.data = (void *)pOperationState; + *pulOperationStateLen = len; + error = nssCKFWSession_GetOperationState(fwSession, &buf); + + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_STATE_UNSAVEABLE: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_SetOperationState + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SetOperationState( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pOperationState, + CK_ULONG ulOperationStateLen, + CK_OBJECT_HANDLE hEncryptionKey, + CK_OBJECT_HANDLE hAuthenticationKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *eKey; + NSSCKFWObject *aKey; + NSSItem state; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + if ((CK_BYTE_PTR)CK_NULL_PTR == pOperationState) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * We could loop through the buffer, to catch any purify errors + * in a place with a "user error" note. + */ + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_OBJECT_HANDLE)0 == hEncryptionKey) { + eKey = (NSSCKFWObject *)NULL; + } else { + eKey = nssCKFWInstance_ResolveObjectHandle(fwInstance, hEncryptionKey); + if (!eKey) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + } + + if ((CK_OBJECT_HANDLE)0 == hAuthenticationKey) { + aKey = (NSSCKFWObject *)NULL; + } else { + aKey = nssCKFWInstance_ResolveObjectHandle(fwInstance, hAuthenticationKey); + if (!aKey) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + } + + state.data = pOperationState; + state.size = ulOperationStateLen; + + error = nssCKFWSession_SetOperationState(fwSession, &state, eKey, aKey); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_CHANGED: + case CKR_KEY_NEEDED: + case CKR_KEY_NOT_NEEDED: + case CKR_SAVED_STATE_INVALID: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_Login + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Login( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_USER_TYPE userType, + CK_CHAR_PTR pPin, + CK_ULONG ulPinLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSItem pin, *arg; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_CHAR_PTR)CK_NULL_PTR == pPin) { + arg = (NSSItem *)NULL; + } else { + arg = &pin; + pin.size = (PRUint32)ulPinLen; + pin.data = (void *)pPin; + } + + error = nssCKFWSession_Login(fwSession, userType, arg); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_PIN_EXPIRED: + case CKR_PIN_INCORRECT: + case CKR_PIN_LOCKED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY_EXISTS: + case CKR_USER_ALREADY_LOGGED_IN: + case CKR_USER_ANOTHER_ALREADY_LOGGED_IN: + case CKR_USER_PIN_NOT_INITIALIZED: + case CKR_USER_TOO_MANY_TYPES: + case CKR_USER_TYPE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_Logout + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Logout( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Logout(fwSession); + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_CreateObject + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_CreateObject( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phObject) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phObject) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + *phObject = (CK_OBJECT_HANDLE)0; + + fwObject = nssCKFWSession_CreateObject(fwSession, pTemplate, + ulCount, &error); + if (!fwObject) { + goto loser; + } + + *phObject = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); + if ((CK_OBJECT_HANDLE)0 == *phObject) { + nssCKFWObject_Destroy(fwObject); + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCOMPLETE: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_CopyObject + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_CopyObject( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phNewObject) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWObject *fwNewObject; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phNewObject) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + *phNewObject = (CK_OBJECT_HANDLE)0; + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); + if (!fwObject) { + error = CKR_OBJECT_HANDLE_INVALID; + goto loser; + } + + fwNewObject = nssCKFWSession_CopyObject(fwSession, fwObject, + pTemplate, ulCount, &error); + if (!fwNewObject) { + goto loser; + } + + *phNewObject = nssCKFWInstance_CreateObjectHandle(fwInstance, + fwNewObject, &error); + if ((CK_OBJECT_HANDLE)0 == *phNewObject) { + nssCKFWObject_Destroy(fwNewObject); + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OBJECT_HANDLE_INVALID: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_DestroyObject + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DestroyObject( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); + if (!fwObject) { + error = CKR_OBJECT_HANDLE_INVALID; + goto loser; + } + + nssCKFWInstance_DestroyObjectHandle(fwInstance, hObject); + nssCKFWObject_Destroy(fwObject); + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OBJECT_HANDLE_INVALID: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TOKEN_WRITE_PROTECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetObjectSize + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetObjectSize( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ULONG_PTR pulSize) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); + if (!fwObject) { + error = CKR_OBJECT_HANDLE_INVALID; + goto loser; + } + + if ((CK_ULONG_PTR)CK_NULL_PTR == pulSize) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + *pulSize = (CK_ULONG)0; + + *pulSize = nssCKFWObject_GetObjectSize(fwObject, &error); + if (((CK_ULONG)0 == *pulSize) && (CKR_OK != error)) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_INFORMATION_SENSITIVE: + case CKR_OBJECT_HANDLE_INVALID: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetAttributeValue + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetAttributeValue( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + CK_BBOOL sensitive = CK_FALSE; + CK_BBOOL invalid = CK_FALSE; + CK_BBOOL tooSmall = CK_FALSE; + CK_ULONG i; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); + if (!fwObject) { + error = CKR_OBJECT_HANDLE_INVALID; + goto loser; + } + + if ((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + for (i = 0; i < ulCount; i++) { + CK_ULONG size = nssCKFWObject_GetAttributeSize(fwObject, + pTemplate[i].type, &error); + if ((CK_ULONG)0 == size) { + switch (error) { + case CKR_ATTRIBUTE_SENSITIVE: + case CKR_INFORMATION_SENSITIVE: + sensitive = + CK_TRUE; + pTemplate[i].ulValueLen = + (CK_ULONG)(-1); + continue; + case CKR_ATTRIBUTE_TYPE_INVALID: + invalid = + CK_TRUE; + pTemplate[i].ulValueLen = + (CK_ULONG)(-1); + continue; + case CKR_OK: + break; + default: + goto loser; + } + } + + if ((CK_VOID_PTR)CK_NULL_PTR == pTemplate[i].pValue) { + pTemplate[i].ulValueLen = size; + } else { + NSSItem it, *p; + + if (pTemplate[i].ulValueLen < size) { + tooSmall = CK_TRUE; + continue; + } + + it.size = (PRUint32)pTemplate[i].ulValueLen; + it.data = (void *)pTemplate[i].pValue; + p = nssCKFWObject_GetAttribute(fwObject, pTemplate[i].type, &it, + (NSSArena *)NULL, &error); + if (!p) { + switch (error) { + case CKR_ATTRIBUTE_SENSITIVE: + case CKR_INFORMATION_SENSITIVE: + sensitive = + CK_TRUE; + pTemplate[i].ulValueLen = + (CK_ULONG)(-1); + continue; + case CKR_ATTRIBUTE_TYPE_INVALID: + invalid = + CK_TRUE; + pTemplate[i].ulValueLen = + (CK_ULONG)(-1); + continue; + default: + goto loser; + } + } + + pTemplate[i].ulValueLen = size; + } + } + + if (sensitive) { + error = CKR_ATTRIBUTE_SENSITIVE; + goto loser; + } else if (invalid) { + error = CKR_ATTRIBUTE_TYPE_INVALID; + goto loser; + } else if (tooSmall) { + error = CKR_BUFFER_TOO_SMALL; + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ATTRIBUTE_SENSITIVE: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OBJECT_HANDLE_INVALID: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_SetAttributeValue + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SetAttributeValue( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hObject, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + CK_ULONG i; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hObject); + if (!fwObject) { + error = CKR_OBJECT_HANDLE_INVALID; + goto loser; + } + + if ((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + for (i = 0; i < ulCount; i++) { + NSSItem value; + + value.data = pTemplate[i].pValue; + value.size = pTemplate[i].ulValueLen; + + error = nssCKFWObject_SetAttribute(fwObject, fwSession, + pTemplate[i].type, &value); + + if (CKR_OK != error) { + goto loser; + } + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OBJECT_HANDLE_INVALID: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_FindObjectsInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_FindObjectsInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWFindObjects *fwFindObjects; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if (((CK_ATTRIBUTE_PTR)CK_NULL_PTR == pTemplate) && (ulCount != 0)) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); + if (fwFindObjects) { + error = CKR_OPERATION_ACTIVE; + goto loser; + } + + if (CKR_OPERATION_NOT_INITIALIZED != error) { + goto loser; + } + + fwFindObjects = nssCKFWSession_FindObjectsInit(fwSession, + pTemplate, ulCount, &error); + if (!fwFindObjects) { + goto loser; + } + + error = nssCKFWSession_SetFWFindObjects(fwSession, fwFindObjects); + + if (CKR_OK != error) { + nssCKFWFindObjects_Destroy(fwFindObjects); + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_ACTIVE: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_FindObjects + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_FindObjects( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE_PTR phObject, + CK_ULONG ulMaxObjectCount, + CK_ULONG_PTR pulObjectCount) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWFindObjects *fwFindObjects; + CK_ULONG i; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_OBJECT_HANDLE_PTR)CK_NULL_PTR == phObject) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(phObject, 0, sizeof(CK_OBJECT_HANDLE) * ulMaxObjectCount); + *pulObjectCount = (CK_ULONG)0; + + fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); + if (!fwFindObjects) { + goto loser; + } + + for (i = 0; i < ulMaxObjectCount; i++) { + NSSCKFWObject *fwObject = nssCKFWFindObjects_Next(fwFindObjects, + NULL, &error); + if (!fwObject) { + break; + } + + phObject[i] = nssCKFWInstance_FindObjectHandle(fwInstance, fwObject); + if ((CK_OBJECT_HANDLE)0 == phObject[i]) { + phObject[i] = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); + } + if ((CK_OBJECT_HANDLE)0 == phObject[i]) { + /* This isn't right either, is it? */ + nssCKFWObject_Destroy(fwObject); + goto loser; + } + } + + *pulObjectCount = i; + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_FindObjectsFinal + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_FindObjectsFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWFindObjects *fwFindObjects; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwFindObjects = nssCKFWSession_GetFWFindObjects(fwSession, &error); + if (!fwFindObjects) { + error = CKR_OPERATION_NOT_INITIALIZED; + goto loser; + } + + nssCKFWFindObjects_Destroy(fwFindObjects); + error = nssCKFWSession_SetFWFindObjects(fwSession, + (NSSCKFWFindObjects *)NULL); + + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_EncryptInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_EncryptInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_EncryptInit(fwMechanism, pMechanism, + fwSession, fwObject); + + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_FUNCTION_NOT_PERMITTED: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_Encrypt + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Encrypt( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pEncryptedData, + CK_ULONG_PTR pulEncryptedDataLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_Encrypt, + NSSCKFWCryptoOperationState_EncryptDecrypt, + pData, ulDataLen, pEncryptedData, pulEncryptedDataLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_INVALID: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_CLOSED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_EncryptUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_EncryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Update(fwSession, + NSSCKFWCryptoOperationType_Encrypt, + NSSCKFWCryptoOperationState_EncryptDecrypt, + pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_EncryptFinal + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_EncryptFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastEncryptedPart, + CK_ULONG_PTR pulLastEncryptedPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Final(fwSession, + NSSCKFWCryptoOperationType_Encrypt, + NSSCKFWCryptoOperationState_EncryptDecrypt, + pLastEncryptedPart, pulLastEncryptedPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DecryptInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DecryptInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_DecryptInit(fwMechanism, pMechanism, + fwSession, fwObject); + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_FUNCTION_NOT_PERMITTED: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_Decrypt + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Decrypt( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedData, + CK_ULONG ulEncryptedDataLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_Decrypt, + NSSCKFWCryptoOperationState_EncryptDecrypt, + pEncryptedData, ulEncryptedDataLen, pData, pulDataLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_ENCRYPTED_DATA_INVALID: + case CKR_ENCRYPTED_DATA_LEN_RANGE: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + case CKR_DATA_LEN_RANGE: + error = CKR_ENCRYPTED_DATA_LEN_RANGE; + break; + case CKR_DATA_INVALID: + error = CKR_ENCRYPTED_DATA_INVALID; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DecryptUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DecryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Update(fwSession, + NSSCKFWCryptoOperationType_Decrypt, + NSSCKFWCryptoOperationState_EncryptDecrypt, + pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_ENCRYPTED_DATA_INVALID: + case CKR_ENCRYPTED_DATA_LEN_RANGE: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + case CKR_DATA_LEN_RANGE: + error = CKR_ENCRYPTED_DATA_LEN_RANGE; + break; + case CKR_DATA_INVALID: + error = CKR_ENCRYPTED_DATA_INVALID; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DecryptFinal + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DecryptFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pLastPart, + CK_ULONG_PTR pulLastPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Final(fwSession, + NSSCKFWCryptoOperationType_Decrypt, + NSSCKFWCryptoOperationState_EncryptDecrypt, + pLastPart, pulLastPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_FAILED: + case CKR_FUNCTION_CANCELED: + case CKR_ENCRYPTED_DATA_INVALID: + case CKR_ENCRYPTED_DATA_LEN_RANGE: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + case CKR_DATA_LEN_RANGE: + error = CKR_ENCRYPTED_DATA_LEN_RANGE; + break; + case CKR_DATA_INVALID: + error = CKR_ENCRYPTED_DATA_INVALID; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DigestInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DigestInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_DigestInit(fwMechanism, pMechanism, fwSession); + + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_Digest + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Digest( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_Digest, + NSSCKFWCryptoOperationState_Digest, + pData, ulDataLen, pDigest, pulDigestLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DigestUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DigestUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_DigestUpdate(fwSession, + NSSCKFWCryptoOperationType_Digest, + NSSCKFWCryptoOperationState_Digest, + pData, ulDataLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DigestKey + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DigestKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_DigestKey(fwSession, fwObject); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_INDIGESTIBLE: + case CKR_KEY_SIZE_RANGE: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DigestFinal + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DigestFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pDigest, + CK_ULONG_PTR pulDigestLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Final(fwSession, + NSSCKFWCryptoOperationType_Digest, + NSSCKFWCryptoOperationState_Digest, + pDigest, pulDigestLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SignInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SignInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_SignInit(fwMechanism, pMechanism, fwSession, + fwObject); + + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_FUNCTION_NOT_PERMITTED: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_Sign + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Sign( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_Sign, + NSSCKFWCryptoOperationState_SignVerify, + pData, ulDataLen, pSignature, pulSignatureLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_INVALID: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + case CKR_FUNCTION_REJECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SignUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SignUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_DigestUpdate(fwSession, + NSSCKFWCryptoOperationType_Sign, + NSSCKFWCryptoOperationState_SignVerify, + pPart, ulPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SignFinal + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SignFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Final(fwSession, + NSSCKFWCryptoOperationType_Sign, + NSSCKFWCryptoOperationState_SignVerify, + pSignature, pulSignatureLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + case CKR_FUNCTION_REJECTED: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SignRecoverInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SignRecoverInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_SignRecoverInit(fwMechanism, pMechanism, fwSession, + fwObject); + + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_FUNCTION_NOT_PERMITTED: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SignRecover + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SignRecover( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG_PTR pulSignatureLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_SignRecover, + NSSCKFWCryptoOperationState_SignVerify, + pData, ulDataLen, pSignature, pulSignatureLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_INVALID: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_VerifyInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_VerifyInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_VerifyInit(fwMechanism, pMechanism, fwSession, + fwObject); + + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_FUNCTION_NOT_PERMITTED: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_Verify + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_Verify( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pData, + CK_ULONG ulDataLen, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_Verify, + NSSCKFWCryptoOperationState_SignVerify, + pData, ulDataLen, pSignature, &ulSignatureLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_INVALID: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SIGNATURE_INVALID: + case CKR_SIGNATURE_LEN_RANGE: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_VerifyUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_VerifyUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_DigestUpdate(fwSession, + NSSCKFWCryptoOperationType_Verify, + NSSCKFWCryptoOperationState_SignVerify, + pPart, ulPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_VerifyFinal + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_VerifyFinal( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_Final(fwSession, + NSSCKFWCryptoOperationType_Verify, + NSSCKFWCryptoOperationState_SignVerify, + pSignature, &ulSignatureLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SIGNATURE_INVALID: + case CKR_SIGNATURE_LEN_RANGE: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_VerifyRecoverInit + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_VerifyRecoverInit( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_VerifyRecoverInit(fwMechanism, pMechanism, + fwSession, fwObject); + + nssCKFWMechanism_Destroy(fwMechanism); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_FUNCTION_NOT_PERMITTED: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_CLOSED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_VerifyRecover + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_VerifyRecover( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSignature, + CK_ULONG ulSignatureLen, + CK_BYTE_PTR pData, + CK_ULONG_PTR pulDataLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateFinal(fwSession, + NSSCKFWCryptoOperationType_VerifyRecover, + NSSCKFWCryptoOperationState_SignVerify, + pSignature, ulSignatureLen, pData, pulDataLen); + if (CKR_OK == error) { + return CKR_OK; + } +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_INVALID: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SIGNATURE_INVALID: + case CKR_SIGNATURE_LEN_RANGE: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DigestEncryptUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DigestEncryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateCombo(fwSession, + NSSCKFWCryptoOperationType_Encrypt, + NSSCKFWCryptoOperationType_Digest, + NSSCKFWCryptoOperationState_Digest, + pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DecryptDigestUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DecryptDigestUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateCombo(fwSession, + NSSCKFWCryptoOperationType_Decrypt, + NSSCKFWCryptoOperationType_Digest, + NSSCKFWCryptoOperationState_Digest, + pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_ENCRYPTED_DATA_INVALID: + case CKR_ENCRYPTED_DATA_LEN_RANGE: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + case CKR_DATA_INVALID: + error = CKR_ENCRYPTED_DATA_INVALID; + break; + case CKR_DATA_LEN_RANGE: + error = CKR_ENCRYPTED_DATA_LEN_RANGE; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SignEncryptUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SignEncryptUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pPart, + CK_ULONG ulPartLen, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG_PTR pulEncryptedPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateCombo(fwSession, + NSSCKFWCryptoOperationType_Encrypt, + NSSCKFWCryptoOperationType_Sign, + NSSCKFWCryptoOperationState_SignVerify, + pPart, ulPartLen, pEncryptedPart, pulEncryptedPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DecryptVerifyUpdate + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DecryptVerifyUpdate( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pEncryptedPart, + CK_ULONG ulEncryptedPartLen, + CK_BYTE_PTR pPart, + CK_ULONG_PTR pulPartLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + error = nssCKFWSession_UpdateCombo(fwSession, + NSSCKFWCryptoOperationType_Decrypt, + NSSCKFWCryptoOperationType_Verify, + NSSCKFWCryptoOperationState_SignVerify, + pEncryptedPart, ulEncryptedPartLen, pPart, pulPartLen); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DATA_LEN_RANGE: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_ENCRYPTED_DATA_INVALID: + case CKR_ENCRYPTED_DATA_LEN_RANGE: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_NOT_INITIALIZED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + break; + case CKR_DATA_INVALID: + error = CKR_ENCRYPTED_DATA_INVALID; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_GenerateKey + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GenerateKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulCount, + CK_OBJECT_HANDLE_PTR phKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + fwObject = nssCKFWMechanism_GenerateKey( + fwMechanism, + pMechanism, + fwSession, + pTemplate, + ulCount, + &error); + + nssCKFWMechanism_Destroy(fwMechanism); + if (!fwObject) { + goto loser; + } + *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCOMPLETE: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_GenerateKeyPair + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GenerateKeyPair( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_ATTRIBUTE_PTR pPublicKeyTemplate, + CK_ULONG ulPublicKeyAttributeCount, + CK_ATTRIBUTE_PTR pPrivateKeyTemplate, + CK_ULONG ulPrivateKeyAttributeCount, + CK_OBJECT_HANDLE_PTR phPublicKey, + CK_OBJECT_HANDLE_PTR phPrivateKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwPrivateKeyObject; + NSSCKFWObject *fwPublicKeyObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + error = nssCKFWMechanism_GenerateKeyPair( + fwMechanism, + pMechanism, + fwSession, + pPublicKeyTemplate, + ulPublicKeyAttributeCount, + pPublicKeyTemplate, + ulPublicKeyAttributeCount, + &fwPublicKeyObject, + &fwPrivateKeyObject); + + nssCKFWMechanism_Destroy(fwMechanism); + if (CKR_OK != error) { + goto loser; + } + *phPublicKey = nssCKFWInstance_CreateObjectHandle(fwInstance, + fwPublicKeyObject, + &error); + if (CKR_OK != error) { + goto loser; + } + *phPrivateKey = nssCKFWInstance_CreateObjectHandle(fwInstance, + fwPrivateKeyObject, + &error); + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_DOMAIN_PARAMS_INVALID: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCOMPLETE: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_WrapKey + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_WrapKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hWrappingKey, + CK_OBJECT_HANDLE hKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG_PTR pulWrappedKeyLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwKeyObject; + NSSCKFWObject *fwWrappingKeyObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + NSSItem wrappedKey; + CK_ULONG wrappedKeyLength = 0; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwWrappingKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, + hWrappingKey); + if (!fwWrappingKeyObject) { + error = CKR_WRAPPING_KEY_HANDLE_INVALID; + goto loser; + } + + fwKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hKey); + if (!fwKeyObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + /* + * first get the length... + */ + wrappedKeyLength = nssCKFWMechanism_GetWrapKeyLength( + fwMechanism, + pMechanism, + fwSession, + fwWrappingKeyObject, + fwKeyObject, + &error); + if ((CK_ULONG)0 == wrappedKeyLength) { + nssCKFWMechanism_Destroy(fwMechanism); + goto loser; + } + if ((CK_BYTE_PTR)NULL == pWrappedKey) { + *pulWrappedKeyLen = wrappedKeyLength; + nssCKFWMechanism_Destroy(fwMechanism); + return CKR_OK; + } + if (wrappedKeyLength > *pulWrappedKeyLen) { + *pulWrappedKeyLen = wrappedKeyLength; + nssCKFWMechanism_Destroy(fwMechanism); + error = CKR_BUFFER_TOO_SMALL; + goto loser; + } + + wrappedKey.data = pWrappedKey; + wrappedKey.size = wrappedKeyLength; + + error = nssCKFWMechanism_WrapKey( + fwMechanism, + pMechanism, + fwSession, + fwWrappingKeyObject, + fwKeyObject, + &wrappedKey); + + nssCKFWMechanism_Destroy(fwMechanism); + *pulWrappedKeyLen = wrappedKey.size; + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_NOT_WRAPPABLE: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_UNEXTRACTABLE: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_WRAPPING_KEY_HANDLE_INVALID: + case CKR_WRAPPING_KEY_SIZE_RANGE: + case CKR_WRAPPING_KEY_TYPE_INCONSISTENT: + break; + case CKR_KEY_TYPE_INCONSISTENT: + error = CKR_WRAPPING_KEY_TYPE_INCONSISTENT; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_UnwrapKey + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_UnwrapKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hUnwrappingKey, + CK_BYTE_PTR pWrappedKey, + CK_ULONG ulWrappedKeyLen, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWObject *fwWrappingKeyObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + NSSItem wrappedKey; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwWrappingKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, + hUnwrappingKey); + if (!fwWrappingKeyObject) { + error = CKR_WRAPPING_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + wrappedKey.data = pWrappedKey; + wrappedKey.size = ulWrappedKeyLen; + + fwObject = nssCKFWMechanism_UnwrapKey( + fwMechanism, + pMechanism, + fwSession, + fwWrappingKeyObject, + &wrappedKey, + pTemplate, + ulAttributeCount, + &error); + + nssCKFWMechanism_Destroy(fwMechanism); + if (!fwObject) { + goto loser; + } + *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_BUFFER_TOO_SMALL: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_DOMAIN_PARAMS_INVALID: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCOMPLETE: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_UNWRAPPING_KEY_HANDLE_INVALID: + case CKR_UNWRAPPING_KEY_SIZE_RANGE: + case CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: + case CKR_USER_NOT_LOGGED_IN: + case CKR_WRAPPED_KEY_INVALID: + case CKR_WRAPPED_KEY_LEN_RANGE: + break; + case CKR_KEY_HANDLE_INVALID: + error = CKR_UNWRAPPING_KEY_HANDLE_INVALID; + break; + case CKR_KEY_SIZE_RANGE: + error = CKR_UNWRAPPING_KEY_SIZE_RANGE; + break; + case CKR_KEY_TYPE_INCONSISTENT: + error = CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT; + break; + case CKR_ENCRYPTED_DATA_INVALID: + error = CKR_WRAPPED_KEY_INVALID; + break; + case CKR_ENCRYPTED_DATA_LEN_RANGE: + error = CKR_WRAPPED_KEY_LEN_RANGE; + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_DeriveKey + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_DeriveKey( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_MECHANISM_PTR pMechanism, + CK_OBJECT_HANDLE hBaseKey, + CK_ATTRIBUTE_PTR pTemplate, + CK_ULONG ulAttributeCount, + CK_OBJECT_HANDLE_PTR phKey) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSCKFWObject *fwObject; + NSSCKFWObject *fwBaseKeyObject; + NSSCKFWSlot *fwSlot; + NSSCKFWToken *fwToken; + NSSCKFWMechanism *fwMechanism; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + fwBaseKeyObject = nssCKFWInstance_ResolveObjectHandle(fwInstance, hBaseKey); + if (!fwBaseKeyObject) { + error = CKR_KEY_HANDLE_INVALID; + goto loser; + } + + fwSlot = nssCKFWSession_GetFWSlot(fwSession); + if (!fwSlot) { + error = CKR_GENERAL_ERROR; /* should never happen! */ + goto loser; + } + + if (CK_TRUE != nssCKFWSlot_GetTokenPresent(fwSlot)) { + error = CKR_TOKEN_NOT_PRESENT; + goto loser; + } + + fwToken = nssCKFWSlot_GetToken(fwSlot, &error); + if (!fwToken) { + goto loser; + } + + fwMechanism = nssCKFWToken_GetMechanism(fwToken, pMechanism->mechanism, &error); + if (!fwMechanism) { + goto loser; + } + + fwObject = nssCKFWMechanism_DeriveKey( + fwMechanism, + pMechanism, + fwSession, + fwBaseKeyObject, + pTemplate, + ulAttributeCount, + &error); + + nssCKFWMechanism_Destroy(fwMechanism); + if (!fwObject) { + goto loser; + } + *phKey = nssCKFWInstance_CreateObjectHandle(fwInstance, fwObject, &error); + + if (CKR_OK == error) { + return CKR_OK; + } + +loser: + /* verify error */ + switch (error) { + case CKR_ARGUMENTS_BAD: + case CKR_ATTRIBUTE_READ_ONLY: + case CKR_ATTRIBUTE_TYPE_INVALID: + case CKR_ATTRIBUTE_VALUE_INVALID: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_DEVICE_REMOVED: + case CKR_DOMAIN_PARAMS_INVALID: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_KEY_HANDLE_INVALID: + case CKR_KEY_SIZE_RANGE: + case CKR_KEY_TYPE_INCONSISTENT: + case CKR_MECHANISM_INVALID: + case CKR_MECHANISM_PARAM_INVALID: + case CKR_OPERATION_ACTIVE: + case CKR_PIN_EXPIRED: + case CKR_SESSION_CLOSED: + case CKR_SESSION_HANDLE_INVALID: + case CKR_SESSION_READ_ONLY: + case CKR_TEMPLATE_INCOMPLETE: + case CKR_TEMPLATE_INCONSISTENT: + case CKR_TOKEN_WRITE_PROTECTED: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + return error; +} + +/* + * NSSCKFWC_SeedRandom + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_SeedRandom( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pSeed, + CK_ULONG ulSeedLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSItem seed; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_BYTE_PTR)CK_NULL_PTR == pSeed) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* We could read through the buffer in a Purify trap */ + + seed.size = (PRUint32)ulSeedLen; + seed.data = (void *)pSeed; + + error = nssCKFWSession_SeedRandom(fwSession, &seed); + + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_ACTIVE: + case CKR_RANDOM_SEED_NOT_SUPPORTED: + case CKR_RANDOM_NO_RNG: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GenerateRandom + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GenerateRandom( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession, + CK_BYTE_PTR pRandomData, + CK_ULONG ulRandomLen) +{ + CK_RV error = CKR_OK; + NSSCKFWSession *fwSession; + NSSItem buffer; + + if (!fwInstance) { + error = CKR_CRYPTOKI_NOT_INITIALIZED; + goto loser; + } + + fwSession = nssCKFWInstance_ResolveSessionHandle(fwInstance, hSession); + if (!fwSession) { + error = CKR_SESSION_HANDLE_INVALID; + goto loser; + } + + if ((CK_BYTE_PTR)CK_NULL_PTR == pRandomData) { + error = CKR_ARGUMENTS_BAD; + goto loser; + } + + /* + * A purify error here indicates caller error. + */ + (void)nsslibc_memset(pRandomData, 0, ulRandomLen); + + buffer.size = (PRUint32)ulRandomLen; + buffer.data = (void *)pRandomData; + + error = nssCKFWSession_GetRandom(fwSession, &buffer); + + if (CKR_OK != error) { + goto loser; + } + + return CKR_OK; + +loser: + switch (error) { + case CKR_SESSION_CLOSED: + /* destroy session? */ + break; + case CKR_DEVICE_REMOVED: + /* (void)nssCKFWToken_Destroy(fwToken); */ + break; + case CKR_ARGUMENTS_BAD: + case CKR_CRYPTOKI_NOT_INITIALIZED: + case CKR_DEVICE_ERROR: + case CKR_DEVICE_MEMORY: + case CKR_FUNCTION_CANCELED: + case CKR_FUNCTION_FAILED: + case CKR_GENERAL_ERROR: + case CKR_HOST_MEMORY: + case CKR_OPERATION_ACTIVE: + case CKR_RANDOM_NO_RNG: + case CKR_SESSION_HANDLE_INVALID: + case CKR_USER_NOT_LOGGED_IN: + break; + default: + case CKR_OK: + error = CKR_GENERAL_ERROR; + break; + } + + return error; +} + +/* + * NSSCKFWC_GetFunctionStatus + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_GetFunctionStatus( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + return CKR_FUNCTION_NOT_PARALLEL; +} + +/* + * NSSCKFWC_CancelFunction + * + */ +NSS_IMPLEMENT CK_RV +NSSCKFWC_CancelFunction( + NSSCKFWInstance *fwInstance, + CK_SESSION_HANDLE hSession) +{ + return CKR_FUNCTION_NOT_PARALLEL; +} |