From a4aba800d9e0f81617d2f3d95d4fa99a4487bab2 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Tue, 7 Nov 2000 13:54:39 +0000 Subject: [PATCH] Constify DSA-related code. --- crypto/asn1/d2i_dsap.c | 2 +- crypto/asn1/d2i_pr.c | 3 ++- crypto/asn1/d2i_pu.c | 3 ++- crypto/asn1/d2i_s_pr.c | 2 +- crypto/asn1/d2i_s_pu.c | 2 +- crypto/asn1/i2d_dsap.c | 2 +- crypto/asn1/i2d_s_pr.c | 2 +- crypto/asn1/i2d_s_pu.c | 2 +- crypto/asn1/t_pkey.c | 8 ++++---- crypto/asn1/x_pubkey.c | 5 +++-- crypto/dsa/dsa.h | 41 +++++++++++++++++++------------------ crypto/dsa/dsa_asn1.c | 4 ++-- crypto/dsa/dsa_gen.c | 3 ++- crypto/dsa/dsa_lib.c | 16 +++++++-------- crypto/dsa/dsa_ossl.c | 2 +- crypto/dsa/dsa_vrf.c | 2 +- crypto/engine/engine.h | 4 ++-- crypto/engine/engine_int.h | 2 +- crypto/engine/engine_list.c | 4 ++-- crypto/engine/hw_atalla.c | 4 ++-- crypto/engine/hw_cswift.c | 2 +- crypto/engine/hw_ncipher.c | 2 +- crypto/engine/hw_nuron.c | 4 ++-- crypto/evp/evp_pkey.c | 4 ++-- 24 files changed, 65 insertions(+), 60 deletions(-) diff --git a/crypto/asn1/d2i_dsap.c b/crypto/asn1/d2i_dsap.c index 9d4dea6145..d97330791c 100644 --- a/crypto/asn1/d2i_dsap.c +++ b/crypto/asn1/d2i_dsap.c @@ -68,7 +68,7 @@ #define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER #endif -DSA *d2i_DSAparams(DSA **a, unsigned char **pp, long length) +DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length) { int i=ERR_R_NESTED_ASN1_ERROR; ASN1_INTEGER *bs=NULL; diff --git a/crypto/asn1/d2i_pr.c b/crypto/asn1/d2i_pr.c index 6c3096d6ff..31584fe090 100644 --- a/crypto/asn1/d2i_pr.c +++ b/crypto/asn1/d2i_pr.c @@ -94,7 +94,8 @@ EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, unsigned char **pp, #endif #ifndef NO_DSA case EVP_PKEY_DSA: - if ((ret->pkey.dsa=d2i_DSAPrivateKey(NULL,pp,length)) == NULL) + if ((ret->pkey.dsa=d2i_DSAPrivateKey(NULL, + (const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */ { ASN1err(ASN1_F_D2I_PRIVATEKEY,ERR_R_ASN1_LIB); goto err; diff --git a/crypto/asn1/d2i_pu.c b/crypto/asn1/d2i_pu.c index fdbc0ac9e8..9eedde3de4 100644 --- a/crypto/asn1/d2i_pu.c +++ b/crypto/asn1/d2i_pu.c @@ -94,7 +94,8 @@ EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, unsigned char **pp, #endif #ifndef NO_DSA case EVP_PKEY_DSA: - if ((ret->pkey.dsa=d2i_DSAPublicKey(NULL,pp,length)) == NULL) + if ((ret->pkey.dsa=d2i_DSAPublicKey(NULL, + (const unsigned char **)pp,length)) == NULL) /* TMP UGLY CAST */ { ASN1err(ASN1_F_D2I_PUBLICKEY,ERR_R_ASN1_LIB); goto err; diff --git a/crypto/asn1/d2i_s_pr.c b/crypto/asn1/d2i_s_pr.c index 55d5802d70..4722b26458 100644 --- a/crypto/asn1/d2i_s_pr.c +++ b/crypto/asn1/d2i_s_pr.c @@ -66,7 +66,7 @@ #include #include -DSA *d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length) +DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length) { int i=ASN1_R_PARSING; ASN1_INTEGER *bs=NULL; diff --git a/crypto/asn1/d2i_s_pu.c b/crypto/asn1/d2i_s_pu.c index 0b7d2fafcc..4d1a772e8c 100644 --- a/crypto/asn1/d2i_s_pu.c +++ b/crypto/asn1/d2i_s_pu.c @@ -70,7 +70,7 @@ #define d2i_ASN1_INTEGER d2i_ASN1_UINTEGER #endif -DSA *d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length) +DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length) { int i=ASN1_R_PARSING; ASN1_INTEGER *bs=NULL; diff --git a/crypto/asn1/i2d_dsap.c b/crypto/asn1/i2d_dsap.c index 157fb43893..028957992e 100644 --- a/crypto/asn1/i2d_dsap.c +++ b/crypto/asn1/i2d_dsap.c @@ -63,7 +63,7 @@ #include #include -int i2d_DSAparams(DSA *a, unsigned char **pp) +int i2d_DSAparams(const DSA *a, unsigned char **pp) { BIGNUM *num[3]; ASN1_INTEGER bs; diff --git a/crypto/asn1/i2d_s_pr.c b/crypto/asn1/i2d_s_pr.c index 9922952ad7..124ad98285 100644 --- a/crypto/asn1/i2d_s_pr.c +++ b/crypto/asn1/i2d_s_pr.c @@ -64,7 +64,7 @@ #include #include -int i2d_DSAPrivateKey(DSA *a, unsigned char **pp) +int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp) { BIGNUM *num[6]; unsigned char data[1]; diff --git a/crypto/asn1/i2d_s_pu.c b/crypto/asn1/i2d_s_pu.c index e6014b82a8..96e9ff595b 100644 --- a/crypto/asn1/i2d_s_pu.c +++ b/crypto/asn1/i2d_s_pu.c @@ -64,7 +64,7 @@ #include #include -int i2d_DSAPublicKey(DSA *a, unsigned char **pp) +int i2d_DSAPublicKey(const DSA *a, unsigned char **pp) { BIGNUM *num[4]; ASN1_INTEGER bs; diff --git a/crypto/asn1/t_pkey.c b/crypto/asn1/t_pkey.c index f204326386..644349df4e 100644 --- a/crypto/asn1/t_pkey.c +++ b/crypto/asn1/t_pkey.c @@ -140,7 +140,7 @@ err: #ifndef NO_DSA #ifndef NO_FP_API -int DSA_print_fp(FILE *fp, DSA *x, int off) +int DSA_print_fp(FILE *fp, const DSA *x, int off) { BIO *b; int ret; @@ -157,7 +157,7 @@ int DSA_print_fp(FILE *fp, DSA *x, int off) } #endif -int DSA_print(BIO *bp, DSA *x, int off) +int DSA_print(BIO *bp, const DSA *x, int off) { char str[128]; unsigned char *m=NULL; @@ -314,7 +314,7 @@ err: #ifndef NO_DSA #ifndef NO_FP_API -int DSAparams_print_fp(FILE *fp, DSA *x) +int DSAparams_print_fp(FILE *fp, const DSA *x) { BIO *b; int ret; @@ -331,7 +331,7 @@ int DSAparams_print_fp(FILE *fp, DSA *x) } #endif -int DSAparams_print(BIO *bp, DSA *x) +int DSAparams_print(BIO *bp, const DSA *x) { unsigned char *m=NULL; int reason=ERR_R_BUF_LIB,i,ret=0; diff --git a/crypto/asn1/x_pubkey.c b/crypto/asn1/x_pubkey.c index b2e2a51477..8d1dbce22e 100644 --- a/crypto/asn1/x_pubkey.c +++ b/crypto/asn1/x_pubkey.c @@ -206,6 +206,7 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key) long j; int type; unsigned char *p; + const unsigned char *cp; #ifndef NO_DSA X509_ALGOR *a; #endif @@ -237,9 +238,9 @@ EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key) if (a->parameter->type == V_ASN1_SEQUENCE) { ret->pkey.dsa->write_params=0; - p=a->parameter->value.sequence->data; + cp=p=a->parameter->value.sequence->data; j=a->parameter->value.sequence->length; - if (!d2i_DSAparams(&ret->pkey.dsa,&p,(long)j)) + if (!d2i_DSAparams(&ret->pkey.dsa,&cp,(long)j)) goto err; } ret->save_parameters=1; diff --git a/crypto/dsa/dsa.h b/crypto/dsa/dsa.h index 65689a3426..4608b0f75e 100644 --- a/crypto/dsa/dsa.h +++ b/crypto/dsa/dsa.h @@ -154,19 +154,19 @@ struct dsa_st DSA_SIG * DSA_SIG_new(void); void DSA_SIG_free(DSA_SIG *a); -int i2d_DSA_SIG(DSA_SIG *a, unsigned char **pp); -DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, unsigned char **pp, long length); +int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); +DSA_SIG * d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); DSA_SIG * DSA_do_sign(const unsigned char *dgst,int dlen,DSA *dsa); int DSA_do_verify(const unsigned char *dgst,int dgst_len, DSA_SIG *sig,DSA *dsa); -DSA_METHOD *DSA_OpenSSL(void); +const DSA_METHOD *DSA_OpenSSL(void); -void DSA_set_default_openssl_method(DSA_METHOD *); -DSA_METHOD *DSA_get_default_openssl_method(void); +void DSA_set_default_openssl_method(const DSA_METHOD *); +const DSA_METHOD *DSA_get_default_openssl_method(void); #if 0 -DSA_METHOD *DSA_set_method(DSA *dsa, DSA_METHOD *); +const DSA_METHOD *DSA_set_method(DSA *dsa, DSA_METHOD *); #else int DSA_set_method(DSA *dsa, struct engine_st *engine); #endif @@ -177,13 +177,13 @@ DSA * DSA_new_method(DSA_METHOD *meth); #else DSA * DSA_new_method(struct engine_st *engine); #endif -int DSA_size(DSA *); +int DSA_size(const DSA *); /* next 4 return -1 on error */ int DSA_sign_setup( DSA *dsa,BN_CTX *ctx_in,BIGNUM **kinvp,BIGNUM **rp); int DSA_sign(int type,const unsigned char *dgst,int dlen, unsigned char *sig, unsigned int *siglen, DSA *dsa); int DSA_verify(int type,const unsigned char *dgst,int dgst_len, - unsigned char *sigbuf, int siglen, DSA *dsa); + const unsigned char *sigbuf, int siglen, DSA *dsa); void DSA_free (DSA *r); int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); @@ -192,24 +192,25 @@ void *DSA_get_ex_data(DSA *d, int idx); void ERR_load_DSA_strings(void ); -DSA * d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length); -DSA * d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length); -DSA * d2i_DSAparams(DSA **a, unsigned char **pp, long length); -DSA * DSA_generate_parameters(int bits, unsigned char *seed,int seed_len, +DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); +DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); +DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length); +DSA * DSA_generate_parameters(int bits, + unsigned char *seed,int seed_len, int *counter_ret, unsigned long *h_ret,void (*callback)(int, int, void *),void *cb_arg); int DSA_generate_key(DSA *a); -int i2d_DSAPublicKey(DSA *a, unsigned char **pp); -int i2d_DSAPrivateKey(DSA *a, unsigned char **pp); -int i2d_DSAparams(DSA *a,unsigned char **pp); +int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); +int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); +int i2d_DSAparams(const DSA *a,unsigned char **pp); #ifndef NO_BIO -int DSAparams_print(BIO *bp, DSA *x); -int DSA_print(BIO *bp, DSA *x, int off); +int DSAparams_print(BIO *bp, const DSA *x); +int DSA_print(BIO *bp, const DSA *x, int off); #endif #ifndef NO_FP_API -int DSAparams_print_fp(FILE *fp, DSA *x); -int DSA_print_fp(FILE *bp, DSA *x, int off); +int DSAparams_print_fp(FILE *fp, const DSA *x); +int DSA_print_fp(FILE *bp, const DSA *x, int off); #endif #define DSS_prime_checks 50 @@ -221,7 +222,7 @@ int DSA_print_fp(FILE *bp, DSA *x, int off); #ifndef NO_DH /* Convert DSA structure (key or just parameters) into DH structure * (be careful to avoid small subgroup attacks when using this!) */ -DH *DSA_dup_DH(DSA *r); +DH *DSA_dup_DH(const DSA *r); #endif /* BEGIN ERROR CODES */ diff --git a/crypto/dsa/dsa_asn1.c b/crypto/dsa/dsa_asn1.c index a76c8f7c7e..81c9c863b4 100644 --- a/crypto/dsa/dsa_asn1.c +++ b/crypto/dsa/dsa_asn1.c @@ -29,7 +29,7 @@ void DSA_SIG_free(DSA_SIG *r) OPENSSL_free(r); } -int i2d_DSA_SIG(DSA_SIG *v, unsigned char **pp) +int i2d_DSA_SIG(const DSA_SIG *v, unsigned char **pp) { int t=0,len; ASN1_INTEGER rbs,sbs; @@ -69,7 +69,7 @@ int i2d_DSA_SIG(DSA_SIG *v, unsigned char **pp) return(t); } -DSA_SIG *d2i_DSA_SIG(DSA_SIG **a, unsigned char **pp, long length) +DSA_SIG *d2i_DSA_SIG(DSA_SIG **a, const unsigned char **pp, long length) { int i=ERR_R_NESTED_ASN1_ERROR; ASN1_INTEGER *bs=NULL; diff --git a/crypto/dsa/dsa_gen.c b/crypto/dsa/dsa_gen.c index 2294a362d9..e911e5ae73 100644 --- a/crypto/dsa/dsa_gen.c +++ b/crypto/dsa/dsa_gen.c @@ -79,7 +79,8 @@ #include #include -DSA *DSA_generate_parameters(int bits, unsigned char *seed_in, int seed_len, +DSA *DSA_generate_parameters(int bits, + unsigned char *seed_in, int seed_len, int *counter_ret, unsigned long *h_ret, void (*callback)(int, int, void *), void *cb_arg) diff --git a/crypto/dsa/dsa_lib.c b/crypto/dsa/dsa_lib.c index b31b946ad3..5e5bff82ae 100644 --- a/crypto/dsa/dsa_lib.c +++ b/crypto/dsa/dsa_lib.c @@ -67,11 +67,11 @@ const char *DSA_version="DSA" OPENSSL_VERSION_PTEXT; -static DSA_METHOD *default_DSA_method; +static const DSA_METHOD *default_DSA_method; static int dsa_meth_num = 0; static STACK_OF(CRYPTO_EX_DATA_FUNCS) *dsa_meth = NULL; -void DSA_set_default_openssl_method(DSA_METHOD *meth) +void DSA_set_default_openssl_method(const DSA_METHOD *meth) { ENGINE *e; /* We'll need to notify the "openssl" ENGINE of this @@ -90,7 +90,7 @@ void DSA_set_default_openssl_method(DSA_METHOD *meth) } } -DSA_METHOD *DSA_get_default_openssl_method(void) +const DSA_METHOD *DSA_get_default_openssl_method(void) { if(!default_DSA_method) default_DSA_method = DSA_OpenSSL(); return default_DSA_method; @@ -115,7 +115,7 @@ DSA_METHOD *DSA_set_method(DSA *dsa, DSA_METHOD *meth) int DSA_set_method(DSA *dsa, ENGINE *engine) { ENGINE *mtmp; - DSA_METHOD *meth; + const DSA_METHOD *meth; mtmp = dsa->engine; meth = ENGINE_get_DSA(mtmp); if (!ENGINE_init(engine)) @@ -137,7 +137,7 @@ DSA *DSA_new_method(DSA_METHOD *meth) DSA *DSA_new_method(ENGINE *engine) #endif { - DSA_METHOD *meth; + const DSA_METHOD *meth; DSA *ret; ret=(DSA *)OPENSSL_malloc(sizeof(DSA)); @@ -186,7 +186,7 @@ DSA *DSA_new_method(ENGINE *engine) void DSA_free(DSA *r) { - DSA_METHOD *meth; + const DSA_METHOD *meth; int i; if (r == NULL) return; @@ -220,7 +220,7 @@ void DSA_free(DSA *r) OPENSSL_free(r); } -int DSA_size(DSA *r) +int DSA_size(const DSA *r) { int ret,i; ASN1_INTEGER bs; @@ -258,7 +258,7 @@ void *DSA_get_ex_data(DSA *d, int idx) } #ifndef NO_DH -DH *DSA_dup_DH(DSA *r) +DH *DSA_dup_DH(const DSA *r) { /* DSA has p, q, g, optional pub_key, optional priv_key. * DH has p, optional length, g, optional pub_key, optional priv_key. diff --git a/crypto/dsa/dsa_ossl.c b/crypto/dsa/dsa_ossl.c index 96295dc24f..4b600fa731 100644 --- a/crypto/dsa/dsa_ossl.c +++ b/crypto/dsa/dsa_ossl.c @@ -92,7 +92,7 @@ dsa_finish, NULL }; -DSA_METHOD *DSA_OpenSSL(void) +const DSA_METHOD *DSA_OpenSSL(void) { return &openssl_dsa_meth; } diff --git a/crypto/dsa/dsa_vrf.c b/crypto/dsa/dsa_vrf.c index 2e891ae491..28b6712341 100644 --- a/crypto/dsa/dsa_vrf.c +++ b/crypto/dsa/dsa_vrf.c @@ -80,7 +80,7 @@ int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig, * -1: error */ int DSA_verify(int type, const unsigned char *dgst, int dgst_len, - unsigned char *sigbuf, int siglen, DSA *dsa) + const unsigned char *sigbuf, int siglen, DSA *dsa) { DSA_SIG *s; int ret=-1; diff --git a/crypto/engine/engine.h b/crypto/engine/engine.h index e695e4543b..826bdff76a 100644 --- a/crypto/engine/engine.h +++ b/crypto/engine/engine.h @@ -179,7 +179,7 @@ int ENGINE_free(ENGINE *e); int ENGINE_set_id(ENGINE *e, const char *id); int ENGINE_set_name(ENGINE *e, const char *name); int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -int ENGINE_set_DSA(ENGINE *e, DSA_METHOD *dsa_meth); +int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); int ENGINE_set_DH(ENGINE *e, DH_METHOD *dh_meth); int ENGINE_set_RAND(ENGINE *e, RAND_METHOD *rand_meth); int ENGINE_set_BN_mod_exp(ENGINE *e, BN_MOD_EXP bn_mod_exp); @@ -196,7 +196,7 @@ int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); const char *ENGINE_get_id(ENGINE *e); const char *ENGINE_get_name(ENGINE *e); const RSA_METHOD *ENGINE_get_RSA(ENGINE *e); -DSA_METHOD *ENGINE_get_DSA(ENGINE *e); +const DSA_METHOD *ENGINE_get_DSA(ENGINE *e); DH_METHOD *ENGINE_get_DH(ENGINE *e); RAND_METHOD *ENGINE_get_RAND(ENGINE *e); BN_MOD_EXP ENGINE_get_BN_mod_exp(ENGINE *e); diff --git a/crypto/engine/engine_int.h b/crypto/engine/engine_int.h index 6df448e0f3..547893fdd9 100644 --- a/crypto/engine/engine_int.h +++ b/crypto/engine/engine_int.h @@ -83,7 +83,7 @@ struct engine_st const char *id; const char *name; const RSA_METHOD *rsa_meth; - DSA_METHOD *dsa_meth; + const DSA_METHOD *dsa_meth; DH_METHOD *dh_meth; RAND_METHOD *rand_meth; BN_MOD_EXP bn_mod_exp; diff --git a/crypto/engine/engine_list.c b/crypto/engine/engine_list.c index 09b261c489..67bb7d03db 100644 --- a/crypto/engine/engine_list.c +++ b/crypto/engine/engine_list.c @@ -442,7 +442,7 @@ int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth) return 1; } -int ENGINE_set_DSA(ENGINE *e, DSA_METHOD *dsa_meth) +int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth) { if((e == NULL) || (dsa_meth == NULL)) { @@ -571,7 +571,7 @@ const RSA_METHOD *ENGINE_get_RSA(ENGINE *e) return e->rsa_meth; } -DSA_METHOD *ENGINE_get_DSA(ENGINE *e) +const DSA_METHOD *ENGINE_get_DSA(ENGINE *e) { if(e == NULL) { diff --git a/crypto/engine/hw_atalla.c b/crypto/engine/hw_atalla.c index 30e5634c71..b19639caab 100644 --- a/crypto/engine/hw_atalla.c +++ b/crypto/engine/hw_atalla.c @@ -170,8 +170,8 @@ static ENGINE engine_atalla = * (indeed - the lock will already be held by our caller!!!) */ ENGINE *ENGINE_atalla() { - RSA_METHOD *meth1; - DSA_METHOD *meth2; + const RSA_METHOD *meth1; + const DSA_METHOD *meth2; DH_METHOD *meth3; /* We know that the "PKCS1_SSLeay()" functions hook properly diff --git a/crypto/engine/hw_cswift.c b/crypto/engine/hw_cswift.c index 85cf1036c7..cb6beefd65 100644 --- a/crypto/engine/hw_cswift.c +++ b/crypto/engine/hw_cswift.c @@ -182,7 +182,7 @@ static ENGINE engine_cswift = * (indeed - the lock will already be held by our caller!!!) */ ENGINE *ENGINE_cswift() { - RSA_METHOD *meth1; + const RSA_METHOD *meth1; DH_METHOD *meth2; /* We know that the "PKCS1_SSLeay()" functions hook properly diff --git a/crypto/engine/hw_ncipher.c b/crypto/engine/hw_ncipher.c index 3e4ec44e86..bb7e82c9fd 100644 --- a/crypto/engine/hw_ncipher.c +++ b/crypto/engine/hw_ncipher.c @@ -291,7 +291,7 @@ static HWCryptoHook_InitInfo hwcrhk_globals = { * (indeed - the lock will already be held by our caller!!!) */ ENGINE *ENGINE_ncipher() { - RSA_METHOD *meth1; + const RSA_METHOD *meth1; DH_METHOD *meth2; /* We know that the "PKCS1_SSLeay()" functions hook properly diff --git a/crypto/engine/hw_nuron.c b/crypto/engine/hw_nuron.c index f09f137a4c..2fd394f754 100644 --- a/crypto/engine/hw_nuron.c +++ b/crypto/engine/hw_nuron.c @@ -250,8 +250,8 @@ static ENGINE engine_nuron = * (indeed - the lock will already be held by our caller!!!) */ ENGINE *ENGINE_nuron() { - RSA_METHOD *meth1; - DSA_METHOD *meth2; + const RSA_METHOD *meth1; + const DSA_METHOD *meth2; DH_METHOD *meth3; /* We know that the "PKCS1_SSLeay()" functions hook properly diff --git a/crypto/evp/evp_pkey.c b/crypto/evp/evp_pkey.c index bacbd42797..0f34847333 100644 --- a/crypto/evp/evp_pkey.c +++ b/crypto/evp/evp_pkey.c @@ -165,9 +165,9 @@ EVP_PKEY *EVP_PKCS82PKEY (PKCS8_PRIV_KEY_INFO *p8) EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR); goto dsaerr; } - p = param->value.sequence->data; + cp = p = param->value.sequence->data; plen = param->value.sequence->length; - if (!(dsa = d2i_DSAparams (NULL, &p, plen))) { + if (!(dsa = d2i_DSAparams (NULL, &cp, plen))) { EVPerr(EVP_F_EVP_PKCS82PKEY, EVP_R_DECODE_ERROR); goto dsaerr; } -- 2.25.1