summaryrefslogtreecommitdiff
path: root/crypto/heimdal/lib/krb5/crypto-arcfour.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/lib/krb5/crypto-arcfour.c')
-rw-r--r--crypto/heimdal/lib/krb5/crypto-arcfour.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/crypto/heimdal/lib/krb5/crypto-arcfour.c b/crypto/heimdal/lib/krb5/crypto-arcfour.c
index 7f7e21d0d22c..9a71d53f6542 100644
--- a/crypto/heimdal/lib/krb5/crypto-arcfour.c
+++ b/crypto/heimdal/lib/krb5/crypto-arcfour.c
@@ -129,7 +129,7 @@ ARCFOUR_subencrypt(krb5_context context,
unsigned usage,
void *ivec)
{
- EVP_CIPHER_CTX ctx;
+ EVP_CIPHER_CTX *ctx;
struct _krb5_checksum_type *c = _krb5_find_checksum (CKSUMTYPE_RSA_MD5);
Checksum k1_c, k2_c, k3_c, cksum;
struct _krb5_key_data ke;
@@ -176,11 +176,13 @@ ARCFOUR_subencrypt(krb5_context context,
if (ret)
krb5_abortx(context, "hmac failed");
- EVP_CIPHER_CTX_init(&ctx);
+ ctx = EVP_CIPHER_CTX_new();
+ if (ctx == NULL)
+ krb5_abortx(context, "malloc failed");
- EVP_CipherInit_ex(&ctx, EVP_rc4(), NULL, k3_c.checksum.data, NULL, 1);
- EVP_Cipher(&ctx, cdata + 16, cdata + 16, len - 16);
- EVP_CIPHER_CTX_cleanup(&ctx);
+ EVP_CipherInit_ex(ctx, EVP_rc4(), NULL, k3_c.checksum.data, NULL, 1);
+ EVP_Cipher(ctx, cdata + 16, cdata + 16, len - 16);
+ EVP_CIPHER_CTX_free(ctx);
memset (k1_c_data, 0, sizeof(k1_c_data));
memset (k2_c_data, 0, sizeof(k2_c_data));
@@ -196,7 +198,7 @@ ARCFOUR_subdecrypt(krb5_context context,
unsigned usage,
void *ivec)
{
- EVP_CIPHER_CTX ctx;
+ EVP_CIPHER_CTX *ctx;
struct _krb5_checksum_type *c = _krb5_find_checksum (CKSUMTYPE_RSA_MD5);
Checksum k1_c, k2_c, k3_c, cksum;
struct _krb5_key_data ke;
@@ -234,10 +236,12 @@ ARCFOUR_subdecrypt(krb5_context context,
if (ret)
krb5_abortx(context, "hmac failed");
- EVP_CIPHER_CTX_init(&ctx);
- EVP_CipherInit_ex(&ctx, EVP_rc4(), NULL, k3_c.checksum.data, NULL, 0);
- EVP_Cipher(&ctx, cdata + 16, cdata + 16, len - 16);
- EVP_CIPHER_CTX_cleanup(&ctx);
+ ctx = EVP_CIPHER_CTX_new();
+ if (ctx == NULL)
+ krb5_abortx(context, "malloc failed");
+ EVP_CipherInit_ex(ctx, EVP_rc4(), NULL, k3_c.checksum.data, NULL, 0);
+ EVP_Cipher(ctx, cdata + 16, cdata + 16, len - 16);
+ EVP_CIPHER_CTX_free(ctx);
ke.key = &kb;
kb.keyvalue = k2_c.checksum;