11
22# wolfSSL JSSE Provider and JNI Wrapper
33
4- This package provides both a wolfSSL Java JSSE provider (** wolfJSSE** ), and a
5- thin JNI-based interface to the native
6- [ wolfSSL embedded SSL/TLS library] ( https://www.wolfssl.com/products/wolfssl/ ) .
7- These provide Java applications with SSL/TLS support up to the current
8- [ TLS 1.3] ( https://www.wolfssl.com/tls13 ) protocol standard.
4+ This package provides Java support for the
5+ [ wolfSSL embedded SSL/TLS library] ( https://www.wolfssl.com/products/wolfssl/ ) ,
6+ giving applications support for SSL/TLS up to the current
7+ [ TLS 1.3] ( https://www.wolfssl.com/tls13 ) protocol level.
8+ It contains both a wolfSSL ** JSSE** (Java Secure Socket Extension) provider,
9+ called ** wolfJSSE** , and a thin JNI-based interface that wraps the native C
10+ library.
11+
12+ wolfSSL also provides a ** JCE** (Java Cryptography Extension) provider that
13+ wraps native wolfCrypt. This can be found in a separate repository, located
14+ [ here] ( https://github.com/wolfSSL/wolfcrypt-jni ) .
915
1016## Why use wolfJSSE?
1117
@@ -19,10 +25,10 @@ and more!
1925
2026## User Manual
2127
22- The wolfSSL JNI/JSSE Manual is available on wolfssl.com :
28+ The wolfSSL JNI/JSSE Manual is available on the wolfSSL website :
2329[ wolfSSL JNI Manual] ( https://www.wolfssl.com/documentation/wolfSSL-JNI-Manual.pdf ) .
2430
25- For additional build instructions and more detailed comments, please check
31+ For additional build instructions and more detailed comments, please reference
2632the manual.
2733
2834## Building
@@ -40,11 +46,12 @@ Build targets for ant are :
4046* ** ant clean** (cleans all Java artifacts)
4147* ** ant cleanjni** (cleans native artifacts)
4248
43- wolfJSSE currently supports compilation on Linux/Unix and Android.
49+ wolfJSSE currently supports compilation on Linux/Unix, OSX, and Android.
4450
45- To build wolfJSSE on Linux, first download, compile, and install wolfSSL.
46- wolfSSL can be downloaded from the wolfSSL download page or cloned from
47- GitHub.
51+ To build wolfJSSE in Linux/Unix environments, first download, compile, and
52+ install wolfSSL. wolfSSL can be downloaded from the wolfSSL
53+ [ download page] ( https://www.wolfssl.com/download/ ) or cloned from
54+ [ GitHub] ( https://github.com/wolfssl/wolfssl ) .
4855
4956```
5057$ unzip wolfssl-X.X.X.zip
@@ -60,6 +67,7 @@ Then, to build wolfJSSE:
6067$ cd wolfssljni
6168$ ./java.sh
6269$ ant
70+ $ export JUNIT_HOME=/path/to/junit/jars
6371$ ant test
6472```
6573
@@ -82,7 +90,7 @@ $ ./examples/provider/ClientJSSE.sh
8290Examples of using wolfssljni can be found in the ` ./examples ` subdirectory.
8391See [ examples/README.md] ( ./examples/README.md ) for more details.
8492
85- Examples of using wolfJSSE can be found in the ` ./examples/provider `
93+ Examples of using the wolfJSSE provider can be found in the ` ./examples/provider `
8694subdirectory. See [ examples/provider/README.md] ( ./examples/provider/README.md )
8795for more details.
8896
@@ -106,23 +114,24 @@ Android AOSP at the system-level.
106114
107115An example Android Studio application is included in this package, to show
108116users how they could include the wolfSSL native and wolfSSL JNI/JSSE sources
109- in an Androi Studio application. For more details, see the Android Studio
117+ in an Android Studio application. For more details, see the Android Studio
110118project and README.md located in the [ ./IDE/Android] ( ./IDE/Android ) directory.
111119
112120Using wolfJSSE at the application level will allow developers to register
113121wolfJSSE as a Security provider at the application scope. The application can
114- they use the Java Security API for SSL/TLS operations which will then use the
122+ use the Java Security API for SSL/TLS operations which will then use the
115123underlying wolfJSSE provider (and subsequently native wolfSSL).
116124
117- Applications can add the wolfJSSE provider using:
125+ Applications can register the wolfJSSE provider using:
118126
119127```
120128import com.wolfssl.provider.jsse.WolfSSLProvider;
121129...
122130Security.addProvider(new WolfSSLProvider());
123131```
124132
125- To instead insert the WolfSSLProvider as the top priority provider:
133+ To instead insert the WolfSSLProvider as the top priority provider, or at
134+ a specified index (note: indexing starts at 1):
126135
127136```
128137import com.wolfssl.provider.jsse.WolfSSLProvider;
0 commit comments