You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by mt...@apache.org on 2009/05/09 11:40:46 UTC

svn commit: r773187 - in /commons/sandbox/runtime/trunk: ./ src/main/native/ src/main/native/include/ src/main/native/modules/network/ssl/ src/main/native/shared/ src/test/org/apache/commons/runtime/

Author: mturk
Date: Sat May  9 09:40:46 2009
New Revision: 773187

URL: http://svn.apache.org/viewvc?rev=773187&view=rev
Log:
Add ssl module library stub

Added:
    commons/sandbox/runtime/trunk/src/main/native/include/acr_openssl.h   (with props)
    commons/sandbox/runtime/trunk/src/main/native/shared/modules.c   (with props)
Modified:
    commons/sandbox/runtime/trunk/build.xml
    commons/sandbox/runtime/trunk/src/main/native/Makefile.in
    commons/sandbox/runtime/trunk/src/main/native/Makefile.msc.in
    commons/sandbox/runtime/trunk/src/main/native/configure
    commons/sandbox/runtime/trunk/src/main/native/modules/network/ssl/openssl.c
    commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java

Modified: commons/sandbox/runtime/trunk/build.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/build.xml?rev=773187&r1=773186&r2=773187&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/build.xml (original)
+++ commons/sandbox/runtime/trunk/build.xml Sat May  9 09:40:46 2009
@@ -43,7 +43,7 @@
     <property name="commons-logging.jar" value="${commons-logging.home}/commons-logging-1.1.1.jar"/>
     <property name="runtime.natives.path" value="${basedir}/src/main/native"/>
     <property name="runtime.libname" value="libacr"/>
-    <property name="runtime.library.path" value="${runtime.natives.path}/.libs"/>
+    <property name="runtime.library.path" value="${runtime.natives.path}"/>
     <property name="runtime.attributes.base" value="org/apache/commons/runtime"/>
 
     <property name="compile.source" value="1.5"/>

Modified: commons/sandbox/runtime/trunk/src/main/native/Makefile.in
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/Makefile.in?rev=773187&r1=773186&r2=773187&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/Makefile.in (original)
+++ commons/sandbox/runtime/trunk/src/main/native/Makefile.in Sat May  9 09:40:46 2009
@@ -29,9 +29,11 @@
 BITS=@bits@
 CC=@cc@
 SO=@so@
+LIB=@lib@
 OBJ=@obj@
 EXE=@exe@
 AR=@ar@
+ARFLAGS=@arflags@
 RANLIB=@ranlib@
 PREFIX=@prefix@
 LIBDIR=@libdir@
@@ -44,13 +46,15 @@
 LDFLAGS=@ldflags@
 SHFLAGS=@shflags@
 INCLUDES=@includes@
+SSLFLAGS=@sslflags@
 
 DESTDIR=$(PREFIX)
 SONAME=lib$(NAME)$(SO)
+STATICLIB=lib$(NAME)$(LIB)
 SHAREDLIB=lib$(NAME)$(SO)
+SSLMODLIB=lib$(NAME)ssl$(SO)
 
 SRCDIR=$(TOPDIR)
-BLDDIR=$(TOPDIR)/.libs
 PWDDIR=$(PWD)
 
 ARCH_DIRS=\
@@ -72,6 +76,7 @@
 	$(SRCDIR)/shared/error.$(OBJ) \
 	$(SRCDIR)/shared/fco.$(OBJ) \
 	$(SRCDIR)/shared/memory.$(OBJ) \
+	$(SRCDIR)/shared/modules.$(OBJ) \
 	$(SRCDIR)/shared/native.$(OBJ) \
 	$(SRCDIR)/shared/pointer.$(OBJ) \
 	$(SRCDIR)/shared/string.$(OBJ) \
@@ -137,7 +142,7 @@
 	$(SRCDIR)/test/testcase.$(OBJ)
 
 
-all: setup $(SHAREDLIB)
+all: $(STATICLIB) $(SHAREDLIB) @modules@
 
 .c.$(OBJ):
 	$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -c -o $@ $<
