remove all the old jssjava stuff. move everything else to

mozilla/security/jss/lib.


git-svn-id: svn://10.0.0.236/trunk@85102 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
nicolson%netscape.com
2001-01-19 00:11:12 +00:00
parent 399dc48081
commit 09571e0184
13 changed files with 0 additions and 1948 deletions

View File

@@ -1,252 +0,0 @@
#!/usr/bin/perl
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
############################################################################
# (I) Offer a standard "Usage:" statement and process command line options #
############################################################################
# (A) Print out the "Usage:" statement since there must always
# be at least TWO command line arguments to $0.
if ( "$ARGV[1]" eq "" )
{
USAGE:
print( STDERR "Usage: perl " );
print( STDERR $0 );
print( STDERR " <generated_filename>" );
print( STDERR " <jni_header_1>" );
print( STDERR " [jni_header_2] . . ." );
print( STDERR " [jni_header_n]\n" );
exit( -1 );
}
# (B) Initialize array index
$index = 0;
# (C) Process all command line options
while( $_ = $ARGV[0] )
{
if( ( "$ARGV[0]" eq "help" ) || ( "$ARGV[0]" eq "?" ) )
{
# (1) print Usage: message
goto USAGE;
}
elsif( "$ARGV[0]" =~ /^(.*).h$/ )
{
# (2) retrieve name of generated file
$generated_header_filename = $ARGV[0];
}
else
{
# (3) retrieve name of jni file
$jni_header_filename[$index] = "_jni/";
$jni_header_filename[$index] .= $ARGV[0];
$jni_header_filename[$index] =~ s/\./_/g;
$jni_header_filename[$index] .= ".h";
# (4) store class "path" of jni
$jni_class_path[$index] = $ARGV[0];
$jni_class_path[$index] =~ s/\./\//g;
# (5) compose native "name" of jni array entry
$jni_native_methods[$index] = "&";
$jni_native_methods[$index] .= $ARGV[0];
$jni_native_methods[$index] =~ s/\./_/g;
$jni_native_methods[$index] .= "_natives[0]";
$index++;
}
shift;
}
############################################################################
# (II) Generate header file containing native method registration material #
############################################################################
# (A) If it exists, remove the old header file
# prior to regenerating a new header file
if( -e $generated_header_filename )
{
unlink $generated_header_filename;
}
# (B) Create a new file that will contain all
# native method registration material
open( FD, ">>$generated_header_filename" );
# (C) Compose header section of new file
# (1) print the static portion
print( FD "/**-- DO NOT EDIT THIS FILE. IT IS MACHINE GENERATED --**/\n" );
print( FD "#include <jni.h>\n\n" );
# (2) print the computed portion
for( $index = 0; $index < scalar( @jni_header_filename ); $index++ )
{
print( FD "#include \"$jni_header_filename[$index]\"\n" );
}
print( FD "\n" );
# (D) Process all jni files
for( $index = 0; $index < scalar( @jni_header_filename ); $index++ )
{
# (1) initialize $class, $method, $signature,
# $jnimethod, and $jnimethod_count
$class = "";
$method = "";
$signature = "";
$jnimethod = "";
$jnimethod_count[$index] = 0;
# (2) open this jni file
open( JNIFD, $jni_header_filename[$index] );
# (3) process first value of "Class:" in this jni file
while( $line = <JNIFD> )
{
if( $line =~ /Class:/ )
{
# (a) remove all trailing white space
$line =~ s/\s*$//;
# (b) assign relevant portion of "Class:" string
$class = substr( $line, rindex( $line, " " ) + 1 );
# (c) print "Class:" string to file as an array name
print( FD "const JNINativeMethod ", $class, "_natives[] =\n" );
print( FD "{\n" );
# (d) break
last;
}
}
# (4) process each value of "Method:", "Signature:",
# and "JNIEXPORT" in this jni file
while( $line = <JNIFD> )
{
if( $line =~ /Method:/ )
{
# (a) remove all trailing white space
$line =~ s/\s*$//;
# (b) assign relevant portion of "Method:" string
$method = substr( $line, rindex( $line, " " ) + 1 );
}
elsif( $line =~ /Signature:/ )
{
# (c) remove all trailing white space
$line =~ s/\s*$//;
# (d) assign relevant portion of "Signature:" string
$signature = substr( $line, rindex( $line, " " ) + 1 );
}
elsif( $line =~ /JNIEXPORT/ )
{
# (e) remove all trailing white space
$line =~ s/\s*$//;
# (f) assign relevant portion of "JNIEXPORT" string
$jnimethod = substr( $line, rindex( $line, " " ) + 1 );
}
# (5) construct array entry from $method,
# $signature, and $jnimethod
if( ( $method ne "" ) &&
( $signature ne "" ) &&
( $jnimethod ne "" ) )
{
# (a) print an array value
print( FD " {\"", $method, "\", " );
print( FD "\"", $signature, "\", " );
print( FD "(void *)", $jnimethod, "},\n" );
# (b) increment the total number of
# JNI methods for this file
$jnimethod_count[$index]++;
# (c) reset $method, $signature,
# and $jnimethod to be empty
$method = "";
$signature = "";
$jnimethod = "";
}
}
# (5) terminate this native JNI methods array
print( FD " 0\n" );
print( FD "};\n\n" );
# (6) close this jni file
close( JNIFD );
# (7) move to next jni file
shift;
}
# (E) Compose footer section of new file
# (1) print the static portion
print( FD "struct native_methods {\n" );
print( FD " char *classname;\n" );
print( FD " int nmethods;\n" );
print( FD " const JNINativeMethod *nat_methods;\n" );
print( FD "} nativeMethods[] =\n" );
print( FD "{\n" );
# (2) print the computed portion
for( $index = 0; $index < scalar( @jni_header_filename ); $index++ )
{
print( FD " {\"$jni_class_path[$index]\", " );
print( FD "$jnimethod_count[$index], " );
print( FD "$jni_native_methods[$index]},\n" );
}
# (3) terminate the footer
print( FD " 0\n" );
print( FD "};\n\n" );
# (F) Close the new file that now contains all
# native method registration material
close( FD );

