RT4320/GH705: Fix PEM parsing bug.

Also removing confusing pointer-alias variable.
Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Rich Salz 2016-02-17 16:13:49 -05:00 committed by Rich Salz
parent ed233db742
commit 985c314696

View file

@ -489,7 +489,6 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
{ {
const EVP_CIPHER *enc = NULL; const EVP_CIPHER *enc = NULL;
char *dekinfostart, c; char *dekinfostart, c;
char **header_pp = &header;
cipher->cipher = NULL; cipher->cipher = NULL;
if ((header == NULL) || (*header == '\0') || (*header == '\n')) if ((header == NULL) || (*header == '\0') || (*header == '\n'))
@ -536,13 +535,13 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
} }
*header = '\0'; *header = '\0';
cipher->cipher = enc = EVP_get_cipherbyname(dekinfostart); cipher->cipher = enc = EVP_get_cipherbyname(dekinfostart);
*header = c; *header++ = c;
if (enc == NULL) { if (enc == NULL) {
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]), EVP_CIPHER_iv_length(enc))) if (!load_iv(&header, cipher->iv, EVP_CIPHER_iv_length(enc)))
return (0); return (0);
return (1); return (1);