@@ -86,95 +86,139 @@ JNIEXPORT jint JNICALL Java_com_wolfssl_WolfSSL_init
8686 }
8787#endif
8888
89- #if defined(HAVE_FIPS ) && defined(HAVE_FIPS_VERSION ) && (HAVE_FIPS_VERSION == 5 )
89+ #if defined(HAVE_FIPS ) && defined(HAVE_FIPS_VERSION ) && \
90+ (HAVE_FIPS_VERSION >= 6 )
91+
92+ ret = wc_RunAllCast_fips ();
93+ if (ret != 0 ) {
94+ printf ("FIPS CASTs failed to run" );
95+ }
96+
97+ #elif defined(HAVE_FIPS ) && defined(HAVE_FIPS_VERSION ) && \
98+ (HAVE_FIPS_VERSION == 5 )
99+
90100 /* run FIPS 140-3 conditional algorithm self tests early to prevent
91101 * multi threaded issues later on */
102+ #if !defined(NO_AES ) && !defined(NO_AES_CBC )
92103 if (ret == 0 ) {
93104 ret = wc_RunCast_fips (FIPS_CAST_AES_CBC );
94105 if (ret != 0 ) {
95106 printf ("AES-CBC CAST failed" );
96107 }
97108 }
109+ #endif
110+ #ifdef HAVE_AESGCM
98111 if (ret == 0 ) {
99112 ret = wc_RunCast_fips (FIPS_CAST_AES_GCM );
100113 if (ret != 0 ) {
101114 printf ("AES-GCM CAST failed" );
102115 }
103116 }
117+ #endif
118+ #ifndef NO_SHA
104119 if (ret == 0 ) {
105120 ret = wc_RunCast_fips (FIPS_CAST_HMAC_SHA1 );
106121 if (ret != 0 ) {
107122 printf ("HMAC-SHA1 CAST failed" );
108123 }
109124 }
125+ #endif
126+ /* the only non-optional CAST */
110127 if (ret == 0 ) {
111128 ret = wc_RunCast_fips (FIPS_CAST_HMAC_SHA2_256 );
112129 if (ret != 0 ) {
113130 printf ("HMAC-SHA2-256 CAST failed" );
114131 }
115132 }
133+ #ifdef WOLFSSL_SHA512
116134 if (ret == 0 ) {
117135 ret = wc_RunCast_fips (FIPS_CAST_HMAC_SHA2_512 );
118136 if (ret != 0 ) {
119137 printf ("HMAC-SHA2-512 CAST failed" );
120138 }
121139 }
122-
140+ #endif
141+ #ifdef WOLFSSL_SHA3
123142 if (ret == 0 ) {
124143 ret = wc_RunCast_fips (FIPS_CAST_HMAC_SHA3_256 );
125144 if (ret != 0 ) {
126145 printf ("HMAC-SHA3-256 CAST failed" );
127146 }
128147 }
148+ #endif
149+ #ifdef HAVE_HASHDRBG
129150 if (ret == 0 ) {
130151 ret = wc_RunCast_fips (FIPS_CAST_DRBG );
131152 if (ret != 0 ) {
132153 printf ("Hash_DRBG CAST failed" );
133154 }
134155 }
156+ #endif
157+ #ifndef NO_RSA
135158 if (ret == 0 ) {
136159 ret = wc_RunCast_fips (FIPS_CAST_RSA_SIGN_PKCS1v15 );
137160 if (ret != 0 ) {
138161 printf ("RSA sign CAST failed" );
139162 }
140163 }
164+ #endif
165+ #if defined(HAVE_ECC_CDH ) && defined(HAVE_ECC_CDH_CAST )
141166 if (ret == 0 ) {
142- ret = wc_RunCast_fips (FIPS_CAST_ECC_PRIMITIVE_Z );
167+ ret = wc_RunCast_fips (FIPS_CAST_ECC_CDH );
143168 if (ret != 0 ) {
144- printf ("ECC Primitive Z CAST failed" );
169+ printf ("ECC CDH CAST failed" );
145170 }
146171 }
172+ #endif
173+ #ifdef HAVE_ECC_DHE
147174 if (ret == 0 ) {
148- ret = wc_RunCast_fips (FIPS_CAST_DH_PRIMITIVE_Z );
175+ ret = wc_RunCast_fips (FIPS_CAST_ECC_PRIMITIVE_Z );
149176 if (ret != 0 ) {
150- printf ("DH Primitive Z CAST failed" );
177+ printf ("ECC Primitive Z CAST failed" );
151178 }
152179 }
180+ #endif
181+ #ifdef HAVE_ECC
153182 if (ret == 0 ) {
154183 ret = wc_RunCast_fips (FIPS_CAST_ECDSA );
155184 if (ret != 0 ) {
156185 printf ("ECDSA CAST failed" );
157186 }
158187 }
188+ #endif
189+ #ifndef NO_DH
190+ if (ret == 0 ) {
191+ ret = wc_RunCast_fips (FIPS_CAST_DH_PRIMITIVE_Z );
192+ if (ret != 0 ) {
193+ printf ("DH Primitive Z CAST failed" );
194+ }
195+ }
196+ #endif
197+ #ifdef WOLFSSL_HAVE_PRF
159198 if (ret == 0 ) {
160199 ret = wc_RunCast_fips (FIPS_CAST_KDF_TLS12 );
161200 if (ret != 0 ) {
162201 printf ("KDF TLSv1.2 CAST failed" );
163202 }
164203 }
204+ #endif
205+ #if defined(WOLFSSL_HAVE_PRF ) && defined(WOLFSSL_TLS13 )
165206 if (ret == 0 ) {
166207 ret = wc_RunCast_fips (FIPS_CAST_KDF_TLS13 );
167208 if (ret != 0 ) {
168209 printf ("KDF TLSv1.3 CAST failed" );
169210 }
170211 }
212+ #endif
213+ #ifdef WOLFSSL_WOLFSSH
171214 if (ret == 0 ) {
172215 ret = wc_RunCast_fips (FIPS_CAST_KDF_SSH );
173216 if (ret != 0 ) {
174217 printf ("KDF SSHv2.0 CAST failed" );
175218 }
176219 }
177220#endif
221+ #endif /* HAVE_FIPS && HAVE_FIPS_VERSION == 5 */
178222
179223 if (ret == 0 ) {
180224 return (jint )wolfSSL_Init ();
0 commit comments