Skip to content

Package Design

wolfJSSE is bundled together with the wolfSSL JNI wrapper in the "wolfssljni" package. Since wolfJSSE depends on the underlying JNI bindings for wolfSSL, it is compiled into the same native library file as the JNI wrapper.

wolfJSSE / wolfSSL JNI package structure:

wolfssljni/
    build.xml  ant build script
    COPYING
    docs/      Javadocs
    examples/  Example apps
    IDE/       Example IDE project, Android Studio
    java.sh    Script to build native C JNI sources
    LICENSING
    Makefile
    lib/       Output directory for compiled library
    native/    Native C JNI binding source files
    platform/  Android AOSP build files
    README.md
    rpm/       rpm spec files
    src/
        java/  Java source files
        test/  Test source files

The wolfJSSE provider source code is located in the src/java/com/wolfssl/provider/jsse directory, and is part of the **com.wolfssl.provider.jsse** Java package.

The wolfSSL JNI wrapper is located in the src/java/com/wolfssl directory and is part of the “ com.wolfssl ” Java package. Users of JSSE will not need to use this package directly, as it will be consumed by the wolfJSSE classes.

Once wolfSSL JNI and wolfJSSE have been compiled, there are two JAR files and one native shared library that have been generated. These are located in the ./lib directory. The native shared library could also be named libwolfssljni.jnilib depending on the operating system.

lib/
    libwolfSSL.so     (Native C JNI wrapper shared library)
    wolfssl.jar       (JAR with ONLY wolfSSL JNI Java classes)
    wolfssl-jsse.jar  (JAR with BOTH wolfSSL JNI and wolfJSSE classes)