Changeset View
Changeset View
Standalone View
Standalone View
crypto/heimdal/lib/krb5/crypto-aes.c
Show First 20 Lines • Show All 118 Lines • ▼ Show 20 Lines | AES_PRF(krb5_context context, | ||||
krb5_abortx(context, "krb5_derive_key"); | krb5_abortx(context, "krb5_derive_key"); | ||||
ret = krb5_data_alloc(out, crypto->et->blocksize); | ret = krb5_data_alloc(out, crypto->et->blocksize); | ||||
if (ret) | if (ret) | ||||
krb5_abortx(context, "malloc failed"); | krb5_abortx(context, "malloc failed"); | ||||
{ | { | ||||
const EVP_CIPHER *c = (*crypto->et->keytype->evp)(); | const EVP_CIPHER *c = (*crypto->et->keytype->evp)(); | ||||
EVP_CIPHER_CTX ctx; | EVP_CIPHER_CTX *ctx; | ||||
EVP_CIPHER_CTX_init(&ctx); /* ivec all zero */ | ctx = EVP_CIPHER_CTX_new(); /* ivec all zero */ | ||||
EVP_CipherInit_ex(&ctx, c, NULL, derived->keyvalue.data, NULL, 1); | if (ctx == NULL) | ||||
EVP_Cipher(&ctx, out->data, result.checksum.data, | krb5_abortx(context, "malloc failed"); | ||||
EVP_CipherInit_ex(ctx, c, NULL, derived->keyvalue.data, NULL, 1); | |||||
EVP_Cipher(ctx, out->data, result.checksum.data, | |||||
crypto->et->blocksize); | crypto->et->blocksize); | ||||
EVP_CIPHER_CTX_cleanup(&ctx); | EVP_CIPHER_CTX_free(ctx); | ||||
} | } | ||||
krb5_data_free(&result.checksum); | krb5_data_free(&result.checksum); | ||||
krb5_free_keyblock(context, derived); | krb5_free_keyblock(context, derived); | ||||
return ret; | return ret; | ||||
} | } | ||||
Show All 29 Lines |