diff --git a/lib/gssapi/krb5/get_mic.c b/lib/gssapi/krb5/get_mic.c index a17c4639f..f3f7fff8a 100644 --- a/lib/gssapi/krb5/get_mic.c +++ b/lib/gssapi/krb5/get_mic.c @@ -47,7 +47,7 @@ mic_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; @@ -82,12 +82,12 @@ mic_des p += 16; /* checksum */ - EVP_MD_CTX_init(&md5); - EVP_DigestInit_ex(&md5, EVP_md5(), NULL); - EVP_DigestUpdate(&md5, p - 24, 8); - EVP_DigestUpdate(&md5, message_buffer->value, message_buffer->length); - 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, message_buffer->value, message_buffer->length); + EVP_DigestFinal_ex(md5, hash, NULL); + EVP_MD_CTX_destroy(md5); memset (&zero, 0, sizeof(zero)); memcpy (&deskey, key->keyvalue.data, sizeof(deskey));