View File

@@ -1,103 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Netscape Security Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
all::
gmake -f jnigen.mk
gmake -f csrcs.mk
import::
gmake -f jnigen.mk import
gmake -f csrcs.mk import
clean::
gmake -f jnigen.mk clean
gmake -f csrcs.mk clean
export::
gmake -f jnigen.mk export
gmake -f csrcs.mk export
private_export::
gmake -f jnigen.mk private_export
gmake -f csrcs.mk private_export
libs::
gmake -f jnigen.mk libs
gmake -f csrcs.mk libs
program::
gmake -f jnigen.mk program
gmake -f csrcs.mk program
install::
gmake -f jnigen.mk install
gmake -f csrcs.mk install
release::
gmake -f jnigen.mk release
gmake -f csrcs.mk release
release_clean::
gmake -f jnigen.mk release_clean
gmake -f csrcs.mk release_clean
release_export::
gmake -f jnigen.mk release_export
gmake -f csrcs.mk release_export
release_classes::
gmake -f jnigen.mk release_classes
gmake -f csrcs.mk release_classes
ifneq ($(POLICY),)
release_policy::
gmake -f jnigen.mk release_policy
gmake -f csrcs.mk release_policy
endif
release_md::
gmake -f jnigen.mk release_md
gmake -f csrcs.mk release_md
release_jars::
gmake -f jnigen.mk release_jars
gmake -f csrcs.mk release_jars
release_cpdistdir::
gmake -f jnigen.mk release_cpdistdir
gmake -f csrcs.mk release_cpdistdir
tests::
gmake -f jnigen.mk tests
gmake -f csrcs.mk tests

View File

