diff --git a/lib/gssapi/krb5/wrap.c b/lib/gssapi/krb5/wrap.c index 2c20f7b87..9078fb3dd 100644 --- a/lib/gssapi/krb5/wrap.c +++ b/lib/gssapi/krb5/wrap.c @@ -208,7 +208,7 @@ wrap_des ) { u_char *p; - EVP_MD_CTX md5; + EVP_MD_CTX *md5; u_char hash[16]; DES_key_schedule schedule; EVP_CIPHER_CTX des_ctx; @@ -269,12 +269,12 @@ wrap_des memset (p + 8 + input_message_buffer->length, padlength, padlength); /* checksum */ - EVP_MD_CTX_init(&md5); - EVP_DigestInit_ex(&md5, EVP_md5(), NULL); - EVP_DigestUpdate(&md5, p - 24, 8); - EVP_DigestUpdate(&md5, p, datalen); - EVP_DigestFinal_ex(&md5, hash, NULL); - EVP_MD_CTX_cleanup(&md5); + md5 = EVP_MD_CTX_create(); + EVP_DigestInit_ex(md5, EVP_md5(), NULL); + EVP_DigestUpdate(md5, p - 24, 8); + EVP_DigestUpdate(md5, p, datalen); + EVP_DigestFinal_ex(md5, hash, NULL); + EVP_MD_CTX_destroy(md5); memset (&zero, 0, sizeof(zero)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));