@@ -145,23 +150,28 @@
 .cpp.$(OBJ):
 	$(CXX) $(CFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDES) -c -o $@ $<
 
-$(SHAREDLIB): $(COMMON_OBJS) $(@platform@_OBJS) $(OPENSSL_OBJS) @testobjs@
-	$(CC) $(SHFLAGS) $(LDFLAGS) -o $(BLDDIR)/$@ $(COMMON_OBJS) $(@platform@_OBJS) $(OPENSSL_OBJS) @testobjs@
+$(STATICLIB): $(COMMON_OBJS) $(@platform@_OBJS) @testobjs@
+	$(AR) $(ARFLAGS) $@ $(COMMON_OBJS) $(@platform@_OBJS) @testobjs@
+	-@$(RANLIB) $@
 
-setup:
-	@mkdir -p $(BLDDIR)
+$(SHAREDLIB): $(COMMON_OBJS) $(@platform@_OBJS) @testobjs@ $(STATICLIB)
+	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(@platform@_OBJS) @testobjs@
+
+$(SSLMODLIB): $(SHAREDLIB) $(OPENSSL_OBJS)
+	$(CC) $(SHFLAGS) $(LDFLAGS) $(SSLFLAGS) -L. -l$(NAME) -o $@ $(OPENSSL_OBJS)
 
 clean:
 	for i in $(SRCDIR) $(ARCH_DIRS) ; do rm -f $$i/*.$(OBJ) ; done
-	rm -f $(BLDDIR)/*
+	rm -f *$(SO)
+	rm -f *$(LIB)
 
 distclean: clean
 	rm -f $(TOPDIR)/Makefile
 	rm -f $(INCDIR)/ccconfig.h
-	rm -rf $(BLDDIR)
 
 install: all
 	@mkdir -p $(DESTDIR)/include
 	@mkdir -p $(DESTDIR)/$(LIBDIR)
-	cp -f $(INCDIR)/* $(DESTDIR)/include/
-	cp -f $(BLDDIR)/$(SHAREDLIB) $(DESTDIR)/lib/
+	cp -rf $(INCDIR)/* $(DESTDIR)/include/
+	cp -f *$(LIB) $(DESTDIR)/lib/
+	cp -f *$(SO) $(DESTDIR)/lib/

Modified: commons/sandbox/runtime/trunk/src/main/native/Makefile.msc.in
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/Makefile.msc.in?rev=773187&r1=773186&r2=773187&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/Makefile.msc.in (original)
+++ commons/sandbox/runtime/trunk/src/main/native/Makefile.msc.in Sat May  9 09:40:46 2009
@@ -48,15 +48,18 @@
 MT=mt.exe
 
 DESTDIR=$(PREFIX)
-SONAME=$(NAME)$(SO)
+LIBSO=$(NAME)$(SO)
+SSLSO=$(NAME)ssl$(SO)
 LIBNAME=lib$(NAME)
-SHAREDLIB=$(LIBNAME)$(SO)
+SSLNAME=lib$(NAME)ssl
 
 SRCDIR=$(TOPDIR)
 INCDIR=$(TOPDIR)/include
-BLDDIR=$(TOPDIR)\.libs
 PWDDIR=$(PWD)
 
+SHAREDLIB=$(LIBNAME)$(SO)
+SSLMODLIB=$(SSLNAME)(SO)
+
 COMMON_OBJS=\
 	$(SRCDIR)/shared/buildmark.$(OBJ) \
 	$(SRCDIR)/shared/clazz.$(OBJ) \
@@ -65,6 +68,7 @@
 	$(SRCDIR)/shared/error.$(OBJ) \
 	$(SRCDIR)/shared/fco.$(OBJ) \
 	$(SRCDIR)/shared/memory.$(OBJ) \
+	$(SRCDIR)/shared/modules.$(OBJ) \
 	$(SRCDIR)/shared/native.$(OBJ) \
 	$(SRCDIR)/shared/pointer.$(OBJ) \
 	$(SRCDIR)/shared/string.$(OBJ) \
@@ -89,25 +93,28 @@
 TEST_OBJS= \
 	$(SRCDIR)/test/testcase.$(OBJ)
 
-all: setup $(SHAREDLIB)
+all: setup $(SHAREDLIB) $(SSLMODLIB)
 
 .c.$(OBJ):
-	$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -c -Fo$@ -Fd$(BLDDIR)\$(LIBNAME)-src $<
+	$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -c -Fo$@ -Fd$(LIBNAME)-src $<
 
 .cpp.$(OBJ):
-	$(CXX) $(CFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDES) -c -Fo$@ -Fd$(BLDDIR)\$(LIBNAME)-src $<
+	$(CXX) $(CFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(INCLUDES) -c -Fo$@ -Fd$(LIBNAME)-src $<
 
 .rc.res:
 	$(RC) /l 0x409 /d "NDEBUG" /i "$(SRCDIR)\include" /fo $@ $<
 
-$(SHAREDLIB): $(COMMON_OBJS) $(@platform@_OBJS) $(OPENSSL_OBJS) @testobjs@
-	$(LINK) $(SHFLAGS) $(LDFLAGS) /DLL /SUBSYSTEM:WINDOWS $(COMMON_OBJS) $(WINDOWS_OBJS) $(OPENSSL_OBJS) @testobjs@ /pdb:$(BLDDIR)\$(LIBNAME).pdb /out:$(BLDDIR)\$@
-	IF EXIST $(BLDDIR)\$(SHAREDLIB).manifest \
-		mt -nologo -manifest  $(BLDDIR)\$(SHAREDLIB).manifest -outputresource:$(BLDDIR)\$(SHAREDLIB);2
-	@copy /Y $(BLDDIR)\$(SHAREDLIB) $(BLDDIR)\$(SONAME)
-
-setup:
-	@if not exist "$(BLDDIR)\$(NULL)" mkdir "$(BLDDIR)"
+$(SHAREDLIB): $(COMMON_OBJS) $(@platform@_OBJS) @testobjs@
+	$(LINK) $(SHFLAGS) $(LDFLAGS) /DLL /SUBSYSTEM:WINDOWS $(COMMON_OBJS) $(WINDOWS_OBJS) @testobjs@ /pdb:$(LIBNAME).pdb /out:$@
+	IF EXIST $@.manifest \
+		mt -nologo -manifest $@.manifest -outputresource:$@;2
+	@copy /Y $@ $(LIBSO)
+
+$(SSLMODLIB): $(SHAREDLIB) $(OPENSSL_OBJS)
+	$(LINK) $(SHFLAGS) $(LDFLAGS) /DLL /SUBSYSTEM:WINDOWS $(OPENSSL_OBJS) libpath:"." $(LIBNAME).lib /pdb:$(SSLNAME).pdb /out:$@
+	IF EXIST $(SSLMODLIB).manifest \
+		mt -nologo -manifest $@.manifest -outputresource:$@;2
+	@copy /Y $@ $(SSLSO)
 
 clean:
 	-@del /Q $(SRCDIR)\shared\*.$(OBJ) 2>NUL
@@ -115,12 +122,14 @@
 	-@del /Q $(SRCDIR)\os\win32\*.$(OBJ) 2>NUL
 	-@del /Q $(SRCDIR)\os\win32\*.res 2>NUL
 	-@del /Q $(SRCDIR)\modules\network\ssl\*.$(OBJ) 2>NUL
-	-@del /Q $(BLDDIR)\*  2>NUL
+	-@del /Q *.dll  2>NUL
+	-@del /Q *.lib  2>NUL
+	-@del /Q *.pdb  2>NUL
+	-@del /Q *.exp  2>NUL
 
 distclean: clean
 	-@del /Q $(TOPDIR)\Makefile 2>NUL
 	-@del /Q $(SRCDIR)\include\ccconfig.h 2>NUL
-	@if exist "$(BLDDIR)\$(NULL)" rd /s /q $(BLDDIR)
 
 install: all
 	@if not exist "$(DESTDIR)\include\$(NULL)" mkdir "$(DESTDIR)\include"

Modified: commons/sandbox/runtime/trunk/src/main/native/configure
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/configure?rev=773187&r1=773186&r2=773187&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/configure (original)
+++ commons/sandbox/runtime/trunk/src/main/native/configure Sat May  9 09:40:46 2009
@@ -44,6 +44,7 @@
 cc="${CC:=gcc}"
 cxx="${CXX:=g++}"
 ar="${AR:=ar}"
+arflags="${SRFLAGS:=ru}"
 ranlib="${RANLIB:=ranlib}"
 topdir="${TOPDIR:=.}"
 cpp="${CPP:=$cc -E}"
@@ -54,8 +55,11 @@
 shflags="$SHFLAGS"
 rcflags="$RCFLAGS"
 includes="-I$topdir/include"
+ssldflags=""
+modules=""
 bige="0"
 so=".so"
+lib=".a"
 exe=""
 obj="o"
 bits=""
@@ -187,7 +191,7 @@
         if [ ".$e" = . ]; then
             eval "$1=\"$2\""
         else
-            for v in $2
+            for v in "$2"
             do
                 do_adds=true
                 for i in $e
@@ -275,7 +279,7 @@
         varadds cppopts "-DLINUX=2 -D_GNU_SOURCE"
         varadds ccflags "-fPIC -O3 -Wall -g"
         varadds ldflags "-lrt -lpthread -ldl"
-        varadds shflags "-shared -fPIC -Wl,-soname -Wl,lib$name$so"
+        varadds shflags '-shared -fPIC -Wl,-soname -Wl,\$@'
         if [ ".$java_pinc" = . ]; then java_pinc=linux; fi
         ;;
     darwin-gcc )
@@ -284,7 +288,7 @@
         varadds ccflags "-fPIC -O3 -g"
         varadds ldflags "-lpthread -ldl"
         if $has_jni ; then so=".jnilib"; else so=".dynlib"; fi
-        varadds shflags "-dynamiclib -flat_namespace -undefined suppress -fPIC -Wl,-dylib_install_name -Wl,lib$name$so"
+        varadds shflags '-dynamiclib -flat_namespace -undefined suppress -fPIC -Wl,-dylib_install_name -Wl,\$@'
         ;;
     solaris-cc )
         r="`uname -r | sed 's/5.//'`"
@@ -293,16 +297,16 @@
         else
             varadds ccflags "-fast"
         fi
-        varadds ccflags "-xstrconst -xdepend -O -Xa -KPIC"
         varadds cppopts "-D_POSIX_PTHREAD_SEMANTICS -DSOLARIS2=$r"
+        varadds ccflags "-xstrconst -xdepend -O -Xa -KPIC"
         varadds ldflags "-lrt -lthread -lsocket -lnsl -ldl"
         varadds shflags "-G -KPIC -dy"
         if [ ".$java_pinc" = . ]; then java_pinc=solaris; fi
         ;;
     hpux-cc    )
         r="`uname -r | sed 's/[A-Z].[0-9]*.//'`"
-        varadds ccflags "-Ae +O2 -z +Z"
         varadds cppopts "-D_HPUX_SOURCE -DHPUX11=$r"
+        varadds ccflags "-Ae +O2 -z +Z"
         varadds ldflags "-lrt -lpthread -ldld"
         varadds shflags "+Z -b"
         if [ ".$mach" = ".parisc" ]; then so=".sl"; fi
@@ -363,7 +367,7 @@
 
 if $has_test; then
     varadds cppopts  "-DACR_ENABLE_TEST"
-    testobjs=' $(TEST_OBJS)'
+    testobjs='$(TEST_OBJS)'
 else
     testobjs=""
 fi
@@ -384,16 +388,17 @@
     fi
     if $is_unix; then
         if [ -n "$openssl_lib" ]; then
-            varadds shflags "-L$openssl_lib"
+            varadds sslflags "-L$openssl_lib"
         fi
-        varadds ldflags "-lssl -lcrypto"
+        varadds sslflags "-lssl -lcrypto"
     else
         if [ -n "$openssl_lib" ]; then
-            varadds shflags "/libpath:\"openssl_lib\""
+            varadds sslflags "/libpath:\"openssl_lib\""
         fi
-        varadds ldflags "libeay32.lib ssleay32.lib"
+        varadds sslflags "libeay32.lib ssleay32.lib"
     fi
     have_openssl=1
+    modules="\$(SSLMODLIB)"
 else
     have_openssl=0
 fi
@@ -660,14 +665,13 @@
     -e "s;=@cpp@;=$cpp;g" \
     -e "s;=@cxx@;=$cxx;g" \
     -e "s;=@so@;=$so;g" \
+    -e "s;=@lib@;=$lib;g" \
     -e "s;=@obj@;=$obj;g" \
     -e "s;=@exe@;=$exe;g" \
     -e "s;=@ar@;=$ar;g" \
     -e "s;=@host@;=$host;g" \
     -e "s;=@mach@;=$mach;g" \
     -e "s;=@bits@;=$bits;g" \
-    -e "s;@platform@;$platform;g" \
-    -e "s;@testobjs@;$testobjs;g" \
     -e "s;=@ranlib@;=$ranlib;g" \
     -e "s;=@prefix@;=$prefix;g" \
     -e "s;=@libdir@;=$libdir;g" \
@@ -677,9 +681,14 @@
     -e "s;=@cxxopts@;=$cxxopts;g" \
     -e "s;=@ldflags@;=$ldflags;g" \
     -e "s;=@shflags@;=$shflags;g" \
+    -e "s;=@arflags@;=$arflags;g" \
+    -e "s;=@sslflags@;=$sslflags;g" \
     -e "s;=@rcflags@;=$rcflags;g" \
     -e "s;=@includes@;=$includes;g" \
     -e "s;=@name@;=$name;g" \
+    -e "s;@platform@;$platform;g" \
+    -e "s;@testobjs@;$testobjs;g" \
+    -e "s;@modules@;$modules;g" \
     Makefile$nmake.in > Makefile$nmake
 
 echo ""

Added: commons/sandbox/runtime/trunk/src/main/native/include/acr_openssl.h
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr_openssl.h?rev=773187&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/include/acr_openssl.h (added)
+++ commons/sandbox/runtime/trunk/src/main/native/include/acr_openssl.h Sat May  9 09:40:46 2009
@@ -0,0 +1,208 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ */
+
+#ifndef ACR_OPENSSL_H
+#define ACR_OPENSSL_H
+
+/* Exclude unused OpenSSL features
+ * even if the OpenSSL supports them
+ */
+#ifndef OPENSSL_NO_IDEA
+#define OPENSSL_NO_IDEA
+#endif
+#ifndef OPENSSL_NO_KRB5
+#define OPENSSL_NO_KRB5
+#endif
+#ifndef OPENSSL_NO_MDC2
+#define OPENSSL_NO_MDC2
+#endif
+#ifndef OPENSSL_NO_RC5
+#define OPENSSL_NO_RC5
+#endif
+
+/* OpenSSL headers */
+#include <openssl/ssl.h>
+#include <openssl/err.h>
+#include <openssl/x509.h>
+#include <openssl/pem.h>
+#include <openssl/crypto.h>
+#include <openssl/evp.h>
+#include <openssl/rand.h>
+#include <openssl/x509v3.h>
+#include <openssl/md5.h>
+/* Avoid tripping over an engine build installed globally and detected
+ * when the user points at an explicit non-engine flavor of OpenSSL
+ */
+#ifndef OPENSSL_NO_ENGINE
+#include <openssl/engine.h>
+#endif
+
+#ifndef RAND_MAX
+#include <limits.h>
+#define RAND_MAX INT_MAX
+#endif
+
+#define SSL_ALGO_UNKNOWN (0)
+#define SSL_ALGO_RSA     (1<<0)
+#define SSL_ALGO_DSA     (1<<1)
+#define SSL_ALGO_ALL     (SSL_ALGO_RSA|SSL_ALGO_DSA)
+
+#define SSL_AIDX_RSA     (0)
+#define SSL_AIDX_DSA     (1)
+#define SSL_AIDX_MAX     (2)
+
+/*
+ * Define IDs for the temporary RSA keys and DH params
+ */
+
+#define SSL_TMP_KEY_RSA_512     (0)
+#define SSL_TMP_KEY_RSA_1024    (1)
+#define SSL_TMP_KEY_RSA_2048    (2)
+#define SSL_TMP_KEY_RSA_4096    (3)
+#define SSL_TMP_KEY_DH_512      (4)
+#define SSL_TMP_KEY_DH_1024     (5)
+#define SSL_TMP_KEY_DH_2048     (6)
+#define SSL_TMP_KEY_DH_4096     (7)
+#define SSL_TMP_KEY_MAX         (8)
+
+#define SSL_CRT_FORMAT_UNDEF    (0)
+#define SSL_CRT_FORMAT_ASN1     (1)
+#define SSL_CRT_FORMAT_TEXT     (2)
+#define SSL_CRT_FORMAT_PEM      (3)
+#define SSL_CRT_FORMAT_NETSCAPE (4)
+#define SSL_CRT_FORMAT_PKCS12   (5)
+#define SSL_CRT_FORMAT_SMIME    (6)
+#define SSL_CRT_FORMAT_ENGINE   (7)
+/* XXX this stupid macro helps us to avoid
+ * adding yet another param to load_*key()
+ */
+#define SSL_KEY_FORMAT_IISSGC   (8)
+
+/*
+ * Define the SSL options
+ */
+#define SSL_OPT_NONE            (0)
+#define SSL_OPT_RELSET          (1<<0)
+#define SSL_OPT_STDENVVARS      (1<<1)
+#define SSL_OPT_EXPORTCERTDATA  (1<<3)
+#define SSL_OPT_FAKEBASICAUTH   (1<<4)
+#define SSL_OPT_STRICTREQUIRE   (1<<5)
+#define SSL_OPT_OPTRENEGOTIATE  (1<<6)
+#define SSL_OPT_ALL             (SSL_OPT_STDENVVARS|SSL_OPT_EXPORTCERTDATA|SSL_OPT_FAKEBASICAUTH|SSL_OPT_STRICTREQUIRE|SSL_OPT_OPTRENEGOTIATE)
+
+/*
+ * Define the SSL Protocol options
+ */
+#define SSL_PROTOCOL_NONE       (0)
+#define SSL_PROTOCOL_SSLV2      (1<<0)
+#define SSL_PROTOCOL_SSLV3      (1<<1)
+#define SSL_PROTOCOL_TLSV1      (1<<2)
+#define SSL_PROTOCOL_ALL        (SSL_PROTOCOL_SSLV2|SSL_PROTOCOL_SSLV3|SSL_PROTOCOL_TLSV1)
+
+#define SSL_MODE_CLIENT         (0)
+#define SSL_MODE_SERVER         (1)
+#define SSL_MODE_COMBINED       (2)
+
+#define SSL_BIO_FLAG_RDONLY     (1<<0)
+#define SSL_BIO_FLAG_CALLBACK   (1<<1)
+#define SSL_DEFAULT_CACHE_SIZE  (256)
+#define SSL_DEFAULT_VHOST_NAME  ("_default_:443")
+#define SSL_MAX_STR_LEN         (2048)
+#define SSL_MAX_PASSWORD_LEN    (256)
+
+#define SSL_CVERIFY_UNSET           (-1)
+#define SSL_CVERIFY_NONE            (0)
+#define SSL_CVERIFY_OPTIONAL        (1)
+#define SSL_CVERIFY_REQUIRE         (2)
+#define SSL_CVERIFY_OPTIONAL_NO_CA  (3)
+#define SSL_VERIFY_PEER_STRICT      (SSL_VERIFY_PEER|SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
+
+#define SSL_SHUTDOWN_TYPE_UNSET     (0)
+#define SSL_SHUTDOWN_TYPE_STANDARD  (1)
+#define SSL_SHUTDOWN_TYPE_UNCLEAN   (2)
+#define SSL_SHUTDOWN_TYPE_ACCURATE  (3)
+
+#define SSL_TO_APR_ERROR(X)         (ACR_OS_START_USERERR + 1000 + X)
+
+#define SSL_INFO_SESSION_ID                 (0x0001)
+#define SSL_INFO_CIPHER                     (0x0002)
+#define SSL_INFO_CIPHER_USEKEYSIZE          (0x0003)
+#define SSL_INFO_CIPHER_ALGKEYSIZE          (0x0004)
+#define SSL_INFO_CIPHER_VERSION             (0x0005)
+#define SSL_INFO_CIPHER_DESCRIPTION         (0x0006)
+#define SSL_INFO_PROTOCOL                   (0x0007)
+
+#define SSL_INFO_CLIENT_S_DN                (0x0010)
+#define SSL_INFO_CLIENT_I_DN                (0x0020)
+#define SSL_INFO_SERVER_S_DN                (0x0040)
+#define SSL_INFO_SERVER_I_DN                (0x0080)
+
+#define SSL_INFO_DN_COUNTRYNAME             (0x0001)
+#define SSL_INFO_DN_STATEORPROVINCENAME     (0x0002)
+#define SSL_INFO_DN_LOCALITYNAME            (0x0003)
+#define SSL_INFO_DN_ORGANIZATIONNAME        (0x0004)
+#define SSL_INFO_DN_ORGANIZATIONALUNITNAME  (0x0005)
+#define SSL_INFO_DN_COMMONNAME              (0x0006)
+#define SSL_INFO_DN_TITLE                   (0x0007)
+#define SSL_INFO_DN_INITIALS                (0x0008)
+#define SSL_INFO_DN_GIVENNAME               (0x0009)
+#define SSL_INFO_DN_SURNAME                 (0x000A)
+#define SSL_INFO_DN_DESCRIPTION             (0x000B)
+#define SSL_INFO_DN_UNIQUEIDENTIFIER        (0x000C)
+#define SSL_INFO_DN_EMAILADDRESS            (0x000D)
+
+#define SSL_INFO_CLIENT_MASK                (0x0100)
+
+#define SSL_INFO_CLIENT_M_VERSION           (0x0101)
+#define SSL_INFO_CLIENT_M_SERIAL            (0x0102)
+#define SSL_INFO_CLIENT_V_START             (0x0103)
+#define SSL_INFO_CLIENT_V_END               (0x0104)
+#define SSL_INFO_CLIENT_A_SIG               (0x0105)
+#define SSL_INFO_CLIENT_A_KEY               (0x0106)
+#define SSL_INFO_CLIENT_CERT                (0x0107)
+#define SSL_INFO_CLIENT_V_REMAIN            (0x0108)
+
+#define SSL_INFO_SERVER_MASK                (0x0200)
+
+#define SSL_INFO_SERVER_M_VERSION           (0x0201)
+#define SSL_INFO_SERVER_M_SERIAL            (0x0202)
+#define SSL_INFO_SERVER_V_START             (0x0203)
+#define SSL_INFO_SERVER_V_END               (0x0204)
+#define SSL_INFO_SERVER_A_SIG               (0x0205)
+#define SSL_INFO_SERVER_A_KEY               (0x0206)
+#define SSL_INFO_SERVER_CERT                (0x0207)
+#define SSL_INFO_CLIENT_CERT_CHAIN          (0x0400)
+
+#define SSL_VERIFY_ERROR_IS_OPTIONAL(errnum) \
+   ((errnum == X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT) \
+    || (errnum == X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN) \
+    || (errnum == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY) \
+    || (errnum == X509_V_ERR_CERT_UNTRUSTED) \
+    || (errnum == X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE))
+
+
+
+#define SSL_DEFAULT_PASS_PROMPT "Some of your private key files are encrypted for security reasons.\n"  \
+                                "In order to read them you have to provide the pass phrases.\n"         \
+                                "Enter password :"
+
+
+#endif /* ACR_OPENSSL */