@@ -1,387 +0,0 @@
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Netscape Security Services for Java.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-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.
****************************************************************
Ninja 1.5
Build 1998????
****************************************************************
**
** Directory organization of this release
**
****************************************************************
The domestic version of this release is located under:
- /m/dist/ninja/domestic/JSS_1_5
The export version of this release is located under:
- /m/dist/ninja/export/JSS_1_5
Each version of the release consists of the following:
- a JAR file, xpclass.jar, that contains all of the public class files.
- a JAR file, xpclass_g.jar, that contains all of the debuggable public class
files.
- <platform> directories: where <platform> is of the form
<os-name><os-version>[_<compiler>][_<implementation strategy>]_<DBG/OPT>.OBJ
For example,
IRIX6.2_DBG.OBJ (debug build)
SunOS5.5.1_OPT.OBJ (optimized build)
SunOS5.5.1_gcc_DBG.OBJ (built using the non-native compiler gcc)
OSF1V4.0_PTH_DBG.OBJ (PTH means the implementation uses pthreads.)
AIX4.1_PTH_USER_DBG.OBJ (PTH_USER means the implementation is
a combination of user-level threads and pthreads.)
Under each <platform> directory is the file, mdbinary.jar. This is a
JAR file containing the compiled programs and libraries.
************************************************************
**
** Java Cross-platform code
** (Debug and Optimized, Domestic and Export)
**
************************************************************
All java code is built once per tree instance, and MUST be
built using the latest JDK available on all of the platforms.
At the current time, this is JDK 1.1.6.
************************************************************
**
** Platforms supported for Native JNI code
** (Debug and Optimized, Domestic and Export)
**
************************************************************
The following platforms are supported:
- Solaris on sparc: 2.5.1 (built with cc and JDK 1.1.6 libraries
running on native threads [Sun threads])
- Solaris on sparc: 2.6 (symbolically linked to corresponding
Solaris 2.5.1 releases)
- WIN95: 4.0 (built with Visual C++ 5.0 and JDK 1.1.6
libraries running on non-fiberous threads)
- WINNT: 4.0 (symbolically linked to corresponding
Windows 95 4.0 releases)
- HP-UX: B.11.00 (built with cc and JDK 1.1.5 libraries
running on native threads [pthreads])
************************************************************
**
** Future platforms supported for Native JNI code
** (Debug and Optimized, Domestic and Export)
**
************************************************************
The following platforms will be supported in the near future:
- AIX: 4.3 (built with cc and JDK 1.1.6 libraries
running on native threads [pthreads])
- IRIX: 6.2 (built with cc with "-n32" and JDK 1.1.5
libraries running on native threads [pthreads])
- OSF/1: 4.0D (built with cc and JDK 1.1.6 libraries
running on native threads [pthreads])
- Linux: 2.1 (built with gcc and JDK 1.1.3 libraries
running on native threads [pthreads])
************************************************************
**
** How to build Ninja yourself
**
************************************************************
To build this version of Ninja yourself, execute the following
instructions:
On UNIX machines (assuming tcsh):
For the FIRST INSTANCE of Ninja in your build tree:
1) IMPORTANT: If you have NOT built Ninja in your current tree, and
this is the FIRST platform that you are building it on,
then you MUST set the following environment variable
in order to build JAVA and JNI headers!!! Additionally,
this platform MUST utilize the latest "approved" version
of the JDK, since JAVA and JNI headers are only ever
built ONCE per instance of build tree!!! Note that at
the time of this writing, the only acceptible INITIAL
UNIX build platforms are Sun, AIX, and OSF/1.
setenv NS_USE_JDK_TOOLSET 1
2) You MAY need to set the following environment variables for this
platform:
setenv CVSROOT /m/src
setenv USE_PTHREADS 1
setenv USE_N32 1
setenv JAVA_HOME [...]
3) You MAY need to unset the following environment variables for this
platform:
unsetenv CVSREAD
unsetenv JAVAC
unsetenv JAVAH
unsetenv JMC
unsetenv USE_PTHREADS
unsetenv USE_N32
4) Check out the following source code directories (FIRST TIME ONLY!)
cvs co ns/coreconf
cvs co -r JSS_1_5 ns/ninja
cvs co ns/security/lib
cvs co -r JSS_1_5 ns/security/lib/manifest.mn
5) Setup ns/coreconf to reference the correct compiler paths for this
platform
cd ns/coreconf
source ./.cshrc
6) Build "nsinstall" executable for this platform
gmake
gmake BUILD_OPT=1
7) Import Ninja support files for this platform
cd ../ninja
gmake import
gmake BUILD_OPT=1 import
8) Change to the security directory
cd ../security/lib
9) Build the security library
gmake private_export
gmake
gmake BUILD_OPT=1
10) Change back to the ninja directory
cd ../../ninja
11) Create Ninja private exports (FIRST TIME ONLY!)
gmake private_export
12) Begin building Ninja from a "fresh" tree (FIRST TIME ONLY!)
gmake clean
gmake BUILD_OPT=1 clean
13) Build "standard debuggable" version for this UNIX
(e. g. - SunOS5.5.1_DBG.OBJ)
gmake
14) Build "standard optimized" version for this UNIX
(e. g. - SunOS5.5.1_OPT.OBJ)
gmake BUILD_OPT=1
15) You MUST always ensure that the following environment variable
is UNSET for ALL of the remaining builds!!!:
unsetenv NS_USE_JDK_TOOLSET
16) Build "_g debuggable" version for this UNIX
(e. g. - SunOS5.5.1_DBG.OBJ)
gmake JDK_DEBUG=1
For the FOLLOWING INSTANCES of Ninja in your build tree:
17) You MUST always ensure that the following environment variables
are UNSET for ALL of the remaining builds!!!:
unsetenv NS_USE_JDK_TOOLSET
unsetenv USE_PTHREADS
unsetenv USE_N32
18) You MAY need to set the following environment variables for this
platform:
setenv CVSROOT /m/src
setenv USE_PTHREADS 1 (this MUST be set on IRIX ONLY!!!)
setenv USE_N32 1 (this MUST be set on IRIX ONLY!!!)
setenv JAVA_HOME [...]
19) You MAY need to unset the following environment variables for this
platform:
unsetenv CVSREAD
unsetenv JAVAC
unsetenv JAVAH
unsetenv JMC
20) Setup ns/coreconf to reference the correct compiler paths for this
platform
cd ns/coreconf
source ./.cshrc
21) Build "nsinstall" executable for this platform
gmake
gmake BUILD_OPT=1
22) Import Ninja support files for this platform
cd ../ninja
gmake import
gmake BUILD_OPT=1 import
23) Change to the security directory
cd ../security/lib
24) Build the security library
gmake private_export
gmake
gmake BUILD_OPT=1
25) Change back to the ninja directory
cd ../../ninja
26) Build "standard debuggable" version for this UNIX
(e. g. - SunOS5.5.1_DBG.OBJ)
gmake
27) Build "standard optimized" version for this UNIX
(e. g. - SunOS5.5.1_OPT.OBJ)
gmake BUILD_OPT=1
28) Build "_g debuggable" version for this UNIX
(e. g. - SunOS5.5.1_DBG.OBJ)
gmake JDK_DEBUG=1
On Windows NT machines (assuming DOS shell):
For the FIRST INSTANCE of Ninja in your build tree:
1) IMPORTANT: If you have NOT built Ninja in your current tree, and
this is the FIRST platform that you are building it on,
then you MUST set the following environment variable
in order to build JAVA and JNI headers!!! Additionally,
this platform MUST utilize the latest "approved" version
of the JDK, since JAVA and JNI headers are only ever
built ONCE per instance of build tree!!!
set NS_USE_JDK_TOOLSET=1
2) Set the following environment variables for this platform:
set OS_TARGET=WIN95
set CVSROOT=:pserver:<username>@cvsserver:/m/src
set JAVA_HOME=[location of local JDK] (use UNIX forward slashes!)
3) You MAY need to unset the following environment variables for this
platform:
unset CVSREAD
unset JAVAC
unset JAVAH
unset JMC
4) Check out the following source code directories (FIRST TIME ONLY!)
cvs login
cvs co ns/coreconf
cvs co -r JSS_1_5 ns/ninja
cvs co ns/security/lib
cvs co -r JSS_1_5 ns/security/lib/manifest.mn
5) Import Ninja support files for this platform
cd ..\ninja
gmake import
gmake BUILD_OPT=1 import
6) Change to the security directory
cd ..\security\lib
7) Build the security library
gmake private_export
gmake
gmake BUILD_OPT=1
8) Change back to the ninja directory
cd ..\..\ninja
9) Create Ninja private exports (FIRST TIME ONLY!)
gmake private_export
10) HACK: Use the MKS toolkit shell (sh.exe) instead of shmsdos.exe!!!
copy shmsdos.exe shmsdos.sav
copy [MKS home]\sh.exe shmsdos.exe
11) Begin building Ninja from a "fresh" tree (FIRST TIME ONLY!)
gmake clean
gmake BUILD_OPT=1 clean
12) Build "standard debuggable" WIN954.0_DBG.OBJ version
gmake
13) Build "standard optimized" WIN954.0_OPT.OBJ version
gmake BUILD_OPT=1
14) You MUST always ensure that the following environment variable
is UNSET for ALL of the remaining builds!!!:
unset NS_USE_JDK_TOOLSET
15) Build "_g debuggable" WIN954.0_DBG.OBJ version
gmake JDK_DEBUG=1
16) IMPORTANT: Restore original shmsdos.exe!!!
copy shmsdos.sav shmsdos.exe

View File

