Skip to content

Commit 26bdbb7

Browse files
authored
Merge pull request #250 from cconlon/jceUpdate
Update wolfCrypt JNI/JCE manual and update copyright to 2026
2 parents da1fac2 + 2c930c3 commit 26bdbb7

5 files changed

Lines changed: 127 additions & 19 deletions

File tree

wolfCrypt-JNI/header.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ header-includes:
88
# Fancy page headers
99
- \usepackage{fancyhdr}
1010
- \pagestyle{fancy}
11-
- \fancyfoot[LO,RE]{COPYRIGHT \copyright 2024 wolfSSL Inc.}
11+
- \fancyfoot[LO,RE]{COPYRIGHT \copyright 2026 wolfSSL Inc.}
1212
# Wrap long syntax highlighting code blocks
1313
- \usepackage{fvextra}
1414
- \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}}

wolfCrypt-JNI/src/chapter02.md

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ JUnit is required to be installed on the development system in order to run unit
88

99
To install JUnit4 on a Unix/Linux/OSX system:
1010

11-
1) Download **junit-4.13.jar** and **hamcrest-all-1.3.jar** from [junit.org/junit4/](). At the time of writing, the mentioned .jar files could be downloaded from the following links:
11+
1) Download " **junit-4.13.2.jar** " and " **hamcrest-all-1.3.jar** "from [junit.org/junit4/](). At the time of writing, the mentioned .jar files could be downloaded from the following links:
1212