Propchange: commons/sandbox/runtime/trunk/src/main/native/include/acr_openssl.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: commons/sandbox/runtime/trunk/src/main/native/modules/network/ssl/openssl.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/modules/network/ssl/openssl.c?rev=773187&r1=773186&r2=773187&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/modules/network/ssl/openssl.c (original)
+++ commons/sandbox/runtime/trunk/src/main/native/modules/network/ssl/openssl.c Sat May  9 09:40:46 2009
@@ -22,8 +22,34 @@
 #include "acr_types.h"
 #include "acr_clazz.h"
 #include "acr_vm.h"
+#include "acr_openssl.h"
 
-ACR_NET_EXPORT_DECLARE(jboolean, OpenSSL, has0)(ACR_JNISTDARGS)
+#ifdef ACR_ENABLE_TEST
+/* OpenSSL TestPrivate methods
+ */
+ACR_JNI_EXPORT_DECLARE(jstring, TestPrivate, test100)(ACR_JNISTDARGS, jstring s)
 {
-    return V2Z(HAVE_OPENSSL);
+    jstring rs = NULL;
+
+    WITH_CSTR(s) {
+        rs = ACR_NewJavaStringA(_E, J2S(s));
+    } END_WITH_CSTR(s);
+
+    return rs;
+
 }