@@ -1,67 +0,0 @@
The contents of this file are subject to the Mozilla Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Netscape Security Services for Java.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-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.
**********************************************************************
README.ninja contains instructions for building Ninja normally.
The following addenda tell how to build the version of Ninja that
is included with NSS 2.0.
1. Checkout ns/ninja with the tag NSS2_0_RELEASE instead of JSS_1_3.
2. Before building, do "setenv STANDALONE_LIBJSS 1". This will cause
libjss.so/jss.dll to have NSPR embedded in it. Normal Ninja builds do
not embed NSPR.
3. To release to /m/dist, do NOT do "gmake release". First set the release
version to something suitable by doing something like
"setenv RELEASE_VERSION NSS_2_0". Then, in the top level directory of
ninja (ns/ninja), do "gmake nss_release". This will create one of the
following outputs in /m/dist/ninja/<RELEASE_VERSION>:
UNIX
====
unixjss.tar
- jss.zip
- contains JSS classes for SSL and initialization
- libjss.so
- native implementation library, consists of security, NSPR, DBM,
and the native JSS code.
WINDOWS
=======
winjss.zip
- jss.zip
- same as in the UNIX version, contains JSS classes for SSL
and initialization
- jss.dll
- native implementation library, consists of security, NSPR, DBM,
and the native JSS code.

View File

@@ -1,109 +0,0 @@
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Netscape Security Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
#######################################################################
# Adjust specific variables for specific platforms #
#######################################################################
# We don't need static, import, or purify libraries
LIBRARY=
IMPORT_LIBRARY=
PURE_LIBRARY=
# Get rid of embedded "32" in library names on Windows
ifeq ($(OS_ARCH),WINNT)
SHARED_LIBRARY := $(subst 32,,$(SHARED_LIBRARY))
SHARED_LIBRARY_G := $(subst 32,,$(SHARED_LIBRARY_G))
endif
#######################################################################
# Adjust specific variables for all platforms #
#######################################################################
OS_CFLAGS += -DNSPR20=1
ifeq ($(OS_ARCH),WINNT)
LDOPTS += -PDB:NONE
endif
# Only used for "sanitizing" the release
STATIC_LIB_EXTENSION=
DYNAMIC_LIB_EXTENSION=
PURE_LIB_EXTENSION=
# Include "funky" link path to pick up ALL native libraries for OSF/1.
ifeq ($(OS_ARCH), OSF1)
JAVA_LIBS += -L$(JAVA_HOME)/$(JAVA_LIBDIR).no
endif
#######################################################################
# Set the LDFLAGS value to encompass all normal link options and all #
# special system linking options #
#######################################################################
ifneq ($(STANDALONE_LIBJSS),0)
LDFLAGS += $(LDOPTS) $(LIBJSSSSL) $(LIBJSSMANAGE) $(LIBSVRPLCY) $(LIBJSSPOLICY) $(LIBJSSPKCS11) $(LIBJSSMANAGE) $(LIBJSSCRYPTO) $(LIBJSSPKCS11) $(LIBJSSUTIL) $(LIBJSSMANAGE) $(LIBSSL) $(LIBPKCS7) $(LIBCERT) $(LIBKEY) $(LIBSECMOD) $(LIBJSSHCLHACKS) $(LIBCRYPTO) $(LIBSECUTIL) $(LIBSECMOD) $(LIBSSL) $(LIBPKCS12) $(LIBPKCS7) $(LIBCERT) $(LIBKEY) $(LIBCRYPTO) $(LIBSECUTIL) $(LIBHASH) $(LIBDBM) $(LIBPLDS) $(LIBPLC) $(LIBPR) $(JAVA_LIBS) $(DLLSYSTEM)
else
LDFLAGS += $(LDOPTS) $(LIBJSSSSL) $(LIBJSSMANAGE) $(LIBSVRPLCY) $(LIBJSSPOLICY) $(LIBJSSPKCS11) $(LIBJSSMANAGE) $(LIBJSSCRYPTO) $(LIBJSSPKCS11) $(LIBJSSUTIL) $(LIBJSSMANAGE) $(LIBSSL) $(LIBPKCS7) $(LIBCERT) $(LIBKEY) $(LIBSECMOD) $(LIBJSSHCLHACKS) $(LIBCRYPTO) $(LIBSECUTIL) $(LIBSECMOD) $(LIBSSL) $(LIBPKCS12) $(LIBPKCS7) $(LIBCERT) $(LIBKEY) $(LIBCRYPTO) $(LIBSECUTIL) $(LIBHASH) $(LIBDBM) $(DLLPLDS) $(DLLPLC) $(DLLPR) $(JAVA_LIBS) $(DLLSYSTEM)
endif
#######################################################################
# Set the LD_LIBS value to encompass all static JSS, security, and #
# dbm libraries #
#######################################################################
ifeq ($(OS_ARCH), OSF1)
LD_LIBS += $(LIBJSSSSL) $(LIBJSSMANAGE) $(LIBSVRPLCY) $(LIBJSSPOLICY) $(LIBJSSPKCS11) $(LIBJSSCRYPTO) $(LIBJSSUTIL) $(LIBJSSHCLHACKS) $(LIBSSL) $(LIBSECMOD) $(LIBPKCS12) $(LIBCERT) $(LIBPKCS7) $(LIBKEY) $(LIBCRYPTO) $(LIBHASH) $(LIBSECUTIL) $(LIBDBM)
else
LD_LIBS += $(LIBJSSSSL) $(LIBJSSMANAGE) $(LIBSVRPLCY) $(LIBJSSPOLICY) $(LIBJSSPKCS11) $(LIBJSSMANAGE) $(LIBJSSCRYPTO) $(LIBJSSUTIL) $(LIBJSSHCLHACKS) $(LIBJSSMANAGE) $(LIBSSL) $(LIBSECMOD) $(LIBPKCS12) $(LIBCERT) $(LIBPKCS7) $(LIBKEY) $(LIBCRYPTO) $(LIBHASH) $(LIBSECUTIL) $(LIBDBM)
endif
#######################################################################
# Append additional LD_LIBS value to encompass all dynamic NSPR 2.0, #
# java, and system libraries #
#######################################################################
ifneq ($(STANDALONE_LIBJSS),0)
# NSPR is included in libjss
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(LIBPLDS) $(LIBPLC) $(LIBPR) $(JAVA_LIBS) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) $(LIBPLDS) $(LIBPLC) $(LIBPR) $(JAVA_LIBS) $(DLLSYSTEM)
endif
else
# NSPR is not included in libjss
ifeq ($(OS_ARCH), WINNT)
LD_LIBS += $(DLLPLDS) $(DLLPLC) $(DLLPR) $(JAVA_LIBS) $(DLLSYSTEM)
else
LD_LIBS += -L$(SOURCE_LIB_DIR) -lplds3 -lplc3 -lnspr3 $(JAVA_LIBS) $(DLLSYSTEM)
endif
endif

