Changeset View
Changeset View
Standalone View
Standalone View
crypto/heimdal/lib/krb5/crypto-des-common.c
Show First 20 Lines • Show All 75 Lines • ▼ Show 20 Lines | return ENOMEM; | ||||
} | } | ||||
EVP_DigestInit_ex(m, evp_md, NULL); | EVP_DigestInit_ex(m, evp_md, NULL); | ||||
EVP_DigestUpdate(m, p, 8); | EVP_DigestUpdate(m, p, 8); | ||||
EVP_DigestUpdate(m, data, len); | EVP_DigestUpdate(m, data, len); | ||||
EVP_DigestFinal_ex (m, p + 8, NULL); | EVP_DigestFinal_ex (m, p + 8, NULL); | ||||
EVP_MD_CTX_destroy(m); | EVP_MD_CTX_destroy(m); | ||||
memset (&ivec, 0, sizeof(ivec)); | memset (&ivec, 0, sizeof(ivec)); | ||||
EVP_CipherInit_ex(&ctx->ectx, NULL, NULL, NULL, (void *)&ivec, -1); | EVP_CipherInit_ex(ctx->ectx, NULL, NULL, NULL, (void *)&ivec, -1); | ||||
EVP_Cipher(&ctx->ectx, p, p, 24); | EVP_Cipher(ctx->ectx, p, p, 24); | ||||
return 0; | return 0; | ||||
} | } | ||||
krb5_error_code | krb5_error_code | ||||
_krb5_des_verify(krb5_context context, | _krb5_des_verify(krb5_context context, | ||||
const EVP_MD *evp_md, | const EVP_MD *evp_md, | ||||
struct _krb5_key_data *key, | struct _krb5_key_data *key, | ||||
Show All 10 Lines | _krb5_des_verify(krb5_context context, | ||||
m = EVP_MD_CTX_create(); | m = EVP_MD_CTX_create(); | ||||
if (m == NULL) { | if (m == NULL) { | ||||
krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", "")); | krb5_set_error_message(context, ENOMEM, N_("malloc: out of memory", "")); | ||||
return ENOMEM; | return ENOMEM; | ||||
} | } | ||||
memset(&ivec, 0, sizeof(ivec)); | memset(&ivec, 0, sizeof(ivec)); | ||||
EVP_CipherInit_ex(&ctx->dctx, NULL, NULL, NULL, (void *)&ivec, -1); | EVP_CipherInit_ex(ctx->dctx, NULL, NULL, NULL, (void *)&ivec, -1); | ||||
EVP_Cipher(&ctx->dctx, tmp, C->checksum.data, 24); | EVP_Cipher(ctx->dctx, tmp, C->checksum.data, 24); | ||||
EVP_DigestInit_ex(m, evp_md, NULL); | EVP_DigestInit_ex(m, evp_md, NULL); | ||||
EVP_DigestUpdate(m, tmp, 8); /* confounder */ | EVP_DigestUpdate(m, tmp, 8); /* confounder */ | ||||
EVP_DigestUpdate(m, data, len); | EVP_DigestUpdate(m, data, len); | ||||
EVP_DigestFinal_ex (m, res, NULL); | EVP_DigestFinal_ex (m, res, NULL); | ||||
EVP_MD_CTX_destroy(m); | EVP_MD_CTX_destroy(m); | ||||
if(ct_memcmp(res, tmp + 8, sizeof(res)) != 0) { | if(ct_memcmp(res, tmp + 8, sizeof(res)) != 0) { | ||||
krb5_clear_error_message (context); | krb5_clear_error_message (context); | ||||
Show All 31 Lines |