Skip to content

Commit 102036c

Browse files
authored
Merge pull request #207 from JeremiahM37/wolfProviderDocumentation
updated wolfProvider documentation
2 parents 03edaef + 0f23823 commit 102036c

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

wolfProvider/src/chapter03.md

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,20 @@ test/ (wolfProvider test files)
1919
user_settings.h (EXAMPLE user_settings.h)
2020
```
2121
## Building on *nix
22+
The quickest method is to use the `scripts/build-wolfprovider.sh` script as follows:
23+
24+
```
25+
./scripts/build-wolfprovider.sh
26+
```
27+
28+
It will retrieve the dependencies and compile them as necessary. To use other than the default (such as different releases) you can set various environment variables prior to calling the script:
29+
30+
```
31+
OPENSSL_TAG=openssl-3.2.0 WOLFSSL_TAG=v5.7.2-stable WOLFPROV_DEBUG=1 scripts/build-wolfprovider.sh
32+
```
33+
34+
Alternatively, you can manually compile each component using the following guide.
35+
2236

2337
### Building OpenSSL
2438

@@ -51,16 +65,31 @@ To build non-FIPS wolfSSL for use with wolfProvider:
5165
```
5266
cd wolfssl-X.X.X
5367
54-
./configure --enable-cmac --enable-keygen --enable-sha --enable-des
55-
--enable-aesctr --enable-aesccm --enable-x963kdf
56-
CPPFLAGS="-DHAVE_AES_ECB -DWOLFSSL_AES_DIRECT -DWC_RSA_NO_PADDING
57-
-DWOLFSSL_PUBLIC_MP -DECC_MIN_KEY_SZ=192 -DWOLFSSL_PSS_LONG_SALT
58-
-DWOLFSSL_PSS_SALT_LEN_DISCOVER"
59-
68+
./configure --enable-opensslcoexist --enable-cmac --enable-keygen --enable-sha --enable-des3 --enable-aesctr --enable-aesccm --enable-x963kdf --enable-compkey CPPFLAGS="-DHAVE_AES_ECB -DWOLFSSL_AES_DIRECT -DWC_RSA_NO_PADDING -DWOLFSSL_PUBLIC_MP -DHAVE_PUBLIC_FFDHE -DWOLFSSL_DH_EXTRA -DWOLFSSL_PSS_LONG_SALT -DWOLFSSL_PSS_SALT_LEN_DISCOVER -DRSA_MIN_SIZE=1024" --enable-certgen --enable-aeskeywrap --enable-enckeys --enable-base16 --with-eccminsz=192
6069
make
6170
sudo make install
6271
```
6372

73+
Add `--enable-aesgcm-stream` if available for better AES-GCM support.
74+
Add `--enable-curve25519` to include support for X25519 Key Exchange.
75+
Add `--enable-curve448` to include support for X448 Key Exchange.
76+
Add `--enable-ed25519` to include support for Ed25519 signatures and certificates..
77+
Add `--enable-ed448` to include support for Ed448 signature and certificates.
78+
79+
Add `--enable-pwdbased` to the configure command above if PKCS#12 is used in OpenSSL.
80+
81+
Add to CPPFLAGS `-DHAVE_FFDHE_6144 -DHAVE_FFDHE_8192 -DFP_MAX_BITS=16384` to enable predefined 6144-bit and 8192-bit DH parameters.
82+
83+
Add to `--enable-hmac-copy` if performing HMAC repeatedly with the same key to improve performance. (Available with wolfSSL 5.7.8+.)
84+
85+
Add `--enable-sp=yes,asm' '--enable-sp-math-all'` to use SP Integer maths. Replace `-DFP_MAX_BITS=16384` with -DSP_INT_BITS=8192` when used.
86+
87+
Remove `-DWOLFSSL_PSS_LONG_SALT -DWOLFSSL_PSS_SALT_LEN_DISCOVER` and add `--enable-fips=v2` to the configure command above if building from a FIPS v2 bundle and not the git repository. Change `--enable-fips=v2` to `--enable-fips=ready` if using a FIPS Ready bundle.
88+
89+
If '--with-eccminsz=192' is not supported by wolfSSL, add '-DECC_MIN_KEY_SZ=192' to the CPPFLAGS.
90+
91+
``
92+
6493
If cloning wolfSSL from GitHub, you will need to run the `autogen.sh` script before running `./configure`. This will generate the configure script:
6594
```
6695
./autogen.sh

0 commit comments

Comments
 (0)