summaryrefslogtreecommitdiff
path: root/security/nss/cmd/libpkix/testutil/testutil_nss.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/cmd/libpkix/testutil/testutil_nss.c')
-rwxr-xr-xsecurity/nss/cmd/libpkix/testutil/testutil_nss.c663
1 files changed, 0 insertions, 663 deletions
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);
-}