Use EVP_MD_CTX_create()/EVP_MD_CTX_destroy().
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@23137 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -55,19 +55,24 @@ PKCS12_key_gen(const void *key, size_t keylen, | |||||||
|     unsigned char *v, *I, hash[EVP_MAX_MD_SIZE]; |     unsigned char *v, *I, hash[EVP_MAX_MD_SIZE]; | ||||||
|     unsigned int size, size_I = 0; |     unsigned int size, size_I = 0; | ||||||
|     unsigned char idc = id; |     unsigned char idc = id; | ||||||
|     EVP_MD_CTX ctx; |     EVP_MD_CTX *ctx; | ||||||
|     unsigned char *outp = out; |     unsigned char *outp = out; | ||||||
|     int i, vlen; |     int i, vlen; | ||||||
|  |  | ||||||
|     EVP_MD_CTX_init(&ctx); |     ctx = EVP_MD_CTX_create(); | ||||||
|  |     if (ctx == NULL) | ||||||
|  | 	return 0; | ||||||
|  |  | ||||||
|     vlen = EVP_MD_block_size(md); |     vlen = EVP_MD_block_size(md); | ||||||
|     v = malloc(vlen + 1); |     v = malloc(vlen + 1); | ||||||
|     if (v == NULL) |     if (v == NULL) { | ||||||
|  | 	EVP_MD_CTX_destroy(ctx); | ||||||
| 	return 0; | 	return 0; | ||||||
|  |     } | ||||||
|  |  | ||||||
|     I = calloc(1, vlen * 2); |     I = calloc(1, vlen * 2); | ||||||
|     if (I == NULL) { |     if (I == NULL) { | ||||||
|  | 	EVP_MD_CTX_destroy(ctx); | ||||||
| 	free(v); | 	free(v); | ||||||
| 	return 0; | 	return 0; | ||||||
|     } |     } | ||||||
| @@ -93,15 +98,16 @@ PKCS12_key_gen(const void *key, size_t keylen, | |||||||
|     while (1) { |     while (1) { | ||||||
| 	BIGNUM *bnB, *bnOne; | 	BIGNUM *bnB, *bnOne; | ||||||
|  |  | ||||||
| 	if (!EVP_DigestInit_ex(&ctx, md, NULL)) { | 	if (!EVP_DigestInit_ex(ctx, md, NULL)) { | ||||||
|  | 	    EVP_MD_CTX_destroy(ctx); | ||||||
| 	    free(I); | 	    free(I); | ||||||
| 	    free(v); | 	    free(v); | ||||||
| 	    return 0; | 	    return 0; | ||||||
| 	} | 	} | ||||||
| 	for (i = 0; i < vlen; i++) | 	for (i = 0; i < vlen; i++) | ||||||
| 	    EVP_DigestUpdate(&ctx, &idc, 1); | 	    EVP_DigestUpdate(ctx, &idc, 1); | ||||||
| 	EVP_DigestUpdate(&ctx, I, size_I); | 	EVP_DigestUpdate(ctx, I, size_I); | ||||||
| 	EVP_DigestFinal_ex(&ctx, hash, &size); | 	EVP_DigestFinal_ex(ctx, hash, &size); | ||||||
|  |  | ||||||
| 	for (i = 1; i < iteration; i++) | 	for (i = 1; i < iteration; i++) | ||||||
| 	    EVP_Digest(hash, size, hash, &size, md, NULL); | 	    EVP_Digest(hash, size, hash, &size, md, NULL); | ||||||
| @@ -145,7 +151,7 @@ PKCS12_key_gen(const void *key, size_t keylen, | |||||||
| 	size_I = vlen * 2; | 	size_I = vlen * 2; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     EVP_MD_CTX_cleanup(&ctx); |     EVP_MD_CTX_destroy(ctx); | ||||||
|     free(I); |     free(I); | ||||||
|     free(v); |     free(v); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand