summaryrefslogtreecommitdiffstats
path: root/fips/ecdsa/fips_ecdsavs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fips/ecdsa/fips_ecdsavs.c')
-rw-r--r--fips/ecdsa/fips_ecdsavs.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/fips/ecdsa/fips_ecdsavs.c b/fips/ecdsa/fips_ecdsavs.c
index 50b1b7ca5d..35ff251060 100644
--- a/fips/ecdsa/fips_ecdsavs.c
+++ b/fips/ecdsa/fips_ecdsavs.c
@@ -287,10 +287,13 @@ static int PKV(FILE *in, FILE *out)
no_err = 1;
rv = EC_KEY_set_public_key_affine_coordinates(key, Qx, Qy);
no_err = 0;
+ EC_KEY_free(key);
fprintf(out, "Result = %s" RESP_EOL, rv ? "P":"F");
}
}
+ BN_free(Qx);
+ BN_free(Qy);
return 1;
}
@@ -358,7 +361,7 @@ static int SigGen(FILE *in, FILE *out)
do_bn_print_name(out, "S", sig->s);
EC_KEY_free(key);
-
+ OPENSSL_free(msg);
FIPS_ecdsa_sig_free(sig);
}
@@ -451,12 +454,24 @@ static int SigVer(FILE *in, FILE *out)
FIPS_digestupdate(&mctx, msg, mlen);
no_err = 1;
rv = FIPS_ecdsa_verify_ctx(key, &mctx, sig);
+ EC_KEY_free(key);
+ if (msg)
+ OPENSSL_free(msg);
no_err = 0;
fprintf(out, "Result = %s" RESP_EOL, rv ? "P":"F");
}
}
+ if (sig->r)
+ BN_free(sig->r);
+ if (sig->s)
+ BN_free(sig->s);
+ if (Qx)
+ BN_free(Qx);
+ if (Qy)
+ BN_free(Qy);
+ EVP_MD_CTX_cleanup(&mctx);
return 1;
}
#ifdef FIPS_ALGVS