+
+#endif /* ACR_ENABLE_TEST */
+
+ACR_JNI_EXPORT_DECLARE(jint, OpenSSL, version0)(ACR_JNISTDARGS)
+{
+    UNREFERENCED_STDARGS;
+    return OPENSSL_VERSION_NUMBER;
+}
+
+ACR_JNI_EXPORT_DECLARE(jstring, OpenSSL, version1)(ACR_JNISTDARGS)
+{
+    UNREFERENCED_O;
+    return CSTR_TO_JSTRING(OPENSSL_VERSION_TEXT);
+}
+

Added: commons/sandbox/runtime/trunk/src/main/native/shared/modules.c
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/modules.c?rev=773187&view=auto
==============================================================================
--- commons/sandbox/runtime/trunk/src/main/native/shared/modules.c (added)
+++ commons/sandbox/runtime/trunk/src/main/native/shared/modules.c Sat May  9 09:40:46 2009
@@ -0,0 +1,31 @@
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (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.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ *
+ * @author Mladen Turk
+ */
+
+#include "acr.h"
+#include "acr_private.h"
+#include "acr_error.h"
+#include "acr_clazz.h"
+#include "acr_vm.h"
+
+ACR_NET_EXPORT_DECLARE(jboolean, OpenSSL, has0)(ACR_JNISTDARGS)
+{
+    return V2Z(HAVE_OPENSSL);
+}

Propchange: commons/sandbox/runtime/trunk/src/main/native/shared/modules.c
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java
URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java?rev=773187&r1=773186&r2=773187&view=diff
==============================================================================
--- commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java (original)
+++ commons/sandbox/runtime/trunk/src/test/org/apache/commons/runtime/TestPrivate.java Sat May  9 09:40:46 2009
@@ -77,11 +77,14 @@
     private static native String test028(int d);
     private static native File   test029(int d);
 
+    private static native String test100(String s);
+
 
     protected void setUp()
         throws Exception
     {
         System.loadLibrary("acr");
+        System.loadLibrary("acrssl");
         for (int i = 0; i < longStrSize; i++) {
             longChar[i] = (char)('A' + (i % 20));
         }
@@ -561,4 +564,11 @@
         assertEquals("Name", "foo", f.getName());
     }
 
+    public void testModuleSSL()
+        throws Throwable
+    {
+        String s = test100("OpenSSL");
+        assertEquals("Name", "OpenSSL", s);
+    }
+
 }