summaryrefslogtreecommitdiffstats
path: root/test/evp_test.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2015-12-11 16:10:53 +0100
committerRichard Levitte <levitte@openssl.org>2015-12-11 16:18:01 +0100
commit254b26af2003c49958b52215f9fec03b4c7eed03 (patch)
tree4c2e338a174488f0018c0f90d6b6dff8e2a6a7b3 /test/evp_test.c
parent601ab3151f4e17739465533fc159169f54f43a02 (diff)
Adapt EVP tests to the opaque EVP_ENCODE_CTX
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'test/evp_test.c')
-rw-r--r--test/evp_test.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/test/evp_test.c b/test/evp_test.c
index ec2283a50f..f24494bbc3 100644
--- a/test/evp_test.c
+++ b/test/evp_test.c
@@ -1591,22 +1591,29 @@ static int encode_test_run(struct evp_test *t)
unsigned char *encode_out = NULL, *decode_out = NULL;
int output_len, chunk_len;
const char *err = "INTERNAL_ERROR";
- EVP_ENCODE_CTX decode_ctx;
+ EVP_ENCODE_CTX *decode_ctx = EVP_ENCODE_CTX_new();
+
+ if (decode_ctx == NULL)
+ goto err;
if (edata->encoding == BASE64_CANONICAL_ENCODING) {
- EVP_ENCODE_CTX encode_ctx;
+ EVP_ENCODE_CTX *encode_ctx = EVP_ENCODE_CTX_new();
+ if (encode_ctx == NULL)
+ goto err;
encode_out = OPENSSL_malloc(EVP_ENCODE_LENGTH(edata->input_len));
if (encode_out == NULL)
goto err;
- EVP_EncodeInit(&encode_ctx);
- EVP_EncodeUpdate(&encode_ctx, encode_out, &chunk_len,
+ EVP_EncodeInit(encode_ctx);
+ EVP_EncodeUpdate(encode_ctx, encode_out, &chunk_len,
edata->input, edata->input_len);
output_len = chunk_len;
- EVP_EncodeFinal(&encode_ctx, encode_out + chunk_len, &chunk_len);
+ EVP_EncodeFinal(encode_ctx, encode_out + chunk_len, &chunk_len);
output_len += chunk_len;
+ EVP_ENCODE_CTX_free(encode_ctx);
+
if (check_var_length_output(t, edata->output, edata->output_len,
encode_out, output_len)) {
err = "BAD_ENCODING";
@@ -1618,15 +1625,15 @@ static int encode_test_run(struct evp_test *t)
if (decode_out == NULL)
goto err;
- EVP_DecodeInit(&decode_ctx);
- if (EVP_DecodeUpdate(&decode_ctx, decode_out, &chunk_len, edata->output,
+ EVP_DecodeInit(decode_ctx);
+ if (EVP_DecodeUpdate(decode_ctx, decode_out, &chunk_len, edata->output,
edata->output_len) < 0) {
err = "DECODE_ERROR";
goto err;
}
output_len = chunk_len;
- if (EVP_DecodeFinal(&decode_ctx, decode_out + chunk_len, &chunk_len) != 1) {
+ if (EVP_DecodeFinal(decode_ctx, decode_out + chunk_len, &chunk_len) != 1) {
err = "DECODE_ERROR";
goto err;
}
@@ -1644,6 +1651,7 @@ static int encode_test_run(struct evp_test *t)
t->err = err;
OPENSSL_free(encode_out);
OPENSSL_free(decode_out);
+ EVP_ENCODE_CTX_free(decode_ctx);
return 1;
}