|
| 1 | +# Building wolfCrypt JNI/JCE (wolfcryptjni) |
| 2 | +- If on Linux "cp makefile.linux makefile", if on macOS "cp makefile.macosx makefile" |
| 3 | +- To build the native JNI shared library run "make" |
| 4 | +- To build the Java JAR library and examples run "ant build-jce-debug" |
| 5 | + |
| 6 | +# Running JUnit tests |
| 7 | +- To run JUnit tests run "ant test" |
| 8 | +- All tests should pass without problems |
| 9 | + |
| 10 | +# Code Style |
| 11 | +- Keep lines under 80 characters maximum length |
| 12 | +- MUST only use multi-line comments, no "//" style ones |
| 13 | +- MUST remove all trailing white space |
| 14 | +- Use 4 spaces for one tab, no hard tabs |
| 15 | + |
| 16 | +# Source Code Organization |
| 17 | +- The source code is organized into the following directories: |
| 18 | + + jni: JNI source files |
| 19 | + + jni/include: JNI header files |
| 20 | + + src/main/java: Java source code |
| 21 | + + src/main/java/com/wolfssl/wolfcrypt: com.wolfssl.wolfcrypt package JNI layer source code |
| 22 | + + src/main/java/com/wolfssl/provider/jce: com.wolfssl.provider.jce package wolfCrypt JCE provider source code |
| 23 | + + src/test: JUnit test code |
| 24 | + + src/test/java/com/wolfssl/wolfcrypt/test: com.wolfssl.wolfcrypt thin JNI wrapper JUnit test code |
| 25 | + + src/test/java/com/wolfssl/provider/jce/test: com.wolfssl.provider.jce wolfCrypt JCE provider JUnit test code |
| 26 | + + build.xml: Ant build file |
| 27 | + + pom.xml: Maven build file |
| 28 | + + docs: Documentation files |
| 29 | + + docs/design: Design files |
| 30 | + + docs/javadoc: Generated Javadoc file location |
| 31 | + + scripts/infer.sh: Script to run Facebook Infer static analysis |
| 32 | + + IDE/Android: Android Studio example project files |
| 33 | + + IDE/WIN: Visual Studio solution file |
| 34 | + + examples: examples directory |
| 35 | + |
| 36 | +# Workflow |
| 37 | +- Make sure package compiles and all JUnit tests pass when you are making code changes |
| 38 | +- Maintain minimum Java compatibility down to Java 8 |
| 39 | + |
| 40 | +# Example Code Guidelines for Writing New Code |
| 41 | +- All examples are placed under the "examples" directory |
| 42 | +- Directory "examples" contains JNI-level examples |
| 43 | +- Directory "examples/provider" contains JCE-level examples |
| 44 | +- All examples should have two files: |
| 45 | + + Example.java: Java source code |
| 46 | + + Example.sh: Shell script to run the example |
| 47 | +- Examples will be run from the root directory |
| 48 | +- Example .jks files are located under "examples/certs" |
| 49 | +- Example .wk files are located under "examples/certs" |
| 50 | +- Example .jks files are updated using the update-jks-wks.sh script |
0 commit comments