if (point == NULL)
return;
+#ifdef FIPS_MODULE
+ EC_POINT_clear_free(point);
+#else
if (point->meth->point_finish != 0)
point->meth->point_finish(point);
OPENSSL_free(point);
+#endif
}
void EC_POINT_clear_free(EC_POINT *point)
void ossl_ffc_params_cleanup(FFC_PARAMS *params)
{
+#ifdef FIPS_MODULE
+ BN_clear_free(params->p);
+ BN_clear_free(params->q);
+ BN_clear_free(params->g);
+ BN_clear_free(params->j);
+ OPENSSL_clear_free(params->seed, params->seedlen);
+#else
BN_free(params->p);
BN_free(params->q);
BN_free(params->g);
BN_free(params->j);
OPENSSL_free(params->seed);
+#endif
ossl_ffc_params_init(params);
}
CRYPTO_THREAD_lock_free(r->lock);
CRYPTO_FREE_REF(&r->references);
+#ifdef FIPS_MODULE
+ BN_clear_free(r->n);
+ BN_clear_free(r->e);
+#else
BN_free(r->n);
BN_free(r->e);
+#endif
BN_clear_free(r->d);
BN_clear_free(r->p);
BN_clear_free(r->q);
void *provctx = ctx->provctx;
ossl_prov_digest_reset(&ctx->digest);
+#ifdef FIPS_MODULE
+ OPENSSL_clear_free(ctx->salt, ctx->salt_len);
+#else
OPENSSL_free(ctx->salt);
+#endif
OPENSSL_free(ctx->prefix);
OPENSSL_free(ctx->label);
OPENSSL_clear_free(ctx->data, ctx->data_len);
static void kdf_pbkdf2_cleanup(KDF_PBKDF2 *ctx)
{
ossl_prov_digest_reset(&ctx->digest);
+#ifdef FIPS_MODULE
+ OPENSSL_clear_free(ctx->salt, ctx->salt_len);
+#else
OPENSSL_free(ctx->salt);
+#endif
OPENSSL_clear_free(ctx->pass, ctx->pass_len);
memset(ctx, 0, sizeof(*ctx));
}