switch to use EVP interface instead of old crypto interface
This commit is contained in:
@@ -48,6 +48,7 @@ unwrap_des
|
|||||||
size_t len;
|
size_t len;
|
||||||
EVP_MD_CTX md5;
|
EVP_MD_CTX md5;
|
||||||
u_char hash[16];
|
u_char hash[16];
|
||||||
|
EVP_CIPHER_CTX des_ctx;
|
||||||
DES_key_schedule schedule;
|
DES_key_schedule schedule;
|
||||||
DES_cblock deskey;
|
DES_cblock deskey;
|
||||||
DES_cblock zero;
|
DES_cblock zero;
|
||||||
@@ -98,16 +99,13 @@ unwrap_des
|
|||||||
|
|
||||||
for (i = 0; i < sizeof(deskey); ++i)
|
for (i = 0; i < sizeof(deskey); ++i)
|
||||||
deskey[i] ^= 0xf0;
|
deskey[i] ^= 0xf0;
|
||||||
DES_set_key_unchecked (&deskey, &schedule);
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
|
||||||
DES_cbc_encrypt ((void *)p,
|
|
||||||
(void *)p,
|
|
||||||
input_message_buffer->length - len,
|
|
||||||
&schedule,
|
|
||||||
&zero,
|
|
||||||
DES_DECRYPT);
|
|
||||||
|
|
||||||
memset (deskey, 0, sizeof(deskey));
|
|
||||||
|
EVP_CIPHER_CTX_init(&des_ctx);
|
||||||
|
EVP_CipherInit_ex(&des_ctx, EVP_des_cbc(), NULL, deskey, zero, 0);
|
||||||
|
EVP_Cipher(&des_ctx, p, p, input_message_buffer->length - len);
|
||||||
|
EVP_CIPHER_CTX_cleanup(&des_ctx);
|
||||||
|
|
||||||
memset (&schedule, 0, sizeof(schedule));
|
memset (&schedule, 0, sizeof(schedule));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,9 +140,11 @@ unwrap_des
|
|||||||
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
|
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
|
||||||
|
|
||||||
p -= 16;
|
p -= 16;
|
||||||
DES_set_key_unchecked (&deskey, &schedule);
|
|
||||||
DES_cbc_encrypt ((void *)p, (void *)p, 8,
|
EVP_CIPHER_CTX_init(&des_ctx);
|
||||||
&schedule, (DES_cblock *)hash, DES_DECRYPT);
|
EVP_CipherInit_ex(&des_ctx, EVP_des_cbc(), NULL, key->keyvalue.data, hash, 0);
|
||||||
|
EVP_Cipher(&des_ctx, p, p, 8);
|
||||||
|
EVP_CIPHER_CTX_cleanup(&des_ctx);
|
||||||
|
|
||||||
memset (deskey, 0, sizeof(deskey));
|
memset (deskey, 0, sizeof(deskey));
|
||||||
memset (&schedule, 0, sizeof(schedule));
|
memset (&schedule, 0, sizeof(schedule));
|
||||||
|
@@ -49,6 +49,7 @@ verify_mic_des
|
|||||||
EVP_MD_CTX md5;
|
EVP_MD_CTX md5;
|
||||||
u_char hash[16], *seq;
|
u_char hash[16], *seq;
|
||||||
DES_key_schedule schedule;
|
DES_key_schedule schedule;
|
||||||
|
EVP_CIPHER_CTX des_ctx;
|
||||||
DES_cblock zero;
|
DES_cblock zero;
|
||||||
DES_cblock deskey;
|
DES_cblock deskey;
|
||||||
uint32_t seq_number;
|
uint32_t seq_number;
|
||||||
@@ -96,9 +97,11 @@ verify_mic_des
|
|||||||
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
|
HEIMDAL_MUTEX_lock(&context_handle->ctx_id_mutex);
|
||||||
|
|
||||||
p -= 16;
|
p -= 16;
|
||||||
DES_set_key_unchecked (&deskey, &schedule);
|
|
||||||
DES_cbc_encrypt ((void *)p, (void *)p, 8,
|
EVP_CIPHER_CTX_init(&des_ctx);
|
||||||
&schedule, (DES_cblock *)hash, DES_DECRYPT);
|
EVP_CipherInit_ex(&des_ctx, EVP_des_cbc(), NULL, key->keyvalue.data, hash, 0);
|
||||||
|
EVP_Cipher(&des_ctx, p, p, 8);
|
||||||
|
EVP_CIPHER_CTX_cleanup(&des_ctx);
|
||||||
|
|
||||||
memset (deskey, 0, sizeof(deskey));
|
memset (deskey, 0, sizeof(deskey));
|
||||||
memset (&schedule, 0, sizeof(schedule));
|
memset (&schedule, 0, sizeof(schedule));
|
||||||
|
@@ -205,6 +205,7 @@ wrap_des
|
|||||||
EVP_MD_CTX md5;
|
EVP_MD_CTX md5;
|
||||||
u_char hash[16];
|
u_char hash[16];
|
||||||
DES_key_schedule schedule;
|
DES_key_schedule schedule;
|
||||||
|
EVP_CIPHER_CTX des_ctx;
|
||||||
DES_cblock deskey;
|
DES_cblock deskey;
|
||||||
DES_cblock zero;
|
DES_cblock zero;
|
||||||
int i;
|
int i;
|
||||||
@@ -291,9 +292,10 @@ wrap_des
|
|||||||
(ctx->more_flags & LOCAL) ? 0 : 0xFF,
|
(ctx->more_flags & LOCAL) ? 0 : 0xFF,
|
||||||
4);
|
4);
|
||||||
|
|
||||||
DES_set_key_unchecked (&deskey, &schedule);
|
EVP_CIPHER_CTX_init(&des_ctx);
|
||||||
DES_cbc_encrypt ((void *)p, (void *)p, 8,
|
EVP_CipherInit_ex(&des_ctx, EVP_des_cbc(), NULL, key->keyvalue.data, p + 8, 1);
|
||||||
&schedule, (DES_cblock *)(p + 8), DES_ENCRYPT);
|
EVP_Cipher(&des_ctx, p, p, 8);
|
||||||
|
EVP_CIPHER_CTX_cleanup(&des_ctx);
|
||||||
|
|
||||||
krb5_auth_con_setlocalseqnumber (context,
|
krb5_auth_con_setlocalseqnumber (context,
|
||||||
ctx->auth_context,
|
ctx->auth_context,
|
||||||
@@ -308,14 +310,11 @@ wrap_des
|
|||||||
|
|
||||||
for (i = 0; i < sizeof(deskey); ++i)
|
for (i = 0; i < sizeof(deskey); ++i)
|
||||||
deskey[i] ^= 0xf0;
|
deskey[i] ^= 0xf0;
|
||||||
DES_set_key_unchecked (&deskey, &schedule);
|
|
||||||
memset (&zero, 0, sizeof(zero));
|
EVP_CIPHER_CTX_init(&des_ctx);
|
||||||
DES_cbc_encrypt ((void *)p,
|
EVP_CipherInit_ex(&des_ctx, EVP_des_cbc(), NULL, deskey, zero, 1);
|
||||||
(void *)p,
|
EVP_Cipher(&des_ctx, p, p, datalen);
|
||||||
datalen,
|
EVP_CIPHER_CTX_cleanup(&des_ctx);
|
||||||
&schedule,
|
|
||||||
&zero,
|
|
||||||
DES_ENCRYPT);
|
|
||||||
}
|
}
|
||||||
memset (deskey, 0, sizeof(deskey));
|
memset (deskey, 0, sizeof(deskey));
|
||||||
memset (&schedule, 0, sizeof(schedule));
|
memset (&schedule, 0, sizeof(schedule));
|
||||||
|
Reference in New Issue
Block a user