version 1.15, 2018/02/07 05:47:55 |
version 1.16, 2021/12/12 20:22:08 |
|
|
goto err; |
goto err; |
if (input) { |
if (input) { |
/* Digest must be computed from an input file. */ |
/* Digest must be computed from an input file. */ |
EVP_MD_CTX md_ctx; |
EVP_MD_CTX *md_ctx; |
unsigned char buffer[4096]; |
unsigned char buffer[4096]; |
int length; |
int length; |
|
|
|
|
if (*md_value == 0) |
if (*md_value == 0) |
goto err; |
goto err; |
|
|
EVP_DigestInit(&md_ctx, md); |
if ((md_ctx = EVP_MD_CTX_new()) == NULL) |
|
goto err; |
|
|
|
EVP_DigestInit(md_ctx, md); |
while ((length = BIO_read(input, buffer, sizeof(buffer))) > 0) { |
while ((length = BIO_read(input, buffer, sizeof(buffer))) > 0) { |
EVP_DigestUpdate(&md_ctx, buffer, length); |
EVP_DigestUpdate(md_ctx, buffer, length); |
} |
} |
EVP_DigestFinal(&md_ctx, *md_value, NULL); |
EVP_DigestFinal(md_ctx, *md_value, NULL); |
|
|
|
EVP_MD_CTX_free(md_ctx); |
} else { |
} else { |
/* Digest bytes are specified with digest. */ |
/* Digest bytes are specified with digest. */ |
long digest_len; |
long digest_len; |