[BACK]Return to ts.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / openssl

Diff for /src/usr.bin/openssl/ts.c between version 1.22 and 1.23

version 1.22, 2022/03/24 14:07:08 version 1.23, 2022/03/27 00:37:10
Line 678 
Line 678 
     unsigned char **md_value)      unsigned char **md_value)
 {  {
         int md_value_len;          int md_value_len;
           EVP_MD_CTX *md_ctx = NULL;
   
         md_value_len = EVP_MD_size(md);          md_value_len = EVP_MD_size(md);
         if (md_value_len < 0)          if (md_value_len < 0)
                 goto err;                  goto err;
   
         if (input != NULL) {          if (input != NULL) {
                 /* Digest must be computed from an input file. */                  /* Digest must be computed from an input file. */
                 EVP_MD_CTX *md_ctx;  
                 unsigned char buffer[4096];                  unsigned char buffer[4096];
                 int length;                  int length;
   
Line 695 
Line 696 
                 if ((md_ctx = EVP_MD_CTX_new()) == NULL)                  if ((md_ctx = EVP_MD_CTX_new()) == NULL)
                         goto err;                          goto err;
   
                 EVP_DigestInit(md_ctx, md);                  if (!EVP_DigestInit(md_ctx, md))
                           goto err;
   
                 while ((length = BIO_read(input, buffer, sizeof(buffer))) > 0) {                  while ((length = BIO_read(input, buffer, sizeof(buffer))) > 0) {
                         EVP_DigestUpdate(md_ctx, buffer, length);                          if (!EVP_DigestUpdate(md_ctx, buffer, length))
                                   goto err;
                 }                  }
                 EVP_DigestFinal(md_ctx, *md_value, NULL);  
   
                   if (!EVP_DigestFinal(md_ctx, *md_value, NULL))
                           goto err;
   
                 EVP_MD_CTX_free(md_ctx);                  EVP_MD_CTX_free(md_ctx);
                   md_ctx = NULL;
   
         } else {          } else {
                 /* Digest bytes are specified with digest. */                  /* Digest bytes are specified with digest. */
                 long digest_len;                  long digest_len;
   
                 *md_value = string_to_hex(digest, &digest_len);                  *md_value = string_to_hex(digest, &digest_len);
                 if (*md_value == NULL || md_value_len != digest_len) {                  if (*md_value == NULL || md_value_len != digest_len) {
                         free(*md_value);                          free(*md_value);
Line 716 
Line 725 
         }          }
   
         return md_value_len;          return md_value_len;
   
  err:   err:
           EVP_MD_CTX_free(md_ctx);
         return 0;          return 0;
 }  }
   

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.23