diff options
Diffstat (limited to 'security/nss/cmd/libpkix')
113 files changed, 0 insertions, 30619 deletions
diff --git a/security/nss/cmd/libpkix/Makefile b/security/nss/cmd/libpkix/Makefile deleted file mode 100755 index 032bd29c9..000000000 --- a/security/nss/cmd/libpkix/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk - diff --git a/security/nss/cmd/libpkix/config.mk b/security/nss/cmd/libpkix/config.mk deleted file mode 100644 index 5ad9e1b90..000000000 --- a/security/nss/cmd/libpkix/config.mk +++ /dev/null @@ -1,42 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -TARGETS = $(LIBRARY) -SHARED_LIBRARY = -IMPORT_LIBRARY = -PROGRAM = diff --git a/security/nss/cmd/libpkix/manifest.mn b/security/nss/cmd/libpkix/manifest.mn deleted file mode 100755 index 3768a5ce5..000000000 --- a/security/nss/cmd/libpkix/manifest.mn +++ /dev/null @@ -1,44 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = . -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -DIRS = testutil pkix_pl pkix sample_apps perf pkixutil \ - $(NULL) diff --git a/security/nss/cmd/libpkix/perf/Makefile b/security/nss/cmd/libpkix/perf/Makefile deleted file mode 100755 index c13b32931..000000000 --- a/security/nss/cmd/libpkix/perf/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk - diff --git a/security/nss/cmd/libpkix/perf/libpkix_buildthreads.c b/security/nss/cmd/libpkix/perf/libpkix_buildthreads.c deleted file mode 100644 index bce93f22a..000000000 --- a/security/nss/cmd/libpkix/perf/libpkix_buildthreads.c +++ /dev/null @@ -1,382 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * libpkixBuildThreads.c - * - * libpkix Builder Performance Evaluation application (multi-threaded) - * - */ - -#include <stdio.h> -#include <string.h> - -#include "secutil.h" - -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "prlong.h" - -#include "pk11func.h" -#include "secasn1.h" -#include "cert.h" -#include "cryptohi.h" -#include "secoid.h" -#include "certdb.h" -#include "nss.h" - -#include "pkix.h" -#include "pkix_tools.h" -#include "pkix_pl_cert.h" - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -#undef pkixTempResult -#define PERF_DECREF(obj) \ - { \ - PKIX_Error *pkixTempResult = NULL; \ - if (obj){ \ - pkixTempResult = PKIX_PL_Object_DecRef \ - ((PKIX_PL_Object *)(obj), plContext); \ - obj = NULL; \ - } \ - } - -static void finish(char* message, int code); - -typedef struct ThreadDataStr tData; - -struct ThreadDataStr { - CERTCertificate* anchor; - char* eecertName; - PRIntervalTime duration; - CERTCertDBHandle *handle; - PRUint32 iterations; -}; - -#define PKIX_LOGGER_ON 1 - -#ifdef PKIX_LOGGER_ON - -char *logLevels[] = { - "None", - "Fatal Error", - "Error", - "Warning", - "Debug", - "Trace" -}; - -static PKIX_Error *loggerCallback( - PKIX_Logger *logger, - PKIX_PL_String *message, - PKIX_UInt32 logLevel, - PKIX_ERRORCLASS logComponent, - void *plContext) -{ - char *msg = NULL; - static int callCount = 0; - - msg = PKIX_String2ASCII(message, plContext); - printf("Logging %s (%s): %s\n", - logLevels[logLevel], - PKIX_ERRORCLASSNAMES[logComponent], - msg); - PR_Free((void *)msg); - - return(NULL); -} - -#endif /* PKIX_LOGGER_ON */ - -static void ThreadEntry(void* data) -{ - tData* tdata = (tData*) data; - PRIntervalTime duration = tdata->duration; - PRIntervalTime start = PR_IntervalNow(); - - PKIX_List *anchors = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_BuildResult *buildResult = NULL; - CERTCertificate* nsseecert; - PKIX_PL_Cert *eeCert = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_List *certStores = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_PL_Date *nowDate = NULL; - void *state = NULL; /* only relevant with non-blocking I/O */ - void *nbioContext = NULL; /* only relevant with non-blocking I/O */ - - PR_ASSERT(duration); - if (!duration){ - return; - } - - do { - - /* libpkix code */ - - /* keep more update time, testing cache */ - PKIX_PL_Date_Create_UTCTime(NULL, &nowDate, plContext); - - /* CertUsage is 0x10 and no NSS arena */ - /* We haven't determined how we obtain the value of wincx */ - - nsseecert = CERT_FindCertByNicknameOrEmailAddr(tdata->handle, - tdata->eecertName); - if (!nsseecert) finish("Unable to find eecert.\n", 1); - - pkix_pl_Cert_CreateWithNSSCert - (nsseecert, &eeCert, plContext); - - PKIX_List_Create(&anchors, plContext); - - /* - * This code is retired. - * pkix_pl_Cert_CreateWithNSSCert - * (tdata->anchor, &anchorCert, NULL); - * PKIX_TrustAnchor_CreateWithCert(anchorCert, &anchor, NULL); - * PKIX_List_AppendItem(anchors, (PKIX_PL_Object *)anchor, NULL); - */ - - PKIX_ProcessingParams_Create(anchors, &procParams, plContext); - - PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_TRUE, plContext); - - PKIX_ProcessingParams_SetDate - (procParams, nowDate, plContext); - - /* create CertSelector with target certificate in params */ - - PKIX_ComCertSelParams_Create(&certSelParams, plContext); - - PKIX_ComCertSelParams_SetCertificate - (certSelParams, eeCert, plContext); - - PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext); - - PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext); - - PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext); - - PKIX_PL_Pk11CertStore_Create(&certStore, plContext); - - PKIX_List_Create(&certStores, plContext); - PKIX_List_AppendItem - (certStores, (PKIX_PL_Object *)certStore, plContext); - PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext); - - PKIX_BuildChain - (procParams, - &nbioContext, - &state, - &buildResult, - NULL, - plContext); - - /* - * As long as we use only CertStores with blocking I/O, we - * know we must be done at this point. - */ - - if (!buildResult){ - (void) fprintf(stderr, "libpkix BuildChain failed.\n"); - PORT_Assert(0); - return; - } - - tdata->iterations ++; - - PERF_DECREF(nowDate); - PERF_DECREF(anchors); - PERF_DECREF(procParams); - PERF_DECREF(buildResult); - PERF_DECREF(certStore); - PERF_DECREF(certStores); - PERF_DECREF(certSelParams); - PERF_DECREF(certSelector); - PERF_DECREF(eeCert); - - } while ((PR_IntervalNow() - start) < duration); - - -} - -static void -Test( - CERTCertificate* anchor, - char* eecertName, - PRIntervalTime duration, - CERTCertDBHandle *handle, - PRUint32 threads) -{ - tData data; - tData** alldata; - PRIntervalTime starttime, endtime, elapsed; - PRUint32 msecs; - float total = 0; - PRThread** pthreads = NULL; - PRUint32 i = 0; - - data.duration = duration; - data.anchor = anchor; - data.eecertName = eecertName; - data.handle = handle; - - data.iterations = 0; - - starttime = PR_IntervalNow(); - pthreads = (PRThread**)PR_Malloc(threads*sizeof (PRThread*)); - alldata = (tData**)PR_Malloc(threads*sizeof (tData*)); - for (i = 0; i < threads; i++){ - alldata[i] = (tData*)PR_Malloc(sizeof (tData)); - *alldata[i] = data; - pthreads[i] = - PR_CreateThread(PR_USER_THREAD, - ThreadEntry, - (void*) alldata[i], - PR_PRIORITY_NORMAL, - PR_GLOBAL_THREAD, - PR_JOINABLE_THREAD, - 0); - } - - for (i = 0; i < threads; i++) { - tData* args = alldata[i]; - PR_JoinThread(pthreads[i]); - total += args->iterations; - PR_Free((void*)args); - } - - PR_Free((void*) pthreads); - PR_Free((void*) alldata); - endtime = PR_IntervalNow(); - - endtime = PR_IntervalNow(); - elapsed = endtime - starttime; - msecs = PR_IntervalToMilliseconds(elapsed); - total /= msecs; - total *= 1000; - (void) fprintf(stdout, "%f operations per second.\n", total); -} - - -static void finish(char* message, int code) -{ - (void) printf(message); - exit(code); -} - -static void usage(char* progname) -{ - (void) printf("Usage : %s <-d certStoreDirectory> <duration> <threads> " - "<anchorNickname> <eecertNickname>\n\n", progname); - finish("", 0); -} - -int -libpkix_buildthreads(int argc, char** argv) -{ - CERTCertDBHandle *handle = NULL; - CERTCertificate* eecert = NULL; - PRIntervalTime duration = PR_SecondsToInterval(1); - PRUint32 threads = 1; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - PKIX_Logger *logger = NULL; - void *wincx = NULL; - - /* if (argc != 5) -- when TrustAnchor used to be on command line */ - if (argc != 4) - { - usage(argv[0]); - } - if (atoi(argv[1]) > 0) - { - duration = PR_SecondsToInterval(atoi(argv[1])); - } - if (atoi(argv[2]) > 0) - { - threads = atoi(argv[2]); - } - - PKIX_PL_NssContext_Create(certificateUsageEmailSigner, PKIX_FALSE, - NULL, &plContext); - - handle = CERT_GetDefaultCertDB(); - PR_ASSERT(handle); - -#ifdef PKIX_LOGGER_ON - - /* set logger to log trace and up */ - PKIX_SetLoggers(NULL, plContext); - PKIX_Logger_Create(loggerCallback, NULL, &logger, plContext); - PKIX_Logger_SetMaxLoggingLevel - (logger, PKIX_LOGGER_LEVEL_WARNING, plContext); - PKIX_AddLogger(logger, plContext); - -#endif /* PKIX_LOGGER_ON */ - - /* - * This code is retired - * anchor = CERT_FindCertByNicknameOrEmailAddr(handle, argv[3]); - * if (!anchor) finish("Unable to find anchor.\n", 1); - * - * eecert = CERT_FindCertByNicknameOrEmailAddr(handle, argv[4]); - - * if (!eecert) finish("Unable to find eecert.\n", 1); - * - * Test(anchor, eecert, duration, threads); - */ - - Test(NULL, argv[3], duration, handle, threads); - - PERF_DECREF(logger); - - PKIX_Shutdown(plContext); - - return (0); -} diff --git a/security/nss/cmd/libpkix/perf/manifest.mn b/security/nss/cmd/libpkix/perf/manifest.mn deleted file mode 100755 index 511118d14..000000000 --- a/security/nss/cmd/libpkix/perf/manifest.mn +++ /dev/null @@ -1,54 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = .. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = libpkix_buildthreads.c \ - nss_threads.c \ - $(NULL) - -LIBRARY_NAME = pkixtoolperf - -SOURCE_LIB_DIR = $(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/perf/nss_threads.c b/security/nss/cmd/libpkix/perf/nss_threads.c deleted file mode 100644 index 7f1a16eee..000000000 --- a/security/nss/cmd/libpkix/perf/nss_threads.c +++ /dev/null @@ -1,197 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * nssThreads.c - * - * NSS Performance Evaluation application (multi-threaded) - * - */ - -#include <stdio.h> -#include <string.h> - -#include "secutil.h" - -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "prlong.h" - -#include "pk11func.h" -#include "secasn1.h" -#include "cert.h" -#include "cryptohi.h" -#include "secoid.h" -#include "certdb.h" -#include "nss.h" - -typedef struct ThreadDataStr tData; - -struct ThreadDataStr { - CERTCertificate* cert; - PRIntervalTime duration; - PRUint32 iterations; -}; - -static void ThreadEntry(void* data) -{ - tData* tdata = (tData*) data; - PRIntervalTime duration = tdata->duration; - PRTime now = PR_Now(); - PRIntervalTime start = PR_IntervalNow(); - - PR_ASSERT(duration); - if (!duration) - { - return; - } - do { - SECStatus rv = CERT_VerifyCertificate - (CERT_GetDefaultCertDB(), - tdata->cert, - PR_TRUE, - certificateUsageEmailSigner, - now, - NULL, - NULL, - NULL); - if (rv != SECSuccess) - { - (void) fprintf(stderr, "Validation failed.\n"); - PORT_Assert(0); - return; - } - tdata->iterations ++; - } while ((PR_IntervalNow() - start) < duration); -} - -static void Test(CERTCertificate* cert, PRIntervalTime duration, PRUint32 threads) -{ - tData data; - tData** alldata; - PRIntervalTime starttime, endtime, elapsed; - PRUint32 msecs; - float total = 0; - PRThread** pthreads = NULL; - PRUint32 i = 0; - - data.duration = duration; - data.cert = cert; - data.iterations = 0; - - starttime = PR_IntervalNow(); - pthreads = (PRThread**)PR_Malloc(threads*sizeof (PRThread*)); - alldata = (tData**)PR_Malloc(threads*sizeof (tData*)); - for (i = 0; i < threads; i++) - { - alldata[i] = (tData*)PR_Malloc(sizeof (tData)); - *alldata[i] = data; - pthreads[i] = - PR_CreateThread(PR_USER_THREAD, - ThreadEntry, - (void*) alldata[i], - PR_PRIORITY_NORMAL, - PR_GLOBAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - } - for (i = 0; i < threads; i++) - { - tData* args = alldata[i]; - PR_JoinThread(pthreads[i]); - total += args->iterations; - PR_Free((void*)args); - } - PR_Free((void*) pthreads); - PR_Free((void*) alldata); - endtime = PR_IntervalNow(); - - endtime = PR_IntervalNow(); - elapsed = endtime - starttime; - msecs = PR_IntervalToMilliseconds(elapsed); - total /= msecs; - total *= 1000; - (void) fprintf(stdout, "%f operations per second.\n", total); -} - - -static void finish(char* message, int code) -{ - (void) printf(message); - exit(code); -} - -static void usage(char* progname) -{ - (void) printf("Usage : %s <duration> <threads> <certnickname>\n\n", - progname); - finish("", 0); -} - -int nss_threads(int argc, char** argv) -{ - SECStatus rv = SECSuccess; - CERTCertDBHandle *handle = NULL; - CERTCertificate* cert = NULL; - PRIntervalTime duration = PR_SecondsToInterval(1); - PRUint32 threads = 1; - if (argc != 4) - { - usage(argv[0]); - } - if (atoi(argv[1]) > 0) - { - duration = PR_SecondsToInterval(atoi(argv[1])); - } - if (atoi(argv[2]) > 0) - { - threads = atoi(argv[2]); - } - - handle = CERT_GetDefaultCertDB(); - PR_ASSERT(handle); - cert = CERT_FindCertByNicknameOrEmailAddr(handle, argv[3]); - if (!cert) - { - finish("Unable to find certificate.\n", 1); - } - Test(cert, duration, threads); - - CERT_DestroyCertificate(cert); - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/Makefile b/security/nss/cmd/libpkix/pkix/Makefile deleted file mode 100755 index 2b004b29e..000000000 --- a/security/nss/cmd/libpkix/pkix/Makefile +++ /dev/null @@ -1,81 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk - diff --git a/security/nss/cmd/libpkix/pkix/certsel/Makefile b/security/nss/cmd/libpkix/pkix/certsel/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/certsel/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/certsel/manifest.mn b/security/nss/cmd/libpkix/pkix/certsel/manifest.mn deleted file mode 100755 index 7dbfd56a1..000000000 --- a/security/nss/cmd/libpkix/pkix/certsel/manifest.mn +++ /dev/null @@ -1,54 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_certselector.c \ - test_comcertselparams.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolcertsel - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/certsel/test_certselector.c b/security/nss/cmd/libpkix/pkix/certsel/test_certselector.c deleted file mode 100644 index 57068b76e..000000000 --- a/security/nss/cmd/libpkix/pkix/certsel/test_certselector.c +++ /dev/null @@ -1,1992 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_certselector.c - * - * Test Cert Selector - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_CERTSELECTOR_KEYUSAGE_NUM_CERTS 5 -#define PKIX_TEST_CERTSELECTOR_EXTKEYUSAGE_NUM_CERTS 2 -#define PKIX_TEST_CERTSELECTOR_CERTVALID_NUM_CERTS 2 -#define PKIX_TEST_CERTSELECTOR_ISSUER_NUM_CERTS 4 -#define PKIX_TEST_CERTSELECTOR_SERIALNUMBER_NUM_CERTS 1 - -static void *plContext = NULL; - -/* - * The first three certs are used to obtain policies to test - * policy matching. Changing the table could break tests. - */ -static char *certList[] = { -#define POLICY1CERT 0 - "GoodCACert.crt", -#define ANYPOLICYCERT 1 - "anyPolicyCACert.crt", -#define POLICY2CERT 2 - "PoliciesP12CACert.crt", -#define SUBJECTCERT 3 - "PoliciesP3CACert.crt", - "PoliciesP1234CACert.crt", - "pathLenConstraint0CACert.crt", - "pathLenConstraint1CACert.crt", - "pathLenConstraint6CACert.crt", - "TrustAnchorRootCertificate.crt", - "GoodsubCACert.crt", - "AnyPolicyTest14EE.crt", - "UserNoticeQualifierTest16EE.crt" - }; -#define NUMCERTS (sizeof (certList)/sizeof (certList[0])) - -/* - * Following are Certs values for NameConstraints tests - * - * Cert0:nameConstraintsDN1subCA1Cert.crt: - * Subject:CN=nameConstraints DN1 subCA1,OU=permittedSubtree1, - * O=Test Certificates,C=US - * Permitted Name:(OU=permittedSubtree2,OU=permittedSubtree1, - * O=Test Certificates,C=US) - * Excluded Name: (EMPTY) - * Cert1:nameConstraintsDN3subCA2Cert.crt: - * Subject:CN=nameConstraints DN3 subCA2,O=Test Certificates,C=US - * Permitted Name:(O=Test Certificates,C=US) - * Excluded Name:(EMPTY) - * Cert2:nameConstraintsDN2CACert.crt - * Subject:CN=nameConstraints DN2 CA,O=Test Certificates,C=US - * Permitted Name:(OU=permittedSubtree1,O=Test Certificates,C=US, - * OU=permittedSubtree2,O=Test Certificates,C=US) - * Excluded Name:(EMPTY) - * Cert3:nameConstraintsDN3subCA1Cert.crt - * Subject:CN=nameConstraints DN3 subCA1,O=Test Certificates,C=US - * Permitted Name:(EMPTY) - * Excluded Name:(OU=excludedSubtree2,O=Test Certificates,C=US) - * Cert4:nameConstraintsDN4CACert.crt - * Subject:CN=nameConstraints DN4 CA,O=Test Certificates,C=US - * Permitted Name:(EMPTY) - * Excluded Name:(OU=excludedSubtree1,O=Test Certificates,C=US, - * OU=excludedSubtree2,O=Test Certificates,C=US) - * Cert5:nameConstraintsDN5CACert.crt - * Subject:CN=nameConstraints DN5 CA,O=Test Certificates,C=US - * Permitted Name:(OU=permittedSubtree1,O=Test Certificates,C=US) - * Excluded Name:(OU=excludedSubtree1,OU=permittedSubtree1, - * O=Test Certificates,C=US) - * Cert6:ValidDNnameConstraintsTest1EE.crt - * Subject:CN=Valid DN nameConstraints EE Certificate Test1, - * OU=permittedSubtree1,O=Test Certificates,C=US - * - */ -static char *ncCertList[] = { - "nameConstraintsDN1subCA1Cert.crt", - "nameConstraintsDN3subCA2Cert.crt", - "nameConstraintsDN2CACert.crt", - "nameConstraintsDN3subCA1Cert.crt", - "nameConstraintsDN4CACert.crt", - "nameConstraintsDN5CACert.crt", - "ValidDNnameConstraintsTest1EE.crt" -}; -#define NUMNCCERTS (sizeof (ncCertList)/sizeof (ncCertList[0])) - -static char *sanCertList[] = { - "InvalidDNnameConstraintsTest3EE.crt", - "InvalidDNSnameConstraintsTest38EE.crt" -}; -#define NUMSANCERTS (sizeof (sanCertList)/sizeof (sanCertList[0])) - -/* - * This function calls the CertSelector pointed to by "selector" for each - * cert in the List pointed to by "certs", and compares the results against - * the bit array given by the UInt32 "expectedResults". If the first cert is - * expected to pass, the lower-order bit of "expectedResults" should be 1. - * If the second cert is expected to pass, the second bit of "expectedResults" - * should be 1, and so on. If more than 32 certs are provided, only the first - * 32 will be checked. It is not an error to provide more bits than needed. - * (For example, if you expect every cert to pass, "expectedResult" can be - * set to 0xFFFFFFFF, even if the chain has fewer than 32 certs.) - */ -static -void testSelector( - PKIX_CertSelector *selector, - PKIX_List *certs, - PKIX_UInt32 expectedResults) -{ - PKIX_UInt32 i = 0; - PKIX_UInt32 numCerts = 0; - PKIX_PL_Cert *cert = NULL; - PKIX_CertSelector_MatchCallback callback = NULL; - PKIX_Error *errReturn = NULL; - PKIX_Boolean result = PKIX_TRUE; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_GetMatchCallback - (selector, &callback, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certs, &numCerts, plContext)); - if (numCerts > 32) { - numCerts = 32; - } - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, i, (PKIX_PL_Object **)&cert, plContext)); - errReturn = callback(selector, cert, &result, plContext); - - if (errReturn || result == PKIX_FALSE) { - if ((expectedResults & 1) == 1) { - testError("selector unexpectedly failed"); - (void) printf(" processing cert:\t%d\n", i); - } - } else { - if ((expectedResults & 1) == 0) { - testError("selector unexpectedly passed"); - (void) printf(" processing cert:\t%d\n", i); - } - } - - expectedResults = expectedResults >> 1; - PKIX_TEST_DECREF_BC(cert); - PKIX_TEST_DECREF_BC(errReturn); - } - -cleanup: - - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(errReturn); - - PKIX_TEST_RETURN(); -} - -/* - * This function gets a policy from the Cert pointed to by "cert", according - * to the index provided by "index", creates an immutable List containing the - * OID of that policy, and stores the result at "pPolicyList". - */ -static void testGetPolicyFromCert( - PKIX_PL_Cert *cert, - PKIX_UInt32 index, - PKIX_List **pPolicyList) -{ - PKIX_List *policyInfo = NULL; - PKIX_PL_CertPolicyInfo *firstPolicy = NULL; - PKIX_PL_OID *policyOID = NULL; - PKIX_List *list = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (cert, &policyInfo, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (policyInfo, - index, - (PKIX_PL_Object **)&firstPolicy, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (firstPolicy, &policyOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&list, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object *)policyOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetImmutable(list, plContext)); - - *pPolicyList = list; - -cleanup: - - PKIX_TEST_DECREF_AC(policyInfo); - PKIX_TEST_DECREF_AC(firstPolicy); - PKIX_TEST_DECREF_AC(policyOID); - - PKIX_TEST_RETURN(); -} - -/* - * This custom matchCallback will pass any Certificate which has no - * CertificatePolicies extension and any Certificate whose Policies - * extension include a CertPolicyQualifier. - */ -static PKIX_Error * -custom_CertSelector_MatchCallback( - PKIX_CertSelector *selector, - PKIX_PL_Cert *cert, - PKIX_Boolean *pResult, - void *plContext) -{ - PKIX_UInt32 i = 0; - PKIX_UInt32 numPolicies = 0; - PKIX_List *certPolicies = NULL; - PKIX_List *quals = NULL; - PKIX_PL_CertPolicyInfo *policy = NULL; - PKIX_Error *error = NULL; - - PKIX_TEST_STD_VARS(); - - *pResult = PKIX_TRUE; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (cert, &certPolicies, plContext)); - - if (certPolicies) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certPolicies, &numPolicies, plContext)); - - for (i = 0; i < numPolicies; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certPolicies, - i, - (PKIX_PL_Object **)&policy, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_CertPolicyInfo_GetPolQualifiers - (policy, &quals, plContext)); - if (quals) { - goto cleanup; - } - PKIX_TEST_DECREF_BC(policy); - } - PKIX_TEST_DECREF_BC(certPolicies); - *pResult = PKIX_FALSE; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_CERTSELECTOR_ERROR, - NULL, - NULL, - PKIX_TESTPOLICYEXTWITHNOPOLICYQUALIFIERS, - &error, - plContext)); - - } - -cleanup: - - PKIX_TEST_DECREF_AC(certPolicies); - PKIX_TEST_DECREF_AC(policy); - PKIX_TEST_DECREF_AC(quals); - - return(error); -} - -/* - * This custom matchCallback will pass any Certificate whose - * CertificatePolicies extension asserts the Policy specified by - * the OID in the CertSelectorContext object. - */ -static PKIX_Error * -custom_CertSelector_MatchOIDCallback( - PKIX_CertSelector *selector, - PKIX_PL_Cert *cert, - PKIX_Boolean *pResult, - void *plContext) -{ - PKIX_UInt32 i = 0; - PKIX_UInt32 numPolicies = 0; - PKIX_Boolean match = PKIX_FALSE; - PKIX_PL_Object *certSelectorContext = NULL; - PKIX_PL_OID *constraintOID = NULL; - PKIX_List *certPolicies = NULL; - PKIX_PL_CertPolicyInfo *policy = NULL; - PKIX_PL_OID *policyOID = NULL; - PKIX_PL_String *errorDesc = NULL; - PKIX_Error *error = NULL; - - PKIX_TEST_STD_VARS(); - - *pResult = PKIX_TRUE; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_GetCertSelectorContext - (selector, &certSelectorContext, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_CheckType - (certSelectorContext, PKIX_OID_TYPE, plContext)); - - constraintOID = (PKIX_PL_OID *)certSelectorContext; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (cert, &certPolicies, plContext)); - - if (certPolicies) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certPolicies, &numPolicies, plContext)); - - for (i = 0; i < numPolicies; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certPolicies, - i, - (PKIX_PL_Object **)&policy, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_CertPolicyInfo_GetPolicyId - (policy, &policyOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)policyOID, - (PKIX_PL_Object *)constraintOID, - &match, - plContext)); - - if (match) { - goto cleanup; - } - PKIX_TEST_DECREF_BC(policy); - PKIX_TEST_DECREF_BC(policyOID); - } - } - - PKIX_TEST_DECREF_BC(certSelectorContext); - PKIX_TEST_DECREF_BC(certPolicies); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_CERTSELECTOR_ERROR, - NULL, - NULL, - PKIX_TESTNOMATCHINGPOLICY, - &error, - plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(certSelectorContext); - PKIX_TEST_DECREF_AC(certPolicies); - PKIX_TEST_DECREF_AC(policy); - PKIX_TEST_DECREF_AC(policyOID); - PKIX_TEST_DECREF_AC(errorDesc); - - return(error); -} - -static -void testSubjectMatch( - PKIX_List *certs, - PKIX_PL_Cert *certNameToMatch) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *subjParams = NULL; - PKIX_PL_X500Name *subjectName = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Subject name match"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&subjParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (certNameToMatch, &subjectName, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubject - (subjParams, subjectName, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, subjParams, plContext)); - testSelector(selector, certs, 0x008); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(subjParams); - PKIX_TEST_DECREF_AC(subjectName); - - PKIX_TEST_RETURN(); -} - -static -void testBasicConstraintsMatch( - PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *bcParams = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Basic Constraints match"); - subTest(" pathLenContraint = -2: pass only EE's"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&bcParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetBasicConstraints - (bcParams, -2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, bcParams, plContext)); - testSelector(selector, certs, 0xC00); - - subTest(" pathLenContraint = -1: pass all certs"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetBasicConstraints - (bcParams, -1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, bcParams, plContext)); - testSelector(selector, certs, 0xFFF); - - subTest(" pathLenContraint = 1: pass only certs with pathLen >= 1"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetBasicConstraints - (bcParams, 1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, bcParams, plContext)); - testSelector(selector, certs, 0x3DF); - - subTest(" pathLenContraint = 2: pass only certs with pathLen >= 2"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetBasicConstraints - (bcParams, 2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, bcParams, plContext)); - testSelector(selector, certs, 0x39F); - -cleanup: - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(bcParams); - - PKIX_TEST_RETURN(); -} - -static -void testPolicyMatch( - PKIX_List *certs, - PKIX_PL_Cert *NIST1Cert, /* a source for policy NIST1 */ - PKIX_PL_Cert *NIST2Cert, /* a source for policy NIST2 */ - PKIX_PL_Cert *anyPolicyCert) /* a source for policy anyPolicy */ -{ - PKIX_CertSelector *selector = NULL; - PKIX_List *emptyList = NULL; /* no members */ - PKIX_List *policy1List = NULL; /* OIDs */ - PKIX_List *policy2List = NULL; /* OIDs */ - PKIX_List *anyPolicyList = NULL; /* OIDs */ - PKIX_ComCertSelParams *polParams = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Policy match"); - testGetPolicyFromCert(NIST1Cert, 0, &policy1List); - testGetPolicyFromCert(NIST2Cert, 1, &policy2List); - testGetPolicyFromCert(anyPolicyCert, 0, &anyPolicyList); - - subTest(" Pass certs with any CertificatePolicies extension"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&emptyList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&polParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetPolicy - (polParams, emptyList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, polParams, plContext)); - testSelector(selector, certs, 0xEFF); - PKIX_TEST_DECREF_BC(polParams); - - subTest(" Pass only certs with policy NIST1"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&polParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetPolicy - (polParams, policy1List, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, polParams, plContext)); - testSelector(selector, certs, 0xEF5); - PKIX_TEST_DECREF_BC(polParams); - - subTest(" Pass only certs with policy NIST2"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&polParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetPolicy - (polParams, policy2List, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, polParams, plContext)); - testSelector(selector, certs, 0x814); - PKIX_TEST_DECREF_BC(polParams); - - subTest(" Pass only certs with policy anyPolicy"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&polParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetPolicy - (polParams, anyPolicyList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, polParams, plContext)); - testSelector(selector, certs, 0x002); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(emptyList); - PKIX_TEST_DECREF_AC(policy1List); - PKIX_TEST_DECREF_AC(policy2List); - PKIX_TEST_DECREF_AC(anyPolicyList); - PKIX_TEST_DECREF_AC(polParams); - - PKIX_TEST_RETURN(); -} - -static -void testCertificateMatch( - PKIX_List *certs, - PKIX_PL_Cert *certToMatch) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Certificate match"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificate - (params, certToMatch, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - testSelector(selector, certs, 0x008); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(params); - - PKIX_TEST_RETURN(); -} - -static -void testNameConstraintsMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_CertNameConstraints *permitNameConstraints1 = NULL; - PKIX_PL_CertNameConstraints *permitNameConstraints2 = NULL; - PKIX_PL_CertNameConstraints *permitNameConstraints3 = NULL; - PKIX_PL_CertNameConstraints *excludeNameConstraints1 = NULL; - PKIX_PL_CertNameConstraints *excludeNameConstraints2 = NULL; - PKIX_PL_CertNameConstraints *excludeNameConstraints3 = NULL; - PKIX_UInt32 numCerts = 0; - - PKIX_TEST_STD_VARS(); - - subTest("test NameConstraints Cert Selector"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certs, &numCerts, plContext)); - - subTest(" PKIX_PL_Cert_GetNameConstraints <cert0-permitted>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, 0, (PKIX_PL_Object **)&cert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &permitNameConstraints1, plContext)); - PKIX_TEST_DECREF_BC(cert); - - subTest(" PKIX_PL_Cert_GetNameConstraints <cert1-permitted>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, 1, (PKIX_PL_Object **)&cert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &permitNameConstraints2, plContext)); - PKIX_TEST_DECREF_BC(cert); - - subTest(" PKIX_PL_Cert_GetNameConstraints <cert2-permitted>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, 2, (PKIX_PL_Object **)&cert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &permitNameConstraints3, plContext)); - PKIX_TEST_DECREF_BC(cert); - - subTest(" PKIX_PL_Cert_GetNameConstraints <cert3-excluded>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, 3, (PKIX_PL_Object **)&cert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &excludeNameConstraints1, plContext)); - PKIX_TEST_DECREF_BC(cert); - - subTest(" PKIX_PL_Cert_GetNameConstraints <cert4-excluded>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, 4, (PKIX_PL_Object **)&cert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &excludeNameConstraints2, plContext)); - PKIX_TEST_DECREF_BC(cert); - - subTest(" PKIX_PL_Cert_GetNameConstraints <cert5-excluded>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, 5, (PKIX_PL_Object **)&cert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &excludeNameConstraints3, plContext)); - PKIX_TEST_DECREF_BC(cert); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" CertNameConstraints testing permitted NONE"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, permitNameConstraints1, plContext)); - testSelector(selector, certs, 0x0); - - subTest(" PKIX_ComCertSelParams_SetNameConstraint Reset"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, NULL, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" CertNameConstraints testing permitted ALL"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, permitNameConstraints2, plContext)); - testSelector(selector, certs, 0x07F); - - subTest(" CertNameConstraints testing permitted TWO"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, permitNameConstraints3, plContext)); - testSelector(selector, certs, 0x0041); - - subTest(" PKIX_ComCertSelParams_SetNameConstraint Reset"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, NULL, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" CertNameConstraints testing excluded"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, excludeNameConstraints1, plContext)); - testSelector(selector, certs, 0x07F); - - subTest(" CertNameConstraints testing excluded"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, excludeNameConstraints2, plContext)); - testSelector(selector, certs, 0x07F); - - subTest(" CertNameConstraints testing excluded"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (params, excludeNameConstraints3, plContext)); - testSelector(selector, certs, 0x41); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(permitNameConstraints1); - PKIX_TEST_DECREF_AC(permitNameConstraints2); - PKIX_TEST_DECREF_AC(permitNameConstraints3); - PKIX_TEST_DECREF_AC(excludeNameConstraints1); - PKIX_TEST_DECREF_AC(excludeNameConstraints2); - PKIX_TEST_DECREF_AC(excludeNameConstraints3); - - PKIX_TEST_RETURN(); -} - -static -void testPathToNamesMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_List *nameList = NULL; - PKIX_PL_GeneralName *name = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test PathToName Cert Selector"); - - subTest(" PKIX_PL_GeneralName List create"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&nameList, plContext)); - - subTest(" Add directory name <O=NotATest Certificates,C=US>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, - "O=NotATest Certificates,C=US", - plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameList, (PKIX_PL_Object *)name, plContext)); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" PKIX_ComCertSelParams_SetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, nameList, plContext)); - - subTest(" Permitting THREE"); - testSelector(selector, certs, 0x58); - - subTest(" Remove directory name <O=NotATest Certificates,C=US...>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem - (nameList, 0, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" PKIX_ComCertSelParams_SetPathToNames Reset"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, NULL, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" Add directory name <OU=permittedSubtree1,O=Test...>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, - "OU=permittedSubtree1,O=Test Certificates,C=US", - plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameList, (PKIX_PL_Object *)name, plContext)); - - subTest(" PKIX_ComCertSelParams_SetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, nameList, plContext)); - - subTest(" Permitting SIX"); - testSelector(selector, certs, 0x5F); - - subTest(" Remove directory name <OU=permittedSubtree1,O=Test...>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem - (nameList, 0, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" PKIX_ComCertSelParams_SetNameConstraint Reset"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, NULL, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" Add directory name <O=Test Certificates,C=US...>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, - "O=Test Certificates,C=US", - plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameList, (PKIX_PL_Object *)name, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" PKIX_ComCertSelParams_SetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, nameList, plContext)); - - subTest(" Permitting FOUR"); - testSelector(selector, certs, 0x47); - - subTest(" Only directory name <OU=permittedSubtree1,O=Test ...>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, - "OU=permittedSubtree1,O=Test Certificates,C=US", - plContext); - - subTest(" PKIX_ComCertSelParams_AddPathToName"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_AddPathToName - (params, name, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" Permitting FOUR"); - testSelector(selector, certs, 0x47); - - subTest(" PKIX_ComCertSelParams_SetNameConstraint Reset"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, NULL, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - PKIX_TEST_DECREF_BC(nameList); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&nameList, plContext)); - - subTest(" Add directory name <CN=Valid DN nameConstraints EE...>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, "CN=Valid DN nameConstraints EE " - "Certificate Test1,OU=permittedSubtree1," - "O=Test Certificates,C=US", - plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameList, (PKIX_PL_Object *)name, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" PKIX_ComCertSelParams_SetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, nameList, plContext)); - - subTest(" Permitting SIX"); - testSelector(selector, certs, 0x7e); - - subTest(" Add directory name <OU=permittedSubtree1,O=Test>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, - "OU=permittedSubtree1,O=Test", - plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameList, (PKIX_PL_Object *)name, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" PKIX_ComCertSelParams_SetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, nameList, plContext)); - - subTest(" Permitting SIX"); - testSelector(selector, certs, 0x58); - - subTest(" Add directory name <O=Test Certificates,C=US>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, "O=Test Certificates,C=US", plContext); - - subTest(" PKIX_ComCertSelParams_SetPathToNames Reset"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (params, NULL, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_AddPathToName - (params, name, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" Permitting FOUR"); - testSelector(selector, certs, 0x47); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(nameList); - - PKIX_TEST_RETURN(); -} - -static -void testSubjAltNamesMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_List *nameList = NULL; - PKIX_PL_GeneralName *name = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test SubjAltNames Cert Selector"); - - subTest(" PKIX_PL_GeneralName List create"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&nameList, plContext)); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" Add directory name <CN=Invalid DN nameConstraints EE...>"); - name = createGeneralName - (PKIX_DIRECTORY_NAME, - "CN=Invalid DN nameConstraints EE Certificate Test3," - "OU=excludedSubtree1,O=Test Certificates,C=US", - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameList, (PKIX_PL_Object *)name, plContext)); - - subTest(" PKIX_ComCertSelParams_SetSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjAltNames - (params, nameList, plContext)); - - PKIX_TEST_DECREF_BC(name); - PKIX_TEST_DECREF_BC(nameList); - - subTest(" Permitting ONE"); - testSelector(selector, certs, 0x1); - - subTest(" Add DNS name <mytestcertificates.gov>"); - name = createGeneralName - (PKIX_DNS_NAME, - "mytestcertificates.gov", - plContext); - - subTest(" PKIX_ComCertSelParams_AddSubjAltName"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_AddSubjAltName - (params, name, plContext)); - PKIX_TEST_DECREF_BC(name); - - subTest(" Permitting NONE"); - testSelector(selector, certs, 0x0); - - subTest(" PKIX_ComCertSelParams_SetMatchAllSubjAltNames to FALSE"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetMatchAllSubjAltNames - (params, PKIX_FALSE, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" Permitting TWO"); - testSelector(selector, certs, 0x3); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(name); - PKIX_TEST_DECREF_AC(nameList); - - PKIX_TEST_RETURN(); -} - -static -void testCertificateValidMatch( - PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_PL_String *stringRep = NULL; - PKIX_PL_Date *testDate = NULL; - char *asciiRep = "050501000000Z"; - - PKIX_TEST_STD_VARS(); - - subTest("CertificateValid match"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create - (PKIX_ESCASCII, asciiRep, 0, &stringRep, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Date_Create_UTCTime(stringRep, &testDate, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificateValid - (params, testDate, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - testSelector(selector, certs, 0xFFFFFFFF); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(stringRep); - PKIX_TEST_DECREF_AC(testDate); - - PKIX_TEST_RETURN(); -} - -static -void test_customCallback1(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("custom matchCallback"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (custom_CertSelector_MatchCallback, - NULL, - &selector, - plContext)); - - testSelector(selector, certs, 0x900); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - - PKIX_TEST_RETURN(); -} - -static -void test_customCallback2 - (PKIX_List *certs, - PKIX_PL_Cert *anyPolicyCert) /* a source for policy anyPolicy */ -{ - PKIX_CertSelector *selector = NULL; - PKIX_List *anyPolicyList = NULL; /* OIDs */ - PKIX_PL_OID *policyOID = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("custom matchCallback with CertSelectorContext"); - - testGetPolicyFromCert(anyPolicyCert, 0, &anyPolicyList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (anyPolicyList, 0, (PKIX_PL_Object **)&policyOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (custom_CertSelector_MatchOIDCallback, - (PKIX_PL_Object *)policyOID, - &selector, - plContext)); - - testSelector(selector, certs, (1 << ANYPOLICYCERT)); - -cleanup: - - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(anyPolicyList); - PKIX_TEST_DECREF_AC(policyOID); - - PKIX_TEST_RETURN(); -} - -static -void testExtendedKeyUsageMatch(char *certDir) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_OID *ekuOid = NULL; - PKIX_List *ekuOidList = NULL; - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CertCallback certCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_UInt32 numCert = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test Extended KeyUsage Cert Selector"); - - subTest(" PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest(" Create Extended Key Usage OID List"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&ekuOidList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - ("1.3.6.1.5.5.7.3.2", &ekuOid, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (ekuOidList, (PKIX_PL_Object *)ekuOid, plContext)); - - PKIX_TEST_DECREF_BC(ekuOid); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - ("1.3.6.1.5.5.7.3.3", &ekuOid, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (ekuOidList, (PKIX_PL_Object *)ekuOid, plContext)); - - PKIX_TEST_DECREF_BC(ekuOid); - - subTest(" PKIX_ComCertSelParams_SetExtendedKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetExtendedKeyUsage - (goodParams, ekuOidList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, certDir, 0, &dirString, plContext)); - - subTest(" PKIX_PL_CollectionCertStoreContext_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - subTest(" PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, goodParams, plContext)); - - subTest(" PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, NULL)); - - subTest(" Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, certSelector, &nbioContext, &certList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - if (numCert != PKIX_TEST_CERTSELECTOR_EXTKEYUSAGE_NUM_CERTS) { - pkixTestErrorMsg = "unexpected Cert number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(ekuOid); - PKIX_TEST_DECREF_AC(ekuOidList); - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certList); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static -void testKeyUsageMatch(char *certDir) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CertCallback certCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_UInt32 numCert = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test KeyUsage Cert Selector"); - - subTest(" PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest(" PKIX_ComCertSelParams_SetKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetKeyUsage - (goodParams, PKIX_CRL_SIGN, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, certDir, 0, &dirString, plContext)); - - subTest(" PKIX_PL_CollectionCertStoreContext_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - subTest(" PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, goodParams, plContext)); - - subTest(" PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, NULL)); - - subTest(" Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, certSelector, &nbioContext, &certList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - if (numCert != PKIX_TEST_CERTSELECTOR_KEYUSAGE_NUM_CERTS) { - pkixTestErrorMsg = "unexpected Cert number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certList); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static -void testCertValidMatch(char *certDir) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_Date *validDate = NULL; - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CertCallback certCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_UInt32 numCert = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test CertValid Cert Selector"); - - subTest(" PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - validDate = createDate("050601000000Z", plContext); - - subTest(" PKIX_ComCertSelParams_SetCertificateValid"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificateValid - (goodParams, validDate, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, certDir, 0, &dirString, plContext)); - - subTest(" PKIX_PL_CollectionCertStoreContext_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - subTest(" PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, goodParams, plContext)); - - subTest(" PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, NULL)); - - subTest(" Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, certSelector, &nbioContext, &certList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - if (numCert != PKIX_TEST_CERTSELECTOR_CERTVALID_NUM_CERTS) { - pkixTestErrorMsg = "unexpected Cert number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(validDate); - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certList); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static -void testIssuerMatch(char *certDir) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_X500Name *issuer = NULL; - PKIX_PL_String *issuerStr = NULL; - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CertCallback certCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - char *issuerName = "CN=science,O=mit,C=US"; - PKIX_UInt32 numCert = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test Issuer Cert Selector"); - - subTest(" PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, issuerName, 0, &issuerStr, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Create - (issuerStr, &issuer, plContext)); - - subTest(" PKIX_ComCertSelParams_SetIssuer"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetIssuer - (goodParams, issuer, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, certDir, 0, &dirString, plContext)); - - subTest(" PKIX_PL_CollectionCertStoreContext_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - subTest(" PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, goodParams, plContext)); - - subTest(" PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, NULL)); - - subTest(" Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, certSelector, &nbioContext, &certList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - if (numCert != PKIX_TEST_CERTSELECTOR_ISSUER_NUM_CERTS) { - pkixTestErrorMsg = "unexpected Cert number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(issuer); - PKIX_TEST_DECREF_AC(issuerStr); - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certList); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static -void testSerialNumberVersionMatch(char *certDir) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_BigInt *serialNumber = NULL; - PKIX_PL_String *serialNumberStr = NULL; - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CertCallback certCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_UInt32 numCert = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test Serial Number Cert Selector"); - - subTest(" PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, "01", 0, &serialNumberStr, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create - (serialNumberStr, &serialNumber, plContext)); - - subTest(" PKIX_ComCertSelParams_SetSerialNumber"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSerialNumber - (goodParams, serialNumber, plContext)); - - subTest(" PKIX_ComCertSelParams_SetVersion"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetVersion - (goodParams, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, certDir, 0, &dirString, plContext)); - - subTest(" PKIX_PL_CollectionCertStoreContext_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - subTest(" PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, goodParams, plContext)); - - subTest(" PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, NULL)); - - subTest(" Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, certSelector, &nbioContext, &certList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - PKIX_TEST_DECREF_BC(certList); - - if (numCert != 0) { - pkixTestErrorMsg = "unexpected Version mismatch"; - } - - subTest(" PKIX_ComCertSelParams_SetVersion"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetVersion - (goodParams, 2, plContext)); - - subTest(" Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, certSelector, &nbioContext, &certList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - if (numCert != PKIX_TEST_CERTSELECTOR_SERIALNUMBER_NUM_CERTS) { - pkixTestErrorMsg = "unexpected Serial Number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(serialNumber); - PKIX_TEST_DECREF_AC(serialNumberStr); - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certList); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static -void testSubjKeyIdMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_ByteArray *selSubjKeyId = NULL; - PKIX_UInt32 item = 0; - - PKIX_TEST_STD_VARS(); - - subTest("test Subject Key Id Cert Selector"); - - item = 2; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, item, (PKIX_PL_Object **)&cert, plContext)); - - subTest(" PKIX_PL_Cert_GetSubjectKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectKeyIdentifier - (cert, &selSubjKeyId, plContext)); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" PKIX_ComCertSelParams_SetSubjKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjKeyIdentifier - (params, selSubjKeyId, plContext)); - - subTest(" Select One"); - testSelector(selector, certs, 1<<item); - -cleanup: - - PKIX_TEST_DECREF_AC(selSubjKeyId); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(selector); - - PKIX_TEST_RETURN(); -} - -static -void testAuthKeyIdMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_ByteArray *selAuthKeyId = NULL; - PKIX_UInt32 item = 0; - - PKIX_TEST_STD_VARS(); - - subTest("test Auth Key Id Cert Selector"); - - item = 3; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, item, (PKIX_PL_Object **)&cert, plContext)); - - subTest(" PKIX_PL_Cert_GetAuthorityKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetAuthorityKeyIdentifier - (cert, &selAuthKeyId, plContext)); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" PKIX_ComCertSelParams_SetAuthorityKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetAuthorityKeyIdentifier - (params, selAuthKeyId, plContext)); - - subTest(" Select TWO"); - testSelector(selector, certs, (1<<item)|(1<<1)); - -cleanup: - - PKIX_TEST_DECREF_AC(selAuthKeyId); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(selector); - - PKIX_TEST_RETURN(); -} - -static -void testSubjPKAlgIdMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_OID *selAlgId = NULL; - PKIX_UInt32 item = 0; - - PKIX_TEST_STD_VARS(); - - subTest("test Subject Public Key Algorithm Id Cert Selector"); - - item = 0; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, item, (PKIX_PL_Object **)&cert, plContext)); - - subTest(" PKIX_PL_Cert_GetSubjectPublicKeyAlgId"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKeyAlgId - (cert, &selAlgId, plContext)); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" PKIX_ComCertSelParams_SetSubjPKAlgId"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjPKAlgId - (params, selAlgId, plContext)); - - subTest(" Select All"); - testSelector(selector, certs, 0x7F); - -cleanup: - - PKIX_TEST_DECREF_AC(selAlgId); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(selector); - - PKIX_TEST_RETURN(); -} - -static -void testSubjPublicKeyMatch(PKIX_List *certs) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *params = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_PublicKey *selPublicKey = NULL; - PKIX_UInt32 item = 0; - - PKIX_TEST_STD_VARS(); - - subTest("test Subject Public Key Cert Selector"); - - item = 5; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certs, item, (PKIX_PL_Object **)&cert, plContext)); - - subTest(" PKIX_PL_Cert_GetSubjectPublicKey"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (cert, &selPublicKey, plContext)); - - subTest(" Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (¶ms, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (selector, params, plContext)); - - subTest(" PKIX_ComCertSelParams_SetSubjPubKey"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjPubKey - (params, selPublicKey, plContext)); - - subTest(" Select ONE"); - testSelector(selector, certs, 1<<item); - -cleanup: - - PKIX_TEST_DECREF_AC(selPublicKey); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(params); - PKIX_TEST_DECREF_AC(selector); - - PKIX_TEST_RETURN(); -} - -static -void test_CertSelector_Duplicate(PKIX_CertSelector *selector) -{ - PKIX_Int32 goodBasicConstraints = 0; - PKIX_Int32 equalBasicConstraints = 0; - PKIX_CertSelector *dupSelector = NULL; - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_ComCertSelParams *equalParams = NULL; - PKIX_CertSelector_MatchCallback goodCallback = NULL; - PKIX_CertSelector_MatchCallback equalCallback = NULL; - PKIX_PL_X500Name *goodSubject = NULL; - PKIX_PL_X500Name *equalSubject = NULL; - PKIX_List *goodPolicy = NULL; - PKIX_List *equalPolicy = NULL; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Date *goodDate = NULL; - PKIX_PL_Date *equalDate = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("test_CertSelector_Duplicate"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)selector, - (PKIX_PL_Object **)&dupSelector, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_GetCommonCertSelectorParams - (selector, &goodParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_GetCommonCertSelectorParams - (dupSelector, &equalParams, plContext)); - /* There is no equals function, so look at components separately. */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubject - (goodParams, &goodSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubject - (equalParams, &equalSubject, plContext)); - if (goodSubject && equalSubject) { - testEqualsHelper - ((PKIX_PL_Object *)goodSubject, - (PKIX_PL_Object *)equalSubject, - PKIX_TRUE, - plContext); - } else { - if PKIX_EXACTLY_ONE_NULL(goodSubject, equalSubject) { - pkixTestErrorMsg = "Subject Names are not equal!"; - goto cleanup; - } - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPolicy - (goodParams, &goodPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPolicy - (equalParams, &equalPolicy, plContext)); - if (goodPolicy && equalPolicy) { - testEqualsHelper - ((PKIX_PL_Object *)goodPolicy, - (PKIX_PL_Object *)equalPolicy, - PKIX_TRUE, - plContext); - } else { - if PKIX_EXACTLY_ONE_NULL(goodPolicy, equalPolicy) { - pkixTestErrorMsg = "Policy Lists are not equal!"; - goto cleanup; - } - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificate - (goodParams, &goodCert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificate - (equalParams, &equalCert, plContext)); - if (goodCert && equalCert) { - testEqualsHelper - ((PKIX_PL_Object *)goodCert, - (PKIX_PL_Object *)equalCert, - PKIX_TRUE, - plContext); - } else { - if PKIX_EXACTLY_ONE_NULL(goodCert, equalCert) { - pkixTestErrorMsg = "Cert Lists are not equal!"; - goto cleanup; - } - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificateValid - (goodParams, &goodDate, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificateValid - (equalParams, &equalDate, plContext)); - if (goodCert && equalCert) { - testEqualsHelper - ((PKIX_PL_Object *)goodDate, - (PKIX_PL_Object *)equalDate, - PKIX_TRUE, - plContext); - } else { - if PKIX_EXACTLY_ONE_NULL(goodDate, equalDate) { - pkixTestErrorMsg = "Date Lists are not equal!"; - goto cleanup; - } - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetBasicConstraints - (goodParams, &goodBasicConstraints, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetBasicConstraints - (equalParams, &equalBasicConstraints, plContext)); - if (goodBasicConstraints != equalBasicConstraints) { - pkixTestErrorMsg = "BasicConstraints are not equal!"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_GetMatchCallback - (selector, &goodCallback, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_GetMatchCallback - (dupSelector, &equalCallback, plContext)); - if (goodCallback != equalCallback) { - pkixTestErrorMsg = "MatchCallbacks are not equal!"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(dupSelector); - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(equalParams); - PKIX_TEST_DECREF_AC(goodSubject); - PKIX_TEST_DECREF_AC(equalSubject); - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(goodDate); - PKIX_TEST_DECREF_AC(equalDate); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_certselector <NIST_FILES_DIR> <cert-dir>\n\n"); -} - -int test_certselector(int argc, char *argv[]) { - - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 actualMinorVersion; - - PKIX_CertSelector *emptySelector = NULL; - PKIX_List *certs = NULL; - PKIX_List *nameConstraintsCerts = NULL; - PKIX_List *subjAltNamesCerts = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_Cert *policy1Cert = NULL; - PKIX_PL_Cert *policy2Cert = NULL; - PKIX_PL_Cert *anyPolicyCert = NULL; - PKIX_PL_Cert *subjectCert = NULL; - PKIX_ComCertSelParams *selParams = NULL; - char *certDir = NULL; - char *dirName = NULL; - - PKIX_TEST_STD_VARS(); - - startTests("CertSelector"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 3) { - printUsage(); - return (0); - } - - dirName = argv[j+1]; - certDir = argv[j+3]; - - /* Create a List of certs to use in testing the selector */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certs, plContext)); - - for (i = 0; i < NUMCERTS; i++) { - - cert = createCert(dirName, certList[i], plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certs, (PKIX_PL_Object *)cert, plContext)); - if (i == POLICY1CERT) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)cert, plContext)); - policy1Cert = cert; - } - if (i == ANYPOLICYCERT) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)cert, plContext)); - anyPolicyCert = cert; - } - if (i == POLICY2CERT) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)cert, plContext)); - policy2Cert = cert; - } - if (i == SUBJECTCERT) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)cert, plContext)); - subjectCert = cert; - } - PKIX_TEST_DECREF_BC(cert); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&nameConstraintsCerts, plContext)); - - for (i = 0; i < NUMNCCERTS; i++) { - - cert = createCert(dirName, ncCertList[i], plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (nameConstraintsCerts, - (PKIX_PL_Object *)cert, - plContext)); - - PKIX_TEST_DECREF_BC(cert); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&subjAltNamesCerts, plContext)); - - for (i = 0; i < NUMSANCERTS; i++) { - - cert = createCert(dirName, sanCertList[i], plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (subjAltNamesCerts, - (PKIX_PL_Object *)cert, - plContext)); - - PKIX_TEST_DECREF_BC(cert); - } - - subTest("test_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &emptySelector, plContext)); - - subTest("Default Match, no parameters set"); - testSelector(emptySelector, certs, 0xFFFFFFFF); - - testSubjectMatch(certs, subjectCert); - - testBasicConstraintsMatch(certs); - - testPolicyMatch(certs, policy1Cert, policy2Cert, anyPolicyCert); - - testCertificateMatch(certs, subjectCert); - - testCertificateValidMatch(certs); - - subTest("Combination: pass only EE certs that assert some policy"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&selParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetBasicConstraints - (selParams, -2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (emptySelector, selParams, plContext)); - testSelector(emptySelector, certs, 0xC00); - - testNameConstraintsMatch(nameConstraintsCerts); - - testPathToNamesMatch(nameConstraintsCerts); - - testSubjAltNamesMatch(subjAltNamesCerts); - - testExtendedKeyUsageMatch(certDir); - - testKeyUsageMatch(certDir); - - testIssuerMatch(certDir); - - testSerialNumberVersionMatch(certDir); - - testCertValidMatch(certDir); - - testSubjKeyIdMatch(nameConstraintsCerts); - - testAuthKeyIdMatch(nameConstraintsCerts); - - testSubjPKAlgIdMatch(nameConstraintsCerts); - - testSubjPublicKeyMatch(nameConstraintsCerts); - - test_CertSelector_Duplicate(emptySelector); - - test_customCallback1(certs); - - test_customCallback2(certs, anyPolicyCert); - - subTest("test_CertSelector_Destroy"); - - PKIX_TEST_DECREF_BC(emptySelector); - - - -cleanup: - - PKIX_TEST_DECREF_AC(emptySelector); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(policy1Cert); - PKIX_TEST_DECREF_AC(policy2Cert); - PKIX_TEST_DECREF_AC(anyPolicyCert); - PKIX_TEST_DECREF_AC(subjectCert); - PKIX_TEST_DECREF_AC(selParams); - PKIX_TEST_DECREF_AC(nameConstraintsCerts); - PKIX_TEST_DECREF_AC(subjAltNamesCerts); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CertSelector"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c b/security/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c deleted file mode 100644 index 0ebbdd462..000000000 --- a/security/nss/cmd/libpkix/pkix/certsel/test_comcertselparams.c +++ /dev/null @@ -1,953 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_comcertselparams.c - * - * Test Common Cert Selector Params - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void test_CreateOIDList(PKIX_List *certPolicyInfos, PKIX_List **pPolicyOIDs) -{ - PKIX_UInt32 i = 0; - PKIX_UInt32 numInfos = 0; - PKIX_PL_CertPolicyInfo *certPolicyInfo = NULL; - PKIX_PL_OID *policyOID = NULL; - PKIX_List *certPolicies = NULL; - - PKIX_TEST_STD_VARS(); - - /* Convert from List of CertPolicyInfos to List of OIDs */ - if (certPolicyInfos) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certPolicyInfos, &numInfos, plContext)); - } - - if (numInfos > 0) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&certPolicies, plContext)); - } - for (i = 0; i < numInfos; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (certPolicyInfos, - i, - (PKIX_PL_Object **)&certPolicyInfo, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (certPolicyInfo, &policyOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certPolicies, (PKIX_PL_Object *)policyOID, plContext)); - PKIX_TEST_DECREF_BC(certPolicyInfo); - PKIX_TEST_DECREF_BC(policyOID); - } - - *pPolicyOIDs = certPolicies; - -cleanup: - - PKIX_TEST_DECREF_AC(certPolicyInfo); - PKIX_TEST_DECREF_AC(policyOID); - - PKIX_TEST_RETURN(); -} - -static -void test_NameConstraints(char *dirName) -{ - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_CertNameConstraints *getNameConstraints = NULL; - PKIX_PL_CertNameConstraints *setNameConstraints = NULL; - PKIX_ComCertSelParams *goodParams = NULL; - char *expectedAscii = - "[\n" - "\t\tPermitted Name: (OU=permittedSubtree1," - "O=Test Certificates,C=US, OU=permittedSubtree2," - "O=Test Certificates,C=US)\n" - "\t\tExcluded Name: (EMPTY)\n" - "\t]\n"; - - PKIX_TEST_STD_VARS(); - - subTest("Create Cert for NameConstraints test"); - - goodCert = createCert - (dirName, "nameConstraintsDN2CACert.crt", plContext); - - subTest("PKIX_PL_Cert_GetNameConstraints"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (goodCert, &setNameConstraints, plContext)); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetNameConstraints"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetNameConstraints - (goodParams, setNameConstraints, plContext)); - - subTest("PKIX_ComCertSelParams_GetNameConstraints"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetNameConstraints - (goodParams, &getNameConstraints, plContext)); - - subTest("Compare NameConstraints"); - testEqualsHelper((PKIX_PL_Object *)setNameConstraints, - (PKIX_PL_Object *)getNameConstraints, - PKIX_TRUE, - plContext); - - subTest("Compare NameConstraints with canned string"); - testToStringHelper - ((PKIX_PL_Object *)getNameConstraints, - expectedAscii, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(getNameConstraints); - PKIX_TEST_DECREF_AC(setNameConstraints); - PKIX_TEST_DECREF_AC(goodParams); - - PKIX_TEST_RETURN(); -} - -static -void test_PathToNames(void) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_List *setGenNames = NULL; - PKIX_List *getGenNames = NULL; - PKIX_PL_GeneralName *rfc822GenName = NULL; - PKIX_PL_GeneralName *dnsGenName = NULL; - PKIX_PL_GeneralName *dirGenName = NULL; - PKIX_PL_GeneralName *uriGenName = NULL; - PKIX_PL_GeneralName *oidGenName = NULL; - char *rfc822Name = "john.doe@labs.com"; - char *dnsName = "comcast.net"; - char *dirName = "cn=john, ou=labs, o=sun, c=us"; - char *uriName = "http://comcast.net"; - char *oidName = "1.2.840.11"; - char *expectedAscii = - "(john.doe@labs.com, " - "comcast.net, " - "CN=john,OU=labs,O=sun,C=us, " - "http://comcast.net)"; - char *expectedAsciiAll = - "(john.doe@labs.com, " - "comcast.net, " - "CN=john,OU=labs,O=sun,C=us, " - "http://comcast.net, " - "1.2.840.11)"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_GeneralName_Create"); - dnsGenName = createGeneralName(PKIX_DNS_NAME, dnsName, plContext); - uriGenName = createGeneralName(PKIX_URI_NAME, uriName, plContext); - oidGenName = createGeneralName(PKIX_OID_NAME, oidName, plContext); - dirGenName = createGeneralName(PKIX_DIRECTORY_NAME, dirName, plContext); - rfc822GenName = createGeneralName - (PKIX_RFC822_NAME, - rfc822Name, - plContext); - - subTest("PKIX_PL_GeneralName List create and append"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&setGenNames, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)rfc822GenName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)dnsGenName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)dirGenName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)uriGenName, plContext)); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPathToNames - (goodParams, setGenNames, plContext)); - - subTest("PKIX_ComCertSelParams_GetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPathToNames - (goodParams, &getGenNames, plContext)); - - subTest("Compare GeneralName List"); - testEqualsHelper((PKIX_PL_Object *)setGenNames, - (PKIX_PL_Object *)getGenNames, - PKIX_TRUE, - plContext); - - subTest("Compare GeneralName List with canned string"); - testToStringHelper - ((PKIX_PL_Object *)getGenNames, - expectedAscii, - plContext); - - subTest("PKIX_ComCertSelParams_AddPathToName"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_AddPathToName - (goodParams, oidGenName, plContext)); - - PKIX_TEST_DECREF_BC(getGenNames); - - subTest("PKIX_ComCertSelParams_GetPathToNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPathToNames - (goodParams, &getGenNames, plContext)); - - subTest("Compare GeneralName List with canned string"); - testToStringHelper - ((PKIX_PL_Object *)getGenNames, - expectedAsciiAll, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(setGenNames); - PKIX_TEST_DECREF_AC(getGenNames); - PKIX_TEST_DECREF_AC(rfc822GenName); - PKIX_TEST_DECREF_AC(dnsGenName); - PKIX_TEST_DECREF_AC(dirGenName); - PKIX_TEST_DECREF_AC(uriGenName); - PKIX_TEST_DECREF_AC(oidGenName); - - PKIX_TEST_RETURN(); -} - -static -void test_SubjAltNames(void) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_List *setGenNames = NULL; - PKIX_List *getGenNames = NULL; - PKIX_PL_GeneralName *rfc822GenName = NULL; - PKIX_PL_GeneralName *dnsGenName = NULL; - PKIX_PL_GeneralName *dirGenName = NULL; - PKIX_PL_GeneralName *uriGenName = NULL; - PKIX_PL_GeneralName *oidGenName = NULL; - PKIX_Boolean matchAll = PKIX_TRUE; - char *rfc822Name = "john.doe@labs.com"; - char *dnsName = "comcast.net"; - char *dirName = "cn=john, ou=labs, o=sun, c=us"; - char *uriName = "http://comcast.net"; - char *oidName = "1.2.840.11"; - char *expectedAscii = - "(john.doe@labs.com, " - "comcast.net, " - "CN=john,OU=labs,O=sun,C=us, " - "http://comcast.net)"; - char *expectedAsciiAll = - "(john.doe@labs.com, " - "comcast.net, " - "CN=john,OU=labs,O=sun,C=us, " - "http://comcast.net, " - "1.2.840.11)"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_GeneralName_Create"); - dnsGenName = createGeneralName(PKIX_DNS_NAME, dnsName, plContext); - uriGenName = createGeneralName(PKIX_URI_NAME, uriName, plContext); - oidGenName = createGeneralName(PKIX_OID_NAME, oidName, plContext); - dirGenName = createGeneralName(PKIX_DIRECTORY_NAME, dirName, plContext); - rfc822GenName = createGeneralName - (PKIX_RFC822_NAME, - rfc822Name, - plContext); - - subTest("PKIX_PL_GeneralName List create and append"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&setGenNames, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)rfc822GenName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)dnsGenName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)dirGenName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setGenNames, (PKIX_PL_Object *)uriGenName, plContext)); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjAltNames - (goodParams, setGenNames, plContext)); - - subTest("PKIX_ComCertSelParams_GetSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubjAltNames - (goodParams, &getGenNames, plContext)); - - subTest("Compare GeneralName List"); - testEqualsHelper((PKIX_PL_Object *)setGenNames, - (PKIX_PL_Object *)getGenNames, - PKIX_TRUE, - plContext); - - subTest("Compare GeneralName List with canned string"); - testToStringHelper - ((PKIX_PL_Object *)getGenNames, - expectedAscii, - plContext); - - - subTest("PKIX_ComCertSelParams_AddSubjAltName"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_AddSubjAltName - (goodParams, oidGenName, plContext)); - - PKIX_TEST_DECREF_BC(getGenNames); - - subTest("PKIX_ComCertSelParams_GetSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubjAltNames - (goodParams, &getGenNames, plContext)); - - subTest("Compare GeneralName List with canned string"); - testToStringHelper - ((PKIX_PL_Object *)getGenNames, - expectedAsciiAll, - plContext); - - subTest("PKIX_ComCertSelParams_GetMatchAllSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetMatchAllSubjAltNames - (goodParams, &matchAll, plContext)); - if (matchAll != PKIX_TRUE) { - testError("unexpected mismatch <expect TRUE>"); - } - - subTest("PKIX_ComCertSelParams_SetMatchAllSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetMatchAllSubjAltNames - (goodParams, PKIX_FALSE, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetMatchAllSubjAltNames - (goodParams, &matchAll, plContext)); - if (matchAll != PKIX_FALSE) { - testError("unexpected mismatch <expect FALSE>"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(setGenNames); - PKIX_TEST_DECREF_AC(getGenNames); - PKIX_TEST_DECREF_AC(rfc822GenName); - PKIX_TEST_DECREF_AC(dnsGenName); - PKIX_TEST_DECREF_AC(dirGenName); - PKIX_TEST_DECREF_AC(uriGenName); - PKIX_TEST_DECREF_AC(oidGenName); - - PKIX_TEST_RETURN(); -} - -static -void test_KeyUsages(void) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_OID *ekuOid = NULL; - PKIX_List *setExtKeyUsage = NULL; - PKIX_List *getExtKeyUsage = NULL; - PKIX_UInt32 getKeyUsage = 0; - PKIX_UInt32 setKeyUsage = 0x1FF; - PKIX_Boolean isEqual = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetKeyUsage - (goodParams, setKeyUsage, plContext)); - - subTest("PKIX_ComCertSelParams_GetKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetKeyUsage - (goodParams, &getKeyUsage, plContext)); - - if (setKeyUsage != getKeyUsage) { - testError("unexpected KeyUsage mismatch <expect equal>"); - } - - subTest("PKIX_PL_OID List create and append"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&setExtKeyUsage, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - ("1.3.6.1.5.5.7.3.1", &ekuOid, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setExtKeyUsage, (PKIX_PL_Object *)ekuOid, plContext)); - PKIX_TEST_DECREF_BC(ekuOid); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - ("1.3.6.1.5.5.7.3.8", &ekuOid, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setExtKeyUsage, (PKIX_PL_Object *)ekuOid, plContext)); - PKIX_TEST_DECREF_BC(ekuOid); - - subTest("PKIX_ComCertSelParams_SetExtendedKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetExtendedKeyUsage - (goodParams, setExtKeyUsage, plContext)); - - subTest("PKIX_ComCertSelParams_GetExtendedKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetExtendedKeyUsage - (goodParams, &getExtKeyUsage, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setExtKeyUsage, - (PKIX_PL_Object *)getExtKeyUsage, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected ExtKeyUsage mismatch <expect equal>"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(ekuOid); - PKIX_TEST_DECREF_AC(setExtKeyUsage); - PKIX_TEST_DECREF_AC(getExtKeyUsage); - PKIX_TEST_DECREF_AC(goodParams); - - PKIX_TEST_RETURN(); -} - -static -void test_Version_Issuer_SerialNumber(void) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_UInt32 version = 0; - PKIX_PL_X500Name *setIssuer = NULL; - PKIX_PL_X500Name *getIssuer = NULL; - PKIX_PL_String *str = NULL; - PKIX_PL_BigInt *setSerialNumber = NULL; - PKIX_PL_BigInt *getSerialNumber = NULL; - PKIX_Boolean isEqual = PKIX_FALSE; - char *bigInt = "999999999999999999"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - /* Version */ - subTest("PKIX_ComCertSelParams_SetVersion"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetVersion - (goodParams, 2, plContext)); - - subTest("PKIX_ComCertSelParams_GetVersion"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetVersion - (goodParams, &version, plContext)); - - if (version != 2) { - testError("unexpected Version mismatch <expect 2>"); - } - - /* Issuer */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, "CN=Test,O=Sun,C=US", 0, &str, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Create - (str, &setIssuer, plContext)); - - PKIX_TEST_DECREF_BC(str); - - subTest("PKIX_ComCertSelParams_SetIssuer"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetIssuer - (goodParams, setIssuer, plContext)); - - subTest("PKIX_ComCertSelParams_GetIssuer"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetIssuer - (goodParams, &getIssuer, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setIssuer, - (PKIX_PL_Object *)getIssuer, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected Issuer mismatch <expect equal>"); - } - - /* Serial Number */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, bigInt, PL_strlen(bigInt), &str, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create - (str, &setSerialNumber, plContext)); - - subTest("PKIX_ComCertSelParams_SetSerialNumber"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSerialNumber - (goodParams, setSerialNumber, plContext)); - - subTest("PKIX_ComCertSelParams_GetSerialNumber"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSerialNumber - (goodParams, &getSerialNumber, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setSerialNumber, - (PKIX_PL_Object *)getSerialNumber, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected Serial Number mismatch <expect equal>"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(str); - PKIX_TEST_DECREF_AC(setIssuer); - PKIX_TEST_DECREF_AC(getIssuer); - PKIX_TEST_DECREF_AC(setSerialNumber); - PKIX_TEST_DECREF_AC(getSerialNumber); - PKIX_TEST_DECREF_AC(goodParams); - - PKIX_TEST_RETURN(); -} - -static -void test_SubjKeyId_AuthKeyId(void) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_ByteArray *setKeyId = NULL; - PKIX_PL_ByteArray *getKeyId = NULL; - PKIX_Boolean isEqual = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - /* Subject Key Identifier */ - subTest("PKIX_PL_ByteArray_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_Create - ((void*)"66099", 1, &setKeyId, plContext)); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetSubjectKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjKeyIdentifier - (goodParams, setKeyId, plContext)); - - subTest("PKIX_ComCertSelParams_GetSubjectKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubjKeyIdentifier - (goodParams, &getKeyId, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setKeyId, - (PKIX_PL_Object *)getKeyId, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected Subject Key Id mismatch <expect equal>"); - } - - PKIX_TEST_DECREF_BC(setKeyId); - PKIX_TEST_DECREF_BC(getKeyId); - - /* Authority Key Identifier */ - subTest("PKIX_PL_ByteArray_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_Create - ((void*)"11022", 1, &setKeyId, plContext)); - - subTest("PKIX_ComCertSelParams_SetAuthorityKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetAuthorityKeyIdentifier - (goodParams, setKeyId, plContext)); - - subTest("PKIX_ComCertSelParams_GetAuthorityKeyIdentifier"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_GetAuthorityKeyIdentifier - (goodParams, &getKeyId, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setKeyId, - (PKIX_PL_Object *)getKeyId, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected Auth Key Id mismatch <expect equal>"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(setKeyId); - PKIX_TEST_DECREF_AC(getKeyId); - PKIX_TEST_DECREF_AC(goodParams); - - PKIX_TEST_RETURN(); -} - -static -void test_SubjAlgId_SubjPublicKey(char *dirName) -{ - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_PL_OID *setAlgId = NULL; - PKIX_PL_OID *getAlgId = NULL; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_PublicKey *setPublicKey = NULL; - PKIX_PL_PublicKey *getPublicKey = NULL; - PKIX_Boolean isEqual = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - /* Subject Algorithm Identifier */ - subTest("PKIX_PL_OID_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - ("1.1.2.3", &setAlgId, plContext)); - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetSubjPKAlgId"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjPKAlgId - (goodParams, setAlgId, plContext)); - - subTest("PKIX_ComCertSelParams_GetSubjPKAlgId"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubjPKAlgId - (goodParams, &getAlgId, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setAlgId, - (PKIX_PL_Object *)getAlgId, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected Subject Public Key Alg mismatch " - "<expect equal>"); - } - - /* Subject Public Key */ - subTest("Getting Cert for Subject Public Key"); - - goodCert = createCert - (dirName, "nameConstraintsDN2CACert.crt", plContext); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (goodCert, &setPublicKey, plContext)); - - subTest("PKIX_ComCertSelParams_SetSubjPubKey"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubjPubKey - (goodParams, setPublicKey, plContext)); - - subTest("PKIX_ComCertSelParams_GetSubjPubKey"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubjPubKey - (goodParams, &getPublicKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setPublicKey, - (PKIX_PL_Object *)getPublicKey, - &isEqual, - plContext)); - - if (isEqual == PKIX_FALSE) { - testError("unexpected Subject Public Key mismatch " - "<expect equal>"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(setAlgId); - PKIX_TEST_DECREF_AC(getAlgId); - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(setPublicKey); - PKIX_TEST_DECREF_AC(getPublicKey); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_comcertselparams <NIST_FILES_DIR> \n\n"); -} - -int test_comcertselparams(int argc, char *argv[]) { - - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_PL_Cert *testCert = NULL; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_PL_CertBasicConstraints *goodBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *diffBasicConstraints = NULL; - PKIX_List *testPolicyInfos = NULL; /* CertPolicyInfos */ - PKIX_List *cert2PolicyInfos = NULL; /* CertPolicyInfos */ - - PKIX_ComCertSelParams *goodParams = NULL; - PKIX_ComCertSelParams *equalParams = NULL; - PKIX_PL_X500Name *goodSubject = NULL; - PKIX_PL_X500Name *equalSubject = NULL; - PKIX_PL_X500Name *diffSubject = NULL; - PKIX_PL_X500Name *testSubject = NULL; - PKIX_Int32 goodMinPathLength = 0; - PKIX_Int32 equalMinPathLength = 0; - PKIX_Int32 diffMinPathLength = 0; - PKIX_Int32 testMinPathLength = 0; - PKIX_List *goodPolicies = NULL; /* OIDs */ - PKIX_List *equalPolicies = NULL; /* OIDs */ - PKIX_List *testPolicies = NULL; /* OIDs */ - PKIX_List *cert2Policies = NULL; /* OIDs */ - - PKIX_PL_Date *testDate = NULL; - PKIX_PL_Date *goodDate = NULL; - PKIX_PL_Date *equalDate = NULL; - PKIX_PL_String *stringRep = NULL; - char *asciiRep = NULL; - char *dirName = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 2) { - printUsage(); - return (0); - } - - startTests("ComCertSelParams"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - dirName = argv[j+1]; - - asciiRep = "050501000000Z"; - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create - (PKIX_ESCASCII, asciiRep, 0, &stringRep, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Date_Create_UTCTime(stringRep, &testDate, plContext)); - - testCert = createCert - (dirName, "PoliciesP1234CACert.crt", plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (testCert, &testSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetBasicConstraints - (testCert, &goodBasicConstraints, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BasicConstraints_GetPathLenConstraint - (goodBasicConstraints, &testMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (testCert, &testPolicyInfos, plContext)); - - /* Convert from List of CertPolicyInfos to List of OIDs */ - test_CreateOIDList(testPolicyInfos, &testPolicies); - - subTest("Create goodParams and set its fields"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&goodParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubject - (goodParams, testSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetBasicConstraints - (goodParams, testMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificateValid - (goodParams, testDate, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPolicy - (goodParams, testPolicies, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificate - (goodParams, testCert, plContext)); - - subTest("Duplicate goodParams and verify copy"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)goodParams, - (PKIX_PL_Object **)&equalParams, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubject - (goodParams, &goodSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetBasicConstraints - (goodParams, &goodMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_GetCertificate - (goodParams, &goodCert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificateValid - (goodParams, &goodDate, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPolicy - (goodParams, &goodPolicies, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubject - (equalParams, &equalSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetBasicConstraints - (equalParams, &equalMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPolicy - (equalParams, &equalPolicies, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificate - (equalParams, &equalCert, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetCertificateValid - (equalParams, &equalDate, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)goodSubject, - (PKIX_PL_Object *)equalSubject, - PKIX_TRUE, - plContext); - - if (goodMinPathLength != equalMinPathLength) { - testError("unexpected mismatch"); - (void) printf("goodMinPathLength:\t%d\n", goodMinPathLength); - (void) printf("equalMinPathLength:\t%d\n", equalMinPathLength); - } - - testEqualsHelper((PKIX_PL_Object *)goodPolicies, - (PKIX_PL_Object *)equalPolicies, - PKIX_TRUE, - plContext); - - testEqualsHelper((PKIX_PL_Object *)goodCert, - (PKIX_PL_Object *)equalCert, - PKIX_TRUE, - plContext); - - testEqualsHelper((PKIX_PL_Object *)goodDate, - (PKIX_PL_Object *)equalDate, - PKIX_TRUE, - plContext); - - PKIX_TEST_DECREF_BC(equalSubject); - PKIX_TEST_DECREF_BC(equalPolicies); - PKIX_TEST_DECREF_BC(equalCert); - PKIX_TEST_DECREF_AC(equalDate); - - subTest("Set different values and verify differences"); - - diffCert = createCert - (dirName, "pathLenConstraint6CACert.crt", plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (diffCert, &diffSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetBasicConstraints - (diffCert, &diffBasicConstraints, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BasicConstraints_GetPathLenConstraint - (diffBasicConstraints, &diffMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (diffCert, &cert2PolicyInfos, plContext)); - test_CreateOIDList(cert2PolicyInfos, &cert2Policies); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubject( - equalParams, diffSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetBasicConstraints - (equalParams, diffMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetPolicy - (equalParams, cert2Policies, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetSubject - (equalParams, &equalSubject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetBasicConstraints - (equalParams, &equalMinPathLength, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_GetPolicy - (equalParams, &equalPolicies, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)goodSubject, - (PKIX_PL_Object *)equalSubject, - PKIX_FALSE, - plContext); - - if (goodMinPathLength == equalMinPathLength) { - testError("unexpected match"); - (void) printf("goodMinPathLength:\t%d\n", goodMinPathLength); - (void) printf("equalMinPathLength:\t%d\n", equalMinPathLength); - } - - testEqualsHelper - ((PKIX_PL_Object *)goodPolicies, - (PKIX_PL_Object *)equalPolicies, - PKIX_FALSE, - plContext); - - test_NameConstraints(dirName); - test_PathToNames(); - test_SubjAltNames(); - test_KeyUsages(); - test_Version_Issuer_SerialNumber(); - test_SubjKeyId_AuthKeyId(); - test_SubjAlgId_SubjPublicKey(dirName); - -cleanup: - - PKIX_TEST_DECREF_AC(testSubject); - PKIX_TEST_DECREF_AC(goodSubject); - PKIX_TEST_DECREF_AC(equalSubject); - PKIX_TEST_DECREF_AC(diffSubject); - PKIX_TEST_DECREF_AC(testSubject); - PKIX_TEST_DECREF_AC(goodPolicies); - PKIX_TEST_DECREF_AC(equalPolicies); - PKIX_TEST_DECREF_AC(testPolicies); - PKIX_TEST_DECREF_AC(cert2Policies); - PKIX_TEST_DECREF_AC(goodParams); - PKIX_TEST_DECREF_AC(equalParams); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(diffCert); - PKIX_TEST_DECREF_AC(testCert); - PKIX_TEST_DECREF_AC(goodBasicConstraints); - PKIX_TEST_DECREF_AC(diffBasicConstraints); - PKIX_TEST_DECREF_AC(testPolicyInfos); - PKIX_TEST_DECREF_AC(cert2PolicyInfos); - PKIX_TEST_DECREF_AC(stringRep); - PKIX_TEST_DECREF_AC(testDate); - PKIX_TEST_DECREF_AC(goodDate); - - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ComCertSelParams"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/checker/Makefile b/security/nss/cmd/libpkix/pkix/checker/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/checker/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/checker/manifest.mn b/security/nss/cmd/libpkix/pkix/checker/manifest.mn deleted file mode 100755 index 317015232..000000000 --- a/security/nss/cmd/libpkix/pkix/checker/manifest.mn +++ /dev/null @@ -1,52 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_certchainchecker.c - -LIBRARY_NAME=pkixtoolchecker - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c b/security/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c deleted file mode 100755 index 7ddd2c74e..000000000 --- a/security/nss/cmd/libpkix/pkix/checker/test_certchainchecker.c +++ /dev/null @@ -1,255 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_certchainchecker.c - * - * Test Cert Chain Checker - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - - -static -PKIX_Error *dummyChecker_Check( - PKIX_CertChainChecker *checker, - PKIX_PL_Cert *cert, - PKIX_List *unresolvedCriticalExtensions, - void **pNBIOContext, - void *plContext) -{ - goto cleanup; - -cleanup: - - return(NULL); -} - - -static -void test_CertChainChecker_Duplicate(PKIX_CertChainChecker *original) -{ - PKIX_Boolean originalForward = PKIX_FALSE; - PKIX_Boolean copyForward = PKIX_FALSE; - PKIX_Boolean originalForwardDir = PKIX_FALSE; - PKIX_Boolean copyForwardDir = PKIX_FALSE; - PKIX_CertChainChecker *copy = NULL; - PKIX_CertChainChecker_CheckCallback originalCallback = NULL; - PKIX_CertChainChecker_CheckCallback copyCallback = NULL; - PKIX_PL_Object *originalState = NULL; - PKIX_PL_Object *copyState = NULL; - PKIX_List *originalList = NULL; - PKIX_List *copyList = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("CertChainChecker_Duplicate"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)original, - (PKIX_PL_Object **)©, - plContext)); - - subTest("CertChainChecker_GetCheckCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertChainChecker_GetCheckCallback - (original, &originalCallback, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertChainChecker_GetCheckCallback - (copy, ©Callback, plContext)); - if (originalCallback != copyCallback) { - pkixTestErrorMsg = "CheckCallback functions are not equal!"; - goto cleanup; - } - - subTest("CertChainChecker_IsForwardCheckingSupported"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_IsForwardCheckingSupported - (original, &originalForward, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_IsForwardCheckingSupported - (copy, ©Forward, plContext)); - if (originalForward != copyForward) { - pkixTestErrorMsg = "ForwardChecking booleans are not equal!"; - goto cleanup; - } - - subTest("CertChainChecker_IsForwardDirectionExpected"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_IsForwardDirectionExpected - (original, &originalForwardDir, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_IsForwardDirectionExpected - (copy, ©ForwardDir, plContext)); - if (originalForwardDir != copyForwardDir) { - pkixTestErrorMsg = "ForwardDirection booleans are not equal!"; - goto cleanup; - } - - subTest("CertChainChecker_GetCertChainCheckerState"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_GetCertChainCheckerState - (original, &originalState, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_GetCertChainCheckerState - (copy, ©State, plContext)); - testEqualsHelper(originalState, copyState, PKIX_TRUE, plContext); - - subTest("CertChainChecker_GetSupportedExtensions"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_GetSupportedExtensions - (original, &originalList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_GetSupportedExtensions - (copy, ©List, plContext)); - testEqualsHelper - ((PKIX_PL_Object *)originalList, - (PKIX_PL_Object *)copyList, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(copy); - PKIX_TEST_DECREF_AC(originalState); - PKIX_TEST_DECREF_AC(copyState); - PKIX_TEST_DECREF_AC(originalList); - PKIX_TEST_DECREF_AC(copyList); - - PKIX_TEST_RETURN(); -} - -int test_certchainchecker(int argc, char *argv[]) { - - PKIX_UInt32 actualMinorVersion; - PKIX_PL_OID *bcOID = NULL; - PKIX_PL_OID *ncOID = NULL; - PKIX_PL_OID *cpOID = NULL; - PKIX_PL_OID *pmOID = NULL; - PKIX_PL_OID *pcOID = NULL; - PKIX_PL_OID *iaOID = NULL; - PKIX_CertChainChecker *dummyChecker = NULL; - PKIX_List *supportedExtensions = NULL; - PKIX_PL_Object *initialState = NULL; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("CertChainChecker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&supportedExtensions, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (PKIX_BASICCONSTRAINTS_OID, &bcOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (supportedExtensions, (PKIX_PL_Object *)bcOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (PKIX_NAMECONSTRAINTS_OID, &ncOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (supportedExtensions, (PKIX_PL_Object *)ncOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (PKIX_CERTIFICATEPOLICIES_OID, &cpOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (supportedExtensions, (PKIX_PL_Object *)cpOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (PKIX_POLICYMAPPINGS_OID, &pmOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (supportedExtensions, (PKIX_PL_Object *)pmOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (PKIX_POLICYCONSTRAINTS_OID, &pcOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (supportedExtensions, (PKIX_PL_Object *)pcOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (PKIX_INHIBITANYPOLICY_OID, &iaOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (supportedExtensions, (PKIX_PL_Object *)iaOID, plContext)); - - PKIX_TEST_DECREF_BC(bcOID); - PKIX_TEST_DECREF_BC(ncOID); - PKIX_TEST_DECREF_BC(cpOID); - PKIX_TEST_DECREF_BC(pmOID); - PKIX_TEST_DECREF_BC(pcOID); - PKIX_TEST_DECREF_BC(iaOID); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)supportedExtensions, plContext)); - - initialState = (PKIX_PL_Object *)supportedExtensions; - - subTest("CertChainChecker_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertChainChecker_Create - (dummyChecker_Check, /* PKIX_CertChainChecker_CheckCallback */ - PKIX_FALSE, /* forwardCheckingSupported */ - PKIX_FALSE, /* forwardDirectionExpected */ - supportedExtensions, - NULL, /* PKIX_PL_Object *initialState */ - &dummyChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertChainChecker_SetCertChainCheckerState - (dummyChecker, initialState, plContext)); - - test_CertChainChecker_Duplicate(dummyChecker); - - subTest("CertChainChecker_Destroy"); - PKIX_TEST_DECREF_BC(dummyChecker); - -cleanup: - - PKIX_TEST_DECREF_AC(dummyChecker); - PKIX_TEST_DECREF_AC(initialState); - PKIX_TEST_DECREF_AC(supportedExtensions); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CertChainChecker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/crlsel/Makefile b/security/nss/cmd/libpkix/pkix/crlsel/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/crlsel/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/crlsel/manifest.mn b/security/nss/cmd/libpkix/pkix/crlsel/manifest.mn deleted file mode 100755 index 0357ba854..000000000 --- a/security/nss/cmd/libpkix/pkix/crlsel/manifest.mn +++ /dev/null @@ -1,54 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_crlselector.c \ - test_comcrlselparams.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolcrlsel - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c b/security/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c deleted file mode 100644 index 64a61e966..000000000 --- a/security/nss/cmd/libpkix/pkix/crlsel/test_comcrlselparams.c +++ /dev/null @@ -1,474 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_comcrlselparams.c - * - * Test ComCRLSelParams Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testIssuer(PKIX_ComCRLSelParams *goodObject) -{ - PKIX_PL_String *issuer1String = NULL; - PKIX_PL_String *issuer2String = NULL; - PKIX_PL_String *issuer3String = NULL; - PKIX_PL_X500Name *issuerName1 = NULL; - PKIX_PL_X500Name *issuerName2 = NULL; - PKIX_PL_X500Name *issuerName3 = NULL; - PKIX_List *setIssuerList = NULL; - PKIX_List *getIssuerList = NULL; - PKIX_PL_String *issuerListString = NULL; - char *name1 = "CN=yassir,OU=bcn,OU=east,O=sun,C=us"; - char *name2 = "CN=richard,OU=bcn,OU=east,O=sun,C=us"; - char *name3 = "CN=hanfei,OU=bcn,OU=east,O=sun,C=us"; - PKIX_Int32 length; - PKIX_Boolean result = PKIX_FALSE; - char *expectedAscii = - "(CN=yassir,OU=bcn,OU=east,O=sun," - "C=us, CN=richard,OU=bcn,OU=east,O=sun,C=us, " - "CN=hanfei,OU=bcn,OU=east,O=sun,C=us)"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCRLSelParams Create Issuers"); - - length = PL_strlen(name1); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_UTF8, - name1, - length, - &issuer1String, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Create(issuer1String, - &issuerName1, - plContext)); - - length = PL_strlen(name2); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_UTF8, - name2, - length, - &issuer2String, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Create(issuer2String, - &issuerName2, - plContext)); - - length = PL_strlen(name3); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_UTF8, - name3, - length, - &issuer3String, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Create - (issuer3String, - &issuerName3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&setIssuerList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setIssuerList, - (PKIX_PL_Object *)issuerName1, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setIssuerList, - (PKIX_PL_Object *)issuerName2, - plContext)); - - subTest("PKIX_ComCRLSelParams_AddIssuerName"); - - /* Test adding an issuer to an empty list */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_AddIssuerName - (goodObject, issuerName3, plContext)); - - subTest("PKIX_ComCRLSelParams_GetIssuerNames"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_GetIssuerNames - (goodObject, &getIssuerList, plContext)); - - /* DECREF for GetIssuerNames */ - PKIX_TEST_DECREF_BC(getIssuerList); - /* DECREF for AddIssuerName so next SetIssuerName start clean */ - PKIX_TEST_DECREF_BC(getIssuerList); - - /* Test setting issuer names on the list */ - subTest("PKIX_ComCRLSelParams_SetIssuerNames"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetIssuerNames - (goodObject, setIssuerList, plContext)); - - subTest("PKIX_ComCRLSelParams_GetIssuerNames"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_GetIssuerNames - (goodObject, &getIssuerList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setIssuerList, - (PKIX_PL_Object *)getIssuerList, - &result, - plContext)); - - if (result != PKIX_TRUE) { - pkixTestErrorMsg = "unexpected Issuers mismatch"; - } - - /* Test adding an issuer to existing list */ - subTest("PKIX_ComCRLSelParams_AddIssuerName"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_AddIssuerName - (goodObject, issuerName3, plContext)); - - subTest("PKIX_ComCRLSelParams_GetIssuerNames"); - PKIX_TEST_DECREF_BC(getIssuerList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_GetIssuerNames - (goodObject, &getIssuerList, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object *)getIssuerList, - &issuerListString, - plContext)); - - testToStringHelper((PKIX_PL_Object *)getIssuerList, - expectedAscii, plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(issuer1String); - PKIX_TEST_DECREF_AC(issuer2String); - PKIX_TEST_DECREF_AC(issuer3String); - PKIX_TEST_DECREF_AC(issuerListString); - PKIX_TEST_DECREF_AC(issuerName1); - PKIX_TEST_DECREF_AC(issuerName2); - PKIX_TEST_DECREF_AC(issuerName3); - PKIX_TEST_DECREF_AC(setIssuerList); - PKIX_TEST_DECREF_AC(getIssuerList); - - PKIX_TEST_RETURN(); - -} - -static -void testCertificateChecking( - char *dataCentralDir, - char *goodInput, - PKIX_ComCRLSelParams *goodObject) -{ - PKIX_PL_Cert *setCert = NULL; - PKIX_PL_Cert *getCert = NULL; - PKIX_Boolean result = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - subTest("Test CertificateChecking Cert Create"); - setCert = createCert(dataCentralDir, goodInput, plContext); - if (setCert == NULL) { - pkixTestErrorMsg = "create certificate failed"; - goto cleanup; - } - - subTest("PKIX_ComCRLSelParams_SetCertificateChecking"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetCertificateChecking - (goodObject, setCert, plContext)); - - subTest("PKIX_ComCRLSelParams_GetCertificateChecking"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_GetCertificateChecking - (goodObject, &getCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setCert, - (PKIX_PL_Object *)getCert, - &result, plContext)); - - if (result != PKIX_TRUE) { - pkixTestErrorMsg = "unexpected Cert mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(setCert); - PKIX_TEST_DECREF_AC(getCert); - - PKIX_TEST_RETURN(); -} - -static -void testDateAndTime(PKIX_ComCRLSelParams *goodObject){ - - PKIX_PL_Date *setDate = NULL; - PKIX_PL_Date *getDate = NULL; - char *asciiDate = "040329134847Z"; - PKIX_Boolean result = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCRLSelParams_Date Create"); - setDate = createDate(asciiDate, plContext); - - subTest("PKIX_ComCRLSelParams_SetDateAndTime"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCRLSelParams_SetDateAndTime - (goodObject, setDate, plContext)); - - subTest("PKIX_ComCRLSelParams_GetDateAndTime"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCRLSelParams_GetDateAndTime - (goodObject, &getDate, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setDate, - (PKIX_PL_Object *)getDate, - &result, plContext)); - - if (result != PKIX_TRUE) { - pkixTestErrorMsg = "unexpected DateAndTime mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(setDate); - PKIX_TEST_DECREF_AC(getDate); - - PKIX_TEST_RETURN(); -} - -static -void testMaxMinCRLNumbers(PKIX_ComCRLSelParams *goodObject){ - PKIX_PL_BigInt *setMaxCrlNumber = NULL; - PKIX_PL_BigInt *getMaxCrlNumber = NULL; - PKIX_PL_BigInt *setMinCrlNumber = NULL; - PKIX_PL_BigInt *getMinCrlNumber = NULL; - char *asciiCrlNumber1 = "01"; - char *asciiCrlNumber99999 = "0909090909"; - PKIX_PL_String *crlNumber1String = NULL; - PKIX_PL_String *crlNumber99999String = NULL; - - PKIX_Boolean result = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCRLSelParams_SetMinCRLNumber"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - asciiCrlNumber1, - PL_strlen(asciiCrlNumber1), - &crlNumber1String, - NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create - (crlNumber1String, &setMinCrlNumber, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetMinCRLNumber - (goodObject, setMinCrlNumber, NULL)); - - subTest("PKIX_ComCRLSelParams_GetMinCRLNumber"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCRLSelParams_GetMinCRLNumber - (goodObject, &getMinCrlNumber, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setMinCrlNumber, - (PKIX_PL_Object *)getMinCrlNumber, - &result, NULL)); - - if (result != PKIX_TRUE) { - pkixTestErrorMsg = "unexpected Minimum CRL Number mismatch"; - } - - subTest("PKIX_ComCRLSelParams_SetMaxCRLNumber"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - asciiCrlNumber99999, - PL_strlen(asciiCrlNumber99999), - &crlNumber99999String, - NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create - (crlNumber99999String, &setMaxCrlNumber, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetMaxCRLNumber - (goodObject, setMaxCrlNumber, NULL)); - - subTest("PKIX_ComCRLSelParams_GetMaxCRLNumber"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCRLSelParams_GetMaxCRLNumber - (goodObject, &getMaxCrlNumber, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)setMaxCrlNumber, - (PKIX_PL_Object *)getMaxCrlNumber, - &result, NULL)); - - if (result != PKIX_TRUE) { - pkixTestErrorMsg = "unexpected Maximum CRL Number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(setMaxCrlNumber); - PKIX_TEST_DECREF_AC(getMaxCrlNumber); - PKIX_TEST_DECREF_AC(setMinCrlNumber); - PKIX_TEST_DECREF_AC(getMinCrlNumber); - PKIX_TEST_DECREF_AC(crlNumber1String); - PKIX_TEST_DECREF_AC(crlNumber99999String); - - PKIX_TEST_RETURN(); -} - -static -void testDuplicate(PKIX_ComCRLSelParams *goodObject){ - - PKIX_ComCRLSelParams *dupObject = NULL; - PKIX_Boolean result = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCRLSelParams_Duplicate"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)goodObject, - (PKIX_PL_Object **)&dupObject, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)goodObject, - (PKIX_PL_Object *)dupObject, - &result, plContext)); - - if (result != PKIX_TRUE) { - pkixTestErrorMsg = - "unexpected Duplicate ComCRLSelParams mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(dupObject); - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -/* Functional tests for ComCRLSelParams public functions */ - -int test_comcrlselparams(int argc, char *argv[]){ - - char *dataCentralDir = NULL; - char *goodInput = "yassir2yassir"; - PKIX_ComCRLSelParams *goodObject = NULL; - PKIX_ComCRLSelParams *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("ComCRLSelParams"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dataCentralDir = argv[j+1]; - - subTest("PKIX_ComCRLSelParams_Create"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create - (&goodObject, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create - (&diffObject, - plContext)); - - testIssuer(goodObject); - - testCertificateChecking(dataCentralDir, goodInput, goodObject); - - testDateAndTime(goodObject); - - testMaxMinCRLNumbers(goodObject); - - testDuplicate(goodObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - goodObject, - diffObject, - NULL, - ComCRLSelParams, - PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodObject); - PKIX_TEST_DECREF_AC(diffObject); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ComCRLSelParams"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c b/security/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c deleted file mode 100644 index f5d6c4f3b..000000000 --- a/security/nss/cmd/libpkix/pkix/crlsel/test_crlselector.c +++ /dev/null @@ -1,206 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_crlselector.c - * - * Test CRLSelector Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testGetMatchCallback(PKIX_CRLSelector *goodObject) -{ - PKIX_CRLSelector_MatchCallback mCallback = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("testGetMatchCallback"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_GetMatchCallback - (goodObject, &mCallback, plContext)); - - if (mCallback == NULL) { - pkixTestErrorMsg = "MatchCallback is NULL"; - } - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testGetCRLSelectorContext(PKIX_CRLSelector *goodObject) -{ - PKIX_PL_Object *context = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("testGetCRLSelectorContext"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_GetCRLSelectorContext - (goodObject, (void *)&context, plContext)); - - if (context == NULL) { - pkixTestErrorMsg = "CRLSelectorContext is NULL"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(context); - PKIX_TEST_RETURN(); -} - -static -void testCommonCRLSelectorParams(PKIX_CRLSelector *goodObject){ - PKIX_ComCRLSelParams *setParams = NULL; - PKIX_ComCRLSelParams *getParams = NULL; - PKIX_PL_Date *setDate = NULL; - char *asciiDate = "040329134847Z"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCRLSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create - (&setParams, - plContext)); - - subTest("PKIX_ComCRLSelParams_Date Create"); - - setDate = createDate(asciiDate, plContext); - - subTest("PKIX_ComCRLSelParams_SetDateAndTime"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetDateAndTime - (setParams, setDate, plContext)); - - subTest("PKIX_CRLSelector_SetCommonCRLSelectorParams"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_SetCommonCRLSelectorParams( - goodObject, setParams, plContext)); - - subTest("PKIX_CRLSelector_GetCommonCRLSelectorParams"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_GetCommonCRLSelectorParams( - goodObject, &getParams, plContext)); - - testEqualsHelper((PKIX_PL_Object *)setParams, - (PKIX_PL_Object *)getParams, - PKIX_TRUE, - plContext); - - testHashcodeHelper((PKIX_PL_Object *)setParams, - (PKIX_PL_Object *)getParams, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(setDate); - PKIX_TEST_DECREF_AC(setParams); - PKIX_TEST_DECREF_AC(getParams); - - PKIX_TEST_RETURN(); -} - -/* Functional tests for CRLSelector public functions */ - -int test_crlselector(int argc, char *argv[]){ - - PKIX_PL_Date *context = NULL; - PKIX_CRLSelector *goodObject = NULL; - PKIX_CRLSelector *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *asciiDate = "040329134847Z"; - - PKIX_TEST_STD_VARS(); - - startTests("CRLSelector"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - context = createDate(asciiDate, plContext); - - subTest("PKIX_CRLSelector_Create"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (NULL, - (PKIX_PL_Object *)context, - &goodObject, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (NULL, - (PKIX_PL_Object *)context, - &diffObject, - plContext)); - - testGetMatchCallback(goodObject); - - testGetCRLSelectorContext(goodObject); - - testCommonCRLSelectorParams(goodObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - goodObject, - diffObject, - NULL, - CRLSelector, - PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodObject); - PKIX_TEST_DECREF_AC(diffObject); - PKIX_TEST_DECREF_AC(context); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CRLSelector"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/manifest.mn b/security/nss/cmd/libpkix/pkix/manifest.mn deleted file mode 100755 index 0b467713e..000000000 --- a/security/nss/cmd/libpkix/pkix/manifest.mn +++ /dev/null @@ -1,44 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = .. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -DIRS = certsel checker crlsel params results store top util \ - $(NULL) diff --git a/security/nss/cmd/libpkix/pkix/params/Makefile b/security/nss/cmd/libpkix/pkix/params/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/params/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/params/manifest.mn b/security/nss/cmd/libpkix/pkix/params/manifest.mn deleted file mode 100755 index 2c0cde745..000000000 --- a/security/nss/cmd/libpkix/pkix/params/manifest.mn +++ /dev/null @@ -1,56 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_procparams.c \ - test_trustanchor.c \ - test_valparams.c \ - test_resourcelimits.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolparams - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/params/test_buildparams.c b/security/nss/cmd/libpkix/pkix/params/test_buildparams.c deleted file mode 100644 index b3d165443..000000000 --- a/security/nss/cmd/libpkix/pkix/params/test_buildparams.c +++ /dev/null @@ -1,212 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_buildparams.c - * - * Test BuildParams Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_BuildParams_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testGetProcParams( - PKIX_BuildParams *goodObject, - PKIX_BuildParams *equalObject){ - - PKIX_ProcessingParams *goodProcParams = NULL; - PKIX_ProcessingParams *equalProcParams = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_BuildParams_GetProcessingParams"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildParams_GetProcessingParams - (goodObject, &goodProcParams, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildParams_GetProcessingParams - (equalObject, &equalProcParams, NULL)); - - testEqualsHelper - ((PKIX_PL_Object *)goodProcParams, - (PKIX_PL_Object *)equalProcParams, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodProcParams); - PKIX_TEST_DECREF_AC(equalProcParams); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -int test_buildparams(int argc, char *argv[]) { - - PKIX_BuildParams *goodObject = NULL; - PKIX_BuildParams *equalObject = NULL; - PKIX_BuildParams *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *dataCentralDir = NULL; - char *goodInput = "yassir2yassir"; - char *diffInput = "yassir2bcn"; - - char *expectedAscii = - "[\n" - "\tProcessing Params: \n" - "\t********BEGIN PROCESSING PARAMS********\n" - "\t\t" - "[\n" - "\tTrust Anchors: \n" - "\t********BEGIN LIST OF TRUST ANCHORS********\n" - "\t\t" -"([\n" - "\tTrusted CA Name: " - "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - ", [\n" - "\tTrusted CA Name: OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - ")\n" - "\t********END LIST OF TRUST ANCHORS********\n" - "\tDate: \t\t(null)\n" - "\tTarget Constraints: (null)\n" - "\tInitial Policies: (null)\n" - "\tQualifiers Rejected: FALSE\n" - "\tCert Stores: (EMPTY)\n" - "\tResource Limits: (null)\n" - "\tCRL Checking Enabled: 0\n" - "]\n" - "\n" - "\t********END PROCESSING PARAMS********\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("BuildParams"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dataCentralDir = argv[j+1]; - - subTest("PKIX_BuildParams_Create"); - - goodObject = createBuildParams - (dataCentralDir, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - plContext); - - equalObject = createBuildParams - (dataCentralDir, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - plContext); - - diffObject = createBuildParams - (dataCentralDir, - diffInput, - goodInput, - NULL, - NULL, - PKIX_FALSE, - plContext); - - testGetProcParams(goodObject, equalObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - BuildParams, - PKIX_FALSE); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("BuildParams"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/params/test_procparams.c b/security/nss/cmd/libpkix/pkix/params/test_procparams.c deleted file mode 100644 index 1598de199..000000000 --- a/security/nss/cmd/libpkix/pkix/params/test_procparams.c +++ /dev/null @@ -1,552 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_procparams.c - * - * Test ProcessingParams Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ProcessingParams_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testGetAnchors( - PKIX_ProcessingParams *goodObject, - PKIX_ProcessingParams *equalObject){ - - PKIX_List *goodAnchors = NULL; - PKIX_List *equalAnchors = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_GetTrustAnchors"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetTrustAnchors - (goodObject, &goodAnchors, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetTrustAnchors - (equalObject, &equalAnchors, plContext)); - - testEqualsHelper((PKIX_PL_Object *)goodAnchors, - (PKIX_PL_Object *)equalAnchors, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodAnchors); - PKIX_TEST_DECREF_AC(equalAnchors); - - PKIX_TEST_RETURN(); -} - -static -void testGetSetDate( - PKIX_ProcessingParams *goodObject, - PKIX_ProcessingParams *equalObject){ - - PKIX_PL_Date *setDate = NULL; - PKIX_PL_Date *getDate = NULL; - char *asciiDate = "040329134847Z"; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetDate"); - - setDate = createDate(asciiDate, plContext); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetDate(goodObject, setDate, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_GetDate - (goodObject, &getDate, plContext)); - - testEqualsHelper((PKIX_PL_Object *)setDate, - (PKIX_PL_Object *)getDate, - PKIX_TRUE, - plContext); - - /* we want to make sure that goodObject and equalObject are "equal" */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetDate - (equalObject, setDate, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(setDate); - PKIX_TEST_DECREF_AC(getDate); - - PKIX_TEST_RETURN(); -} - -static -PKIX_Error *userChecker1cb( - PKIX_CertChainChecker *checker, - PKIX_PL_Cert *cert, - PKIX_List *unresolvedCriticalExtensions, /* list of PKIX_PL_OID */ - void **pNBIOContext, - void *plContext) -{ - return(NULL); -} - -static -void testGetSetCertChainCheckers( - PKIX_ProcessingParams *goodObject, - PKIX_ProcessingParams *equalObject){ - - PKIX_CertChainChecker *checker = NULL; - PKIX_List *setCheckersList = NULL; - PKIX_List *getCheckersList = NULL; - PKIX_PL_Date *date = NULL; - char *asciiDate = "040329134847Z"; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetCertChainCheckers"); - - date = createDate(asciiDate, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertChainChecker_Create - (userChecker1cb, - PKIX_FALSE, - PKIX_FALSE, - NULL, - (PKIX_PL_Object *) date, - &checker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&setCheckersList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setCheckersList, (PKIX_PL_Object *) checker, plContext)); - PKIX_TEST_DECREF_BC(checker); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertChainCheckers - (goodObject, setCheckersList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertChainChecker_Create - (userChecker1cb, - PKIX_FALSE, - PKIX_FALSE, - NULL, - (PKIX_PL_Object *) date, - &checker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertChainChecker - (goodObject, checker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetCertChainCheckers - (goodObject, &getCheckersList, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(setCheckersList); - PKIX_TEST_DECREF_AC(getCheckersList); - PKIX_TEST_DECREF_AC(date); - PKIX_TEST_DECREF_BC(checker); - - PKIX_TEST_RETURN(); -} - -static -PKIX_Error *userChecker2cb( - PKIX_RevocationChecker *checker, - PKIX_PL_Cert *cert, - PKIX_UInt32 *pResult, - void *plContext) -{ - return(NULL); -} - -static -void testGetSetRevocationCheckers( - PKIX_ProcessingParams *goodObject, - PKIX_ProcessingParams *equalObject){ - - PKIX_RevocationChecker *checker = NULL; - PKIX_List *setCheckersList = NULL; - PKIX_List *getCheckersList = NULL; - PKIX_PL_Date *date = NULL; - char *asciiDate = "040329134847Z"; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetRevocationCheckers"); - - date = createDate(asciiDate, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_RevocationChecker_Create - (userChecker2cb, - (PKIX_PL_Object *) date, - &checker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&setCheckersList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setCheckersList, - (PKIX_PL_Object *) checker, - plContext)); - PKIX_TEST_DECREF_BC(checker); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (goodObject, setCheckersList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_RevocationChecker_Create - (userChecker2cb, - (PKIX_PL_Object *) date, - &checker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddRevocationChecker - (goodObject, checker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetRevocationCheckers - (goodObject, &getCheckersList, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(setCheckersList); - PKIX_TEST_DECREF_AC(getCheckersList); - PKIX_TEST_DECREF_AC(date); - PKIX_TEST_DECREF_BC(checker); - - PKIX_TEST_RETURN(); -} - -static -void testGetSetResourceLimits( - PKIX_ProcessingParams *goodObject, - PKIX_ProcessingParams *equalObject) - -{ - PKIX_ResourceLimits *resourceLimits1 = NULL; - PKIX_ResourceLimits *resourceLimits2 = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetResourceLimits"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create - (&resourceLimits1, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create - (&resourceLimits2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (resourceLimits1, 3, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (resourceLimits1, 3, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime - (resourceLimits1, 2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetResourceLimits - (goodObject, resourceLimits1, plContext)); - - PKIX_TEST_DECREF_BC(resourceLimits2); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetResourceLimits - (goodObject, &resourceLimits2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetResourceLimits - (equalObject, resourceLimits2, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(resourceLimits1); - PKIX_TEST_DECREF_AC(resourceLimits2); - - PKIX_TEST_RETURN(); -} - -static -void testGetSetConstraints(PKIX_ProcessingParams *goodObject){ - - PKIX_CertSelector *setConstraints = NULL; - PKIX_CertSelector *getConstraints = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetTargetCertConstraints"); - - /* - * After createConstraints is implemented - * setConstraints = createConstraints(); - */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (goodObject, setConstraints, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_GetTargetCertConstraints - (goodObject, &getConstraints, plContext)); - - testEqualsHelper((PKIX_PL_Object *)setConstraints, - (PKIX_PL_Object *)getConstraints, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(setConstraints); - PKIX_TEST_DECREF_AC(getConstraints); - - PKIX_TEST_RETURN(); -} - -static -void testGetSetInitialPolicies( - PKIX_ProcessingParams *goodObject, - char *asciiPolicyOID) -{ - PKIX_PL_OID *policyOID = NULL; - PKIX_List* setPolicyList = NULL; - PKIX_List* getPolicyList = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetInitialPolicies"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (asciiPolicyOID, &policyOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&setPolicyList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (setPolicyList, (PKIX_PL_Object *)policyOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_SetImmutable(setPolicyList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetInitialPolicies - (goodObject, setPolicyList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_GetInitialPolicies - (goodObject, &getPolicyList, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)setPolicyList, - (PKIX_PL_Object *)getPolicyList, - PKIX_TRUE, - plContext); - -cleanup: - PKIX_TEST_DECREF_AC(policyOID); - PKIX_TEST_DECREF_AC(setPolicyList); - PKIX_TEST_DECREF_AC(getPolicyList); - - PKIX_TEST_RETURN(); -} - -static -void testGetSetPolicyQualifiersRejected( - PKIX_ProcessingParams *goodObject, - PKIX_Boolean rejected) -{ - PKIX_Boolean getRejected = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ProcessingParams_Get/SetPolicyQualifiersRejected"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetPolicyQualifiersRejected - (goodObject, rejected, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_GetPolicyQualifiersRejected - (goodObject, &getRejected, plContext)); - - if (rejected != getRejected) { - testError - ("GetPolicyQualifiersRejected returned unexpected value"); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -int test_procparams(int argc, char *argv[]) { - - PKIX_ProcessingParams *goodObject = NULL; - PKIX_ProcessingParams *equalObject = NULL; - PKIX_ProcessingParams *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - char *dataCentralDir = NULL; - PKIX_UInt32 j = 0; - - char *oidAnyPolicy = PKIX_CERTIFICATEPOLICIES_ANYPOLICY_OID; - char *oidNist1Policy = "2.16.840.1.101.3.2.1.48.2"; - - char *goodInput = "yassir2yassir"; - char *diffInput = "yassir2bcn"; - - char *expectedAscii = - "[\n" - "\tTrust Anchors: \n" - "\t********BEGIN LIST OF TRUST ANCHORS********\n" - "\t\t" - "([\n" - "\tTrusted CA Name: " - "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - ", [\n" - "\tTrusted CA Name: OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - ")\n" - "\t********END LIST OF TRUST ANCHORS********\n" - "\tDate: \t\tMon Mar 29 08:48:47 2004\n" - "\tTarget Constraints: (null)\n" - "\tInitial Policies: (2.5.29.32.0)\n" - "\tQualifiers Rejected: FALSE\n" - "\tCert Stores: (EMPTY)\n" - "\tResource Limits: [\n" - "\tMaxTime: 2\n" - "\tMaxFanout: 3\n" - "\tMaxDepth: 3\n" - "]\n\n" - "\tCRL Checking Enabled: 0\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("ProcessingParams"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dataCentralDir = argv[j+1]; - - subTest("PKIX_ProcessingParams_Create"); - goodObject = createProcessingParams - (dataCentralDir, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - plContext); - - equalObject = createProcessingParams - (dataCentralDir, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - plContext); - - diffObject = createProcessingParams - (dataCentralDir, - diffInput, - goodInput, - NULL, - NULL, - PKIX_FALSE, - plContext); - - testGetAnchors(goodObject, equalObject); - testGetSetDate(goodObject, equalObject); - testGetSetCertChainCheckers(goodObject, equalObject); - testGetSetRevocationCheckers(goodObject, equalObject); - testGetSetResourceLimits(goodObject, equalObject); - - /* - * XXX testGetSetConstraints(goodObject); - */ - - testGetSetInitialPolicies(goodObject, oidAnyPolicy); - testGetSetInitialPolicies(equalObject, oidAnyPolicy); - testGetSetInitialPolicies(diffObject, oidNist1Policy); - testGetSetPolicyQualifiersRejected(goodObject, PKIX_FALSE); - testGetSetPolicyQualifiersRejected(equalObject, PKIX_FALSE); - testGetSetPolicyQualifiersRejected(diffObject, PKIX_TRUE); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - NULL, /* expectedAscii, */ - ProcessingParams, - PKIX_FALSE); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ProcessingParams"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/params/test_resourcelimits.c b/security/nss/cmd/libpkix/pkix/params/test_resourcelimits.c deleted file mode 100644 index 9299d4239..000000000 --- a/security/nss/cmd/libpkix/pkix/params/test_resourcelimits.c +++ /dev/null @@ -1,147 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_resourcelimits.c - * - * Test ResourceLimits Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ResourceLimits_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -int test_resourcelimits(int argc, char *argv[]) { - - PKIX_ResourceLimits *goodObject = NULL; - PKIX_ResourceLimits *equalObject = NULL; - PKIX_ResourceLimits *diffObject = NULL; - PKIX_UInt32 maxTime = 0; - PKIX_UInt32 maxFanout = 0; - PKIX_UInt32 maxDepth = 0; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *expectedAscii = - "[\n" - "\tMaxTime: 10\n" - "\tMaxFanout: 5\n" - "\tMaxDepth: 5\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("ResourceLimits"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_ResourceLimits_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create - (&goodObject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create - (&diffObject, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create - (&equalObject, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime - (goodObject, 10, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_GetMaxTime - (goodObject, &maxTime, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime - (equalObject, maxTime, plContext)); - maxTime++; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime - (diffObject, maxTime, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (goodObject, 5, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_GetMaxFanout - (goodObject, &maxFanout, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (equalObject, maxFanout, plContext)); - maxFanout++; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (diffObject, maxFanout, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (goodObject, 5, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_GetMaxDepth - (goodObject, &maxDepth, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (equalObject, maxDepth, plContext)); - maxDepth++; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (diffObject, maxDepth, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - ResourceLimits, - PKIX_FALSE); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ResourceLimits"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/params/test_trustanchor.c b/security/nss/cmd/libpkix/pkix/params/test_trustanchor.c deleted file mode 100644 index 6d4909304..000000000 --- a/security/nss/cmd/libpkix/pkix/params/test_trustanchor.c +++ /dev/null @@ -1,295 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_trustanchor.c - * - * Test TrustAnchor Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void createTrustAnchors( - char *dirName, - char *goodInput, - PKIX_TrustAnchor **goodObject, - PKIX_TrustAnchor **equalObject, - PKIX_TrustAnchor **diffObject) -{ - subTest("PKIX_TrustAnchor_CreateWithNameKeyPair <goodObject>"); - *goodObject = createTrustAnchor - (dirName, goodInput, PKIX_FALSE, plContext); - - subTest("PKIX_TrustAnchor_CreateWithNameKeyPair <equalObject>"); - *equalObject = createTrustAnchor - (dirName, goodInput, PKIX_FALSE, plContext); - - subTest("PKIX_TrustAnchor_CreateWithCert <diffObject>"); - *diffObject = createTrustAnchor - (dirName, goodInput, PKIX_TRUE, plContext); -} - -static -void testGetCAName( - PKIX_PL_Cert *diffCert, - PKIX_TrustAnchor *equalObject){ - - PKIX_PL_X500Name *diffCAName = NULL; - PKIX_PL_X500Name *equalCAName = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_TrustAnchor_GetCAName"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (diffCert, &diffCAName, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_GetCAName - (equalObject, &equalCAName, plContext)); - - testEqualsHelper((PKIX_PL_Object *)diffCAName, - (PKIX_PL_Object *)equalCAName, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(diffCAName); - PKIX_TEST_DECREF_AC(equalCAName); - - PKIX_TEST_RETURN(); -} - -static -void testGetCAPublicKey( - PKIX_PL_Cert *diffCert, - PKIX_TrustAnchor *equalObject){ - - PKIX_PL_PublicKey *diffPubKey = NULL; - PKIX_PL_PublicKey *equalPubKey = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_TrustAnchor_GetCAPublicKey"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (diffCert, &diffPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_GetCAPublicKey - (equalObject, &equalPubKey, plContext)); - - testEqualsHelper((PKIX_PL_Object *)diffPubKey, - (PKIX_PL_Object *)equalPubKey, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(diffPubKey); - PKIX_TEST_DECREF_AC(equalPubKey); - - PKIX_TEST_RETURN(); -} - -static -void testGetNameConstraints(char *dirName) -{ - PKIX_TrustAnchor *goodObject = NULL; - PKIX_TrustAnchor *equalObject = NULL; - PKIX_TrustAnchor *diffObject = NULL; - PKIX_PL_Cert *diffCert; - PKIX_PL_CertNameConstraints *diffNC = NULL; - PKIX_PL_CertNameConstraints *equalNC = NULL; - char *goodInput = "nameConstraintsDN5CACert.crt"; - char *expectedAscii = - "[\n" - "\tTrusted CA Name: CN=nameConstraints DN5 CA," - "O=Test Certificates,C=US\n" - "\tTrusted CA PublicKey: PKCS #1 RSA Encryption\n" - "\tInitial Name Constraints:[\n" - "\t\tPermitted Name: (OU=permittedSubtree1," - "O=Test Certificates,C=US)\n" - "\t\tExcluded Name: (OU=excludedSubtree1," - "OU=permittedSubtree1,O=Test Certificates,C=US)\n" - "\t]\n" - "\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - subTest("Create TrustAnchors and compare"); - - createTrustAnchors - (dirName, goodInput, &goodObject, &equalObject, &diffObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - TrustAnchor, - PKIX_TRUE); - - subTest("PKIX_TrustAnchor_GetTrustedCert"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_GetTrustedCert - (diffObject, &diffCert, plContext)); - - subTest("PKIX_PL_Cert_GetNameConstraints"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (diffCert, &diffNC, plContext)); - - subTest("PKIX_TrustAnchor_GetNameConstraints"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_GetNameConstraints - (equalObject, &equalNC, plContext)); - - testEqualsHelper((PKIX_PL_Object *)diffNC, - (PKIX_PL_Object *)equalNC, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(diffNC); - PKIX_TEST_DECREF_AC(equalNC); - PKIX_TEST_DECREF_BC(diffCert); - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - - PKIX_TEST_RETURN(); -} - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_TrustAnchor_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_trustanchor <NIST_FILES_DIR> <central-data-dir>\n\n"); -} - -int test_trustanchor(int argc, char *argv[]) { - - PKIX_TrustAnchor *goodObject = NULL; - PKIX_TrustAnchor *equalObject = NULL; - PKIX_TrustAnchor *diffObject = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *goodInput = "yassir2yassir"; - char *expectedAscii = - "[\n" - "\tTrusted CA Name: " - "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n"; - char *dirName = NULL; - char *dataCentralDir = NULL; - - PKIX_TEST_STD_VARS(); - - startTests("TrustAnchor"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 3) { - printUsage(); - return (0); - } - - dirName = argv[j+1]; - dataCentralDir = argv[j+2]; - - createTrustAnchors - (dataCentralDir, - goodInput, - &goodObject, - &equalObject, - &diffObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - TrustAnchor, - PKIX_TRUE); - - subTest("PKIX_TrustAnchor_GetTrustedCert"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_GetTrustedCert - (diffObject, &diffCert, plContext)); - - testGetCAName(diffCert, equalObject); - testGetCAPublicKey(diffCert, equalObject); - - testGetNameConstraints(dirName); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_TEST_DECREF_AC(diffCert); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("TrustAnchor"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/params/test_valparams.c b/security/nss/cmd/libpkix/pkix/params/test_valparams.c deleted file mode 100644 index 999fd95bc..000000000 --- a/security/nss/cmd/libpkix/pkix/params/test_valparams.c +++ /dev/null @@ -1,301 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_valparams.c - * - * Test ValidateParams Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ValidateParams_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testGetProcParams( - PKIX_ValidateParams *goodObject, - PKIX_ValidateParams *equalObject){ - - PKIX_ProcessingParams *goodProcParams = NULL; - PKIX_ProcessingParams *equalProcParams = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ValidateParams_GetProcessingParams"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (goodObject, &goodProcParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (equalObject, &equalProcParams, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)goodProcParams, - (PKIX_PL_Object *)equalProcParams, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodProcParams); - PKIX_TEST_DECREF_AC(equalProcParams); - - PKIX_TEST_RETURN(); -} - - -static -void testGetCertChain( - PKIX_ValidateParams *goodObject, - PKIX_ValidateParams *equalObject){ - - PKIX_List *goodChain = NULL; - PKIX_List *equalChain = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ValidateParams_GetCertChain"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetCertChain - (goodObject, &goodChain, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetCertChain - (equalObject, &equalChain, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)goodChain, - (PKIX_PL_Object *)equalChain, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodChain); - PKIX_TEST_DECREF_AC(equalChain); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -int test_valparams(int argc, char *argv[]) { - - PKIX_ValidateParams *goodObject = NULL; - PKIX_ValidateParams *equalObject = NULL; - PKIX_ValidateParams *diffObject = NULL; - PKIX_List *chain = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *dirName = NULL; - - char *goodInput = "yassir2yassir"; - char *diffInput = "yassir2bcn"; - - char *expectedAscii = - "[\n" - "\tProcessing Params: \n" - "\t********BEGIN PROCESSING PARAMS********\n" - "\t\t" - "[\n" - "\tTrust Anchors: \n" - "\t********BEGIN LIST OF TRUST ANCHORS********\n" - "\t\t" -"([\n" - "\tTrusted CA Name: " - "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - ", [\n" - "\tTrusted CA Name: OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - ")\n" - "\t********END LIST OF TRUST ANCHORS********\n" - "\tDate: \t\t(null)\n" - "\tTarget Constraints: (null)\n" - "\tInitial Policies: (null)\n" - "\tQualifiers Rejected: FALSE\n" - "\tCert Stores: (EMPTY)\n" - "\tCRL Checking Enabled: 0\n" - "]\n" - "\n" - "\t********END PROCESSING PARAMS********\n" - "\tChain: \t\t" - "([\n" - "\tVersion: v3\n" - "\tSerialNumber: 37bc66ec\n" - "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tSubject: OU=bcn,OU=east,O=sun,C=us\n" - "\tValidity: [From: Thu Aug 19 16:19:56 1999\n" - "\t To: Fri Aug 18 16:19:56 2000]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ", [\n" - "\tVersion: v3\n" - "\tSerialNumber: 37bc65af\n" - "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tSubject: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tValidity: [From: Thu Aug 19 16:14:39 1999\n" - "\t To: Fri Aug 18 16:14:39 2000]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ")\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("ValidateParams"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dirName = argv[j+1]; - - subTest("PKIX_ValidateParams_Create"); - chain = createCertChain(dirName, diffInput, goodInput, plContext); - goodObject = createValidateParams - (dirName, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - equalObject = createValidateParams - (dirName, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - diffObject = createValidateParams - (dirName, - diffInput, - goodInput, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - testGetProcParams(goodObject, equalObject); - testGetCertChain(goodObject, equalObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - NULL, /* expectedAscii, */ - ValidateParams, - PKIX_FALSE); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_TEST_DECREF_AC(chain); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ValidateParams"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/results/Makefile b/security/nss/cmd/libpkix/pkix/results/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/results/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/results/manifest.mn b/security/nss/cmd/libpkix/pkix/results/manifest.mn deleted file mode 100755 index a043f672e..000000000 --- a/security/nss/cmd/libpkix/pkix/results/manifest.mn +++ /dev/null @@ -1,56 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_buildresult.c \ - test_policynode.c \ - test_verifynode.c \ - test_valresult.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolresults - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/results/test_buildresult.c b/security/nss/cmd/libpkix/pkix/results/test_buildresult.c deleted file mode 100644 index 89bd9c531..000000000 --- a/security/nss/cmd/libpkix/pkix/results/test_buildresult.c +++ /dev/null @@ -1,251 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_buildresult.c - * - * Test BuildResult Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_BuildResult_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testGetValidateResult( - PKIX_BuildResult *goodObject, - PKIX_BuildResult *equalObject){ - - PKIX_ValidateResult *goodValResult = NULL; - PKIX_ValidateResult *equalValResult = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_BuildResult_GetValidateResult"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildResult_GetValidateResult - (goodObject, &goodValResult, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildResult_GetValidateResult - (equalObject, &equalValResult, NULL)); - - testEqualsHelper - ((PKIX_PL_Object *)goodValResult, - (PKIX_PL_Object *)equalValResult, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodValResult); - PKIX_TEST_DECREF_AC(equalValResult); - - PKIX_TEST_RETURN(); -} - -static -void testGetCertChain( - PKIX_BuildResult *goodObject, - PKIX_BuildResult *equalObject){ - - PKIX_List *goodChain = NULL; - PKIX_List *equalChain = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_BuildResult_GetCertChain"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildResult_GetCertChain - (goodObject, &goodChain, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildResult_GetCertChain - (equalObject, &equalChain, NULL)); - - testEqualsHelper - ((PKIX_PL_Object *)goodChain, - (PKIX_PL_Object *)equalChain, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodChain); - PKIX_TEST_DECREF_AC(equalChain); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -int test_buildresult(int argc, char *argv[]) { - - PKIX_BuildResult *goodObject = NULL; - PKIX_BuildResult *equalObject = NULL; - PKIX_BuildResult *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - char *dirName = NULL; - PKIX_UInt32 j = 0; - - char *goodInput = "yassir2yassir"; - char *diffInput = "yassir2bcn"; - - char *expectedAscii = - "[\n" - "\tValidateResult: \t\t" - "[\n" - "\tTrustAnchor: \t\t" - "[\n" - "\tTrusted CA Name: " - "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - "\tPubKey: \t\t" - "ANSI X9.57 DSA Signature\n" - "\tPolicyTree: \t\t(null)\n" - "]\n" - "\tCertChain: \t\t(" - "[\n" - "\tVersion: v3\n" - "\tSerialNumber: 37bc65af\n" - "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tSubject: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tValidity: [From: Thu Aug 19 16:14:39 1999\n" - "\t To: Fri Aug 18 16:14:39 2000]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ", [\n" - "\tVersion: v3\n" - "\tSerialNumber: 37bc66ec\n" - "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tSubject: OU=bcn,OU=east,O=sun,C=us\n" - "\tValidity: [From: Thu Aug 19 16:19:56 1999\n" - "\t To: Fri Aug 18 16:19:56 2000]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ")\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("BuildResult"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dirName = argv[j+1]; - - subTest("pkix_BuildResult_Create"); - - goodObject = createBuildResult - (dirName, goodInput, diffInput, goodInput, diffInput, plContext); - equalObject = createBuildResult - (dirName, goodInput, diffInput, goodInput, diffInput, plContext); - diffObject = createBuildResult - (dirName, diffInput, goodInput, diffInput, goodInput, plContext); - - testGetValidateResult(goodObject, equalObject); - testGetCertChain(goodObject, equalObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - NULL, /* expectedAscii, */ - BuildResult, - PKIX_FALSE); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("BuildResult"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/results/test_policynode.c b/security/nss/cmd/libpkix/pkix/results/test_policynode.c deleted file mode 100644 index 8229a337f..000000000 --- a/security/nss/cmd/libpkix/pkix/results/test_policynode.c +++ /dev/null @@ -1,712 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_policynode.c - * - * Test PolicyNode Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -test_GetChildren( - PKIX_PolicyNode *goodNode, - PKIX_PolicyNode *equalNode, - PKIX_PolicyNode *diffNode) -{ - -/* - * Caution: be careful where you insert this test. PKIX_PolicyNode_GetChildren - * is required by the API to return an immutable List, and it does it by setting - * the List immutable. We don't make a copy because the assumption is that - * certificate and policy processing have been completed before the user gets at - * the public API. So subsequent tests of functions that modify the policy tree, - * such as Prune, will fail if called after the execution of this test. - */ - - PKIX_Boolean isImmutable = PKIX_FALSE; - PKIX_List *goodList = NULL; - PKIX_List *equalList = NULL; - PKIX_List *diffList = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_GetChildren"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetChildren - (goodNode, &goodList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetChildren - (equalNode, &equalList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetChildren - (diffNode, &diffList, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodList, equalList, diffList, NULL, List, NULL); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsImmutable - (goodList, &isImmutable, plContext)); - - if (isImmutable != PKIX_TRUE) { - testError("PKIX_PolicyNode_GetChildren returned a mutable List"); - } - -cleanup: - PKIX_TEST_DECREF_AC(goodList); - PKIX_TEST_DECREF_AC(equalList); - PKIX_TEST_DECREF_AC(diffList); - - PKIX_TEST_RETURN(); -} - -static void -test_GetParent( - PKIX_PolicyNode *goodNode, - PKIX_PolicyNode *equalNode, - PKIX_PolicyNode *diffNode, - char *expectedAscii) -{ - PKIX_PolicyNode *goodParent = NULL; - PKIX_PolicyNode *equalParent = NULL; - PKIX_PolicyNode *diffParent = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_GetParent"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetParent - (goodNode, &goodParent, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetParent - (equalNode, &equalParent, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetParent - (diffNode, &diffParent, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodParent, - equalParent, - diffParent, - expectedAscii, - CertPolicyNode, - NULL); - -cleanup: - PKIX_TEST_DECREF_AC(goodParent); - PKIX_TEST_DECREF_AC(equalParent); - PKIX_TEST_DECREF_AC(diffParent); - - PKIX_TEST_RETURN(); -} - -/* - * This test is the same as testDuplicateHelper, except that it - * produces a more useful "Actual value" and "Expected value" - * in the case of an unexpected mismatch. - */ -static void -test_DuplicateHelper(PKIX_PolicyNode *object, void *plContext) -{ - PKIX_PolicyNode *newObject = NULL; - PKIX_Boolean cmpResult; - PKIX_PL_String *original = NULL; - PKIX_PL_String *copy = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("testing pkix_PolicyNode_Duplicate"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)object, - (PKIX_PL_Object **)&newObject, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)object, - (PKIX_PL_Object *)newObject, - &cmpResult, - plContext)); - - if (!cmpResult){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)object, &original, plContext)); - testError("unexpected mismatch"); - (void) printf - ("original value:\t%s\n", original->escAsciiString); - - if (newObject) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)newObject, ©, plContext)); - (void) printf - ("copy value:\t%s\n", copy->escAsciiString); - } else { - (void) printf("copy value:\t(NULL)\n"); - } - } - -cleanup: - - PKIX_TEST_DECREF_AC(newObject); - PKIX_TEST_DECREF_AC(original); - PKIX_TEST_DECREF_AC(copy); - - PKIX_TEST_RETURN(); -} - -static void -test_GetValidPolicy( - PKIX_PolicyNode *goodNode, - PKIX_PolicyNode *equalNode, - PKIX_PolicyNode *diffNode, - char *expectedAscii) -{ - PKIX_PL_OID *goodPolicy = NULL; - PKIX_PL_OID *equalPolicy = NULL; - PKIX_PL_OID *diffPolicy = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_GetValidPolicy"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetValidPolicy - (goodNode, &goodPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetValidPolicy - (equalNode, &equalPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetValidPolicy - (diffNode, &diffPolicy, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodPolicy, equalPolicy, diffPolicy, expectedAscii, OID, NULL); - -cleanup: - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(diffPolicy); - - - PKIX_TEST_RETURN(); -} - -static void test_GetPolicyQualifiers( - PKIX_PolicyNode *goodNode, - PKIX_PolicyNode *equalNode, - PKIX_PolicyNode *diffNode, - char *expectedAscii) -{ - PKIX_Boolean isImmutable = PKIX_FALSE; - PKIX_List *goodList = NULL; - PKIX_List *equalList = NULL; - PKIX_List *diffList = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_GetPolicyQualifiers"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetPolicyQualifiers - (goodNode, &goodList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetPolicyQualifiers - (equalNode, &equalList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetPolicyQualifiers - (diffNode, &diffList, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodList, equalList, diffList, expectedAscii, List, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsImmutable - (goodList, &isImmutable, plContext)); - - if (isImmutable != PKIX_TRUE) { - testError - ("PKIX_PolicyNode_GetPolicyQualifiers returned a mutable List"); - } -cleanup: - PKIX_TEST_DECREF_AC(goodList); - PKIX_TEST_DECREF_AC(equalList); - PKIX_TEST_DECREF_AC(diffList); - - PKIX_TEST_RETURN(); -} - -static void test_GetExpectedPolicies( - PKIX_PolicyNode *goodNode, - PKIX_PolicyNode *equalNode, - PKIX_PolicyNode *diffNode, - char *expectedAscii) -{ - PKIX_Boolean isImmutable = PKIX_FALSE; - PKIX_List *goodList = NULL; - PKIX_List *equalList = NULL; - PKIX_List *diffList = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_GetExpectedPolicies"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetExpectedPolicies - (goodNode, &goodList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetExpectedPolicies - (equalNode, &equalList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetExpectedPolicies - (diffNode, &diffList, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodList, equalList, diffList, expectedAscii, List, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsImmutable - (goodList, &isImmutable, plContext)); - - if (isImmutable != PKIX_TRUE) { - testError - ("PKIX_PolicyNode_GetExpectedPolicies returned a mutable List"); - } -cleanup: - PKIX_TEST_DECREF_AC(goodList); - PKIX_TEST_DECREF_AC(equalList); - PKIX_TEST_DECREF_AC(diffList); - - PKIX_TEST_RETURN(); -} - -static void test_IsCritical( - PKIX_PolicyNode *goodNode, - PKIX_PolicyNode *equalNode, - PKIX_PolicyNode *diffNode) -{ - PKIX_Boolean goodBool = PKIX_FALSE; - PKIX_Boolean equalBool = PKIX_FALSE; - PKIX_Boolean diffBool = PKIX_FALSE; - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_IsCritical"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_IsCritical - (goodNode, &goodBool, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_IsCritical - (equalNode, &equalBool, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_IsCritical - (diffNode, &diffBool, plContext)); - - if ((!goodBool) || (!equalBool) || (diffBool)) { - testError("IsCritical returned unexpected value"); - } -cleanup: - - PKIX_TEST_RETURN(); -} - -static void test_GetDepth( - PKIX_PolicyNode *depth1Node, - PKIX_PolicyNode *depth2Node, - PKIX_PolicyNode *depth3Node) -{ - PKIX_UInt32 depth1 = 0; - PKIX_UInt32 depth2 = 0; - PKIX_UInt32 depth3 = 0; - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PolicyNode_GetDepth"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetDepth - (depth1Node, &depth1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetDepth - (depth2Node, &depth2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PolicyNode_GetDepth - (depth3Node, &depth3, plContext)); - - if ((depth1 != 1) || (depth2 != 2) || (depth3 != 3)) { - testError("GetDepth returned unexpected value"); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_policynode <NIST_FILES_DIR> \n\n"); -} - -int test_policynode(int argc, char *argv[]) { - - /* - * Create a tree with parent = anyPolicy, - * child1 with Nist1+Nist2, child2 with Nist1. - * Give each child another child, with policies Nist2 - * and Nist1, respectively. Pruning with a depth of two - * should have no effect. Give one of the children - * another child. Then pruning with a depth of three - * should reduce the tree to a single strand, as child1 - * and child3 are removed. - * - * parent (anyPolicy) - * / \ - * child1(Nist1+Nist2) child2(Nist1) - * | | - * child3(Nist2) child4(Nist1) - * | - * child5(Nist1) - * - */ - char *asciiAnyPolicy = "2.5.29.32.0"; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_CertPolicyInfo *nist1Policy = NULL; - PKIX_PL_CertPolicyInfo *nist2Policy = NULL; - PKIX_List *policyQualifierList = NULL; - PKIX_PL_OID *oidAnyPolicy = NULL; - PKIX_PL_OID *oidNist1Policy = NULL; - PKIX_PL_OID *oidNist2Policy = NULL; - PKIX_List *expectedAnyList = NULL; - PKIX_List *expectedNist1List = NULL; - PKIX_List *expectedNist2List = NULL; - PKIX_List *expectedNist1Nist2List = NULL; - PKIX_List *emptyList = NULL; - PKIX_PolicyNode *parentNode = NULL; - PKIX_PolicyNode *childNode1 = NULL; - PKIX_PolicyNode *childNode2 = NULL; - PKIX_PolicyNode *childNode3 = NULL; - PKIX_PolicyNode *childNode4 = NULL; - PKIX_PolicyNode *childNode5 = NULL; - PKIX_PL_String *parentString = NULL; - PKIX_Boolean pDelete = PKIX_FALSE; - char *expectedParentAscii = - "{2.16.840.1.101.3.2.1.48.2,(1.3.6.1.5.5.7.2.2:[30 5C " - "1A 5A 71 31 3A 20 20 54 68 69 73 20 69 73 20 74 68 65" - " 20 75 73 65 72 20 6E 6F 74 69 63 65 20 66 72 6F 6D 2" - "0 71 75 61 6C 69 66 69 65 72 20 31 2E 20 20 54 68 69 " - "73 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 20 66" - " 6F 72 20 74 65 73 74 20 70 75 72 70 6F 73 65 73 20 6" - "F 6E 6C 79]),Critical,(2.16.840.1.101.3.2.1.48.1[(1.3" - ".6.1.5.5.7.2.2:[30 5C 1A 5A 71 31 3A 20 20 54 68 69 7" - "3 20 69 73 20 74 68 65 20 75 73 65 72 20 6E 6F 74 69 " - "63 65 20 66 72 6F 6D 20 71 75 61 6C 69 66 69 65 72 20" - " 31 2E 20 20 54 68 69 73 20 63 65 72 74 69 66 69 63 6" - "1 74 65 20 69 73 20 66 6F 72 20 74 65 73 74 20 70 75 " - "72 70 6F 73 65 73 20 6F 6E 6C 79])], 2.16.840.1.101.3" - ".2.1.48.2[(1.3.6.1.5.5.7.2.2:[30 5A 1A 58 71 32 3A 20" - " 20 54 68 69 73 20 69 73 20 74 68 65 20 75 73 65 72 2" - "0 6E 6F 74 69 63 65 20 66 72 6F 6D 20 71 75 61 6C 69 " - "66 69 65 72 20 32 2E 20 20 54 68 69 73 20 75 73 65 72" - " 20 6E 6F 74 69 63 65 20 73 68 6F 75 6C 64 20 6E 6F 7" - "4 20 62 65 20 64 69 73 70 6C 61 79 65 64])]),1}\n" - ". {2.16.840.1.101.3.2.1.48.2,(1.3.6.1.5.5.7.2.2:[30 5" - "C 1A 5A 71 31 3A 20 20 54 68 69 73 20 69 73 20 74 68 " - "65 20 75 73 65 72 20 6E 6F 74 69 63 65 20 66 72 6F 6D" - " 20 71 75 61 6C 69 66 69 65 72 20 31 2E 20 20 54 68 6" - "9 73 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 20 " - "66 6F 72 20 74 65 73 74 20 70 75 72 70 6F 73 65 73 20" - " 6F 6E 6C 79]),Critical,(2.16.840.1.101.3.2.1.48.2),2}"; - char *expectedValidAscii = - "2.16.840.1.101.3.2.1.48.2"; - char *expectedQualifiersAscii = - /* "(1.3.6.1.5.5.7.2.2)"; */ - "(1.3.6.1.5.5.7.2.2:[30 5C 1A 5A 71 31 3A 20 20 54 68 " - "69 73 20 69 73 20 74 68 65 20 75 73 65 72 20 6E 6F 74" - " 69 63 65 20 66 72 6F 6D 20 71 75 61 6C 69 66 69 65 7" - "2 20 31 2E 20 20 54 68 69 73 20 63 65 72 74 69 66 69 " - "63 61 74 65 20 69 73 20 66 6F 72 20 74 65 73 74 20 70" - " 75 72 70 6F 73 65 73 20 6F 6E 6C 79])"; - char *expectedPoliciesAscii = - "(2.16.840.1.101.3.2.1.48.1)"; - char *expectedTree = - "{2.5.29.32.0,{},Critical,(2.5.29.32.0),0}\n" - ". {2.16.840.1.101.3.2.1.48.2,(1.3.6.1.5.5.7.2.2:[30 5" - "C 1A 5A 71 31 3A 20 20 54 68 69 73 20 69 73 20 74 68 " - "65 20 75 73 65 72 20 6E 6F 74 69 63 65 20 66 72 6F 6D" - " 20 71 75 61 6C 69 66 69 65 72 20 31 2E 20 20 54 68 6" - "9 73 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 20 " - "66 6F 72 20 74 65 73 74 20 70 75 72 70 6F 73 65 73 20" - " 6F 6E 6C 79]),Critical,(2.16.840.1.101.3.2.1.48.1[(1" - ".3.6.1.5.5.7.2.2:[30 5C 1A 5A 71 31 3A 20 20 54 68 69" - " 73 20 69 73 20 74 68 65 20 75 73 65 72 20 6E 6F 74 6" - "9 63 65 20 66 72 6F 6D 20 71 75 61 6C 69 66 69 65 72 " - "20 31 2E 20 20 54 68 69 73 20 63 65 72 74 69 66 69 63" - " 61 74 65 20 69 73 20 66 6F 72 20 74 65 73 74 20 70 7" - "5 72 70 6F 73 65 73 20 6F 6E 6C 79])], 2.16.840.1.101" - ".3.2.1.48.2[(1.3.6.1.5.5.7.2.2:[30 5A 1A 58 71 32 3A " - "20 20 54 68 69 73 20 69 73 20 74 68 65 20 75 73 65 72" - " 20 6E 6F 74 69 63 65 20 66 72 6F 6D 20 71 75 61 6C 6" - "9 66 69 65 72 20 32 2E 20 20 54 68 69 73 20 75 73 65 " - "72 20 6E 6F 74 69 63 65 20 73 68 6F 75 6C 64 20 6E 6F" - " 74 20 62 65 20 64 69 73 70 6C 61 79 65 64])]" - "),1}\n" - ". . {2.16.840.1.101.3.2.1.48.2,(1.3.6.1.5.5.7.2.2:[30" - " 5C 1A 5A 71 31 3A 20 20 54 68 69 73 20 69 73 20 74 6" - "8 65 20 75 73 65 72 20 6E 6F 74 69 63 65 20 66 72 6F " - "6D 20 71 75 61 6C 69 66 69 65 72 20 31 2E 20 20 54 68" - " 69 73 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 2" - "0 66 6F 72 20 74 65 73 74 20 70 75 72 70 6F 73 65 73 " - "20 6F 6E 6C 79]),Critical,(2.16.840.1.101.3.2.1.48.2)" - ",2}\n" - ". {2.16.840.1.101.3.2.1.48.1,(1.3.6.1.5.5.7.2.2:[30 5" - "C 1A 5A 71 31 3A 20 20 54 68 69 73 20 69 73 20 74 68 " - "65 20 75 73 65 72 20 6E 6F 74 69 63 65 20 66 72 6F 6D" - " 20 71 75 61 6C 69 66 69 65 72 20 31 2E 20 20 54 68 6" - "9 73 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 20 " - "66 6F 72 20 74 65 73 74 20 70 75 72 70 6F 73 65 73 20" - " 6F 6E 6C 79]),Critical,(2.16.840.1.101.3.2.1.48.1),1}\n" - ". . {2.16.840.1.101.3.2.1.48.1,(EMPTY),Not Critical," - "(2.16.840.1.101.3.2.1.48.1),2}\n" - ". . . {2.16.840.1.101.3.2.1.48.1,{},Critical,(2.16.84" - "0.1.101.3.2.1.48.1),3}"; - char *expectedPrunedTree = - "{2.5.29.32.0,{},Critical,(2.5.29.32.0),0}\n" - ". {2.16.840.1.101.3.2.1.48.1,(1.3.6.1.5.5.7.2.2:[30 5" - "C 1A 5A 71 31 3A 20 20 54 68 69 73 20 69 73 20 74 68 " - "65 20 75 73 65 72 20 6E 6F 74 69 63 65 20 66 72 6F 6D" - " 20 71 75 61 6C 69 66 69 65 72 20 31 2E 20 20 54 68 6" - "9 73 20 63 65 72 74 69 66 69 63 61 74 65 20 69 73 20 " - "66 6F 72 20 74 65 73 74 20 70 75 72 70 6F 73 65 73 20" - " 6F 6E 6C 79]),Critical,(2.16.840.1.101.3.2.1.48.1),1}\n" - ". . {2.16.840.1.101.3.2.1.48.1,(EMPTY),Not Critical," - "(2.16.840.1.101.3.2.1.48.1),2}\n" - ". . . {2.16.840.1.101.3.2.1.48.1,{},Critical,(2.16.84" - "0.1.101.3.2.1.48.1),3}"; - - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *dirName = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 2) { - printUsage(); - return (0); - } - - startTests("PolicyNode"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - dirName = argv[j+1]; - - subTest("Creating OID objects"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (asciiAnyPolicy, &oidAnyPolicy, plContext)); - - /* Read certificates to get real policies, qualifiers */ - - cert = createCert - (dirName, "UserNoticeQualifierTest16EE.crt", plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (cert, &expectedNist1Nist2List, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (expectedNist1Nist2List, - 0, - (PKIX_PL_Object **)&nist1Policy, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (expectedNist1Nist2List, - 1, - (PKIX_PL_Object **)&nist2Policy, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (nist1Policy, &policyQualifierList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (nist1Policy, &oidNist1Policy, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (nist2Policy, &oidNist2Policy, plContext)); - - subTest("Creating expectedPolicy List objects"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_Create(&expectedAnyList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_Create(&expectedNist1List, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_Create(&expectedNist2List, plContext)); - - - subTest("Populating expectedPolicy List objects"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (expectedAnyList, (PKIX_PL_Object *)oidAnyPolicy, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (expectedNist1List, - (PKIX_PL_Object *)oidNist1Policy, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (expectedNist2List, - (PKIX_PL_Object *)oidNist2Policy, - plContext)); - - subTest("Creating PolicyNode objects"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&emptyList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Create - (oidAnyPolicy, - NULL, - PKIX_TRUE, - expectedAnyList, - &parentNode, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Create - (oidNist2Policy, - policyQualifierList, - PKIX_TRUE, - expectedNist1Nist2List, - &childNode1, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Create - (oidNist1Policy, - policyQualifierList, - PKIX_TRUE, - expectedNist1List, - &childNode2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Create - (oidNist2Policy, - policyQualifierList, - PKIX_TRUE, - expectedNist2List, - &childNode3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Create - (oidNist1Policy, - emptyList, - PKIX_FALSE, - expectedNist1List, - &childNode4, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Create - (oidNist1Policy, - NULL, - PKIX_TRUE, - expectedNist1List, - &childNode5, - plContext)); - - subTest("Creating the PolicyNode tree"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_AddToParent - (parentNode, childNode1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_AddToParent - (parentNode, childNode2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_AddToParent - (childNode1, childNode3, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_AddToParent - (childNode2, childNode4, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_AddToParent - (childNode4, childNode5, plContext)); - - subTest("Displaying PolicyNode objects"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)parentNode, &parentString, plContext)); - (void) printf("parentNode is\n\t%s\n", parentString->escAsciiString); - - testToStringHelper - ((PKIX_PL_Object*)parentNode, expectedTree, plContext); - - test_DuplicateHelper(parentNode, plContext); - - test_GetParent(childNode3, childNode3, childNode4, expectedParentAscii); - test_GetValidPolicy - (childNode1, childNode3, parentNode, expectedValidAscii); - test_GetPolicyQualifiers - (childNode1, childNode3, childNode4, expectedQualifiersAscii); - test_GetExpectedPolicies - (childNode2, childNode4, childNode3, expectedPoliciesAscii); - test_IsCritical(childNode1, childNode2, childNode4); - test_GetDepth(childNode2, childNode4, childNode5); - - subTest("pkix_PolicyNode_Prune"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Prune - (parentNode, 2, &pDelete, plContext)); - - testToStringHelper - ((PKIX_PL_Object*)parentNode, expectedTree, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_PolicyNode_Prune - (parentNode, 3, &pDelete, plContext)); - - testToStringHelper - ((PKIX_PL_Object*)parentNode, expectedPrunedTree, plContext); - - test_GetChildren(parentNode, parentNode, childNode2); - -cleanup: - - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(nist1Policy); - PKIX_TEST_DECREF_AC(nist2Policy); - PKIX_TEST_DECREF_AC(policyQualifierList); - PKIX_TEST_DECREF_AC(oidAnyPolicy); - PKIX_TEST_DECREF_AC(oidNist1Policy); - PKIX_TEST_DECREF_AC(oidNist2Policy); - PKIX_TEST_DECREF_AC(expectedAnyList); - PKIX_TEST_DECREF_AC(expectedNist1List); - PKIX_TEST_DECREF_AC(expectedNist2List); - PKIX_TEST_DECREF_AC(expectedNist1Nist2List); - PKIX_TEST_DECREF_AC(emptyList); - PKIX_TEST_DECREF_AC(parentNode); - PKIX_TEST_DECREF_AC(childNode1); - PKIX_TEST_DECREF_AC(childNode2); - PKIX_TEST_DECREF_AC(childNode3); - PKIX_TEST_DECREF_AC(childNode4); - PKIX_TEST_DECREF_AC(childNode5); - PKIX_TEST_DECREF_AC(parentString); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("PolicyNode"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/results/test_valresult.c b/security/nss/cmd/libpkix/pkix/results/test_valresult.c deleted file mode 100644 index 6633c5529..000000000 --- a/security/nss/cmd/libpkix/pkix/results/test_valresult.c +++ /dev/null @@ -1,240 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_valresult.c - * - * Test ValidateResult Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ValidateResult_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testGetPublicKey( - PKIX_ValidateResult *goodObject, - PKIX_ValidateResult *equalObject){ - - PKIX_PL_PublicKey *goodPubKey = NULL; - PKIX_PL_PublicKey *equalPubKey = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ValidateResult_GetPublicKey"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetPublicKey - (goodObject, &goodPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetPublicKey - (equalObject, &equalPubKey, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)goodPubKey, - (PKIX_PL_Object *)equalPubKey, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodPubKey); - PKIX_TEST_DECREF_AC(equalPubKey); - - PKIX_TEST_RETURN(); -} - -static -void testGetTrustAnchor( - PKIX_ValidateResult *goodObject, - PKIX_ValidateResult *equalObject){ - - PKIX_TrustAnchor *goodAnchor = NULL; - PKIX_TrustAnchor *equalAnchor = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ValidateResult_GetTrustAnchor"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetTrustAnchor - (goodObject, &goodAnchor, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetTrustAnchor - (equalObject, &equalAnchor, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)goodAnchor, - (PKIX_PL_Object *)equalAnchor, - PKIX_TRUE, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodAnchor); - PKIX_TEST_DECREF_AC(equalAnchor); - - PKIX_TEST_RETURN(); -} - -static -void testGetPolicyTree( - PKIX_ValidateResult *goodObject, - PKIX_ValidateResult *equalObject){ - - PKIX_PolicyNode *goodTree = NULL; - PKIX_PolicyNode *equalTree = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_ValidateResult_GetPolicyTree"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetPolicyTree - (goodObject, &goodTree, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetPolicyTree - (equalObject, &equalTree, plContext)); - - if (goodTree) { - testEqualsHelper - ((PKIX_PL_Object *)goodTree, - (PKIX_PL_Object *)equalTree, - PKIX_TRUE, - plContext); - } else if (equalTree) { - pkixTestErrorMsg = "Mismatch: NULL and non-NULL Policy Trees"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodTree); - PKIX_TEST_DECREF_AC(equalTree); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -int test_valresult(int argc, char *argv[]) { - - PKIX_ValidateResult *goodObject = NULL; - PKIX_ValidateResult *equalObject = NULL; - PKIX_ValidateResult *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *goodInput = "yassir2yassir"; - char *diffInput = "yassir2bcn"; - char *dirName = NULL; - - char *expectedAscii = - "[\n" - "\tTrustAnchor: \t\t" - "[\n" - "\tTrusted CA Name: " - "CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tTrusted CA PublicKey: ANSI X9.57 DSA Signature\n" - "\tInitial Name Constraints:(null)\n" - "]\n" - "\tPubKey: \t\t" - "ANSI X9.57 DSA Signature\n" - "\tPolicyTree: \t\t(null)\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("ValidateResult"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dirName = argv[j+1]; - - subTest("pkix_ValidateResult_Create"); - - goodObject = createValidateResult - (dirName, goodInput, diffInput, plContext); - equalObject = createValidateResult - (dirName, goodInput, diffInput, plContext); - diffObject = createValidateResult - (dirName, diffInput, goodInput, plContext); - - testGetPublicKey(goodObject, equalObject); - testGetTrustAnchor(goodObject, equalObject); - testGetPolicyTree(goodObject, equalObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - ValidateResult, - PKIX_FALSE); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ValidateResult"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/results/test_verifynode.c b/security/nss/cmd/libpkix/pkix/results/test_verifynode.c deleted file mode 100644 index 849c1d13d..000000000 --- a/security/nss/cmd/libpkix/pkix/results/test_verifynode.c +++ /dev/null @@ -1,153 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_verifynode.c - * - * Test VerifyNode Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_verifynode path cert1 cert2 cert3\n\n"); -} - -int test_verifynode(int argc, char *argv[]) { - - /* - * Create a tree with parent = cert1, child=cert2, grandchild=cert3 - */ - PKIX_PL_Cert *cert1 = NULL; - PKIX_PL_Cert *cert2 = NULL; - PKIX_PL_Cert *cert3 = NULL; - PKIX_VerifyNode *parentNode = NULL; - PKIX_VerifyNode *childNode = NULL; - PKIX_VerifyNode *grandChildNode = NULL; - PKIX_PL_String *parentString = NULL; - - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *dirName = NULL; - char *twoNodeAscii = "CERT[Issuer:CN=Trust Anchor,O=Test Cert" - "ificates,C=US, Subject:CN=Trust Anchor,O=Test Certif" - "icates,C=US], depth=0, error=(null)\n. CERT[Issuer:C" - "N=Trust Anchor,O=Test Certificates,C=US, Subject:CN=" - "Good CA,O=Test Certificates,C=US], depth=1, error=(null)"; - char *threeNodeAscii = "CERT[Issuer:CN=Trust Anchor,O=Test Ce" - "rtificates,C=US, Subject:CN=Trust Anchor,O=Test Cert" - "ificates,C=US], depth=0, error=(null)\n. CERT[Issuer" - ":CN=Trust Anchor,O=Test Certificates,C=US, Subject:C" - "N=Good CA,O=Test Certificates,C=US], depth=1, error=" - "(null)\n. . CERT[Issuer:CN=Good CA,O=Test Certificat" - "es,C=US, Subject:CN=Valid EE Certificate Test1,O=Tes" - "t Certificates,C=US], depth=2, error=(null)"; - - PKIX_TEST_STD_VARS(); - - if (argc < 3) { - printUsage(); - return (0); - } - - startTests("VerifyNode"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - dirName = argv[++j]; - - subTest("Creating Certs"); - - cert1 = createCert - (dirName, argv[++j], plContext); - - cert2 = createCert - (dirName, argv[++j], plContext); - - cert3 = createCert - (dirName, argv[++j], plContext); - - subTest("Creating VerifyNode objects"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_VerifyNode_Create - (cert1, 0, NULL, &parentNode, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_VerifyNode_Create - (cert2, 1, NULL, &childNode, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_VerifyNode_Create - (cert3, 2, NULL, &grandChildNode, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_VerifyNode_AddToChain - (parentNode, childNode, plContext)); - - subTest("Creating VerifyNode ToString objects"); - - testToStringHelper - ((PKIX_PL_Object *)parentNode, twoNodeAscii, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_VerifyNode_AddToChain - (parentNode, grandChildNode, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)parentNode, &parentString, plContext)); - (void) printf("parentNode is\n\t%s\n", parentString->escAsciiString); - - testToStringHelper - ((PKIX_PL_Object *)parentNode, threeNodeAscii, plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(cert1); - PKIX_TEST_DECREF_AC(cert2); - PKIX_TEST_DECREF_AC(parentNode); - PKIX_TEST_DECREF_AC(childNode); - PKIX_TEST_DECREF_AC(parentString); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("VerifyNode"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/store/Makefile b/security/nss/cmd/libpkix/pkix/store/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/store/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/store/manifest.mn b/security/nss/cmd/libpkix/pkix/store/manifest.mn deleted file mode 100755 index 813a7902a..000000000 --- a/security/nss/cmd/libpkix/pkix/store/manifest.mn +++ /dev/null @@ -1,52 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_store.c - -LIBRARY_NAME=pkixtoolstore - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/store/test_store.c b/security/nss/cmd/libpkix/pkix/store/test_store.c deleted file mode 100755 index d54b7f9a2..000000000 --- a/security/nss/cmd/libpkix/pkix/store/test_store.c +++ /dev/null @@ -1,229 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_certstore.c - * - * Test CertStore Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -PKIX_Error *testCRLCallback( - PKIX_CertStore *store, - PKIX_CRLSelector *selector, - void **pNBIOContext, - PKIX_List **pCrls, /* list of PKIX_PL_Crl */ - void *plContext) -{ - return (0); -} - -static -PKIX_Error *testCRLContinue( - PKIX_CertStore *store, - PKIX_CRLSelector *selector, - void **pNBIOContext, - PKIX_List **pCrls, /* list of PKIX_PL_Crl */ - void *plContext) -{ - return (0); -} - -static -PKIX_Error *testCertCallback( - PKIX_CertStore *store, - PKIX_CertSelector *selector, - void **pNBIOContext, - PKIX_List **pCerts, /* list of PKIX_PL_Cert */ - void *plContext) -{ - return (0); -} - -static -PKIX_Error *testCertContinue( - PKIX_CertStore *store, - PKIX_CertSelector *selector, - void **pNBIOContext, - PKIX_List **pCerts, /* list of PKIX_PL_Cert */ - void *plContext) -{ - return (0); -} - -static char *catDirName(char *platform, char *dir, void *plContext) -{ - char *pathName = NULL; - PKIX_UInt32 dirLen; - PKIX_UInt32 platformLen; - - PKIX_TEST_STD_VARS(); - - dirLen = PL_strlen(dir); - platformLen = PL_strlen(platform); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (platformLen + dirLen + 2, (void **)&pathName, plContext)); - - PL_strcpy(pathName, platform); - PL_strcat(pathName, "/"); - PL_strcat(pathName, dir); - -cleanup: - - PKIX_TEST_RETURN(); - - return (pathName); -} - -static -void testCertStore(char *crlDir) -{ - PKIX_PL_String *dirString = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_PL_Object *getCertStoreContext = NULL; - PKIX_CertStore_CertCallback certCallback = NULL; - PKIX_CertStore_CRLCallback crlCallback = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - crlDir, - 0, - &dirString, - plContext)); - - subTest("PKIX_CertStore_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_Create - (testCertCallback, - testCRLCallback, - testCertContinue, - testCRLContinue, - NULL, /* trustCallback */ - (PKIX_PL_Object *) dirString, - PKIX_TRUE, /* cacheFlag */ - PKIX_TRUE, /* local */ - &certStore, - plContext)); - - subTest("PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, plContext)); - - if (certCallback != testCertCallback) { - testError("PKIX_CertStore_GetCertCallback unexpected mismatch"); - } - - subTest("PKIX_CertStore_GetCRLCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCRLCallback - (certStore, &crlCallback, plContext)); - - if (crlCallback != testCRLCallback) { - testError("PKIX_CertStore_GetCRLCallback unexpected mismatch"); - } - - subTest("PKIX_CertStore_GetCertStoreContext"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertStore_GetCertStoreContext - (certStore, &getCertStoreContext, plContext)); - - if ((PKIX_PL_Object *)dirString != getCertStoreContext) { - testError("PKIX_CertStore_GetCertStoreContext unexpected mismatch"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(getCertStoreContext); - - PKIX_TEST_RETURN(); -} - - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s testName <data-dir> <platform-dir>\n\n", pName); -} - -/* Functional tests for CertStore public functions */ - -int test_store(int argc, char *argv[]) { - - char *platformDir = NULL; - char *dataDir = NULL; - char *combinedDir = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < (3 + j)) { - printUsage(argv[0]); - return (0); - } - - startTests(argv[1 + j]); - - dataDir = argv[2 + j]; - platformDir = argv[3 + j]; - combinedDir = catDirName(platformDir, dataDir, plContext); - - testCertStore(combinedDir); - - -cleanup: - - pkixTestErrorResult = PKIX_PL_Free(combinedDir, plContext); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CertStore"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/Makefile b/security/nss/cmd/libpkix/pkix/top/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/top/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/top/manifest.mn b/security/nss/cmd/libpkix/pkix/top/manifest.mn deleted file mode 100755 index ba30cedb3..000000000 --- a/security/nss/cmd/libpkix/pkix/top/manifest.mn +++ /dev/null @@ -1,66 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_basicchecker.c \ - test_basicconstraintschecker.c \ - test_buildchain.c \ - test_buildchain_uchecker.c \ - test_buildchain_partialchain.c \ - test_buildchain_resourcelimits.c \ - test_customcrlchecker.c \ - test_defaultcrlchecker2stores.c \ - test_ocsp.c \ - test_policychecker.c \ - test_subjaltnamechecker.c \ - test_validatechain.c \ - test_validatechain_bc.c \ - test_validatechain_NB.c \ - $(NULL) - -LIBRARY_NAME=pkixtooltop - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/top/test_basicchecker.c b/security/nss/cmd/libpkix/pkix/top/test_basicchecker.c deleted file mode 100644 index f66fdf390..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_basicchecker.c +++ /dev/null @@ -1,276 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_basicchecker.c - * - * Test Basic Checking - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void testPass(char *dirName, char *goodInput, char *diffInput, char *dateAscii){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Basic-Common-Fields <pass>"); - /* - * Tests the Expiration, NameChaining, and Signature Checkers - */ - - chain = createCertChain(dirName, goodInput, diffInput, plContext); - - valParams = createValidateParams - (dirName, - goodInput, - diffInput, - dateAscii, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - -cleanup: - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_TEST_RETURN(); -} - -static -void testNameChainingFail( - char *dirName, - char *goodInput, - char *diffInput, - char *dateAscii) -{ - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("NameChaining <fail>"); - - chain = createCertChain(dirName, diffInput, goodInput, plContext); - - valParams = createValidateParams - (dirName, - goodInput, - diffInput, - dateAscii, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_TEST_RETURN(); -} - -static -void testDateFail(char *dirName, char *goodInput, char *diffInput){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - - PKIX_TEST_STD_VARS(); - - chain = createCertChain(dirName, goodInput, diffInput, plContext); - - subTest("Expiration <fail>"); - valParams = createValidateParams - (dirName, - goodInput, - diffInput, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_TEST_RETURN(); -} - -static -void testSignatureFail( - char *dirName, - char *goodInput, - char *diffInput, - char *dateAscii) -{ - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Signature <fail>"); - - chain = createCertChain(dirName, diffInput, goodInput, plContext); - - valParams = createValidateParams - (dirName, - goodInput, - diffInput, - dateAscii, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <central-data-dir>\n\n", pName); -} - -int test_basicchecker(int argc, char *argv[]) { - - char *goodInput = "yassir2yassir"; - char *diffInput = "yassir2bcn"; - char *dateAscii = "991201000000Z"; - char *dirName = NULL; - PKIX_UInt32 j = 0; - PKIX_UInt32 actualMinorVersion; - - PKIX_TEST_STD_VARS(); - - startTests("SignatureChecker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 2){ - printUsage(argv[0]); - return (0); - } - - dirName = argv[j+1]; - - /* The NameChaining, Expiration, and Signature Checkers all pass */ - testPass(dirName, goodInput, diffInput, dateAscii); - - /* Individual Checkers fail */ - testNameChainingFail(dirName, goodInput, diffInput, dateAscii); - testDateFail(dirName, goodInput, diffInput); - - /* - * XXX - * since the signature check is done last, we need to create - * certs whose name chaining passes, but their signatures fail; - * we currently don't have any such certs. - */ - /* testSignatureFail(goodInput, diffInput, dateAscii); */ - - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("SignatureChecker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c b/security/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c deleted file mode 100644 index fcaf2d966..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_basicconstraintschecker.c +++ /dev/null @@ -1,177 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_basicconstraintschecker.c - * - * Test Basic Constraints Checking - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_MAX_CERTS 10 - -static void *plContext = NULL; - -static -void printUsage1(char *pName){ - printf("\nUSAGE: %s test-name [ENE|EE] ", pName); - printf("cert [certs].\n"); -} - -static -void printUsageMax(PKIX_UInt32 numCerts){ - printf("\nUSAGE ERROR: number of certs %d exceed maximum %d\n", - numCerts, PKIX_TEST_MAX_CERTS); -} - -int test_basicconstraintschecker(int argc, char *argv[]){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - char *certNames[PKIX_TEST_MAX_CERTS]; - PKIX_PL_Cert *certs[PKIX_TEST_MAX_CERTS]; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_Boolean testValid = PKIX_FALSE; - char *dirName = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 4){ - printUsage1(argv[0]); - return (0); - } - - startTests("BasicConstraintsChecker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage1(argv[0]); - return (0); - } - - dirName = argv[3+j]; - - chainLength = (argc - j) - 4; - if (chainLength > PKIX_TEST_MAX_CERTS) { - printUsageMax(chainLength); - } - - for (i = 0; i < chainLength; i++) { - certNames[i] = argv[(4+j)+i]; - certs[i] = NULL; - } - - subTest(argv[1+j]); - - subTest("Basic-Constraints - Create Cert Chain"); - - chain = createCertChainPlus - (dirName, certNames, certs, chainLength, plContext); - - /* - * Error occurs when creating Cert, this is critical and test - * should not continue. Since we expect error, we assume this - * error is the one that is expected, so undo the error count. - * - * This work needs future enhancement. We will introduce another - * flag ESE, in addition to the existing EE(expect validation - * error) and ENE(expect no validation error). ESE stands for - * "expect setup error". When running with ESE, if any of the setup - * calls such creating Cert Chain fails, the test can end and - * considered to be successful. - */ - if (testValid == PKIX_FALSE && chain == NULL) { - testErrorUndo("Cert Error - Create failed"); - goto cleanup; - } - - subTest("Basic-Constraints - Create Params"); - - valParams = createValidateParams - (dirName, - argv[4+j], - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("Basic-Constraints - Validate Chain"); - - if (testValid == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } - -cleanup: - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("BasicConstraintsChecker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_buildchain.c b/security/nss/cmd/libpkix/pkix/top/test_buildchain.c deleted file mode 100644 index 1f22e4f6a..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_buildchain.c +++ /dev/null @@ -1,504 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_buildchain.c - * - * Test BuildChain function - * - */ - -/* #define debuggingWithoutRevocation */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define LDAP_PORT 389 -static PKIX_Boolean usebind = PKIX_FALSE; -static PKIX_Boolean useLDAP = PKIX_FALSE; -static char buf[PR_NETDB_BUF_SIZE]; -static char *serverName = NULL; -static char *sepPtr = NULL; -static PRNetAddr netAddr; -static PRHostEnt hostent; -static PKIX_UInt32 portNum = 0; -static PRIntn hostenum = 0; -static PRStatus prstatus = PR_FAILURE; -static void *ipaddr = NULL; - - -static void *plContext = NULL; - -static void printUsage(void) { - (void) printf("\nUSAGE:\ttest_buildchain [-arenas] [usebind] " - "servername[:port] <testName> [ENE|EE]\n" - "\t <certStoreDirectory> <targetCert>" - " <intermediate Certs...> <trustedCert>\n\n"); - (void) printf - ("Builds a chain of certificates from <targetCert> to <trustedCert>\n" - "using the certs and CRLs in <certStoreDirectory>. " - "servername[:port] gives\n" - "the address of an LDAP server. If port is not" - " specified, port 389 is used. \"-\" means no LDAP server.\n" - "If ENE is specified, then an Error is Not Expected. " - "EE indicates an Error is Expected.\n"); -} - -static PKIX_Error * -createLdapCertStore( - char *hostname, - PRIntervalTime timeout, - PKIX_CertStore **pLdapCertStore, - void* plContext) -{ - PRIntn backlog = 0; - - char *bindname = ""; - char *auth = ""; - - LDAPBindAPI bindAPI; - LDAPBindAPI *bindPtr = NULL; - PKIX_PL_LdapDefaultClient *ldapClient = NULL; - PKIX_CertStore *ldapCertStore = NULL; - - PKIX_TEST_STD_VARS(); - - if (usebind) { - bindPtr = &bindAPI; - bindAPI.selector = SIMPLE_AUTH; - bindAPI.chooser.simple.bindName = bindname; - bindAPI.chooser.simple.authentication = auth; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapDefaultClient_CreateByName - (hostname, timeout, bindPtr, &ldapClient, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapCertStore_Create - ((PKIX_PL_LdapClient *)ldapClient, - &ldapCertStore, - plContext)); - - *pLdapCertStore = ldapCertStore; -cleanup: - - PKIX_TEST_DECREF_AC(ldapClient); - - PKIX_TEST_RETURN(); - - return (pkixTestErrorResult); - -} - -int test_buildchain(int argc, char *argv[]) -{ - PKIX_BuildResult *buildResult = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_TrustAnchor *anchor = NULL; - PKIX_PL_PublicKey *trustedPubKey = NULL; - PKIX_List *anchors = NULL; - PKIX_List *certs = NULL; - PKIX_RevocationChecker *revChecker = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_ProcessingParams *procParams = NULL; - char *dirName = NULL; - PKIX_PL_String *dirNameString = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *targetCert = NULL; - PKIX_UInt32 actualMinorVersion = 0; - PKIX_UInt32 numCerts = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_CertStore *ldapCertStore = NULL; - PRIntervalTime timeout = PR_INTERVAL_NO_TIMEOUT; /* blocking */ - /* PRIntervalTime timeout = PR_INTERVAL_NO_WAIT; =0 for non-blocking */ - PKIX_CertStore *certStore = NULL; - PKIX_List *certStores = NULL; - PKIX_List *revCheckers = NULL; - char * asciiResult = NULL; - PKIX_Boolean result = PKIX_FALSE; - PKIX_Boolean testValid = PKIX_TRUE; - PKIX_List *expectedCerts = NULL; - PKIX_PL_Cert *dirCert = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - PKIX_PL_String *actualCertsString = NULL; - PKIX_PL_String *expectedCertsString = NULL; - void *state = NULL; - char *actualCertsAscii = NULL; - char *expectedCertsAscii = NULL; - PRPollDesc *pollDesc = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage(); - return (0); - } - - startTests("BuildChain"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* - * arguments: - * [optional] -arenas - * [optional] usebind - * servername or servername:port ( - for no server) - * testname - * EE or ENE - * cert directory - * target cert (end entity) - * intermediate certs - * trust anchor - */ - - /* optional argument "usebind" for Ldap CertStore */ - if (argv[j + 1]) { - if (PORT_Strcmp(argv[j + 1], "usebind") == 0) { - usebind = PKIX_TRUE; - j++; - } - } - - if (PORT_Strcmp(argv[++j], "-") == 0) { - useLDAP = PKIX_FALSE; - } else { - serverName = argv[j]; - useLDAP = PKIX_TRUE; - } - - subTest(argv[++j]); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[++j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - dirName = argv[++j]; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&expectedCerts, plContext)); - - for (k = ++j; k < (PKIX_UInt32)argc; k++) { - - dirCert = createCert(dirName, argv[k], plContext); - - if (k == (PKIX_UInt32)(argc - 1)) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - trustedCert = dirCert; - } else { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (expectedCerts, - (PKIX_PL_Object *)dirCert, - plContext)); - - if (k == j) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - targetCert = dirCert; - } - } - - PKIX_TEST_DECREF_BC(dirCert); - } - - /* create processing params with list of trust anchors */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - /* create CertStores */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, dirName, 0, &dirNameString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certStores, plContext)); - - if (useLDAP == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(createLdapCertStore - (serverName, timeout, &ldapCertStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, - (PKIX_PL_Object *)ldapCertStore, - plContext)); - } else { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_CollectionCertStore_Create - (dirNameString, &certStore, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, (PKIX_PL_Object *)certStore, plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&revCheckers, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (trustedCert, &trustedPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (expectedCerts, &numCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_DefaultRevChecker_Initialize - (certStores, - NULL, /* testDate, may be NULL */ - trustedPubKey, - numCerts, - &revChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (revCheckers, (PKIX_PL_Object *)revChecker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (procParams, revCheckers, plContext)); - -#ifdef debuggingWithoutRevocation - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); -#endif - - /* build cert chain using processing params and return buildResult */ - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - &verifyTree, - plContext); - - while (pollDesc != NULL) { - - if (PR_Poll(pollDesc, 1, 0) < 0) { - testError("PR_Poll failed"); - } - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - &verifyTree, - plContext); - } - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED"); - } - } else { - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED NON-ERROR RECEIVED!\n"); - } else { /* EE */ - (void) printf("UNEXPECTED NON-ERROR RECEIVED!\n"); - } - } - - subTest("Displaying VerifyNode objects"); - - if (verifyTree == NULL) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, "(null)", 0, &verifyString, plContext)); - } else { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - } - - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - - if (pkixTestErrorResult) { - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - goto cleanup; - } - - if (buildResult) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain - (buildResult, &certs, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - /* PKIX_Cert2ASCII used PKIX_PL_Malloc(...,,NULL) */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, NULL)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals - ((PKIX_PL_Object*)certs, - (PKIX_PL_Object*)expectedCerts, - &result, - plContext)); - - if (!result) { - testError("BUILT CERTCHAIN IS " - "NOT THE ONE THAT WAS EXPECTED"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString - ((PKIX_PL_Object *)certs, - &actualCertsString, - plContext)); - - actualCertsAscii = PKIX_String2ASCII - (actualCertsString, plContext); - if (actualCertsAscii == NULL) { - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString - ((PKIX_PL_Object *)expectedCerts, - &expectedCertsString, - plContext)); - - expectedCertsAscii = PKIX_String2ASCII - (expectedCertsString, plContext); - if (expectedCertsAscii == NULL) { - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - (void) printf("Actual value:\t%s\n", actualCertsAscii); - (void) printf("Expected value:\t%s\n", - expectedCertsAscii); - } - - } - -cleanup: - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - - PKIX_PL_Free(asciiResult, NULL); - PKIX_PL_Free(actualCertsAscii, plContext); - PKIX_PL_Free(expectedCertsAscii, plContext); - - PKIX_TEST_DECREF_AC(state); - PKIX_TEST_DECREF_AC(actualCertsString); - PKIX_TEST_DECREF_AC(expectedCertsString); - PKIX_TEST_DECREF_AC(expectedCerts); - PKIX_TEST_DECREF_AC(buildResult); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certStores); - PKIX_TEST_DECREF_AC(revCheckers); - PKIX_TEST_DECREF_AC(revChecker); - PKIX_TEST_DECREF_AC(ldapCertStore); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(dirNameString); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(trustedCert); - PKIX_TEST_DECREF_AC(trustedPubKey); - - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(targetCert); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - endTests("BuildChain"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c b/security/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c deleted file mode 100644 index 2cc26e08b..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_buildchain_partialchain.c +++ /dev/null @@ -1,854 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_buildchain_partialchain.c - * - * Test BuildChain function - * - */ - -#define debuggingWithoutRevocation - -#include "testutil.h" -#include "testutil_nss.h" - -#define LDAP_PORT 389 -static PKIX_Boolean usebind = PKIX_FALSE; -static PKIX_Boolean useLDAP = PKIX_FALSE; -static char buf[PR_NETDB_BUF_SIZE]; -static char *serverName = NULL; -static char *sepPtr = NULL; -static PRNetAddr netAddr; -static PRHostEnt hostent; -static PKIX_UInt32 portNum = 0; -static PRIntn hostenum = 0; -static PRStatus prstatus = PR_FAILURE; -static void *ipaddr = NULL; - - -static void *plContext = NULL; - -static void printUsage(void) { - (void) printf("\nUSAGE:\ttest_buildchain [-arenas] [usebind] " - "servername[:port] <testName> [ENE|EE]\n" - "\t <certStoreDirectory> <targetCert>" - " <intermediate Certs...> <trustedCert>\n\n"); - (void) printf - ("Builds a chain of certificates from <targetCert> to <trustedCert>\n" - "using the certs and CRLs in <certStoreDirectory>. " - "servername[:port] gives\n" - "the address of an LDAP server. If port is not" - " specified, port 389 is used. \"-\" means no LDAP server.\n" - "If ENE is specified, then an Error is Not Expected. " - "EE indicates an Error is Expected.\n"); -} - -static PKIX_Error * -createLdapCertStore( - char *hostname, - PRIntervalTime timeout, - PKIX_CertStore **pLdapCertStore, - void* plContext) -{ - PRIntn backlog = 0; - - char *bindname = ""; - char *auth = ""; - - LDAPBindAPI bindAPI; - LDAPBindAPI *bindPtr = NULL; - PKIX_PL_LdapDefaultClient *ldapClient = NULL; - PKIX_CertStore *ldapCertStore = NULL; - - PKIX_TEST_STD_VARS(); - - if (usebind) { - bindPtr = &bindAPI; - bindAPI.selector = SIMPLE_AUTH; - bindAPI.chooser.simple.bindName = bindname; - bindAPI.chooser.simple.authentication = auth; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapDefaultClient_CreateByName - (hostname, timeout, bindPtr, &ldapClient, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapCertStore_Create - ((PKIX_PL_LdapClient *)ldapClient, - &ldapCertStore, - plContext)); - - *pLdapCertStore = ldapCertStore; -cleanup: - - PKIX_TEST_DECREF_AC(ldapClient); - - PKIX_TEST_RETURN(); - - return (pkixTestErrorResult); - -} - -/* Test with all Certs in the partial list, no leaf */ -static PKIX_Error * -testWithNoLeaf( - PKIX_PL_Cert *trustedCert, - PKIX_List *listOfCerts, - PKIX_PL_Cert *targetCert, - PKIX_List *certStores, - PKIX_Boolean testValid, - void* plContext) -{ - PKIX_UInt32 numCerts = 0; - PKIX_UInt32 i = 0; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *hintCerts = NULL; - PKIX_List *revCheckers = NULL; - PKIX_List *certs = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_PL_PublicKey *trustedPubKey = NULL; - PKIX_RevocationChecker *revChecker = NULL; - PKIX_BuildResult *buildResult = NULL; - PRPollDesc *pollDesc = NULL; - void *state = NULL; - char *asciiResult = NULL; - - PKIX_TEST_STD_VARS(); - - /* create processing params with list of trust anchors */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with no target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - /* create hintCerts */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)listOfCerts, - (PKIX_PL_Object **)&hintCerts, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetHintCerts - (procParams, hintCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&revCheckers, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (trustedCert, &trustedPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (listOfCerts, &numCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_DefaultRevChecker_Initialize - (certStores, - NULL, /* testDate, may be NULL */ - trustedPubKey, - numCerts, - &revChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (revCheckers, (PKIX_PL_Object *)revChecker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (procParams, revCheckers, plContext)); - -#ifdef debuggingWithoutRevocation - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); -#endif - - /* build cert chain using processing params and return buildResult */ - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - - while (pollDesc != NULL) { - - if (PR_Poll(pollDesc, 1, 0) < 0) { - testError("PR_Poll failed"); - } - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - } - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED"); - } - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - goto cleanup; - } - - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED NON-ERROR RECEIVED!\n"); - } else { /* EE */ - (void) printf("UNEXPECTED NON-ERROR RECEIVED!\n"); - } - - if (buildResult) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain - (buildResult, &certs, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - /* PKIX_Cert2ASCII used PKIX_PL_Malloc(...,,NULL) */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, NULL)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - } - -cleanup: - PKIX_PL_Free(asciiResult, NULL); - - PKIX_TEST_DECREF_AC(state); - PKIX_TEST_DECREF_AC(buildResult); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(revCheckers); - PKIX_TEST_DECREF_AC(revChecker); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(hintCerts); - PKIX_TEST_DECREF_AC(trustedPubKey); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_RETURN(); - - return (pkixTestErrorResult); - -} - -/* Test with all Certs in the partial list, leaf duplicates the first one */ -static PKIX_Error * -testWithDuplicateLeaf( - PKIX_PL_Cert *trustedCert, - PKIX_List *listOfCerts, - PKIX_PL_Cert *targetCert, - PKIX_List *certStores, - PKIX_Boolean testValid, - void* plContext) -{ - PKIX_UInt32 numCerts = 0; - PKIX_UInt32 i = 0; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *hintCerts = NULL; - PKIX_List *revCheckers = NULL; - PKIX_List *certs = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_PL_PublicKey *trustedPubKey = NULL; - PKIX_RevocationChecker *revChecker = NULL; - PKIX_BuildResult *buildResult = NULL; - PRPollDesc *pollDesc = NULL; - void *state = NULL; - char *asciiResult = NULL; - - PKIX_TEST_STD_VARS(); - - /* create processing params with list of trust anchors */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - /* create hintCerts */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)listOfCerts, - (PKIX_PL_Object **)&hintCerts, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetHintCerts - (procParams, hintCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&revCheckers, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (trustedCert, &trustedPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (listOfCerts, &numCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_DefaultRevChecker_Initialize - (certStores, - NULL, /* testDate, may be NULL */ - trustedPubKey, - numCerts, - &revChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (revCheckers, (PKIX_PL_Object *)revChecker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (procParams, revCheckers, plContext)); - -#ifdef debuggingWithoutRevocation - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); -#endif - - /* build cert chain using processing params and return buildResult */ - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - - while (pollDesc != NULL) { - - if (PR_Poll(pollDesc, 1, 0) < 0) { - testError("PR_Poll failed"); - } - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - } - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED"); - } - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - goto cleanup; - } - - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED NON-ERROR RECEIVED!\n"); - } else { /* EE */ - (void) printf("UNEXPECTED NON-ERROR RECEIVED!\n"); - } - - if (buildResult) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain - (buildResult, &certs, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - /* PKIX_Cert2ASCII used PKIX_PL_Malloc(...,,NULL) */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, NULL)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - } - -cleanup: - PKIX_PL_Free(asciiResult, NULL); - - PKIX_TEST_DECREF_AC(state); - PKIX_TEST_DECREF_AC(buildResult); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(revCheckers); - PKIX_TEST_DECREF_AC(revChecker); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(hintCerts); - PKIX_TEST_DECREF_AC(trustedPubKey); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_RETURN(); - - return (pkixTestErrorResult); - -} - -/* Test with all Certs except the leaf in the partial list */ -static PKIX_Error * -testWithLeafAndChain( - PKIX_PL_Cert *trustedCert, - PKIX_List *listOfCerts, - PKIX_PL_Cert *targetCert, - PKIX_List *certStores, - PKIX_Boolean testValid, - void* plContext) -{ - PKIX_UInt32 numCerts = 0; - PKIX_UInt32 i = 0; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *hintCerts = NULL; - PKIX_List *revCheckers = NULL; - PKIX_List *certs = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_PL_PublicKey *trustedPubKey = NULL; - PKIX_RevocationChecker *revChecker = NULL; - PKIX_BuildResult *buildResult = NULL; - PRPollDesc *pollDesc = NULL; - void *state = NULL; - char *asciiResult = NULL; - - PKIX_TEST_STD_VARS(); - - /* create processing params with list of trust anchors */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - /* create hintCerts */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - ((PKIX_PL_Object *)listOfCerts, - (PKIX_PL_Object **)&hintCerts, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem - (hintCerts, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetHintCerts - (procParams, hintCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&revCheckers, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (trustedCert, &trustedPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (listOfCerts, &numCerts, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_DefaultRevChecker_Initialize - (certStores, - NULL, /* testDate, may be NULL */ - trustedPubKey, - numCerts, - &revChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (revCheckers, (PKIX_PL_Object *)revChecker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (procParams, revCheckers, plContext)); - -#ifdef debuggingWithoutRevocation - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); -#endif - - /* build cert chain using processing params and return buildResult */ - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - - while (pollDesc != NULL) { - - if (PR_Poll(pollDesc, 1, 0) < 0) { - testError("PR_Poll failed"); - } - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - } - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED"); - } - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - goto cleanup; - } - - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED NON-ERROR RECEIVED!\n"); - } else { /* EE */ - (void) printf("UNEXPECTED NON-ERROR RECEIVED!\n"); - } - - if (buildResult) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain - (buildResult, &certs, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - /* PKIX_Cert2ASCII used PKIX_PL_Malloc(...,,NULL) */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, NULL)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - } - -cleanup: - - PKIX_TEST_DECREF_AC(state); - PKIX_TEST_DECREF_AC(buildResult); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(revCheckers); - PKIX_TEST_DECREF_AC(revChecker); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(hintCerts); - PKIX_TEST_DECREF_AC(trustedPubKey); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - - PKIX_TEST_RETURN(); - - return (pkixTestErrorResult); - -} - -int test_buildchain_partialchain(int argc, char *argv[]) -{ - PKIX_UInt32 actualMinorVersion = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_Boolean ene = PKIX_TRUE; /* expect no error */ - PKIX_List *listOfCerts = NULL; - PKIX_List *certStores = NULL; - PKIX_PL_Cert *dirCert = NULL; - PKIX_PL_Cert *trusted = NULL; - PKIX_PL_Cert *target = NULL; - PKIX_CertStore *ldapCertStore = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_PL_String *dirNameString = NULL; - char *dirName = NULL; - - PRIntervalTime timeout = PR_INTERVAL_NO_TIMEOUT; /* blocking */ - /* PRIntervalTime timeout = PR_INTERVAL_NO_WAIT; =0 for non-blocking */ - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage(); - return (0); - } - - startTests("BuildChain"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* - * arguments: - * [optional] -arenas - * [optional] usebind - * servername or servername:port ( - for no server) - * testname - * EE or ENE - * cert directory - * target cert (end entity) - * intermediate certs - * trust anchor - */ - - /* optional argument "usebind" for Ldap CertStore */ - if (argv[j + 1]) { - if (PORT_Strcmp(argv[j + 1], "usebind") == 0) { - usebind = PKIX_TRUE; - j++; - } - } - - if (PORT_Strcmp(argv[++j], "-") == 0) { - useLDAP = PKIX_FALSE; - } else { - serverName = argv[j]; - useLDAP = PKIX_TRUE; - } - - subTest(argv[++j]); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[++j], "ENE") == 0) { - ene = PKIX_TRUE; - } else if (PORT_Strcmp(argv[j], "EE") == 0) { - ene = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - dirName = argv[++j]; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&listOfCerts, plContext)); - - for (k = ++j; k < ((PKIX_UInt32)argc); k++) { - - dirCert = createCert(dirName, argv[k], plContext); - - if (k == ((PKIX_UInt32)(argc - 1))) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - trusted = dirCert; - } else { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (listOfCerts, - (PKIX_PL_Object *)dirCert, - plContext)); - - if (k == j) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - target = dirCert; - } - } - - PKIX_TEST_DECREF_BC(dirCert); - } - - /* create CertStores */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, dirName, 0, &dirNameString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certStores, plContext)); - - if (useLDAP == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(createLdapCertStore - (serverName, timeout, &ldapCertStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, - (PKIX_PL_Object *)ldapCertStore, - plContext)); - } else { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_CollectionCertStore_Create - (dirNameString, &certStore, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, (PKIX_PL_Object *)certStore, plContext)); - } - - subTest("testWithNoLeaf"); - PKIX_TEST_EXPECT_NO_ERROR(testWithNoLeaf - (trusted, listOfCerts, target, certStores, ene, plContext)); - - subTest("testWithDuplicateLeaf"); - PKIX_TEST_EXPECT_NO_ERROR(testWithDuplicateLeaf - (trusted, listOfCerts, target, certStores, ene, plContext)); - - subTest("testWithLeafAndChain"); - PKIX_TEST_EXPECT_NO_ERROR(testWithLeafAndChain - (trusted, listOfCerts, target, certStores, ene, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(listOfCerts); - PKIX_TEST_DECREF_AC(certStores); - PKIX_TEST_DECREF_AC(ldapCertStore); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(dirNameString); - PKIX_TEST_DECREF_AC(trusted); - PKIX_TEST_DECREF_AC(target); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - endTests("BuildChain"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c b/security/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c deleted file mode 100644 index 76ddaf327..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_buildchain_resourcelimits.c +++ /dev/null @@ -1,530 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_buildchain_resourcelimits.c - * - * Test BuildChain function with constraints on resources - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TESTUSERCHECKER_TYPE (PKIX_NUMTYPES+30) - -static void *plContext = NULL; -static PKIX_Boolean usebind = PKIX_FALSE; -static PKIX_Boolean useLDAP = PKIX_FALSE; -static char buf[PR_NETDB_BUF_SIZE]; -static char *serverName = NULL; - -static void printUsage(void) { - (void) printf("\nUSAGE:\ttest_buildchain_resourcelimits [-arenas] " - "[usebind] servername[:port]\\\n\t\t<testName> [ENE|EE]" - " <certStoreDirectory>\\\n\t\t<targetCert>" - " <intermediate Certs...> <trustedCert>\n\n"); - (void) printf - ("Builds a chain of certificates from <targetCert> to <trustedCert>\n" - "using the certs and CRLs in <certStoreDirectory>. " - "servername[:port] gives\n" - "the address of an LDAP server. If port is not" - " specified, port 389 is used.\n\"-\" means no LDAP server.\n\n" - "If ENE is specified, then an Error is Not Expected.\n" - "EE indicates an Error is Expected.\n"); -} - -static PKIX_Error * -createLdapCertStore( - char *hostname, - PRIntervalTime timeout, - PKIX_CertStore **pLdapCertStore, - void* plContext) -{ - PRIntn backlog = 0; - - char *bindname = ""; - char *auth = ""; - - LDAPBindAPI bindAPI; - LDAPBindAPI *bindPtr = NULL; - PKIX_PL_LdapDefaultClient *ldapClient = NULL; - PKIX_CertStore *ldapCertStore = NULL; - - PKIX_TEST_STD_VARS(); - - if (usebind) { - bindPtr = &bindAPI; - bindAPI.selector = SIMPLE_AUTH; - bindAPI.chooser.simple.bindName = bindname; - bindAPI.chooser.simple.authentication = auth; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapDefaultClient_CreateByName - (hostname, timeout, bindPtr, &ldapClient, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapCertStore_Create - ((PKIX_PL_LdapClient *)ldapClient, &ldapCertStore, plContext)); - - *pLdapCertStore = ldapCertStore; -cleanup: - - PKIX_TEST_DECREF_AC(ldapClient); - - PKIX_TEST_RETURN(); - - return (pkixTestErrorResult); - -} - -static void Test_BuildResult( - PKIX_ProcessingParams *procParams, - PKIX_Boolean testValid, - PKIX_List *expectedCerts, - void *plContext) -{ - PKIX_PL_Cert *cert = NULL; - PKIX_List *certs = NULL; - PKIX_PL_String *actualCertsString = NULL; - PKIX_PL_String *expectedCertsString = NULL; - PKIX_BuildResult *buildResult = NULL; - PKIX_Boolean result; - PKIX_Boolean supportForward = PKIX_FALSE; - PKIX_UInt32 numCerts, i; - char *asciiResult = NULL; - char *actualCertsAscii = NULL; - char *expectedCertsAscii = NULL; - void *state = NULL; - PRPollDesc *pollDesc = NULL; - - PKIX_TEST_STD_VARS(); - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - - while (pollDesc != NULL) { - - if (PR_Poll(pollDesc, 1, 0) < 0) { - testError("PR_Poll failed"); - } - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - (void **)&pollDesc, - &state, - &buildResult, - NULL, - plContext); - } - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED!\n"); - } - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - goto cleanup; - } - - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED NON-ERROR RECEIVED!\n"); - } else { /* EE */ - testError("UNEXPECTED NON-ERROR RECEIVED!\n"); - } - - if (buildResult){ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain - (buildResult, &certs, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - /* PKIX_Cert2ASCII used PKIX_PL_Malloc(...,,NULL) */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, NULL)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals - ((PKIX_PL_Object*)certs, - (PKIX_PL_Object*)expectedCerts, - &result, - plContext)); - - if (!result){ - testError("BUILT CERTCHAIN IS " - "NOT THE ONE THAT WAS EXPECTED"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString - ((PKIX_PL_Object *)certs, - &actualCertsString, - plContext)); - - actualCertsAscii = PKIX_String2ASCII - (actualCertsString, plContext); - if (actualCertsAscii == NULL){ - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString - ((PKIX_PL_Object *)expectedCerts, - &expectedCertsString, - plContext)); - - expectedCertsAscii = PKIX_String2ASCII - (expectedCertsString, plContext); - if (expectedCertsAscii == NULL){ - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - (void) printf("Actual value:\t%s\n", actualCertsAscii); - (void) printf("Expected value:\t%s\n", - expectedCertsAscii); - } - - } - -cleanup: - - PKIX_PL_Free(asciiResult, NULL); - PKIX_PL_Free(actualCertsAscii, plContext); - PKIX_PL_Free(expectedCertsAscii, plContext); - PKIX_TEST_DECREF_AC(state); - PKIX_TEST_DECREF_AC(buildResult); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(actualCertsString); - PKIX_TEST_DECREF_AC(expectedCertsString); - - PKIX_TEST_RETURN(); - -} - -int test_buildchain_resourcelimits(int argc, char *argv[]) -{ - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_CertChainChecker *checker = NULL; - PKIX_ResourceLimits *resourceLimits = NULL; - char *dirName = NULL; - PKIX_PL_String *dirNameString = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *targetCert = NULL; - PKIX_PL_Cert *dirCert = NULL; - PKIX_UInt32 actualMinorVersion = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_CertStore *ldapCertStore = NULL; - PRIntervalTime timeout = 0; /* 0 for non-blocking */ - PKIX_CertStore *certStore = NULL; - PKIX_List *certStores = NULL; - PKIX_List *expectedCerts = NULL; - PKIX_Boolean testValid = PKIX_FALSE; - PKIX_Boolean usebind = PKIX_FALSE; - PKIX_Boolean useLDAP = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - if (argc < 5){ - printUsage(); - return (0); - } - - startTests("BuildChain_ResourceLimits"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* - * arguments: - * [optional] -arenas - * [optional] usebind - * servername or servername:port ( - for no server) - * testname - * EE or ENE - * cert directory - * target cert (end entity) - * intermediate certs - * trust anchor - */ - - /* optional argument "usebind" for Ldap CertStore */ - if (argv[j + 1]) { - if (PORT_Strcmp(argv[j + 1], "usebind") == 0) { - usebind = PKIX_TRUE; - j++; - } - } - - if (PORT_Strcmp(argv[++j], "-") == 0) { - useLDAP = PKIX_FALSE; - } else { - serverName = argv[j]; - } - - subTest(argv[++j]); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[++j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - dirName = argv[++j]; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&expectedCerts, plContext)); - - for (k = ++j; k < argc; k++) { - - dirCert = createCert(dirName, argv[k], plContext); - - if (k == (argc - 1)) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - trustedCert = dirCert; - } else { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (expectedCerts, - (PKIX_PL_Object *)dirCert, - plContext)); - - if (k == j) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - targetCert = dirCert; - } - } - - PKIX_TEST_DECREF_BC(dirCert); - } - - /* create processing params with list of trust anchors */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - /* create CertStores */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - dirName, - 0, - &dirNameString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirNameString, &certStore, plContext)); - -#if 0 - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Pk11CertStore_Create - (&certStore, plContext)); -#endif - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certStores, plContext)); - - if (useLDAP == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(createLdapCertStore - (serverName, timeout, &ldapCertStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, - (PKIX_PL_Object *)ldapCertStore, - plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, (PKIX_PL_Object *)certStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - /* set resource limits */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_Create - (&resourceLimits, plContext)); - - /* need longer time when running dbx for memory leak checking */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime - (resourceLimits, 60, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (resourceLimits, 2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (resourceLimits, 2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetResourceLimits - (procParams, resourceLimits, plContext)); - - /* build cert chain using processing params and return buildResult */ - - subTest("Testing ResourceLimits MaxFanout & MaxDepth - <pass>"); - Test_BuildResult - (procParams, - testValid, - expectedCerts, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (resourceLimits, 1, plContext)); - - subTest("Testing ResourceLimits MaxFanout - <fail>"); - Test_BuildResult - (procParams, - PKIX_FALSE, - expectedCerts, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (resourceLimits, 2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (resourceLimits, 1, plContext)); - - subTest("Testing ResourceLimits MaxDepth - <fail>"); - Test_BuildResult - (procParams, - PKIX_FALSE, - expectedCerts, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxFanout - (resourceLimits, 0, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxDepth - (resourceLimits, 0, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ResourceLimits_SetMaxTime - (resourceLimits, 0, plContext)); - - subTest("Testing ResourceLimits No checking - <pass>"); - Test_BuildResult - (procParams, - testValid, - expectedCerts, - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(expectedCerts); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certStores); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(ldapCertStore); - PKIX_TEST_DECREF_AC(dirNameString); - PKIX_TEST_DECREF_AC(trustedCert); - PKIX_TEST_DECREF_AC(targetCert); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(checker); - PKIX_TEST_DECREF_AC(resourceLimits); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - endTests("BuildChain_UserChecker"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c b/security/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c deleted file mode 100644 index b133f2366..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_buildchain_uchecker.c +++ /dev/null @@ -1,406 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_buildchain_uchecker.c - * - * Test BuildChain User Checker function - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; -static PKIX_UInt32 numUserCheckerCalled = 0; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\ttest_buildchain_uchecker [ENE|EE] " - "[-|[F]<userOID>] " - "<trustedCert> <targetCert> <certStoreDirectory>\n\n"); - (void) printf - ("Builds a chain of certificates between " - "<trustedCert> and <targetCert>\n" - "using the certs and CRLs in <certStoreDirectory>.\n" - "If <userOID> is not an empty string, its value is used as\n" - "user defined checker's critical extension OID.\n" - "A - for <userOID> is no OID and F is for supportingForward.\n" - "If ENE is specified, then an Error is Not Expected.\n" - "If EE is specified, an Error is Expected.\n"); -} - -static PKIX_Error * -testUserChecker( - PKIX_CertChainChecker *checker, - PKIX_PL_Cert *cert, - PKIX_List *unresExtOIDs, - void **pNBIOContext, - void *plContext) -{ - numUserCheckerCalled++; - return(0); -} - -int test_buildchain_uchecker(int argc, char *argv[]) -{ - PKIX_BuildResult *buildResult = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *certs = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_CertChainChecker *checker = NULL; - char *dirName = NULL; - PKIX_PL_String *dirNameString = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *targetCert = NULL; - PKIX_UInt32 numCerts = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_UInt32 chainLength = 0; - PKIX_CertStore *certStore = NULL; - PKIX_List *certStores = NULL; - char * asciiResult = NULL; - PKIX_Boolean result; - PKIX_Boolean testValid = PKIX_TRUE; - PKIX_Boolean supportForward = PKIX_FALSE; - PKIX_List *expectedCerts = NULL; - PKIX_List *userOIDs = NULL; - PKIX_PL_OID *oid = NULL; - PKIX_PL_Cert *dirCert = NULL; - PKIX_PL_String *actualCertsString = NULL; - PKIX_PL_String *expectedCertsString = NULL; - char *actualCertsAscii = NULL; - char *expectedCertsAscii = NULL; - char *oidString = NULL; - void *buildState = NULL; /* needed by pkix_build for non-blocking I/O */ - void *nbioContext = NULL; /* needed by pkix_build for non-blocking I/O */ - - PKIX_TEST_STD_VARS(); - - if (argc < 5){ - printUsage(); - return (0); - } - - startTests("BuildChain_UserChecker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - /* OID specified at argv[3+j] */ - - if (*argv[3+j] != '-') { - - if (*argv[3+j] == 'F') { - supportForward = PKIX_TRUE; - oidString = argv[3+j]+1; - } else { - oidString = argv[3+j]; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&userOIDs, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (oidString, &oid, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (userOIDs, (PKIX_PL_Object *)oid, plContext)); - PKIX_TEST_DECREF_BC(oid); - } - - subTest(argv[1+j]); - - dirName = argv[4+j]; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&expectedCerts, plContext)); - - chainLength = argc - j - 5; - - for (k = 0; k < chainLength; k++){ - - dirCert = createCert(dirName, argv[5+k+j], plContext); - - if (k == (chainLength - 1)){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - trustedCert = dirCert; - } else { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (expectedCerts, - (PKIX_PL_Object *)dirCert, - plContext)); - - if (k == 0){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, - plContext)); - targetCert = dirCert; - } - } - - PKIX_TEST_DECREF_BC(dirCert); - } - - /* create processing params with list of trust anchors */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertChainChecker_Create - (testUserChecker, - supportForward, - PKIX_FALSE, - userOIDs, - NULL, - &checker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertChainChecker - (procParams, checker, plContext)); - - - /* create CertStores */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - dirName, - 0, - &dirNameString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirNameString, &certStore, plContext)); - -#if 0 - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Pk11CertStore_Create - (&certStore, plContext)); -#endif - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certStores, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (certStores, (PKIX_PL_Object *)certStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - /* build cert chain using processing params and return buildResult */ - - pkixTestErrorResult = PKIX_BuildChain - (procParams, - &nbioContext, - &buildState, - &buildResult, - NULL, - plContext); - - if (testValid == PKIX_TRUE) { /* ENE */ - if (pkixTestErrorResult){ - (void) printf("UNEXPECTED RESULT RECEIVED!\n"); - } else { - (void) printf("EXPECTED RESULT RECEIVED!\n"); - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - } - } else { /* EE */ - if (pkixTestErrorResult){ - (void) printf("EXPECTED RESULT RECEIVED!\n"); - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - } else { - testError("UNEXPECTED RESULT RECEIVED"); - } - } - - if (buildResult){ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain - (buildResult, &certs, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, plContext)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals - ((PKIX_PL_Object*)certs, - (PKIX_PL_Object*)expectedCerts, - &result, - plContext)); - - if (!result){ - testError("BUILT CERTCHAIN IS " - "NOT THE ONE THAT WAS EXPECTED"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString - ((PKIX_PL_Object *)certs, - &actualCertsString, - plContext)); - - actualCertsAscii = PKIX_String2ASCII - (actualCertsString, plContext); - if (actualCertsAscii == NULL){ - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString - ((PKIX_PL_Object *)expectedCerts, - &expectedCertsString, - plContext)); - - expectedCertsAscii = PKIX_String2ASCII - (expectedCertsString, plContext); - if (expectedCertsAscii == NULL){ - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - (void) printf("Actual value:\t%s\n", actualCertsAscii); - (void) printf("Expected value:\t%s\n", - expectedCertsAscii); - - if (chainLength - 1 != numUserCheckerCalled) { - pkixTestErrorMsg = - "PKIX user defined checker not called"; - } - - goto cleanup; - } - - } - -cleanup: - PKIX_PL_Free(asciiResult, plContext); - PKIX_PL_Free(actualCertsAscii, plContext); - PKIX_PL_Free(expectedCertsAscii, plContext); - - PKIX_TEST_DECREF_AC(actualCertsString); - PKIX_TEST_DECREF_AC(expectedCertsString); - PKIX_TEST_DECREF_AC(expectedCerts); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(certStores); - PKIX_TEST_DECREF_AC(dirNameString); - PKIX_TEST_DECREF_AC(trustedCert); - PKIX_TEST_DECREF_AC(targetCert); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(buildResult); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(userOIDs); - PKIX_TEST_DECREF_AC(checker); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - endTests("BuildChain_UserChecker"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c b/security/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c deleted file mode 100644 index fed86f278..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_customcrlchecker.c +++ /dev/null @@ -1,497 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_customcrlchecker.c - * - * Test Custom CRL Checking - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_MAX_CERTS 10 -#define PKIX_TEST_COLLECTIONCERTSTORE_NUM_CRLS 5 - -static void *plContext = NULL; -char *dirName = NULL; /* also used in callback */ - -static -void printUsage1(char *pName){ - printf("\nUSAGE: %s test-purpose [ENE|EE] ", pName); - printf("cert [certs].\n"); -} - -static -void printUsageMax(PKIX_UInt32 numCerts){ - printf("\nUSAGE ERROR: number of certs %d exceed maximum %d\n", - numCerts, PKIX_TEST_MAX_CERTS); -} - -static PKIX_Error * -getCRLCallback( - PKIX_CertStore *store, - PKIX_CRLSelector *crlSelector, - void **pNBIOContext, - PKIX_List **pCrlList, - void *plContext) -{ - char *crlFileNames[] = {"chem.crl", - "phys.crl", - "prof.crl", - "sci.crl", - "test.crl", - 0 }; - PKIX_PL_CRL *crl = NULL; - PKIX_List *crlList = NULL; - PKIX_UInt32 i = 0; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&crlList, plContext)); - - while (crlFileNames[i]) { - - crl = createCRL(dirName, crlFileNames[i++], plContext); - - if (crl != NULL) { - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (crlList, (PKIX_PL_Object *)crl, plContext)); - - PKIX_TEST_DECREF_BC(crl); - } - } - - *pCrlList = crlList; - -cleanup: - - PKIX_TEST_RETURN(); - - return (0); /* this function is called by libpkix */ - -} - -static PKIX_Error * -getCRLContinue( - PKIX_CertStore *store, - PKIX_CRLSelector *crlSelector, - void **pNBIOContext, - PKIX_List **pCrlList, - void *plContext) -{ - return (NULL); -} - -static PKIX_Error * -getCertCallback( - PKIX_CertStore *store, - PKIX_CertSelector *certSelector, - void **pNBIOContext, - PKIX_List **pCerts, - void *plContext) -{ - return (NULL); -} - -static PKIX_Error * -getCertContinue( - PKIX_CertStore *store, - PKIX_CertSelector *certSelector, - void **pNBIOContext, - PKIX_List **pCerts, - void *plContext) -{ - return (NULL); -} - -static PKIX_Error * -testCRLSelectorMatchCallback( - PKIX_CRLSelector *selector, - PKIX_PL_CRL *crl, - void *plContext) -{ - PKIX_ComCRLSelParams *comCrlSelParams = NULL; - PKIX_List *issuerList = NULL; - PKIX_PL_X500Name *issuer = NULL; - PKIX_PL_X500Name *crlIssuer = NULL; - PKIX_UInt32 numIssuers = 0; - PKIX_UInt32 i = 0; - PKIX_Boolean result = PKIX_FALSE; - PKIX_Error *error = NULL; - char *errorText = "Not an error, CRL Select mismatch"; - - PKIX_TEST_STD_VARS(); - - subTest("Custom_Selector_MatchCallback"); - - if (selector != NULL) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CRLSelector_GetCommonCRLSelectorParams - (selector, &comCrlSelParams, plContext)); - } - - if (crl != NULL) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetIssuer - (crl, &crlIssuer, plContext)); - } - - if (comCrlSelParams != NULL) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCRLSelParams_GetIssuerNames - (comCrlSelParams, &issuerList, plContext)); - } - - if (issuerList != NULL) { - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (issuerList, &numIssuers, plContext)); - - for (i = 0; i < numIssuers; i++){ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (issuerList, - i, (PKIX_PL_Object **)&issuer, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object *)crlIssuer, - (PKIX_PL_Object *)issuer, - &result, - plContext)); - - if (result != PKIX_TRUE) { - break; - } - - if (i == numIssuers-1) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_Error_Create - (0, - NULL, - NULL, - PKIX_TESTNOTANERRORCRLSELECTMISMATCH, - &error, - plContext)); - - PKIX_TEST_DECREF_AC(issuer); - issuer = NULL; - break; - } - - PKIX_TEST_DECREF_AC(issuer); - - } - } - -cleanup: - - PKIX_TEST_DECREF_AC(comCrlSelParams); - PKIX_TEST_DECREF_AC(crlIssuer); - PKIX_TEST_DECREF_AC(issuer); - PKIX_TEST_DECREF_AC(issuerList); - - PKIX_TEST_RETURN(); - - return (error); - -} - -static PKIX_Error * -testAddIssuerName(PKIX_ComCRLSelParams *comCrlSelParams, char *issuerName) -{ - PKIX_PL_String *issuerString = NULL; - PKIX_PL_X500Name *issuer = NULL; - PKIX_UInt32 length = 0; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ComCRLSelParams_AddIssuerName"); - - length = PL_strlen(issuerName); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_UTF8, - issuerName, - length, - &issuerString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Create(issuerString, - &issuer, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_AddIssuerName - (comCrlSelParams, issuer, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(issuerString); - PKIX_TEST_DECREF_AC(issuer); - - PKIX_TEST_RETURN(); - - return (0); -} - -static PKIX_Error * -testCustomCertStore(PKIX_ValidateParams *valParams) -{ - PKIX_CertStore_CRLCallback crlCallback; - PKIX_CertStore *certStore = NULL; - PKIX_ProcessingParams *procParams = NULL; - char *issuerName1 = "cn=science,o=mit,c=us"; - char *issuerName2 = "cn=physics,o=mit,c=us"; - char *issuerName3 = "cn=prof noall,o=mit,c=us"; - char *issuerName4 = "cn=testing CRL,o=test,c=us"; - PKIX_ComCRLSelParams *comCrlSelParams = NULL; - PKIX_CRLSelector *crlSelector = NULL; - PKIX_List *crlList = NULL; - PKIX_UInt32 numCrl = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CollectionCertStore_Create"); - - /* Create CRLSelector, link in CollectionCertStore */ - - subTest("PKIX_ComCRLSelParams_AddIssuerNames"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create - (&comCrlSelParams, plContext)); - - - testAddIssuerName(comCrlSelParams, issuerName1); - testAddIssuerName(comCrlSelParams, issuerName2); - testAddIssuerName(comCrlSelParams, issuerName3); - testAddIssuerName(comCrlSelParams, issuerName4); - - - subTest("PKIX_CRLSelector_SetCommonCRLSelectorParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (testCRLSelectorMatchCallback, - NULL, - &crlSelector, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_SetCommonCRLSelectorParams - (crlSelector, comCrlSelParams, plContext)); - - /* Create CertStore, link in CRLSelector */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - subTest("PKIX_CertStore_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_Create - (getCertCallback, - getCRLCallback, - getCertContinue, - getCRLContinue, - NULL, /* trustCallback */ - (PKIX_PL_Object *)crlSelector, /* fake */ - PKIX_FALSE, /* cacheFlag */ - PKIX_TRUE, /* localFlag */ - &certStore, - plContext)); - - - subTest("PKIX_ProcessingParams_AddCertStore"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertStore - (procParams, certStore, plContext)); - - subTest("PKIX_ProcessingParams_SetRevocationEnabled"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_TRUE, plContext)); - - subTest("PKIX_CertStore_GetCRLCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCRLCallback - (certStore, - &crlCallback, - NULL)); - - subTest("Getting CRL by CRL Callback"); - PKIX_TEST_EXPECT_NO_ERROR(crlCallback - (certStore, - crlSelector, - &nbioContext, - &crlList, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (crlList, - &numCrl, - plContext)); - - if (numCrl != PKIX_TEST_COLLECTIONCERTSTORE_NUM_CRLS) { - pkixTestErrorMsg = "unexpected CRL number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(crlList); - PKIX_TEST_DECREF_AC(comCrlSelParams); - PKIX_TEST_DECREF_AC(crlSelector); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); - - return (0); -} - -/* - * Validate Certificate Chain with Certificate Revocation List - * Certificate Chain is built based on input certs' sequence. - * CRL is fetched from the directory specified in CollectionCertStore. - * while CollectionCertStore is linked in CertStore Object which then - * linked in ProcessParam. During validation, CRLChecker will invoke - * the crlCallback (this test uses PKIX_PL_CollectionCertStore_GetCRL) - * to get CRL data for revocation check. - * This test set criteria in CRLSelector which is linked in - * CommonCRLSelectorParam. When CRL data is fetched into cache for - * revocation check, CRL's are filtered based on the criteria set. - */ - -int test_customcrlchecker(int argc, char *argv[]){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - char *certNames[PKIX_TEST_MAX_CERTS]; - PKIX_PL_Cert *certs[PKIX_TEST_MAX_CERTS]; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_Boolean testValid = PKIX_TRUE; - char *anchorName = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage1(argv[0]); - return (0); - } - - startTests("CRL Checker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage1(argv[0]); - return (0); - } - - chainLength = (argc - j) - 5; - if (chainLength > PKIX_TEST_MAX_CERTS) { - printUsageMax(chainLength); - } - - for (i = 0; i < chainLength; i++) { - - certNames[i] = argv[(5 + j) +i]; - certs[i] = NULL; - } - - dirName = argv[3+j]; - - subTest(argv[1+j]); - - subTest("Custom-CRL-Checker - Create Cert Chain"); - - chain = createCertChainPlus - (dirName, certNames, certs, chainLength, plContext); - - subTest("Custom-CRL-Checker - Create Params"); - - anchorName = argv[4+j]; - - valParams = createValidateParams - (dirName, - anchorName, - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("Custom-CRL-Checker - Set Processing Params for CertStore"); - - testCustomCertStore(valParams); - - subTest("Custom-CRL-Checker - Validate Chain"); - - if (testValid == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } - -cleanup: - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CRL Checker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c b/security/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c deleted file mode 100644 index dc763a1d3..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_defaultcrlchecker2stores.c +++ /dev/null @@ -1,274 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_defaultcrlchecker2stores.c - * - * Test Default CRL with multiple CertStore Checking - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_MAX_CERTS 10 - -static void *plContext = NULL; - -static -void printUsage1(char *pName){ - printf("\nUSAGE: %s test-purpose [ENE|EE] ", pName); - printf("crl-directory cert [certs].\n"); -} - -static -void printUsageMax(PKIX_UInt32 numCerts){ - printf("\nUSAGE ERROR: number of certs %d exceed maximum %d\n", - numCerts, PKIX_TEST_MAX_CERTS); -} - -static PKIX_Error * -getCertCallback( - PKIX_CertStore *store, - PKIX_CertSelector *certSelector, - PKIX_List **pCerts, - void *plContext) -{ - return (NULL); -} - -static PKIX_Error * -testDefaultMultipleCertStores(PKIX_ValidateParams *valParams, - char *crlDir1, - char *crlDir2) -{ - PKIX_PL_String *dirString1 = NULL; - PKIX_PL_String *dirString2 = NULL; - PKIX_CertStore *certStore1 = NULL; - PKIX_CertStore *certStore2 = NULL; - PKIX_List *certStoreList = NULL; - PKIX_ProcessingParams *procParams = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CollectionCertStore_Create"); - - /* Create CollectionCertStore */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - crlDir1, - 0, - &dirString1, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString1, - &certStore1, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - crlDir2, - 0, - &dirString2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString2, - &certStore2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - /* Add multiple CollectionCertStores */ - - subTest("PKIX_ProcessingParams_SetCertStores"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certStoreList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certStoreList, (PKIX_PL_Object *)certStore1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStoreList, plContext)); - - subTest("PKIX_ProcessingParams_AddCertStore"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertStore - (procParams, certStore2, plContext)); - - subTest("PKIX_ProcessingParams_SetRevocationEnabled"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_TRUE, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(dirString1); - PKIX_TEST_DECREF_AC(dirString2); - PKIX_TEST_DECREF_AC(certStore1); - PKIX_TEST_DECREF_AC(certStore2); - PKIX_TEST_DECREF_AC(certStoreList); - PKIX_TEST_DECREF_AC(procParams); - - PKIX_TEST_RETURN(); - - return (0); -} - -/* - * Validate Certificate Chain with Certificate Revocation List - * Certificate Chain is build based on input certs' sequence. - * CRL is fetched from the directory specified in CollectionCertStore. - * while CollectionCertStore is linked in CertStore Object which then - * linked in ProcessParam. During validation, CRLChecker will invoke - * the crlCallback (this test uses PKIX_PL_CollectionCertStore_GetCRL) - * to get CRL data for revocation check. - * This test gets CRL's from two CertStores, each has a valid CRL - * required for revocation check to pass. - */ - -int test_defaultcrlchecker2stores(int argc, char *argv[]){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - char *certNames[PKIX_TEST_MAX_CERTS]; - PKIX_PL_Cert *certs[PKIX_TEST_MAX_CERTS]; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_Boolean testValid = PKIX_TRUE; - char *dirName = NULL; - char *anchorName = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 6) { - printUsage1(argv[0]); - return (0); - } - - startTests("CRL Checker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage1(argv[0]); - return (0); - } - - chainLength = (argc - j) - 7; - if (chainLength > PKIX_TEST_MAX_CERTS) { - printUsageMax(chainLength); - } - - for (i = 0; i < chainLength; i++) { - - certNames[i] = argv[(7+j)+i]; - certs[i] = NULL; - } - - - subTest(argv[1+j]); - - subTest("Default-CRL-Checker"); - - subTest("Default-CRL-Checker - Create Cert Chain"); - - dirName = argv[3+j]; - - chain = createCertChainPlus - (dirName, certNames, certs, chainLength, plContext); - - subTest("Default-CRL-Checker - Create Params"); - - anchorName = argv[6+j]; - - valParams = createValidateParams - (dirName, - anchorName, - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("Multiple-CertStores"); - - testDefaultMultipleCertStores(valParams, argv[4+j], argv[5+j]); - - subTest("Default-CRL-Checker - Validate Chain"); - - if (testValid == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - -cleanup: - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(chain); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CRL Checker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_ocsp.c b/security/nss/cmd/libpkix/pkix/top/test_ocsp.c deleted file mode 100644 index 4a4d9fe59..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_ocsp.c +++ /dev/null @@ -1,349 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_ocspchecker.c - * - * Test OcspChecker function - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\nOcspChecker -d <certStoreDirectory> TestName " - "[ENE|EE] <certLocationDirectory> <trustedCert> " - "<targetCert>\n\n"); - (void) printf - ("Validates a chain of certificates between " - "<trustedCert> and <targetCert>\n" - "using the certs and CRLs in <certLocationDirectory> and " - "pkcs11 db from <certStoreDirectory>. " - "If ENE is specified,\n" - "then an Error is Not Expected. " - "If EE is specified, an Error is Expected.\n"); -} - -static -char *createFullPathName( - char *dirName, - char *certFile, - void *plContext) -{ - PKIX_UInt32 certFileLen; - PKIX_UInt32 dirNameLen; - char *certPathName = NULL; - - PKIX_TEST_STD_VARS(); - - certFileLen = PL_strlen(certFile); - dirNameLen = PL_strlen(dirName); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (dirNameLen + certFileLen + 2, - (void **)&certPathName, - plContext)); - - PL_strcpy(certPathName, dirName); - PL_strcat(certPathName, "/"); - PL_strcat(certPathName, certFile); - printf("certPathName = %s\n", certPathName); - -cleanup: - - PKIX_TEST_RETURN(); - - return (certPathName); -} - -static PKIX_Error * -testDefaultCertStore(PKIX_ValidateParams *valParams, char *crlDir) -{ - PKIX_PL_String *dirString = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_PL_Date *validity = NULL; - PKIX_List *revCheckers = NULL; - PKIX_RevocationChecker *revChecker = NULL; - PKIX_PL_Object *revCheckerContext = NULL; - PKIX_OcspChecker *ocspChecker = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CollectionCertStoreContext_Create"); - - /* Create CollectionCertStore */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, crlDir, 0, &dirString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - /* Create CertStore */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - subTest("PKIX_ProcessingParams_AddCertStore"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertStore - (procParams, certStore, plContext)); - - subTest("PKIX_ProcessingParams_SetRevocationEnabled"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); - - /* create current Date */ - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Date_CreateFromPRTime - (PR_Now(), &validity, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&revCheckers, plContext)); - - /* create revChecker */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_OcspChecker_Initialize - (validity, - NULL, /* pwArg */ - NULL, /* Use default responder */ - &revChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_RevocationChecker_GetRevCheckerContext - (revChecker, &revCheckerContext, plContext)); - - /* Check that this object is a ocsp checker */ - PKIX_TEST_EXPECT_NO_ERROR(pkix_CheckType - (revCheckerContext, PKIX_OCSPCHECKER_TYPE, plContext)); - - ocspChecker = (PKIX_OcspChecker *)revCheckerContext; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_OcspChecker_SetVerifyFcn - (ocspChecker, - PKIX_PL_OcspResponse_UseBuildChain, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (revCheckers, (PKIX_PL_Object *)revChecker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (procParams, revCheckers, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(revCheckers); - PKIX_TEST_DECREF_AC(revChecker); - PKIX_TEST_DECREF_AC(ocspChecker); - PKIX_TEST_DECREF_AC(validity); - - PKIX_TEST_RETURN(); - - return (0); -} - -int test_ocsp(int argc, char *argv[]){ - - PKIX_ValidateParams *valParams = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_UInt32 chainLength = 0; - PKIX_Boolean testValid = PKIX_TRUE; - PKIX_List *chainCerts = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - PKIX_PL_Cert *dirCert = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *targetCert = NULL; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - char *dirCertName = NULL; - char *anchorCertName = NULL; - char *dirName = NULL; - char *databaseDir = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage(); - return (0); - } - - startTests("OcspChecker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - subTest(argv[1+j]); - - dirName = argv[3+j]; - - chainLength = argc - j - 5; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&chainCerts, plContext)); - - for (k = 0; k < chainLength; k++) { - - dirCert = createCert(dirName, argv[5+k+j], plContext); - - if (k == 0) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object *)dirCert, plContext)); - targetCert = dirCert; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (chainCerts, (PKIX_PL_Object *)dirCert, plContext)); - - PKIX_TEST_DECREF_BC(dirCert); - } - - /* create processing params with list of trust anchors */ - - anchorCertName = argv[4+j]; - trustedCert = createCert(dirName, anchorCertName, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - /* create CertSelector with target certificate in params */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_Create - (procParams, chainCerts, &valParams, plContext)); - - testDefaultCertStore(valParams, dirName); - - pkixTestErrorResult = PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext); - - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED"); - } - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - } else { - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED SUCCESSFUL VALIDATION!\n"); - } else { /* EE */ - (void) printf("UNEXPECTED SUCCESSFUL VALIDATION!\n"); - } - } - - subTest("Displaying VerifyTree"); - - if (verifyTree == NULL) { - (void) printf("VerifyTree is NULL\n"); - } else { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object *)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", - verifyString->escAsciiString); - PKIX_TEST_DECREF_BC(verifyString); - PKIX_TEST_DECREF_BC(verifyTree); - } - -cleanup: - - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(chainCerts); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(trustedCert); - PKIX_TEST_DECREF_AC(targetCert); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("OcspChecker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_policychecker.c b/security/nss/cmd/libpkix/pkix/top/test_policychecker.c deleted file mode 100644 index e2593c81d..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_policychecker.c +++ /dev/null @@ -1,595 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_policychecker.c - * - * Test Policy Checking - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_MAX_CERTS 10 - -static void *plContext = NULL; - -static -void printUsage(char *testname) { - char *fmt = - "USAGE: %s testname" - " [ENE|EE] \"{OID[:OID]*}\" [A|E|P] cert [cert]*\n" - "(The quotes are needed around the OID argument for dbx.)\n" - "(The optional arg A indicates initialAnyPolicyInhibit.)\n" - "(The optional arg E indicates initialExplicitPolicy.)\n" - "(The optional arg P indicates initialPolicyMappingInhibit.)\n"; - printf(fmt, testname); -} - -static -void printUsageMax(PKIX_UInt32 numCerts) -{ - printf("\nUSAGE ERROR: number of certs %d exceed maximum %d\n", - numCerts, PKIX_TEST_MAX_CERTS); -} - -static -PKIX_List *policySetParse(char *policyString) -{ - char *p = NULL; - char *oid = NULL; - char c = '\0'; - PKIX_Boolean validString = PKIX_FALSE; - PKIX_PL_OID *plOID = NULL; - PKIX_List *policySet = NULL; - - PKIX_TEST_STD_VARS(); - - p = policyString; - - /* - * There may or may not be quotes around the initial-policy-set - * string. If they are omitted, dbx will strip off the curly braces. - * If they are included, dbx will strip off the quotes, but if you - * are running directly from a script, without dbx, the quotes will - * not be stripped. We need to be able to handle both cases. - */ - if (*p == '"') { - p++; - } - - if ('{' != *p++) { - return (NULL); - } - oid = p; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&policySet, plContext)); - - /* scan to the end of policyString */ - while (!validString) { - /* scan to the end of the current OID string */ - c = *oid; - while ((c != '\0') && (c != ':') && (c != '}')) { - c = *++oid; - } - - if ((c != ':') || (c != '}')) { - *oid = '\0'; /* store a null terminator */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (p, &plOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (policySet, - (PKIX_PL_Object *)plOID, - plContext)); - - PKIX_TEST_DECREF_BC(plOID); - plOID = NULL; - if (c == '}') { - /* - * Any exit but this one means - * we were given a badly-formed string. - */ - validString = PKIX_TRUE; - } - p = ++oid; - } - } - - -cleanup: - if (!validString) { - PKIX_TEST_DECREF_AC(plOID); - PKIX_TEST_DECREF_AC(policySet); - policySet = NULL; - } - - PKIX_TEST_RETURN(); - - return (policySet); -} - -/* - * FUNCTION: treeToStringHelper - * This function obtains the string representation of a PolicyNode - * Tree and compares it to the expected value. - * PARAMETERS: - * "parent" - a PolicyNode, the root of a PolicyNodeTree; - * must be non-NULL. - * "expected" - the desired string. - * THREAD SAFETY: - * Thread Safe - * - * Multiple threads can safely call this function without worrying - * about conflicts, even if they're operating on the same object. - * RETURNS: - * Nothing. - */ -static void -treeToStringHelper(PKIX_PolicyNode *parent, char *expected) -{ - PKIX_PL_String *stringRep = NULL; - char *actual = NULL; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object *)parent, &stringRep, plContext)); - - actual = PKIX_String2ASCII(stringRep, plContext); - if (actual == NULL){ - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - if (PL_strcmp(actual, expected) != 0){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%s\n", actual); - (void) printf("Expected value:\t%s\n", expected); - } - -cleanup: - - PKIX_PL_Free(actual, plContext); - - PKIX_TEST_DECREF_AC(stringRep); - - PKIX_TEST_RETURN(); -} - -static -void testPass(char *dirName, char *goodInput, char *diffInput, char *dateAscii){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Basic-Common-Fields <pass>"); - /* - * Tests the Expiration, NameChaining, and Signature Checkers - */ - - chain = createCertChain(dirName, goodInput, diffInput, plContext); - - valParams = createValidateParams - (dirName, - goodInput, - diffInput, - dateAscii, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_TEST_RETURN(); -} - -static -void testNistTest1(char *dirName) -{ -#define PKIX_TEST_NUM_CERTS 2 - char *trustAnchor = - "TrustAnchorRootCertificate.crt"; - char *intermediateCert = - "GoodCACert.crt"; - char *endEntityCert = - "ValidCertificatePathTest1EE.crt"; - char *certNames[PKIX_TEST_NUM_CERTS]; - char *asciiAnyPolicy = "2.5.29.32.0"; - PKIX_PL_Cert *certs[PKIX_TEST_NUM_CERTS] = { NULL, NULL }; - - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_List *chain = NULL; - PKIX_PL_OID *anyPolicyOID = NULL; - PKIX_List *initialPolicies = NULL; - char *anchorName = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("testNistTest1: Creating the cert chain"); - /* - * Create a chain, but don't include the first certName. - * That's the anchor, and is supplied separately from - * the chain. - */ - certNames[0] = intermediateCert; - certNames[1] = endEntityCert; - chain = createCertChainPlus - (dirName, certNames, certs, PKIX_TEST_NUM_CERTS, plContext); - - subTest("testNistTest1: Creating the Validate Parameters"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (asciiAnyPolicy, &anyPolicyOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_Create(&initialPolicies, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (initialPolicies, (PKIX_PL_Object *)anyPolicyOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetImmutable - (initialPolicies, plContext)); - - valParams = createValidateParams - (dirName, - trustAnchor, - NULL, - NULL, - initialPolicies, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("testNistTest1: Validating the chain"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - - -cleanup: - - PKIX_PL_Free(anchorName, plContext); - - PKIX_TEST_DECREF_AC(anyPolicyOID); - PKIX_TEST_DECREF_AC(initialPolicies); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(chain); - - PKIX_TEST_RETURN(); -} - -static -void testNistTest2(char *dirName) -{ -#define PKIX_TEST_NUM_CERTS 2 - char *trustAnchor = - "TrustAnchorRootCertificate.crt"; - char *intermediateCert = - "GoodCACert.crt"; - char *endEntityCert = - "ValidCertificatePathTest1EE.crt"; - char *certNames[PKIX_TEST_NUM_CERTS]; - char *asciiNist1Policy = "2.16.840.1.101.3.2.1.48.1"; - PKIX_PL_Cert *certs[PKIX_TEST_NUM_CERTS] = { NULL, NULL }; - - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_List *chain = NULL; - PKIX_PL_OID *Nist1PolicyOID = NULL; - PKIX_List *initialPolicies = NULL; - char *anchorName = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("testNistTest2: Creating the cert chain"); - /* - * Create a chain, but don't include the first certName. - * That's the anchor, and is supplied separately from - * the chain. - */ - certNames[0] = intermediateCert; - certNames[1] = endEntityCert; - chain = createCertChainPlus - (dirName, certNames, certs, PKIX_TEST_NUM_CERTS, plContext); - - subTest("testNistTest2: Creating the Validate Parameters"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (asciiNist1Policy, &Nist1PolicyOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_Create(&initialPolicies, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (initialPolicies, (PKIX_PL_Object *)Nist1PolicyOID, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetImmutable - (initialPolicies, plContext)); - - valParams = createValidateParams - (dirName, - trustAnchor, - NULL, - NULL, - initialPolicies, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("testNistTest2: Validating the chain"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - - -cleanup: - - PKIX_PL_Free(anchorName, plContext); - - PKIX_TEST_DECREF_AC(Nist1PolicyOID); - PKIX_TEST_DECREF_AC(initialPolicies); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(chain); - - PKIX_TEST_RETURN(); -} - -static void printValidPolicyTree(PKIX_ValidateResult *valResult) -{ - PKIX_PolicyNode* validPolicyTree = NULL; - PKIX_PL_String *treeString = NULL; - - PKIX_TEST_STD_VARS(); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateResult_GetPolicyTree - (valResult, &validPolicyTree, plContext)); - if (validPolicyTree) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)validPolicyTree, - &treeString, - plContext)); - (void) printf("validPolicyTree is\n\t%s\n", - treeString->escAsciiString); - } else { - (void) printf("validPolicyTree is NULL\n"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(validPolicyTree); - PKIX_TEST_DECREF_AC(treeString); - - PKIX_TEST_RETURN(); -} - -int test_policychecker(int argc, char *argv[]) -{ - - PKIX_Boolean initialPolicyMappingInhibit = PKIX_FALSE; - PKIX_Boolean initialAnyPolicyInhibit = PKIX_FALSE; - PKIX_Boolean initialExplicitPolicy = PKIX_FALSE; - PKIX_Boolean expectedResult = PKIX_FALSE; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 initArgs = 0; - PKIX_UInt32 firstCert = 0; - PKIX_UInt32 i = 0; - PKIX_Int32 j = 0; - PKIX_UInt32 actualMinorVersion; - PKIX_ProcessingParams *procParams = NULL; - char *firstTrustAnchor = "yassir2yassir"; - char *secondTrustAnchor = "yassir2bcn"; - char *dateAscii = "991201000000Z"; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_List *userInitialPolicySet = NULL; /* List of PKIX_PL_OID */ - char *certNames[PKIX_TEST_MAX_CERTS]; - PKIX_PL_Cert *certs[PKIX_TEST_MAX_CERTS]; - PKIX_List *chain = NULL; - PKIX_Error *validationError = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - char *dirName = NULL; - char *dataCentralDir = NULL; - char *anchorName = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* - * Perform hard-coded tests if no command line args. - * If command line args are provided, they must be: - * arg[1]: test name - * arg[2]: "ENE" or "EE", for "expect no error" or "expect error" - * arg[3]: directory for certificates - * arg[4]: user-initial-policy-set, consisting of braces - * containing zero or more OID sequences, separated by commas - * arg[5]: (optional) "E", indicating initialExplicitPolicy - * arg[firstCert]: the path and filename of the trust anchor certificate - * arg[firstCert+1..(n-1)]: successive certificates in the chain - * arg[n]: the end entity certificate - * - * Example: test_policychecker test1EE ENE - * {2.5.29.32.0,2.5.29.32.3.6} Anchor CA EndEntity - */ - - dirName = argv[3+j]; - dataCentralDir = argv[4+j]; - - if (argc <= 5 || ((6 == argc) && (j))) { - - testPass - (dataCentralDir, - firstTrustAnchor, - secondTrustAnchor, - dateAscii); - - testNistTest1(dirName); - - testNistTest2(dirName); - - goto cleanup; - } - - if (argc < (7 + j)) { - printUsage(argv[0]); - pkixTestErrorMsg = "Invalid command line arguments."; - goto cleanup; - } - - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - expectedResult = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - expectedResult = PKIX_FALSE; - } else { - printUsage(argv[0]); - pkixTestErrorMsg = "Invalid command line arguments."; - goto cleanup; - } - - userInitialPolicySet = policySetParse(argv[5+j]); - if (!userInitialPolicySet) { - printUsage(argv[0]); - pkixTestErrorMsg = "Invalid command line arguments."; - goto cleanup; - } - - for (initArgs = 0; initArgs < 3; initArgs++) { - if (PORT_Strcmp(argv[6+j+initArgs], "A") == 0) { - initialAnyPolicyInhibit = PKIX_TRUE; - } else if (PORT_Strcmp(argv[6+j+initArgs], "E") == 0) { - initialExplicitPolicy = PKIX_TRUE; - } else if (PORT_Strcmp(argv[6+j+initArgs], "P") == 0) { - initialPolicyMappingInhibit = PKIX_TRUE; - } else { - break; - } - } - - firstCert = initArgs + j + 6; - chainLength = argc - (firstCert + 1); - if (chainLength > PKIX_TEST_MAX_CERTS) { - printUsageMax(chainLength); - pkixTestErrorMsg = "Invalid command line arguments."; - goto cleanup; - } - - /* - * Create a chain, but don't include the first certName. - * That's the anchor, and is supplied separately from - * the chain. - */ - for (i = 0; i < chainLength; i++) { - - certNames[i] = argv[i + (firstCert + 1)]; - certs[i] = NULL; - } - chain = createCertChainPlus - (dirName, certNames, certs, chainLength, plContext); - - subTest(argv[1+j]); - - valParams = createValidateParams - (dirName, - argv[firstCert], - NULL, - NULL, - userInitialPolicySet, - initialPolicyMappingInhibit, - initialAnyPolicyInhibit, - initialExplicitPolicy, - PKIX_FALSE, - chain, - plContext); - - if (expectedResult == PKIX_TRUE) { - subTest(" (expecting successful validation)"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - - printValidPolicyTree(valResult); - - } else { - subTest(" (expecting validation to fail)"); - validationError = PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext); - if (!validationError) { - printValidPolicyTree(valResult); - pkixTestErrorMsg = "Should have thrown an error here."; - } - PKIX_TEST_DECREF_BC(validationError); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - -cleanup: - - PKIX_PL_Free(anchorName, plContext); - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(userInitialPolicySet); - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(validationError); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("PolicyChecker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c b/security/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c deleted file mode 100644 index ceeddab67..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_subjaltnamechecker.c +++ /dev/null @@ -1,299 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_subjaltnamechecker.c - * - * Test Subject Alternative Name Checking - * - */ - -/* - * There is no subjaltnamechecker. Instead, targetcertchecker is doing - * the job for checking subject alternative names' validity. For testing, - * in order to enter names with various type, we create this test excutable - * to parse different scenario. - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_MAX_CERTS 10 - -static void *plContext = NULL; - -static -void printUsage1(char *pName){ - printf("\nUSAGE: %s test-name [ENE|EE] ", pName); - printf("cert [certs].\n"); -} - -static -void printUsage2(char *name) { - printf("\ninvalid test-name syntax - %s", name); - printf("\ntest-name syntax: [01][DNORU]:<name>+..."); - printf("\n [01] 1 - match all; 0 - match one"); - printf("\n name - type can be specified as"); - printf("\n [DNORU] D-Directory name"); - printf("\n N-DNS name"); - printf("\n O-OID name"); - printf("\n R-RFC822 name"); - printf("\n U-URI name"); - printf("\n + separator for more names\n\n"); -} - -static -void printUsageMax(PKIX_UInt32 numCerts){ - printf("\nUSAGE ERROR: number of certs %d exceed maximum %d\n", - numCerts, PKIX_TEST_MAX_CERTS); -} - -static -PKIX_UInt32 getNameType(char *name){ - PKIX_UInt32 nameType; - - PKIX_TEST_STD_VARS(); - - switch (*name) { - case 'D': - nameType = PKIX_DIRECTORY_NAME; - break; - case 'N': - nameType = PKIX_DNS_NAME; - break; - case 'O': - nameType = PKIX_OID_NAME; - break; - case 'R': - nameType = PKIX_RFC822_NAME; - break; - case 'U': - nameType = PKIX_URI_NAME; - break; - default: - printUsage2(name); - nameType = 0xFFFF; - } - - goto cleanup; - -cleanup: - PKIX_TEST_RETURN(); - return (nameType); -} - -int test_subjaltnamechecker(int argc, char *argv[]){ - - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *selParams = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_PL_GeneralName *name = NULL; - PKIX_UInt32 actualMinorVersion; - char *certNames[PKIX_TEST_MAX_CERTS]; - PKIX_PL_Cert *certs[PKIX_TEST_MAX_CERTS]; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - char *nameStr; - char *nameEnd; - char *names[PKIX_TEST_MAX_CERTS]; - PKIX_UInt32 numNames = 0; - PKIX_UInt32 nameType; - PKIX_Boolean matchAll = PKIX_TRUE; - PKIX_Boolean testValid = PKIX_TRUE; - char *dirName = NULL; - char *anchorName = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage1(argv[0]); - return (0); - } - - startTests("SubjAltNameConstraintChecker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - j++; /* skip test-purpose string */ - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage1(argv[0]); - return (0); - } - - /* taking out leading and trailing ", if any */ - nameStr = argv[1+j]; - subTest(nameStr); - if (*nameStr == '"'){ - nameStr++; - nameEnd = nameStr; - while (*nameEnd != '"' && *nameEnd != '\0') { - nameEnd++; - } - *nameEnd = '\0'; - } - - /* extract first [0|1] inidcating matchAll or not */ - matchAll = (*nameStr == '0')?PKIX_FALSE:PKIX_TRUE; - nameStr++; - - numNames = 0; - while (*nameStr != '\0') { - names[numNames++] = nameStr; - while (*nameStr != '+' && *nameStr != '\0') { - nameStr++; - } - if (*nameStr == '+') { - *nameStr = '\0'; - nameStr++; - } - } - - chainLength = (argc - j) - 4; - if (chainLength > PKIX_TEST_MAX_CERTS) { - printUsageMax(chainLength); - } - - for (i = 0; i < chainLength; i++) { - certNames[i] = argv[(4+j)+i]; - certs[i] = NULL; - } - - /* SubjAltName for validation */ - - subTest("Add Subject Alt Name for NameConstraint checking"); - - subTest("Create Selector and ComCertSelParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&selParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, selParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetMatchAllSubjAltNames"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetMatchAllSubjAltNames - (selParams, matchAll, plContext)); - - subTest("PKIX_ComCertSelParams_AddSubjAltName(s)"); - for (i = 0; i < numNames; i++) { - nameType = getNameType(names[i]); - if (nameType == 0xFFFF) { - return (0); - } - nameStr = names[i] + 2; - name = createGeneralName(nameType, nameStr, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_AddSubjAltName - (selParams, name, plContext)); - PKIX_TEST_DECREF_BC(name); - } - - subTest("SubjAltName-Constraints - Create Cert Chain"); - - dirName = argv[3+j]; - - chain = createCertChainPlus - (dirName, certNames, certs, chainLength, plContext); - - subTest("SubjAltName-Constraints - Create Params"); - - valParams = createValidateParams - (dirName, - argv[4+j], - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("PKIX_ValidateParams_getProcessingParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - subTest("PKIX_ProcessingParams_SetTargetCertConstraints"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, selector, plContext)); - - subTest("Subject Alt Name - Validate Chain"); - - if (testValid == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } - -cleanup: - - PKIX_PL_Free(anchorName, plContext); - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(selector); - PKIX_TEST_DECREF_AC(selParams); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(name); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("SubjAltNameConstraintsChecker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_validatechain.c b/security/nss/cmd/libpkix/pkix/top/test_validatechain.c deleted file mode 100644 index 196c345ad..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_validatechain.c +++ /dev/null @@ -1,265 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_validatechain.c - * - * Test ValidateChain function - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\nvalidateChain TestName [ENE|EE] " - "<certStoreDirectory> <trustedCert> <targetCert>\n\n"); - (void) printf - ("Validates a chain of certificates between " - "<trustedCert> and <targetCert>\n" - "using the certs and CRLs in <certStoreDirectory>. " - "If ENE is specified,\n" - "then an Error is Not Expected. " - "If EE is specified, an Error is Expected.\n"); -} - -static -char *createFullPathName( - char *dirName, - char *certFile, - void *plContext) -{ - PKIX_UInt32 certFileLen; - PKIX_UInt32 dirNameLen; - char *certPathName = NULL; - - PKIX_TEST_STD_VARS(); - - certFileLen = PL_strlen(certFile); - dirNameLen = PL_strlen(dirName); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (dirNameLen + certFileLen + 2, - (void **)&certPathName, - plContext)); - - PL_strcpy(certPathName, dirName); - PL_strcat(certPathName, "/"); - PL_strcat(certPathName, certFile); - printf("certPathName = %s\n", certPathName); - -cleanup: - - PKIX_TEST_RETURN(); - - return (certPathName); -} - -static PKIX_Error * -testDefaultCertStore(PKIX_ValidateParams *valParams, char *crlDir) -{ - PKIX_PL_String *dirString = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_PL_Date *validity = NULL; - PKIX_List *revCheckers = NULL; - PKIX_RevocationChecker *ocspChecker = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CollectionCertStoreContext_Create"); - - /* Create CollectionCertStore */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, crlDir, 0, &dirString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, &certStore, plContext)); - - /* Create CertStore */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - subTest("PKIX_ProcessingParams_AddCertStore"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertStore - (procParams, certStore, plContext)); - - subTest("PKIX_ProcessingParams_SetRevocationEnabled"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_TRUE, plContext)); - - /* create current Date */ - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Date_CreateFromPRTime - (PR_Now(), &validity, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&revCheckers, plContext)); - - /* create revChecker */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_OcspChecker_Initialize - (validity, - NULL, /* pwArg */ - NULL, /* Use default responder */ - &ocspChecker, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (revCheckers, (PKIX_PL_Object *)ocspChecker, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationCheckers - (procParams, revCheckers, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(revCheckers); - PKIX_TEST_DECREF_AC(ocspChecker); - - PKIX_TEST_RETURN(); - - return (0); -} - -int test_validatechain(int argc, char *argv[]){ - - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_UInt32 chainLength = 0; - PKIX_Boolean testValid = PKIX_TRUE; - PKIX_List *chainCerts = NULL; - PKIX_PL_Cert *dirCert = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - char *dirCertName = NULL; - char *anchorCertName = NULL; - char *dirName = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage(); - return (0); - } - - startTests("ValidateChain"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - subTest(argv[1+j]); - - dirName = argv[3+j]; - - chainLength = argc - j - 5; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&chainCerts, plContext)); - - for (k = 0; k < chainLength; k++) { - - dirCert = createCert(dirName, argv[5+k+j], plContext); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (chainCerts, (PKIX_PL_Object *)dirCert, plContext)); - - PKIX_TEST_DECREF_BC(dirCert); - } - - valParams = createValidateParams - (dirName, - argv[4+j], - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chainCerts, - plContext); - - testDefaultCertStore(valParams, dirName); - - if (testValid == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - } - - subTest("Displaying VerifyNode objects"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - -cleanup: - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - - PKIX_TEST_DECREF_AC(chainCerts); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ValidateChain"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c b/security/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c deleted file mode 100644 index 5dd5ca0c8..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_validatechain_NB.c +++ /dev/null @@ -1,402 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_validatechain_NB.c - * - * Test ValidateChain (nonblocking I/O) function - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\ntest_validateChain_NB TestName [ENE|EE] " - "<certStoreDirectory> <trustedCert> <targetCert>\n\n"); - (void) printf - ("Validates a chain of certificates between " - "<trustedCert> and <targetCert>\n" - "using the certs and CRLs in <certStoreDirectory>. " - "If ENE is specified,\n" - "then an Error is Not Expected. " - "If EE is specified, an Error is Expected.\n"); -} - -static -char *createFullPathName( - char *dirName, - char *certFile, - void *plContext) -{ - PKIX_UInt32 certFileLen; - PKIX_UInt32 dirNameLen; - char *certPathName = NULL; - - PKIX_TEST_STD_VARS(); - - certFileLen = PL_strlen(certFile); - dirNameLen = PL_strlen(dirName); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (dirNameLen + certFileLen + 2, - (void **)&certPathName, - plContext)); - - PL_strcpy(certPathName, dirName); - PL_strcat(certPathName, "/"); - PL_strcat(certPathName, certFile); - printf("certPathName = %s\n", certPathName); - -cleanup: - - PKIX_TEST_RETURN(); - - return (certPathName); -} - -static PKIX_Error * -testSetupCertStore(PKIX_ValidateParams *valParams, char *ldapName) -{ - PKIX_PL_String *dirString = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_PL_LdapDefaultClient *ldapClient = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CollectionCertStoreContext_Create"); - - /* Create LDAPCertStore */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapDefaultClient_CreateByName - (ldapName, - 0, /* timeout */ - NULL, /* bindPtr */ - &ldapClient, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_LdapCertStore_Create - ((PKIX_PL_LdapClient *)ldapClient, - &certStore, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - subTest("PKIX_ProcessingParams_AddCertStore"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_AddCertStore - (procParams, certStore, plContext)); - - subTest("PKIX_ProcessingParams_SetRevocationEnabled"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_TRUE, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(ldapClient); - - PKIX_TEST_RETURN(); - - return (0); -} - -static char *levels[] = { - "None", "Fatal Error", "Error", "Warning", "Debug", "Trace" -}; - -static PKIX_Error *loggerCallback( - PKIX_Logger *logger, - PKIX_PL_String *message, - PKIX_UInt32 logLevel, - PKIX_ERRORCLASS logComponent, - void *plContext) -{ -#define resultSize 150 - char *msg = NULL; - char result[resultSize]; - - PKIX_TEST_STD_VARS(); - - msg = PKIX_String2ASCII(message, plContext); - PR_snprintf(result, resultSize, - "Logging %s (%s): %s", - levels[logLevel], - PKIX_ERRORCLASSNAMES[logComponent], - msg); - subTest(result); - -cleanup: - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(msg, plContext)); - PKIX_TEST_RETURN(); -} - -static -void testLogErrors( - PKIX_ERRORCLASS module, - PKIX_UInt32 loggingLevel, - PKIX_List *loggers, - void *plContext) -{ - PKIX_Logger *logger = NULL; - PKIX_PL_String *component = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_Create - (loggerCallback, NULL, &logger, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_SetLoggingComponent - (logger, module, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_SetMaxLoggingLevel - (logger, loggingLevel, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (loggers, (PKIX_PL_Object *) logger, plContext)); - -cleanup: - PKIX_TEST_DECREF_AC(logger); - PKIX_TEST_DECREF_AC(component); - - PKIX_TEST_RETURN(); -} - -int test_validatechain_NB(int argc, char *argv[]){ - - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - PKIX_UInt32 k = 0; - PKIX_UInt32 chainLength = 0; - PKIX_Boolean testValid = PKIX_TRUE; - PKIX_List *chainCerts = NULL; - PKIX_PL_Cert *dirCert = NULL; - char *dirCertName = NULL; - char *anchorCertName = NULL; - char *dirName = NULL; - PKIX_UInt32 certIndex = 0; - PKIX_UInt32 anchorIndex = 0; - PKIX_UInt32 checkerIndex = 0; - PKIX_Boolean revChecking = PKIX_FALSE; - PKIX_List *checkers = NULL; - PRPollDesc *pollDesc = NULL; - PRErrorCode errorCode = 0; - PKIX_PL_Socket *socket = NULL; - char *ldapName = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - - PKIX_List *loggers = NULL; - PKIX_Logger *logger = NULL; - char *logging = NULL; - PKIX_PL_String *component = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage(); - return (0); - } - - startTests("ValidateChain_NB"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage(); - return (0); - } - - subTest(argv[1+j]); - - dirName = argv[3+j]; - - chainLength = argc - j - 5; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&chainCerts, plContext)); - - for (k = 0; k < chainLength; k++){ - - dirCert = createCert(dirName, argv[5+k+j], plContext); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (chainCerts, (PKIX_PL_Object *)dirCert, plContext)); - - PKIX_TEST_DECREF_BC(dirCert); - } - - valParams = createValidateParams - (dirName, - argv[4+j], - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chainCerts, - plContext); - - ldapName = PR_GetEnv("LDAP"); - /* Is LDAP set in the environment? */ - if ((ldapName == NULL) || (*ldapName == '\0')) { - testError("LDAP not set in environment"); - goto cleanup; - } - - pkixTestErrorResult = pkix_pl_Socket_CreateByName - (PKIX_FALSE, /* isServer */ - PR_SecondsToInterval(30), /* try 30 secs for connect */ - ldapName, - &errorCode, - &socket, - plContext); - - if (pkixTestErrorResult != NULL) { - PKIX_PL_Object_DecRef - ((PKIX_PL_Object *)pkixTestErrorResult, plContext); - pkixTestErrorResult = NULL; - testError("Unable to connect to LDAP Server"); - goto cleanup; - } - - PKIX_TEST_DECREF_BC(socket); - - testSetupCertStore(valParams, ldapName); - - logging = PR_GetEnv("LOGGING"); - /* Is LOGGING set in the environment? */ - if ((logging != NULL) && (*logging != '\0')) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_Create(&loggers, plContext)); - - testLogErrors - (PKIX_VALIDATE_ERROR, 2, loggers, plContext); - testLogErrors - (PKIX_CERTCHAINCHECKER_ERROR, 2, loggers, plContext); - testLogErrors - (PKIX_LDAPDEFAULTCLIENT_ERROR, 2, loggers, plContext); - testLogErrors - (PKIX_CERTSTORE_ERROR, 2, loggers, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_SetLoggers(loggers, plContext)); - - } - - pkixTestErrorResult = PKIX_ValidateChain_NB - (valParams, - &certIndex, - &anchorIndex, - &checkerIndex, - &revChecking, - &checkers, - (void **)&pollDesc, - &valResult, - &verifyTree, - plContext); - - while (pollDesc != NULL) { - - if (PR_Poll(pollDesc, 1, 0) < 0) { - testError("PR_Poll failed"); - } - - pkixTestErrorResult = PKIX_ValidateChain_NB - (valParams, - &certIndex, - &anchorIndex, - &checkerIndex, - &revChecking, - &checkers, - (void **)&pollDesc, - &valResult, - &verifyTree, - plContext); - } - - if (pkixTestErrorResult) { - if (testValid == PKIX_FALSE) { /* EE */ - (void) printf("EXPECTED ERROR RECEIVED!\n"); - } else { /* ENE */ - testError("UNEXPECTED ERROR RECEIVED"); - } - PKIX_TEST_DECREF_BC(pkixTestErrorResult); - } else { - - if (testValid == PKIX_TRUE) { /* ENE */ - (void) printf("EXPECTED NON-ERROR RECEIVED!\n"); - } else { /* EE */ - (void) printf("UNEXPECTED NON-ERROR RECEIVED!\n"); - } - } - -cleanup: - - if (verifyTree) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", - verifyString->escAsciiString); - } - - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(checkers); - PKIX_TEST_DECREF_AC(chainCerts); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("ValidateChain_NB"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c b/security/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c deleted file mode 100644 index fc0c533fe..000000000 --- a/security/nss/cmd/libpkix/pkix/top/test_validatechain_bc.c +++ /dev/null @@ -1,289 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * validateChainBasicConstraints.c - * - * Tests Cert Chain Validation - * - */ - -#include <stdio.h> -#include <string.h> -#include <stddef.h> - -#include "pkix_pl_generalname.h" -#include "pkix_pl_cert.h" -#include "pkix.h" -#include "testutil.h" -#include "prlong.h" -#include "plstr.h" -#include "prthread.h" -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "pk11func.h" -#include "secasn1.h" -#include "cert.h" -#include "cryptohi.h" -#include "secoid.h" -#include "certdb.h" -#include "secitem.h" -#include "keythi.h" -#include "nss.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - printf("\nUSAGE: incorrect.\n"); -} - -static PKIX_PL_Cert * -createCert(char *inFileName) -{ - PKIX_PL_ByteArray *byteArray = NULL; - void *buf = NULL; - PRFileDesc *inFile = NULL; - PKIX_UInt32 len; - SECItem certDER; - SECStatus rv; - /* default: NULL cert (failure case) */ - PKIX_PL_Cert *cert = NULL; - - PKIX_TEST_STD_VARS(); - - certDER.data = NULL; - - inFile = PR_Open(inFileName, PR_RDONLY, 0); - - if (!inFile){ - pkixTestErrorMsg = "Unable to open cert file"; - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&certDER, inFile, PR_FALSE); - if (!rv){ - buf = (void *)certDER.data; - len = certDER.len; - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_Create - (byteArray, &cert, plContext)); - - SECITEM_FreeItem(&certDER, PR_FALSE); - } else { - pkixTestErrorMsg = "Unable to read DER from cert file"; - goto cleanup; - } - } - -cleanup: - - if (inFile){ - PR_Close(inFile); - } - - if (PKIX_TEST_ERROR_RECEIVED){ - SECITEM_FreeItem(&certDER, PR_FALSE); - } - - PKIX_TEST_DECREF_AC(byteArray); - - PKIX_TEST_RETURN(); - - return (cert); -} - -int test_validatechain_bc(int argc, char *argv[]) -{ - - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *certs = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_PL_X500Name *subject = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - - char *trustedCertFile = NULL; - char *chainCertFile = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *chainCert = NULL; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 actualMinorVersion; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 3){ - printUsage(); - return (0); - } - - startTests("ValidateChainBasicConstraints"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - chainLength = (argc - j) - 2; - - /* create processing params with list of trust anchors */ - trustedCertFile = argv[1+j]; - trustedCert = createCert(trustedCertFile); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubject(trustedCert, &subject, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetBasicConstraints - (certSelParams, -1, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_DECREF_BC(subject); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - PKIX_TEST_DECREF_BC(certSelector); - - /* create cert chain */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certs, plContext)); - for (i = 0; i < chainLength; i++){ - chainCertFile = argv[i + (2+j)]; - chainCert = createCert(chainCertFile); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certs, (PKIX_PL_Object *)chainCert, plContext)); - - PKIX_TEST_DECREF_BC(chainCert); - } - - /* create validate params with processing params and cert chain */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_Create - (procParams, certs, &valParams, plContext)); - - - /* validate cert chain using processing params and return valResult */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - - if (valResult != NULL){ - printf("SUCCESSFULLY VALIDATED with Basic Constraint "); - printf("Cert Selector minimum path length to be -1\n"); - PKIX_TEST_DECREF_BC(valResult); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - PKIX_TEST_DECREF_BC(verifyString); - PKIX_TEST_DECREF_BC(verifyTree); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetBasicConstraints - (certSelParams, 6, plContext)); - - /* validate cert chain using processing params and return valResult */ - - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, &verifyTree, plContext)); - - if (valResult != NULL){ - printf("SUCCESSFULLY VALIDATED with Basic Constraint "); - printf("Cert Selector minimum path length to be 6\n"); - } - - PKIX_TEST_DECREF_BC(trustedCert); - PKIX_TEST_DECREF_BC(anchor); - PKIX_TEST_DECREF_BC(anchors); - PKIX_TEST_DECREF_BC(certs); - PKIX_TEST_DECREF_BC(procParams); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - printf("FAILED TO VALIDATE\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext)); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - PKIX_TEST_DECREF_AC(verifyString); - PKIX_TEST_DECREF_AC(verifyTree); - - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(valParams); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - endTests("ValidateChainBasicConstraints"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/util/Makefile b/security/nss/cmd/libpkix/pkix/util/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix/util/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix/util/manifest.mn b/security/nss/cmd/libpkix/pkix/util/manifest.mn deleted file mode 100755 index f63ead6f4..000000000 --- a/security/nss/cmd/libpkix/pkix/util/manifest.mn +++ /dev/null @@ -1,56 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_error.c \ - test_list.c \ - test_list2.c \ - test_logger.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolutil - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix/util/test_error.c b/security/nss/cmd/libpkix/pkix/util/test_error.c deleted file mode 100644 index 776c4bab1..000000000 --- a/security/nss/cmd/libpkix/pkix/util/test_error.c +++ /dev/null @@ -1,450 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_error.c - * - * Tests Error Object Creation, ToString, Callbacks and Destroy - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void createErrors( - PKIX_Error **error, - PKIX_Error **error2, - PKIX_Error **error3, - PKIX_Error **error5, - PKIX_Error **error6, - PKIX_Error **error7, - char *infoChar) - -{ - PKIX_PL_String *infoString = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - infoChar, - PL_strlen(infoChar), - &infoString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_MEM_ERROR, - NULL, - NULL, - PKIX_TESTANOTHERERRORMESSAGE, - error2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_OBJECT_ERROR, - *error2, - (PKIX_PL_Object*)infoString, - PKIX_TESTERRORMESSAGE, - error, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_OBJECT_ERROR, - *error2, - (PKIX_PL_Object*)infoString, - PKIX_TESTERRORMESSAGE, - error3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_OBJECT_ERROR, - NULL, - (PKIX_PL_Object*)infoString, - 0, - error5, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_MEM_ERROR, - *error5, - (PKIX_PL_Object*)infoString, - 0, - error6, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_Create - (PKIX_OBJECT_ERROR, - *error6, - (PKIX_PL_Object*)infoString, - 0, - error7, - plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(infoString); - - PKIX_TEST_RETURN(); -} - -static -void testGetErrorClass(PKIX_Error *error, PKIX_Error *error2) -{ - PKIX_ERRORCLASS errClass; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_Error_GetErrorClass(error, &errClass, plContext)); - - if (errClass != PKIX_OBJECT_ERROR) { - testError("Incorrect Class Returned"); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_Error_GetErrorClass(error2, &errClass, plContext)); - - if (errClass != PKIX_MEM_ERROR) { - testError("Incorrect Class Returned"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_GetErrorClass(PKIX_ALLOC_ERROR(), - &errClass, plContext)); - if (errClass != PKIX_FATAL_ERROR) { - testError("Incorrect Class Returned"); - } - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testGetDescription( - PKIX_Error *error, - PKIX_Error *error2, - PKIX_Error *error3, - char *descChar, - char *descChar2) -{ - - PKIX_PL_String *targetString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_GetDescription - (error, &targetString, plContext)); - temp = PKIX_String2ASCII(targetString, plContext); - PKIX_TEST_DECREF_BC(targetString); - - if (temp){ - if (PL_strcmp(temp, descChar) != 0) { - testError("Incorrect description returned"); - } - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_GetDescription - (error2, &targetString, plContext)); - temp = PKIX_String2ASCII(targetString, plContext); - PKIX_TEST_DECREF_BC(targetString); - - if (temp){ - if (PL_strcmp(temp, descChar2) != 0) { - testError("Incorrect description returned"); - } - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_GetDescription - (error3, &targetString, plContext)); - temp = PKIX_String2ASCII(targetString, plContext); - PKIX_TEST_DECREF_BC(targetString); - - if (temp){ - if (PL_strcmp(temp, descChar) != 0) { - testError("Incorrect description returned"); - } - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static -void testGetCause(PKIX_Error *error, PKIX_Error *error2, PKIX_Error *error3) -{ - - PKIX_Error *error4 = NULL; - PKIX_PL_String *targetString = NULL; - char *temp = NULL; - PKIX_Boolean boolResult; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_Error_GetCause(error, &error4, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object*)error2, - (PKIX_PL_Object*)error4, - &boolResult, plContext)); - if (!boolResult) - testError("Incorrect Cause returned"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)error4, - &targetString, plContext)); - - temp = PKIX_String2ASCII(targetString, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(targetString); - PKIX_TEST_DECREF_BC(error4); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_Error_GetCause(error3, &error4, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object*)error2, - (PKIX_PL_Object*)error4, - &boolResult, plContext)); - if (!boolResult) - testError("Incorrect Cause returned"); - - PKIX_TEST_DECREF_BC(error4); - -cleanup: - - PKIX_TEST_RETURN(); - - -} - -static -void testGetSupplementaryInfo(PKIX_Error *error, char *infoChar) -{ - - PKIX_PL_Object *targetString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Error_GetSupplementaryInfo - (error, &targetString, plContext)); - temp = PKIX_String2ASCII((PKIX_PL_String*)targetString, plContext); - PKIX_TEST_DECREF_BC(targetString); - - if (temp){ - if (PL_strcmp(temp, infoChar) != 0) { - testError("Incorrect info returned"); - } - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - -cleanup: - - PKIX_TEST_RETURN(); - - -} - -static void -testPrimitiveError(void) -{ - PKIX_PL_String *targetString = NULL; - PKIX_PL_String *targetStringCopy = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)PKIX_ALLOC_ERROR(), - &targetString, plContext)); - - temp = PKIX_String2ASCII(targetString, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - targetStringCopy = targetString; - - PKIX_TEST_DECREF_BC(targetString); - - /* - * We need to DECREF twice, b/c the PKIX_ALLOC_ERROR object - * which holds a cached copy of the stringRep can never be DECREF'd - */ - PKIX_TEST_DECREF_BC(targetStringCopy); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testChaining(PKIX_Error *error7) -{ - PKIX_PL_String *targetString = NULL; - PKIX_Error *tempError = NULL; - char *temp = NULL; - PKIX_UInt32 i; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)error7, - &targetString, plContext)); - - temp = PKIX_String2ASCII(targetString, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - - for (i = 0, tempError = error7; i < 2; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_Error_GetCause(tempError, &tempError, plContext)); - if (tempError == NULL) { - testError("Unexpected end to error chain"); - break; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_DecRef - ((PKIX_PL_Object*)tempError, plContext)); - } - - PKIX_TEST_DECREF_BC(targetString); - - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy(PKIX_Error *error) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(error); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_error(int argc, char *argv[]) -{ - - PKIX_Error *error, *error2, *error3, *error5, *error6, *error7; - char *descChar = "Error Message"; - char *descChar2 = "Another Error Message"; - char *infoChar = "Auxiliary Info"; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Errors"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_Error_Create"); - createErrors - (&error, - &error2, - &error3, - &error5, - &error6, - &error7, - infoChar); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (error, - error, - error2, - NULL, - Error, - PKIX_TRUE); - - subTest("PKIX_Error_GetErrorClass"); - testGetErrorClass(error, error2); - - subTest("PKIX_Error_GetDescription"); - testGetDescription(error, error2, error3, descChar, descChar2); - - subTest("PKIX_Error_GetCause"); - testGetCause(error, error2, error3); - - subTest("PKIX_Error_GetSupplementaryInfo"); - testGetSupplementaryInfo(error, infoChar); - - subTest("Primitive Error Type"); - testPrimitiveError(); - - subTest("Error Chaining"); - testChaining(error7); - - subTest("PKIX_Error_Destroy"); - testDestroy(error); - testDestroy(error2); - testDestroy(error3); - testDestroy(error5); - testDestroy(error6); - testDestroy(error7); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Errors"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/util/test_list.c b/security/nss/cmd/libpkix/pkix/util/test_list.c deleted file mode 100644 index eb145c0b1..000000000 --- a/security/nss/cmd/libpkix/pkix/util/test_list.c +++ /dev/null @@ -1,878 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_list.c - * - * Tests List Objects - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createLists(PKIX_List **list, PKIX_List **list2) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(list, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(list2, plContext)); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testReverseList(void) -{ - PKIX_List *firstList = NULL; - PKIX_List *reverseList = NULL; - PKIX_UInt32 length, i; - char *testItemString = "one"; - char *testItemString2 = "two"; - PKIX_PL_String *testItem = NULL; - PKIX_PL_String *testItem2 = NULL; - PKIX_PL_Object *retrievedItem1 = NULL; - PKIX_PL_Object *retrievedItem2 = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&firstList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_ReverseList - (firstList, &reverseList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (reverseList, &length, plContext)); - if (length != 0){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_DECREF_BC(reverseList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - 0, - &testItem, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString2, - 0, - &testItem2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_ReverseList - (firstList, &reverseList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (reverseList, &length, plContext)); - if (length != 1){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_DECREF_BC(reverseList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (firstList, - (PKIX_PL_Object*)testItem2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_ReverseList - (firstList, &reverseList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (reverseList, &length, plContext)); - if (length != 4){ - testError("Incorrect Length returned"); - } - - for (i = 0; i < length; i++){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (firstList, - i, - &retrievedItem1, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (reverseList, - (length - 1) - i, - &retrievedItem2, - plContext)); - - testEqualsHelper - (retrievedItem1, retrievedItem2, PKIX_TRUE, plContext); - - PKIX_TEST_DECREF_BC(retrievedItem1); - PKIX_TEST_DECREF_BC(retrievedItem2); - - } - -cleanup: - - PKIX_TEST_DECREF_AC(firstList); - PKIX_TEST_DECREF_AC(reverseList); - - PKIX_TEST_DECREF_AC(testItem); - PKIX_TEST_DECREF_AC(testItem2); - - PKIX_TEST_DECREF_AC(retrievedItem1); - PKIX_TEST_DECREF_AC(retrievedItem2); - - PKIX_TEST_RETURN(); -} - -static void -testZeroLengthList(PKIX_List *list) -{ - PKIX_UInt32 length; - PKIX_Boolean empty; - char *testItemString = "hello"; - PKIX_PL_String *testItem = NULL; - PKIX_PL_String *retrievedItem = NULL; - PKIX_List *diffList = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&diffList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(list, &length, plContext)); - - if (length != 0){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsEmpty(list, &empty, plContext)); - if (!empty){ - testError("Incorrect result for PKIX_List_IsEmpty"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - 0, - &testItem, - plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_InsertItem - (list, 0, (PKIX_PL_Object *)testItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_SetItem - (list, 0, (PKIX_PL_Object *)testItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_GetItem - (list, - 0, - (PKIX_PL_Object **)&retrievedItem, - plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(list, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (diffList, - (PKIX_PL_Object*)testItem, - plContext)); - - testDuplicateHelper((PKIX_PL_Object *)diffList, plContext); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (list, list, diffList, "(EMPTY)", List, PKIX_TRUE); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(diffList, &length, plContext)); - if (length != 1){ - testError("Incorrect Length returned"); - } - - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(list, 1, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_DeleteItem(diffList, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(diffList, &length, plContext)); - if (length != 0){ - testError("Incorrect Length returned"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(testItem); - PKIX_TEST_DECREF_AC(diffList); - PKIX_TEST_RETURN(); -} - -static void -testGetLength(PKIX_List *list) -{ - PKIX_UInt32 length; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(list, &length, plContext)); - - if (length != 3){ - testError("Incorrect Length returned"); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testGetSetItem( - PKIX_List *list, - char *testItemString, - char *testItemString2, - char *testItemString3, - PKIX_PL_String **testItem, - PKIX_PL_String **testItem2, - PKIX_PL_String **testItem3) -{ - PKIX_PL_Object *tempItem = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - PL_strlen(testItemString), - testItem, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString2, - PL_strlen(testItemString2), - testItem2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString3, - PL_strlen(testItemString3), - testItem3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list, (PKIX_PL_Object*)*testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list, (PKIX_PL_Object*)*testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list, (PKIX_PL_Object*)*testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 0, (PKIX_PL_Object*)*testItem, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 1, (PKIX_PL_Object*)*testItem2, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 2, (PKIX_PL_Object*)*testItem3, plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 0, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 1, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString2, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 2, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString3, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, 0, (PKIX_PL_Object*)*testItem3, plContext)); - temp = PKIX_String2ASCII(*testItem3, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 0, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString3, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testInsertItem( - PKIX_List *list, - PKIX_PL_String *testItem, - char *testItemString) -{ - PKIX_PL_Object *tempItem = NULL; - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_InsertItem - (list, 0, (PKIX_PL_Object*)testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, 0, &tempItem, plContext)); - - temp = PKIX_String2ASCII((PKIX_PL_String*)tempItem, plContext); - if (temp){ - if (PL_strcmp(testItemString, temp) != 0) - testError("GetItem from list is incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(tempItem); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(outputString); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testAppendItem(PKIX_List *list, PKIX_PL_String *testItem) -{ - PKIX_UInt32 length2; - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(list, &length2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem(list, - (PKIX_PL_Object*)testItem, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, c, b, c, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - - PKIX_TEST_DECREF_BC(outputString); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testNestedLists( - PKIX_List *list, - PKIX_List *list2, - PKIX_PL_String *testItem, - PKIX_PL_String *testItem2) -{ - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (list2, (PKIX_PL_Object*)testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem(list2, - (PKIX_PL_Object*)NULL, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem(list2, - (PKIX_PL_Object*)testItem, - plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, (null), a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_InsertItem(list, 1, - (PKIX_PL_Object*)list2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, (a, (null), a), c, b, c, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDeleteItem( - PKIX_List *list, - PKIX_List *list2, - PKIX_PL_String *testItem2, - PKIX_PL_String *testItem3) -{ - PKIX_PL_String *outputString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list, 5, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, (a, (null), a), c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list, 1, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list, 0, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(c, b, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list2, 1, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list2, - (PKIX_PL_Object*)testItem2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a, b)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_DeleteItem(list2, 2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list2, - (PKIX_PL_Object*)testItem3, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_ToString((PKIX_PL_Object*)list2, - &outputString, - plContext)); - temp = PKIX_String2ASCII(outputString, plContext); - if (temp){ - if (PL_strcmp("(a, a, c)", temp) != 0) - testError("List toString is Incorrect"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(outputString); - - - PKIX_TEST_DECREF_BC(list2); - -cleanup: - - PKIX_TEST_RETURN(); -} - -#if testContainsFunction -/* This test requires pkix_List_Contains to be in nss.def */ -static void -testContains(void) -{ - - PKIX_List *list; - PKIX_PL_String *testItem, *testItem2, *testItem3, *testItem4; - char *testItemString = "a"; - char *testItemString2 = "b"; - char *testItemString3 = "c"; - char *testItemString4 = "d"; - PKIX_Boolean found = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - subTest("pkix_ListContains"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString, - PL_strlen(testItemString), - &testItem, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString2, - PL_strlen(testItemString2), - &testItem2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString3, - PL_strlen(testItemString3), - &testItem3, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - testItemString4, - PL_strlen(testItemString4), - &testItem4, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&list, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem3, plContext)); - - subTest("pkix_List_Contains <object missing>"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_List_Contains - (list, (PKIX_PL_Object *)testItem4, &found, plContext)); - - if (found){ - testError("Contains found item that wasn't there!"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testItem4, plContext)); - - subTest("pkix_List_Contains <object present>"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_List_Contains - (list, (PKIX_PL_Object *)testItem4, &found, plContext)); - - if (!found){ - testError("Contains missed item that was present!"); - } - - PKIX_TEST_DECREF_BC(list); - PKIX_TEST_DECREF_BC(testItem); - PKIX_TEST_DECREF_BC(testItem2); - PKIX_TEST_DECREF_BC(testItem3); - PKIX_TEST_DECREF_BC(testItem4); - -cleanup: - - PKIX_TEST_RETURN(); -} -#endif - -static void -testErrorHandling(void) -{ - PKIX_List *emptylist = NULL; - PKIX_List *list = NULL; - PKIX_PL_Object *tempItem = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&list, plContext)); - - PKIX_TEST_EXPECT_ERROR - (PKIX_List_GetItem(list, 4, &tempItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_GetItem(list, 1, NULL, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_SetItem(list, 4, tempItem, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_SetItem(NULL, 1, tempItem, plContext)); - PKIX_TEST_EXPECT_ERROR - (PKIX_List_InsertItem(list, 4, tempItem, plContext)); - - PKIX_TEST_EXPECT_ERROR - (PKIX_List_InsertItem(NULL, 1, tempItem, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_List_AppendItem(NULL, tempItem, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(list, 5, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem(NULL, 1, plContext)); - PKIX_TEST_EXPECT_ERROR(PKIX_List_GetLength(list, NULL, plContext)); - - PKIX_TEST_DECREF_BC(list); - PKIX_TEST_DECREF_BC(emptylist); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy(PKIX_List *list) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(list); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_list(int argc, char *argv[]) { - - PKIX_List *list, *list2; - PKIX_PL_String *testItem, *testItem2, *testItem3; - char *testItemString = "a"; - char *testItemString2 = "b"; - char *testItemString3 = "c"; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Lists"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_List_Create"); - createLists(&list, &list2); - - subTest("pkix_List_ReverseList"); - testReverseList(); - - subTest("Zero-length List"); - testZeroLengthList(list); - - subTest("PKIX_List_Get/SetItem"); - testGetSetItem - (list, - testItemString, - testItemString2, - testItemString3, - &testItem, - &testItem2, - &testItem3); - - subTest("PKIX_List_GetLength"); - testGetLength(list); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (list, - list, - list2, - "(c, b, c)", - List, - PKIX_TRUE); - - subTest("PKIX_List_InsertItem"); - testInsertItem(list, testItem, testItemString); - - subTest("PKIX_List_AppendItem"); - testAppendItem(list, testItem); - - subTest("Nested Lists"); - testNestedLists(list, list2, testItem, testItem2); - - subTest("PKIX_List_DeleteItem"); - testDeleteItem(list, list2, testItem2, testItem3); - - PKIX_TEST_DECREF_BC(testItem); - PKIX_TEST_DECREF_BC(testItem2); - PKIX_TEST_DECREF_BC(testItem3); - -#if testContainsFunction -/* This test requires pkix_List_Contains to be in nss.def */ - testContains(); -#endif - - subTest("PKIX_List Error Handling"); - testErrorHandling(); - - subTest("PKIX_List_Destroy"); - testDestroy(list); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Lists"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix/util/test_list2.c b/security/nss/cmd/libpkix/pkix/util/test_list2.c deleted file mode 100644 index 3dffef26e..000000000 --- a/security/nss/cmd/libpkix/pkix/util/test_list2.c +++ /dev/null @@ -1,154 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_list2.c - * - * Performs an in-place sort on a list - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -int test_list2(int argc, char *argv[]) { - - PKIX_List *list; - char *temp; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_Int32 cmpResult; - PKIX_PL_OID *testOID; - PKIX_PL_String *testString; - PKIX_PL_Object *obj, *obj2; - PKIX_UInt32 size = 10; - char *testOIDString[10] = { - "2.9.999.1.20", - "1.2.3.4.5.6.7", - "0.1", - "1.2.3.5", - "0.39", - "1.2.3.4.7", - "1.2.3.4.6", - "0.39.1", - "1.2.3.4.5", - "0.39.1.300" - }; - PKIX_UInt32 actualMinorVersion; - - PKIX_TEST_STD_VARS(); - - startTests("List Sorting"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("Creating Unsorted Lists"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&list, plContext)); - for (i = 0; i < size; i++) { - /* Create a new OID object */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create( - testOIDString[i], - &testOID, - plContext)); - /* Insert it into the list */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (list, (PKIX_PL_Object*)testOID, plContext)); - /* Decref the string object */ - PKIX_TEST_DECREF_BC(testOID); - } - - subTest("Outputting Unsorted List"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &testString, - plContext)); - temp = PKIX_String2ASCII(testString, plContext); - if (temp){ - (void) printf("%s \n", temp); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - PKIX_TEST_DECREF_BC(testString); - - subTest("Performing Bubble Sort"); - - for (i = 0; i < size; i++) - for (j = 9; j > i; j--) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem(list, j, &obj, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (list, j-1, &obj2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare - (obj, obj2, &cmpResult, plContext)); - if (cmpResult < 0) { - /* Exchange the items */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, j, obj2, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetItem - (list, j-1, obj, plContext)); - } - /* DecRef objects */ - PKIX_TEST_DECREF_BC(obj); - PKIX_TEST_DECREF_BC(obj2); - } - - subTest("Outputting Sorted List"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString((PKIX_PL_Object*)list, - &testString, - plContext)); - temp = PKIX_String2ASCII(testString, plContext); - if (temp){ - (void) printf("%s \n", temp); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - -cleanup: - - PKIX_TEST_DECREF_AC(testString); - PKIX_TEST_DECREF_AC(list); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("List Sorting"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix/util/test_logger.c b/security/nss/cmd/libpkix/pkix/util/test_logger.c deleted file mode 100644 index d481ab1a3..000000000 --- a/security/nss/cmd/libpkix/pkix/util/test_logger.c +++ /dev/null @@ -1,366 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_logger.c - * - * Tests Logger Objects - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static char *levels[] = { - "None", - "Fatal Error", - "Error", - "Warning", - "Debug", - "Trace" -}; - -static -PKIX_Error *testLoggerCallback( - PKIX_Logger *logger, - PKIX_PL_String *message, - PKIX_UInt32 logLevel, - PKIX_ERRORCLASS logComponent, - void *plContext) -{ - char *comp = NULL; - char *msg = NULL; - char result[100]; - static int callCount = 0; - - PKIX_TEST_STD_VARS(); - - msg = PKIX_String2ASCII(message, plContext); - PR_snprintf(result, 100, "Logging %s (%s): %s", - levels[logLevel], PKIX_ERRORCLASSNAMES[logComponent], msg); - subTest(result); - - callCount++; - if (callCount > 1) { - testError("Incorrect number of Logger Callback <expect 1>"); - } - -cleanup: - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(msg, plContext)); - PKIX_TEST_RETURN(); -} - -static -PKIX_Error *testLoggerCallback2( - PKIX_Logger *logger, - PKIX_PL_String *message, - PKIX_UInt32 logLevel, - PKIX_ERRORCLASS logComponent, - void *plContext) -{ - char *comp = NULL; - char *msg = NULL; - char result[100]; - - PKIX_TEST_STD_VARS(); - - msg = PKIX_String2ASCII(message, plContext); - PR_snprintf(result, 100, "Logging %s (%s): %s", - levels[logLevel], PKIX_ERRORCLASSNAMES[logComponent], msg); - subTest(result); - -cleanup: - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(msg, plContext)); - PKIX_TEST_RETURN(); -} - -static void -createLogger(PKIX_Logger **logger, - PKIX_PL_Object *context, - PKIX_Logger_LogCallback cb) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_Create - (cb, context, logger, plContext)); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testContextCallback(PKIX_Logger *logger, PKIX_Logger *logger2) -{ - PKIX_Logger_LogCallback cb = NULL; - PKIX_PL_Object *context = NULL; - PKIX_Boolean cmpResult = PKIX_FALSE; - PKIX_UInt32 length; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_Logger_GetLoggerContext"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_GetLoggerContext - (logger2, &context, plContext)); - - testEqualsHelper - ((PKIX_PL_Object *)logger, context, PKIX_TRUE, plContext); - - subTest("PKIX_Logger_GetLogCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_GetLogCallback - (logger, &cb, plContext)); - - if (cb != testLoggerCallback) { - testError("Incorrect Logger Callback returned"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(context); - PKIX_TEST_RETURN(); -} - -static void -testComponent(PKIX_Logger *logger) -{ - PKIX_ERRORCLASS compName = (PKIX_ERRORCLASS)NULL; - PKIX_ERRORCLASS compNameReturn = (PKIX_ERRORCLASS)NULL; - PKIX_Boolean cmpResult = PKIX_FALSE; - PKIX_TEST_STD_VARS(); - - subTest("PKIX_Logger_GetLoggingComponent"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_GetLoggingComponent - (logger, &compName, plContext)); - - if (compName != (PKIX_ERRORCLASS)NULL) { - testError("Incorrect Logger Component returned. expect <NULL>"); - } - - subTest("PKIX_Logger_SetLoggingComponent"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_SetLoggingComponent - (logger, PKIX_LIST_ERROR, plContext)); - - subTest("PKIX_Logger_GetLoggingComponent"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_GetLoggingComponent - (logger, &compNameReturn, plContext)); - - if (compNameReturn != PKIX_LIST_ERROR) { - testError("Incorrect Logger Component returned."); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testMaxLoggingLevel(PKIX_Logger *logger) -{ - PKIX_UInt32 level = 0; - PKIX_TEST_STD_VARS(); - - subTest("PKIX_Logger_GetMaxLoggingLevel"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_GetMaxLoggingLevel - (logger, &level, plContext)); - - if (level != 0) { - testError("Incorrect Logger MaxLoggingLevel returned"); - } - - subTest("PKIX_Logger_SetMaxLoggingLevel"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_SetMaxLoggingLevel - (logger, 3, plContext)); - - subTest("PKIX_Logger_GetMaxLoggingLevel"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_GetMaxLoggingLevel - (logger, &level, plContext)); - - if (level != 3) { - testError("Incorrect Logger MaxLoggingLevel returned"); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testLogger(PKIX_Logger *logger, PKIX_Logger *logger2) -{ - PKIX_List *loggerList = NULL; - PKIX_List *checkList = NULL; - PKIX_UInt32 length; - PKIX_Boolean cmpResult = PKIX_FALSE; - char *expectedAscii = "[\n" - "\tLogger: \n" - "\tContext: (null)\n" - "\tMaximum Level: 3\n" - "\tComponent Name: LIST\n" - "]\n"; - - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_GetLoggers"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_GetLoggers(&loggerList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (loggerList, &length, plContext)); - if (length != 0){ - testError("Incorrect Logger List returned"); - } - PKIX_TEST_DECREF_BC(loggerList); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&loggerList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (loggerList, (PKIX_PL_Object *) logger, plContext)); - - subTest("PKIX_SetLoggers"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_SetLoggers(loggerList, plContext)); - - subTest("PKIX_Logger_SetLoggingComponent"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_SetLoggingComponent - (logger2, PKIX_MUTEX_ERROR, plContext)); - - subTest("PKIX_Logger_SetMaxLoggingLevel"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Logger_SetMaxLoggingLevel - (logger2, 5, plContext)); - - subTest("PKIX_AddLogger"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_AddLogger(logger2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&checkList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (checkList, (PKIX_PL_Object *) logger, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (checkList, (PKIX_PL_Object *) logger2, plContext)); - - PKIX_TEST_DECREF_BC(loggerList); - - subTest("PKIX_GetLoggers"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_GetLoggers(&loggerList, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (loggerList, &length, plContext)); - - subTest("pkix_Loggers_Equals"); - testEqualsHelper - ((PKIX_PL_Object *) loggerList, - (PKIX_PL_Object *) checkList, - PKIX_TRUE, - plContext); - - subTest("pkix_Loggers_Duplicate"); - testDuplicateHelper((PKIX_PL_Object *)logger, plContext); - - subTest("pkix_Loggers_Hashcode"); - testHashcodeHelper((PKIX_PL_Object *) logger, - (PKIX_PL_Object *) logger, - PKIX_TRUE, - plContext); - - subTest("pkix_Loggers_ToString"); - testToStringHelper((PKIX_PL_Object *) logger, expectedAscii, plContext); - - subTest("PKIX Logger Callback"); - subTest("Expect to have ***Fatal Error (List): Null argument*** once"); - PKIX_TEST_EXPECT_ERROR(PKIX_List_AppendItem - (NULL, (PKIX_PL_Object *) NULL, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(loggerList); - PKIX_TEST_DECREF_AC(checkList); - PKIX_TEST_RETURN(); -} - -static void -testDestroy(PKIX_Logger *logger) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(logger); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_logger(int argc, char *argv[]) { - - PKIX_Logger *logger, *logger2; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Loggers"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_Logger_Create"); - createLogger(&logger, NULL, testLoggerCallback); - createLogger(&logger2, (PKIX_PL_Object *)logger, testLoggerCallback2); - - subTest("Logger Context and Callback"); - testContextCallback(logger, logger2); - - subTest("Logger Component"); - testComponent(logger); - - subTest("Logger MaxLoggingLevel"); - testMaxLoggingLevel(logger); - - subTest("Logger List operations"); - testLogger(logger, logger2); - - subTest("PKIX_Logger_Destroy"); - testDestroy(logger); - testDestroy(logger2); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Loggers"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/Makefile b/security/nss/cmd/libpkix/pkix_pl/Makefile deleted file mode 100755 index 2b004b29e..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/Makefile +++ /dev/null @@ -1,81 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk - diff --git a/security/nss/cmd/libpkix/pkix_pl/manifest.mn b/security/nss/cmd/libpkix/pkix_pl/manifest.mn deleted file mode 100755 index 836b74316..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/manifest.mn +++ /dev/null @@ -1,44 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ./.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -DIRS = module pki system \ - $(NULL) diff --git a/security/nss/cmd/libpkix/pkix_pl/module/Makefile b/security/nss/cmd/libpkix/pkix_pl/module/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix_pl/module/manifest.mn b/security/nss/cmd/libpkix/pkix_pl/module/manifest.mn deleted file mode 100755 index 42edb9d62..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/manifest.mn +++ /dev/null @@ -1,57 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_colcertstore.c \ - test_ekuchecker.c \ - test_pk11certstore.c \ - test_socket.c \ - test_httpcertstore.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolmodule - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c b/security/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c deleted file mode 100644 index 5e3316c9b..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/test_colcertstore.c +++ /dev/null @@ -1,285 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_colcertstore.c - * - * Test CollectionCertStore Type - * - */ - -#include "testutil.h" - -#include "testutil_nss.h" - -/* When CRL IDP is supported, change NUM_CRLS to 9 */ -#define PKIX_TEST_COLLECTIONCERTSTORE_NUM_CRLS 4 -#define PKIX_TEST_COLLECTIONCERTSTORE_NUM_CERTS 15 - -static void *plContext = NULL; - -static PKIX_Error * -testCRLSelectorMatchCallback( - PKIX_CRLSelector *selector, - PKIX_PL_CRL *crl, - PKIX_Boolean *pMatch, - void *plContext) -{ - *pMatch = PKIX_TRUE; - - return (0); -} - -static PKIX_Error * -testCertSelectorMatchCallback( - PKIX_CertSelector *selector, - PKIX_PL_Cert *cert, - PKIX_Boolean *pResult, - void *plContext) -{ - *pResult = PKIX_TRUE; - - return (0); -} - -static PKIX_Error * -getCertCallback( - PKIX_CertStore *store, - PKIX_CertSelector *certSelector, - PKIX_List **pCerts, - void *plContext) -{ - return (0); -} - -static char *catDirName(char *platform, char *dir, void *plContext) -{ - char *pathName = NULL; - PKIX_UInt32 dirLen; - PKIX_UInt32 platformLen; - - PKIX_TEST_STD_VARS(); - - dirLen = PL_strlen(dir); - platformLen = PL_strlen(platform); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (platformLen + dirLen + 2, (void **)&pathName, plContext)); - - PL_strcpy(pathName, platform); - PL_strcat(pathName, "/"); - PL_strcat(pathName, dir); - -cleanup: - - PKIX_TEST_RETURN(); - - return (pathName); -} - -static -void testGetCRL(char *crlDir) -{ - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CRLCallback crlCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CRLSelector *crlSelector = NULL; - PKIX_List *crlList = NULL; - PKIX_UInt32 numCrl = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - crlDir, - 0, - &dirString, - plContext)); - - subTest("PKIX_PL_CollectionCertStore_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, - &certStore, - plContext)); - - subTest("PKIX_CRLSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (testCRLSelectorMatchCallback, - NULL, - &crlSelector, - plContext)); - - subTest("PKIX_CertStore_GetCRLCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCRLCallback - (certStore, &crlCallback, NULL)); - - subTest("Getting data from CRL Callback"); - PKIX_TEST_EXPECT_NO_ERROR(crlCallback - (certStore, - crlSelector, - &nbioContext, - &crlList, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (crlList, - &numCrl, - plContext)); - - if (numCrl != PKIX_TEST_COLLECTIONCERTSTORE_NUM_CRLS) { - pkixTestErrorMsg = "unexpected CRL number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(crlList); - PKIX_TEST_DECREF_AC(crlSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static -void testGetCert(char *certDir) -{ - PKIX_PL_String *dirString = NULL; - PKIX_CertStore_CertCallback certCallback; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_UInt32 numCert = 0; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - certDir, - 0, - &dirString, - plContext)); - - subTest("PKIX_PL_CollectionCertStore_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (dirString, - &certStore, - plContext)); - - subTest("PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (testCertSelectorMatchCallback, - NULL, - &certSelector, - plContext)); - - subTest("PKIX_CertStore_GetCertCallback"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &certCallback, NULL)); - - subTest("Getting data from Cert Callback"); - PKIX_TEST_EXPECT_NO_ERROR(certCallback - (certStore, - certSelector, - &nbioContext, - &certList, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, - &numCert, - plContext)); - - if (numCert != PKIX_TEST_COLLECTIONCERTSTORE_NUM_CERTS) { - pkixTestErrorMsg = "unexpected Cert number mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(dirString); - PKIX_TEST_DECREF_AC(certList); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certStore); - - PKIX_TEST_RETURN(); -} - -static void printUsage(char *pName){ - printf("\nUSAGE: %s test-purpose <data-dir> <platform-dir>\n\n", pName); -} - -/* Functional tests for CollectionCertStore public functions */ - -int test_colcertstore(int argc, char *argv[]) { - - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *platformDir = NULL; - char *dataDir = NULL; - char *combinedDir = NULL; - - PKIX_TEST_STD_VARS(); - - startTests("CollectionCertStore"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < (3 + j)) { - printUsage(argv[0]); - return (0); - } - - dataDir = argv[2 + j]; - platformDir = argv[3 + j]; - combinedDir = catDirName(platformDir, dataDir, plContext); - - testGetCRL(combinedDir); - testGetCert(combinedDir); - -cleanup: - - pkixTestErrorResult = PKIX_PL_Free(combinedDir, plContext); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CollectionCertStore"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c b/security/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c deleted file mode 100644 index 0a6e7e8fb..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/test_ekuchecker.c +++ /dev/null @@ -1,321 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_ekuchecker.c - * - * Test Extend Key Usage Checker - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -#define PKIX_TEST_MAX_CERTS 10 - -static void *plContext = NULL; - -static -void printUsage1(char *pName){ - printf("\nUSAGE: %s test-purpose [ENE|EE] ", pName); - printf("[E]oid[,oid]* <data-dir> cert [certs].\n"); -} - -static void printUsageMax(PKIX_UInt32 numCerts){ - printf("\nUSAGE ERROR: number of certs %d exceed maximum %d\n", - numCerts, PKIX_TEST_MAX_CERTS); -} - -static PKIX_Error * -testCertSelectorMatchCallback( - PKIX_CertSelector *selector, - PKIX_PL_Cert *cert, - PKIX_Boolean *pResult, - void *plContext) -{ - *pResult = PKIX_TRUE; - - return (0); -} - -static PKIX_Error * -testEkuSetup( - PKIX_ValidateParams *valParams, - char *ekuOidString, - PKIX_Boolean *only4EE) -{ - PKIX_ProcessingParams *procParams = NULL; - PKIX_List *ekuList = NULL; - PKIX_PL_OID *ekuOid = NULL; - PKIX_ComCertSelParams *selParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_Boolean last_token = PKIX_FALSE; - PKIX_UInt32 i, tokeni; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_ValidateParams_GetProcessingParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - /* Get extended key usage OID(s) from command line, separated by "," */ - - if (ekuOidString[0] == '"') { - /* erase doble quotes, if any */ - i = 1; - while (ekuOidString[i] != '"' && ekuOidString[i] != '\0') { - ekuOidString[i-1] = ekuOidString[i]; - i++; - } - ekuOidString[i-1] = '\0'; - } - - if (ekuOidString[0] == '\0') { - ekuList = NULL; - } else { - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create - (&ekuList, plContext)); - - /* if OID string start with E, only check for last cert */ - if (ekuOidString[0] == 'E') { - *only4EE = PKIX_TRUE; - tokeni = 2; - i = 1; - } else { - *only4EE = PKIX_FALSE; - tokeni = 1; - i = 0; - } - - while (last_token != PKIX_TRUE) { - while (ekuOidString[tokeni] != ',' && - ekuOidString[tokeni] != '\0') { - tokeni++; - } - if (ekuOidString[tokeni] == '\0') { - last_token = PKIX_TRUE; - } else { - ekuOidString[tokeni] = '\0'; - tokeni++; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_OID_Create - (&ekuOidString[i], &ekuOid, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (ekuList, (PKIX_PL_Object *)ekuOid, plContext)); - - PKIX_TEST_DECREF_BC(ekuOid); - i = tokeni; - - } - - } - - /* Set extended key usage link to processing params */ - - subTest("PKIX_ComCertSelParams_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&selParams, plContext)); - - subTest("PKIX_ComCertSelParams_SetExtendedKeyUsage"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetExtendedKeyUsage - (selParams, ekuList, plContext)); - - subTest("PKIX_CertSelector_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (testCertSelectorMatchCallback, - NULL, - &certSelector, - plContext)); - - subTest("PKIX_CertSelector_SetCommonCertSelectorParams"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, selParams, plContext)); - - subTest("PKIX_ProcessingParams_SetTargetCertConstraints"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(selParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(ekuOid); - PKIX_TEST_DECREF_AC(ekuList); - - PKIX_TEST_RETURN(); - - return (0); -} - -static PKIX_Error * -testEkuChecker( - PKIX_ValidateParams *valParams, - PKIX_Boolean only4EE) -{ - PKIX_ProcessingParams *procParams = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_GetProcessingParams - (valParams, &procParams, plContext)); - - subTest("PKIX_ProcessingParams_SetRevocationEnabled - disable"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, PKIX_FALSE, plContext)); - - if (only4EE == PKIX_FALSE) { - subTest("PKIX_PL_EkuChecker_Create"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_EkuChecker_Create - (procParams, plContext)); - } - -cleanup: - - PKIX_TEST_DECREF_AC(procParams); - - PKIX_TEST_RETURN(); - - return (0); -} - -int test_ekuchecker(int argc, char *argv[]){ - PKIX_List *chain = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_UInt32 actualMinorVersion; - char *certNames[PKIX_TEST_MAX_CERTS]; - char *dirName = NULL; - PKIX_PL_Cert *certs[PKIX_TEST_MAX_CERTS]; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_Boolean testValid = PKIX_FALSE; - PKIX_Boolean only4EE = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - if (argc < 5) { - printUsage1(argv[0]); - return (0); - } - - startTests("EKU Checker"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ENE = expect no error; EE = expect error */ - if (PORT_Strcmp(argv[2+j], "ENE") == 0) { - testValid = PKIX_TRUE; - } else if (PORT_Strcmp(argv[2+j], "EE") == 0) { - testValid = PKIX_FALSE; - } else { - printUsage1(argv[0]); - return (0); - } - - dirName = argv[4+j]; - - chainLength = (argc - j) - 6; - if (chainLength > PKIX_TEST_MAX_CERTS) { - printUsageMax(chainLength); - } - - for (i = 0; i < chainLength; i++) { - - certNames[i] = argv[6+i+j]; - certs[i] = NULL; - } - - subTest(argv[1+j]); - - subTest("Extended-Key-Usage-Checker"); - - subTest("Extended-Key-Usage-Checker - Create Cert Chain"); - - chain = createCertChainPlus - (dirName, certNames, certs, chainLength, plContext); - - subTest("Extended-Key-Usage-Checker - Create Params"); - - valParams = createValidateParams - (dirName, - argv[5+j], - NULL, - NULL, - NULL, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - PKIX_FALSE, - chain, - plContext); - - subTest("Default CertStore"); - - testEkuSetup(valParams, argv[3+j], &only4EE); - - testEkuChecker(valParams, only4EE); - - subTest("Extended-Key-Usage-Checker - Validate Chain"); - - if (testValid == PKIX_TRUE) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR(PKIX_ValidateChain - (valParams, &valResult, NULL, plContext)); - } - - -cleanup: - - PKIX_TEST_DECREF_AC(chain); - PKIX_TEST_DECREF_AC(valParams); - PKIX_TEST_DECREF_AC(valResult); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("EKU Checker"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c b/security/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c deleted file mode 100644 index 6a45c4776..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/test_httpcertstore.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * test_httpcertstore.c - * - * Test Httpcertstore Type - * - * Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistribution of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of contributors may - * be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING - * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") - * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE - * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS - * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST - * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, - * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY - * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, - * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use in - * the design, construction, operation or maintenance of any nuclear facility. - */ - -#include "testutil.h" -#include "testutil_nss.h" -#include "pkix_pl_common.h" - -static void *plContext = NULL; - -static -void printUsage(char *testname) -{ - char *fmt = - "USAGE: %s [-arenas] certDir certName\n"; - printf(fmt, "test_httpcertstore"); -} - -/* Functional tests for Socket public functions */ -static -void do_other_work(void) { /* while waiting for nonblocking I/O to complete */ - (void) PR_Sleep(2*60); -} - -PKIX_Error * -PKIX_PL_HttpCertStore_Create( - PKIX_PL_HttpClient *client, /* if NULL, use default Client */ - PKIX_PL_GeneralName *location, - PKIX_CertStore **pCertStore, - void *plContext); - -PKIX_Error * -pkix_pl_HttpCertStore_CreateWithAsciiName( - PKIX_PL_HttpClient *client, /* if NULL, use default Client */ - char *location, - PKIX_CertStore **pCertStore, - void *plContext); - -static PKIX_Error * -getLocation( - PKIX_PL_Cert *certWithAia, - PKIX_PL_GeneralName **pLocation, - void *plContext) -{ - PKIX_List *aiaList = NULL; - PKIX_UInt32 size = 0; - PKIX_PL_InfoAccess *aia = NULL; - PKIX_UInt32 iaType = PKIX_INFOACCESS_LOCATION_UNKNOWN; - PKIX_PL_GeneralName *location = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Getting Authority Info Access"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetAuthorityInfoAccess - (certWithAia, &aiaList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (aiaList, &size, plContext)); - - if (size != 1) { - pkixTestErrorMsg = "unexpected number of AIA"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (aiaList, 0, (PKIX_PL_Object **) &aia, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_InfoAccess_GetLocationType - (aia, &iaType, plContext)); - - if (iaType != PKIX_INFOACCESS_LOCATION_HTTP) { - pkixTestErrorMsg = "unexpected location type in AIA"; - goto cleanup; - - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_InfoAccess_GetLocation - (aia, &location, plContext)); - - *pLocation = location; - -cleanup: - PKIX_TEST_DECREF_AC(aiaList); - PKIX_TEST_DECREF_AC(aia); - - PKIX_TEST_RETURN(); - - return (NULL); -} - -int test_httpcertstore(int argc, char *argv[]) -{ - - PKIX_UInt32 i = 0; - PKIX_UInt32 numCerts = 0; - PKIX_UInt32 numCrls = 0; - int j = 0; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 length = 0; - - char *certName = NULL; - char *certDir = NULL; - PKIX_PL_Cert *cmdLineCert = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_CertStore *crlStore = NULL; - PKIX_PL_GeneralName *location = NULL; - PKIX_CertStore_CertCallback getCerts = NULL; - PKIX_List *certs = NULL; - char *asciiResult = NULL; - void *nbio = NULL; - - PKIX_PL_CRL *crl = NULL; - PKIX_CRLSelector *crlSelector = NULL; - char *crlLocation = "http://betty.nist.gov/pathdiscoverytestsuite/CRL" - "files/BasicHTTPURIPeer2CACRL.crl"; - PKIX_CertStore_CRLCallback getCrls = NULL; - PKIX_List *crls = NULL; - PKIX_PL_String *crlString = NULL; - - PKIX_TEST_STD_VARS(); - - startTests("HttpCertStore"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc != (j + 3)) { - printUsage(argv[0]); - pkixTestErrorMsg = "Missing command line argument."; - goto cleanup; - } - - certDir = argv[++j]; - certName = argv[++j]; - - cmdLineCert = createCert(certDir, certName, plContext); - if (cmdLineCert == NULL) { - pkixTestErrorMsg = "Unable to create Cert"; - goto cleanup; - } - - /* muster arguments to create HttpCertStore */ - PKIX_TEST_EXPECT_NO_ERROR(getLocation - (cmdLineCert, &location, plContext)); - - if (location == NULL) { - pkixTestErrorMsg = "Give me a cert with an HTTP URI!"; - goto cleanup; - } - - /* create HttpCertStore */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HttpCertStore_Create - (NULL, location, &certStore, plContext)); - - /* get the GetCerts callback */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &getCerts, plContext)); - - /* create a CertSelector */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - /* Get the certs */ - PKIX_TEST_EXPECT_NO_ERROR(getCerts - (certStore, certSelector, &nbio, &certs, plContext)); - - while (nbio != NULL) { - /* poll for a completion */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_CertContinue - (certStore, certSelector, &nbio, &certs, plContext)); - } - - if (certs) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - if (numCerts == 0) { - printf("HttpCertStore returned an empty Cert list\n"); - goto cleanup; - } - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, - i, - (PKIX_PL_Object**)&cert, - plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - /* PKIX_Cert2ASCII used PKIX_PL_Malloc(...,,NULL) */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, NULL)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - } else { - printf("HttpCertStore returned a NULL Cert list\n"); - } - - /* create HttpCertStore */ - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_HttpCertStore_CreateWithAsciiName - (NULL, crlLocation, &crlStore, plContext)); - - /* get the GetCrls callback */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCRLCallback - (crlStore, &getCrls, plContext)); - - /* create a CrlSelector */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (NULL, NULL, &crlSelector, plContext)); - - /* Get the crls */ - PKIX_TEST_EXPECT_NO_ERROR(getCrls - (crlStore, crlSelector, &nbio, &crls, plContext)); - - while (nbio != NULL) { - /* poll for a completion */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_CrlContinue - (crlStore, crlSelector, &nbio, &crls, plContext)); - } - - if (crls) { - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(crls, &numCrls, plContext)); - - if (numCrls == 0) { - printf("HttpCertStore returned an empty CRL list\n"); - goto cleanup; - } - - for (i = 0; i < numCrls; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (crls, - i, - (PKIX_PL_Object**)&crl, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString( - (PKIX_PL_Object *)crl, - &crlString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded - (crlString, - PKIX_ESCASCII, - (void **)&asciiResult, - &length, - plContext)); - - printf("CRL[%d]:\n%s\n", i, asciiResult); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Free(asciiResult, plContext)); - PKIX_TEST_DECREF_BC(crlString); - PKIX_TEST_DECREF_BC(crl); - } - } else { - printf("HttpCertStore returned a NULL CRL list\n"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(cmdLineCert); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(crlStore); - PKIX_TEST_DECREF_AC(location); - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(crl); - PKIX_TEST_DECREF_AC(crlString); - PKIX_TEST_DECREF_AC(crls); - - PKIX_TEST_RETURN(); - - endTests("HttpDefaultClient"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c b/security/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c deleted file mode 100644 index a2f54aec9..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/test_pk11certstore.c +++ /dev/null @@ -1,664 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_pk11certstore.c - * - * Test Pk11CertStore Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - - -static void *plContext = NULL; - -/* - * This function creates a certSelector with ComCertSelParams set up to - * select entries whose Subject Name matches that in the given Cert and - * whose validity window includes the Date specified by "validityDate". - */ -static -void test_makeSubjectCertSelector( - PKIX_PL_Cert *certNameToMatch, - PKIX_PL_Date *validityDate, - PKIX_CertSelector **pSelector, - void *plContext) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *subjParams = NULL; - PKIX_PL_X500Name *subjectName = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&subjParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (certNameToMatch, &subjectName, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubject - (subjParams, subjectName, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetCertificateValid - (subjParams, validityDate, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, subjParams, plContext)); - *pSelector = selector; - -cleanup: - - PKIX_TEST_DECREF_AC(subjParams); - PKIX_TEST_DECREF_AC(subjectName); - - PKIX_TEST_RETURN(); -} - -/* - * This function creates a certSelector with ComCertSelParams set up to - * select entries containing a Basic Constraints extension with a path - * length of at least the specified "minPathLength". - */ -static -void test_makePathCertSelector( - PKIX_Int32 minPathLength, - PKIX_CertSelector **pSelector, - void *plContext) -{ - PKIX_CertSelector *selector = NULL; - PKIX_ComCertSelParams *pathParams = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_Create - (&pathParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetBasicConstraints - (pathParams, minPathLength, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_SetCommonCertSelectorParams - (selector, pathParams, plContext)); - *pSelector = selector; - -cleanup: - - PKIX_TEST_DECREF_AC(pathParams); - - PKIX_TEST_RETURN(); -} - -/* - * This function reads a directory-file cert specified by "desiredSubjectCert", - * and decodes the SubjectName. It uses that name to set up the CertSelector - * for a Subject Name match, and then queries the database for matching entries. - * It is intended to test a "smart" database query. - */ -static -void testMatchCertSubject( - char *crlDir, - char *desiredSubjectCert, - char *expectedAscii, - PKIX_PL_Date *validityDate, - void *plContext) -{ - PKIX_UInt32 numCert = 0; - PKIX_PL_Cert *certWithDesiredSubject = NULL; - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_CertStore_CertCallback getCert = NULL; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - certWithDesiredSubject = createCert - (crlDir, desiredSubjectCert, plContext); - - test_makeSubjectCertSelector - (certWithDesiredSubject, - validityDate, - &certSelector, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Pk11CertStore_Create - (&certStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &getCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(getCert - (certStore, - certSelector, - &nbioContext, - &certList, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (certList, &numCert, plContext)); - - if (numCert > 0) { - /* List should be immutable */ - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem - (certList, 0, plContext)); - } - - if (expectedAscii) { - testToStringHelper - ((PKIX_PL_Object *)certList, expectedAscii, plContext); - } - -cleanup: - - PKIX_TEST_DECREF_AC(certWithDesiredSubject); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certList); - - PKIX_TEST_RETURN(); -} - -/* - * This function uses the minimum path length specified by "minPath" to set up - * a CertSelector for a BasicConstraints match, and then queries the database - * for matching entries. It is intended to test the case where there - * is no "smart" database query, so the database will be asked for all - * available certs and the filtering will be done by the interaction of the - * certstore and the selector. - */ -static -void testMatchCertMinPath( - PKIX_Int32 minPath, - char *expectedAscii, - void *plContext) -{ - PKIX_CertStore *certStore = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_List *certList = NULL; - PKIX_CertStore_CertCallback getCert = NULL; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Searching Certs for minPath"); - - test_makePathCertSelector - (minPath, &certSelector, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Pk11CertStore_Create - (&certStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCertCallback - (certStore, &getCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(getCert - (certStore, - certSelector, - &nbioContext, - &certList, - plContext)); - - if (expectedAscii) { - testToStringHelper - ((PKIX_PL_Object *)certList, expectedAscii, plContext); - } - -cleanup: - - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(certList); - - PKIX_TEST_RETURN(); -} - -/* - * This function creates a crlSelector with ComCrlSelParams set up to - * select entries whose Issuer Name matches that in the given Crl. - */ -static -void test_makeIssuerCRLSelector( - PKIX_PL_CRL *crlNameToMatch, - PKIX_CRLSelector **pSelector, - void *plContext) -{ - PKIX_CRLSelector *selector = NULL; - PKIX_ComCRLSelParams *issuerParams = NULL; - PKIX_PL_X500Name *issuerName = NULL; - PKIX_List *names = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create - (&issuerParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetIssuer - (crlNameToMatch, &issuerName, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&names, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (names, (PKIX_PL_Object *)issuerName, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetIssuerNames - (issuerParams, names, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CRLSelector_SetCommonCRLSelectorParams - (selector, issuerParams, plContext)); - *pSelector = selector; - -cleanup: - - PKIX_TEST_DECREF_AC(issuerParams); - PKIX_TEST_DECREF_AC(issuerName); - PKIX_TEST_DECREF_AC(names); - - PKIX_TEST_RETURN(); -} - -/* - * This function creates a crlSelector with ComCrlSelParams set up to - * select entries that would be valid at the Date specified by the Date - * criterion. - */ -static -void test_makeDateCRLSelector( - PKIX_PL_Date *dateToMatch, - PKIX_CRLSelector **pSelector, - void *plContext) -{ - PKIX_CRLSelector *selector = NULL; - PKIX_ComCRLSelParams *dateParams = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create - (NULL, NULL, &selector, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create - (&dateParams, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetDateAndTime - (dateParams, dateToMatch, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CRLSelector_SetCommonCRLSelectorParams - (selector, dateParams, plContext)); - *pSelector = selector; - -cleanup: - PKIX_TEST_DECREF_AC(dateParams); - - PKIX_TEST_RETURN(); -} - -/* - * This function reads a directory-file crl specified by "desiredIssuerCrl", - * and decodes the IssuerName. It uses that name to set up the CrlSelector - * for a Issuer Name match, and then queries the database for matching entries. - * It is intended to test the case of a "smart" database query. - */ -static -void testMatchCrlIssuer( - char *crlDir, - char *desiredIssuerCrl, - char *expectedAscii, - void *plContext) -{ - PKIX_UInt32 numCrl = 0; - PKIX_PL_CRL *crlWithDesiredIssuer = NULL; - PKIX_CertStore *crlStore = NULL; - PKIX_CRLSelector *crlSelector = NULL; - PKIX_List *crlList = NULL; - PKIX_CertStore_CRLCallback getCrl = NULL; - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Searching CRLs for matching Issuer"); - - crlWithDesiredIssuer = createCRL(crlDir, desiredIssuerCrl, plContext); - - test_makeIssuerCRLSelector - (crlWithDesiredIssuer, &crlSelector, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Pk11CertStore_Create - (&crlStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCRLCallback - (crlStore, &getCrl, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(getCrl - (crlStore, - crlSelector, - &nbioContext, - &crlList, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (crlList, &numCrl, plContext)); - - if (numCrl > 0) { - /* List should be immutable */ - PKIX_TEST_EXPECT_ERROR(PKIX_List_DeleteItem - (crlList, 0, plContext)); - } - - if (expectedAscii) { - testToStringHelper - ((PKIX_PL_Object *)crlList, expectedAscii, plContext); - } - -cleanup: - - PKIX_TEST_DECREF_AC(crlWithDesiredIssuer); - PKIX_TEST_DECREF_AC(crlStore); - PKIX_TEST_DECREF_AC(crlSelector); - PKIX_TEST_DECREF_AC(crlList); - - PKIX_TEST_RETURN(); -} - -/* - * This function uses the date specified by "matchDate" to set up the - * CrlSelector for a Date match. It is intended to test the case where there - * is no "smart" database query, so the CertStore should throw an error - * rather than ask the database for all available CRLs and then filter the - * results using the selector. - */ -static -void testMatchCrlDate( - char *dateMatch, - char *expectedAscii, - void *plContext) -{ - PKIX_PL_Date *dateCriterion = NULL; - PKIX_CertStore *crlStore = NULL; - PKIX_CRLSelector *crlSelector = NULL; - PKIX_List *crlList = NULL; - PKIX_CertStore_CRLCallback getCrl = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("Searching CRLs for matching Date"); - - dateCriterion = createDate(dateMatch, plContext); - test_makeDateCRLSelector(dateCriterion, &crlSelector, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Pk11CertStore_Create - (&crlStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertStore_GetCRLCallback - (crlStore, &getCrl, plContext)); - - PKIX_TEST_EXPECT_ERROR(getCrl - (crlStore, crlSelector, NULL, &crlList, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(dateCriterion); - PKIX_TEST_DECREF_AC(crlStore); - PKIX_TEST_DECREF_AC(crlSelector); - PKIX_TEST_DECREF_AC(crlList); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(char *pName){ - printf("\nUSAGE: %s <-d data-dir> <database-dir>\n\n", pName); -} - -/* Functional tests for Pk11CertStore public functions */ - -int test_pk11certstore(int argc, char *argv[]) { - - PKIX_UInt32 j = 0; - PKIX_UInt32 actualMinorVersion; - PKIX_PL_Date *validityDate = NULL; - PKIX_PL_Date *betweenDate = NULL; - char *crlDir = NULL; - char *expectedProfAscii = "([\n" - "\tVersion: v3\n" - "\tSerialNumber: 00ca\n" - "\tIssuer: CN=chemistry,O=mit,C=us\n" - "\tSubject: CN=prof noall,O=mit,C=us\n" - "\tValidity: [From: Fri Feb 11 14:14:06 2005\n" - "\t To: Mon Jan 18, 2105]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(6)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ", [\n" - "\tVersion: v3\n" - "\tSerialNumber: 03\n" - "\tIssuer: CN=physics,O=mit,C=us\n" - "\tSubject: CN=prof noall,O=mit,C=us\n" - "\tValidity: [From: Fri Feb 11 12:52:26 2005\n" - "\t To: Mon Jan 18, 2105]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ")"; - char *expectedValidityAscii = "([\n" - "\tVersion: v3\n" - "\tSerialNumber: 03\n" - "\tIssuer: CN=physics,O=mit,C=us\n" - "\tSubject: CN=prof noall,O=mit,C=us\n" - "\tValidity: [From: Fri Feb 11 12:52:26 2005\n" - "\t To: Mon Jan 18, 2105]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ")"; - char *expectedMinPathAscii = "([\n" - "\tVersion: v3\n" - "\tSerialNumber: 01\n" - "\tIssuer: CN=science,O=mit,C=us\n" - "\tSubject: CN=science,O=mit,C=us\n" - "\tValidity: [From: Fri Feb 11 12:47:58 2005\n" - "\t To: Mon Jan 18, 2105]\n" - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(10)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "]\n" - ")"; - char *expectedIssuerAscii = "([\n" - "\tVersion: v2\n" - "\tIssuer: CN=physics,O=mit,C=us\n" - "\tUpdate: [Last: Fri Feb 11 13:51:38 2005\n" - "\t Next: Mon Jan 18, 2105]\n" - "\tSignatureAlgId: 1.2.840.10040.4.3\n" - "\tCRL Number : (null)\n" - "\n" - "\tEntry List: (\n" - "\t[\n" - "\tSerialNumber: 67\n" - "\tReasonCode: 257\n" - "\tRevocationDate: Fri Feb 11 13:51:38 2005\n" - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n" - "\t)\n" - "\n" - "\tCritExtOIDs: (EMPTY)\n" - "]\n" - ")"; - char *expectedDateAscii = "([\n" - "\tVersion: v2\n" - "\tIssuer: CN=science,O=mit,C=us\n" - "\tUpdate: [Last: Fri Feb 11 13:34:40 2005\n" - "\t Next: Mon Jan 18, 2105]\n" - "\tSignatureAlgId: 1.2.840.10040.4.3\n" - "\tCRL Number : (null)\n" - "\n" - "\tEntry List: (\n" - "\t[\n" - "\tSerialNumber: 65\n" - "\tReasonCode: 260\n" - "\tRevocationDate: Fri Feb 11 13:34:40 2005\n" - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n" - "\t)\n" - "\n" - "\tCritExtOIDs: (EMPTY)\n" - "]\n" - ", [\n" - "\tVersion: v2\n" - "\tIssuer: CN=testing CRL,O=test,C=us\n" - "\tUpdate: [Last: Fri Feb 11 13:14:38 2005\n" - "\t Next: Mon Jan 18, 2105]\n" - "\tSignatureAlgId: 1.2.840.10040.4.3\n" - "\tCRL Number : (null)\n" - "\n" - "\tEntry List: (\n" - "\t[\n" - "\tSerialNumber: 67\n" - "\tReasonCode: 258\n" - "\tRevocationDate: Fri Feb 11 13:14:38 2005\n" - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n" - "\t)\n" - "\n" - "\tCritExtOIDs: (EMPTY)\n" - "]\n" - ")"; - - PKIX_TEST_STD_VARS(); - - startTests("Pk11CertStore"); - - if (argc < 3) { - printUsage(argv[0]); - return (0); - } - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - crlDir = argv[j+2]; - - /* Two certs for prof should be valid now */ - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Date_CreateFromPRTime - (PR_Now(), &validityDate, plContext)); - - subTest("Searching Certs for Subject"); - - testMatchCertSubject - (crlDir, - "phy2prof.crt", - NULL, /* expectedProfAscii, */ - validityDate, - plContext); - - /* One of the certs was not yet valid at this time. */ - betweenDate = createDate("050210184000Z", plContext); - - subTest("Searching Certs for Subject and Validity"); - - testMatchCertSubject - (crlDir, - "phy2prof.crt", - NULL, /* expectedValidityAscii, */ - betweenDate, - plContext); - - testMatchCertMinPath - (9, - NULL, /* expectedMinPathAscii, */ - plContext); - - testMatchCrlIssuer - (crlDir, - "phys.crl", - NULL, /* expectedIssuerAscii, */ - plContext); - - testMatchCrlDate - ("050211184000Z", - NULL, /* expectedDateAscii, */ - plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(validityDate); - PKIX_TEST_DECREF_AC(betweenDate); - - PKIX_TEST_RETURN(); - - endTests("Pk11CertStore"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/module/test_socket.c b/security/nss/cmd/libpkix/pkix_pl/module/test_socket.c deleted file mode 100644 index 8e25c144b..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/module/test_socket.c +++ /dev/null @@ -1,600 +0,0 @@ -/* - * test_socket.c - * - * Test Socket Type - * - * Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistribution of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. Redistribution in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * Neither the name of Sun Microsystems, Inc. or the names of contributors may - * be used to endorse or promote products derived from this software without - * specific prior written permission. - * - * This software is provided "AS IS," without a warranty of any kind. ALL - * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING - * ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE - * OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") - * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE - * AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS - * DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST - * REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, - * INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY - * OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, - * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - * - * You acknowledge that this software is not designed or intended for use in - * the design, construction, operation or maintenance of any nuclear facility. - */ - -#include "testutil.h" -#include "testutil_nss.h" -#include "pkix_pl_common.h" - -#define LDAP_PORT 389 - -static void *plContext = NULL; - -typedef enum { - SERVER_LISTENING, - SERVER_RECV1, - SERVER_POLL1, - SERVER_SEND2, - SERVER_POLL2, - SERVER_RECV3, - SERVER_POLL3, - SERVER_SEND4, - SERVER_POLL4, - SERVER_DONE, - SERVER_FAILED -} SERVER_STATE; - -typedef enum { - CLIENT_WAITFORCONNECT, - CLIENT_SEND1, - CLIENT_POLL1, - CLIENT_RECV2, - CLIENT_POLL2, - CLIENT_SEND3, - CLIENT_POLL3, - CLIENT_RECV4, - CLIENT_POLL4, - CLIENT_DONE, - CLIENT_FAILED -} CLIENT_STATE; - -SERVER_STATE serverState; -CLIENT_STATE clientState; -PKIX_PL_Socket *sSock = NULL; -PKIX_PL_Socket *cSock = NULL; -PKIX_PL_Socket *rendezvousSock = NULL; -PKIX_PL_Socket_Callback *sCallbackList; -PKIX_PL_Socket_Callback *cCallbackList; -PKIX_PL_Socket_Callback *rvCallbackList; -PRNetAddr serverNetAddr; -PRNetAddr clientNetAddr; -PRIntn backlog = 0; -PRIntervalTime timeout = 0; -char *sendBuf1 = "Hello, world!"; -char *sendBuf2 = "Ack"; -char *sendBuf3 = "What do you mean, \"Ack\"?"; -char *sendBuf4 = "What do you mean, \"What do you mean, \'Ack\'?\"?"; -char rcvBuf1[100]; -char rcvBuf2[100]; - -static -void printUsage(char *testname) -{ - char *fmt = "USAGE: %s [-arenas] server:port\n"; - printf(fmt, testname); -} - -/* Functional tests for Socket public functions */ -static -void do_other_work(void) -{ /* while waiting for nonblocking I/O to complete */ - (void) PR_Sleep(2*60); -} - -static -PKIX_Boolean server() -{ - PKIX_Int32 bytesRead = 0; - PKIX_Int32 bytesWritten = 0; - PKIX_Boolean keepGoing = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - switch (serverState) { - case SERVER_LISTENING: - subTest("SERVER_LISTENING"); - PKIX_TEST_EXPECT_NO_ERROR(sCallbackList->acceptCallback - (sSock, &rendezvousSock, plContext)); - if (rendezvousSock) { - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_GetCallbackList - (rendezvousSock, &rvCallbackList, plContext)); - - serverState = SERVER_RECV1; - } - break; - case SERVER_RECV1: - subTest("SERVER_RECV1"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->recvCallback - (rendezvousSock, - rcvBuf1, - sizeof(rcvBuf1), - &bytesRead, - plContext)); - - if (bytesRead > 0) { - /* confirm that rcvBuf1 = sendBuf1 */ - if ((bytesRead != (PRInt32)PL_strlen(sendBuf1) + 1) || - (strncmp(sendBuf1, rcvBuf1, bytesRead) != 0)) { - testError("Receive buffer mismatch\n"); - } - - serverState = SERVER_SEND2; - keepGoing = PKIX_TRUE; - } else { - serverState = SERVER_POLL1; - } - break; - case SERVER_POLL1: - subTest("SERVER_POLL1"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->pollCallback - (rendezvousSock, NULL, &bytesRead, plContext)); - - if (bytesRead > 0) { - /* confirm that rcvBuf1 = sendBuf1 */ - if ((bytesRead != (PRInt32)PL_strlen(sendBuf1) + 1) || - (strncmp(sendBuf1, rcvBuf1, bytesRead) != 0)) { - testError("Receive buffer mismatch\n"); - } - - serverState = SERVER_SEND2; - keepGoing = PKIX_TRUE; - } - break; - case SERVER_SEND2: - subTest("SERVER_SEND2"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->sendCallback - (rendezvousSock, - sendBuf2, - strlen(sendBuf2) + 1, - &bytesWritten, - plContext)); - if (bytesWritten > 0) { - serverState = SERVER_RECV3; - } else { - serverState = SERVER_POLL2; - } - break; - case SERVER_POLL2: - subTest("SERVER_POLL2"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->pollCallback - (rendezvousSock, &bytesWritten, NULL, plContext)); - if (bytesWritten > 0) { - serverState = SERVER_RECV3; - } - break; - case SERVER_RECV3: - subTest("SERVER_RECV3"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->recvCallback - (rendezvousSock, - rcvBuf1, - sizeof(rcvBuf1), - &bytesRead, - plContext)); - - if (bytesRead > 0) { - serverState = SERVER_SEND4; - keepGoing = PKIX_TRUE; - } else { - serverState = SERVER_POLL3; - } - break; - case SERVER_POLL3: - subTest("SERVER_POLL3"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->pollCallback - (rendezvousSock, NULL, &bytesRead, plContext)); - if (bytesRead > 0) { - serverState = SERVER_SEND4; - keepGoing = PKIX_TRUE; - } - break; - case SERVER_SEND4: - subTest("SERVER_SEND4"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->sendCallback - (rendezvousSock, - sendBuf4, - strlen(sendBuf4) + 1, - &bytesWritten, - plContext)); - - if (bytesWritten > 0) { - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->shutdownCallback - (rendezvousSock, plContext)); - PKIX_TEST_DECREF_BC(sSock); - PKIX_TEST_DECREF_BC(rendezvousSock); - serverState = SERVER_DONE; - } else { - serverState = SERVER_POLL4; - } - break; - case SERVER_POLL4: - subTest("SERVER_POLL4"); - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->pollCallback - (rendezvousSock, &bytesWritten, NULL, plContext)); - if (bytesWritten > 0) { - PKIX_TEST_EXPECT_NO_ERROR(rvCallbackList->shutdownCallback - (rendezvousSock, plContext)); - PKIX_TEST_DECREF_BC(sSock); - PKIX_TEST_DECREF_BC(rendezvousSock); - serverState = SERVER_DONE; - } - break; - case SERVER_DONE: - default: - subTest("SERVER_DONE"); - break; - } - -cleanup: - - PKIX_TEST_RETURN(); - - return (keepGoing); -} - -static -PKIX_Boolean client() -{ - PKIX_Boolean keepGoing = PKIX_FALSE; - PKIX_Int32 bytesRead = 0; - PKIX_Int32 bytesWritten = 0; - PRErrorCode cStat = 0; - - /* At 2 seconds each cycle, this should suffice! */ - PKIX_UInt32 giveUpCount = 10; - - PKIX_TEST_STD_VARS(); - - switch (clientState) { - case CLIENT_WAITFORCONNECT: - subTest("CLIENT_WAITFORCONNECT"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->connectcontinueCallback - (cSock, &cStat, plContext)); - if (cStat == 0) { - clientState = CLIENT_SEND1; - keepGoing = PKIX_TRUE; - } else { - clientState = CLIENT_WAITFORCONNECT; - if (--giveUpCount == 0) { - testError("Client unable to connect"); - } - } - break; - case CLIENT_SEND1: - subTest("CLIENT_SEND1"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->sendCallback - (cSock, - sendBuf1, - strlen(sendBuf1) + 1, - &bytesWritten, - plContext)); - if (bytesWritten > 0) { - clientState = CLIENT_RECV2; - } else { - clientState = CLIENT_POLL1; - } - break; - case CLIENT_POLL1: - subTest("CLIENT_POLL1"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->pollCallback - (cSock, &bytesWritten, NULL, plContext)); - if (bytesWritten > 0) { - clientState = CLIENT_RECV2; - } else { - clientState = CLIENT_POLL1; - } - break; - case CLIENT_RECV2: - subTest("CLIENT_RECV2"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->recvCallback - (cSock, - rcvBuf2, - sizeof(rcvBuf2), - &bytesRead, - plContext)); - - if (bytesRead > 0) { - /* confirm that rcvBuf2 = sendBuf2 */ - if ((bytesRead != (PRInt32)PL_strlen(sendBuf2) + 1) || - (strncmp(sendBuf2, rcvBuf2, bytesRead) != 0)) { - testError("Receive buffer mismatch\n"); - } - clientState = CLIENT_SEND3; - keepGoing = PKIX_TRUE; - } else { - clientState = CLIENT_POLL2; - } - break; - case CLIENT_POLL2: - subTest("CLIENT_POLL2"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->pollCallback - (cSock, NULL, &bytesRead, plContext)); - if (bytesRead > 0) { - /* confirm that rcvBuf2 = sendBuf2 */ - if ((bytesRead != (PRInt32)PL_strlen(sendBuf2) + 1) || - (strncmp(sendBuf2, rcvBuf2, bytesRead) != 0)) { - testError("Receive buffer mismatch\n"); - } - clientState = CLIENT_SEND3; - } else { - clientState = CLIENT_POLL2; - } - break; - case CLIENT_SEND3: - subTest("CLIENT_SEND3"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->sendCallback - (cSock, - sendBuf3, - strlen(sendBuf3) + 1, - &bytesWritten, - plContext)); - - if (bytesWritten > 0) { - clientState = CLIENT_RECV4; - } else { - clientState = CLIENT_POLL3; - } - break; - case CLIENT_POLL3: - subTest("CLIENT_POLL3"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->pollCallback - (cSock, &bytesWritten, NULL, plContext)); - if (bytesWritten > 0) { - clientState = CLIENT_RECV4; - } else { - clientState = CLIENT_POLL3; - } - break; - case CLIENT_RECV4: - subTest("CLIENT_RECV4"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->recvCallback - (cSock, - rcvBuf2, - sizeof(rcvBuf2), - &bytesRead, - plContext)); - - if (bytesRead > 0) { - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->shutdownCallback - (cSock, plContext)); - PKIX_TEST_DECREF_BC(cSock); - clientState = CLIENT_DONE; - } else { - clientState = CLIENT_POLL4; - } - break; - case CLIENT_POLL4: - subTest("CLIENT_POLL4"); - clientState = CLIENT_FAILED; - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->pollCallback - (cSock, NULL, &bytesRead, plContext)); - if (bytesRead > 0) { - PKIX_TEST_EXPECT_NO_ERROR(cCallbackList->shutdownCallback - (cSock, plContext)); - PKIX_TEST_DECREF_BC(cSock); - clientState = CLIENT_DONE; - } else { - clientState = CLIENT_POLL4; - } - break; - case CLIENT_DONE: - default: - subTest("CLIENT_DONE"); - break; - } - -cleanup: - - PKIX_TEST_RETURN(); - - return (keepGoing); -} - -static -void dispatcher() -{ - PKIX_Boolean keepGoing = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - do { - if (serverState < SERVER_DONE) { - do { - keepGoing = server(); - } while (keepGoing == PKIX_TRUE); - } - if (clientState < CLIENT_DONE) { - do { - keepGoing = client(); - } while (keepGoing == PKIX_TRUE); - } - do_other_work(); - - } while ((serverState < SERVER_DONE) || (clientState < CLIENT_DONE)); - - PKIX_TEST_RETURN(); -} - -int test_socket(int argc, char *argv[]) -{ - - int j = 0; - PKIX_UInt32 actualMinorVersion; - char buf[PR_NETDB_BUF_SIZE]; - char *serverName = NULL; - char *sepPtr = NULL; - PRHostEnt hostent; - PRUint16 portNum = 0; - PRStatus prstatus = PR_FAILURE; - PRErrorCode cStat = 0; - void *ipaddr = NULL; - PKIX_Error *bindError = NULL; - PRIntn hostenum; - - PKIX_TEST_STD_VARS(); - - startTests("Socket"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc != (j + 2)) { - printUsage(argv[0]); - pkixTestErrorMsg = "Missing command line argument."; - goto cleanup; - } - - serverName = argv[j + 1]; - - subTest("Using pkix_pl_Socket_CreateByName"); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_CreateByName - (PKIX_TRUE, timeout, serverName, &cStat, &sSock, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_GetCallbackList - (sSock, &sCallbackList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(sCallbackList->listenCallback - (sSock, backlog, plContext)); - - serverState = SERVER_LISTENING; - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_CreateByName - (PKIX_FALSE, timeout, serverName, &cStat, &cSock, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_GetCallbackList - (cSock, &cCallbackList, plContext)); - - if ((timeout == 0) && (cStat == PR_IN_PROGRESS_ERROR)) { - clientState = CLIENT_WAITFORCONNECT; - } else { - clientState = CLIENT_SEND1; - } - - dispatcher(); - - subTest("Using pkix_pl_Socket_Create"); - - sepPtr = strchr(serverName, ':'); - /* First strip off the portnum, if present, from the end of the name */ - if (sepPtr) { - *sepPtr++ = '\0'; - portNum = (PRUint16)atoi(sepPtr); - } else { - portNum = (PRUint16)LDAP_PORT; - } - /* - * The hostname may be a fully-qualified name. Just - * use the leftmost component in our lookup. - */ - sepPtr = strchr(serverName, '.'); - if (sepPtr) { - *sepPtr++ = '\0'; - } - prstatus = PR_GetHostByName(serverName, buf, sizeof(buf), &hostent); - - if ((prstatus != PR_SUCCESS) || (hostent.h_length != 4)) { - printUsage(argv[0]); - pkixTestErrorMsg = - "PR_GetHostByName rejects command line argument."; - goto cleanup; - } - - serverNetAddr.inet.family = PR_AF_INET; - serverNetAddr.inet.port = PR_htons(portNum); - serverNetAddr.inet.ip = PR_INADDR_ANY; - - hostenum = PR_EnumerateHostEnt(0, &hostent, portNum, &clientNetAddr); - if (hostenum == -1) { - pkixTestErrorMsg = - "PR_EnumerateHostEnt failed."; - goto cleanup; - } - - backlog = 5; - - /* timeout = PR_INTERVAL_NO_TIMEOUT; */ - /* timeout = 0; nonblocking */ - timeout = 0; - - bindError = pkix_pl_Socket_Create - (PKIX_TRUE, timeout, &serverNetAddr, &cStat, &sSock, plContext); - - /* If PR_Bind can't handle INADDR_ANY, try it with the real name */ - if (bindError) { - PKIX_TEST_DECREF_BC(bindError); - serverNetAddr.inet.ip = PR_htonl(*(PRUint32 *)ipaddr); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_Create - (PKIX_TRUE, - timeout, - &serverNetAddr, - &cStat, - &sSock, - plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_GetCallbackList - (sSock, &sCallbackList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(sCallbackList->listenCallback - (sSock, backlog, plContext)); - - serverState = SERVER_LISTENING; - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_Create - (PKIX_FALSE, timeout, &clientNetAddr, &cStat, &cSock, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(pkix_pl_Socket_GetCallbackList - (cSock, &cCallbackList, plContext)); - - if ((timeout == 0) && (cStat == PR_IN_PROGRESS_ERROR)) { - clientState = CLIENT_WAITFORCONNECT; - } else { - clientState = CLIENT_SEND1; - } - - dispatcher(); - -cleanup: - - PKIX_TEST_DECREF_AC(sSock); - PKIX_TEST_DECREF_AC(cSock); - PKIX_TEST_DECREF_AC(rendezvousSock); - - PKIX_TEST_RETURN(); - - endTests("Socket"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/Makefile b/security/nss/cmd/libpkix/pkix_pl/pki/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/manifest.mn b/security/nss/cmd/libpkix/pkix_pl/pki/manifest.mn deleted file mode 100755 index 69d2289ff..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/manifest.mn +++ /dev/null @@ -1,61 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = test_cert.c \ - test_crl.c \ - test_crlentry.c \ - test_date.c \ - test_generalname.c \ - test_nameconstraints.c \ - test_x500name.c \ - test_authorityinfoaccess.c \ - test_subjectinfoaccess.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolpki - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c deleted file mode 100644 index faae34899..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_authorityinfoaccess.c +++ /dev/null @@ -1,148 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_authorityinfoaccess.c - * - * Test Authority InfoAccess Type - * - */ - - - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -int test_authorityinfoaccess(int argc, char *argv[]) { - - PKIX_PL_Cert *cert = NULL; - PKIX_PL_Cert *certDiff = NULL; - PKIX_List *aiaList = NULL; - PKIX_List *siaList = NULL; - PKIX_PL_InfoAccess *aia = NULL; - PKIX_PL_InfoAccess *aiaDup = NULL; - PKIX_PL_InfoAccess *aiaDiff = NULL; - char *certPathName = NULL; - char *dirName = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 size, i; - PKIX_UInt32 j = 0; - char *expectedAscii = "[method:caIssuers, location:ldap:" - "//betty.nist.gov/cn=CA,ou=Basic%20LDAP%20URI%20OU1," - "o=Test%20Certificates,c=US?cACertificate;binary," - "crossCertificatePair;binary]"; - - PKIX_TEST_STD_VARS(); - - startTests("AuthorityInfoAccess"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 5+j) { - printf("Usage: %s <test-purpose> <cert> <diff-cert>\n", argv[0]); - } - - dirName = argv[2+j]; - certPathName = argv[3+j]; - - subTest("Creating Cert with Authority Info Access"); - cert = createCert(dirName, certPathName, plContext); - - certPathName = argv[4+j]; - - subTest("Creating Cert with Subject Info Access"); - certDiff = createCert(dirName, certPathName, plContext); - - subTest("Getting Authority Info Access"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetAuthorityInfoAccess - (cert, &aiaList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (aiaList, &size, plContext)); - - if (size != 1) { - pkixTestErrorMsg = "unexpected number of AIA"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (aiaList, 0, (PKIX_PL_Object **) &aia, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (aiaList, 0, (PKIX_PL_Object **) &aiaDup, plContext)); - - subTest("Getting Subject Info Access as difference comparison"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectInfoAccess - (certDiff, &siaList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (siaList, &size, plContext)); - - if (size != 1) { - pkixTestErrorMsg = "unexpected number of AIA"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (siaList, 0, (PKIX_PL_Object **) &aiaDiff, plContext)); - - subTest("Checking: Equal, Hash and ToString"); - PKIX_TEST_EQ_HASH_TOSTR_DUP - (aia, aiaDup, aiaDiff, expectedAscii, InfoAccess, PKIX_FALSE); - - - -cleanup: - - PKIX_TEST_DECREF_AC(aia); - PKIX_TEST_DECREF_AC(aiaDup); - PKIX_TEST_DECREF_AC(aiaDiff); - PKIX_TEST_DECREF_AC(aiaList); - PKIX_TEST_DECREF_AC(siaList); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(certDiff); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Authorityinfoaccess"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_cert.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_cert.c deleted file mode 100644 index 5d036658d..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_cert.c +++ /dev/null @@ -1,2360 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_cert.c - * - * Test Cert Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static PKIX_PL_Cert *altNameNoneCert = NULL; -static PKIX_PL_Cert *altNameOtherCert = NULL; -static PKIX_PL_Cert *altNameOtherCert_diff = NULL; -static PKIX_PL_Cert *altNameRfc822Cert = NULL; -static PKIX_PL_Cert *altNameRfc822Cert_diff = NULL; -static PKIX_PL_Cert *altNameDnsCert = NULL; -static PKIX_PL_Cert *altNameDnsCert_diff = NULL; -static PKIX_PL_Cert *altNameX400Cert = NULL; -static PKIX_PL_Cert *altNameX400Cert_diff = NULL; -static PKIX_PL_Cert *altNameDnCert = NULL; -static PKIX_PL_Cert *altNameDnCert_diff = NULL; -static PKIX_PL_Cert *altNameEdiCert = NULL; -static PKIX_PL_Cert *altNameEdiCert_diff = NULL; -static PKIX_PL_Cert *altNameUriCert = NULL; -static PKIX_PL_Cert *altNameUriCert_diff = NULL; -static PKIX_PL_Cert *altNameIpCert = NULL; -static PKIX_PL_Cert *altNameIpCert_diff = NULL; -static PKIX_PL_Cert *altNameOidCert = NULL; -static PKIX_PL_Cert *altNameOidCert_diff = NULL; -static PKIX_PL_Cert *altNameMultipleCert = NULL; - -static void *plContext = NULL; - -static void createCerts( - char *dataCentralDir, - char *goodInput, - char *diffInput, - PKIX_PL_Cert **goodObject, - PKIX_PL_Cert **equalObject, - PKIX_PL_Cert **diffObject) -{ - subTest("PKIX_PL_Cert_Create <goodObject>"); - *goodObject = createCert(dataCentralDir, goodInput, plContext); - - subTest("PKIX_PL_Cert_Create <equalObject>"); - *equalObject = createCert(dataCentralDir, goodInput, plContext); - - subTest("PKIX_PL_Cert_Create <diffObject>"); - *diffObject = createCert(dataCentralDir, diffInput, plContext); -} - - -static void -createCertsWithSubjectAltNames(char *dataCentralDir) -{ - subTest("PKIX_PL_Cert_Create <altNameDNS>"); - altNameDnsCert = createCert - (dataCentralDir, "generalName/altNameDnsCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameDNS_diff>"); - altNameDnsCert_diff = createCert - (dataCentralDir, "generalName/altNameDnsCert_diff", plContext); - - - subTest("PKIX_PL_Cert_Create <altNameRFC822>"); - altNameRfc822Cert = createCert - (dataCentralDir, "generalName/altNameRfc822Cert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameRFC822_diff>"); - altNameRfc822Cert_diff = createCert - (dataCentralDir, "generalName/altNameRfc822Cert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameX400Cert>"); - altNameX400Cert = createCert - (dataCentralDir, "generalName/altNameX400Cert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameX400_diff>"); - altNameX400Cert_diff = createCert - (dataCentralDir, "generalName/altNameX400Cert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameDN>"); - altNameDnCert = createCert - (dataCentralDir, "generalName/altNameDnCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameDN_diff>"); - altNameDnCert_diff = createCert - (dataCentralDir, "generalName/altNameDnCert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameEdiCert>"); - altNameEdiCert = createCert - (dataCentralDir, "generalName/altNameEdiCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameEdi_diff>"); - altNameEdiCert_diff = createCert - (dataCentralDir, "generalName/altNameEdiCert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameURI>"); - altNameUriCert = createCert - (dataCentralDir, "generalName/altNameUriCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameURI_diff>"); - altNameUriCert_diff = createCert - (dataCentralDir, "generalName/altNameUriCert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameIP>"); - altNameIpCert = createCert - (dataCentralDir, "generalName/altNameIpCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameIP_diff>"); - altNameIpCert_diff = createCert - (dataCentralDir, "generalName/altNameIpCert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameOID>"); - altNameOidCert = createCert - (dataCentralDir, "generalName/altNameOidCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameOID_diff>"); - altNameOidCert_diff = createCert - (dataCentralDir, "generalName/altNameOidCert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameOther>"); - altNameOtherCert = createCert - (dataCentralDir, "generalName/altNameOtherCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameOther_diff>"); - altNameOtherCert_diff = createCert - (dataCentralDir, "generalName/altNameOtherCert_diff", plContext); - - subTest("PKIX_PL_Cert_Create <altNameNone>"); - altNameNoneCert = createCert - (dataCentralDir, "generalName/altNameNoneCert", plContext); - - subTest("PKIX_PL_Cert_Create <altNameMultiple>"); - altNameMultipleCert = createCert - (dataCentralDir, "generalName/altNameRfc822DnsCert", plContext); -} - -static void testGetVersion( - PKIX_PL_Cert *goodObject) -{ - PKIX_UInt32 goodVersion; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetVersion"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetVersion - (goodObject, &goodVersion, plContext)); - - if (goodVersion != 2){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", goodVersion); - (void) printf("Expected value:\t2\n"); - goto cleanup; - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void testGetSerialNumber( - PKIX_PL_Cert *goodObject, - PKIX_PL_Cert *equalObject, - PKIX_PL_Cert *diffObject) -{ - PKIX_PL_BigInt *goodSN = NULL; - PKIX_PL_BigInt *equalSN = NULL; - PKIX_PL_BigInt *diffSN = NULL; - char *expectedAscii = "37bc66ec"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetSerialNumber"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSerialNumber - (goodObject, &goodSN, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSerialNumber - (equalObject, &equalSN, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSerialNumber - (diffObject, &diffSN, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodSN, equalSN, diffSN, expectedAscii, BigInt, PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodSN); - PKIX_TEST_DECREF_AC(equalSN); - PKIX_TEST_DECREF_AC(diffSN); - - PKIX_TEST_RETURN(); -} - - -static void testGetSubject( - PKIX_PL_Cert *goodObject, - PKIX_PL_Cert *equalObject, - PKIX_PL_Cert *diffObject) -{ - PKIX_PL_X500Name *goodSubject = NULL; - PKIX_PL_X500Name *equalSubject = NULL; - PKIX_PL_X500Name *diffSubject = NULL; - char *expectedAscii = "OU=bcn,OU=east,O=sun,C=us"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetSubject"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (goodObject, &goodSubject, plContext)); - - if (!goodSubject){ - testError("Certificate Subject should not be NULL"); - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (equalObject, &equalSubject, plContext)); - - if (!equalSubject){ - testError("Certificate Subject should not be NULL"); - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (diffObject, &diffSubject, plContext)); - - if (!diffSubject){ - testError("Certificate Subject should not be NULL"); - goto cleanup; - } - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodSubject, - equalSubject, - diffSubject, - expectedAscii, - X500Name, - PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodSubject); - PKIX_TEST_DECREF_AC(equalSubject); - PKIX_TEST_DECREF_AC(diffSubject); - - PKIX_TEST_RETURN(); -} - -static void testGetIssuer( - PKIX_PL_Cert *goodObject, - PKIX_PL_Cert *equalObject, - PKIX_PL_Cert *diffObject) -{ - PKIX_PL_X500Name *goodIssuer = NULL; - PKIX_PL_X500Name *equalIssuer = NULL; - PKIX_PL_X500Name *diffIssuer = NULL; - char *expectedAscii = "CN=yassir,OU=bcn,OU=east,O=sun,C=us"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetIssuer"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetIssuer - (goodObject, &goodIssuer, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetIssuer - (equalObject, &equalIssuer, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetIssuer - (diffObject, &diffIssuer, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodIssuer, - equalIssuer, - diffIssuer, - expectedAscii, - X500Name, - PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodIssuer); - PKIX_TEST_DECREF_AC(equalIssuer); - PKIX_TEST_DECREF_AC(diffIssuer); - - PKIX_TEST_RETURN(); -} - -static void testAltNames( - PKIX_PL_Cert *goodCert, - PKIX_PL_Cert *diffCert, - char *expectedAscii) -{ - PKIX_List *goodAltNames = NULL; - PKIX_List *diffAltNames = NULL; - PKIX_PL_GeneralName *goodAltName = NULL; - PKIX_PL_GeneralName *diffAltName = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectAltNames - (goodCert, &goodAltNames, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (goodAltNames, - 0, - (PKIX_PL_Object **)&goodAltName, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectAltNames - (diffCert, &diffAltNames, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (diffAltNames, - 0, - (PKIX_PL_Object **)&diffAltName, - plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodAltName, goodAltName, diffAltName, - expectedAscii, GeneralName, PKIX_TRUE); - -cleanup: - PKIX_TEST_DECREF_AC(goodAltNames); - PKIX_TEST_DECREF_AC(goodAltName); - PKIX_TEST_DECREF_AC(diffAltNames); - PKIX_TEST_DECREF_AC(diffAltName); - PKIX_TEST_RETURN(); -} - -static void testAltNamesNone(PKIX_PL_Cert *cert){ - - PKIX_List *altNames = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectAltNames - (cert, &altNames, plContext)); - - if (altNames != NULL){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%p\n", (void *)altNames); - (void) printf("Expected value:\tNULL\n"); - goto cleanup; - } - -cleanup: - - PKIX_TEST_DECREF_AC(altNames); - PKIX_TEST_RETURN(); - -} -static void testAltNamesMultiple(){ - PKIX_List *altNames = NULL; - PKIX_PL_GeneralName *firstAltName = NULL; - PKIX_Int32 firstExpectedType = PKIX_RFC822_NAME; - PKIX_PL_GeneralName *secondAltName = NULL; - PKIX_Int32 secondExpectedType = PKIX_DNS_NAME; - - - char *expectedAscii = - "[\n" - "\tVersion: v3\n" - "\tSerialNumber: 2d\n" - "\tIssuer: OU=labs,O=sun,C=us\n" - "\tSubject: CN=yassir,OU=labs,O=sun,C=us\n" - "\tValidity: [From: Mon Feb 09, 2004\n" - /* "\tValidity: [From: Mon Feb 09 14:43:52 2004\n" */ - "\t To: Mon Feb 09, 2004]\n" - /* "\t To: Mon Feb 09 14:43:52 2004]\n" */ - "\tSubjectAltNames: (yassir@sun.com, sunray.sun.com)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (EMPTY)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: (null)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "\tAuthorityInfoAccess: (null)\n" - "\tSubjectInfoAccess: (null)\n" - "\tCacheFlag: 0\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - testToStringHelper - ((PKIX_PL_Object *)altNameMultipleCert, - expectedAscii, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectAltNames - (altNameMultipleCert, &altNames, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (altNames, 0, (PKIX_PL_Object **)&firstAltName, plContext)); - - if (firstAltName->type != firstExpectedType){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", firstAltName->type); - (void) printf("Expected value:\t%d\n", firstExpectedType); - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (altNames, 1, (PKIX_PL_Object **)&secondAltName, plContext)); - - if (secondAltName->type != secondExpectedType){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", secondAltName->type); - (void) printf("Expected value:\t%d\n", secondExpectedType); - goto cleanup; - } - -cleanup: - PKIX_TEST_DECREF_AC(altNames); - PKIX_TEST_DECREF_AC(firstAltName); - PKIX_TEST_DECREF_AC(secondAltName); - PKIX_TEST_RETURN(); -} - -static void testGetSubjectAltNames(char *dataCentralDir){ - - char *expectedAscii = NULL; - - createCertsWithSubjectAltNames(dataCentralDir); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <DNS>"); - expectedAscii = "east.sun.com"; - testAltNames(altNameDnsCert, altNameDnsCert_diff, expectedAscii); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <RFC822>"); - expectedAscii = "alice.barnes@bcn.east.sun.com"; - testAltNames(altNameRfc822Cert, altNameRfc822Cert_diff, expectedAscii); - - /* - *this should work once bugzilla bug #233586 is fixed. - *subTest("PKIX_PL_Cert_GetSubjectAltNames <X400Address>"); - *expectedAscii = "X400Address: <DER-encoded value>"; - *testAltNames(altNameX400Cert, altNameX400Cert_diff, expectedAscii); - */ - - subTest("PKIX_PL_Cert_GetSubjectAltNames <DN>"); - expectedAscii = "CN=elley,OU=labs,O=sun,C=us"; - testAltNames(altNameDnCert, altNameDnCert_diff, expectedAscii); - - /* - * this should work once bugzilla bug #233586 is fixed. - * subTest("PKIX_PL_Cert_GetSubjectAltNames <EdiPartyName>"); - * expectedAscii = "EDIPartyName: <DER-encoded value>"; - * testAltNames(altNameEdiCert, altNameEdiCert_diff, expectedAscii); - */ - - subTest("PKIX_PL_Cert_GetSubjectAltNames <URI>"); - expectedAscii = "http://www.sun.com"; - testAltNames(altNameUriCert, altNameUriCert_diff, expectedAscii); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <IP>"); - expectedAscii = "1.2.3.4"; - testAltNames(altNameIpCert, altNameIpCert_diff, expectedAscii); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <OID>"); - expectedAscii = "1.2.39"; - testAltNames(altNameOidCert, altNameOidCert_diff, expectedAscii); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <Other>"); - expectedAscii = "1.7.26.97"; - testAltNames(altNameOtherCert, altNameOtherCert_diff, expectedAscii); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <none>"); - testAltNamesNone(altNameNoneCert); - - subTest("PKIX_PL_Cert_GetSubjectAltNames <Multiple>"); - testAltNamesMultiple(); -} - -static void testGetSubjectPublicKey( - PKIX_PL_Cert *goodObject, - PKIX_PL_Cert *equalObject, - PKIX_PL_Cert *diffObject) -{ - PKIX_PL_PublicKey *goodPubKey = NULL; - PKIX_PL_PublicKey *equalPubKey = NULL; - PKIX_PL_PublicKey *diffPubKey = NULL; - char *expectedAscii = "ANSI X9.57 DSA Signature"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (goodObject, &goodPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (equalObject, &equalPubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (diffObject, &diffPubKey, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodPubKey, equalPubKey, diffPubKey, - expectedAscii, PublicKey, PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodPubKey); - PKIX_TEST_DECREF_AC(equalPubKey); - PKIX_TEST_DECREF_AC(diffPubKey); - - PKIX_TEST_RETURN(); -} - -static void testGetSubjectPublicKeyAlgId(PKIX_PL_Cert *goodObject){ - PKIX_PL_OID *pkixPubKeyOID = NULL; - char *expectedAscii = "1.2.840.10040.4.1"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetSubjectPublicKeyAlgId"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectPublicKeyAlgId - (goodObject, &pkixPubKeyOID, plContext)); - - testToStringHelper - ((PKIX_PL_Object *)pkixPubKeyOID, expectedAscii, plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(pkixPubKeyOID); - PKIX_TEST_RETURN(); -} - -static void -testCritExtensionsPresent(PKIX_PL_Cert *cert) -{ - PKIX_List *critOIDList = NULL; - char *firstOIDAscii = "2.5.29.15"; - PKIX_PL_OID *firstOID = NULL; - char *secondOIDAscii = "2.5.29.19"; - PKIX_PL_OID *secondOID = NULL; - - PKIX_TEST_STD_VARS(); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetCriticalExtensionOIDs - (cert, &critOIDList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (critOIDList, 0, (PKIX_PL_Object **)&firstOID, plContext)); - testToStringHelper - ((PKIX_PL_Object *)firstOID, firstOIDAscii, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (critOIDList, 1, (PKIX_PL_Object **)&secondOID, plContext)); - - testToStringHelper - ((PKIX_PL_Object *)secondOID, secondOIDAscii, plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(critOIDList); - PKIX_TEST_DECREF_AC(firstOID); - PKIX_TEST_DECREF_AC(secondOID); - - PKIX_TEST_RETURN(); -} - -static void -testCritExtensionsAbsent(PKIX_PL_Cert *cert) -{ - PKIX_List *oidList = NULL; - PKIX_Boolean empty; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetCriticalExtensionOIDs - (cert, &oidList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_IsEmpty(oidList, &empty, plContext)); - - if (!empty){ - pkixTestErrorMsg = "unexpected mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(oidList); - PKIX_TEST_RETURN(); -} - - -static void -testAllExtensionsAbsent(char *dataCentralDir) -{ - PKIX_List *oidList = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_Boolean empty; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <noExtensionsCert>"); - cert = createCert(dataCentralDir, "noExtensionsCert", plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetCriticalExtensionOIDs - (cert, &oidList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_IsEmpty(oidList, &empty, plContext)); - - if (!empty){ - pkixTestErrorMsg = "unexpected mismatch"; - } - -cleanup: - PKIX_TEST_DECREF_AC(oidList); - PKIX_TEST_DECREF_AC(cert); - - PKIX_TEST_RETURN(); -} - -static void -testGetCriticalExtensionOIDs(char *dataCentralDir, PKIX_PL_Cert *goodObject) -{ - subTest("PKIX_PL_Cert_GetCriticalExtensionOIDs " - "<CritExtensionsPresent>"); - testCritExtensionsPresent(goodObject); - - - subTest("PKIX_PL_Cert_GetCriticalExtensionOIDs " - "<CritExtensionsAbsent>"); - testCritExtensionsAbsent(altNameOidCert); - - - subTest("PKIX_PL_Cert_GetCriticalExtensionOIDs " - "<AllExtensionsAbsent>"); - testAllExtensionsAbsent(dataCentralDir); -} - -static void -testKeyIdentifiersMatching(char *dataCentralDir) -{ - PKIX_PL_Cert *subjKeyIDCert = NULL; - PKIX_PL_Cert *authKeyIDCert = NULL; - PKIX_PL_ByteArray *subjKeyID = NULL; - PKIX_PL_ByteArray *authKeyID = NULL; - PKIX_PL_ByteArray *subjKeyID_diff = NULL; - - char *expectedAscii = - "[116, 021, 213, 036, 028, 189, 094, 101, 136, 031, 225," - " 139, 009, 126, 127, 234, 025, 072, 078, 097]"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <subjKeyIDCert>"); - subjKeyIDCert = createCert - (dataCentralDir, "keyIdentifier/subjKeyIDCert", plContext); - - subTest("PKIX_PL_Cert_Create <authKeyIDCert>"); - authKeyIDCert = createCert - (dataCentralDir, "keyIdentifier/authKeyIDCert", plContext); - - subTest("PKIX_PL_Cert_GetSubjectKeyIdentifier <good>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectKeyIdentifier - (subjKeyIDCert, &subjKeyID, plContext)); - - subTest("PKIX_PL_Cert_GetAuthorityKeyIdentifier <equal>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetAuthorityKeyIdentifier - (authKeyIDCert, &authKeyID, plContext)); - - subTest("PKIX_PL_Cert_GetSubjectKeyIdentifier <diff>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectKeyIdentifier - (authKeyIDCert, &subjKeyID_diff, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (subjKeyID, - authKeyID, - subjKeyID_diff, - expectedAscii, - ByteArray, - PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(subjKeyIDCert); - PKIX_TEST_DECREF_AC(authKeyIDCert); - PKIX_TEST_DECREF_AC(subjKeyID); - PKIX_TEST_DECREF_AC(authKeyID); - PKIX_TEST_DECREF_AC(subjKeyID_diff); - - PKIX_TEST_RETURN(); -} - -static void -testKeyIdentifierAbsent(PKIX_PL_Cert *cert) -{ - PKIX_PL_ByteArray *subjKeyID = NULL; - PKIX_PL_ByteArray *authKeyID = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectKeyIdentifier - (cert, &subjKeyID, plContext)); - - if (subjKeyID != NULL){ - pkixTestErrorMsg = "unexpected mismatch"; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetAuthorityKeyIdentifier - (cert, &authKeyID, plContext)); - - if (authKeyID != NULL){ - pkixTestErrorMsg = "unexpected mismatch"; - } - - -cleanup: - - PKIX_TEST_DECREF_AC(subjKeyID); - PKIX_TEST_DECREF_AC(authKeyID); - - PKIX_TEST_RETURN(); -} - -static void -testGetKeyIdentifiers(char *dataCentralDir, PKIX_PL_Cert *goodObject) -{ - testKeyIdentifiersMatching(dataCentralDir); - testKeyIdentifierAbsent(goodObject); -} - -static void -testVerifyKeyUsage( - char *dataCentralDir, - char *dataDir, - PKIX_PL_Cert *multiKeyUsagesCert) -{ - PKIX_PL_Cert *encipherOnlyCert = NULL; - PKIX_PL_Cert *decipherOnlyCert = NULL; - PKIX_PL_Cert *noKeyUsagesCert = NULL; - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <encipherOnlyCert>"); - encipherOnlyCert = createCert - (dataCentralDir, "keyUsage/encipherOnlyCert", plContext); - - subTest("PKIX_PL_Cert_Create <decipherOnlyCert>"); - decipherOnlyCert = createCert - (dataCentralDir, "keyUsage/decipherOnlyCert", plContext); - - subTest("PKIX_PL_Cert_Create <noKeyUsagesCert>"); - noKeyUsagesCert = createCert - (dataCentralDir, "keyUsage/noKeyUsagesCert", plContext); - - subTest("PKIX_PL_Cert_VerifyKeyUsage <key_cert_sign>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_VerifyKeyUsage - (multiKeyUsagesCert, PKIX_KEY_CERT_SIGN, plContext)); - - subTest("PKIX_PL_Cert_VerifyKeyUsage <multiKeyUsages>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_VerifyKeyUsage - (multiKeyUsagesCert, - PKIX_KEY_CERT_SIGN | PKIX_DIGITAL_SIGNATURE, - plContext)); - - subTest("PKIX_PL_Cert_VerifyKeyUsage <encipher_only>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_VerifyKeyUsage - (encipherOnlyCert, PKIX_ENCIPHER_ONLY, plContext)); - - subTest("PKIX_PL_Cert_VerifyKeyUsage <noKeyUsages>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_VerifyKeyUsage - (noKeyUsagesCert, PKIX_ENCIPHER_ONLY, plContext)); - - subTest("PKIX_PL_Cert_VerifyKeyUsage <decipher_only>"); - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_Cert_VerifyKeyUsage - (decipherOnlyCert, PKIX_DECIPHER_ONLY, plContext)); - -cleanup: - PKIX_TEST_DECREF_AC(encipherOnlyCert); - PKIX_TEST_DECREF_AC(decipherOnlyCert); - PKIX_TEST_DECREF_AC(noKeyUsagesCert); - - PKIX_TEST_RETURN(); -} - -static void -testGetExtendedKeyUsage(char *dataCentralDir) -{ - - PKIX_PL_Cert *codeSigningEKUCert = NULL; - PKIX_PL_Cert *multiEKUCert = NULL; - PKIX_PL_Cert *noEKUCert = NULL; - PKIX_List *firstExtKeyUsage = NULL; - PKIX_List *secondExtKeyUsage = NULL; - PKIX_List *thirdExtKeyUsage = NULL; - PKIX_PL_OID *firstOID = NULL; - char *oidAscii = "1.3.6.1.5.5.7.3.3"; - PKIX_PL_OID *secondOID = NULL; - char *secondOIDAscii = "1.3.6.1.5.5.7.3.1"; - PKIX_PL_OID *thirdOID = NULL; - char *thirdOIDAscii = "1.3.6.1.5.5.7.3.2"; - PKIX_PL_OID *fourthOID = NULL; - PKIX_UInt32 length = 0; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <codeSigningEKUCert>"); - codeSigningEKUCert = createCert - (dataCentralDir, "extKeyUsage/codeSigningEKUCert", plContext); - - subTest("PKIX_PL_Cert_Create <multiEKUCert>"); - multiEKUCert = createCert - (dataCentralDir, "extKeyUsage/multiEKUCert", plContext); - - subTest("PKIX_PL_Cert_Create <noEKUCert>"); - noEKUCert = createCert - (dataCentralDir, "extKeyUsage/noEKUCert", plContext); - - subTest("PKIX_PL_Cert_ExtendedKeyUsage <codeSigningEKU>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetExtendedKeyUsage - (codeSigningEKUCert, &firstExtKeyUsage, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (firstExtKeyUsage, 0, (PKIX_PL_Object **)&firstOID, plContext)); - testToStringHelper((PKIX_PL_Object *)firstOID, oidAscii, plContext); - - subTest("PKIX_PL_Cert_ExtendedKeyUsage <multiEKU>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetExtendedKeyUsage - (multiEKUCert, &secondExtKeyUsage, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (secondExtKeyUsage, &length, plContext)); - - if (length != 3){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", length); - (void) printf("Expected value:\t3\n"); - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (secondExtKeyUsage, - 0, - (PKIX_PL_Object **)&secondOID, - plContext)); - - testToStringHelper((PKIX_PL_Object *)secondOID, oidAscii, plContext); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (secondExtKeyUsage, - 1, - (PKIX_PL_Object **)&thirdOID, - plContext)); - - testToStringHelper - ((PKIX_PL_Object *)thirdOID, secondOIDAscii, plContext); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (secondExtKeyUsage, - 2, - (PKIX_PL_Object **)&fourthOID, - plContext)); - - testToStringHelper - ((PKIX_PL_Object *)fourthOID, thirdOIDAscii, plContext); - - subTest("PKIX_PL_Cert_ExtendedKeyUsage <noEKU>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetExtendedKeyUsage - (noEKUCert, &thirdExtKeyUsage, plContext)); - - if (thirdExtKeyUsage != NULL){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%p\n", (void *)thirdExtKeyUsage); - (void) printf("Expected value:\tNULL\n"); - goto cleanup; - } - -cleanup: - - PKIX_TEST_DECREF_AC(firstOID); - PKIX_TEST_DECREF_AC(secondOID); - PKIX_TEST_DECREF_AC(thirdOID); - PKIX_TEST_DECREF_AC(fourthOID); - - PKIX_TEST_DECREF_AC(firstExtKeyUsage); - PKIX_TEST_DECREF_AC(secondExtKeyUsage); - PKIX_TEST_DECREF_AC(thirdExtKeyUsage); - - PKIX_TEST_DECREF_AC(codeSigningEKUCert); - PKIX_TEST_DECREF_AC(multiEKUCert); - PKIX_TEST_DECREF_AC(noEKUCert); - - PKIX_TEST_RETURN(); -} - -static void testMakeInheritedDSAPublicKey(char *dataCentralDir){ - PKIX_PL_PublicKey *firstKey = NULL; - PKIX_PL_PublicKey *secondKey = NULL; - PKIX_PL_PublicKey *resultKeyPositive = NULL; - PKIX_PL_PublicKey *resultKeyNegative = NULL; - PKIX_PL_Cert *firstCert = NULL; - PKIX_PL_Cert *secondCert = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <dsaWithoutParams>"); - firstCert = createCert - (dataCentralDir, "publicKey/dsaWithoutParams", plContext); - - subTest("PKIX_PL_Cert_Create <dsaWithParams>"); - secondCert = createCert - (dataCentralDir, "publicKey/dsaWithParams", plContext); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey <firstKey>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectPublicKey - (firstCert, &firstKey, plContext)); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey <secondKey>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (secondCert, &secondKey, plContext)); - - subTest("PKIX_PL_PublicKey_MakeInheritedDSAPublicKey <positive>"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PublicKey_MakeInheritedDSAPublicKey - (firstKey, secondKey, &resultKeyPositive, plContext)); - - if (resultKeyPositive == NULL){ - testError("PKIX_PL_PublicKey_MakeInheritedDSAPublicKey failed"); - } - - subTest("PKIX_PL_PublicKey_MakeInheritedDSAPublicKey <negative>"); - PKIX_TEST_EXPECT_ERROR(PKIX_PL_PublicKey_MakeInheritedDSAPublicKey - (firstKey, firstKey, &resultKeyNegative, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(firstCert); - PKIX_TEST_DECREF_AC(secondCert); - - PKIX_TEST_DECREF_AC(firstKey); - PKIX_TEST_DECREF_AC(secondKey); - PKIX_TEST_DECREF_AC(resultKeyPositive); - PKIX_TEST_DECREF_AC(resultKeyNegative); - - PKIX_TEST_RETURN(); -} - -static void testVerifySignature(char *dataCentralDir){ - PKIX_PL_Cert *firstCert = NULL; - PKIX_PL_Cert *secondCert = NULL; - PKIX_PL_PublicKey *firstPubKey = NULL; - PKIX_PL_PublicKey *secondPubKey = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <labs2yassir>"); - firstCert = createCert(dataCentralDir, "publicKey/labs2yassir", plContext); - - subTest("PKIX_PL_Cert_Create <yassir2labs>"); - secondCert = createCert(dataCentralDir, "publicKey/yassir2labs", plContext); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey <labs2yassir>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectPublicKey - (firstCert, &firstPubKey, plContext)); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey <yassir2labs>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectPublicKey - (secondCert, &secondPubKey, plContext)); - - subTest("PKIX_PL_Cert_VerifySignature <positive>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_VerifySignature - (secondCert, firstPubKey, plContext)); - - subTest("PKIX_PL_Cert_VerifySignature <negative>"); - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_Cert_VerifySignature - (secondCert, secondPubKey, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(firstCert); - PKIX_TEST_DECREF_AC(secondCert); - PKIX_TEST_DECREF_AC(firstPubKey); - PKIX_TEST_DECREF_AC(secondPubKey); - - PKIX_TEST_RETURN(); -} - -static void -testCheckValidity( - PKIX_PL_Cert *olderCert, - PKIX_PL_Cert *newerCert) -{ - /* - * olderCert has the following Validity: - * notBefore = August 19, 1999: 20:19:56 GMT - * notAfter = August 18, 2000: 20:19:56 GMT - * - * newerCert has the following Validity: - * notBefore = November 13, 2003: 16:46:03 GMT - * notAfter = February 13, 2009: 16:46:03 GMT - */ - - /* olderDateAscii = March 29, 2000: 13:48:47 GMT */ - char *olderAscii = "000329134847Z"; - PKIX_PL_String *olderString = NULL; - PKIX_PL_Date *olderDate = NULL; - - /* newerDateAscii = March 29, 2004: 13:48:47 GMT */ - char *newerAscii = "040329134847Z"; - PKIX_PL_String *newerString = NULL; - PKIX_PL_Date *newerDate = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_CheckValidity <creating Dates>"); - - /* create newer date when newer cert is valid but older cert is not */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, newerAscii, 0, &newerString, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Date_Create_UTCTime - (newerString, &newerDate, plContext)); - - /* create older date when older cert is valid but newer cert is not */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, olderAscii, 0, &olderString, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Date_Create_UTCTime - (olderString, &olderDate, plContext)); - - /* check validity of both certificates using olderDate */ - subTest("PKIX_PL_Cert_CheckValidity <olderDate:positive>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_CheckValidity(olderCert, olderDate, plContext)); - - subTest("PKIX_PL_Cert_CheckValidity <olderDate:negative>"); - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_Cert_CheckValidity(newerCert, olderDate, plContext)); - - /* check validity of both certificates using newerDate */ - subTest("PKIX_PL_Cert_CheckValidity <newerDate:positive>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_CheckValidity(newerCert, newerDate, plContext)); - - subTest("PKIX_PL_Cert_CheckValidity <newerDate:negative>"); - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_Cert_CheckValidity(olderCert, newerDate, plContext)); - - /* - * check validity of both certificates using current time - * NOTE: these "now" tests will not work when the current - * time is after newerCert.notAfter (~ February 13, 2009) - */ - subTest("PKIX_PL_Cert_CheckValidity <now:positive>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_CheckValidity(newerCert, NULL, plContext)); - - subTest("PKIX_PL_Cert_CheckValidity <now:negative>"); - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_Cert_CheckValidity(olderCert, NULL, plContext)); - -cleanup: - PKIX_TEST_DECREF_AC(olderString); - PKIX_TEST_DECREF_AC(newerString); - PKIX_TEST_DECREF_AC(olderDate); - PKIX_TEST_DECREF_AC(newerDate); - - PKIX_TEST_RETURN(); -} - -static void -readCertBasicConstraints( - char *dataDir, - char *goodCertName, - char *diffCertName, - PKIX_PL_CertBasicConstraints **goodBasicConstraints, - PKIX_PL_CertBasicConstraints **equalBasicConstraints, - PKIX_PL_CertBasicConstraints **diffBasicConstraints){ - - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - - PKIX_TEST_STD_VARS(); - - createCerts(dataDir, goodCertName, diffCertName, - &goodCert, &equalCert, &diffCert); - /* - * Warning: pointer will be NULL if BasicConstraints - * extension is not present in the certificate. */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetBasicConstraints - (goodCert, goodBasicConstraints, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetBasicConstraints - (equalCert, equalBasicConstraints, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetBasicConstraints - (diffCert, diffBasicConstraints, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(diffCert); - - PKIX_TEST_RETURN(); -} - -static void -testBasicConstraintsHelper( - char *dataDir, - char *goodCertName, - char *diffCertName, - char *expectedAscii) -{ - PKIX_PL_CertBasicConstraints *goodBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *equalBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *diffBasicConstraints = NULL; - - PKIX_TEST_STD_VARS(); - - readCertBasicConstraints - (dataDir, - goodCertName, - diffCertName, - &goodBasicConstraints, - &equalBasicConstraints, - &diffBasicConstraints); - - /* - * The standard test macro is applicable only - * if BasicConstraint extension is present - * in the certificate. Otherwise some - * pointers will be null. - */ - if ((goodBasicConstraints) && - (equalBasicConstraints) && - (diffBasicConstraints)) { - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodBasicConstraints, - equalBasicConstraints, - diffBasicConstraints, - expectedAscii, - BasicConstraints, - PKIX_TRUE); - } else { - /* Test what we can */ - if (goodBasicConstraints) { - if (!equalBasicConstraints) { - testError - ("Unexpected NULL value of equalBasicConstraints"); - goto cleanup; - } - subTest("PKIX_PL_BasicConstraints_Equals <match>"); - testEqualsHelper - ((PKIX_PL_Object *)(goodBasicConstraints), - (PKIX_PL_Object *)(equalBasicConstraints), - PKIX_TRUE, - plContext); - subTest("PKIX_PL_BasicConstraints_Hashcode <match>"); - testHashcodeHelper - ((PKIX_PL_Object *)(goodBasicConstraints), - (PKIX_PL_Object *)(equalBasicConstraints), - PKIX_TRUE, - plContext); - if (diffBasicConstraints) { - subTest("PKIX_PL_BasicConstraints_Equals <non-match>"); - testEqualsHelper - ((PKIX_PL_Object *)(goodBasicConstraints), - (PKIX_PL_Object *)(diffBasicConstraints), - PKIX_FALSE, - plContext); - subTest("PKIX_PL_BasicConstraints_Hashcode <non-match>"); - testHashcodeHelper - ((PKIX_PL_Object *)(goodBasicConstraints), - (PKIX_PL_Object *)(diffBasicConstraints), - PKIX_FALSE, - plContext); - } - subTest("PKIX_PL_BasicConstraints_Duplicate"); - testDuplicateHelper - ((PKIX_PL_Object *)goodBasicConstraints, plContext); - } - if (expectedAscii) { - subTest("PKIX_PL_BasicConstraints_ToString"); - testToStringHelper - ((PKIX_PL_Object *)(goodBasicConstraints), - expectedAscii, - plContext); - } - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodBasicConstraints); - PKIX_TEST_DECREF_AC(equalBasicConstraints); - PKIX_TEST_DECREF_AC(diffBasicConstraints); - - PKIX_TEST_RETURN(); -} - -static void -testBasicConstraints_GetCAFlag(char *dataCentralDir) -{ - /* - * XXX When we have a certificate with a non-null Basic - * Constraints field and a value of FALSE for CAFlag, - * this test should be modified to use that - * certificate for diffCertName, and to verify that - * GetCAFlag returns a FALSE value. But our certificates for - * non-CAs are created with no BasicConstraints extension. - */ - PKIX_PL_CertBasicConstraints *goodBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *equalBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *diffBasicConstraints = NULL; - char *goodCertName = "yassir2yassir"; - char *diffCertName = "nss2alice"; - PKIX_Boolean goodCAFlag = PKIX_FALSE; - PKIX_Boolean diffCAFlag = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_BasicConstraints_GetCAFlag"); - - readCertBasicConstraints - (dataCentralDir, - goodCertName, - diffCertName, - &goodBasicConstraints, - &equalBasicConstraints, - &diffBasicConstraints); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BasicConstraints_GetCAFlag - (goodBasicConstraints, &goodCAFlag, plContext)); - if (!goodCAFlag) { - testError("BasicConstraint CAFlag unexpectedly FALSE"); - goto cleanup; - } - - if (diffBasicConstraints) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BasicConstraints_GetCAFlag - (diffBasicConstraints, &diffCAFlag, plContext)); - if (diffCAFlag) { - testError("BasicConstraint CAFlag unexpectedly TRUE"); - goto cleanup; - } - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodBasicConstraints); - PKIX_TEST_DECREF_AC(equalBasicConstraints); - PKIX_TEST_DECREF_AC(diffBasicConstraints); - - PKIX_TEST_RETURN(); -} - -static void -testBasicConstraints_GetPathLenConstraint(char *dataCentralDir) -{ - PKIX_PL_CertBasicConstraints *goodBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *equalBasicConstraints = NULL; - PKIX_PL_CertBasicConstraints *diffBasicConstraints = NULL; - char *goodCertName = "yassir2yassir"; - char *diffCertName = "sun2sun"; - PKIX_Int32 goodPathLen = 0; - PKIX_Int32 diffPathLen = 0; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_BasicConstraints_GetPathLenConstraint"); - - readCertBasicConstraints - (dataCentralDir, - goodCertName, - diffCertName, - &goodBasicConstraints, - &equalBasicConstraints, - &diffBasicConstraints); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_BasicConstraints_GetPathLenConstraint - (goodBasicConstraints, &goodPathLen, plContext)); - if (0 != goodPathLen) { - testError("unexpected basicConstraint pathLen"); - (void) printf("Actual value:\t%d\n", goodPathLen); - (void) printf("Expected value:\t0\n"); - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_BasicConstraints_GetPathLenConstraint - (diffBasicConstraints, &diffPathLen, plContext)); - if (1 != diffPathLen) { - testError("unexpected basicConstraint pathLen"); - (void) printf("Actual value:\t%d\n", diffPathLen); - (void) printf("Expected value:\t1\n"); - goto cleanup; - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodBasicConstraints); - PKIX_TEST_DECREF_AC(equalBasicConstraints); - PKIX_TEST_DECREF_AC(diffBasicConstraints); - - PKIX_TEST_RETURN(); -} - -static void -testGetBasicConstraints(char *dataCentralDir) -{ - char *goodCertName = NULL; - char *diffCertName = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetBasicConstraints <CA(0) and non-CA>"); - goodCertName = "yassir2yassir"; - diffCertName = "nss2alice"; - testBasicConstraintsHelper - (dataCentralDir, goodCertName, diffCertName, "CA(0)"); - - subTest("PKIX_PL_Cert_GetBasicConstraints <non-CA and CA(1)>"); - goodCertName = "nss2alice"; - diffCertName = "sun2sun"; - testBasicConstraintsHelper - (dataCentralDir, goodCertName, diffCertName, NULL); - - subTest("PKIX_PL_Cert_GetBasicConstraints <CA(0) and CA(1)>"); - goodCertName = "yassir2bcn"; - diffCertName = "sun2sun"; - testBasicConstraintsHelper - (dataCentralDir, goodCertName, diffCertName, "CA(0)"); - - subTest("PKIX_PL_Cert_GetBasicConstraints <CA(-1) and CA(1)>"); - goodCertName = "anchor2dsa"; - diffCertName = "sun2sun"; - testBasicConstraintsHelper - (dataCentralDir, goodCertName, diffCertName, "CA(-1)"); - - PKIX_TEST_RETURN(); -} - -static void -testGetPolicyInformation(char *dataDir) -{ - - char *goodCertName = - "UserNoticeQualifierTest15EE.crt"; - char *equalCertName = - "UserNoticeQualifierTest15EE.crt"; - char *diffCertName = - "UserNoticeQualifierTest17EE.crt"; - PKIX_Boolean isImmutable = PKIX_FALSE; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_List* goodPolicyInfo = NULL; - PKIX_List* equalPolicyInfo = NULL; - PKIX_List* diffPolicyInfo = NULL; - PKIX_PL_CertPolicyInfo *goodPolicy = NULL; - PKIX_PL_CertPolicyInfo *equalPolicy = NULL; - PKIX_PL_CertPolicyInfo *diffPolicy = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_Cert_GetPolicyInformation"); - - /* - * Get the cert, then the list of policyInfos. - * Take the first policyInfo from the list. - */ - - /* Get the PolicyInfo objects */ - goodCert = createCert(dataDir, goodCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (goodCert, &goodPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (goodPolicyInfo, 0, (PKIX_PL_Object **)&goodPolicy, plContext)); - - equalCert = createCert(dataDir, equalCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (equalCert, &equalPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (equalPolicyInfo, - 0, - (PKIX_PL_Object **)&equalPolicy, - plContext)); - - diffCert = createCert(dataDir, diffCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (diffCert, &diffPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (diffPolicyInfo, 0, (PKIX_PL_Object **)&diffPolicy, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodPolicy, - equalPolicy, - diffPolicy, - NULL, - CertPolicyInfo, - PKIX_FALSE); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsImmutable - (goodPolicyInfo, &isImmutable, plContext)); - - if (isImmutable != PKIX_TRUE) { - testError("PolicyInfo List is not immutable"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(diffPolicy); - PKIX_TEST_DECREF_AC(goodPolicyInfo); - PKIX_TEST_DECREF_AC(equalPolicyInfo); - PKIX_TEST_DECREF_AC(diffPolicyInfo); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(diffCert); - PKIX_TEST_RETURN(); -} - -static void -testCertPolicy_GetPolicyId(char *dataDir) -{ - char *goodCertName = - "UserNoticeQualifierTest15EE.crt"; - char *equalCertName = - "UserNoticeQualifierTest16EE.crt"; - char *diffCertName = - "UserNoticeQualifierTest17EE.crt"; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_List* goodPolicyInfo = NULL; - PKIX_List* equalPolicyInfo = NULL; - PKIX_List* diffPolicyInfo = NULL; - PKIX_PL_CertPolicyInfo *goodPolicy = NULL; - PKIX_PL_CertPolicyInfo *equalPolicy = NULL; - PKIX_PL_CertPolicyInfo *diffPolicy = NULL; - PKIX_PL_OID *goodID = NULL; - PKIX_PL_OID *equalID = NULL; - PKIX_PL_OID *diffID = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_CertPolicyInfo_GetPolicyId"); - - /* - * Get the cert, then the list of policyInfos. - * Take the first policyInfo from the list. - * Finally, get the policyInfo's ID. - */ - - /* Get the PolicyInfo objects */ - goodCert = createCert(dataDir, goodCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (goodCert, &goodPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (goodPolicyInfo, 0, (PKIX_PL_Object **)&goodPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (goodPolicy, &goodID, plContext)); - - equalCert = createCert(dataDir, equalCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (equalCert, &equalPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (equalPolicyInfo, - 0, - (PKIX_PL_Object **)&equalPolicy, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (equalPolicy, &equalID, plContext)); - - diffCert = createCert(dataDir, diffCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (diffCert, &diffPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (diffPolicyInfo, 0, (PKIX_PL_Object **)&diffPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolicyId - (diffPolicy, &diffID, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodID, equalID, diffID, NULL, OID, PKIX_FALSE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodID); - PKIX_TEST_DECREF_AC(equalID); - PKIX_TEST_DECREF_AC(diffID); - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(diffPolicy); - PKIX_TEST_DECREF_AC(goodPolicyInfo); - PKIX_TEST_DECREF_AC(equalPolicyInfo); - PKIX_TEST_DECREF_AC(diffPolicyInfo); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(diffCert); - PKIX_TEST_RETURN(); -} - -static void -testCertPolicy_GetPolQualifiers(char *dataDir) -{ - char *goodCertName = - "UserNoticeQualifierTest15EE.crt"; - char *equalCertName = - "UserNoticeQualifierTest16EE.crt"; - char *diffCertName = - "UserNoticeQualifierTest18EE.crt"; - PKIX_Boolean isImmutable = PKIX_FALSE; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_List* goodPolicyInfo = NULL; - PKIX_List* equalPolicyInfo = NULL; - PKIX_List* diffPolicyInfo = NULL; - PKIX_PL_CertPolicyInfo *goodPolicy = NULL; - PKIX_PL_CertPolicyInfo *equalPolicy = NULL; - PKIX_PL_CertPolicyInfo *diffPolicy = NULL; - PKIX_List* goodQuals = NULL; - PKIX_List* equalQuals = NULL; - PKIX_List* diffQuals = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_CertPolicyInfo_GetPolQualifiers"); - - /* - * Get the cert, then the list of policyInfos. - * Take the first policyInfo from the list. - * Get its list of PolicyQualifiers. - */ - - /* Get the PolicyInfo objects */ - goodCert = createCert(dataDir, goodCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (goodCert, &goodPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (goodPolicyInfo, 0, (PKIX_PL_Object **)&goodPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (goodPolicy, &goodQuals, plContext)); - - equalCert = createCert(dataDir, equalCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (equalCert, &equalPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (equalPolicyInfo, - 0, - (PKIX_PL_Object **)&equalPolicy, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (equalPolicy, &equalQuals, plContext)); - - diffCert = createCert(dataDir, diffCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (diffCert, &diffPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (diffPolicyInfo, 0, (PKIX_PL_Object **)&diffPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (diffPolicy, &diffQuals, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodQuals, - equalQuals, - diffQuals, - NULL, - List, - PKIX_FALSE); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_IsImmutable - (goodQuals, &isImmutable, plContext)); - - if (isImmutable != PKIX_TRUE) { - testError("PolicyQualifier List is not immutable"); - } - -cleanup: - - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(goodPolicyInfo); - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(goodQuals); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(equalPolicyInfo); - PKIX_TEST_DECREF_AC(equalQuals); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(diffCert); - PKIX_TEST_DECREF_AC(diffPolicyInfo); - PKIX_TEST_DECREF_AC(diffPolicy); - PKIX_TEST_DECREF_AC(diffQuals); - - PKIX_TEST_RETURN(); -} - -static void -testPolicyQualifier_GetQualifier(char *dataDir) -{ - char *goodCertName = - "UserNoticeQualifierTest15EE.crt"; - char *equalCertName = - "UserNoticeQualifierTest16EE.crt"; - char *diffCertName = - "UserNoticeQualifierTest18EE.crt"; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_List* goodPolicyInfo = NULL; - PKIX_List* equalPolicyInfo = NULL; - PKIX_List* diffPolicyInfo = NULL; - PKIX_PL_CertPolicyInfo *goodPolicy = NULL; - PKIX_PL_CertPolicyInfo *equalPolicy = NULL; - PKIX_PL_CertPolicyInfo *diffPolicy = NULL; - PKIX_List* goodQuals = NULL; - PKIX_List* equalQuals = NULL; - PKIX_List* diffQuals = NULL; - PKIX_PL_CertPolicyQualifier *goodPolQualifier = NULL; - PKIX_PL_CertPolicyQualifier *equalPolQualifier = NULL; - PKIX_PL_CertPolicyQualifier *diffPolQualifier = NULL; - PKIX_PL_ByteArray *goodArray = NULL; - PKIX_PL_ByteArray *equalArray = NULL; - PKIX_PL_ByteArray *diffArray = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_PolicyQualifier_GetQualifier"); - - /* - * Get the cert, then the list of policyInfos. - * Take the first policyInfo from the list. - * Get its list of PolicyQualifiers. - * Take the first policyQualifier from the list. - * Finally, get the policyQualifier's ByteArray. - */ - - /* Get the PolicyInfo objects */ - goodCert = createCert(dataDir, goodCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (goodCert, &goodPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (goodPolicyInfo, 0, (PKIX_PL_Object **)&goodPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (goodPolicy, &goodQuals, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (goodQuals, - 0, - (PKIX_PL_Object **)&goodPolQualifier, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PolicyQualifier_GetQualifier - (goodPolQualifier, &goodArray, plContext)); - - equalCert = createCert(dataDir, equalCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (equalCert, &equalPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (equalPolicyInfo, - 0, - (PKIX_PL_Object **)&equalPolicy, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (equalPolicy, &equalQuals, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (equalQuals, - 0, - (PKIX_PL_Object **)&equalPolQualifier, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PolicyQualifier_GetQualifier - (equalPolQualifier, &equalArray, plContext)); - - diffCert = createCert(dataDir, diffCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (diffCert, &diffPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (diffPolicyInfo, 0, (PKIX_PL_Object **)&diffPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (diffPolicy, &diffQuals, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (diffQuals, - 0, - (PKIX_PL_Object **)&diffPolQualifier, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PolicyQualifier_GetQualifier - (diffPolQualifier, &diffArray, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodArray, equalArray, diffArray, NULL, ByteArray, PKIX_FALSE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodArray); - PKIX_TEST_DECREF_AC(equalArray); - PKIX_TEST_DECREF_AC(diffArray); - PKIX_TEST_DECREF_AC(goodPolQualifier); - PKIX_TEST_DECREF_AC(equalPolQualifier); - PKIX_TEST_DECREF_AC(diffPolQualifier); - PKIX_TEST_DECREF_AC(goodQuals); - PKIX_TEST_DECREF_AC(equalQuals); - PKIX_TEST_DECREF_AC(diffQuals); - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(diffPolicy); - PKIX_TEST_DECREF_AC(goodPolicyInfo); - PKIX_TEST_DECREF_AC(equalPolicyInfo); - PKIX_TEST_DECREF_AC(diffPolicyInfo); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(diffCert); - PKIX_TEST_RETURN(); -} - -static void -testPolicyQualifier_GetPolicyQualifierId(char *dataDir) -{ - char *goodCertName = - "UserNoticeQualifierTest15EE.crt"; - char *equalCertName = - "UserNoticeQualifierTest16EE.crt"; - char *diffCertName = - "CPSPointerQualifierTest20EE.crt"; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_Cert *equalCert = NULL; - PKIX_PL_Cert *diffCert = NULL; - PKIX_List* goodPolicyInfo = NULL; - PKIX_List* equalPolicyInfo = NULL; - PKIX_List* diffPolicyInfo = NULL; - PKIX_PL_CertPolicyInfo *goodPolicy = NULL; - PKIX_PL_CertPolicyInfo *equalPolicy = NULL; - PKIX_PL_CertPolicyInfo *diffPolicy = NULL; - PKIX_List* goodQuals = NULL; - PKIX_List* equalQuals = NULL; - PKIX_List* diffQuals = NULL; - PKIX_PL_CertPolicyQualifier *goodPolQualifier = NULL; - PKIX_PL_CertPolicyQualifier *equalPolQualifier = NULL; - PKIX_PL_CertPolicyQualifier *diffPolQualifier = NULL; - PKIX_PL_OID *goodID = NULL; - PKIX_PL_OID *equalID = NULL; - PKIX_PL_OID *diffID = NULL; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_PolicyQualifier_GetPolicyQualifierId"); - - /* - * Get the cert, then the list of policyInfos. - * Take the first policyInfo from the list. - * Get its list of PolicyQualifiers. - * Take the first policyQualifier from the list. - * Finally, get the policyQualifier's ID. - */ - - /* Get the PolicyQualifier objects */ - goodCert = createCert(dataDir, goodCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (goodCert, &goodPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (goodPolicyInfo, 0, (PKIX_PL_Object **)&goodPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (goodPolicy, &goodQuals, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (goodQuals, - 0, - (PKIX_PL_Object **)&goodPolQualifier, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PolicyQualifier_GetPolicyQualifierId - (goodPolQualifier, &goodID, plContext)); - - equalCert = createCert(dataDir, equalCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (equalCert, &equalPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (equalPolicyInfo, - 0, - (PKIX_PL_Object **)&equalPolicy, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (equalPolicy, &equalQuals, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (equalQuals, - 0, - (PKIX_PL_Object **)&equalPolQualifier, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PolicyQualifier_GetPolicyQualifierId - (equalPolQualifier, &equalID, plContext)); - - diffCert = createCert(dataDir, diffCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyInformation - (diffCert, &diffPolicyInfo, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (diffPolicyInfo, 0, (PKIX_PL_Object **)&diffPolicy, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyInfo_GetPolQualifiers - (diffPolicy, &diffQuals, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (diffQuals, - 0, - (PKIX_PL_Object **)&diffPolQualifier, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_PolicyQualifier_GetPolicyQualifierId - (diffPolQualifier, &diffID, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodID, equalID, diffID, NULL, OID, PKIX_FALSE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodID); - PKIX_TEST_DECREF_AC(equalID); - PKIX_TEST_DECREF_AC(diffID); - PKIX_TEST_DECREF_AC(goodPolQualifier); - PKIX_TEST_DECREF_AC(equalPolQualifier); - PKIX_TEST_DECREF_AC(diffPolQualifier); - PKIX_TEST_DECREF_AC(goodQuals); - PKIX_TEST_DECREF_AC(equalQuals); - PKIX_TEST_DECREF_AC(diffQuals); - PKIX_TEST_DECREF_AC(goodPolicy); - PKIX_TEST_DECREF_AC(equalPolicy); - PKIX_TEST_DECREF_AC(diffPolicy); - PKIX_TEST_DECREF_AC(goodPolicyInfo); - PKIX_TEST_DECREF_AC(equalPolicyInfo); - PKIX_TEST_DECREF_AC(diffPolicyInfo); - PKIX_TEST_DECREF_AC(goodCert); - PKIX_TEST_DECREF_AC(equalCert); - PKIX_TEST_DECREF_AC(diffCert); - PKIX_TEST_RETURN(); -} - -static void -testAreCertPoliciesCritical(char *dataCentralDir, char *dataDir) -{ - - char *trueCertName = "CertificatePoliciesCritical.crt"; - char *falseCertName = "UserNoticeQualifierTest15EE.crt"; - PKIX_PL_Cert *trueCert = NULL; - PKIX_PL_Cert *falseCert = NULL; - PKIX_Boolean trueVal = PKIX_FALSE; - PKIX_Boolean falseVal = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_Cert_AreCertPoliciesCritical - <true>"); - - trueCert = createCert(dataCentralDir, trueCertName, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_AreCertPoliciesCritical - (trueCert, &trueVal, plContext)); - - if (trueVal != PKIX_TRUE) { - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", trueVal); - (void) printf("Expected value:\t1\n"); - goto cleanup; - } - - subTest("PKIX_PL_Cert_AreCertPoliciesCritical - <false>"); - - falseCert = createCert(dataDir, falseCertName, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_AreCertPoliciesCritical - (falseCert, &falseVal, plContext)); - - if (falseVal != PKIX_FALSE) { - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", falseVal); - (void) printf("Expected value:\t0\n"); - goto cleanup; - } - -cleanup: - - PKIX_TEST_DECREF_AC(trueCert); - PKIX_TEST_DECREF_AC(falseCert); - - PKIX_TEST_RETURN(); -} - -static void -testCertPolicyConstraints(char *dataDir) -{ - char *requireExplicitPolicy2CertName = - "requireExplicitPolicy2CACert.crt"; - char *inhibitPolicyMapping5CertName = - "inhibitPolicyMapping5CACert.crt"; - char *inhibitAnyPolicy5CertName = - "inhibitAnyPolicy5CACert.crt"; - char *inhibitAnyPolicy0CertName = - "inhibitAnyPolicy0CACert.crt"; - PKIX_PL_Cert *requireExplicitPolicy2Cert = NULL; - PKIX_PL_Cert *inhibitPolicyMapping5Cert = NULL; - PKIX_PL_Cert *inhibitAnyPolicy5Cert = NULL; - PKIX_PL_Cert *inhibitAnyPolicy0Cert = NULL; - PKIX_Int32 skipCerts = 0; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetRequireExplicitPolicy"); - requireExplicitPolicy2Cert = createCert - (dataDir, requireExplicitPolicy2CertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetRequireExplicitPolicy - (requireExplicitPolicy2Cert, &skipCerts, NULL)); - PR_ASSERT(skipCerts == 2); - - subTest("PKIX_PL_Cert_GetPolicyMappingInhibited"); - inhibitPolicyMapping5Cert = createCert - (dataDir, inhibitPolicyMapping5CertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyMappingInhibited - (inhibitPolicyMapping5Cert, &skipCerts, NULL)); - PR_ASSERT(skipCerts == 5); - - subTest("PKIX_PL_Cert_GetInhibitAnyPolicy"); - inhibitAnyPolicy5Cert = createCert - (dataDir, inhibitAnyPolicy5CertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetInhibitAnyPolicy - (inhibitAnyPolicy5Cert, &skipCerts, NULL)); - PR_ASSERT(skipCerts == 5); - - inhibitAnyPolicy0Cert = createCert - (dataDir, inhibitAnyPolicy0CertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetInhibitAnyPolicy - (inhibitAnyPolicy0Cert, &skipCerts, NULL)); - PR_ASSERT(skipCerts == 0); - -cleanup: - - PKIX_TEST_DECREF_AC(requireExplicitPolicy2Cert); - PKIX_TEST_DECREF_AC(inhibitPolicyMapping5Cert); - PKIX_TEST_DECREF_AC(inhibitAnyPolicy5Cert); - PKIX_TEST_DECREF_AC(inhibitAnyPolicy0Cert); - - PKIX_TEST_RETURN(); -} - -static void -testCertPolicyMaps(char *dataDir) -{ - char *policyMappingsCertName = - "P1Mapping1to234CACert.crt"; - char *expectedAscii = - "2.16.840.1.101.3.2.1.48.1=>2.16.840.1.101.3.2.1.48.2"; - - PKIX_PL_Cert *policyMappingsCert = NULL; - PKIX_List *mappings = NULL; - PKIX_PL_CertPolicyMap *goodMap = NULL; - PKIX_PL_CertPolicyMap *equalMap = NULL; - PKIX_PL_CertPolicyMap *diffMap = NULL; - PKIX_PL_OID *goodOID = NULL; - PKIX_PL_OID *equalOID = NULL; - PKIX_PL_OID *diffOID = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_GetPolicyMappings"); - - policyMappingsCert = createCert - (dataDir, policyMappingsCertName, plContext); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetPolicyMappings - (policyMappingsCert, &mappings, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (mappings, 0, (PKIX_PL_Object **)&goodMap, NULL)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (mappings, 0, (PKIX_PL_Object **)&equalMap, NULL)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (mappings, 2, (PKIX_PL_Object **)&diffMap, NULL)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodMap, - equalMap, - diffMap, - expectedAscii, - CertPolicyMap, - PKIX_TRUE); - - subTest("PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy - (goodMap, &goodOID, NULL)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyMap_GetIssuerDomainPolicy - (diffMap, &equalOID, NULL)); - subTest("PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CertPolicyMap_GetSubjectDomainPolicy - (diffMap, &diffOID, NULL)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodOID, - equalOID, - diffOID, - "2.16.840.1.101.3.2.1.48.1", - OID, - PKIX_FALSE); - - subTest("pkix_pl_CertPolicyMap_Destroy"); - PKIX_TEST_DECREF_BC(goodMap); - PKIX_TEST_DECREF_BC(equalMap); - PKIX_TEST_DECREF_BC(diffMap); - -cleanup: - PKIX_TEST_DECREF_AC(policyMappingsCert); - PKIX_TEST_DECREF_AC(mappings); - PKIX_TEST_DECREF_AC(goodOID); - PKIX_TEST_DECREF_AC(equalOID); - PKIX_TEST_DECREF_AC(diffOID); - - PKIX_TEST_RETURN(); -} - - -static void -testNameConstraints(char *dataDir) -{ - char *firstPname = "nameConstraintsDN3subCA2Cert.crt"; - char *secondPname = "nameConstraintsDN4CACert.crt"; - char *thirdPname = "nameConstraintsDN5CACert.crt"; - char *lastPname = "InvalidDNnameConstraintsTest3EE.crt"; - PKIX_PL_Cert *firstCert = NULL; - PKIX_PL_Cert *secondCert = NULL; - PKIX_PL_Cert *thirdCert = NULL; - PKIX_PL_Cert *lastCert = NULL; - PKIX_PL_CertNameConstraints *firstNC = NULL; - PKIX_PL_CertNameConstraints *secondNC = NULL; - PKIX_PL_CertNameConstraints *thirdNC = NULL; - PKIX_PL_CertNameConstraints *firstMergedNC = NULL; - PKIX_PL_CertNameConstraints *secondMergedNC = NULL; - char *firstExpectedAscii = - "[\n" - "\t\tPermitted Name: (O=Test Certificates,C=US)\n" - "\t\tExcluded Name: (OU=excludedSubtree1,O=Test Certificates," - "C=US, OU=excludedSubtree2,O=Test Certificates,C=US)\n" - "\t]\n"; - char *secondExpectedAscii = - "[\n" - "\t\tPermitted Name: (O=Test Certificates,C=US, " - "OU=permittedSubtree1,O=Test Certificates,C=US)\n" - "\t\tExcluded Name: (OU=excludedSubtree1," - "O=Test Certificates," - "C=US, OU=excludedSubtree2,O=Test Certificates,C=US, " - "OU=excludedSubtree1,OU=permittedSubtree1," - "O=Test Certificates,C=US)\n" - "\t]\n"; - - PKIX_TEST_STD_VARS(); - subTest("PKIX_PL_CertNameConstraints"); - - firstCert = createCert(dataDir, firstPname, plContext); - secondCert = createCert(dataDir, secondPname, plContext); - thirdCert = createCert(dataDir, thirdPname, plContext); - lastCert = createCert(dataDir, lastPname, plContext); - - subTest("PKIX_PL_Cert_GetNameConstraints <total=3>"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (firstCert, &firstNC, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (secondCert, &secondNC, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (thirdCert, &thirdNC, NULL)); - - subTest("PKIX_PL_Cert_MergeNameConstraints <1st and 2nd>"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_MergeNameConstraints - (firstNC, secondNC, &firstMergedNC, NULL)); - - subTest("PKIX_PL_Cert_MergeNameConstraints <1st+2nd and 3rd>"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_MergeNameConstraints - (firstMergedNC, thirdNC, &secondMergedNC, NULL)); - - testToStringHelper - ((PKIX_PL_Object *)firstMergedNC, - firstExpectedAscii, - plContext); - - testToStringHelper - ((PKIX_PL_Object *)secondMergedNC, - secondExpectedAscii, - plContext); - - subTest("PKIX_PL_Cert_CheckNameConstraints <permitted>"); - - /* Subject: CN=nameConstraints DN3 subCA2,O=Test Certificates,C=US */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_CheckNameConstraints - (firstCert, firstMergedNC, NULL)); - - subTest("PKIX_PL_Cert_CheckNameConstraints <OU in excluded>"); - - /* - * Subject: CN=Invalid DN nameConstraints EE Certificate Test3, - * OU=permittedSubtree1,O=Test Certificates,C=US - */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_Cert_CheckNameConstraints - (lastCert, secondMergedNC, NULL)); - - subTest("PKIX_PL_Cert_CheckNameConstraints <excluded>"); - - /* - * Subject: CN=Invalid DN nameConstraints EE Certificate Test3, - * OU=permittedSubtree1,O=Test Certificates,C=US - * SubjectAltNames: CN=Invalid DN nameConstraints EE Certificate - * Test3,OU=excludedSubtree1,O=Test Certificates,C=US - */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_Cert_CheckNameConstraints - (lastCert, firstMergedNC, NULL)); - - subTest("PKIX_PL_Cert_CheckNameConstraints <excluded>"); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_Cert_CheckNameConstraints - (firstCert, secondMergedNC, NULL)); - -cleanup: - - PKIX_TEST_DECREF_AC(firstCert); - PKIX_TEST_DECREF_AC(secondCert); - PKIX_TEST_DECREF_AC(thirdCert); - PKIX_TEST_DECREF_AC(lastCert); - PKIX_TEST_DECREF_AC(firstNC); - PKIX_TEST_DECREF_AC(secondNC); - PKIX_TEST_DECREF_AC(thirdNC); - PKIX_TEST_DECREF_AC(firstMergedNC); - PKIX_TEST_DECREF_AC(secondMergedNC); - - PKIX_TEST_RETURN(); -} - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - - PKIX_TEST_DECREF_BC(altNameNoneCert); - PKIX_TEST_DECREF_BC(altNameOtherCert); - PKIX_TEST_DECREF_BC(altNameOtherCert_diff); - PKIX_TEST_DECREF_BC(altNameRfc822Cert); - PKIX_TEST_DECREF_BC(altNameRfc822Cert_diff); - PKIX_TEST_DECREF_BC(altNameDnsCert); - PKIX_TEST_DECREF_BC(altNameDnsCert_diff); - PKIX_TEST_DECREF_BC(altNameX400Cert); - PKIX_TEST_DECREF_BC(altNameX400Cert_diff); - PKIX_TEST_DECREF_BC(altNameDnCert); - PKIX_TEST_DECREF_BC(altNameDnCert_diff); - PKIX_TEST_DECREF_BC(altNameEdiCert); - PKIX_TEST_DECREF_BC(altNameEdiCert_diff); - PKIX_TEST_DECREF_BC(altNameUriCert); - PKIX_TEST_DECREF_BC(altNameUriCert_diff); - PKIX_TEST_DECREF_BC(altNameIpCert); - PKIX_TEST_DECREF_BC(altNameIpCert_diff); - PKIX_TEST_DECREF_BC(altNameOidCert); - PKIX_TEST_DECREF_BC(altNameOidCert_diff); - PKIX_TEST_DECREF_BC(altNameMultipleCert); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_cert <test-purpose> <data-central-dir> <data-dir>\n\n"); -} - -int test_cert(int argc, char *argv[]) { - - PKIX_PL_Cert *goodObject = NULL; - PKIX_PL_Cert *equalObject = NULL; - PKIX_PL_Cert *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *dataCentralDir = NULL; - char *dataDir = NULL; - char *goodInput = "yassir2bcn"; - char *diffInput = "nss2alice"; - - char *expectedAscii = - "[\n" - "\tVersion: v3\n" - "\tSerialNumber: 37bc66ec\n" - "\tIssuer: CN=yassir,OU=bcn,OU=east,O=sun,C=us\n" - "\tSubject: OU=bcn,OU=east,O=sun,C=us\n" - "\tValidity: [From: Thu Aug 19, 1999\n" - /* "\tValidity: [From: Thu Aug 19 16:19:56 1999\n" */ - "\t To: Fri Aug 18, 2000]\n" - /* "\t To: Fri Aug 18 16:19:56 2000]\n" */ - "\tSubjectAltNames: (null)\n" - "\tAuthorityKeyId: (null)\n" - "\tSubjectKeyId: (null)\n" - "\tSubjPubKeyAlgId: ANSI X9.57 DSA Signature\n" - "\tCritExtOIDs: (2.5.29.15, 2.5.29.19)\n" - "\tExtKeyUsages: (null)\n" - "\tBasicConstraint: CA(0)\n" - "\tCertPolicyInfo: (null)\n" - "\tPolicyMappings: (null)\n" - "\tExplicitPolicy: -1\n" - "\tInhibitMapping: -1\n" - "\tInhibitAnyPolicy:-1\n" - "\tNameConstraints: (null)\n" - "\tAuthorityInfoAccess: (null)\n" - "\tSubjectInfoAccess: (null)\n" - "\tCacheFlag: 0\n" - "]\n"; - - PKIX_TEST_STD_VARS(); - - startTests("Cert"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 3+j) { - printUsage(); - return (0); - } - - dataCentralDir = argv[2+j]; - dataDir = argv[3+j]; - - createCerts - (dataCentralDir, - goodInput, - diffInput, - &goodObject, - &equalObject, - &diffObject); - - testToStringHelper - ((PKIX_PL_Object*)goodObject, expectedAscii, plContext); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - Cert, - PKIX_TRUE); - - testVerifyKeyUsage(dataCentralDir, dataDir, goodObject); - - - testGetExtendedKeyUsage(dataCentralDir); - testGetKeyIdentifiers(dataCentralDir, goodObject); - - testGetVersion(goodObject); - testGetSerialNumber(goodObject, equalObject, diffObject); - - testGetSubject(goodObject, equalObject, diffObject); - testGetIssuer(goodObject, equalObject, diffObject); - - testGetSubjectAltNames(dataCentralDir); - testGetCriticalExtensionOIDs(dataCentralDir, goodObject); - - testGetSubjectPublicKey(goodObject, equalObject, diffObject); - testGetSubjectPublicKeyAlgId(goodObject); - testMakeInheritedDSAPublicKey(dataCentralDir); - - testCheckValidity(goodObject, diffObject); - - testBasicConstraints_GetCAFlag(dataCentralDir); - testBasicConstraints_GetPathLenConstraint(dataCentralDir); - testGetBasicConstraints(dataCentralDir); - - /* Basic Policy Processing */ - testGetPolicyInformation(dataDir); - testCertPolicy_GetPolicyId(dataDir); - testCertPolicy_GetPolQualifiers(dataDir); - testPolicyQualifier_GetPolicyQualifierId(dataDir); - testPolicyQualifier_GetQualifier(dataDir); - testAreCertPoliciesCritical(dataCentralDir, dataDir); - - /* Advanced Policy Processing */ - testCertPolicyConstraints(dataDir); - testCertPolicyMaps(dataDir); - - testNameConstraints(dataDir); - - testVerifySignature(dataCentralDir); - - testDestroy(goodObject, equalObject, diffObject); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Cert"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_crl.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_crl.c deleted file mode 100644 index 87fb31bc1..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_crl.c +++ /dev/null @@ -1,341 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_crl.c - * - * Test CRL Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void createCRLs( - char *dataDir, - char *goodInput, - char *diffInput, - PKIX_PL_CRL **goodObject, - PKIX_PL_CRL **equalObject, - PKIX_PL_CRL **diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CRL_Create <goodObject>"); - *goodObject = createCRL(dataDir, goodInput, plContext); - - subTest("PKIX_PL_CRL_Create <equalObject>"); - *equalObject = createCRL(dataDir, goodInput, plContext); - - subTest("PKIX_PL_CRL_Create <diffObject>"); - *diffObject = createCRL(dataDir, diffInput, plContext); - - PKIX_TEST_RETURN(); -} - -static void testGetCRLEntryForSerialNumber( - PKIX_PL_CRL *goodObject) -{ - PKIX_PL_BigInt *bigInt; - PKIX_PL_String *bigIntString = NULL; - PKIX_PL_CRLEntry *crlEntry = NULL; - PKIX_PL_String *crlEntryString = NULL; - char *snAscii = "3039"; - char *expectedAscii = - "\n\t[\n" - "\tSerialNumber: 3039\n" - "\tReasonCode: 257\n" - "\tRevocationDate: Fri Jan 07, 2005\n" - /* "\tRevocationDate: Fri Jan 07 15:09:10 2005\n" */ - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n\t"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CRL_GetCRLEntryForSerialNumber"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - snAscii, - PL_strlen(snAscii), - &bigIntString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create( - bigIntString, - &bigInt, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetCRLEntryForSerialNumber( - goodObject, bigInt, &crlEntry, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString( - (PKIX_PL_Object *)crlEntry, - &crlEntryString, - plContext)); - - testToStringHelper((PKIX_PL_Object *)crlEntryString, - expectedAscii, plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(bigIntString); - PKIX_TEST_DECREF_AC(bigInt); - PKIX_TEST_DECREF_AC(crlEntryString); - PKIX_TEST_DECREF_AC(crlEntry); - PKIX_TEST_RETURN(); -} - -static void testGetIssuer( - PKIX_PL_CRL *goodObject, - PKIX_PL_CRL *equalObject, - PKIX_PL_CRL *diffObject) -{ - PKIX_PL_X500Name *goodIssuer = NULL; - PKIX_PL_X500Name *equalIssuer = NULL; - PKIX_PL_X500Name *diffIssuer = NULL; - char *expectedAscii = "CN=hanfeiyu,O=sun,C=us"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CRL_GetIssuer"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_CRL_GetIssuer(goodObject, &goodIssuer, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_CRL_GetIssuer(equalObject, &equalIssuer, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_CRL_GetIssuer(diffObject, &diffIssuer, plContext)); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodIssuer, - equalIssuer, - diffIssuer, - expectedAscii, - X500Name, - PKIX_TRUE); - -cleanup: - - PKIX_TEST_DECREF_AC(goodIssuer); - PKIX_TEST_DECREF_AC(equalIssuer); - PKIX_TEST_DECREF_AC(diffIssuer); - - PKIX_TEST_RETURN(); -} - -static void -testCritExtensionsAbsent(PKIX_PL_CRL *crl) -{ - PKIX_List *oidList = NULL; - PKIX_UInt32 numOids = 0; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetCriticalExtensionOIDs - (crl, &oidList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (oidList, &numOids, plContext)); - if (numOids != 0){ - pkixTestErrorMsg = "unexpected mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(oidList); - - PKIX_TEST_RETURN(); -} - -static void -testGetCriticalExtensionOIDs(PKIX_PL_CRL *goodObject) -{ - subTest("PKIX_PL_CRL_GetCriticalExtensionOIDs " - "<0 element>"); - testCritExtensionsAbsent(goodObject); - -} - -static void testVerifySignature(char *dataCentralDir, PKIX_PL_CRL *crl){ - PKIX_PL_Cert *firstCert = NULL; - PKIX_PL_Cert *secondCert = NULL; - PKIX_PL_PublicKey *firstPubKey = NULL; - PKIX_PL_PublicKey *secondPubKey = NULL; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Cert_Create <hanfeiyu2hanfeiyu>"); - firstCert = createCert(dataCentralDir, "hanfeiyu2hanfeiyu", plContext); - - subTest("PKIX_PL_Cert_Create <hy2hy-bc0>"); - secondCert = createCert(dataCentralDir, "hy2hy-bc0", plContext); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey <hanfeiyu2hanfeiyu>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectPublicKey - (firstCert, &firstPubKey, plContext)); - - subTest("PKIX_PL_Cert_GetSubjectPublicKey <hanfei2hanfei>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubjectPublicKey - (secondCert, &secondPubKey, plContext)); - - subTest("PKIX_PL_CRL_VerifySignature <positive>"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_CRL_VerifySignature(crl, firstPubKey, plContext)); - - subTest("PKIX_PL_CRL_VerifySignature <negative>"); - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_CRL_VerifySignature(crl, secondPubKey, plContext)); - - -cleanup: - - PKIX_TEST_DECREF_AC(firstCert); - PKIX_TEST_DECREF_AC(secondCert); - PKIX_TEST_DECREF_AC(firstPubKey); - PKIX_TEST_DECREF_AC(secondPubKey); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_crl <test-purpose> <data-central-dir>\n\n"); -} - -/* Functional tests for CRL public functions */ - -int test_crl(int argc, char *argv[]) { - PKIX_PL_CRL *goodObject = NULL; - PKIX_PL_CRL *equalObject = NULL; - PKIX_PL_CRL *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *dataCentralDir = NULL; - char *goodInput = "crlgood.crl"; - char *diffInput = "crldiff.crl"; - char *expectedAscii = - "[\n" - "\tVersion: v2\n" - "\tIssuer: CN=hanfeiyu,O=sun,C=us\n" - "\tUpdate: [Last: Fri Jan 07, 2005\n" - /* "\tUpdate: [Last: Fri Jan 07 15:09:10 2005\n" */ - "\t Next: Sat Jan 07, 2006]\n" - /* "\t Next: Sat Jan 07 15:09:10 2006]\n" */ - "\tSignatureAlgId: 1.2.840.10040.4.3\n" - "\tCRL Number : (null)\n" - "\n\tEntry List: (\n" - "\t[\n" - "\tSerialNumber: 010932\n" - "\tReasonCode: 260\n" - "\tRevocationDate: Fri Jan 07, 2005\n" - /* "\tRevocationDate: Fri Jan 07 15:09:10 2005\n" */ - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n\t" - ", " - "\n\t[\n" - "\tSerialNumber: 3039\n" - "\tReasonCode: 257\n" - "\tRevocationDate: Fri Jan 07, 2005\n" - /* "\tRevocationDate: Fri Jan 07 15:09:10 2005\n" */ - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n\t" - ")" - "\n\n" - "\tCritExtOIDs: (EMPTY)\n" - "]\n"; - /* Note XXX serialnumber and reasoncode need debug */ - - PKIX_TEST_STD_VARS(); - - startTests("CRL"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 3+j) { - printUsage(); - return (0); - } - - dataCentralDir = argv[2+j]; - - createCRLs - (dataCentralDir, - goodInput, - diffInput, - &goodObject, - &equalObject, - &diffObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - CRL, - PKIX_TRUE); - - testGetIssuer(goodObject, equalObject, diffObject); - - testGetCriticalExtensionOIDs(goodObject); - - testGetCRLEntryForSerialNumber(goodObject); - - testVerifySignature(dataCentralDir, goodObject); - -cleanup: - - PKIX_TEST_DECREF_AC(goodObject); - PKIX_TEST_DECREF_AC(equalObject); - PKIX_TEST_DECREF_AC(diffObject); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CRL"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c deleted file mode 100644 index fb1e07002..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_crlentry.c +++ /dev/null @@ -1,244 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_crlentry.c - * - * Test CRLENTRY Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void createCRLEntries( - char *dataDir, - char *crlInput, - PKIX_PL_CRL **pCrl, - PKIX_PL_CRLEntry **goodObject, - PKIX_PL_CRLEntry **equalObject, - PKIX_PL_CRLEntry **diffObject) -{ - PKIX_PL_CRL *crl = NULL; - PKIX_PL_BigInt *firstSNBigInt = NULL; - PKIX_PL_BigInt *secondSNBigInt = NULL; - PKIX_PL_String *firstSNString = NULL; - PKIX_PL_String *secondSNString = NULL; - char *firstSNAscii = "010932"; - char *secondSNAscii = "3039"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CRL_Create <crl>"); - crl = createCRL(dataDir, crlInput, plContext); - - subTest("PKIX_PL_CRL_GetCRLEntryForSerialNumber"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - firstSNAscii, - PL_strlen(firstSNAscii), - &firstSNString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create( - firstSNString, - &firstSNBigInt, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetCRLEntryForSerialNumber( - crl, firstSNBigInt, goodObject, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetCRLEntryForSerialNumber( - crl, firstSNBigInt, equalObject, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - secondSNAscii, - PL_strlen(secondSNAscii), - &secondSNString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create( - secondSNString, - &secondSNBigInt, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRL_GetCRLEntryForSerialNumber( - crl, secondSNBigInt, diffObject, plContext)); - - - - *pCrl = crl; - -cleanup: - PKIX_TEST_DECREF_AC(firstSNBigInt); - PKIX_TEST_DECREF_AC(secondSNBigInt); - PKIX_TEST_DECREF_AC(firstSNString); - PKIX_TEST_DECREF_AC(secondSNString); - PKIX_TEST_RETURN(); -} - -static void testGetReasonCode( - PKIX_PL_CRLEntry *goodObject) -{ - PKIX_Int32 reasonCode = 0; - PKIX_Int32 expectedReasonCode = 260; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CRLEntry_GetCRLEntryReasonCode"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRLEntry_GetCRLEntryReasonCode( - goodObject, &reasonCode, plContext)); - - if (reasonCode != expectedReasonCode) { - testError("unexpected value of CRL Entry Reason Code"); - (void) printf("Actual value:\t%d\n", reasonCode); - (void) printf("Expected value:\t%d\n", expectedReasonCode); - goto cleanup; - } - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testCritExtensionsAbsent(PKIX_PL_CRLEntry *crlEntry) -{ - PKIX_List *oidList = NULL; - PKIX_UInt32 numOids = 0; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CRLEntry_GetCriticalExtensionOIDs - (crlEntry, &oidList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (oidList, &numOids, plContext)); - if (numOids != 0){ - pkixTestErrorMsg = "unexpected mismatch"; - } - -cleanup: - - PKIX_TEST_DECREF_AC(oidList); - - PKIX_TEST_RETURN(); -} - -static void -testGetCriticalExtensionOIDs(PKIX_PL_CRLEntry *goodObject) -{ - subTest("PKIX_PL_CRL_GetCriticalExtensionOIDs " - "<CritExtensionsAbsent>"); - testCritExtensionsAbsent(goodObject); - -} - -static -void printUsage(void) { - (void) printf("\nUSAGE:\ttest_crlentry <data-dir>\n\n"); -} - -/* Functional tests for CRLENTRY public functions */ - -int test_crlentry(int argc, char *argv[]) { - PKIX_PL_CRL *crl = NULL; - PKIX_PL_CRLEntry *goodObject = NULL; - PKIX_PL_CRLEntry *equalObject = NULL; - PKIX_PL_CRLEntry *diffObject = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *dataDir = NULL; - char *goodInput = "crlgood.crl"; - char *expectedAscii = - "\n\t[\n" - "\tSerialNumber: 010932\n" - "\tReasonCode: 260\n" - "\tRevocationDate: Fri Jan 07 15:09:10 2005\n" - "\tCritExtOIDs: (EMPTY)\n" - "\t]\n\t"; - - /* Note XXX serialnumber and reasoncode need debug */ - - PKIX_TEST_STD_VARS(); - - startTests("CRLEntry"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 1+j) { - printUsage(); - return (0); - } - - dataDir = argv[1+j]; - - createCRLEntries - (dataDir, goodInput, &crl, &goodObject, &equalObject, &diffObject); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - NULL, /* expectedAscii, */ - CRLENTRY, - PKIX_TRUE); - - testGetReasonCode(goodObject); - - testGetCriticalExtensionOIDs(goodObject); - -cleanup: - - PKIX_TEST_DECREF_AC(crl); - PKIX_TEST_DECREF_AC(goodObject); - PKIX_TEST_DECREF_AC(equalObject); - PKIX_TEST_DECREF_AC(diffObject); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("CRLEntry"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_date.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_date.c deleted file mode 100644 index 02ce70e5c..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_date.c +++ /dev/null @@ -1,141 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_date.c - * - * Test Date Type - * - */ - - - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createDates(char *goodInput, char *diffInput, - PKIX_PL_Date **goodDate, - PKIX_PL_Date **equalDate, - PKIX_PL_Date **diffDate){ - - subTest("PKIX_PL_Date_Create <goodDate>"); - *goodDate = createDate(goodInput, plContext); - - subTest("PKIX_PL_Date_Create <equalDate>"); - *equalDate = createDate(goodInput, plContext); - - subTest("PKIX_PL_Date_Create <diffDate>"); - *diffDate = createDate(diffInput, plContext); - -} - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_Date_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static -void testDate(char *goodInput, char *diffInput){ - - PKIX_PL_Date *goodDate = NULL; - PKIX_PL_Date *equalDate = NULL; - PKIX_PL_Date *diffDate = NULL; - - /* - * The ASCII rep of the date will vary by platform and locale - * This particular string was generated on a SPARC running Solaris 9 - * in an English locale - */ - /* char *expectedAscii = "Mon Mar 29 08:48:47 2004"; */ - char *expectedAscii = "Mon Mar 29, 2004"; - - PKIX_TEST_STD_VARS(); - - createDates(goodInput, diffInput, - &goodDate, &equalDate, &diffDate); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodDate, equalDate, diffDate, expectedAscii, Date, PKIX_TRUE); - - testDestroy(goodDate, equalDate, diffDate); - - PKIX_TEST_RETURN(); - -} - -int test_date(int argc, char *argv[]) { - - char *goodInput = NULL; - char *diffInput = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Date"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - goodInput = "040329134847Z"; - diffInput = "050329135847Z"; - testDate(goodInput, diffInput); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Date"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c deleted file mode 100644 index 2ee4beed4..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_generalname.c +++ /dev/null @@ -1,155 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_generalname.c - * - * Test GeneralName Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createGeneralNames(PKIX_UInt32 nameType, char *goodInput, char *diffInput, - PKIX_PL_GeneralName **goodName, - PKIX_PL_GeneralName **equalName, - PKIX_PL_GeneralName **diffName){ - - subTest("PKIX_PL_GeneralName_Create <goodName>"); - *goodName = createGeneralName(nameType, goodInput, plContext); - - subTest("PKIX_PL_GeneralName_Create <equalName>"); - *equalName = createGeneralName(nameType, goodInput, plContext); - - subTest("PKIX_PL_GeneralName_Create <diffName>"); - *diffName = createGeneralName(nameType, diffInput, plContext); - -} - -static void -testDestroy(void *goodObject, void *equalObject, void *diffObject) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_GeneralName_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static void testNameType -(PKIX_UInt32 nameType, char *goodInput, char *diffInput, char *expectedAscii){ - - PKIX_PL_GeneralName *goodName = NULL; - PKIX_PL_GeneralName *equalName = NULL; - PKIX_PL_GeneralName *diffName = NULL; - - createGeneralNames(nameType, goodInput, diffInput, - &goodName, &equalName, &diffName); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodName, - equalName, - diffName, - expectedAscii, - GeneralName, - PKIX_TRUE); - - testDestroy(goodName, equalName, diffName); -} - -int test_generalname(int argc, char *argv[]) { - - char *goodInput = NULL; - char *diffInput = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("GeneralName"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - goodInput = "john@sun.com"; - diffInput = "john@labs.com"; - testNameType(PKIX_RFC822_NAME, goodInput, diffInput, goodInput); - - goodInput = "example1.com"; - diffInput = "ex2.net"; - testNameType(PKIX_DNS_NAME, goodInput, diffInput, goodInput); - - goodInput = "cn=yassir, ou=labs, o=sun, c=us"; - diffInput = "cn=alice, ou=labs, o=sun, c=us"; - testNameType(PKIX_DIRECTORY_NAME, - goodInput, - diffInput, - "CN=yassir,OU=labs,O=sun,C=us"); - - goodInput = "http://example1.com"; - diffInput = "http://ex2.net"; - testNameType(PKIX_URI_NAME, goodInput, diffInput, goodInput); - - goodInput = "1.2.840.11"; - diffInput = "1.2.840.115349"; - testNameType(PKIX_OID_NAME, goodInput, diffInput, goodInput); - - /* - * We don't support creating PKIX_EDIPARTY_NAME, - * PKIX_IP_NAME, OTHER_NAME, X400_ADDRESS from strings - */ - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("GeneralName"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c deleted file mode 100644 index 14193ad6b..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_nameconstraints.c +++ /dev/null @@ -1,157 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_nameconstraints.c - * - * Test CERT Name Constraints Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static char *catDirName(char *platform, char *dir, void *plContext) -{ - char *pathName = NULL; - PKIX_UInt32 dirLen; - PKIX_UInt32 platformLen; - - PKIX_TEST_STD_VARS(); - - dirLen = PL_strlen(dir); - platformLen = PL_strlen(platform); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (platformLen + dirLen + 2, (void **)&pathName, plContext)); - - PL_strcpy(pathName, platform); - PL_strcat(pathName, "/"); - PL_strcat(pathName, dir); - -cleanup: - - PKIX_TEST_RETURN(); - - return (pathName); -} - -static void -testNameConstraints(char *dataDir) -{ - char *goodPname = "nameConstraintsDN5CACert.crt"; - PKIX_PL_Cert *goodCert = NULL; - PKIX_PL_CertNameConstraints *goodNC = NULL; - char *expectedAscii = - "[\n" - "\t\tPermitted Name: (OU=permittedSubtree1," - "O=Test Certificates,C=US)\n" - "\t\tExcluded Name: (OU=excludedSubtree1," - "OU=permittedSubtree1,O=Test Certificates,C=US)\n" - "\t]\n"; - - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_CertNameConstraints"); - - goodCert = createCert(dataDir, goodPname, plContext); - - subTest("PKIX_PL_Cert_GetNameConstraints"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (goodCert, &goodNC, plContext)); - - testToStringHelper - ((PKIX_PL_Object *)goodNC, expectedAscii, plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(goodNC); - PKIX_TEST_DECREF_AC(goodCert); - - PKIX_TEST_RETURN(); -} - -static -void printUsage(void) { - (void) printf - ("\nUSAGE:\ttest_nameconstraints <test-purpose>" - " <data-dir> <platform-prefix>\n\n"); -} - -/* Functional tests for CRL public functions */ - -int test_nameconstraints(int argc, char *argv[]) { - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - char *platformDir = NULL; - char *dataDir = NULL; - char *combinedDir = NULL; - - /* Note XXX serialnumber and reasoncode need debug */ - - PKIX_TEST_STD_VARS(); - - startTests("NameConstraints"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 3 + j) { - printUsage(); - return (0); - } - - dataDir = argv[2 + j]; - platformDir = argv[3 + j]; - combinedDir = catDirName(platformDir, dataDir, plContext); - - testNameConstraints(combinedDir); - -cleanup: - - pkixTestErrorResult = PKIX_PL_Free(combinedDir, plContext); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("NameConstraints"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c deleted file mode 100644 index 9f2260f93..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_subjectinfoaccess.c +++ /dev/null @@ -1,166 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_subjectinfoaccess.c - * - * Test Subject InfoAccess Type - * - */ - - - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -int test_subjectinfoaccess(int argc, char *argv[]) { - - PKIX_PL_Cert *cert = NULL; - PKIX_PL_Cert *certDiff = NULL; - PKIX_List *aiaList = NULL; - PKIX_List *siaList = NULL; - PKIX_PL_InfoAccess *sia = NULL; - PKIX_PL_InfoAccess *siaDup = NULL; - PKIX_PL_InfoAccess *siaDiff = NULL; - PKIX_PL_GeneralName *location = NULL; - char *certPathName = NULL; - char *dirName = NULL; - PKIX_UInt32 method = 0; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 size, i; - PKIX_UInt32 j = 0; - char *expectedAscii = "[method:caRepository, " - "location:http://betty.nist.gov/pathdiscoverytestsuite/" - "p7cfiles/IssuedByTrustAnchor1.p7c]"; - - PKIX_TEST_STD_VARS(); - - startTests("SubjectInfoAccess"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - if (argc < 5+j) { - printf("Usage: %s <test-purpose> <cert> <diff-cert>\n", argv[0]); - } - - dirName = argv[2+j]; - certPathName = argv[3+j]; - - subTest("Creating Cert with Subject Info Access"); - cert = createCert(dirName, certPathName, plContext); - - certPathName = argv[4+j]; - - subTest("Creating Cert with Subject Info Access"); - certDiff = createCert(dirName, certPathName, plContext); - - subTest("Getting Subject Info Access"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectInfoAccess - (cert, &siaList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (siaList, &size, plContext)); - - if (size != 1) { - pkixTestErrorMsg = "unexpected number of AIA"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (siaList, 0, (PKIX_PL_Object **) &sia, plContext)); - - subTest("PKIX_PL_InfoAccess_GetMethod"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_InfoAccess_GetMethod - (sia, &method, plContext)); - if (method != PKIX_INFOACCESS_CA_REPOSITORY) { - pkixTestErrorMsg = "unexpected method of AIA"; - goto cleanup; - } - - subTest("PKIX_PL_InfoAccess_GetLocation"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_InfoAccess_GetLocation - (sia, &location, plContext)); - if (!location) { - pkixTestErrorMsg = "Cannot get AIA location"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (siaList, 0, (PKIX_PL_Object **) &siaDup, plContext)); - - subTest("Getting Authority Info Access as difference comparison"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetAuthorityInfoAccess - (certDiff, &aiaList, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetLength - (aiaList, &size, plContext)); - - if (size != 1) { - pkixTestErrorMsg = "unexpected number of AIA"; - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_GetItem - (aiaList, 0, (PKIX_PL_Object **) &siaDiff, plContext)); - - subTest("Checking: Equal, Hash and ToString"); - PKIX_TEST_EQ_HASH_TOSTR_DUP - (sia, siaDup, siaDiff, expectedAscii, InfoAccess, PKIX_FALSE); - - - -cleanup: - - PKIX_TEST_DECREF_AC(location); - PKIX_TEST_DECREF_AC(sia); - PKIX_TEST_DECREF_AC(siaDup); - PKIX_TEST_DECREF_AC(siaDiff); - PKIX_TEST_DECREF_AC(aiaList); - PKIX_TEST_DECREF_AC(siaList); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(certDiff); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Subjectinfoaccess"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c b/security/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c deleted file mode 100644 index 2bf098188..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/pki/test_x500name.c +++ /dev/null @@ -1,210 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_x500name.c - * - * Test X500Name Type - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static PKIX_PL_X500Name * -createX500Name(char *asciiName, PKIX_Boolean expectedToPass){ - - PKIX_PL_X500Name *x500Name = NULL; - PKIX_PL_String *plString = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create - (PKIX_ESCASCII, asciiName, 0, &plString, plContext)); - - if (expectedToPass){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_X500Name_Create - (plString, &x500Name, plContext)); - } else { - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_X500Name_Create - (plString, &x500Name, plContext)); - } - -cleanup: - - PKIX_TEST_DECREF_AC(plString); - - PKIX_TEST_RETURN(); - - return (x500Name); -} - -static void -createX500Names(char *goodInput, char *diffInput, char *diffInputMatch, - PKIX_PL_X500Name **goodObject, - PKIX_PL_X500Name **equalObject, - PKIX_PL_X500Name **diffObject, - PKIX_PL_X500Name **diffObjectMatch) -{ - char *badAscii = "cn=yas#sir,ou=labs,o=sun,c=us"; - PKIX_PL_X500Name *badObject = NULL; - - subTest("PKIX_PL_X500Name_Create <goodObject>"); - *goodObject = createX500Name(goodInput, PKIX_TRUE); - - subTest("PKIX_PL_X500Name_Create <equalObject>"); - *equalObject = createX500Name(goodInput, PKIX_TRUE); - - subTest("PKIX_PL_X500Name_Create <diffObject>"); - *diffObject = createX500Name(diffInput, PKIX_TRUE); - - subTest("PKIX_PL_X500Name_Create <diffObjectMatch>"); - *diffObjectMatch = createX500Name(diffInputMatch, PKIX_TRUE); - - subTest("PKIX_PL_X500Name_Create <negative>"); - badObject = createX500Name(badAscii, PKIX_FALSE); -} - -static void testMatchHelper -(PKIX_PL_X500Name *goodName, PKIX_PL_X500Name *otherName, PKIX_Boolean match) -{ - PKIX_Boolean cmpResult; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_X500Name_Match - (goodName, - otherName, - &cmpResult, - plContext)); - - if ((match && !cmpResult) || (!match && cmpResult)){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", cmpResult); - (void) printf("Expected value:\t%d\n", match); - } - -cleanup: - - PKIX_TEST_RETURN(); - -} - -static void -testMatch(void *goodObject, void *diffObject, void *diffObjectMatch) -{ - subTest("PKIX_PL_X500Name_Match <match>"); - testMatchHelper((PKIX_PL_X500Name *)diffObject, - (PKIX_PL_X500Name *)diffObjectMatch, - PKIX_TRUE); - - subTest("PKIX_PL_X500Name_Match <non-match>"); - testMatchHelper((PKIX_PL_X500Name *)goodObject, - (PKIX_PL_X500Name *)diffObject, - PKIX_FALSE); -} - -static void testDestroy -(void *goodObject, void *equalObject, void *diffObject, void *diffObjectMatch) -{ - PKIX_TEST_STD_VARS(); - - subTest("PKIX_PL_X500Name_Destroy"); - - PKIX_TEST_DECREF_BC(goodObject); - PKIX_TEST_DECREF_BC(equalObject); - PKIX_TEST_DECREF_BC(diffObject); - PKIX_TEST_DECREF_BC(diffObjectMatch); - -cleanup: - - PKIX_TEST_RETURN(); - -} - -int test_x500name(int argc, char *argv[]) { - - PKIX_PL_X500Name *goodObject = NULL; - PKIX_PL_X500Name *equalObject = NULL; - PKIX_PL_X500Name *diffObject = NULL; - PKIX_PL_X500Name *diffObjectMatch = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - /* goodInput is encoded in PKIX_ESCASCII */ - char *goodInput = "cn=Strauß,ou=labs,o=sun,c=us"; - char *diffInput = "cn=steve,ou=labs,o=sun,c=us"; - char *diffInputMatch = "Cn=SteVe,Ou=lABs,o=SUn,c=uS"; - char *expectedAscii = "CN=Strauß,OU=labs,O=sun,C=us"; - - PKIX_TEST_STD_VARS(); - - startTests("X500Name"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - createX500Names - (goodInput, diffInput, diffInputMatch, - &goodObject, &equalObject, &diffObject, &diffObjectMatch); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (goodObject, - equalObject, - diffObject, - expectedAscii, - X500Name, - PKIX_TRUE); - - testMatch(goodObject, diffObject, diffObjectMatch); - - testDestroy(goodObject, equalObject, diffObject, diffObjectMatch); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("X500Name"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/Makefile b/security/nss/cmd/libpkix/pkix_pl/system/Makefile deleted file mode 100755 index 3f1484b02..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/Makefile +++ /dev/null @@ -1,80 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkix_pl/system/manifest.mn b/security/nss/cmd/libpkix/pkix_pl/system/manifest.mn deleted file mode 100755 index 8d9ed0152..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/manifest.mn +++ /dev/null @@ -1,71 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = ../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -# test_rwlock.c is taken out, need to link to libpkix internals -# -# The test is using LIBPKIX PL call directly, which violates our -# code convention. -# -CSRCS = test_bigint.c \ - test_bytearray.c \ - test_hashtable.c \ - test_mem.c \ - test_mutex.c \ - test_mutex2.c \ - test_mutex3.c \ - test_monitorlock.c \ - test_object.c \ - test_oid.c \ - stress_test.c \ - test_string.c \ - test_string2.c \ - $(NULL) - - -LIBRARY_NAME=pkixtoolsys - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/pkix_pl/system/stress_test.c b/security/nss/cmd/libpkix/pkix_pl/system/stress_test.c deleted file mode 100644 index 251abe87c..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/stress_test.c +++ /dev/null @@ -1,188 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * stress_test.c - * - * Creates and deletes many objects - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -int stress_test(int argc, char *argv[]) { - - PKIX_UInt32 i, k, length, hashcode; - PKIX_UInt32 size = 17576; - char temp[4]; - PKIX_Boolean result; - PKIX_PL_String *strings[17576], *tempString; - PKIX_PL_String *utf16strings[17576]; - PKIX_PL_ByteArray *byteArrays[17576]; - void *dest; - PKIX_PL_HashTable *ht = NULL; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Stress Test"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - /* ---------------------------- */ - subTest("Create every three letter String"); - - for (i = 0; i < 26; i++) - for (j = 0; j < 26; j++) - for (k = 0; k < 26; k++) { - temp[0] = (char)('a'+i); - temp[1] = (char)('a'+j); - temp[2] = (char)('a'+k); - temp[3] = 0; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, temp, 3, - &strings[26*(i*26+j)+k], plContext)); - } - - /* ---------------------------- */ - subTest("Create a bytearray from each string's UTF-16 encoding"); - for (i = 0; i < size; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_GetEncoded - (strings[i], - PKIX_UTF16, - &dest, - &length, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_Create - (dest, length, &byteArrays[i], plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - } - - /* ---------------------------- */ - subTest("Create a copy string from each bytearray"); - for (i = 0; i < size; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_UTF16, *(void **)byteArrays[i], 6, - &utf16strings[i], plContext)); - } - - /* ---------------------------- */ - subTest("Compare each original string with the copy"); - for (i = 0; i < size; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object*)strings[i], - (PKIX_PL_Object*)utf16strings[i], - &result, - plContext)); - if (result == 0) - testError("Strings do not match"); - } - - /* ---------------------------- */ - subTest("Put each string into a Hashtable"); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_HashTable_Create(size/2, 0, &ht, plContext)); - - for (i = 0; i < size; i++) { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Hashcode - ((PKIX_PL_Object*)strings[i], - &hashcode, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (void *)&hashcode, - (void*)strings[i], - plContext)); - } - - - /* ---------------------------- */ - subTest("Compare each copy string with the hashtable entries "); - for (i = 0; i < size; i++) { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Hashcode - ((PKIX_PL_Object*)utf16strings[i], - &hashcode, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht, - (void *)&hashcode, - (PKIX_PL_Object**)&tempString, - plContext)); - - if (tempString == NULL) - testError("String not found in hashtable"); - else { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object*)tempString, - (PKIX_PL_Object*)utf16strings[i], - &result, - plContext)); - if (result == 0) - testError("Strings do not match"); - PKIX_TEST_DECREF_BC(tempString); - } - } - -cleanup: - - /* ---------------------------- */ - subTest("Destroy All Objects"); - - PKIX_TEST_DECREF_AC(ht); - - for (i = 0; i < size; i++) { - PKIX_TEST_DECREF_AC(strings[i]); - PKIX_TEST_DECREF_AC(utf16strings[i]); - PKIX_TEST_DECREF_AC(byteArrays[i]); - } - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Stress Test"); - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_bigint.c b/security/nss/cmd/libpkix/pkix_pl/system/test_bigint.c deleted file mode 100644 index 236a1f295..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_bigint.c +++ /dev/null @@ -1,227 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_bigint.c - * - * Tests BigInt Types - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createBigInt( - PKIX_PL_BigInt **bigInts, - char *bigIntAscii, - PKIX_Boolean errorHandling) -{ - PKIX_PL_String *bigIntString = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, - bigIntAscii, - PL_strlen(bigIntAscii), - &bigIntString, - plContext)); - - if (errorHandling){ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_BigInt_Create - (bigIntString, - bigInts, - plContext)); - } else { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_BigInt_Create - (bigIntString, - bigInts, - plContext)); - } - -cleanup: - - PKIX_TEST_DECREF_AC(bigIntString); - - PKIX_TEST_RETURN(); -} - -static void -testToString( - PKIX_PL_BigInt *bigInt, - char *expAscii) -{ - PKIX_PL_String *bigIntString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)bigInt, - &bigIntString, plContext)); - - temp = PKIX_String2ASCII(bigIntString, plContext); - if (temp == plContext){ - testError("PKIX_String2Ascii failed"); - goto cleanup; - } - - if (PL_strcmp(temp, expAscii) != 0) { - (void) printf("\tBigInt ToString: %s %s\n", temp, expAscii); - testError("Output string does not match source"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(bigIntString); - - PKIX_TEST_RETURN(); -} - -static void -testCompare( - PKIX_PL_BigInt *firstBigInt, - PKIX_PL_BigInt *secondBigInt, - PKIX_Int32 *cmpResult) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare - ((PKIX_PL_Object*)firstBigInt, - (PKIX_PL_Object*)secondBigInt, - cmpResult, plContext)); -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy( - PKIX_PL_BigInt *bigInt) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(bigInt); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_bigint(int argc, char *argv[]) { - - PKIX_UInt32 size = 4, badSize = 3, i = 0; - PKIX_PL_BigInt *testBigInt[4] = {NULL}; - PKIX_Int32 cmpResult; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char *bigIntValue[4] = - { - "03", - "ff", - "1010101010101010101010101010101010101010", - "1010101010101010101010101010101010101010", - }; - - char *badValue[3] = {"00ff", "fff", "-ff"}; - - PKIX_TEST_STD_VARS(); - - startTests("BigInts"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - for (i = 0; i < badSize; i++) { - subTest("PKIX_PL_BigInt_Create <error_handling>"); - createBigInt(&testBigInt[i], badValue[i], PKIX_TRUE); - } - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_BigInt_Create"); - createBigInt(&testBigInt[i], bigIntValue[i], PKIX_FALSE); - } - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (testBigInt[2], - testBigInt[3], - testBigInt[1], - bigIntValue[2], - BigInt, - PKIX_TRUE); - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_BigInt_ToString"); - testToString(testBigInt[i], bigIntValue[i]); - } - - subTest("PKIX_PL_BigInt_Compare <gt>"); - testCompare(testBigInt[2], testBigInt[1], &cmpResult); - if (cmpResult <= 0){ - testError("Invalid Result from String Compare"); - } - - subTest("PKIX_PL_BigInt_Compare <lt>"); - testCompare(testBigInt[1], testBigInt[2], &cmpResult); - if (cmpResult >= 0){ - testError("Invalid Result from String Compare"); - } - - subTest("PKIX_PL_BigInt_Compare <eq>"); - testCompare(testBigInt[2], testBigInt[3], &cmpResult); - if (cmpResult != 0){ - testError("Invalid Result from String Compare"); - } - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_BigInt_Destroy"); - testDestroy(testBigInt[i]); - } - -cleanup: - - PKIX_Shutdown(plContext); - - endTests("BigInt"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c b/security/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c deleted file mode 100644 index d59199a9c..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_bytearray.c +++ /dev/null @@ -1,274 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_bytearray.c - * - * Tests ByteArray types. - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createByteArray( - PKIX_PL_ByteArray **byteArray, - char *bytes, - PKIX_UInt32 length) -{ - PKIX_TEST_STD_VARS(); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_Create - ((void*)bytes, - length, - byteArray, - plContext)); -cleanup: - PKIX_TEST_RETURN(); -} - - -static void -testZeroLength(void) -{ - PKIX_PL_ByteArray *byteArray = NULL; - void *array = NULL; - PKIX_UInt32 length = 2; - - PKIX_TEST_STD_VARS(); - - createByteArray(&byteArray, NULL, 0); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_GetLength - (byteArray, &length, plContext)); - if (length != 0){ - testError("Length should be zero"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_GetPointer - (byteArray, &array, plContext)); - if (array){ - testError("Array should be NULL"); - } - - testToStringHelper((PKIX_PL_Object *)byteArray, "[]", plContext); - -cleanup: - - PKIX_TEST_DECREF_AC(byteArray); - - PKIX_TEST_RETURN(); -} - - -static void -testToString( - PKIX_PL_ByteArray *byteArray, - char *expAscii) -{ - PKIX_PL_String *string = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)byteArray, - &string, plContext)); - - temp = PKIX_String2ASCII(string, plContext); - if (temp == NULL){ - testError("PKIX_String2Ascii failed"); - goto cleanup; - } - - if (PL_strcmp(temp, expAscii) != 0) { - (void) printf("\tByteArray ToString: %s %s\n", temp, expAscii); - testError("Output string does not match source"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(string); - - PKIX_TEST_RETURN(); -} - -static void -testGetLength( - PKIX_PL_ByteArray *byteArray, - PKIX_UInt32 expLength) -{ - PKIX_UInt32 arrayLength; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_GetLength - (byteArray, &arrayLength, plContext)); - - if (arrayLength != expLength){ - (void) printf("\tByteArray GetLength: %d %d\n", - arrayLength, expLength); - testError("Incorrect Array Length returned"); - } - - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testGetPointer( - PKIX_PL_ByteArray *byteArray, - char *expBytes, - PKIX_UInt32 arrayLength) -{ - char *temp = NULL; - PKIX_UInt32 j; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_GetPointer - (byteArray, (void **)&temp, plContext)); - - for (j = 0; j < arrayLength; j++) { - if (temp[j] != expBytes[j]){ - testError("Incorrect Byte Array Contents"); - } - } - -cleanup: - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - PKIX_TEST_RETURN(); -} - -void -testDestroy( - PKIX_PL_ByteArray *byteArray) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(byteArray); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_bytearray(int argc, char *argv[]) { - - PKIX_PL_ByteArray *testByteArray[4]; - - PKIX_UInt32 i, size = 4; - PKIX_UInt32 lengths[4] = {5, 6, 1, 5}; - char dArray0[5] = {1, 2, 3, 4, 5}; - unsigned char dArray1[6] = {127, 128, 129, 254, 255, 0}; - char dArray2[1] = {100}; - char dArray3[5] = {1, 2, 3, 4, 5}; - - char *expected[4] = { - "[001, 002, 003, 004, 005]", - "[127, 128, 129, 254, 255, 000]", - "[100]", - "[001, 002, 003, 004, 005]" - }; - - char *dummyArray[4]; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - dummyArray[0] = dArray0; - dummyArray[1] = (char*)dArray1; - dummyArray[2] = dArray2; - dummyArray[3] = dArray3; - - startTests("ByteArrays"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest ("PKIX_PL_ByteArray_Create <zero length>"); - testZeroLength(); - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_ByteArray_Create"); - createByteArray(&testByteArray[i], dummyArray[i], lengths[i]); - } - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (testByteArray[0], - testByteArray[3], - testByteArray[1], - "[001, 002, 003, 004, 005]", - ByteArray, - PKIX_TRUE); - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_ByteArray_ToString"); - testToString(testByteArray[i], expected[i]); - } - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_ByteArray_GetLength"); - testGetLength(testByteArray[i], lengths[i]); - } - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_ByteArray_GetPointer"); - testGetPointer(testByteArray[i], dummyArray[i], lengths[i]); - } - - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_ByteArray_Destroy"); - testDestroy(testByteArray[i]); - } - -cleanup: - - PKIX_Shutdown(plContext); - - endTests("ByteArray"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c b/security/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c deleted file mode 100644 index 57bcb7cc4..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_hashtable.c +++ /dev/null @@ -1,458 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_hashtable.c - * - * Tests Hashtables - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createHashTables( - PKIX_PL_HashTable **ht, - PKIX_PL_HashTable **ht2, - PKIX_PL_HashTable **ht3, - PKIX_PL_HashTable **ht4) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Create - (1, 0, ht, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Create - (5, 0, ht2, plContext)); - - /* at most two entries per bucket */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Create - (1, 2, ht4, plContext)); - - *ht3 = *ht; - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_IncRef((PKIX_PL_Object*)*ht3, plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testAdd( - PKIX_PL_HashTable *ht, - PKIX_PL_HashTable *ht2, - PKIX_PL_String **testString, - PKIX_PL_String **testString2, - PKIX_PL_String **testString3, - PKIX_PL_OID **testOID) -{ - char* dummyString = "test string 1"; - char* dummyString2 = "test string 2"; - char* dummyString3 = "test string 3"; - char* dummyOID = "2.11.22222.33333"; - - PKIX_TEST_STD_VARS(); - - /* Make some dummy objects */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create( - PKIX_ESCASCII, - dummyString, - PL_strlen(dummyString), - testString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create( - PKIX_ESCASCII, - dummyString2, - PL_strlen(dummyString2), - testString2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create( - PKIX_ESCASCII, - dummyString3, - PL_strlen(dummyString3), - testString3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_OID_Create(dummyOID, testOID, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (PKIX_PL_Object *)*testString, - (PKIX_PL_Object *)*testString2, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht2, - (PKIX_PL_Object *)*testString, - (PKIX_PL_Object *)*testString2, - plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (PKIX_PL_Object *)*testString2, - (PKIX_PL_Object *)*testString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht2, - (PKIX_PL_Object *)*testString2, - (PKIX_PL_Object *)*testString, - plContext)); - - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (PKIX_PL_Object *)*testOID, - (PKIX_PL_Object *)*testOID, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht2, - (PKIX_PL_Object *)*testOID, - (PKIX_PL_Object *)*testOID, - plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testAddFIFO( - PKIX_PL_HashTable *ht, - PKIX_PL_String **testString, - PKIX_PL_String **testString2, - PKIX_PL_String **testString3) -{ - PKIX_PL_String *targetString = NULL; - PKIX_Boolean cmpResult; - - PKIX_TEST_STD_VARS(); - - /* - * ht is created as one bucket, two entries per bucket. Since we add - * three items to the ht, we expect the first one to be deleted. - */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (PKIX_PL_Object *)*testString, - (PKIX_PL_Object *)*testString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (PKIX_PL_Object *)*testString2, - (PKIX_PL_Object *)*testString2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Add - (ht, - (PKIX_PL_Object *)*testString3, - (PKIX_PL_Object *)*testString3, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht, - (PKIX_PL_Object *)*testString, - (PKIX_PL_Object**)&targetString, - plContext)); - if (targetString != NULL) { - testError("HashTable_Lookup retrieved a supposed deleted item"); - PKIX_TEST_DECREF_BC(targetString); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht, - (PKIX_PL_Object *)*testString3, - (PKIX_PL_Object**)&targetString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals( - (PKIX_PL_Object *)targetString, - (PKIX_PL_Object *)*testString3, - &cmpResult, - plContext)); - if (cmpResult != PKIX_TRUE){ - testError("HashTable_Lookup failed"); - } - PKIX_TEST_DECREF_BC(targetString); - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testLookup( - PKIX_PL_HashTable *ht, - PKIX_PL_HashTable *ht2, - PKIX_PL_String *testString, - PKIX_PL_String *testString2, - PKIX_PL_String *testString3, - PKIX_PL_OID *testOID) -{ - PKIX_PL_String *targetString = NULL; - PKIX_PL_String *targetOID = NULL; - PKIX_Boolean cmpResult; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht, - (PKIX_PL_Object *)testString, - (PKIX_PL_Object**)&targetString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals( - (PKIX_PL_Object *)targetString, - (PKIX_PL_Object *)testString2, - &cmpResult, - plContext)); - if (cmpResult != PKIX_TRUE){ - testError("HashTable_Lookup failed"); - } - PKIX_TEST_DECREF_BC(targetString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht2, - (PKIX_PL_Object *)testString, - (PKIX_PL_Object**)&targetString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals( - (PKIX_PL_Object *)targetString, - (PKIX_PL_Object *)testString2, - &cmpResult, - plContext)); - if (cmpResult != PKIX_TRUE){ - testError("HashTable_Lookup failed"); - } - PKIX_TEST_DECREF_BC(targetString); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht2, - (PKIX_PL_Object *)testString2, - (PKIX_PL_Object**)&targetString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals( - (PKIX_PL_Object *)targetString, - (PKIX_PL_Object *)testString, - &cmpResult, - plContext)); - if (cmpResult != PKIX_TRUE){ - testError("HashTable_Lookup failed"); - } - PKIX_TEST_DECREF_BC(targetString); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht, - (PKIX_PL_Object *)testOID, - (PKIX_PL_Object**)&targetOID, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)targetOID, &targetString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals( - (PKIX_PL_Object *)targetOID, - (PKIX_PL_Object *)testOID, - &cmpResult, - plContext)); - if (cmpResult != PKIX_TRUE){ - testError("HashTable_Lookup failed"); - } - PKIX_TEST_DECREF_BC(targetString); - PKIX_TEST_DECREF_BC(targetOID); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht2, - (PKIX_PL_Object *)testOID, - (PKIX_PL_Object**)&targetOID, - plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)targetOID, &targetString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals( - (PKIX_PL_Object *)targetOID, - (PKIX_PL_Object *)testOID, - &cmpResult, - plContext)); - if (cmpResult != PKIX_TRUE){ - testError("HashTable_Lookup failed"); - } - PKIX_TEST_DECREF_BC(targetString); - PKIX_TEST_DECREF_BC(targetOID); - - (void) printf("Looking up item not in HashTable.\n"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Lookup - (ht, - (PKIX_PL_Object *)testString3, - (PKIX_PL_Object**)&targetString, - plContext)); - if (targetString == NULL) - (void) printf("\tCorrectly returned NULL.\n"); - else - testError("Hashtable did not return NULL value as expected"); - - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testRemove( - PKIX_PL_HashTable *ht, - PKIX_PL_HashTable *ht2, - PKIX_PL_String *testString, - PKIX_PL_String *testString2, - PKIX_PL_OID *testOID) -{ - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Remove - (ht, - (PKIX_PL_Object *)testString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Remove - (ht, - (PKIX_PL_Object *)testOID, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_HashTable_Remove - (ht2, - (PKIX_PL_Object *)testString2, - plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_HashTable_Remove - (ht, - (PKIX_PL_Object *)testString, - plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static void -testDestroy( - PKIX_PL_HashTable *ht, - PKIX_PL_HashTable *ht2, - PKIX_PL_HashTable *ht3, - PKIX_PL_HashTable *ht4) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(ht); - PKIX_TEST_DECREF_BC(ht2); - PKIX_TEST_DECREF_BC(ht3); - PKIX_TEST_DECREF_BC(ht4); - -cleanup: - PKIX_TEST_RETURN(); -} - - - - -int test_hashtable(int argc, char *argv[]) { - - PKIX_PL_HashTable *ht, *ht2, *ht3, *ht4; - PKIX_PL_String *testString, *testString2, *testString3; - PKIX_PL_OID *testOID; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("HashTables"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_HashTable_Create"); - createHashTables(&ht, &ht2, &ht3, &ht4); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (ht, - ht3, - ht2, - NULL, - HashTable, - PKIX_FALSE); - - subTest("PKIX_PL_HashTable_Add"); - testAdd(ht, ht2, &testString, &testString2, &testString3, &testOID); - - subTest("PKIX_PL_HashTable_ADD - with Bucket Size limit"); - testAddFIFO(ht4, &testString, &testString2, &testString3); - - subTest("PKIX_PL_HashTable_Lookup"); - testLookup(ht, ht2, testString, testString2, testString3, testOID); - - subTest("PKIX_PL_HashTable_Remove"); - testRemove(ht, ht2, testString, testString2, testOID); - - PKIX_TEST_DECREF_BC(testString); - PKIX_TEST_DECREF_BC(testString2); - PKIX_TEST_DECREF_BC(testString3); - PKIX_TEST_DECREF_BC(testOID); - - subTest("PKIX_PL_HashTable_Destroy"); - testDestroy(ht, ht2, ht3, ht4); - -cleanup: - - PKIX_Shutdown(plContext); - - endTests("BigInt"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_mem.c b/security/nss/cmd/libpkix/pkix_pl/system/test_mem.c deleted file mode 100644 index e5a749bea..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_mem.c +++ /dev/null @@ -1,164 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_mem.c - * - * Tests Malloc, Realloc and Free - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void testMalloc(PKIX_UInt32 **array) -{ - PKIX_UInt32 i, arraySize = 10; - PKIX_TEST_STD_VARS(); - - /* Create an integer array of size 10 */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc( - (PKIX_UInt32)(arraySize*sizeof (unsigned int)), - (void **) array, plContext)); - - /* Fill in some values */ - (void) printf ("Setting array[i] = i...\n"); - for (i = 0; i < arraySize; i++) { - (*array)[i] = i; - if ((*array)[i] != i) - testError("Array has incorrect contents"); - } - - /* Memory now reflects changes */ - (void) printf("\tArray: a[0] = %d, a[5] = %d, a[7] = %d.\n", - (*array[0]), (*array)[5], (*array)[7]); - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testRealloc(PKIX_UInt32 **array) -{ - PKIX_UInt32 i, arraySize = 20; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Realloc(*array, - (PKIX_UInt32)(arraySize*sizeof (unsigned int)), - (void **) array, plContext)); - - /* Fill in the new elements */ - (void) printf ("Setting new portion of array to a[i] = i...\n"); - for (i = arraySize/2; i < arraySize; i++) { - (*array)[i] = i; - if ((*array)[i] != i) - testError("Array has incorrect contents"); - } - - /* New elements should be reflected. The old should be the same */ - (void) printf("\tArray: a[0] = %d, a[15] = %d, a[17] = %d.\n", - (*array)[0], (*array)[15], (*array)[17]); - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testFree(PKIX_UInt32 *array) -{ - - PKIX_TEST_STD_VARS(); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(array, plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -int test_mem(int argc, char *argv[]) { - - unsigned int *array = NULL; - int arraySize = 10; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Memory Allocation"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_Malloc"); - testMalloc(&array); - - subTest("PKIX_PL_Realloc"); - testRealloc(&array); - - subTest("PKIX_PL_Free"); - testFree(array); - - /* --Negative Test Cases------------------- */ - /* Create an integer array of size 10 */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc( - (PKIX_UInt32)(arraySize*sizeof (unsigned int)), - (void **) &array, plContext)); - - (void) printf("Attempting to reallocate 0 sized memory...\n"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Realloc(array, 0, (void **) &array, plContext)); - - (void) printf("Attempting to allocate to null pointer...\n"); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_Malloc(10, NULL, plContext)); - - (void) printf("Attempting to reallocate to null pointer...\n"); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_Realloc(NULL, 10, NULL, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(array, plContext)); - -cleanup: - - PKIX_Shutdown(plContext); - - endTests("Memory Allocation"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c b/security/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c deleted file mode 100644 index a21a620c6..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_monitorlock.c +++ /dev/null @@ -1,144 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_monitorlock.c - * - * Tests basic MonitorLock object functionality. No multi-threading. - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void createMonitorLockes( - PKIX_PL_MonitorLock **monitorLock, - PKIX_PL_MonitorLock **monitorLock2, - PKIX_PL_MonitorLock **monitorLock3) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_MonitorLock_Create - (monitorLock, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_MonitorLock_Create - (monitorLock2, plContext)); - - *monitorLock3 = *monitorLock; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef - ((PKIX_PL_Object*)*monitorLock3, plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testLock(PKIX_PL_MonitorLock *monitorLock) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_MonitorLock_Enter - (monitorLock, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_MonitorLock_Enter - (monitorLock, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_MonitorLock_Exit - (monitorLock, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_MonitorLock_Exit - (monitorLock, plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testDestroy( - PKIX_PL_MonitorLock *monitorLock, - PKIX_PL_MonitorLock *monitorLock2, - PKIX_PL_MonitorLock *monitorLock3) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(monitorLock); - PKIX_TEST_DECREF_BC(monitorLock2); - PKIX_TEST_DECREF_BC(monitorLock3); - -cleanup: - PKIX_TEST_RETURN(); -} - -int test_monitorlock(int argc, char *argv[]) { - - PKIX_PL_MonitorLock *monitorLock, *monitorLock2, *monitorLock3; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("MonitorLocks"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_MonitorLock_Create"); - createMonitorLockes(&monitorLock, &monitorLock2, &monitorLock3); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (monitorLock, - monitorLock3, - monitorLock2, - NULL, - MonitorLock, - PKIX_FALSE); - - subTest("PKIX_PL_MonitorLock_Lock/Unlock"); - testLock(monitorLock); - - subTest("PKIX_PL_MonitorLock_Destroy"); - testDestroy(monitorLock, monitorLock2, monitorLock3); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("MonitorLockes"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_mutex.c b/security/nss/cmd/libpkix/pkix_pl/system/test_mutex.c deleted file mode 100644 index 981beb698..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_mutex.c +++ /dev/null @@ -1,136 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_mutex.c - * - * Tests basic mutex object functionality. No multi-threading. - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static -void createMutexes( - PKIX_PL_Mutex **mutex, - PKIX_PL_Mutex **mutex2, - PKIX_PL_Mutex **mutex3) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Mutex_Create(mutex, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Mutex_Create(mutex2, plContext)); - - *mutex3 = *mutex; - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_IncRef((PKIX_PL_Object*)*mutex3, plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testLock(PKIX_PL_Mutex *mutex) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Mutex_Lock(mutex, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Mutex_Unlock(mutex, plContext)); - -cleanup: - PKIX_TEST_RETURN(); -} - -static -void testDestroy( - PKIX_PL_Mutex *mutex, - PKIX_PL_Mutex *mutex2, - PKIX_PL_Mutex *mutex3) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(mutex); - PKIX_TEST_DECREF_BC(mutex2); - PKIX_TEST_DECREF_BC(mutex3); - -cleanup: - PKIX_TEST_RETURN(); -} - -int test_mutex(int argc, char *argv[]) { - - PKIX_PL_Mutex *mutex, *mutex2, *mutex3; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Mutexes"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_Mutex_Create"); - createMutexes(&mutex, &mutex2, &mutex3); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (mutex, - mutex3, - mutex2, - NULL, - Mutex, - PKIX_FALSE); - - subTest("PKIX_PL_Mutex_Lock/Unlock"); - testLock(mutex); - - subTest("PKIX_PL_Mutex_Destroy"); - testDestroy(mutex, mutex2, mutex3); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Mutexes"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c b/security/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c deleted file mode 100644 index 5edcb24ac..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_mutex2.c +++ /dev/null @@ -1,193 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_mutex2.c - * - * Tests multi-threaded functionality of Mutex - * - */ - - -#include "testutil.h" -#include "testutil_nss.h" - -static int box1 = 0, box2 = 0, box3 = 0; -static PKIX_PL_Mutex *mutex; -static PRCondVar *cv; -static void *plContext = NULL; - -static void consumer(/* ARGSUSED */ void* arg) { - PRStatus status = PR_SUCCESS; - PKIX_Error *errorResult; - int i = 0; - for (i = 0; i < 5; i++) { - (void) PKIX_PL_Mutex_Lock(mutex, plContext); - while (((box1 == 0) || - (box2 == 0) || - (box3 == 0)) && - (status == PR_SUCCESS)) - status = PR_WaitCondVar(cv, PR_INTERVAL_NO_TIMEOUT); - - (void) printf("\tConsumer got Box1 = %d ", box1); - box1 = 0; - (void) printf("Box2 = %d ", box2); - box2 = 0; - (void) printf("Box3 = %d\n", box3); - box3 = 0; - - status = PR_NotifyAllCondVar(cv); - if (status == PR_FAILURE) - (void) printf - ("Consumer error while notifying condvar\n"); - errorResult = PKIX_PL_Mutex_Unlock(mutex, plContext); - if (errorResult) testError("PKIX_PL_Mutex_Unlock failed"); - } - (void) printf("Consumer exiting...\n"); -} - -static void producer(void* arg) { - PRStatus status = PR_SUCCESS; - int value = *(int*)arg; - int i = 0; - int *box; - PKIX_Error *errorResult; - if (value == 10) box = &box1; - else if (value == 20) box = &box2; - else if (value == 30) box = &box3; - - for (i = 0; i < 5; i++) { - (void) PKIX_PL_Mutex_Lock(mutex, plContext); - while ((*box != 0) && (status == PR_SUCCESS)) - status = PR_WaitCondVar(cv, PR_INTERVAL_NO_TIMEOUT); - - *box = i+1; - (void) printf - ("\tProducer %d put value: %d\n", value, *box); - - status = PR_NotifyAllCondVar(cv); - if (status == PR_FAILURE) - (void) printf - ("Producer %d error while notifying condvar\n", - value); - errorResult = PKIX_PL_Mutex_Unlock(mutex, plContext); - if (errorResult) testError("PKIX_PL_Mutex_Unlock failed"); - } -} - -int test_mutex2(int argc, char *argv[]) { - - PRThread *consThread, *prodThread, *prodThread2, *prodThread3; - int x = 10, y = 20, z = 30; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Mutex and Threads"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - (void) printf("Attempting to create new mutex...\n"); - subTest("Mutex Creation"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Mutex_Create(&mutex, plContext)); - - cv = PR_NewCondVar(*(PRLock **) mutex); - - subTest("Starting consumer thread"); - consThread = PR_CreateThread(PR_USER_THREAD, - consumer, - NULL, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - subTest("Starting producer thread 1"); - prodThread = PR_CreateThread(PR_USER_THREAD, - producer, - &x, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - subTest("Starting producer thread 2"); - prodThread2 = PR_CreateThread(PR_USER_THREAD, - producer, - &y, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - subTest("Starting producer thread 3"); - prodThread3 = PR_CreateThread(PR_USER_THREAD, - producer, - &z, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - - PR_JoinThread(consThread); - - (void) PR_DestroyCondVar(cv); - PKIX_TEST_DECREF_BC(mutex); - - /* - * Note: we should also be freeing each thread's stack, but we - * don't have access to the prodThread->stack variable (since - * it is not exported). As a result, we have 120 bytes of memory - * leakage. - */ - - PR_Free(prodThread); - PR_Free(prodThread2); - PR_Free(prodThread3); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Mutex and Threads"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c b/security/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c deleted file mode 100644 index 9eaa2cdcf..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_mutex3.c +++ /dev/null @@ -1,127 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_mutex3.c - * - * Tests multi-threaded functionality of Mutex - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static PKIX_PL_Mutex *mutex; -static void *plContext = NULL; - -static void t1(/* ARGSUSED */ void* arg) { - PKIX_Error *errorResult; - - (void) printf("t1 acquiring lock...\n"); - errorResult = PKIX_PL_Mutex_Lock(mutex, plContext); - if (errorResult) testError("PKIX_PL_Mutex_Lock failed"); - - (void) printf("t1 sleeplng for 3 seconds\n"); - PR_Sleep(PR_SecondsToInterval(3)); - (void) printf("t1 releasing lock...\n"); - - errorResult = PKIX_PL_Mutex_Unlock(mutex, plContext); - if (errorResult) testError("PKIX_PL_Mutex_Unlock failed"); - - (void) printf("t1 exiting...\n"); -} - -static void t2(/* ARGSUSED */ void* arg) { - PKIX_Error *errorResult; - - (void) printf("t2 acquiring lock...\n"); - errorResult = PKIX_PL_Mutex_Lock(mutex, plContext); - if (errorResult) testError("PKIX_PL_Mutex_Lock failed"); - - (void) printf("t2 releasing lock...\n"); - errorResult = PKIX_PL_Mutex_Unlock(mutex, plContext); - if (errorResult) testError("PKIX_PL_Mutex_Unlock failed"); - - (void) printf("t2 exiting...\n"); -} - -int test_mutex3(int argc, char *argv[]) { - PRThread *thread, *thread2; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Mutex and Threads"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("Mutex Creation"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Mutex_Create(&mutex, plContext)); - - subTest("Starting thread"); - thread = PR_CreateThread(PR_USER_THREAD, - t1, - NULL, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - thread2 = PR_CreateThread(PR_USER_THREAD, - t2, - NULL, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - PR_JoinThread(thread2); - PR_JoinThread(thread); - -cleanup: - - PKIX_TEST_DECREF_AC(mutex); - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Mutex and Threads"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_object.c b/security/nss/cmd/libpkix/pkix_pl/system/test_object.c deleted file mode 100644 index 5d83ac966..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_object.c +++ /dev/null @@ -1,322 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_object.c - * - * Test Object Allocation, toString, Equals, Destruction - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static PKIX_Error * -destructor( - /* ARGSUSED */ PKIX_PL_Object *object, - /* ARGSUSED */ void *plContext) -{ - (void) printf("\tUser defined destructor called\n"); - return (NULL); -} - -static PKIX_Error* -toStringCallback( - PKIX_PL_Object *obj, - PKIX_PL_String **pString, - /* ARGSUSED */ void* plContext) { - - PKIX_Error *errorResult; - PKIX_UInt32 type; - char *format = "(addr: %x, type: %d)"; - PKIX_PL_String *formatString = NULL; - - errorResult = PKIX_PL_String_Create( - PKIX_ESCASCII, - format, - PL_strlen(format), - &formatString, - plContext); - if (errorResult) testError("PKIX_PL_String_Create failed"); - - if (pString == plContext) - testError("Null String"); - - type = (unsigned int)0; - - (void) PKIX_PL_Object_GetType(obj, &type, plContext); - - errorResult = PKIX_PL_Sprintf(pString, plContext, - formatString, - (int)obj, type); - if (errorResult) testError("PKIX_PL_Sprintf failed"); - - - errorResult = PKIX_PL_Object_DecRef((PKIX_PL_Object*)formatString, - plContext); - if (errorResult) testError("PKIX_PL_Object_DecRef failed"); - - return (NULL); -} - -static PKIX_Error * -comparator( - PKIX_PL_Object *first, - PKIX_PL_Object *second, - PKIX_Int32 *pValue, - /* ARGSUSED */ void *plContext) -{ - if (*(char *)first > *(char *)second) - *pValue = 1; - else if (*(char *)first < *(char *)second) - *pValue = -1; - else - *pValue = 0; - return (NULL); -} - - -static PKIX_Error * -hashcodeCallback( - PKIX_PL_Object *object, - PKIX_UInt32 *pValue, - /* ARGSUSED */ void *plContext) -{ - *pValue = 123456789; - return (NULL); -} - -static PKIX_Error* -equalsCallback( - PKIX_PL_Object *first, - PKIX_PL_Object *second, - PKIX_Boolean *result, - void* plContext) { - - PKIX_UInt32 firstType = 0, secondType = 0; - - if ((first == plContext)||(second == plContext)) - testError("Null Object"); - - (void) PKIX_PL_Object_GetType(first, &firstType, plContext); - - (void) PKIX_PL_Object_GetType(second, &secondType, plContext); - - *result = (firstType == secondType)?PKIX_TRUE:PKIX_FALSE; - - return (NULL); -} - -static void -createObjects( - PKIX_PL_Object **obj, - PKIX_PL_Object **obj2, - PKIX_PL_Object **obj3, - PKIX_PL_Object **obj4) -{ - PKIX_TEST_STD_VARS(); - -#ifdef PKIX_USER_OBJECT_TYPE - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_RegisterType - (1000, /* type */ - "thousand", /* description */ - NULL, /* destructor */ - NULL, /* equals */ - (PKIX_PL_HashcodeCallback)hashcodeCallback, - NULL, /* toString */ - NULL, /* Comparator */ - NULL, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Alloc - (1000, /* type */ - 12, /* size */ - obj, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_RegisterType - (2000, /* type */ - "two thousand" /* description */, - (PKIX_PL_DestructorCallback)destructor, - (PKIX_PL_EqualsCallback)equalsCallback, - NULL, /* hashcode */ - (PKIX_PL_ToStringCallback)toStringCallback, - (PKIX_PL_ComparatorCallback)comparator, - NULL, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Alloc - (2000, /* type */ - 1, /* size */ - obj2, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Alloc - (2000, /* type */ - 1, /* size */ - obj4, - plContext)); - - *obj3 = *obj; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_IncRef(*obj3, plContext)); - -cleanup: -#endif /* PKIX_USER_OBJECT_TYPE */ - PKIX_TEST_RETURN(); -} - - -static void -testGetType( - PKIX_PL_Object *obj, - PKIX_PL_Object *obj2, - PKIX_PL_Object *obj3) -{ - PKIX_UInt32 testType; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_GetType(obj, &testType, plContext)); - - if (testType != 1000) - testError("Object 1 returned the wrong type"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_GetType(obj2, &testType, plContext)); - if (testType != 2000) - testError("Object 2 returned the wrong type"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_GetType(obj3, &testType, plContext)); - if (testType != 1000) - testError("Object 3 returned the wrong type"); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testCompare( - PKIX_PL_Object *obj2, - PKIX_PL_Object *obj4) -{ - PKIX_Int32 cmpResult; - PKIX_TEST_STD_VARS(); - - *(char *)obj2 = 0x20; - *(char *)obj4 = 0x10; - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Compare(obj2, obj4, &cmpResult, plContext)); - if (cmpResult <= 0) testError("Invalid Result from Object Compare"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Compare(obj4, obj2, &cmpResult, plContext)); - if (cmpResult >= 0) testError("Invalid Result from Object Compare"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Compare(obj4, obj4, &cmpResult, plContext)); - - *(char *)obj2 = 0x10; - if (cmpResult != 0) testError("Invalid Result from Object Compare"); - - -cleanup: - - PKIX_TEST_RETURN(); -} - - -static void -testDestroy( - PKIX_PL_Object *obj, - PKIX_PL_Object *obj2, - PKIX_PL_Object *obj3, - PKIX_PL_Object *obj4) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(obj); - PKIX_TEST_DECREF_BC(obj2); - PKIX_TEST_DECREF_BC(obj3); - PKIX_TEST_DECREF_BC(obj4); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_object(int argc, char *argv[]) { - -#ifdef PKIX_USER_OBJECT_TYPE - PKIX_PL_Object *obj, *obj2, *obj3, *obj4; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Objects"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_Object_Create"); - createObjects(&obj, &obj2, &obj3, &obj4); - - PKIX_TEST_EQ_HASH_TOSTR_DUP(obj, obj3, obj2, NULL, Object, PKIX_FALSE); - - subTest("PKIX_PL_Object_GetType"); - testGetType(obj, obj2, obj3); - - subTest("PKIX_PL_Object_Compare"); - testCompare(obj2, obj4); - - subTest("PKIX_PL_Object_Destroy"); - testDestroy(obj, obj2, obj3, obj4); - - -cleanup: - - PKIX_Shutdown(plContext); - - endTests("Objects"); -#endif /* PKIX_USER_OBJECT_TYPE */ - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_oid.c b/security/nss/cmd/libpkix/pkix_pl/system/test_oid.c deleted file mode 100644 index 819a95a50..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_oid.c +++ /dev/null @@ -1,246 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_oid.c - * - * Test OID Types - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createOID( - PKIX_PL_OID **testOID, - char *oidAscii, - PKIX_Boolean errorHandling) -{ - PKIX_TEST_STD_VARS(); - - if (errorHandling){ - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_OID_Create(oidAscii, testOID, plContext)); - } else { - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_OID_Create(oidAscii, testOID, plContext)); - } - - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testToString( - PKIX_PL_OID *oid, - char *expAscii) -{ - PKIX_PL_String *oidString = NULL; - char *temp = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)oid, - &oidString, plContext)); - - temp = PKIX_String2ASCII(oidString, plContext); - if (temp == NULL){ - testError("PKIX_String2Ascii failed"); - goto cleanup; - } - - if (PL_strcmp(temp, expAscii) != 0) { - (void) printf("\tOid ToString: %s %s\n", temp, expAscii); - testError("Output string does not match source"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(oidString); - - PKIX_TEST_RETURN(); -} - -static void -testCompare( - PKIX_PL_OID *oid0, - PKIX_PL_OID *oid1, - PKIX_PL_OID *oid2, - PKIX_PL_OID *oid3) -{ - PKIX_Int32 cmpResult; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare((PKIX_PL_Object*)oid0, - (PKIX_PL_Object*)oid1, - &cmpResult, plContext)); - if (cmpResult <= 0) testError("Invalid Result from OID Compare"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare((PKIX_PL_Object*)oid1, - (PKIX_PL_Object*)oid0, - &cmpResult, plContext)); - if (cmpResult >= 0) testError("Invalid Result from OID Compare"); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare((PKIX_PL_Object*)oid1, - (PKIX_PL_Object*)oid2, - &cmpResult, plContext)); - if (cmpResult >= 0) testError("Invalid Result from OID Compare"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare((PKIX_PL_Object*)oid2, - (PKIX_PL_Object*)oid1, - &cmpResult, plContext)); - if (cmpResult <= 0) testError("Invalid Result from OID Compare"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Compare((PKIX_PL_Object*)oid1, - (PKIX_PL_Object*)oid3, - &cmpResult, plContext)); - if (cmpResult != 0) testError("Invalid Result from OID Compare"); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy( - PKIX_PL_OID *oid) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(oid); - -cleanup: - - PKIX_TEST_RETURN(); -} - - -int test_oid(int argc, char *argv[]) { - - PKIX_PL_OID *testOID[6] = {NULL}; - PKIX_PL_OID *badTestOID = NULL; - PKIX_UInt32 i, size = 6; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - char* validOID[6] = { - "2.11.22222.33333", - "1.2.3.004.5.6.7", - "2.11.22222.33333", - "1.2.3.4.5.6.7", - "1.2.3", - "2.39.3" - }; - - char* expected[6] = { - "2.11.22222.33333", - "1.2.3.4.5.6.7", - "2.11.22222.33333", - "1.2.3.4.5.6.7", - "1.2.3", - "2.39.3" - }; - - char *badOID[11] = { - "1.2.4294967299", - "this. is. a. bad. oid", - "00a1000.002b", - "100.-5.10", - "1.2..3", - ".1.2.3", - "1.2.3.", - "00010.1.2.3", - "1.000041.2.3", - "000000000000000000000000000000000000000010.3.2", - "1" - }; - - PKIX_TEST_STD_VARS(); - - startTests("OIDs"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_OID_Create"); - createOID(&testOID[i], validOID[i], PKIX_FALSE); - } - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (testOID[0], - testOID[2], - testOID[1], - NULL, - OID, - PKIX_FALSE); - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_OID_ToString"); - testToString(testOID[i], expected[i]); - } - - subTest("PKIX_PL_OID_Compare"); - testCompare(testOID[0], testOID[1], testOID[2], testOID[3]); - - for (i = 0; i < size; i++) { - subTest("PKIX_PL_OID_Destroy"); - testDestroy(testOID[i]); - } - - for (i = 0; i < 11; i++) { - subTest("PKIX_PL_OID Error Handling"); - createOID(&badTestOID, badOID[i], PKIX_TRUE); - } - -cleanup: - - PKIX_Shutdown(plContext); - - endTests("OIDs"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c b/security/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c deleted file mode 100644 index ad48ee83a..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_rwlock.c +++ /dev/null @@ -1,227 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_rwlock.c - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static PKIX_PL_RWLock *rwlock = NULL, *rwlock2 = NULL, *rwlock3 = NULL; -static PRThread *thread = NULL, *thread2 = NULL, *thread3 = NULL; -static void *plContext = NULL; - -static void reader(void) { - PKIX_Error *errorResult; - - errorResult = PKIX_PL_AcquireReaderLock(rwlock, NULL); - if (errorResult) testError("PKIX_PL_AcquireReaderLock failed"); - - (void) printf("\t[Thread #1 Read Lock #1.]\n"); - (void) printf("\t[Thread #1 Sleeplng for 1 seconds.]\n"); - PR_Sleep(PR_SecondsToInterval(1)); - PKIX_PL_ReleaseReaderLock(rwlock, NULL); - if (errorResult) testError("PKIX_PL_ReleaseReaderLock failed"); - (void) printf("\t[Thread #1 Read UNLock #1.]\n"); -} - - -static void writer(void) { - PKIX_Error *errorResult; - /* This thread should stick here until lock 1 is released */ - PKIX_PL_AcquireWriterLock(rwlock, NULL); - if (errorResult) testError("PKIX_PL_AcquireWriterLock failed"); - - (void) printf("\t[Thread #2 Write Lock #1.]\n"); - - PKIX_PL_AcquireWriterLock(rwlock2, NULL); - if (errorResult) testError("PKIX_PL_AcquireWriterLock failed"); - (void) printf("\t[Thread #2 Write Lock #2.]\n"); - - (void) printf("\t[Thread #2 Sleeplng for 1 seconds.]\n"); - PR_Sleep(PR_SecondsToInterval(1)); - - PKIX_PL_ReleaseWriterLock(rwlock2, NULL); - if (errorResult) testError("PKIX_PL_ReleaseWriterLock failed"); - (void) printf("\t[Thread #2 Write UNLock #2.]\n"); - - (void) printf("\t[Thread #2 Sleeplng for 1 seconds.]\n"); - PR_Sleep(PR_SecondsToInterval(1)); - - PKIX_PL_ReleaseWriterLock(rwlock, NULL); - if (errorResult) testError("PKIX_PL_ReleaseWriterLock failed"); - (void) printf("\t[Thread #2 Write UNLock #1.]\n"); - - PR_JoinThread(thread3); -} - -static void reader2(void) { - PKIX_Error *errorResult; - /* Reader 2 should yield here until the writer is done */ - - PKIX_PL_AcquireReaderLock(rwlock2, NULL); - if (errorResult) testError("PKIX_PL_AcquireReaderLock failed"); - - (void) printf("\t[Thread #3 Read Lock #2.]\n"); - - PKIX_PL_AcquireReaderLock(rwlock3, NULL); - if (errorResult) testError("PKIX_PL_AcquireReaderLock failed"); - (void) printf("\t[Thread #3 Read Lock #3.]\n"); - - (void) printf("\t[Thread #3 Sleeplng for 1 seconds.]\n"); - PR_Sleep(PR_SecondsToInterval(1)); - - PKIX_PL_ReleaseReaderLock(rwlock3, NULL); - if (errorResult) testError("PKIX_PL_ReleaseReaderLock failed"); - (void) printf("\t[Thread #3 Read UNLock #3.]\n"); - - (void) printf("\t[Thread #3 Sleeplng for 1 seconds.]\n"); - PR_Sleep(PR_SecondsToInterval(1)); - - PKIX_PL_ReleaseReaderLock(rwlock2, NULL); - if (errorResult) testError("PKIX_PL_ReleaseReaderLock failed"); - (void) printf("\t[Thread #3 Read UNLock #2.]\n"); -} - - - -int test_rwlock() { - PKIX_PL_String* outputString = NULL; - PKIX_UInt32 j = 0; - PKIX_Boolean bool; - PKIX_UInt32 actualMinorVersion; - - PKIX_TEST_STD_VARS(); - startTests("RWLocks"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - (void) printf("Attempting to create new rwlock...\n"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_RWLock_Create(&rwlock, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_RWLock_Create(&rwlock2, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_RWLock_Create(&rwlock3, plContext)); - - /* Test toString functionality */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - ((PKIX_PL_Object*)rwlock, &outputString, plContext)); - - (void) printf("Testing RWLock toString: %s\n", - PKIX_String2ASCII(outputString)); - - PKIX_TEST_DECREF_BC(outputString); - - /* Call Equals on two different objects */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - ((PKIX_PL_Object*)rwlock, - (PKIX_PL_Object*)rwlock2, - &bool, - plContext)); - - (void) printf("Testing RWLock Equals: %d (should be 0)\n", bool); - - if (bool != 0) - testError("Error in RWLock_Equals"); - - /* Call Equals on two equal objects */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals((PKIX_PL_Object*)rwlock, - (PKIX_PL_Object*)rwlock, &bool, plContext)); - - (void) printf("Testing RWLock Equals: %d (should be 1)\n", bool); - if (bool != 1) - testError("Error in RWLock_Equals"); - - subTest("Multi-Thread Read/Write Lock Testing"); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_AcquireReaderLock(rwlock, plContext)); - (void) printf("\t[Main Thread Read Lock #1.]\n"); - - thread = PR_CreateThread(PR_USER_THREAD, - reader, - NULL, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - thread2 = PR_CreateThread(PR_USER_THREAD, - writer, - NULL, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - thread3 = PR_CreateThread(PR_USER_THREAD, - reader2, - NULL, - PR_PRIORITY_NORMAL, - PR_LOCAL_THREAD, - PR_JOINABLE_THREAD, - 0); - - PR_JoinThread(thread); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ReleaseReaderLock - (rwlock, plContext)); - (void) printf("\t[Main Thread Read Unlock #1.]\n"); - - PR_JoinThread(thread2); - - - -cleanup: - - /* Test destructor */ - subTest("Testing destructor..."); - PKIX_TEST_DECREF_AC(rwlock); - PKIX_TEST_DECREF_AC(rwlock2); - PKIX_TEST_DECREF_AC(rwlock3); - - pkixTestTempResult = PKIX_Shutdown(plContext); - if (pkixTestTempResult) pkixTestErrorResult = pkixTestTempResult; - - PKIX_TEST_RETURN(); - - endTests("RWLocks"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_string.c b/security/nss/cmd/libpkix/pkix_pl/system/test_string.c deleted file mode 100644 index ba49c18df..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_string.c +++ /dev/null @@ -1,479 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_string.c - * - * Tests Strings. - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createString( - PKIX_PL_String **testString, - PKIX_UInt32 format, - char *stringAscii, - PKIX_UInt32 length) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create - (format, stringAscii, length, testString, plContext)); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -createStringOther( - PKIX_PL_String **testEscAscii, - PKIX_PL_String **testUtf16, - PKIX_PL_String **ampString, - PKIX_PL_String **testDebugAscii, - PKIX_PL_String **testNullString, - PKIX_UInt32 *utf16data) -{ - char *nullText = "Hi� there!"; - - char *escAsciiString = - "¡𐀀࿿􀀁"; - - char *debugAsciiString = - "string with
newlines and	tabs"; - - char * utfAmp = "\x00&"; - - PKIX_TEST_STD_VARS(); - - createString(testEscAscii, - PKIX_ESCASCII, - escAsciiString, - PL_strlen(escAsciiString)); - - createString(testUtf16, PKIX_UTF16, (char *)utf16data, 12); - - createString(ampString, PKIX_UTF16, utfAmp, 2); - - createString(testDebugAscii, - PKIX_ESCASCII_DEBUG, - debugAsciiString, - PL_strlen(debugAsciiString)); - - createString(testNullString, - PKIX_ESCASCII_DEBUG, - nullText, - PL_strlen(nullText)); - - goto cleanup; - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testGetEncoded( - PKIX_PL_String *testEscAscii, - PKIX_PL_String *testString0, - PKIX_PL_String *testDebugAscii, - PKIX_PL_String *testNullString, - PKIX_UInt32 *utf16data) -{ - char *temp = NULL; - void *dest = NULL; - void *dest2 = NULL; - char *plainText = "string with\nnewlines and\ttabs"; - PKIX_UInt32 length, length2, i; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(testEscAscii, - PKIX_UTF16, - &dest, - &length, - plContext)); - for (i = 0; i < length; i++) { - if (((char*)dest)[i] != ((char*)utf16data)[i]) { - testError("UTF-16 Data Differs from Source"); - printf("%d-th char is different -%c-%c-\n", i, - ((char*)dest)[i], ((char*)utf16data)[i]); - } - } - - length = 0; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(testNullString, - PKIX_UTF16, - &dest, - &length, - plContext)); - - length = 0; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(testString0, - PKIX_ESCASCII_DEBUG, - &dest, - &length, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(testDebugAscii, - PKIX_ESCASCII_DEBUG, - &dest2, - &length2, - plContext)); - - for (i = 0; (i < length) && (i < length2); i++) - if (((char*)dest)[i] != ((char*)dest2)[i]) { - testError("Equivalent strings are unequal"); - break; - } - - length = 0; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - length2 = 0; - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest2, plContext)); - - temp = PKIX_String2ASCII(testDebugAscii, plContext); - if (temp){ - if (PL_strcmp(plainText, temp) != 0) - testError("Debugged ASCII does not match " - "equivalent EscAscii"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testSprintf(void) -{ - PKIX_Int32 x = 0xCAFE; - PKIX_Int32 y = -12345; - PKIX_PL_String *testString = NULL; - PKIX_PL_String *formatString = NULL; - PKIX_PL_String *sprintfString = NULL; - char *plainText = "Testing Sprintf"; - char *format = "%s %x %u %d"; - char *convertedFormat = "%s %lx %lu %ld"; - char *temp = NULL; - char *temp2 = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - plainText, - PL_strlen(plainText), - &testString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - format, - 11, - &formatString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Sprintf(&sprintfString, - plContext, - formatString, - testString, x, y, y)); - PKIX_TEST_DECREF_BC(testString); - - temp = PR_smprintf(convertedFormat, plainText, x, y, y); - temp2 = PKIX_String2ASCII(sprintfString, plContext); - - if (PL_strcmp(temp, temp2) != 0) - testError("Sprintf produced incorrect output"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(temp2, plContext)); - - - PKIX_TEST_DECREF_BC(sprintfString); - - - PKIX_TEST_DECREF_BC(formatString); - - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testErrorHandling(void) -{ - char *debugAsciiString = - "string with
newlines and	tabs"; - - PKIX_PL_String *testString = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - NULL, - 50, - &testString, - plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create(PKIX_ESCASCII, - "blah", 4, NULL, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_Sprintf(&testString, plContext, NULL)); - - PKIX_TEST_EXPECT_ERROR - (PKIX_PL_GetString(0, NULL, &testString, plContext)); - - PKIX_TEST_EXPECT_ERROR(PKIX_PL_GetString(0, "blah", 0, plContext)); - - /* ---------------------------- */ - subTest("Unicode Error Handling"); - - /* &#x must be followed by 4 hexadecimal digits */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "k;", - 7, - &testString, - plContext)); - - /* &#x must be followed by 4 hexadecimal digits */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "abc�", - 8, - &testString, - plContext)); - - /* &#x must be between 00010000-0010FFFF */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "�", - 11, - &testString, - plContext)); - - /* &#x must be followed by 8 hexadecimal digits */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "က", - 10, - &testString, - plContext)); - - /* &#x must be followed by 8 hexadecimal digits */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "m00;", - 10, - &testString, - plContext)); - - /* Byte values D800-DFFF are reserved */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "�", - 7, - &testString, - plContext)); - - /* Can't use &#x for regular characters */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "2", - 7, - &testString, - plContext)); - - /* Can't use non-printable characters */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "\xA1", - 1, - &testString, - plContext)); - - /* Only legal \\ characters are \\, u and U */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - "&blah", - 5, - &testString, - plContext)); - - - - /* Surrogate pairs must be legal */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_UTF16, - "\xd8\x00\x0\x66", - 4, - &testString, - plContext)); - - /* Debugged EscASCII should not be accepted as EscASCII */ - PKIX_TEST_EXPECT_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - debugAsciiString, - PL_strlen(debugAsciiString), - &testString, - plContext)); -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy( - PKIX_PL_String *string) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(string); - -cleanup: - - PKIX_TEST_RETURN(); -} - - -int test_string(int argc, char *argv[]) { - - PKIX_PL_String *testString[6] = {NULL}; - PKIX_PL_String *testNullString = NULL; - PKIX_PL_String *testDebugAscii = NULL; - PKIX_PL_String *testEscAscii = NULL; - PKIX_PL_String *testUtf16 = NULL; - PKIX_PL_String *ampString = NULL; - unsigned char utf16Data[] = {0x00, 0xA1, 0xD8, 0x00, - 0xDC, 0x00, 0x0F, 0xFF, - 0xDB, 0xC0, 0xDC, 0x01}; - PKIX_UInt32 i, size = 6; - - char *plainText[6] = { - "string with\nnewlines and\ttabs", - "Not an escaped char: &#x0012;", - "Encode & with &amp; in ASCII", - "¡", - "&", - "string with\nnewlines and\ttabs" - }; - - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Strings"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_String_Create <ascii format>"); - for (i = 0; i < size; i++) { - testString[i] = NULL; - createString - (&testString[i], - PKIX_ESCASCII, - plainText[i], - PL_strlen(plainText[i])); - } - - subTest("PKIX_PL_String_Create <other formats>"); - createStringOther - (&testEscAscii, - &testUtf16, - &String, - &testDebugAscii, - &testNullString, - (PKIX_UInt32 *)utf16Data); - - PKIX_TEST_EQ_HASH_TOSTR_DUP - (testString[0], - testString[5], - testString[1], - plainText[0], - String, - PKIX_TRUE); - - subTest("PKIX_PL_String_GetEncoded"); - testGetEncoded - (testEscAscii, - testString[0], - testDebugAscii, - testNullString, - (PKIX_UInt32 *)utf16Data); - - subTest("PKIX_PL_Sprintf"); - testSprintf(); - - subTest("PKIX_PL_String_Create <error_handling>"); - testErrorHandling(); - - subTest("PKIX_PL_String_Destroy"); - for (i = 0; i < size; i++) { - testDestroy(testString[i]); - } - testDestroy(testEscAscii); - testDestroy(testUtf16); - testDestroy(ampString); - testDestroy(testDebugAscii); - testDestroy(testNullString); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("String"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkix_pl/system/test_string2.c b/security/nss/cmd/libpkix/pkix_pl/system/test_string2.c deleted file mode 100644 index 170a945c2..000000000 --- a/security/nss/cmd/libpkix/pkix_pl/system/test_string2.c +++ /dev/null @@ -1,375 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * test_string2.c - * - * Tests International Strings - * - */ - -#include "testutil.h" -#include "testutil_nss.h" - -static void *plContext = NULL; - -static void -createString( - PKIX_PL_String **vivaEspanaString, - PKIX_PL_String **straussString, - PKIX_PL_String **gorbachevString, - PKIX_PL_String **testUTF16String, - PKIX_PL_String **chineseString, - PKIX_PL_String **jeanRenoString) -{ - /* this is meant to fail - it highlights bug 0002 */ - unsigned char utf16String[4] = { 0xF8, 0x60, - 0xFC, 0x60}; - - unsigned char chinese[16] = { 0xe7, 0xab, 0xa0, - 0xe5, 0xad, 0x90, - 0xe6, 0x80, 0xa1, - 0x20, - 0xe4, 0xb8, 0xad, - 0xe5, 0x9b, 0xbd - }; - - char* jeanReno = "Jean R\303\251no is an actor."; - char* gorbachev = /* This is the name "Gorbachev" in cyrllic */ - "\xd0\x93\xd0\xbe\xd1\x80\xd0\xb1\xd0\xb0\xd1\x87\xd1\x91\xd0\xb2"; - - char *vivaEspana = - "¡Viva España!"; - - char *strauss = - "Strauß was born in Österreich"; - - PKIX_TEST_STD_VARS(); - - /* ---------------------------- */ - subTest("String Creation"); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - vivaEspana, - PL_strlen(vivaEspana), - vivaEspanaString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_ESCASCII, - strauss, - PL_strlen(strauss), - straussString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_UTF8, - gorbachev, - PL_strlen(gorbachev), - gorbachevString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_UTF16, - utf16String, - 4, - testUTF16String, - plContext)); - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_UTF8, - chinese, - 16, - chineseString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create( - PKIX_UTF8, - jeanReno, - PL_strlen(jeanReno), - jeanRenoString, - plContext)); - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testGetEncoded(PKIX_PL_String *string, PKIX_UInt32 format) -{ - void *dest = NULL; - PKIX_UInt32 length; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded - (string, - format, - &dest, - &length, - plContext)); - - if (dest){ - (void) printf("\tResult: %s\n", (char *)dest); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - } - -cleanup: - PKIX_TEST_RETURN(); -} - - -static void -testHTMLOutput( - PKIX_PL_String *vivaEspanaString, - PKIX_PL_String *straussString, - PKIX_PL_String *gorbachevString, - PKIX_PL_String *testUTF16String, - PKIX_PL_String *chineseString, - PKIX_PL_String *jeanRenoString) -{ - void *dest = NULL; - PKIX_UInt32 length; - - FILE *htmlFile = NULL; - - PKIX_TEST_STD_VARS(); - - /* Opening a file for output */ - htmlFile = fopen("utf8.html", "w"); - - if (htmlFile != plContext) { - (void) fprintf(htmlFile, "<html><head>\n"); - (void) fprintf(htmlFile, "<meta http-equiv=\"Content-Type\""); - (void) fprintf(htmlFile, - "content = \"text/html; charset = UTF-8\">\n"); - (void) fprintf(htmlFile, "</head><body>\n"); - (void) fprintf(htmlFile, "<font size =\"+2\">\n"); - } else - (void) printf("Could not open HTML file\n"); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(testUTF16String, - PKIX_UTF8, - &dest, - &length, - plContext)); - if (htmlFile != plContext) { - (void) printf("%d bytes written to HTML file\n", - fwrite(dest, length, 1, htmlFile)); - (void) fprintf(htmlFile, "<BR>\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(chineseString, - PKIX_UTF8, - &dest, - &length, - plContext)); - if (htmlFile != plContext) { - (void) printf("%d bytes written to HTML file\n", - fwrite(dest, length, 1, htmlFile)); - (void) fprintf(htmlFile, "<BR>\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(jeanRenoString, - PKIX_UTF8, - &dest, - &length, - plContext)); - if (htmlFile != plContext) { - (void) printf("%d bytes written to HTML file\n", - fwrite(dest, length, 1, htmlFile)); - (void) fprintf(htmlFile, "<BR>\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(vivaEspanaString, - PKIX_UTF8, - &dest, - &length, - plContext)); - if (htmlFile != plContext) { - (void) printf("%d bytes written to HTML file\n", - fwrite(dest, length, 1, htmlFile)); - (void) fprintf(htmlFile, "<BR>\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(straussString, - PKIX_UTF8, - &dest, - &length, - plContext)); - if (htmlFile != plContext) { - (void) printf("%d bytes written to HTML file\n", - fwrite(dest, length, 1, htmlFile)); - (void) fprintf(htmlFile, "<BR>\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(straussString, - PKIX_UTF8, - &dest, - &length, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_GetEncoded(gorbachevString, - PKIX_UTF8, - &dest, - &length, - plContext)); - if (htmlFile != plContext) { - (void) printf("%d bytes written to HTML file\n", - fwrite(dest, length, 1, htmlFile)); - (void) fprintf(htmlFile, "<BR>\n"); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(dest, plContext)); - dest = NULL; - length = 0; - - if (htmlFile != plContext) { - (void) fprintf(htmlFile, "</font>\n"); - (void) fprintf(htmlFile, "</body></html>\n"); - (void) fclose(htmlFile); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - -static void -testDestroy( - PKIX_PL_String *string) -{ - PKIX_TEST_STD_VARS(); - - PKIX_TEST_DECREF_BC(string); - -cleanup: - - PKIX_TEST_RETURN(); -} - -int test_string2(int argc, char *argv[]) { - - PKIX_PL_String *vivaEspanaString, *straussString, *testUTF16String; - PKIX_PL_String *chineseString, *jeanRenoString, *gorbachevString; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - - PKIX_TEST_STD_VARS(); - - startTests("Unicode Strings"); - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - subTest("PKIX_PL_String_Create"); - createString(&vivaEspanaString, - &straussString, - &gorbachevString, - &testUTF16String, - &chineseString, - &jeanRenoString); - - subTest("Converting UTF-16 to EscASCII"); - testGetEncoded(testUTF16String, PKIX_ESCASCII); - - subTest("Converting UTF-8 to EscASCII"); - testGetEncoded(chineseString, PKIX_ESCASCII); - - subTest("Converting UTF-8 to EscASCII"); - testGetEncoded(jeanRenoString, PKIX_ESCASCII); - - subTest("Converting EscASCII to UTF-16"); - testGetEncoded(vivaEspanaString, PKIX_UTF16); - - subTest("Converting UTF-8 to UTF-16"); - testGetEncoded(chineseString, PKIX_UTF16); - - subTest("Creating HTML Output File \'utf8.html\'"); - testHTMLOutput(vivaEspanaString, - straussString, - gorbachevString, - testUTF16String, - chineseString, - jeanRenoString); - - subTest("Unicode Destructors"); - testDestroy(testUTF16String); - testDestroy(chineseString); - testDestroy(jeanRenoString); - testDestroy(vivaEspanaString); - testDestroy(straussString); - testDestroy(gorbachevString); - -cleanup: - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("Unicode Strings"); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/pkixlibs.mk b/security/nss/cmd/libpkix/pkixlibs.mk deleted file mode 100755 index 772fe4e8f..000000000 --- a/security/nss/cmd/libpkix/pkixlibs.mk +++ /dev/null @@ -1,60 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -ifeq (,$(filter-out WIN%,$(OS_TARGET))) - -ifdef NS_USE_GCC -EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib \ - -lpkixutil \ - $(NULL) -else # ! NS_USE_GCC -EXTRA_SHARED_LIBS += \ - $(DIST)/lib/pkixutil.lib \ - $(NULL) -endif # NS_USE_GCC - -else - -EXTRA_SHARED_LIBS += \ - -L$(DIST)/lib/ \ - -lpkixutil \ - $(NULL) - -endif - diff --git a/security/nss/cmd/libpkix/pkixrules.mk b/security/nss/cmd/libpkix/pkixrules.mk deleted file mode 100755 index b2c6f8b84..000000000 --- a/security/nss/cmd/libpkix/pkixrules.mk +++ /dev/null @@ -1,40 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -CORE_DEPTH = $(PKIX_DEPTH)/../../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. diff --git a/security/nss/cmd/libpkix/pkixutil/Makefile b/security/nss/cmd/libpkix/pkixutil/Makefile deleted file mode 100644 index c00eeffe9..000000000 --- a/security/nss/cmd/libpkix/pkixutil/Makefile +++ /dev/null @@ -1,75 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the Netscape security libraries. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1994-2000 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/pkixutil/manifest.mn b/security/nss/cmd/libpkix/pkixutil/manifest.mn deleted file mode 100644 index 00e174227..000000000 --- a/security/nss/cmd/libpkix/pkixutil/manifest.mn +++ /dev/null @@ -1,73 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the Netscape security libraries. -# -# The Initial Developer of the Original Code is -# Netscape Communications Corporation. -# Portions created by the Initial Developer are Copyright (C) 1994-2000 -# the Initial Developer. All Rights Reserved. -# -# Contributor(s): -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = .. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = \ - pkixutil.c \ - $(NULL) - -PROGRAM = pkixutil - -TOOLS_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -EXTRA_LIBS += \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolperf.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolcertsel.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolparams.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolmodule.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolpki.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolsys.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolresults.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolstore.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtooltop.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolutil.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolsmplapps.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolchecker.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtoolcrlsel.$(LIB_SUFFIX) \ - $(TOOLS_LIB_DIR)/$(LIB_PREFIX)pkixtooltestutil.$(LIB_SUFFIX) \ - $(NULL) - -NO_MD_RELEASE = 1 - -USE_STATIC_LIBS = 1 - diff --git a/security/nss/cmd/libpkix/pkixutil/pkixutil.c b/security/nss/cmd/libpkix/pkixutil/pkixutil.c deleted file mode 100644 index 6d23c7059..000000000 --- a/security/nss/cmd/libpkix/pkixutil/pkixutil.c +++ /dev/null @@ -1,335 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the Netscape security libraries. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 1994-2000 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * testwrapper.c - * - * Wrpper programm for libpkix tests. - * - */ - -#include <stdio.h> - -#include "nspr.h" -#include "plgetopt.h" - -#include "nss.h" -#include "secport.h" - -typedef int (*mainTestFn)(int argc, char* argv[]); - -extern int libpkix_buildthreads(int argc, char *argv[]); -extern int nss_threads(int argc, char *argv[]); -extern int test_certselector(int argc, char *argv[]); -extern int test_comcertselparams(int argc, char *argv[]); -extern int test_certchainchecker(int argc, char *argv[]); -extern int test_comcrlselparams(int argc, char *argv[]); -extern int test_crlselector(int argc, char *argv[]); - -/* This test fails to build. Need to fix */ -/* extern int test_buildparams(int argc, char *argv[]); */ -extern int test_procparams(int argc, char *argv[]); -extern int test_resourcelimits(int argc, char *argv[]); -extern int test_trustanchor(int argc, char *argv[]); -extern int test_valparams(int argc, char *argv[]); -extern int test_buildresult(int argc, char *argv[]); -extern int test_policynode(int argc, char *argv[]); -extern int test_valresult(int argc, char *argv[]); -extern int test_verifynode(int argc, char *argv[]); -extern int test_store(int argc, char *argv[]); -extern int test_basicchecker(int argc, char *argv[]); -extern int test_basicconstraintschecker(int argc, char *argv[]); -extern int test_buildchain(int argc, char *argv[]); -extern int test_buildchain_partialchain(int argc, char *argv[]); -extern int test_buildchain_resourcelimits(int argc, char *argv[]); -extern int test_buildchain_uchecker(int argc, char *argv[]); -extern int test_customcrlchecker(int argc, char *argv[]); -extern int test_defaultcrlchecker2stores(int argc, char *argv[]); -extern int test_ocsp(int argc, char *argv[]); -extern int test_policychecker(int argc, char *argv[]); -extern int test_subjaltnamechecker(int argc, char *argv[]); -extern int test_validatechain(int argc, char *argv[]); -extern int test_validatechain_NB(int argc, char *argv[]); -extern int test_validatechain_bc(int argc, char *argv[]); -extern int test_error(int argc, char *argv[]); -extern int test_list(int argc, char *argv[]); -extern int test_list2(int argc, char *argv[]); -extern int test_logger(int argc, char *argv[]); -extern int test_colcertstore(int argc, char *argv[]); -extern int test_ekuchecker(int argc, char *argv[]); -extern int test_httpcertstore(int argc, char *argv[]); -extern int test_pk11certstore(int argc, char *argv[]); -extern int test_socket(int argc, char *argv[]); -extern int test_authorityinfoaccess(int argc, char *argv[]); -extern int test_cert(int argc, char *argv[]); -extern int test_crl(int argc, char *argv[]); -extern int test_crlentry(int argc, char *argv[]); -extern int test_date(int argc, char *argv[]); -extern int test_generalname(int argc, char *argv[]); -extern int test_nameconstraints(int argc, char *argv[]); -extern int test_subjectinfoaccess(int argc, char *argv[]); -extern int test_x500name(int argc, char *argv[]); -extern int stress_test(int argc, char *argv[]); -extern int test_bigint(int argc, char *argv[]); -extern int test_bytearray(int argc, char *argv[]); -extern int test_hashtable(int argc, char *argv[]); -extern int test_mem(int argc, char *argv[]); -extern int test_monitorlock(int argc, char *argv[]); -extern int test_mutex(int argc, char *argv[]); -extern int test_mutex2(int argc, char *argv[]); -extern int test_mutex3(int argc, char *argv[]); -extern int test_object(int argc, char *argv[]); -extern int test_oid(int argc, char *argv[]); - -/* Taken out. Problem with build */ -/* extern int test_rwlock(int argc, char *argv[]); */ -extern int test_string(int argc, char *argv[]); -extern int test_string2(int argc, char *argv[]); -extern int build_chain(int argc, char *argv[]); -extern int dumpcert(int argc, char *argv[]); -extern int dumpcrl(int argc, char *argv[]); -extern int validate_chain(int argc, char *argv[]); - - -typedef struct { - char *fnName; - mainTestFn fnPointer; -} testFunctionRef; - -testFunctionRef testFnRefTable[] = { - {"libpkix_buildthreads", libpkix_buildthreads}, - {"nss_threads", nss_threads}, - {"test_certselector", test_certselector}, - {"test_comcertselparams", test_comcertselparams}, - {"test_certchainchecker", test_certchainchecker}, - {"test_comcrlselparams", test_comcrlselparams}, - {"test_crlselector", test_crlselector}, -/* {"test_buildparams", test_buildparams}*/ - {"test_procparams", test_procparams}, - {"test_resourcelimits", test_resourcelimits}, - {"test_trustanchor", test_trustanchor}, - {"test_valparams", test_valparams}, - {"test_buildresult", test_buildresult}, - {"test_policynode", test_policynode}, - {"test_valresult", test_valresult}, - {"test_verifynode", test_verifynode}, - {"test_store", test_store}, - {"test_basicchecker", test_basicchecker}, - {"test_basicconstraintschecker", test_basicconstraintschecker}, - {"test_buildchain", test_buildchain}, - {"test_buildchain_partialchain", test_buildchain_partialchain}, - {"test_buildchain_resourcelimits", test_buildchain_resourcelimits}, - {"test_buildchain_uchecker", test_buildchain_uchecker}, - {"test_customcrlchecker", test_customcrlchecker}, - {"test_defaultcrlchecker2stores", test_defaultcrlchecker2stores}, - {"test_ocsp", test_ocsp}, - {"test_policychecker", test_policychecker}, - {"test_subjaltnamechecker", test_subjaltnamechecker}, - {"test_validatechain", test_validatechain}, - {"test_validatechain_NB", test_validatechain_NB}, - {"test_validatechain_bc", test_validatechain_bc}, - {"test_error", test_error}, - {"test_list", test_list}, - {"test_list2", test_list2}, - {"test_logger", test_logger}, - {"test_colcertstore", test_colcertstore}, - {"test_ekuchecker", test_ekuchecker}, - {"test_httpcertstore", test_httpcertstore}, - {"test_pk11certstore", test_pk11certstore}, - {"test_socket", test_socket}, - {"test_authorityinfoaccess", test_authorityinfoaccess}, - {"test_cert", test_cert}, - {"test_crl", test_crl}, - {"test_crlentry", test_crlentry}, - {"test_date", test_date}, - {"test_generalname", test_generalname}, - {"test_nameconstraints", test_nameconstraints}, - {"test_subjectinfoaccess", test_subjectinfoaccess}, - {"test_x500name", test_x500name}, - {"stress_test", stress_test}, - {"test_bigint", test_bigint}, - {"test_bytearray", test_bytearray}, - {"test_hashtable", test_hashtable}, - {"test_mem", test_mem}, - {"test_monitorlock", test_monitorlock}, - {"test_mutex", test_mutex}, - {"test_mutex2", test_mutex2}, - {"test_mutex3", test_mutex3}, - {"test_object", test_object}, - {"test_oid", test_oid}, -/* {"test_rwlock", test_rwlock, }*/ - {"test_string", test_string}, - {"test_string2", test_string2}, - {"build_chain", build_chain}, - {"dumpcert", dumpcert}, - {"dumpcrl", dumpcrl}, - {"validate_chain", validate_chain}, - {NULL, NULL }, -}; - -static -void printUsage(char *cmdName) { - int fnCounter = 0; - - fprintf(stderr, "Usage: %s [test name] [arg1]...[argN]\n\n", cmdName); - fprintf(stderr, "List of possible names for the tests:"); - while (testFnRefTable[fnCounter].fnName != NULL) { - if (fnCounter % 2 == 0) { - fprintf(stderr, "\n"); - } - fprintf(stderr, " %-35s ", testFnRefTable[fnCounter].fnName); - fnCounter += 1; - } - fprintf(stderr, "\n"); -} - -static SECStatus -getTestArguments(int argc, - char **argv, - mainTestFn *ptestFn, - char **pdbPath, - int *pargc, - char ***pargv) -{ - PLOptState *optstate = NULL; - PLOptStatus status; - mainTestFn testFunction = NULL; - char **wArgv = NULL; - char *dbPath = NULL; - char *fnName = NULL; - int wArgc = 0; - int fnCounter = 0; - - if (argc < 2) { - printf("ERROR: insufficient number of arguments: %s.\n", fnName); - return SECFailure; - } - - fnName = argv[1]; - while (testFnRefTable[fnCounter].fnName != NULL) { - if (!PORT_Strcmp(fnName, testFnRefTable[fnCounter].fnName)) { - testFunction = testFnRefTable[fnCounter].fnPointer; - break; - } - fnCounter += 1; - } - if (!testFunction) { - printf("ERROR: unknown name of the test: %s.\n", fnName); - return SECFailure; - } - - wArgv = PORT_ZNewArray(char*, argc); - if (!wArgv) { - return SECFailure; - } - - /* set name of the function as a first arg and increment arg count. */ - wArgv[0] = fnName; - wArgc += 1; - - optstate = PL_CreateOptState(argc - 1, argv + 1, "d:"); - while ((status = PL_GetNextOpt(optstate)) == PL_OPT_OK) { - switch (optstate->option) { - case 'd': - dbPath = (char*)optstate->value; - break; - - default: - wArgv[wArgc] = (char*)optstate->value; - wArgc += 1; - break; - } - } - PL_DestroyOptState(optstate); - - *ptestFn = testFunction; - *pdbPath = dbPath; - *pargc = wArgc; - *pargv = wArgv; - - return SECSuccess; -} - - -static -int runCmd(mainTestFn fnPointer, - int argc, - char **argv, - char *dbPath) -{ - int retStat = 0; - - /* Initialize NSPR and NSS. */ - PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1); - - /* if using databases, use NSS_Init and not NSS_NoDB_Init */ - if (dbPath && PORT_Strlen(dbPath) != 0) { - if (NSS_Init(dbPath) != SECSuccess) - return SECFailure; - } else { - if (NSS_NoDB_Init(NULL) != 0) - return SECFailure; - } - retStat = fnPointer(argc, argv); - - if (NSS_Shutdown() != SECSuccess) { - exit(1); - } - PR_Cleanup(); - return retStat; -} - -int main(int argc, char **argv) { - mainTestFn testFunction = NULL; - char *dbPath = NULL; - char **testArgv = NULL; - int testArgc = 0; - int rv = 0; - - rv = getTestArguments(argc, argv, &testFunction, &dbPath, - &testArgc, &testArgv); - if (rv != SECSuccess) { - printUsage(argv[0]); - return 1; - } - - rv = runCmd(testFunction, testArgc, testArgv, dbPath); - - PORT_Free(testArgv); - - return rv; -} - diff --git a/security/nss/cmd/libpkix/sample_apps/Makefile b/security/nss/cmd/libpkix/sample_apps/Makefile deleted file mode 100755 index ef8ff219f..000000000 --- a/security/nss/cmd/libpkix/sample_apps/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platrules.mk diff --git a/security/nss/cmd/libpkix/sample_apps/build_chain.c b/security/nss/cmd/libpkix/sample_apps/build_chain.c deleted file mode 100644 index 52e7c0a83..000000000 --- a/security/nss/cmd/libpkix/sample_apps/build_chain.c +++ /dev/null @@ -1,298 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * buildChain.c - * - * Tests Cert Chain Building - * - */ - -#include <stdio.h> -#include <string.h> -#include <stddef.h> - -#include "pkix_pl_generalname.h" -#include "pkix_pl_cert.h" -#include "pkix.h" -#include "testutil.h" -#include "prlong.h" -#include "plstr.h" -#include "prthread.h" -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "pk11func.h" -#include "secasn1.h" -#include "cert.h" -#include "cryptohi.h" -#include "secoid.h" -#include "certdb.h" -#include "secitem.h" -#include "keythi.h" -#include "nss.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\tbuildChain " - "<trustedCert> <targetCert> <certStoreDirectory>\n\n"); - (void) printf - ("Builds a chain of certificates between " - "<trustedCert> and <targetCert>\n" - "using the certs and CRLs in <certStoreDirectory>.\n"); -} - -static PKIX_PL_Cert * -createCert(char *inFileName) -{ - PKIX_PL_ByteArray *byteArray = NULL; - void *buf = NULL; - PRFileDesc *inFile = NULL; - PKIX_UInt32 len; - SECItem certDER; - SECStatus rv; - /* default: NULL cert (failure case) */ - PKIX_PL_Cert *cert = NULL; - - PKIX_TEST_STD_VARS(); - - certDER.data = NULL; - - inFile = PR_Open(inFileName, PR_RDONLY, 0); - - if (!inFile){ - pkixTestErrorMsg = "Unable to open cert file"; - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&certDER, inFile, PR_FALSE); - if (!rv){ - buf = (void *)certDER.data; - len = certDER.len; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_Create - (byteArray, &cert, plContext)); - - SECITEM_FreeItem(&certDER, PR_FALSE); - } else { - pkixTestErrorMsg = "Unable to read DER from cert file"; - goto cleanup; - } - } - -cleanup: - - if (inFile){ - PR_Close(inFile); - } - - if (PKIX_TEST_ERROR_RECEIVED){ - SECITEM_FreeItem(&certDER, PR_FALSE); - } - - PKIX_TEST_DECREF_AC(byteArray); - - PKIX_TEST_RETURN(); - - return (cert); -} - -int build_chain(int argc, char *argv[]) -{ - PKIX_BuildResult *buildResult = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *certs = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_ProcessingParams *procParams = NULL; - char *trustedCertFile = NULL; - char *targetCertFile = NULL; - char *storeDirAscii = NULL; - PKIX_PL_String *storeDirString = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *targetCert = NULL; - PKIX_UInt32 actualMinorVersion, numCerts, i; - PKIX_UInt32 j = 0; - PKIX_CertStore *certStore = NULL; - PKIX_List *certStores = NULL; - char * asciiResult = NULL; - PKIX_Boolean useArenas = PKIX_FALSE; - void *buildState = NULL; /* needed by pkix_build for non-blocking I/O */ - void *nbioContext = NULL; - - PKIX_TEST_STD_VARS(); - - if (argc < 4){ - printUsage(); - return (0); - } - - useArenas = PKIX_TEST_ARENAS_ARG(argv[1]); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_Initialize - (PKIX_TRUE, /* nssInitNeeded */ - useArenas, - PKIX_MAJOR_VERSION, - PKIX_MINOR_VERSION, - PKIX_MINOR_VERSION, - &actualMinorVersion, - &plContext)); - - /* create processing params with list of trust anchors */ - trustedCertFile = argv[j+1]; - trustedCert = createCert(trustedCertFile); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - - /* create CertSelector with target certificate in params */ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - - targetCertFile = argv[j+2]; - targetCert = createCert(targetCertFile); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_SetCertificate - (certSelParams, targetCert, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create(NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - /* create CertStores */ - - storeDirAscii = argv[j+3]; - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, storeDirAscii, 0, &storeDirString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_CollectionCertStore_Create - (storeDirString, &certStore, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certStores, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certStores, (PKIX_PL_Object *)certStore, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetCertStores - (procParams, certStores, plContext)); - - /* build cert chain using processing params and return buildResult */ - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_BuildChain - (procParams, - &nbioContext, - &buildState, - &buildResult, - NULL, - plContext)); - - /* - * As long as we use only CertStores with blocking I/O, we can omit - * checking for completion with nbioContext. - */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_BuildResult_GetCertChain(buildResult, &certs, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetLength(certs, &numCerts, plContext)); - - printf("\n"); - - for (i = 0; i < numCerts; i++){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_GetItem - (certs, i, (PKIX_PL_Object**)&cert, plContext)); - - asciiResult = PKIX_Cert2ASCII(cert); - - printf("CERT[%d]:\n%s\n", i, asciiResult); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(asciiResult, plContext)); - asciiResult = NULL; - - PKIX_TEST_DECREF_BC(cert); - } - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - (void) printf("FAILED TO BUILD CHAIN\n"); - } else { - (void) printf("SUCCESSFULLY BUILT CHAIN\n"); - } - - PKIX_PL_Free(asciiResult, plContext); - - PKIX_TEST_DECREF_AC(certs); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(certStore); - PKIX_TEST_DECREF_AC(certStores); - PKIX_TEST_DECREF_AC(storeDirString); - PKIX_TEST_DECREF_AC(trustedCert); - PKIX_TEST_DECREF_AC(targetCert); - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(anchors); - PKIX_TEST_DECREF_AC(procParams); - PKIX_TEST_DECREF_AC(certSelParams); - PKIX_TEST_DECREF_AC(certSelector); - PKIX_TEST_DECREF_AC(buildResult); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/sample_apps/dumpcert.c b/security/nss/cmd/libpkix/sample_apps/dumpcert.c deleted file mode 100644 index af1035365..000000000 --- a/security/nss/cmd/libpkix/sample_apps/dumpcert.c +++ /dev/null @@ -1,217 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * dumpcert.c - * - * dump certificate sample application - * - */ - -#include <stdio.h> - -#include "pkix.h" -#include "testutil.h" -#include "prlong.h" -#include "plstr.h" -#include "prthread.h" -#include "plarena.h" -#include "seccomon.h" -#include "secdert.h" -#include "secasn1t.h" -#include "certt.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\tdumpcert <certFile>\n"); - (void) printf("\tParses a certificate located at <certFile> " - "and displays it.\n"); -} - -static -void printFailure(char *msg){ - (void) printf("FAILURE: %s\n", msg); -} - -static PKIX_PL_Cert * -createCert(char *inFileName) -{ - PKIX_PL_ByteArray *byteArray = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_Error *error = NULL; - PRFileDesc *inFile = NULL; - SECItem certDER; - void *buf = NULL; - PKIX_UInt32 len; - SECStatus rv = SECFailure; - - certDER.data = NULL; - - inFile = PR_Open(inFileName, PR_RDONLY, 0); - - if (!inFile){ - printFailure("Unable to open cert file"); - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&certDER, inFile, PR_FALSE); - if (!rv){ - buf = (void *)certDER.data; - len = certDER.len; - - error = PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext); - - if (error){ - printFailure("PKIX_PL_ByteArray_Create failed"); - goto cleanup; - } - - error = PKIX_PL_Cert_Create - (byteArray, &cert, plContext); - - if (error){ - printFailure("PKIX_PL_Cert_Create failed"); - goto cleanup; - } - } else { - printFailure("Unable to read DER from cert file"); - goto cleanup; - } - } - -cleanup: - - if (inFile){ - PR_Close(inFile); - } - - if (rv == SECSuccess){ - SECITEM_FreeItem(&certDER, PR_FALSE); - } - - if (byteArray){ - PKIX_PL_Object_DecRef((PKIX_PL_Object *)(byteArray), plContext); - } - - return (cert); -} - -int dumpcert(int argc, char *argv[]) -{ - - PKIX_PL_String *string = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_Error *error = NULL; - char *ascii = NULL; - PKIX_UInt32 length = 0; - PKIX_UInt32 j = 0; - PKIX_Boolean useArenas = PKIX_FALSE; - PKIX_UInt32 actualMinorVersion; - - PKIX_TEST_STD_VARS(); - - if (argc == 1){ - printUsage(); - return (0); - } - - useArenas = PKIX_TEST_ARENAS_ARG(argv[1]); - - PKIX_Initialize - (PKIX_TRUE, /* nssInitNeeded */ - useArenas, - PKIX_MAJOR_VERSION, - PKIX_MINOR_VERSION, - PKIX_MINOR_VERSION, - &actualMinorVersion, - &plContext); - - cert = createCert(argv[1+j]); - - if (cert){ - - error = PKIX_PL_Object_ToString - ((PKIX_PL_Object *)cert, &string, plContext); - - if (error){ - printFailure("Unable to get string representation " - "of cert"); - goto cleanup; - } - - error = PKIX_PL_String_GetEncoded - (string, - PKIX_ESCASCII, - (void **)&ascii, - &length, - plContext); - - if (error || !ascii){ - printFailure("Unable to get ASCII encoding of string"); - goto cleanup; - } - - (void) printf("OUTPUT:\n%s\n", ascii); - - } else { - printFailure("Unable to create certificate"); - goto cleanup; - } - -cleanup: - - if (cert){ - PKIX_PL_Object_DecRef((PKIX_PL_Object *)(cert), plContext); - } - - if (string){ - PKIX_PL_Object_DecRef((PKIX_PL_Object *)(string), plContext); - } - - if (ascii){ - PKIX_PL_Free((PKIX_PL_Object *)(ascii), plContext); - } - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("DUMPCERT"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/sample_apps/dumpcrl.c b/security/nss/cmd/libpkix/sample_apps/dumpcrl.c deleted file mode 100644 index 26e20f125..000000000 --- a/security/nss/cmd/libpkix/sample_apps/dumpcrl.c +++ /dev/null @@ -1,220 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * dumpcrl.c - * - * dump CRL sample application - * - */ - -#include <stdio.h> - -#include "pkix.h" -#include "testutil.h" -#include "prlong.h" -#include "plstr.h" -#include "prthread.h" -#include "plarena.h" -#include "seccomon.h" -#include "secdert.h" -#include "secasn1t.h" -#include "certt.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\tdumpcrl <crlFile>\n"); - (void) printf("\tParses a CRL located at <crlFile> " - "and displays it.\n"); -} - -static -void printFailure(char *msg){ - (void) printf("FAILURE: %s\n", msg); -} - -static PKIX_PL_CRL * -createCRL(char *inFileName) -{ - PKIX_PL_ByteArray *byteArray = NULL; - PKIX_PL_CRL *crl = NULL; - PKIX_Error *error = NULL; - PRFileDesc *inFile = NULL; - SECItem crlDER; - void *buf = NULL; - PKIX_UInt32 len; - SECStatus rv; - - PKIX_TEST_STD_VARS(); - - crlDER.data = NULL; - - inFile = PR_Open(inFileName, PR_RDONLY, 0); - - if (!inFile){ - printFailure("Unable to open crl file"); - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&crlDER, inFile, PR_FALSE); - if (!rv){ - buf = (void *)crlDER.data; - len = crlDER.len; - - error = PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext); - - if (error){ - printFailure("PKIX_PL_ByteArray_Create failed"); - goto cleanup; - } - - error = PKIX_PL_CRL_Create(byteArray, &crl, plContext); - if (error){ - printFailure("PKIX_PL_CRL_Create failed"); - goto cleanup; - } - - SECITEM_FreeItem(&crlDER, PR_FALSE); - } else { - printFailure("Unable to read DER from crl file"); - goto cleanup; - } - } - -cleanup: - - if (inFile){ - PR_Close(inFile); - } - - if (error){ - SECITEM_FreeItem(&crlDER, PR_FALSE); - } - - if (byteArray){ - PKIX_PL_Object_DecRef((PKIX_PL_Object *)(byteArray), plContext); - } - - PKIX_TEST_RETURN(); - - return (crl); -} - -int dumpcrl(int argc, char *argv[]) -{ - - PKIX_PL_String *string = NULL; - PKIX_PL_CRL *crl = NULL; - PKIX_Error *error = NULL; - char *ascii = NULL; - PKIX_UInt32 length; - PKIX_UInt32 actualMinorVersion; - PKIX_UInt32 j = 0; - PKIX_Boolean useArenas = PKIX_FALSE; - - PKIX_TEST_STD_VARS(); - - if (argc == 1){ - printUsage(); - return (0); - } - - useArenas = PKIX_TEST_ARENAS_ARG(argv[1]); - - PKIX_Initialize - (PKIX_TRUE, /* nssInitNeeded */ - useArenas, - PKIX_MAJOR_VERSION, - PKIX_MINOR_VERSION, - PKIX_MINOR_VERSION, - &actualMinorVersion, - &plContext); - - crl = createCRL(argv[j+1]); - - if (crl){ - - error = PKIX_PL_Object_ToString - ((PKIX_PL_Object *)crl, &string, plContext); - - if (error){ - printFailure("Unable to get string representation " - "of crl"); - goto cleanup; - } - - error = PKIX_PL_String_GetEncoded - (string, - PKIX_ESCASCII, - (void **)&ascii, - &length, - plContext); - if (error || !ascii){ - printFailure("Unable to get ASCII encoding of string"); - goto cleanup; - } - - (void) printf("OUTPUT:\n%s\n", ascii); - - } else { - printFailure("Unable to create CRL"); - goto cleanup; - } - -cleanup: - - if (crl){ - PKIX_PL_Object_DecRef((PKIX_PL_Object *)(crl), plContext); - } - - if (string){ - PKIX_PL_Object_DecRef((PKIX_PL_Object *)(string), plContext); - } - - if (ascii){ - PKIX_PL_Free((PKIX_PL_Object *)(ascii), plContext); - } - - PKIX_Shutdown(plContext); - - PKIX_TEST_RETURN(); - - endTests("DUMPCRL"); - - return (0); -} diff --git a/security/nss/cmd/libpkix/sample_apps/manifest.mn b/security/nss/cmd/libpkix/sample_apps/manifest.mn deleted file mode 100755 index 2e9cda0e1..000000000 --- a/security/nss/cmd/libpkix/sample_apps/manifest.mn +++ /dev/null @@ -1,56 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# htt/www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = .. -PLAT_DEPTH = $(PKIX_DEPTH)/.. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. - -# MODULE public and private header directories are implicitly REQUIRED. -MODULE = nss - -CSRCS = dumpcert.c \ - dumpcrl.c \ - validate_chain.c \ - build_chain.c \ - $(NULL) - -LIBRARY_NAME=pkixtoolsmplapps - -SOURCE_LIB_DIR=$(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/sample_apps/validate_chain.c b/security/nss/cmd/libpkix/sample_apps/validate_chain.c deleted file mode 100644 index c580399bb..000000000 --- a/security/nss/cmd/libpkix/sample_apps/validate_chain.c +++ /dev/null @@ -1,267 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * validateChain.c - * - * Tests Cert Chain Validation - * - */ - -#include <stdio.h> -#include <string.h> -#include <stddef.h> - -#include "pkix_pl_generalname.h" -#include "pkix_pl_cert.h" -#include "pkix.h" -#include "testutil.h" -#include "prlong.h" -#include "plstr.h" -#include "prthread.h" -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "pk11func.h" -#include "secasn1.h" -#include "cert.h" -#include "cryptohi.h" -#include "secoid.h" -#include "certdb.h" -#include "secitem.h" -#include "keythi.h" -#include "nss.h" - -static void *plContext = NULL; - -static -void printUsage(void){ - (void) printf("\nUSAGE:\tvalidateChain <trustedCert> " - "<cert_1> <cert_2> ... <cert_n>\n"); - (void) printf("\tValidates a chain of n certificates " - "using the given trust anchor.\n"); - -} - -static PKIX_PL_Cert * -createCert(char *inFileName) -{ - PKIX_PL_ByteArray *byteArray = NULL; - void *buf = NULL; - PRFileDesc *inFile = NULL; - PKIX_UInt32 len; - SECItem certDER; - SECStatus rv; - /* default: NULL cert (failure case) */ - PKIX_PL_Cert *cert = NULL; - - PKIX_TEST_STD_VARS(); - - certDER.data = NULL; - - inFile = PR_Open(inFileName, PR_RDONLY, 0); - - if (!inFile){ - pkixTestErrorMsg = "Unable to open cert file"; - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&certDER, inFile, PR_FALSE); - if (!rv){ - buf = (void *)certDER.data; - len = certDER.len; - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_Create - (byteArray, &cert, plContext)); - - SECITEM_FreeItem(&certDER, PR_FALSE); - } else { - pkixTestErrorMsg = "Unable to read DER from cert file"; - goto cleanup; - } - } - -cleanup: - - if (inFile){ - PR_Close(inFile); - } - - if (PKIX_TEST_ERROR_RECEIVED){ - SECITEM_FreeItem(&certDER, PR_FALSE); - } - - PKIX_TEST_DECREF_AC(byteArray); - - PKIX_TEST_RETURN(); - - return (cert); -} - -int validate_chain(int argc, char *argv[]) -{ - PKIX_TrustAnchor *anchor = NULL; - PKIX_List *anchors = NULL; - PKIX_List *certs = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_ValidateParams *valParams = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_PL_X500Name *subject = NULL; - PKIX_ComCertSelParams *certSelParams = NULL; - PKIX_CertSelector *certSelector = NULL; - PKIX_VerifyNode *verifyTree = NULL; - PKIX_PL_String *verifyString = NULL; - - char *trustedCertFile = NULL; - char *chainCertFile = NULL; - PKIX_PL_Cert *trustedCert = NULL; - PKIX_PL_Cert *chainCert = NULL; - PKIX_UInt32 chainLength = 0; - PKIX_UInt32 i = 0; - PKIX_UInt32 j = 0; - PKIX_UInt32 actualMinorVersion; - - PKIX_TEST_STD_VARS(); - - if (argc < 3){ - printUsage(); - return (0); - } - - PKIX_TEST_EXPECT_NO_ERROR( - PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext)); - - chainLength = (argc - j) - 2; - - /* create processing params with list of trust anchors */ - trustedCertFile = argv[1+j]; - trustedCert = createCert(trustedCertFile); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Cert_GetSubject(trustedCert, &subject, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ComCertSelParams_Create(&certSelParams, plContext)); - -#if 0 - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCertSelParams_SetSubject - (certSelParams, subject, plContext)); -#endif - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_CertSelector_Create - (NULL, NULL, &certSelector, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_CertSelector_SetCommonCertSelectorParams - (certSelector, certSelParams, plContext)); - - PKIX_TEST_DECREF_BC(subject); - PKIX_TEST_DECREF_BC(certSelParams); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (trustedCert, &anchor, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchors, plContext)); - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_List_AppendItem - (anchors, (PKIX_PL_Object *)anchor, plContext)); - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchors, &procParams, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetTargetCertConstraints - (procParams, certSelector, plContext)); - - PKIX_TEST_DECREF_BC(certSelector); - - /* create cert chain */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certs, plContext)); - for (i = 0; i < chainLength; i++){ - chainCertFile = argv[(i + j) + 2]; - chainCert = createCert(chainCertFile); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certs, - (PKIX_PL_Object *)chainCert, - plContext)); - - PKIX_TEST_DECREF_BC(chainCert); - chainCert = NULL; - } - /* create validate params with processing params and cert chain */ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_Create - (procParams, certs, &valParams, plContext)); - - PKIX_TEST_DECREF_BC(trustedCert); trustedCert = NULL; - PKIX_TEST_DECREF_BC(anchor); anchor = NULL; - PKIX_TEST_DECREF_BC(anchors); anchors = NULL; - PKIX_TEST_DECREF_BC(certs); certs = NULL; - PKIX_TEST_DECREF_BC(procParams); procParams = NULL; - - /* validate cert chain using processing params and return valResult */ - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ValidateChain(valParams, &valResult, &verifyTree, plContext)); - - if (valResult != NULL){ - (void) printf("SUCCESSFULLY VALIDATED\n"); - } - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - (void) printf("FAILED TO VALIDATE\n"); - (void) PKIX_PL_Object_ToString - ((PKIX_PL_Object*)verifyTree, &verifyString, plContext); - (void) printf("verifyTree is\n%s\n", verifyString->escAsciiString); - PKIX_TEST_DECREF_AC(verifyString); - - } - - PKIX_TEST_DECREF_AC(verifyTree); - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(valParams); - - PKIX_TEST_RETURN(); - - PKIX_Shutdown(plContext); - - return (0); - -} diff --git a/security/nss/cmd/libpkix/testutil/Makefile b/security/nss/cmd/libpkix/testutil/Makefile deleted file mode 100755 index ea5fd90a6..000000000 --- a/security/nss/cmd/libpkix/testutil/Makefile +++ /dev/null @@ -1,84 +0,0 @@ -#! gmake -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -####################################################################### -# (1) Include initial platform-independent assignments (MANDATORY). # -####################################################################### - -include manifest.mn - -####################################################################### -# (2) Include "global" configuration information. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/config.mk - -####################################################################### -# (3) Include "component" configuration information. (OPTIONAL) # -####################################################################### - -include $(PKIX_DEPTH)/config.mk - -####################################################################### -# (4) Include "local" platform-dependent assignments (OPTIONAL). # -####################################################################### - -include $(PLAT_DEPTH)/platlibs.mk - -####################################################################### -# (5) Execute "global" rules. (OPTIONAL) # -####################################################################### - -include $(CORE_DEPTH)/coreconf/rules.mk - -####################################################################### -# (6) Execute "component" rules. (OPTIONAL) # -####################################################################### - - - -####################################################################### -# (7) Execute "local" rules. (OPTIONAL). # -####################################################################### - - -include $(PLAT_DEPTH)/platrules.mk - -export:: private_export - diff --git a/security/nss/cmd/libpkix/testutil/config.mk b/security/nss/cmd/libpkix/testutil/config.mk deleted file mode 100644 index 46978a032..000000000 --- a/security/nss/cmd/libpkix/testutil/config.mk +++ /dev/null @@ -1,48 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -# don't build the static library -LIBRARY = - -ifeq (,$(filter-out WIN%,$(OS_TARGET))) - -# don't want the 32 in the shared library name -SHARED_LIBRARY = $(OBJDIR)/$(DLL_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION).$(DLL_SUFFIX) -IMPORT_LIBRARY = $(OBJDIR)/$(IMPORT_LIB_PREFIX)$(LIBRARY_NAME)$(LIBRARY_VERSION)$(IMPORT_LIB_SUFFIX) - -endif diff --git a/security/nss/cmd/libpkix/testutil/manifest.mn b/security/nss/cmd/libpkix/testutil/manifest.mn deleted file mode 100755 index c40c467df..000000000 --- a/security/nss/cmd/libpkix/testutil/manifest.mn +++ /dev/null @@ -1,59 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -# -# The contents of this file are subject to the Mozilla Public License Version -# 1.1 (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is the PKIX-C library. -# -# The Initial Developer of the Original Code is -# Sun Microsystems, Inc. -# Portions created by the Initial Developer are -# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -# -# Contributor(s): -# Sun Microsystems, Inc. -# -# Alternatively, the contents of this file may be used under the terms of -# either the GNU General Public License Version 2 or later (the "GPL"), or -# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -# in which case the provisions of the GPL or the LGPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of either the GPL or the LGPL, and not to allow others to -# use your version of this file under the terms of the MPL, indicate your -# decision by deleting the provisions above and replace them with the notice -# and other provisions required by the GPL or the LGPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the MPL, the GPL or the LGPL. -# -# ***** END LICENSE BLOCK ***** - -PKIX_DEPTH = .. -CORE_DEPTH = $(PKIX_DEPTH)/../../.. -PLAT_DEPTH = $(PKIX_DEPTH)/.. - -MODULE = nss - -PRIVATE_EXPORTS = \ - testutil_nss.h \ - testutil.h \ - $(NULL) - -CSRCS = \ - testutil_nss.c \ - testutil.c \ - $(NULL) - -LIBRARY_NAME = pkixtooltestutil - -SOURCE_LIB_DIR = $(PKIX_DEPTH)/$(OBJDIR) - -NO_MD_RELEASE = 1 diff --git a/security/nss/cmd/libpkix/testutil/pkixutil.def b/security/nss/cmd/libpkix/testutil/pkixutil.def deleted file mode 100644 index eed954ac5..000000000 --- a/security/nss/cmd/libpkix/testutil/pkixutil.def +++ /dev/null @@ -1,81 +0,0 @@ -;+# -;+# ***** BEGIN LICENSE BLOCK ***** -;+# Version: MPL 1.1/GPL 2.0/LGPL 2.1 -;+# -;+# The contents of this file are subject to the Mozilla Public License Version -;+# 1.1 (the "License"); you may not use this file except in compliance with -;+# the License. You may obtain a copy of the License at -;+# http://www.mozilla.org/MPL/ -;+# -;+# Software distributed under the License is distributed on an "AS IS" basis, -;+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -;+# for the specific language governing rights and limitations under the -;+# License. -;+# -;+# The Original Code is the PKIX-C library. -;+# -;+# The Initial Developer of the Original Code is -;+# Sun Microsystems, Inc. -;+# Portions created by the Initial Developer are Copyright (C) 2000 -;+# Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. -;+# -# Contributor(s): -# Sun Microsystems, Inc. -;+# -;+# Alternatively, the contents of this file may be used under the terms of -;+# either the GNU General Public License Version 2 or later (the "GPL"), or -;+# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), -;+# in which case the provisions of the GPL or the LGPL are applicable instead -;+# of those above. If you wish to allow use of your version of this file only -;+# under the terms of either the GPL or the LGPL, and not to allow others to -;+# use your version of this file under the terms of the MPL, indicate your -;+# decision by deleting the provisions above and replace them with the notice -;+# and other provisions required by the GPL or the LGPL. If you do not delete -;+# the provisions above, a recipient may use your version of this file under -;+# the terms of any one of the MPL, the GPL or the LGPL. -;+# -;+# ***** END LICENSE BLOCK ***** -;+# -;+# 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.12 { # NSS 3.12 release -;+ global: -LIBRARY pkixutil ;- -EXPORTS ;- -createBuildResult; -createCRL; -createCert; -createCertChain; -createCertChainPlus; -createDate; -createGeneralName; -createProcessingParams; -createTrustAnchor; -createValidateParams; -createValidateResult; -endTests; -startTests; -subTest; -testDuplicateHelper; -testEqualsHelper; -testError; -testErrorUndo; -testHashcodeHelper; -testToStringHelper; -PKIX_Cert2ASCII; -PKIX_Error2ASCII; -PKIX_String2ASCII; -;+ local: -;+ *; -;+}; diff --git a/security/nss/cmd/libpkix/testutil/testutil.c b/security/nss/cmd/libpkix/testutil/testutil.c deleted file mode 100755 index 266f2ca48..000000000 --- a/security/nss/cmd/libpkix/testutil/testutil.c +++ /dev/null @@ -1,619 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * testutil.c - * - * Utility error handling functions - * - */ - -#include "testutil.h" - -/* - * static global variable to keep track of total number of errors for - * a particular test suite (eg. all the OID tests) - */ -static int errCount = 0; - -/* - * FUNCTION: startTests - * DESCRIPTION: - * - * Prints standard message for starting the test suite with the name pointed - * to by "testName". This function should be called in the beginning of every - * test suite. - * - * PARAMETERS: - * "testName" - * Address of string representing name of test suite. - * THREAD SAFETY: - * Not Thread Safe - assumes exclusive access to "errCount" - * (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -startTests(char *testName) -{ - (void) printf("*START OF TESTS FOR %s:\n", testName); - errCount = 0; -} - -/* - * FUNCTION: endTests - * DESCRIPTION: - * - * Prints standard message for ending the test suite with the name pointed - * to by "testName", followed by a success/failure message. This function - * should be called at the end of every test suite. - * - * PARAMETERS: - * "testName" - * Address of string representing name of test suite. - * THREAD SAFETY: - * Not Thread Safe - assumes exclusive access to "errCount" - * (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -endTests(char *testName) -{ - char plural = ' '; - - (void) printf("*END OF TESTS FOR %s: ", testName); - if (errCount > 0) { - if (errCount > 1) plural = 's'; - (void) printf("%d SUBTEST%c FAILED.\n\n", errCount, plural); - } else { - (void) printf("ALL TESTS COMPLETED SUCCESSFULLY.\n\n"); - } -} - -/* - * FUNCTION: subTest - * DESCRIPTION: - * - * Prints standard message for starting the subtest with the name pointed to - * by "subTestName". This function should be called at the beginning of each - * subtest. - * - * PARAMETERS: - * "subTestName" - * Address of string representing name of subTest. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -subTest(char *subTestName) -{ - (void) printf("TESTING: %s ...\n", subTestName); -} - -/* - * FUNCTION: testErrorUndo - * DESCRIPTION: - * - * Decrements the global variable "errCount" and prints a test failure - * expected message followed by the string pointed to by "msg". This function - * should be called when an expected error condition is encountered in the - * tests. Calling this function *correct* the previous errCount increment. - * It should only be called ONCE per subtest. - * - * PARAMETERS: - * "msg" - * Address of text of error message. - * THREAD SAFETY: - * Not Thread Safe - assumes exclusive access to "errCount" - * (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -testErrorUndo(char *msg) -{ - --errCount; - (void) printf("TEST FAILURE *** EXPECTED *** :%s\n", msg); -} - -/* - * FUNCTION: testError - * DESCRIPTION: - * - * Increments the global variable "errCount" and prints a standard test - * failure message followed by the string pointed to by "msg". This function - * should be called when an unexpected error condition is encountered in the - * tests. It should only be called ONCE per subtest. - * - * PARAMETERS: - * "msg" - * Address of text of error message. - * THREAD SAFETY: - * Not Thread Safe - assumes exclusive access to "errCount" - * (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -testError(char *msg) -{ - ++errCount; - (void) printf("TEST FAILURE: %s\n", msg); -} - -/* - * FUNCTION: PKIX_String2ASCII - * DESCRIPTION: - * - * Converts String object pointed to by "string" to its ASCII representation - * and returns the converted value. Returns NULL upon failure. - * - * XXX Might want to use ESCASCII_DEBUG to show control characters, etc. - * - * PARAMETERS: - * "string" - * Address of String to be converted to ASCII. Must be non-NULL. - * "plContext" - * Platform-specific context pointer. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns the ASCII representation of "string" upon success; - * NULL upon failure. - */ -char * -PKIX_String2ASCII(PKIX_PL_String *string, void *plContext) -{ - PKIX_UInt32 length; - char *asciiString = NULL; - PKIX_Error *errorResult; - - errorResult = PKIX_PL_String_GetEncoded - (string, - PKIX_ESCASCII, - (void **)&asciiString, - &length, - plContext); - - if (errorResult) goto cleanup; - -cleanup: - - if (errorResult){ - return (NULL); - } - - return (asciiString); - -} - -/* - * FUNCTION: PKIX_Error2ASCII - * DESCRIPTION: - * - * Converts Error pointed to by "error" to its ASCII representation and - * returns the converted value. Returns NULL upon failure. - * - * PARAMETERS: - * "error" - * Address of Error to be converted to ASCII. Must be non-NULL. - * "plContext" - * Platform-specific context pointer. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns the ASCII representation of "error" upon success; - * NULL upon failure. - */ -char * -PKIX_Error2ASCII(PKIX_Error *error, void *plContext) -{ - PKIX_UInt32 length; - char *asciiString = NULL; - PKIX_PL_String *pkixString = NULL; - PKIX_Error *errorResult = NULL; - - errorResult = PKIX_PL_Object_ToString - ((PKIX_PL_Object*)error, &pkixString, plContext); - if (errorResult) goto cleanup; - - errorResult = PKIX_PL_String_GetEncoded - (pkixString, - PKIX_ESCASCII, - (void **)&asciiString, - &length, - plContext); - -cleanup: - - if (pkixString){ - if (PKIX_PL_Object_DecRef - ((PKIX_PL_Object*)pkixString, plContext)){ - return (NULL); - } - } - - if (errorResult){ - return (NULL); - } - - return (asciiString); -} - -/* - * FUNCTION: PKIX_Object2ASCII - * DESCRIPTION: - * - * Converts Object pointed to by "object" to its ASCII representation and - * returns the converted value. Returns NULL upon failure. - * - * PARAMETERS: - * "object" - * Address of Object to be converted to ASCII. Must be non-NULL. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns the ASCII representation of "object" upon success; - * NULL upon failure. - */ -char * -PKIX_Object2ASCII(PKIX_PL_Object *object) -{ - PKIX_UInt32 length; - char *asciiString = NULL; - PKIX_PL_String *pkixString = NULL; - PKIX_Error *errorResult = NULL; - - errorResult = PKIX_PL_Object_ToString - (object, &pkixString, NULL); - if (errorResult) goto cleanup; - - errorResult = PKIX_PL_String_GetEncoded - (pkixString, PKIX_ESCASCII, (void **)&asciiString, &length, NULL); - -cleanup: - - if (pkixString){ - if (PKIX_PL_Object_DecRef((PKIX_PL_Object*)pkixString, NULL)){ - return (NULL); - } - } - - if (errorResult){ - return (NULL); - } - - return (asciiString); -} - -/* - * FUNCTION: PKIX_Cert2ASCII - * DESCRIPTION: - * - * Converts Cert pointed to by "cert" to its partial ASCII representation and - * returns the converted value. Returns NULL upon failure. - * - * PARAMETERS: - * "cert" - * Address of Cert to be converted to ASCII. Must be non-NULL. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns the partial ASCII representation of "cert" upon success; - * NULL upon failure. - */ -char * -PKIX_Cert2ASCII(PKIX_PL_Cert *cert) -{ - PKIX_PL_X500Name *issuer = NULL; - void *issuerAscii = NULL; - PKIX_PL_X500Name *subject = NULL; - void *subjectAscii = NULL; - void *asciiString = NULL; - PKIX_Error *errorResult = NULL; - PKIX_UInt32 numChars; - - /* Issuer */ - errorResult = PKIX_PL_Cert_GetIssuer(cert, &issuer, NULL); - if (errorResult) goto cleanup; - - issuerAscii = PKIX_Object2ASCII((PKIX_PL_Object*)issuer); - - /* Subject */ - errorResult = PKIX_PL_Cert_GetSubject(cert, &subject, NULL); - if (errorResult) goto cleanup; - - if (subject){ - subjectAscii = PKIX_Object2ASCII((PKIX_PL_Object*)subject); - } - - errorResult = PKIX_PL_Malloc(200, &asciiString, NULL); - if (errorResult) goto cleanup; - - numChars = - PR_snprintf - (asciiString, - 200, - "Issuer=%s\nSubject=%s\n", - issuerAscii, - subjectAscii); - - if (!numChars) goto cleanup; - -cleanup: - - if (issuer){ - if (PKIX_PL_Object_DecRef((PKIX_PL_Object*)issuer, NULL)){ - return (NULL); - } - } - - if (subject){ - if (PKIX_PL_Object_DecRef((PKIX_PL_Object*)subject, NULL)){ - return (NULL); - } - } - - if (PKIX_PL_Free((PKIX_PL_Object*)issuerAscii, NULL)){ - return (NULL); - } - - if (PKIX_PL_Free((PKIX_PL_Object*)subjectAscii, NULL)){ - return (NULL); - } - - if (errorResult){ - return (NULL); - } - - return (asciiString); -} - -/* - * FUNCTION: testHashcodeHelper - * DESCRIPTION: - * - * Computes the hashcode of the Object pointed to by "goodObject" and the - * Object pointed to by "otherObject" and compares them. If the result of the - * comparison is not the desired match as specified by "match", an error - * message is generated. - * - * PARAMETERS: - * "goodObject" - * Address of an object. Must be non-NULL. - * "otherObject" - * Address of another object. Must be non-NULL. - * "match" - * Boolean value representing the desired comparison result. - * "plContext" - * Platform-specific context pointer. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -testHashcodeHelper( - PKIX_PL_Object *goodObject, - PKIX_PL_Object *otherObject, - PKIX_Boolean match, - void *plContext) -{ - - PKIX_UInt32 goodHash; - PKIX_UInt32 otherHash; - PKIX_Boolean cmpResult; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Hashcode - ((PKIX_PL_Object *)goodObject, &goodHash, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Hashcode - ((PKIX_PL_Object *)otherObject, &otherHash, plContext)); - - cmpResult = (goodHash == otherHash); - - if ((match && !cmpResult) || (!match && cmpResult)){ - testError("unexpected mismatch"); - (void) printf("Hash1:\t%d\n", goodHash); - (void) printf("Hash2:\t%d\n", otherHash); - } - -cleanup: - - PKIX_TEST_RETURN(); - -} - -/* - * FUNCTION: testToStringHelper - * DESCRIPTION: - * - * Calls toString on the Object pointed to by "goodObject" and compares the - * result to the string pointed to by "expected". If the results are not - * equal, an error message is generated. - * - * PARAMETERS: - * "goodObject" - * Address of Object. Must be non-NULL. - * "expected" - * Address of the desired string. - * "plContext" - * Platform-specific context pointer. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -testToStringHelper( - PKIX_PL_Object *goodObject, - char *expected, - void *plContext) -{ - PKIX_PL_String *stringRep = NULL; - char *actual = NULL; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_ToString - (goodObject, &stringRep, plContext)); - - actual = PKIX_String2ASCII(stringRep, plContext); - if (actual == NULL){ - pkixTestErrorMsg = "PKIX_String2ASCII Failed"; - goto cleanup; - } - - /* - * If you are having trouble matching the string, uncomment the - * PL_strstr function to figure out what's going on. - */ - - /* - if (PL_strstr(actual, expected) == NULL){ - testError("PL_strstr failed"); - } - */ - - - if (PL_strcmp(actual, expected) != 0){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%s\n", actual); - (void) printf("Expected value:\t%s\n", expected); - } - -cleanup: - - PKIX_PL_Free(actual, plContext); - - PKIX_TEST_DECREF_AC(stringRep); - - PKIX_TEST_RETURN(); -} - -/* - * FUNCTION: testEqualsHelper - * DESCRIPTION: - * - * Checks if the Object pointed to by "goodObject" is Equal to the Object - * pointed to by "otherObject". If the result of the check is not the desired - * match as specified by "match", an error message is generated. - * - * PARAMETERS: - * "goodObject" - * Address of an Object. Must be non-NULL. - * "otherObject" - * Address of another Object. Must be non-NULL. - * "match" - * Boolean value representing the desired comparison result. - * "plContext" - * Platform-specific context pointer. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -testEqualsHelper( - PKIX_PL_Object *goodObject, - PKIX_PL_Object *otherObject, - PKIX_Boolean match, - void *plContext) -{ - - PKIX_Boolean cmpResult; - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Object_Equals - (goodObject, otherObject, &cmpResult, plContext)); - - if ((match && !cmpResult) || (!match && cmpResult)){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", cmpResult); - (void) printf("Expected value:\t%d\n", match); - } - -cleanup: - - PKIX_TEST_RETURN(); -} - - -/* - * FUNCTION: testDuplicateHelper - * DESCRIPTION: - * Checks if the Object pointed to by "object" is equal to its duplicate. - * If the result of the check is not equality, an error message is generated. - * PARAMETERS: - * "object" - * Address of Object. Must be non-NULL. - * "plContext" - * Platform-specific context pointer. - * THREAD SAFETY: - * Thread Safe (see Thread Safety Definitions in Programmer's Guide) - * RETURNS: - * Returns nothing. - */ -void -testDuplicateHelper(PKIX_PL_Object *object, void *plContext) -{ - PKIX_PL_Object *newObject = NULL; - PKIX_Boolean cmpResult; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Duplicate - (object, &newObject, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Object_Equals - (object, newObject, &cmpResult, plContext)); - - if (!cmpResult){ - testError("unexpected mismatch"); - (void) printf("Actual value:\t%d\n", cmpResult); - (void) printf("Expected value:\t%d\n", PKIX_TRUE); - } - -cleanup: - - PKIX_TEST_DECREF_AC(newObject); - - PKIX_TEST_RETURN(); -} diff --git a/security/nss/cmd/libpkix/testutil/testutil.h b/security/nss/cmd/libpkix/testutil/testutil.h deleted file mode 100755 index 528fc0ea9..000000000 --- a/security/nss/cmd/libpkix/testutil/testutil.h +++ /dev/null @@ -1,337 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * testutil.h - * - * Utility functions for handling test errors - * - */ - -#ifndef _TESTUTIL_H -#define _TESTUTIL_H - -#include "pkix.h" -#include "plstr.h" -#include "prprf.h" -#include "prlong.h" -#include "pkix_pl_common.h" -#include "secutil.h" -#include <stdio.h> -#include <ctype.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * In order to have a consistent format for displaying test information, - * all tests are REQUIRED to use the functions provided by this library - * (libtestutil.a) for displaying their information. - * - * A test using this library begins with a call to startTests with the test - * name as the arg (which is used only for formatting). Before the first - * subtest, a call to subTest should be made with the subtest name as the arg - * (again, for formatting). If the subTest is successful, then no action - * is needed. However, if the subTest is not successful, then a call - * to testError should be made with a descriptive error message as the arg. - * Note that a subTest MUST NOT call testError more than once. - * Finally, a call to endTests is made with the test name as the arg (for - * formatting). Note that most of these macros assume that a variable named - * "plContext" of type (void *) has been defined by the test. As such, it - * is essential that the test satisfy this condition. - */ - -/* - * PKIX_TEST_STD_VARS should be called at the beginning of every function - * that uses PKIX_TEST_RETURN (e.g. subTests), but it should be called only - * AFTER declaring local variables (so we don't get compiler warnings about - * declarations after statements). PKIX_TEST_STD_VARS declares and initializes - * several variables needed by the other test macros. - */ -#define PKIX_TEST_STD_VARS() \ - PKIX_Error *pkixTestErrorResult = NULL; \ - char *pkixTestErrorMsg = NULL; - -/* - * PKIX_TEST_EXPECT_NO_ERROR should be used to wrap a standard PKIX function - * call (one which returns a pointer to PKIX_Error) that is expected to return - * NULL (i.e. to succeed). If "pkixTestErrorResult" is not NULL, - * "goto cleanup" is executed, where a testError call is made if there were - * unexpected results. This macro MUST NOT be called after the "cleanup" label. - * - * Example Usage: PKIX_TEST_EXPECT_NO_ERROR(pkixFunc_expected_to_succeed(...)); - */ - -#define PKIX_TEST_EXPECT_NO_ERROR(func) \ - do { \ - pkixTestErrorResult = (func); \ - if (pkixTestErrorResult) { \ - goto cleanup; \ - } \ - } while (0) - -/* - * PKIX_TEST_EXPECT_ERROR should be used to wrap a standard PKIX function call - * (one which returns a pointer to PKIX_Error) that is expected to return - * a non-NULL value (i.e. to fail). If "pkixTestErrorResult" is NULL, - * "pkixTestErrorMsg" is set to a standard string and "goto cleanup" - * is executed, where a testError call is made if there were unexpected - * results. This macro MUST NOT be called after the "cleanup" label. - * - * Example Usage: PKIX_TEST_EXPECT_ERROR(pkixFunc_expected_to_fail(...)); - */ - -#define PKIX_TEST_EXPECT_ERROR(func) \ - do { \ - pkixTestErrorResult = (func); \ - if (!pkixTestErrorResult){ \ - pkixTestErrorMsg = \ - "Should have thrown an error here."; \ - goto cleanup; \ - } \ - PKIX_TEST_DECREF_BC(pkixTestErrorResult); \ - } while (0) - -/* - * PKIX_TEST_DECREF_BC is a convenience macro which should only be called - * BEFORE the "cleanup" label ("BC"). If the input parameter is non-NULL, it - * DecRefs the input parameter and wraps the function with - * PKIX_TEST_EXPECT_NO_ERROR, which executes "goto cleanup" upon error. - * This macro MUST NOT be called after the "cleanup" label. - */ - -#define PKIX_TEST_DECREF_BC(obj) \ - do { \ - if (obj){ \ - PKIX_TEST_EXPECT_NO_ERROR \ - (PKIX_PL_Object_DecRef \ - ((PKIX_PL_Object*)(obj), plContext)); \ - obj = NULL; \ - } \ - } while (0) - -/* - * PKIX_TEST_DECREF_AC is a convenience macro which should only be called - * AFTER the "cleanup" label ("AC"). If the input parameter is non-NULL, it - * DecRefs the input parameter. A pkixTestTempResult variable is used to prevent - * incorrectly overwriting pkixTestErrorResult with NULL. - * In the case DecRef succeeds, pkixTestTempResult will be NULL, and we won't - * overwrite a previously set pkixTestErrorResult (if any). If DecRef fails, - * then we do want to overwrite a previously set pkixTestErrorResult since a - * DecRef failure is fatal and may be indicative of memory corruption. - */ - -#define PKIX_TEST_DECREF_AC(obj) \ - do { \ - if (obj){ \ - PKIX_Error *pkixTestTempResult = NULL; \ - pkixTestTempResult = \ - PKIX_PL_Object_DecRef \ - ((PKIX_PL_Object*)(obj), plContext); \ - if (pkixTestTempResult) \ - pkixTestErrorResult = pkixTestTempResult; \ - obj = NULL; \ - } \ - } while (0) - -/* - * PKIX_TEST_RETURN must always be AFTER the "cleanup" label. It does nothing - * if everything went as expected. However, if there were unexpected results, - * PKIX_TEST_RETURN calls testError, which displays a standard failure message - * and increments the number of subtests that have failed. In the case - * of an unexpected error, testError is called using the error's description - * as an input and the error is DecRef'd. In the case of unexpected success - * testError is called with a standard string. - */ -#define PKIX_TEST_RETURN() \ - { \ - if (pkixTestErrorMsg){ \ - testError(pkixTestErrorMsg); \ - } else if (pkixTestErrorResult){ \ - pkixTestErrorMsg = \ - PKIX_Error2ASCII \ - (pkixTestErrorResult, plContext); \ - if (pkixTestErrorMsg) { \ - testError(pkixTestErrorMsg); \ - PKIX_PL_Free \ - ((PKIX_PL_Object *)pkixTestErrorMsg, \ - plContext); \ - } else { \ - testError("PKIX_Error2ASCII Failed"); \ - } \ - if (pkixTestErrorResult != PKIX_ALLOC_ERROR()){ \ - PKIX_PL_Object_DecRef \ - ((PKIX_PL_Object*)pkixTestErrorResult, \ - plContext); \ - pkixTestErrorResult = NULL; \ - } \ - } \ - } - -/* - * PKIX_TEST_EQ_HASH_TOSTR_DUP is a convenience macro which executes the - * standard set of operations that test the Equals, Hashcode, ToString, and - * Duplicate functions of an object type. The goodObj, equalObj, and diffObj - * are as the names suggest. The expAscii parameter is the expected result of - * calling ToString on the goodObj. If expAscii is NULL, then ToString will - * not be called on the goodObj. The checkDuplicate parameter is treated as - * a Boolean to indicate whether the Duplicate function should be tested. If - * checkDuplicate is NULL, then Duplicate will not be called on the goodObj. - * The type is the name of the function's family. For example, if the type is - * Cert, this macro will call PKIX_PL_Cert_Equals, PKIX_PL_Cert_Hashcode, and - * PKIX_PL_Cert_ToString. - * - * Note: If goodObj uses the default Equals and Hashcode functions, then - * for goodObj and equalObj to be equal, they must have the same pointer value. - */ -#define PKIX_TEST_EQ_HASH_TOSTR_DUP(goodObj, equalObj, diffObj, \ - expAscii, type, checkDuplicate) \ - do { \ - subTest("PKIX_PL_" #type "_Equals <match>"); \ - testEqualsHelper \ - ((PKIX_PL_Object *)(goodObj), \ - (PKIX_PL_Object *)(equalObj), \ - PKIX_TRUE, \ - plContext); \ - subTest("PKIX_PL_" #type "_Hashcode <match>"); \ - testHashcodeHelper \ - ((PKIX_PL_Object *)(goodObj), \ - (PKIX_PL_Object *)(equalObj), \ - PKIX_TRUE, \ - plContext); \ - subTest("PKIX_PL_" #type "_Equals <non-match>"); \ - testEqualsHelper \ - ((PKIX_PL_Object *)(goodObj), \ - (PKIX_PL_Object *)(diffObj), \ - PKIX_FALSE, \ - plContext); \ - subTest("PKIX_PL_" #type "_Hashcode <non-match>"); \ - testHashcodeHelper \ - ((PKIX_PL_Object *)(goodObj), \ - (PKIX_PL_Object *)(diffObj), \ - PKIX_FALSE, \ - plContext); \ - if (expAscii){ \ - subTest("PKIX_PL_" #type "_ToString"); \ - testToStringHelper \ - ((PKIX_PL_Object *)(goodObj), \ - (expAscii), \ - plContext); } \ - if (checkDuplicate){ \ - subTest("PKIX_PL_" #type "_Duplicate"); \ - testDuplicateHelper \ - ((PKIX_PL_Object *)goodObj, plContext); } \ - } while (0) - -/* - * PKIX_TEST_DECREF_BC is a convenience macro which should only be called - * BEFORE the "cleanup" label ("BC"). If the input parameter is non-NULL, it - * DecRefs the input parameter and wraps the function with - * PKIX_TEST_EXPECT_NO_ERROR, which executes "goto cleanup" upon error. - * This macro MUST NOT be called after the "cleanup" label. - */ - -#define PKIX_TEST_ABORT_ON_NULL(obj) \ - do { \ - if (!obj){ \ - goto cleanup; \ - } \ - } while (0) - -#define PKIX_TEST_ARENAS_ARG(arena) \ - (arena? \ - (PORT_Strcmp(arena, "arenas") ? PKIX_FALSE : (j++, PKIX_TRUE)): \ - PKIX_FALSE) - -#define PKIX_TEST_ERROR_RECEIVED (pkixTestErrorMsg || pkixTestErrorResult) - -/* see source file for function documentation */ - -void startTests(char *testName); - -void endTests(char *testName); - -void subTest(char *subTestName); - -void testError(char *msg); - -extern PKIX_Error * -_ErrorCheck(PKIX_Error *errorResult); - -extern PKIX_Error * -_OutputError(PKIX_Error *errorResult); - -char* PKIX_String2ASCII(PKIX_PL_String *string, void *plContext); - -char* PKIX_Error2ASCII(PKIX_Error *error, void *plContext); - -char* PKIX_Object2ASCII(PKIX_PL_Object *object); - -char *PKIX_Cert2ASCII(PKIX_PL_Cert *cert); - -void -testHashcodeHelper( - PKIX_PL_Object *goodObject, - PKIX_PL_Object *otherObject, - PKIX_Boolean match, - void *plContext); - -void -testToStringHelper( - PKIX_PL_Object *goodObject, - char *expected, - void *plContext); - -void -testEqualsHelper( - PKIX_PL_Object *goodObject, - PKIX_PL_Object *otherObject, - PKIX_Boolean match, - void *plContext); - -void -testDuplicateHelper( - PKIX_PL_Object *object, - void *plContext); -void -testErrorUndo(char *msg); - -#ifdef __cplusplus -} -#endif - -#endif /* TESTUTIL_H */ diff --git a/security/nss/cmd/libpkix/testutil/testutil_nss.c b/security/nss/cmd/libpkix/testutil/testutil_nss.c deleted file mode 100755 index 6d2928a83..000000000 --- a/security/nss/cmd/libpkix/testutil/testutil_nss.c +++ /dev/null @@ -1,663 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * testutil_nss.c - * - * NSS-specific utility functions for handling test errors - * - */ - -#include <stdio.h> -#include <string.h> -#include <stddef.h> - -#include "pkix_pl_generalname.h" -#include "pkix_pl_cert.h" -#include "pkix.h" -#include "testutil.h" -#include "prlong.h" -#include "plstr.h" -#include "prthread.h" -#include "secutil.h" -#include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "pk11func.h" -#include "secasn1.h" -#include "cert.h" -#include "cryptohi.h" -#include "secoid.h" -#include "certdb.h" -#include "secitem.h" -#include "keythi.h" -#include "nss.h" - -static char *catDirName(char *dir, char *name, void *plContext) -{ - char *pathName = NULL; - PKIX_UInt32 nameLen; - PKIX_UInt32 dirLen; - - PKIX_TEST_STD_VARS(); - - nameLen = PL_strlen(name); - dirLen = PL_strlen(dir); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Malloc - (dirLen + nameLen + 2, - (void **)&pathName, - plContext)); - - PL_strcpy(pathName, dir); - PL_strcat(pathName, "/"); - PL_strcat(pathName, name); - printf("pathName = %s\n", pathName); - -cleanup: - - PKIX_TEST_RETURN(); - - return (pathName); -} - -PKIX_PL_Cert * -createCert( - char *dirName, - char *certFileName, - void *plContext) -{ - PKIX_PL_ByteArray *byteArray = NULL; - void *buf = NULL; - PRFileDesc *certFile = NULL; - PKIX_UInt32 len; - SECItem certDER; - SECStatus rv; - /* default: NULL cert (failure case) */ - PKIX_PL_Cert *cert = NULL; - char *pathName = NULL; - - PKIX_TEST_STD_VARS(); - - - certDER.data = NULL; - - pathName = catDirName(dirName, certFileName, plContext); - certFile = PR_Open(pathName, PR_RDONLY, 0); - - if (!certFile){ - pkixTestErrorMsg = "Unable to open cert file"; - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&certDER, certFile, PR_FALSE); - if (!rv){ - buf = (void *)certDER.data; - len = certDER.len; - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_Create - (byteArray, &cert, plContext)); - - SECITEM_FreeItem(&certDER, PR_FALSE); - } else { - pkixTestErrorMsg = "Unable to read DER from cert file"; - goto cleanup; - } - } - -cleanup: - - pkixTestErrorResult = PKIX_PL_Free(pathName, plContext); - - if (certFile){ - PR_Close(certFile); - } - - if (PKIX_TEST_ERROR_RECEIVED){ - SECITEM_FreeItem(&certDER, PR_FALSE); - } - - PKIX_TEST_DECREF_AC(byteArray); - - PKIX_TEST_RETURN(); - - return (cert); -} - -PKIX_PL_CRL * -createCRL( - char *dirName, - char *crlFileName, - void *plContext) -{ - PKIX_PL_ByteArray *byteArray = NULL; - PKIX_PL_CRL *crl = NULL; - PKIX_Error *error = NULL; - PRFileDesc *inFile = NULL; - SECItem crlDER; - void *buf = NULL; - PKIX_UInt32 len; - SECStatus rv; - char *pathName = NULL; - - PKIX_TEST_STD_VARS(); - - crlDER.data = NULL; - - pathName = catDirName(dirName, crlFileName, plContext); - inFile = PR_Open(pathName, PR_RDONLY, 0); - - if (!inFile){ - pkixTestErrorMsg = "Unable to open crl file"; - goto cleanup; - } else { - rv = SECU_ReadDERFromFile(&crlDER, inFile, PR_FALSE); - if (!rv){ - buf = (void *)crlDER.data; - len = crlDER.len; - - error = PKIX_PL_ByteArray_Create - (buf, len, &byteArray, plContext); - - if (error){ - pkixTestErrorMsg = - "PKIX_PL_ByteArray_Create failed"; - goto cleanup; - } - - error = PKIX_PL_CRL_Create(byteArray, &crl, plContext); - if (error){ - pkixTestErrorMsg = "PKIX_PL_Crl_Create failed"; - goto cleanup; - } - - SECITEM_FreeItem(&crlDER, PR_FALSE); - } else { - pkixTestErrorMsg = "Unable to read DER from crl file"; - goto cleanup; - } - } - -cleanup: - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Free(pathName, plContext)); - - if (inFile){ - PR_Close(inFile); - } - - if (error){ - SECITEM_FreeItem(&crlDER, PR_FALSE); - } - - PKIX_TEST_DECREF_AC(byteArray); - - PKIX_TEST_RETURN(); - - return (crl); - -} - -PKIX_TrustAnchor * -createTrustAnchor( - char *dirName, - char *certFileName, - PKIX_Boolean useCert, - void *plContext) -{ - PKIX_TrustAnchor *anchor = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_X500Name *name = NULL; - PKIX_PL_PublicKey *pubKey = NULL; - PKIX_PL_CertNameConstraints *nameConstraints = NULL; - - PKIX_TEST_STD_VARS(); - - cert = createCert(dirName, certFileName, plContext); - - if (useCert){ - PKIX_TEST_EXPECT_NO_ERROR(PKIX_TrustAnchor_CreateWithCert - (cert, &anchor, plContext)); - } else { - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubject - (cert, &name, plContext)); - - if (name == NULL){ - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (cert, &pubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetNameConstraints - (cert, &nameConstraints, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_TrustAnchor_CreateWithNameKeyPair - (name, pubKey, nameConstraints, &anchor, plContext)); - } - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(anchor); - } - - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(name); - PKIX_TEST_DECREF_AC(pubKey); - PKIX_TEST_DECREF_AC(nameConstraints); - - PKIX_TEST_RETURN(); - - return (anchor); -} - -PKIX_List * -createCertChain( - char *dirName, - char *firstCertFileName, - char *secondCertFileName, - void *plContext) -{ - PKIX_PL_Cert *firstCert = NULL; - PKIX_PL_Cert *secondCert = NULL; - PKIX_List *certList = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certList, plContext)); - - firstCert = createCert(dirName, firstCertFileName, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certList, (PKIX_PL_Object *)firstCert, plContext)); - - if (secondCertFileName){ - secondCert = createCert(dirName, secondCertFileName, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certList, (PKIX_PL_Object *)secondCert, plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetImmutable - (certList, plContext)); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(certList); - } - - PKIX_TEST_DECREF_AC(firstCert); - PKIX_TEST_DECREF_AC(secondCert); - - PKIX_TEST_RETURN(); - - return (certList); -} - -PKIX_List * -createCertChainPlus( - char *dirName, - char *certNames[], - PKIX_PL_Cert *certs[], - PKIX_UInt32 numCerts, - void *plContext) -{ - PKIX_List *certList = NULL; - PKIX_UInt32 i; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&certList, plContext)); - - for (i = 0; i < numCerts; i++) { - - certs[i] = createCert(dirName, certNames[i], plContext); - - /* Create Cert may fail */ - if (certs[i] == NULL) { - PKIX_TEST_DECREF_BC(certList); - goto cleanup; - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (certList, - (PKIX_PL_Object *)certs[i], - plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_SetImmutable - (certList, plContext)); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(certList); - } - - for (i = 0; i < numCerts; i++) { - PKIX_TEST_DECREF_AC(certs[i]); - } - - PKIX_TEST_RETURN(); - - return (certList); - -} - -PKIX_PL_Date * -createDate( - char *asciiDate, - void *plContext) -{ - PKIX_PL_Date *date = NULL; - PKIX_PL_String *plString = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, asciiDate, 0, &plString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Date_Create_UTCTime - (plString, &date, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(plString); - - PKIX_TEST_RETURN(); - - return (date); -} - -PKIX_ProcessingParams * -createProcessingParams( - char *dirName, - char *firstAnchorFileName, - char *secondAnchorFileName, - char *dateAscii, - PKIX_List *initialPolicies, /* List of PKIX_PL_OID */ - PKIX_Boolean isCrlEnabled, - void *plContext) -{ - - PKIX_TrustAnchor *firstAnchor = NULL; - PKIX_TrustAnchor *secondAnchor = NULL; - PKIX_List *anchorsList = NULL; - PKIX_ProcessingParams *procParams = NULL; - PKIX_PL_String *dateString = NULL; - PKIX_PL_Date *testDate = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_Create(&anchorsList, plContext)); - - firstAnchor = createTrustAnchor - (dirName, firstAnchorFileName, PKIX_FALSE, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (anchorsList, - (PKIX_PL_Object *)firstAnchor, - plContext)); - - if (secondAnchorFileName){ - secondAnchor = - createTrustAnchor - (dirName, secondAnchorFileName, PKIX_FALSE, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_List_AppendItem - (anchorsList, - (PKIX_PL_Object *)secondAnchor, - plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_Create - (anchorsList, &procParams, plContext)); - - if (dateAscii){ - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_String_Create - (PKIX_ESCASCII, - dateAscii, - 0, - &dateString, - plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_PL_Date_Create_UTCTime - (dateString, &testDate, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetDate - (procParams, testDate, plContext)); - } - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetInitialPolicies - (procParams, initialPolicies, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetRevocationEnabled - (procParams, isCrlEnabled, plContext)); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(procParams); - } - - PKIX_TEST_DECREF_AC(dateString); - PKIX_TEST_DECREF_AC(testDate); - PKIX_TEST_DECREF_AC(anchorsList); - PKIX_TEST_DECREF_AC(firstAnchor); - PKIX_TEST_DECREF_AC(secondAnchor); - - PKIX_TEST_RETURN(); - - return (procParams); -} - -PKIX_ValidateParams * -createValidateParams( - char *dirName, - char *firstAnchorFileName, - char *secondAnchorFileName, - char *dateAscii, - PKIX_List *initialPolicies, /* List of PKIX_PL_OID */ - PKIX_Boolean initialPolicyMappingInhibit, - PKIX_Boolean initialAnyPolicyInhibit, - PKIX_Boolean initialExplicitPolicy, - PKIX_Boolean isCrlEnabled, - PKIX_List *chain, - void *plContext) -{ - - PKIX_ProcessingParams *procParams = NULL; - PKIX_ValidateParams *valParams = NULL; - - PKIX_TEST_STD_VARS(); - - procParams = - createProcessingParams - (dirName, - firstAnchorFileName, - secondAnchorFileName, - dateAscii, - NULL, - isCrlEnabled, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetInitialPolicies - (procParams, initialPolicies, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetPolicyMappingInhibited - (procParams, initialPolicyMappingInhibit, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ProcessingParams_SetAnyPolicyInhibited - (procParams, initialAnyPolicyInhibit, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR - (PKIX_ProcessingParams_SetExplicitPolicyRequired - (procParams, initialExplicitPolicy, NULL)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_ValidateParams_Create - (procParams, chain, &valParams, plContext)); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(valParams); - } - - PKIX_TEST_DECREF_AC(procParams); - - PKIX_TEST_RETURN(); - - return (valParams); -} - -PKIX_ValidateResult * -createValidateResult( - char *dirName, - char *anchorFileName, - char *pubKeyCertFileName, - void *plContext) -{ - - PKIX_TrustAnchor *anchor = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_PL_Cert *cert = NULL; - PKIX_PL_PublicKey *pubKey = NULL; - - PKIX_TEST_STD_VARS(); - - anchor = createTrustAnchor - (dirName, anchorFileName, PKIX_FALSE, plContext); - cert = createCert(dirName, pubKeyCertFileName, plContext); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_Cert_GetSubjectPublicKey - (cert, &pubKey, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR - (pkix_ValidateResult_Create - (pubKey, anchor, NULL, &valResult, plContext)); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(valResult); - } - - PKIX_TEST_DECREF_AC(anchor); - PKIX_TEST_DECREF_AC(cert); - PKIX_TEST_DECREF_AC(pubKey); - - PKIX_TEST_RETURN(); - - return (valResult); -} - -PKIX_PL_GeneralName * -createGeneralName( - PKIX_UInt32 nameType, - char *asciiName, - void *plContext) -{ - - PKIX_PL_GeneralName *generalName = NULL; - PKIX_PL_String *plString = NULL; - - PKIX_TEST_STD_VARS(); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_String_Create - (PKIX_ESCASCII, asciiName, 0, &plString, plContext)); - - PKIX_TEST_EXPECT_NO_ERROR(PKIX_PL_GeneralName_Create - (nameType, plString, &generalName, plContext)); - -cleanup: - - PKIX_TEST_DECREF_AC(plString); - - PKIX_TEST_RETURN(); - - return (generalName); -} - -PKIX_BuildResult * -createBuildResult( - char *dirName, - char *anchorFileName, - char *pubKeyCertFileName, - char *firstChainCertFileName, - char *secondChainCertFileName, - void *plContext) -{ - PKIX_BuildResult *buildResult = NULL; - PKIX_ValidateResult *valResult = NULL; - PKIX_List *certChain = NULL; - - PKIX_TEST_STD_VARS(); - - valResult = createValidateResult - (dirName, anchorFileName, pubKeyCertFileName, plContext); - certChain = createCertChain - (dirName, - firstChainCertFileName, - secondChainCertFileName, - plContext); - - PKIX_TEST_EXPECT_NO_ERROR - (pkix_BuildResult_Create - (valResult, certChain, &buildResult, plContext)); - -cleanup: - - if (PKIX_TEST_ERROR_RECEIVED){ - PKIX_TEST_DECREF_AC(buildResult); - } - - PKIX_TEST_DECREF_AC(valResult); - PKIX_TEST_DECREF_AC(certChain); - - PKIX_TEST_RETURN(); - - return (buildResult); -} diff --git a/security/nss/cmd/libpkix/testutil/testutil_nss.h b/security/nss/cmd/libpkix/testutil/testutil_nss.h deleted file mode 100755 index 4c2a2e04e..000000000 --- a/security/nss/cmd/libpkix/testutil/testutil_nss.h +++ /dev/null @@ -1,153 +0,0 @@ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is the PKIX-C library. - * - * The Initial Developer of the Original Code is - * Sun Microsystems, Inc. - * Portions created by the Initial Developer are - * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved. - * - * Contributor(s): - * Sun Microsystems, Inc. - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ -/* - * testutil_nss.h - * - * NSS-specific utility functions for handling test errors - * - */ - -#ifndef _TESTUTIL_NSS_H -#define _TESTUTIL_NSS_H - -#include "pkix_tools.h" -#include "plstr.h" -#include "prprf.h" -#include "prlong.h" -#include "secutil.h" -#include <stdio.h> -#include <ctype.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#include "pkix_pl_generalname.h" - -/* see source file for function documentation */ - -PKIX_PL_Cert * -createCert( - char *dirName, - char *certFile, - void *plContext); - -PKIX_PL_CRL * -createCRL( - char *dirName, - char *crlFileName, - void *plContext); - -PKIX_TrustAnchor * -createTrustAnchor( - char *dirName, - char *taFileName, - PKIX_Boolean useCert, - void *plContext); - -PKIX_List * -createCertChain( - char *dirName, - char *firstCertFileName, - char *secondCertFileName, - void *plContext); - -PKIX_List * -createCertChainPlus( - char *dirName, - char *certNames[], - PKIX_PL_Cert *certs[], - PKIX_UInt32 numCerts, - void *plContext); - -PKIX_PL_Date * -createDate( - char *asciiDate, - void *plContext); - - -PKIX_ProcessingParams * -createProcessingParams( - char *dirName, - char *firstAnchorFileName, - char *secondAnchorFileName, - char *dateAscii, - PKIX_List *initialPolicies, /* List of PKIX_PL_OID */ - PKIX_Boolean isCrlEnabled, - void *plContext); - -PKIX_ValidateParams * -createValidateParams( - char *dirName, - char *firstAnchorFileName, - char *secondAnchorFileName, - char *dateAscii, - PKIX_List *initialPolicies, /* List of PKIX_PL_OID */ - PKIX_Boolean initialPolicyMappingInhibit, - PKIX_Boolean initialAnyPolicyInhibit, - PKIX_Boolean initialExplicitPolicy, - PKIX_Boolean isCrlEnabled, - PKIX_List *chain, - void *plContext); - -PKIX_ValidateResult * -createValidateResult( - char *dirName, - char *anchorFileName, - char *pubKeyCertFileName, - void *plContext); - -PKIX_BuildResult * -createBuildResult( - char *dirName, - char *anchorFileName, - char *pubKeyCertFileName, - char *firstChainCertFileName, - char *secondChainCertFileName, - void *plContext); - -PKIX_PL_GeneralName * -createGeneralName( - PKIX_UInt32 nameType, - char *asciiName, - void *plContext); - -#ifdef __cplusplus -} -#endif - -#endif /* TESTUTIL_NSS_H */ |