13-
Junit: [junit-4.13.jar](https://search.maven.org/search?q=g:junit%20AND%20a:junit)
13+
Junit: [junit-4.13.2.jar](https://search.maven.org/search?q=g:junit%20AND%20a:junit)
1414

1515
Hamcrest: [hamcrest-all-1.3.jar](https://search.maven.org/artifact/org.hamcrest/hamcrest-all/1.3/jar)
1616

@@ -42,16 +42,7 @@ $ make check
4242
$ sudo make install
4343
```
4444

45-
**wolfSSL FIPSv1 Build**:
46-
47-
```
48-
$ cd wolfssl-x.x.x-commercial-fips
49-
$ ./configure --enable-fips --enable-jni
50-
$ make check
51-
$ sudo make install
52-
```
53-
54-
**wolfSSL FIPSv2 Build**:
45+
**wolfSSL FIPSv2 Build (FIPS 140-2, Certificate #3389)**:
5546

5647
```
5748
$ cd wolfssl-x.x.x-commercial-fips
@@ -60,7 +51,7 @@ $ make check
6051
$ sudo make install
6152
```
6253

63-
**wolfSSL FIPSv5 Build**:
54+
**wolfSSL FIPSv5 Build (FIPS 140-3, Certificate #4718)**:
6455

6556
```
6657
$ cd wolfssl-x.x.x-commercial-fips

wolfCrypt-JNI/src/chapter03.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,56 @@ $ ant clean
5959
$ make clean
6060
```
6161

62+
## Compiling with Maven
63+
64+
wolfCrypt JNI/JCE also supports building with Maven. First, compile the native JNI shared library using `make` as described above.
65+
66+
Then compile the Java sources with Maven:
67+
68+
```
69+
$ mvn compile
70+
```
71+
72+
To compile and run JUnit tests:
73+
74+
```
75+
$ mvn test
76+
```
77+
78+
To package the JAR file:
79+
80+
```
81+
$ mvn package
82+
```
83+
84+
To install the JAR into the local Maven repository:
85+
86+
```
87+
$ mvn install
88+
```
89+
90+
After installation, the package can be included as a dependency in other Maven projects:
91+
92+
```
93+
<dependency>
94+
<groupId>com.wolfssl</groupId>
95+
<artifactId>wolfcrypt-jni</artifactId>
96+
<version>1.9.0-SNAPSHOT</version>
97+
</dependency>
98+
```
99+
62100
## API Javadocs
63101

64102
Running `ant` will generate a set of Javadocs under the `wolfcrypt-jni/docs/javadoc`
65103
directory. To view the Javadoc index, open the following file in a web browser:
66104

67105
`wolfcrypt-jni/docs/javadoc/index.html`
68106

107+
When using Maven, Javadocs can be generated with:
108+
109+
```
110+
$ mvn javadoc:javadoc
111+
```
112+
113+
This will generate Javadoc HTML under the `./docs/apidocs` directory.
114+

wolfCrypt-JNI/src/chapter05.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ wolfcrypt-jni /
2828
jni/ Native C JNI binding source files
2929
lib/ Compiled library artifacts
3030
makefile.linux Linux-specific Makefile
31-
makefile.osx OSX-specific Makefile
31+
makefile.macosx macOS-specific Makefile
3232
pom.xml Maven build file
3333
rpm/ Linux rpm files
3434
scripts/ Test scripts (Facebook Infer, etc)

wolfCrypt-JNI/src/chapter06.md

Lines changed: 75 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,116 @@ wolfJCE currently supports the following algorithms and classes:
55
MessageDigest Class
66
MD5
77
SHA-1
8+
SHA-224
89
SHA-256
910
SHA-384
1011
SHA-512
12+
SHA3-224
13+
SHA3-256
14+
SHA3-384
15+
SHA3-512
1116

1217
SecureRandom Class
1318
DEFAULT (maps to HashDRBG)
14-
HashDRBG
19+
HashDRBG (aliased also as: Hash_DRBG, DRBG)
1520

1621
Cipher Class
1722
AES/CBC/NoPadding
1823
AES/CBC/PKCS5Padding
24+
AES/CCM/NoPadding
25+
AES/CTR/NoPadding
26+
AES/CTS/NoPadding
27+
AES/ECB/NoPadding
28+
AES/ECB/PKCS5Padding (aliased also as: AES)
1929
AES/GCM/NoPadding
30+
AES/OFB/NoPadding
2031
DESede/CBC/NoPadding
2132
RSA
2233
RSA/ECB/PKCS1Padding
34+
RSA/ECB/OAEPWithSHA-1AndMGF1Padding
35+
RSA/ECB/OAEPWithSHA-256AndMGF1Padding
2336

2437
Mac Class
38+
AESCMAC (aliased also as: AES-CMAC)
39+
AESGMAC (aliased also as: AES-GMAC)
2540
HmacMD5
2641
HmacSHA1
42+
HmacSHA224
2743
HmacSHA256
2844
HmacSHA384
2945
HmacSHA512
46+
HmacSHA3-224
47+
HmacSHA3-256
48+
HmacSHA3-384
49+
HmacSHA3-512
3050

3151
Signature Class
3252
MD5withRSA
3353
SHA1withRSA
54+
SHA224withRSA
3455
SHA256withRSA
3556
SHA384withRSA
3657
SHA512withRSA
58+
SHA3-224withRSA
59+
SHA3-256withRSA
60+
SHA3-384withRSA
61+
SHA3-512withRSA
62+
RSASSA-PSS
63+
SHA224withRSA/PSS
64+
SHA256withRSA/PSS
65+
SHA384withRSA/PSS
66+
SHA512withRSA/PSS
3767
SHA1withECDSA
68+
SHA224withECDSA
3869
SHA256withECDSA
3970
SHA384withECDSA
4071
SHA512withECDSA
72+
SHA3-224withECDSA
73+
SHA3-256withECDSA
74+
SHA3-384withECDSA
75+
SHA3-512withECDSA
76+
SHA256withECDSAinP1363Format
77+
SHA384withECDSAinP1363Format
78+
SHA512withECDSAinP1363Format
79+
SHA3-256withECDSAinP1363Format
80+
SHA3-384withECDSAinP1363Format
81+
SHA3-512withECDSAinP1363Format
4182

4283
KeyAgreement Class
4384
DiffieHellman
4485
DH
4586
ECDH
4687

88+
KeyGenerator Class
89+
AES
90+
HmacSHA1
91+
HmacSHA224
92+
HmacSHA256
93+
HmacSHA384
94+
HmacSHA512
95+
HmacSHA3-224
96+
HmacSHA3-256
97+
HmacSHA3-384
98+
HmacSHA3-512
99+
47100
KeyPairGenerator Class
48101
RSA
102+
RSASSA-PSS
49103
EC
50-
DH
104+
DH (aliased also as: DiffieHellman)
105+
106+
KeyFactory Class
107+
RSA
108+
EC
109+
DH (aliased also as: DiffieHellman)
51110

52111
CertPathValidator Class
53112
PKIX
54113

55-
SecretKeyFactory
114+
CertPathBuilder Class
115+
PKIX
116+
117+
SecretKeyFactory Class
56118
PBKDF2WithHmacSHA1
57119
PBKDF2WithHmacSHA224
58120
PBKDF2WithHmacSHA256
@@ -63,6 +125,15 @@ wolfJCE currently supports the following algorithms and classes:
63125
PBKDF2WithHmacSHA3-384
64126
PBKDF2WithHmacSHA3-512
65127

66-
KeyStore
128+
KeyStore Class
67129
WKS
68130

131+
AlgorithmParameters Class
132+
AES
133+
DH (aliased also as: DiffieHellman)
134+
GCM (aliased also as: AES-GCM)
135+
RSASSA-PSS
136+
137+
AlgorithmParameterGenerator Class
138+
DH (aliased also as: DiffieHellman)
139+

0 commit comments

Comments
 (0)