提交 6c2ff56e 编写于 作者: R Richard Levitte

Adapt all EVP_CIPHER users for it becoming opaque

Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 3dcb9e4e
...@@ -528,15 +528,15 @@ int enc_main(int argc, char **argv) ...@@ -528,15 +528,15 @@ int enc_main(int argc, char **argv)
printf("%02X", salt[i]); printf("%02X", salt[i]);
printf("\n"); printf("\n");
} }
if (cipher->key_len > 0) { if (EVP_CIPHER_key_length(cipher) > 0) {
printf("key="); printf("key=");
for (i = 0; i < cipher->key_len; i++) for (i = 0; i < EVP_CIPHER_key_length(cipher); i++)
printf("%02X", key[i]); printf("%02X", key[i]);
printf("\n"); printf("\n");
} }
if (cipher->iv_len > 0) { if (EVP_CIPHER_iv_length(cipher) > 0) {
printf("iv ="); printf("iv =");
for (i = 0; i < cipher->iv_len; i++) for (i = 0; i < EVP_CIPHER_iv_length(cipher); i++)
printf("%02X", iv[i]); printf("%02X", iv[i]);
printf("\n"); printf("\n");
} }
......
...@@ -1644,7 +1644,7 @@ int speed_main(int argc, char **argv) ...@@ -1644,7 +1644,7 @@ int speed_main(int argc, char **argv)
(EVP_CIPHER_flags(evp_cipher) & (EVP_CIPHER_flags(evp_cipher) &
EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK)) { EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK)) {
BIO_printf(bio_err, "%s is not multi-block capable\n", BIO_printf(bio_err, "%s is not multi-block capable\n",
OBJ_nid2ln(evp_cipher->nid)); OBJ_nid2ln(EVP_CIPHER_nid(evp_cipher)));
goto end; goto end;
} }
multiblock_speed(evp_cipher); multiblock_speed(evp_cipher);
...@@ -1657,7 +1657,7 @@ int speed_main(int argc, char **argv) ...@@ -1657,7 +1657,7 @@ int speed_main(int argc, char **argv)
EVP_CIPHER_CTX *ctx; EVP_CIPHER_CTX *ctx;
int outl; int outl;
names[D_EVP] = OBJ_nid2ln(evp_cipher->nid); names[D_EVP] = OBJ_nid2ln(EVP_CIPHER_nid(evp_cipher));
/* /*
* -O3 -fschedule-insns messes up an optimization here! * -O3 -fschedule-insns messes up an optimization here!
* names[D_EVP] somehow becomes NULL * names[D_EVP] somehow becomes NULL
...@@ -2447,7 +2447,7 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher) ...@@ -2447,7 +2447,7 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher)
EVP_EncryptInit_ex(ctx, evp_cipher, NULL, no_key, no_iv); EVP_EncryptInit_ex(ctx, evp_cipher, NULL, no_key, no_iv);
EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_MAC_KEY, sizeof(no_key), EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_AEAD_SET_MAC_KEY, sizeof(no_key),
no_key); no_key);
alg_name = OBJ_nid2ln(evp_cipher->nid); alg_name = OBJ_nid2ln(EVP_CIPHER_nid(evp_cipher));
for (j = 0; j < num; j++) { for (j = 0; j < num; j++) {
print_message(alg_name, 0, mblengths[j]); print_message(alg_name, 0, mblengths[j]);
......
...@@ -345,11 +345,13 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, ...@@ -345,11 +345,13 @@ int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc,
} }
/* create the right magic header stuff */ /* create the right magic header stuff */
OPENSSL_assert(strlen(objstr) + 23 + 2 * enc->iv_len + 13 <= OPENSSL_assert(strlen(objstr) + 23
+ 2 * EVP_CIPHER_iv_length(enc) + 13 <=
sizeof buf); sizeof buf);
buf[0] = '\0'; buf[0] = '\0';
PEM_proc_type(buf, PEM_TYPE_ENCRYPTED); PEM_proc_type(buf, PEM_TYPE_ENCRYPTED);
PEM_dek_info(buf, objstr, enc->iv_len, (char *)iv); PEM_dek_info(buf, objstr, EVP_CIPHER_iv_length(enc),
(char *)iv);
/* use the normal code to write things out */ /* use the normal code to write things out */
i = PEM_write_bio(bp, PEM_STRING_RSA, buf, data, i); i = PEM_write_bio(bp, PEM_STRING_RSA, buf, data, i);
......
...@@ -388,8 +388,8 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, ...@@ -388,8 +388,8 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
kstr = (unsigned char *)buf; kstr = (unsigned char *)buf;
} }
RAND_add(data, i, 0); /* put in the RSA key. */ RAND_add(data, i, 0); /* put in the RSA key. */
OPENSSL_assert(enc->iv_len <= (int)sizeof(iv)); OPENSSL_assert(EVP_CIPHER_iv_length(enc) <= (int)sizeof(iv));
if (RAND_bytes(iv, enc->iv_len) <= 0) /* Generate a salt */ if (RAND_bytes(iv, EVP_CIPHER_iv_length(enc)) <= 0) /* Generate a salt */
goto err; goto err;
/* /*
* The 'iv' is used as the iv and as a salt. It is NOT taken from * The 'iv' is used as the iv and as a salt. It is NOT taken from
...@@ -401,12 +401,12 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, ...@@ -401,12 +401,12 @@ int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp,
if (kstr == (unsigned char *)buf) if (kstr == (unsigned char *)buf)
OPENSSL_cleanse(buf, PEM_BUFSIZE); OPENSSL_cleanse(buf, PEM_BUFSIZE);
OPENSSL_assert(strlen(objstr) + 23 + 2 * enc->iv_len + 13 <= OPENSSL_assert(strlen(objstr) + 23 + 2 * EVP_CIPHER_iv_length(enc) + 13
sizeof buf); <= sizeof buf);
buf[0] = '\0'; buf[0] = '\0';
PEM_proc_type(buf, PEM_TYPE_ENCRYPTED); PEM_proc_type(buf, PEM_TYPE_ENCRYPTED);
PEM_dek_info(buf, objstr, enc->iv_len, (char *)iv); PEM_dek_info(buf, objstr, EVP_CIPHER_iv_length(enc), (char *)iv);
/* k=strlen(buf); */ /* k=strlen(buf); */
ret = 1; ret = 1;
...@@ -544,7 +544,7 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher) ...@@ -544,7 +544,7 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_UNSUPPORTED_ENCRYPTION); PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_UNSUPPORTED_ENCRYPTION);
return (0); return (0);
} }
if (!load_iv(header_pp, &(cipher->iv[0]), enc->iv_len)) if (!load_iv(header_pp, &(cipher->iv[0]), EVP_CIPHER_iv_length(enc)))
return (0); return (0);
return (1); return (1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册