X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=crypto%2Fpem%2Fpem_lib.c;h=2d328b4d36c4b997a3ab716f82006caca00f007f;hb=7b3e11c54466f1da8b707c932e308d345fd61101;hp=5a421fc4b6ae817ea79c75fed04d035a5270bc62;hpb=c8bbd98a2b0c2a5164c42f951cd2866512839b5a;p=oweals%2Fopenssl.git diff --git a/crypto/pem/pem_lib.c b/crypto/pem/pem_lib.c index 5a421fc4b6..2d328b4d36 100644 --- a/crypto/pem/pem_lib.c +++ b/crypto/pem/pem_lib.c @@ -236,6 +236,9 @@ static int check_pem(const char *nm, const char *name) } return 0; } + /* If reading DH parameters handle X9.42 DH format too */ + if(!strcmp(nm,PEM_STRING_DHXPARAMS) && + !strcmp(name,PEM_STRING_DHPARAMS)) return 1; /* Permit older strings */ @@ -477,8 +480,9 @@ int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen, EVP_CIPHER_CTX_cleanup(&ctx); OPENSSL_cleanse((char *)buf,sizeof(buf)); OPENSSL_cleanse((char *)key,sizeof(key)); - j+=i; - if (!o) + if (o) + j+=i; + else { PEMerr(PEM_F_PEM_DO_HEADER,PEM_R_BAD_DECRYPT); return(0); @@ -573,8 +577,8 @@ static int load_iv(char **fromp, unsigned char *to, int num) } #ifndef OPENSSL_NO_FP_API -int PEM_write(FILE *fp, char *name, char *header, unsigned char *data, - long len) +int PEM_write(FILE *fp, const char *name, const char *header, + const unsigned char *data, long len) { BIO *b; int ret; @@ -591,8 +595,8 @@ int PEM_write(FILE *fp, char *name, char *header, unsigned char *data, } #endif -int PEM_write_bio(BIO *bp, const char *name, char *header, unsigned char *data, - long len) +int PEM_write_bio(BIO *bp, const char *name, const char *header, + const unsigned char *data, long len) { int nlen,n,i,j,outl; unsigned char *buf = NULL;