use EVP_CIPHER_CTX_ functions instead of accessing EVP_CIPHER_CTX internals
authorIaroslav Gridin <voker57@gmail.com>
Sat, 29 Oct 2016 14:48:05 +0000 (17:48 +0300)
committerRichard Levitte <levitte@openssl.org>
Tue, 10 Jan 2017 07:21:45 +0000 (08:21 +0100)
by levitte

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1784)

crypto/engine/eng_cryptodev.c

index 71a6565cd8bc515b5512c3d566ef690a81146210..288718c762b6700c6d7c239315172410c8cdd76c 100644 (file)
@@ -534,12 +534,13 @@ static int cryptodev_cleanup(EVP_CIPHER_CTX *ctx)
 
 static int cryptodev_cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void *p2)
 {
-    struct dev_crypto_state *state = ctx->cipher_data;
+    struct dev_crypto_state *state = EVP_CIPHER_CTX_get_cipher_data(ctx);
     struct session_op *sess = &state->d_sess;
 
     if (type == EVP_CTRL_COPY) {
         EVP_CIPHER_CTX *out = p2;
-        return cryptodev_init_key(out, sess->key, ctx->iv, 0);
+        return cryptodev_init_key(out, (unsigned char *)sess->key,
+                                 EVP_CIPHER_CTX_iv(ctx), 0);
     }
 
     return 0;