summaryrefslogtreecommitdiff
path: root/src/lib/libssl/src/crypto/evp/bio_md.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/src/crypto/evp/bio_md.c')
-rw-r--r--src/lib/libssl/src/crypto/evp/bio_md.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/lib/libssl/src/crypto/evp/bio_md.c b/src/lib/libssl/src/crypto/evp/bio_md.c
index 2373c247d8..c632dfb202 100644
--- a/src/lib/libssl/src/crypto/evp/bio_md.c
+++ b/src/lib/libssl/src/crypto/evp/bio_md.c
@@ -96,7 +96,7 @@ static int md_new(BIO *bi)
96 { 96 {
97 EVP_MD_CTX *ctx; 97 EVP_MD_CTX *ctx;
98 98
99 ctx=(EVP_MD_CTX *)OPENSSL_malloc(sizeof(EVP_MD_CTX)); 99 ctx=EVP_MD_CTX_create();
100 if (ctx == NULL) return(0); 100 if (ctx == NULL) return(0);
101 101
102 bi->init=0; 102 bi->init=0;
@@ -108,7 +108,7 @@ static int md_new(BIO *bi)
108static int md_free(BIO *a) 108static int md_free(BIO *a)
109 { 109 {
110 if (a == NULL) return(0); 110 if (a == NULL) return(0);
111 OPENSSL_free(a->ptr); 111 EVP_MD_CTX_destroy(a->ptr);
112 a->ptr=NULL; 112 a->ptr=NULL;
113 a->init=0; 113 a->init=0;
114 a->flags=0; 114 a->flags=0;
@@ -121,7 +121,7 @@ static int md_read(BIO *b, char *out, int outl)
121 EVP_MD_CTX *ctx; 121 EVP_MD_CTX *ctx;
122 122
123 if (out == NULL) return(0); 123 if (out == NULL) return(0);
124 ctx=(EVP_MD_CTX *)b->ptr; 124 ctx=b->ptr;
125 125
126 if ((ctx == NULL) || (b->next_bio == NULL)) return(0); 126 if ((ctx == NULL) || (b->next_bio == NULL)) return(0);
127 127
@@ -145,7 +145,7 @@ static int md_write(BIO *b, const char *in, int inl)
145 EVP_MD_CTX *ctx; 145 EVP_MD_CTX *ctx;
146 146
147 if ((in == NULL) || (inl <= 0)) return(0); 147 if ((in == NULL) || (inl <= 0)) return(0);
148 ctx=(EVP_MD_CTX *)b->ptr; 148 ctx=b->ptr;
149 149
150 if ((ctx != NULL) && (b->next_bio != NULL)) 150 if ((ctx != NULL) && (b->next_bio != NULL))
151 ret=BIO_write(b->next_bio,in,inl); 151 ret=BIO_write(b->next_bio,in,inl);
@@ -170,13 +170,13 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
170 long ret=1; 170 long ret=1;
171 BIO *dbio; 171 BIO *dbio;
172 172
173 ctx=(EVP_MD_CTX *)b->ptr; 173 ctx=b->ptr;
174 174
175 switch (cmd) 175 switch (cmd)
176 { 176 {
177 case BIO_CTRL_RESET: 177 case BIO_CTRL_RESET:
178 if (b->init) 178 if (b->init)
179 EVP_DigestInit(ctx,ctx->digest); 179 EVP_DigestInit_ex(ctx,ctx->digest, NULL);
180 else 180 else
181 ret=0; 181 ret=0;
182 ret=BIO_ctrl(b->next_bio,cmd,num,ptr); 182 ret=BIO_ctrl(b->next_bio,cmd,num,ptr);
@@ -184,7 +184,7 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
184 case BIO_C_GET_MD: 184 case BIO_C_GET_MD:
185 if (b->init) 185 if (b->init)
186 { 186 {
187 ppmd=(const EVP_MD **)ptr; 187 ppmd=ptr;
188 *ppmd=ctx->digest; 188 *ppmd=ctx->digest;
189 } 189 }
190 else 190 else
@@ -193,7 +193,7 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
193 case BIO_C_GET_MD_CTX: 193 case BIO_C_GET_MD_CTX:
194 if (b->init) 194 if (b->init)
195 { 195 {
196 pctx=(EVP_MD_CTX **)ptr; 196 pctx=ptr;
197 *pctx=ctx; 197 *pctx=ctx;
198 } 198 }
199 else 199 else
@@ -206,14 +206,14 @@ static long md_ctrl(BIO *b, int cmd, long num, void *ptr)
206 break; 206 break;
207 207
208 case BIO_C_SET_MD: 208 case BIO_C_SET_MD:
209 md=(EVP_MD *)ptr; 209 md=ptr;
210 EVP_DigestInit(ctx,md); 210 EVP_DigestInit_ex(ctx,md, NULL);
211 b->init=1; 211 b->init=1;
212 break; 212 break;
213 case BIO_CTRL_DUP: 213 case BIO_CTRL_DUP:
214 dbio=(BIO *)ptr; 214 dbio=ptr;
215 dctx=(EVP_MD_CTX *)dbio->ptr; 215 dctx=dbio->ptr;
216 memcpy(dctx,ctx,sizeof(ctx)); 216 EVP_MD_CTX_copy_ex(dctx,ctx);
217 b->init=1; 217 b->init=1;
218 break; 218 break;
219 default: 219 default:
@@ -243,10 +243,10 @@ static int md_gets(BIO *bp, char *buf, int size)
243 unsigned int ret; 243 unsigned int ret;
244 244
245 245
246 ctx=(EVP_MD_CTX *)bp->ptr; 246 ctx=bp->ptr;
247 if (size < ctx->digest->md_size) 247 if (size < ctx->digest->md_size)
248 return(0); 248 return(0);
249 EVP_DigestFinal(ctx,(unsigned char *)buf,&ret); 249 EVP_DigestFinal_ex(ctx,(unsigned char *)buf,&ret);
250 return((int)ret); 250 return((int)ret);
251 } 251 }
252 252