version 1.7.10.1, 2013/11/08 05:52:21 |
version 1.8, 2013/05/17 00:13:13 |
|
|
u_char *k1, *k2, *k3; |
u_char *k1, *k2, *k3; |
|
|
if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) == NULL) { |
if ((c = EVP_CIPHER_CTX_get_app_data(ctx)) == NULL) { |
c = xcalloc(1, sizeof(*c)); |
c = xmalloc(sizeof(*c)); |
EVP_CIPHER_CTX_set_app_data(ctx, c); |
EVP_CIPHER_CTX_set_app_data(ctx, c); |
} |
} |
if (key == NULL) |
if (key == NULL) |
|
|
EVP_CipherInit(&c->k2, EVP_des_cbc(), k2, NULL, !enc) == 0 || |
EVP_CipherInit(&c->k2, EVP_des_cbc(), k2, NULL, !enc) == 0 || |
EVP_CipherInit(&c->k3, EVP_des_cbc(), k3, NULL, enc) == 0) { |
EVP_CipherInit(&c->k3, EVP_des_cbc(), k3, NULL, enc) == 0) { |
memset(c, 0, sizeof(*c)); |
memset(c, 0, sizeof(*c)); |
xfree(c); |
free(c); |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
return (0); |
return (0); |
} |
} |
|
|
EVP_CIPHER_CTX_cleanup(&c->k2); |
EVP_CIPHER_CTX_cleanup(&c->k2); |
EVP_CIPHER_CTX_cleanup(&c->k3); |
EVP_CIPHER_CTX_cleanup(&c->k3); |
memset(c, 0, sizeof(*c)); |
memset(c, 0, sizeof(*c)); |
xfree(c); |
free(c); |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
EVP_CIPHER_CTX_set_app_data(ctx, NULL); |
} |
} |
return (1); |
return (1); |