diff --git a/mozilla/security/nss/cmd/dbtest/Makefile b/mozilla/security/nss/cmd/dbtest/Makefile new file mode 100644 index 00000000000..7e236b4533b --- /dev/null +++ b/mozilla/security/nss/cmd/dbtest/Makefile @@ -0,0 +1,82 @@ +#! gmake +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Netscape security libraries. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1994-2000 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. If you wish to allow use of your +# version of this file only under the terms of the GPL and not to +# allow others to use your version of this file under the MPL, +# indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by +# the GPL. If you do not delete the provisions above, a recipient +# may use your version of this file under either the MPL or the +# GPL. +# + +####################################################################### +# (1) Include initial platform-independent assignments (MANDATORY). # +####################################################################### + +include manifest.mn + +####################################################################### +# (2) Include "global" configuration information. (OPTIONAL) # +####################################################################### + +include $(CORE_DEPTH)/coreconf/config.mk + +####################################################################### +# (3) Include "component" configuration information. (OPTIONAL) # +####################################################################### + +####################################################################### +# (4) Include "local" platform-dependent assignments (OPTIONAL). # +####################################################################### + +include ../platlibs.mk + +ifeq ($(OS_ARCH), WINNT) +ifndef BUILD_OPT +LDFLAGS += /subsystem:console /profile /debug /machine:I386 /incremental:no +OS_CFLAGS += -D_CONSOLE +endif +endif + + +####################################################################### +# (5) Execute "global" rules. (OPTIONAL) # +####################################################################### + +include $(CORE_DEPTH)/coreconf/rules.mk + +####################################################################### +# (6) Execute "component" rules. (OPTIONAL) # +####################################################################### + +#include ../platlibs.mk + +####################################################################### +# (7) Execute "local" rules. (OPTIONAL). # +####################################################################### + +include ../platrules.mk + diff --git a/mozilla/security/nss/cmd/dbtest/dbtest.c b/mozilla/security/nss/cmd/dbtest/dbtest.c new file mode 100644 index 00000000000..92c148299ae --- /dev/null +++ b/mozilla/security/nss/cmd/dbtest/dbtest.c @@ -0,0 +1,176 @@ +/* + * The contents of this file are subject to the Mozilla Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is the Netscape security libraries. + * + * The Initial Developer of the Original Code is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1994-2000 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Sonja Mirtitsch Sun Microsystems + * + * Alternatively, the contents of this file may be used under the + * terms of the GNU General Public License Version 2 or later (the + * "GPL"), in which case the provisions of the GPL are applicable + * instead of those above. If you wish to allow use of your + * version of this file only under the terms of the GPL and not to + * allow others to use your version of this file under the MPL, + * indicate your decision by deleting the provisions above and + * replace them with the notice and other provisions required by + * the GPL. If you do not delete the provisions above, a recipient + * may use your version of this file under either the MPL or the + * GPL. + */ + +/* +** dbtest.c +** +** utility for managing certificates and the cert database +** +*/ +#include +#include + +#if defined(WIN32) +#include "fcntl.h" +#include "io.h" +#endif + +#include "secutil.h" + +#if defined(XP_UNIX) +#include +#endif + +#include "nspr.h" +#include "prtypes.h" +#include "certdb.h" +#include "nss.h" +#include "../modutil/modutil.h" + +#include "plgetopt.h" + +static char *progName; + +char *dbDir = NULL; + +static char *dbName[]={"secmod.db", "cert7.db", "key3.db"}; +static char* dbprefix = ""; +static char* secmodName = "secmod.db"; +PRBool verbose; + + +static void Usage(const char *progName) +{ + printf("Usage: %s [-r] [-f] [-d dbdir ] \n", + progName); + printf("%-20s open database readonly (NSS_INIT_READONLY)\n", "-r"); + printf("%-20s Continue to force initializations even if the\n", "-f"); + printf("%-20s databases cannot be opened (NSS_INIT_FORCEOPEN)\n", " "); + printf("%-20s Directory with cert database (default is .\n", + "-d certdir"); + exit(1); +} + +int main(int argc, char **argv) +{ + PLOptState *optstate; + PLOptStatus optstatus; + + PRUint32 flags = 0; + PRBool useCommandLinePassword = PR_FALSE; + Error ret; + SECStatus rv; + char * dbString = NULL; + int i; + + progName = strrchr(argv[0], '/'); + if (!progName) + progName = strrchr(argv[0], '\\'); + progName = progName ? progName+1 : argv[0]; + + optstate = PL_CreateOptState(argc, argv, "rfd:h"); + + while ((optstatus = PL_GetNextOpt(optstate)) == PL_OPT_OK) { + switch (optstate->option) { + case 'h': + default : Usage(progName); break; + + case 'r': flags |= NSS_INIT_READONLY; break; + + case 'f': flags |= NSS_INIT_FORCEOPEN; break; + + case 'd': + dbDir = PORT_Strdup(optstate->value); + break; + + } + } + if (optstatus == PL_OPT_BAD) + Usage(progName); + + if (!dbDir) { + dbDir = SECU_DefaultSSLDir(); /* Look in $SSL_DIR */ + } + dbDir = SECU_ConfigDirectory(dbDir); + PR_fprintf(PR_STDERR, "dbdir selected is %s\n\n", dbDir); + + if( dbDir[0] == '\0') { + PR_fprintf(PR_STDERR, errStrings[DIR_DOESNT_EXIST_ERR], dbDir); + ret= DIR_DOESNT_EXIST_ERR; + goto loser; + } + + + PR_Init( PR_USER_THREAD, PR_PRIORITY_NORMAL, 0); + + /* get the status of the directory and databases and output message */ + if(PR_Access(dbDir, PR_ACCESS_EXISTS) != PR_SUCCESS) { + PR_fprintf(PR_STDERR, errStrings[DIR_DOESNT_EXIST_ERR], dbDir); + } else if(PR_Access(dbDir, PR_ACCESS_READ_OK) != PR_SUCCESS) { + PR_fprintf(PR_STDERR, errStrings[DIR_NOT_READABLE_ERR], dbDir); + } else { + if( !( flags & NSS_INIT_READONLY ) && + PR_Access(dbDir, PR_ACCESS_WRITE_OK) != PR_SUCCESS) { + PR_fprintf(PR_STDERR, errStrings[DIR_NOT_WRITEABLE_ERR], dbDir); + } + for (i=0;i<3;i++) { + dbString=PR_smprintf("%s/%s",dbDir,dbName[i]); + PR_fprintf(PR_STDOUT, "database checked is %s\n",dbString); + if(PR_Access(dbString, PR_ACCESS_EXISTS) != PR_SUCCESS) { + PR_fprintf(PR_STDERR, errStrings[FILE_DOESNT_EXIST_ERR], + dbString); + } else if(PR_Access(dbString, PR_ACCESS_READ_OK) != PR_SUCCESS) { + PR_fprintf(PR_STDERR, errStrings[FILE_NOT_READABLE_ERR], + dbString); + } else if( !( flags & NSS_INIT_READONLY ) && + PR_Access(dbString, PR_ACCESS_WRITE_OK) != PR_SUCCESS) { + PR_fprintf(PR_STDERR, errStrings[FILE_NOT_WRITEABLE_ERR], + dbString); + } + } + } + + rv = NSS_Initialize(SECU_ConfigDirectory(dbDir), dbprefix, dbprefix, + secmodName, flags); + if (rv != SECSuccess) { + SECU_PrintPRandOSError(progName); + ret=NSS_INITIALIZE_FAILED_ERR; + } else { + ret=SUCCESS; + } + +loser: + return ret; +} + diff --git a/mozilla/security/nss/cmd/dbtest/makefile.win b/mozilla/security/nss/cmd/dbtest/makefile.win new file mode 100644 index 00000000000..5a60fd0af10 --- /dev/null +++ b/mozilla/security/nss/cmd/dbtest/makefile.win @@ -0,0 +1,130 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Netscape security libraries. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1994-2000 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. If you wish to allow use of your +# version of this file only under the terms of the GPL and not to +# allow others to use your version of this file under the MPL, +# indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by +# the GPL. If you do not delete the provisions above, a recipient +# may use your version of this file under either the MPL or the +# GPL. +# + +VERBOSE = 1 +include + +#cannot define PROGRAM in manifest compatibly with NT and UNIX +PROGRAM = dbtest +PROGRAM = ./$(OBJDIR)/$(PROGRAM).exe +include <$(DEPTH)\config\config.mak> + +# let manifest generate C_OBJS, it will prepend ./$(OBJDIR)/ +# rules.mak will append C_OBJS onto OBJS. +# OBJS = $(CSRCS:.c=.obj) + +# include files are looked for in $LINCS and $INCS. +# $LINCS is in manifest.mnw, computed from REQUIRES= +INCS = $(INCS) \ + -I$(DEPTH)/security/lib/cert \ + -I../include \ + $(NULL) + +IGNORE_ME = \ + -I$(DEPTH)/security/lib/key \ + -I$(DEPTH)/security/lib/util \ + $(NULL) + + +WINFE = $(DEPTH)/cmd/winfe/mkfiles$(MOZ_BITS)/x86Dbg + +# these files are the content of libdbm +DBM_LIB = \ + $(WINFE)/DB.obj \ + $(WINFE)/HASH.obj \ + $(WINFE)/H_BIGKEY.obj \ + $(WINFE)/H_PAGE.obj \ + $(WINFE)/H_LOG2.obj \ + $(WINFE)/H_FUNC.obj \ + $(WINFE)/HASH_BUF.obj \ + $(NULL) + +MOZ_LIBS = \ + $(WINFE)/ALLXPSTR.obj \ + $(WINFE)/XP_ERROR.obj \ + $(WINFE)/XPASSERT.obj \ + $(WINFE)/XP_REG.obj \ + $(WINFE)/XP_TRACE.obj \ + $(DBM_LIB) \ + $(WINFE)/XP_STR.obj \ + $(WINFE)/MKTEMP.obj \ + $(NULL) + +SEC_LIBS = \ + $(DIST)/lib/cert$(MOZ_BITS).lib \ + $(DIST)/lib/crypto$(MOZ_BITS).lib \ + $(DIST)/lib/hash$(MOZ_BITS).lib \ + $(DIST)/lib/key$(MOZ_BITS).lib \ + $(DIST)/lib/pkcs7$(MOZ_BITS).lib \ + $(DIST)/lib/secmod$(MOZ_BITS).lib \ + $(DIST)/lib/secutl$(MOZ_BITS).lib \ + $(DIST)/lib/ssl$(MOZ_BITS).lib \ + $(NULL) + +LLFLAGS = $(LLFLAGS) \ + ../lib/$(OBJDIR)/sectool$(MOZ_BITS).lib \ + $(SEC_LIBS) \ + $(MOZ_LIBS) \ + $(DEPTH)/nspr/src/$(OBJDIR)/getopt.obj \ + $(LIBNSPR) \ + $(NULL) + + +include <$(DEPTH)\config\rules.mak> + +INSTALL = $(MAKE_INSTALL) + +objs: $(OBJS) + +$(PROGRAM):: + $(INSTALL) $(DIST)/bin/pr3240.dll ./$(OBJDIR) + +programs: $(PROGRAM) + +install:: $(TARGETS) + $(INSTALL) $(TARGETS) $(DIST)/bin + + +symbols: + @echo "CSRCS = $(CSRCS)" + @echo "INCS = $(INCS)" + @echo "OBJS = $(OBJS)" + @echo "LIBRARY = $(LIBRARY)" + @echo "PROGRAM = $(PROGRAM)" + @echo "TARGETS = $(TARGETS)" + @echo "DIST = $(DIST)" + @echo "VERSION_NUMBER = $(VERSION_NUMBER)" + @echo "WINFE = $(WINFE)" + @echo "DBM_LIB = $(DBM_LIB)" + @echo "INSTALL = $(INSTALL)" + diff --git a/mozilla/security/nss/cmd/dbtest/manifest.mn b/mozilla/security/nss/cmd/dbtest/manifest.mn new file mode 100644 index 00000000000..e323f301194 --- /dev/null +++ b/mozilla/security/nss/cmd/dbtest/manifest.mn @@ -0,0 +1,50 @@ +# +# The contents of this file are subject to the Mozilla Public +# License Version 1.1 (the "License"); you may not use this file +# except in compliance with the License. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS +# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or +# implied. See the License for the specific language governing +# rights and limitations under the License. +# +# The Original Code is the Netscape security libraries. +# +# The Initial Developer of the Original Code is Netscape +# Communications Corporation. Portions created by Netscape are +# Copyright (C) 1994-2000 Netscape Communications Corporation. All +# Rights Reserved. +# +# Contributor(s): +# +# Alternatively, the contents of this file may be used under the +# terms of the GNU General Public License Version 2 or later (the +# "GPL"), in which case the provisions of the GPL are applicable +# instead of those above. If you wish to allow use of your +# version of this file only under the terms of the GPL and not to +# allow others to use your version of this file under the MPL, +# indicate your decision by deleting the provisions above and +# replace them with the notice and other provisions required by +# the GPL. If you do not delete the provisions above, a recipient +# may use your version of this file under either the MPL or the +# GPL. +# + +CORE_DEPTH = ../../.. + +# MODULE public and private header directories are implicitly REQUIRED. +MODULE = security + +# This next line is used by .mk files +# and gets translated into $LINCS in manifest.mnw +# The MODULE is always implicitly required. +# Listing it here in REQUIRES makes it appear twice in the cc command line. +REQUIRES = seccmd dbm + +# DIRS = + +CSRCS = dbtest.c + +PROGRAM = dbtest +