View File

@@ -1,96 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Netscape Security Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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
PRIVATE_EXPORTS = registerNatives.h \
$(NULL)
REQUIRES = dbm \
security \
svrcore \
$(NULL)
CSRCS = registerNatives.c \
jssjava.c \
$(NULL)
XP_FILES = README
# NOTE: Beginning with JSS_2_1, we now ONLY create dynamic libraries . . .
# (e. g. - we no longer build the "jssjava" executable)
LIBRARY_NAME = jss21
# PROGRAM = jssjava
#######################################################################
# (2) Include "global" configuration information. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/coreconf/config.mk
#######################################################################
# (3) Include "component" configuration information. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/$(MODULE)/config/config.mk
#######################################################################
# (4) Include "local" platform-dependent assignments (OPTIONAL). #
#######################################################################
include config.mk
#######################################################################
# (5) Execute "global" rules. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/coreconf/rules.mk
#######################################################################
# (6) Execute "component" rules. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/$(MODULE)/config/rules.mk
#######################################################################
# (7) Execute "local" rules. (OPTIONAL). #
#######################################################################
include rules.mk

View File

@@ -1,126 +0,0 @@
#! gmake
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Netscape Security Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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
JNI_GEN += org.mozilla.jss.ssl.SSLInputStream \
org.mozilla.jss.ssl.SSLOutputStream \
org.mozilla.jss.ssl.SSLSocketImpl \
org.mozilla.jss.pkcs11.PrivateKeyProxy \
org.mozilla.jss.pkcs11.PublicKeyProxy \
org.mozilla.jss.CryptoManager \
org.mozilla.jss.NSSInit \
org.mozilla.jss.DatabaseCloser \
org.mozilla.jss.crypto.Algorithm \
org.mozilla.jss.crypto.EncryptionAlgorithm \
org.mozilla.jss.crypto.PQGParams \
org.mozilla.jss.pkcs11.PK11Token \
org.mozilla.jss.pkcs11.CertProxy \
org.mozilla.jss.pkcs11.CipherContextProxy \
org.mozilla.jss.pkcs11.ModuleProxy \
org.mozilla.jss.pkcs11.PK11RSAPublicKey \
org.mozilla.jss.pkcs11.PK11DSAPublicKey \
org.mozilla.jss.pkcs11.PK11KeyPairGenerator \
org.mozilla.jss.pkcs11.PK11KeyGenerator \
org.mozilla.jss.pkcs11.PK11Cert \
org.mozilla.jss.pkcs11.PK11Cipher \
org.mozilla.jss.pkcs11.PK11MessageDigest \
org.mozilla.jss.pkcs11.PK11Module \
org.mozilla.jss.pkcs11.PK11PrivKey \
org.mozilla.jss.pkcs11.PK11PubKey \
org.mozilla.jss.pkcs11.PK11SymKey \
org.mozilla.jss.pkcs11.SymKeyProxy \
org.mozilla.jss.pkcs11.SigContextProxy \
org.mozilla.jss.pkcs11.PK11Signature \
org.mozilla.jss.pkcs11.PK11Store \
org.mozilla.jss.pkcs11.PK11KeyWrapper \
org.mozilla.jss.util.Password \
org.mozilla.jss.util.Debug \
org.mozilla.jss.pkcs11.PK11SecureRandom \
$(NULL)
#######################################################################
# (2) Include "global" configuration information. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/coreconf/config.mk
#######################################################################
# (3) Include "component" configuration information. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/$(MODULE)/config/config.mk
#######################################################################
# (4) Include "local" platform-dependent assignments (OPTIONAL). #
#######################################################################
ALL_TRASH += nativeMethods.h
#######################################################################
# (5) Execute "global" rules. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/coreconf/rules.mk
#######################################################################
# (6) Execute "component" rules. (OPTIONAL) #
#######################################################################
include $(CORE_DEPTH)/$(MODULE)/config/rules.mk
#######################################################################
# (7) Execute "local" rules. (OPTIONAL). #
#######################################################################
export::
@if test ! -d nativeMethods.h; then \
echo perl GenNativesToRegister.pl nativeMethods.h $(JNI_GEN) ; \
perl GenNativesToRegister.pl nativeMethods.h $(JNI_GEN) ; \
else \
echo "Checking to see if nativeMethods.h file is out of date" ; \
cmd="perl regen_nativeMethods.pl $(PERLARG) \
-d $(JNI_GEN_DIR) nativeMethods.h $(JNI_GEN)"; \
echo $$cmd; \
list=`$$cmd`; \
if test "$${list}x" != "x"; then \
echo perl GenNativesToRegister.pl nativeMethods.h $(JNI_GEN) ; \
perl GenNativesToRegister.pl nativeMethods.h $(JNI_GEN) ; \
fi \
fi

View File

