diff -Naur libreswan-3.12-orig/programs/pluto/ike_alg_aes.c libreswan-3.12/programs/pluto/ike_alg_aes.c
--- libreswan-3.12-orig/programs/pluto/ike_alg_aes.c 2015-04-12 16:52:11.748913102 -0400
+++ libreswan-3.12/programs/pluto/ike_alg_aes.c 2015-04-12 20:19:08.330821771 -0400
@@ -410,20 +410,24 @@
void ike_alg_aes_init(void)
{
- if (!test_aes_cbc(&algo_aes_cbc)) {
+ bool fips = libreswan_fipsmode();
+ if (!fips && !test_aes_cbc(&algo_aes_cbc)) {
loglog(RC_LOG_SERIOUS, "CKM_AES_CBC: test failure");
+ exit_pluto(6);
}
if (ike_alg_register_enc(&algo_aes_cbc) != 1)
loglog(RC_LOG_SERIOUS, "Warning: failed to register algo_aes_cbc for IKE");
- if (!test_aes_ctr(&algo_aes_ctr)) {
+ if (!fips && !test_aes_ctr(&algo_aes_ctr)) {
loglog(RC_LOG_SERIOUS, "CKM_AES_CTR: test failure");
+ exit_pluto(6);
}
if (ike_alg_register_enc(&algo_aes_ctr) != 1)
loglog(RC_LOG_SERIOUS, "Warning: failed to register algo_aes_ctr for IKE");
- if (!test_aes_gcm()) {
+ if (!fips && !test_aes_gcm()) {
loglog(RC_LOG_SERIOUS, "CKM_AES_GCM: test failure");
+ exit_pluto(6);
}
if (ike_alg_register_enc(&algo_aes_gcm_8) != 1)
loglog(RC_LOG_SERIOUS, "Warning: failed to register algo_aes_gcm_8 for IKE");
diff -Naur libreswan-3.12-orig/programs/pluto/ike_alg_camellia.c libreswan-3.12/programs/pluto/ike_alg_camellia.c
--- libreswan-3.12-orig/programs/pluto/ike_alg_camellia.c 2015-04-12 16:52:11.705911919 -0400
+++ libreswan-3.12/programs/pluto/ike_alg_camellia.c 2015-04-12 17:41:22.863365586 -0400
@@ -94,11 +94,20 @@
void ike_alg_camellia_init(void)
{
- test_camellia_cbc(&algo_camellia_cbc);
+#ifdef FIPS_CHECK
+ bool fips = libreswan_fipsmode();
+#else
+ bool fips = FALSE;
+#endif
+
+ if (!fips && !test_camellia_cbc(&algo_camellia_cbc)) {
+ loglog(RC_LOG_SERIOUS, "CKM_CAMELLIA_CBC: test failure");
+ exit_pluto(6);
+ }
+
if (ike_alg_register_enc(&algo_camellia_cbc) != 1)
loglog(RC_LOG_SERIOUS, "Warning: failed to register algo_camellia_cbc for IKE");
- // test_camellia_ctr(&algo_camellia_ctr);
if (ike_alg_register_enc(&algo_camellia_ctr) != 1)
loglog(RC_LOG_SERIOUS, "Warning: failed to register algo_camellia_ctr for IKE");
}