26d25
< #include <assert.h>
28,50d26
< static void
< digest_init(EVP_MD_CTX **ctx, const EVP_MD* type)
< {
< 	*ctx = EVP_MD_CTX_create();
< 	assert(*ctx != 0);
< 	int rc = EVP_DigestInit_ex(*ctx, type, NULL);
< 	assert(rc == 1);
< }
< 
< static void
< digest_update(EVP_MD_CTX **ctx, const uint8 *data, size_t len)
< {
< 	int rc = EVP_DigestUpdate(*ctx, data, len);
< 	assert(rc == 1);
< }
< 
< static void
< digest_final(EVP_MD_CTX **ctx, uint8 *dest)
< {
< 	int rc = EVP_DigestFinal_ex(*ctx, dest, 0);
< 	assert(rc == 1);
< 	EVP_MD_CTX_destroy(*ctx);
< }
56c32
< 	digest_init(ctx, EVP_sha256());
---
> 	SHA256_Init((SHA256_CTX *) ctx);
62c38
< 	digest_update(ctx, data, len);
---
> 	SHA256_Update((SHA256_CTX *) ctx, data, len);
68c44
< 	digest_final(ctx, dest);
---
> 	SHA256_Final(dest, (SHA256_CTX *) ctx);
75c51
< 	digest_init(ctx, EVP_sha512());
---
> 	SHA512_Init((SHA512_CTX *) ctx);
81c57
< 	digest_update(ctx, data, len);
---
> 	SHA512_Update((SHA512_CTX *) ctx, data, len);
87c63
< 	digest_final(ctx, dest);
---
> 	SHA512_Final(dest, (SHA512_CTX *) ctx);
94c70
< 	digest_init(ctx, EVP_sha384());
---
> 	SHA384_Init((SHA512_CTX *) ctx);
100c76
< 	digest_update(ctx, data, len);
---
> 	SHA384_Update((SHA512_CTX *) ctx, data, len);
106c82
< 	digest_final(ctx, dest);
---
> 	SHA384_Final(dest, (SHA512_CTX *) ctx);
113c89
< 	digest_init(ctx, EVP_sha224());
---
> 	SHA224_Init((SHA256_CTX *) ctx);
119c95
< 	digest_update(ctx, data, len);
---
> 	SHA224_Update((SHA256_CTX *) ctx, data, len);
125c101
< 	digest_final(ctx, dest);
---
> 	SHA224_Final(dest, (SHA256_CTX *) ctx);