@@ -1,489 +0,0 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Netscape Security Services for Java.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-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.
*/
/*
* Crypto VM - Java VM with statically linked crypto aka libsec routines.
*
* static routines are registered to VM using JNI API.
*/
#include <jni.h>
#include "registerNatives.h"
#include "nspr.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <svrplcy.h>
PR_IMPLEMENT( SVRPLCYPolicyType )
JSS_getExportControlPolicyType( void );
#if defined(_WINDOWS)
#define USAGE "Usage: %s [-version] [-debug] [-nojit] [-classpath classpath] [-ms<size>] [-mx<size>] [-D property] <java_class>\n"
#else
#define USAGE "Usage: %s [-version] [-debug] [-classpath classpath] [-ms<size>] [-mx<size>] [-D property] <java_class>\n"
#endif
/* Unique "jssjava" version information */
/* NOTE: Must be changed for ALL new releases!!! */
#define JSSJAVA_MAJOR_VERSION "2"
#define JSSJAVA_MINOR_VERSION "1"
#define JDK_MAJOR_VERSION "1.2"
#define JDK_MINOR_VERSION "2"
/* args & options */
char * prog_name = 0;
char * classpath = 0;
char * javaclass = 0;
char ** javaArgs = 0;
int numJavaArgs = 0;
int debug = 0;
int jssjava_version = 0;
/* set property to not load jdkcertsec10 from the beg */
char ** userProps = 0;
int numUserProps = 0;
static int maxUserProps = 0;
static void errExit(int exitCode)
{
#if defined(DEBUG) && defined(_WINDOWS)
_sleep(10);
#endif
exit(exitCode);
}
static void addUserProp(char *keyval)
{
char **newUserProps = 0;
char *val = 0;
if (maxUserProps < numUserProps+2) {
newUserProps = (char **)calloc(numUserProps+4, sizeof(char *));
maxUserProps = numUserProps+4;
memcpy(newUserProps, userProps, numUserProps*sizeof(char *));
userProps = newUserProps;
}
if (val = (char *)strtok(keyval, (const char *)"="))
*val++ = 0;
userProps[numUserProps++] = keyval;
userProps[numUserProps++] = val;
}
static void getArgs (int argc, char *argv[])
{
int i,j;
char* msptr;
char* mxptr;
#ifdef DEBUG_nelsonb
for (i = 0; i < argc; ++i)
puts(argv[i]);
#endif
prog_name = *argv++; argc--;
for (i = 0; i < argc; i++) {
if (!strcmp(argv[i], "-version")) {
jssjava_version = 1;
}
else if (!strcmp(argv[i], "-debug")) {
debug = 1;
}
else if (!strcmp(argv[i], "-classpath")) {
if (++i == argc)
break;
classpath = argv[i];
}
else if (!strcmp(argv[i], "-D")) {
if (++i == argc)
break;
addUserProp(argv[i]);
}
#if defined(_WINDOWS)
else if (!strcmp(argv[i], "-nojit")) {
addUserProp(argv[i]);
}
#endif
else if (!strncmp(argv[i], "-ms", 3)) {
msptr = (char*)malloc(strlen(argv[i]) + 5);
sprintf(msptr, "-X%s", argv[i] + 1); /* skip '-' */
addUserProp(msptr);
}
else if (!strncmp(argv[i], "-mx", 3)) {
mxptr = (char*)malloc(strlen(argv[i]) + 5);
sprintf(mxptr, "-X%s", argv[i] + 1); /* skip '-' */
addUserProp(mxptr);
} else if(!strcmp(argv[i], "-info")) {
/* -info is a dummy argument where information can be placed
* that will show up in a ps listing. Its argument is
* ignored. */
if( i+1 < argc ) {
++i;
}
} else {
javaclass = argv[i++];
break;
}
}
if (jssjava_version == 1) {
SVRPLCYPolicyType policy;
char policyString[50];
/* First, initialize export control policy information. */
if( SVRPLCY_InstallUtilityPolicy() != PR_SUCCESS ) {
errExit(-1);
}
/* Second, establish which export control policy is being used. */
policy = JSS_getExportControlPolicyType();
switch( policy ) {
case SVRPLCYNull:
strcpy( policyString, "null" );
break;
case SVRPLCYDomestic:
strcpy( policyString, "domestic" );
break;
case SVRPLCYExport:
strcpy( policyString, "export" );
break;
case SVRPLCYFrance:
strcpy( policyString, "france" );
break;
default:
strcpy( policyString, "none" );
break;
}
/* Third, print the export control policy & version information: */
printf( "%s version \"%s.%s\" [%s]\n"
" (uses JDK \"%s.%s\")\n",
prog_name, JSSJAVA_MAJOR_VERSION, JSSJAVA_MINOR_VERSION,
policyString, JDK_MAJOR_VERSION, JDK_MINOR_VERSION );
errExit(0);
}
if (javaclass == 0) {
printf(USAGE, prog_name);
errExit(1);
}
numJavaArgs = argc - i;
if (numJavaArgs > 0)
javaArgs = &argv[i];
for (j = strlen(javaclass)-1; j >= 0; j--) {
if (javaclass[j] == '.')
javaclass[j] = '/';
}
}
static int setUserProps(JNIEnv *env)
{
jclass system_cls;
jobject system_props;
jmethodID getprop_mid;
jmethodID setprop_mid;
jclass prop_cls;
jmethodID put_mid;
jstring key, val;
jthrowable exc;
int i;
/* get java.lang.System class and its get/setProperties methods */
system_cls = (*env)->FindClass(env, "java/lang/System");
if (system_cls == 0) {
fprintf(stderr, "Can't find java/lang/System.\n");
return -1;
}
getprop_mid = (*env)->GetStaticMethodID(env, system_cls, "getProperties",
"()Ljava/util/Properties;");
if (getprop_mid == 0) {
fprintf(stderr,"Can't find getProperties method in java.lang.System\n");
return -1;
}
setprop_mid = (*env)->GetStaticMethodID(env, system_cls, "setProperties",
"(Ljava/util/Properties;)V");
if (setprop_mid == 0) {
fprintf(stderr,"Can't find setProperties method in java.lang.System\n");
return -1;
}
/* get system properties, java.util.Properties class and its put method */
system_props = (*env)->CallStaticObjectMethod(env, system_cls, getprop_mid);
exc = (*env)->ExceptionOccurred(env);
if (exc) {
(*env)->ExceptionDescribe(env);
return -1;
}
prop_cls = (*env)->GetObjectClass(env, system_props);
put_mid = (*env)->GetMethodID(env, prop_cls, "put",
"(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
if (put_mid == 0) {
fprintf(stderr, "Can't find put method in java.util.Properties\n");
return -1;
}
/* add default prop to not load JSS library */
key = (*env)->NewStringUTF(env, "jss.load");
if (key == 0) {
fprintf(stderr, "Out of memory\n");
return -1;
}
val = (*env)->NewStringUTF(env, "no");
if (val == 0) {
fprintf(stderr, "Out of memory\n");
return -1;
}
(void)(*env)->CallObjectMethod(env, system_props, put_mid,
(jobject)key, (jobject)val);
exc = (*env)->ExceptionOccurred(env);
if (exc) {
(*env)->ExceptionDescribe(env);
return -1;
}
/* add user properties */
i = 0;
while (i < numUserProps) {
key = (*env)->NewStringUTF(env, userProps[i++]);
if (key == 0) {
fprintf(stderr, "Out of memory\n");
errExit(1);
}
val = (*env)->NewStringUTF(env, userProps[i++]);
if (val == 0) {
fprintf(stderr, "Out of memory\n");
errExit(1);
}
(void)(*env)->CallObjectMethod(env, system_props, put_mid,
(jobject)key, (jobject)val);
exc = (*env)->ExceptionOccurred(env);
if (exc) {
(*env)->ExceptionDescribe(env);
return -1;
}
}
/* set new set of system properties */
(*env)->CallStaticVoidMethod(env, system_cls, setprop_mid, system_props);
exc = (*env)->ExceptionOccurred(env);
if (exc) {
(*env)->ExceptionDescribe(env);
errExit(1);
}
return 0;
}
static jobjectArray setJavaArgs(JNIEnv *env)
{
jclass jstr_cls;
jstring jstr;
jobjectArray java_args;
int i;
jstr_cls = (*env)->FindClass(env, "java/lang/String");
if (numJavaArgs != 0) {
jstr = (*env)->NewStringUTF(env, javaArgs[0]);
if (jstr == 0) {
fprintf(stderr, "Out of memory\n");
return 0;
}
java_args = (*env)->NewObjectArray(env, numJavaArgs, jstr_cls, jstr);
if (java_args == 0) {
fprintf(stderr, "Out of memory\n");
return 0;
}
for (i=1; i < numJavaArgs; i++) {
jstr = (*env)->NewStringUTF(env, javaArgs[i]);
if (jstr == 0) {
fprintf(stderr, "Out of memory\n");
return 0;
}
(*env)->SetObjectArrayElement(env, java_args, i, jstr);
}
}
else {
java_args = (*env)->NewObjectArray(env, 0, jstr_cls, 0);
if (java_args == 0) {
fprintf(stderr, "Out of memory\n");
return 0;
}
}
return java_args;
}
int main (int argc, char *argv[])
{
JDK1_1InitArgs vm_args;
JNIEnv * env;
JavaVM * jvm;
jclass cls;
jmethodID mid;
jobjectArray java_args;
jthrowable exc;
jint res;
/* get options, check usage */
getArgs(argc, argv);
/* initialize VM args */
/* IMPORTANT: specify vm_args version # for JDK1.1.2 and beyond */
vm_args.version = 0x00010001;
JNI_GetDefaultJavaVMInitArgs(&vm_args);
/* set VM args from options */
if (classpath || (classpath = getenv("CLASSPATH")))
vm_args.classpath = classpath;
if (debug)
vm_args.debugging = JNI_TRUE;
/* create Java VM */
res = JNI_CreateJavaVM(&jvm, &env, &vm_args);
if (res < 0) {
fprintf(stderr, "Can't create Java VM\n");
errExit(1);
}
/* set additional system properties */
if (setUserProps(env) < 0) {
fprintf(stderr, "Error setting system properties.\n");
errExit(1);
}
/* register all statically linked native methods. */
if (registerNatives(env) < 0) {
fprintf(stderr,"Error registering statically linked native methods\n");
errExit(1);
}
/* set up java args */
java_args = setJavaArgs(env);
if (java_args == 0) {
fprintf(stderr, "Error setting up arguments to Java class");
errExit(1);
}
PR_Init( PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 0);
/* find the java class & main method to invoke */
cls = (*env)->FindClass(env, javaclass);
if (cls == 0) {
fprintf(stderr, "Can't find %s class\n", javaclass);
errExit(1);
}
mid = (*env)->GetStaticMethodID(env,cls,"main","([Ljava/lang/String;)V");
if (mid == 0) {
fprintf(stderr, "Can't find %s.main\n", javaclass);
errExit(1);
}
/* call java main */
(*env)->CallStaticVoidMethod(env, cls, mid, java_args);
exc = (*env)->ExceptionOccurred(env);
if (exc) {
(*env)->ExceptionDescribe(env);
}
#ifdef DEBUG
/* Garbage collect to run finalizers before exiting. Also, try to
* verify the NativeProxy class, but keep in mind that it might not
* be loaded at all. */
{
jclass systemClass;
jclass nativeProxyClass;
jmethodID gc;
jmethodID finalize;
jmethodID assertRegistryEmpty;
/*
* garbage collect
*/
systemClass = (*env)->FindClass(env, "java/lang/System");
PR_ASSERT(systemClass != NULL);
/* This is hanging on Solaris for some reason :( */
#if 0
gc = (*env)->GetStaticMethodID(env, systemClass, "gc", "()V");
PR_ASSERT( gc != NULL);
(*env)->CallStaticVoidMethod(env, systemClass, gc);
PR_ASSERT( (*env)->ExceptionOccurred(env) == NULL );
#endif
finalize = (*env)->GetStaticMethodID(env, systemClass, "runFinalization",
"()V");
PR_ASSERT( finalize != NULL );
(*env)->CallStaticVoidMethod(env, systemClass, finalize);
PR_ASSERT( (*env)->ExceptionOccurred(env) == NULL );
/*
* Make sure the registry is empty
*/
nativeProxyClass = (*env)->FindClass(env,
"org/mozilla/jss/util/NativeProxy");
/* If it's NULL, don't worry, maybe they just aren't using the class */
(*env)->ExceptionClear(env);
if(nativeProxyClass != NULL) {
/* OK, the class is loaded, so we should validate it */
assertRegistryEmpty = (*env)->GetStaticMethodID(env, nativeProxyClass,
"assertRegistryEmpty", "()V");
PR_ASSERT(assertRegistryEmpty != NULL);
(*env)->CallStaticVoidMethod(env, nativeProxyClass,
assertRegistryEmpty);
if( (*env)->ExceptionOccurred(env) != NULL ) {
(*env)->ExceptionDescribe(env);
}
}
}
#endif
(*jvm)->DestroyJavaVM(jvm);
#if defined(DEBUG) && defined(WIN32)
_sleep(10 * 1000); // milliseconds
#endif
return 0;
}

View File

@@ -1,39 +0,0 @@
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Netscape Security Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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 = ninja
NS_USE_JDK = 1

View File

@@ -1,89 +0,0 @@
#!/usr/local/bin/perl
#
# 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 Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
# Input: -d dir generated_file foo1 foo2 . . .
# Compares generated file with "_jni/foo1.h", and
# generated file with "_jni/foo2.h", etc.
#
# (NOTE: unlike its closely related cousin, outofdate.pl,
# the "-d dir" must always be specified; also, unlike
# its closely related cousin, jniregen.pl, if the generated file
# is older than ANY "_jni/foo?.h", then the generated file will
# be regenerated in its entirety, rather than just the portions
# associated with the list of files returned by this script)
#
# Returns: list of headers which are NEWER than corresponding class
# files (non-existant header files are considered to be real old :-)
$found = 1;
if ($ARGV[0] eq '-d')
{
$headerdir = $ARGV[1];
$headerdir .= "/";
shift;
shift;
}
else
{
print STDERR "Usage: perl ", $0, " -d dir generated_file foo1 foo2 . . .\n";
exit -1;
}
$generatedfilename = $ARGV[0];
shift;
foreach $filename (@ARGV)
{
$headerfilename = $headerdir;
$headerfilename .= $filename;
$headerfilename =~ s/\./_/g;
$headerfilename .= ".h";
( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $generatedmtime,
$ctime, $blksize, $blocks ) = stat( $generatedfilename );
( $dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $headermtime,
$ctime, $blksize, $blocks ) = stat( $headerfilename );
if( $headermtime > $generatedmtime )
{
print $filename, " ";
$found = 0;
}
}
print "\n";
exit 0;

View File

@@ -1,86 +0,0 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Netscape Security Services for Java.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-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.
*/
/*
* registerNatives.c -
* registers statically linked native methods with the VM.
*/
#include <jni.h>
#include <assert.h>
#include <stdlib.h>
#include "registerNatives.h"
#include "nativeMethods.h"
int
registerNatives(JNIEnv *env)
{
jclass c;
jint res;
jthrowable exc;
int j;
if( (*env)->ExceptionOccurred(env) != NULL ) {
fprintf(stderr,
"ERROR: exception occurred before registering natives\n");
exit(-1);
}
for (j = 0; nativeMethods[j].classname != 0; j++) {
c = (*env)->FindClass(env, nativeMethods[j].classname);
if (c == 0) {
(*env)->ExceptionDescribe(env);
(*env)->ExceptionClear(env);
fprintf(stderr, "Can't find %s class\n",
nativeMethods[j].classname);
continue;
}
res = (*env)->RegisterNatives(env, c,
nativeMethods[j].nat_methods,
nativeMethods[j].nmethods);
exc = (*env)->ExceptionOccurred(env);
if (exc) {
(*env)->ExceptionDescribe(env);
return -1;
}
if (res < 0) {
fprintf(stderr, "Error in register statically linked native methods"
"for %s\n", nativeMethods[j].classname);
return -1;
}
}
return 0;
}

View File

@@ -1,38 +0,0 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Netscape Security Services for Java.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998-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.
*/
/*
* registerNatives.h
*/
int registerNatives(JNIEnv *env);

View File

@@ -1,67 +0,0 @@
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is the Netscape Security Services for Java.
#
# The Initial Developer of the Original Code is Netscape
# Communications Corporation. Portions created by Netscape are
# Copyright (C) 1998-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.
#
release_md:: release_sanitize
release_sanitize::
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jsscrypto$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jsshclhacks$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jssmanage$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jsspkcs11$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jsspolicy$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jssssl$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(LIB_PREFIX)jssutil$(STATIC_LIB_EXTENSION)$(STATIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jsscrypto$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jsshclhacks$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jssmanage$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jsspkcs11$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jsspolicy$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jssssl$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(DLL_PREFIX)jssutil$(DYNAMIC_LIB_EXTENSION)$(DYNAMIC_LIB_SUFFIX)
ifeq ($(OS_ARCH),WINNT)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jsscrypto$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jsshclhacks$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jssmanage$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jsspkcs11$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jsspolicy$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jssssl$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(IMPORT_LIB_PREFIX)jssutil$(IMPORT_LIB_EXTENSION)$(IMPORT_LIB_SUFFIX)
else
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jsscrypto$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jsshclhacks$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jssmanage$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jsspkcs11$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jsspolicy$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jssssl$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
-rm $(SOURCE_RELEASE_PREFIX)/$(SOURCE_RELEASE_LIB_DIR)/$(PURE_LIB_PREFIX)jssutil$(PURE_LIB_EXTENSION)$(PURE_LIB_SUFFIX)
endif