[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.27 and 1.28

version 1.27, 2023/11/19 09:19:54 version 1.28, 2024/03/25 10:16:02
Line 676 
Line 676 
   
 static int  static int
 create_digest(BIO *input, char *digest, const EVP_MD *md,  create_digest(BIO *input, char *digest, const EVP_MD *md,
     unsigned char **md_value)      unsigned char **out_md_value)
 {  {
         int md_value_len;  
         EVP_MD_CTX *md_ctx = NULL;          EVP_MD_CTX *md_ctx = NULL;
           unsigned char *md_value = NULL;
           int md_value_len;
           int ret = 0;
   
         md_value_len = EVP_MD_size(md);          md_value_len = EVP_MD_size(md);
         if (md_value_len < 0)          if (md_value_len < 0)
Line 690 
Line 692 
                 unsigned char buffer[4096];                  unsigned char buffer[4096];
                 int length;                  int length;
   
                 *md_value = malloc(md_value_len);                  md_value = malloc(md_value_len);
                 if (*md_value == NULL)                  if (md_value == NULL)
                         goto err;                          goto err;
   
                 if ((md_ctx = EVP_MD_CTX_new()) == NULL)                  if ((md_ctx = EVP_MD_CTX_new()) == NULL)
Line 705 
Line 707 
                                 goto err;                                  goto err;
                 }                  }
   
                 if (!EVP_DigestFinal(md_ctx, *md_value, NULL))                  if (!EVP_DigestFinal(md_ctx, md_value, NULL))
                         goto err;                          goto err;
   
                 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);  
                         *md_value = NULL;  
                         BIO_printf(bio_err, "bad digest, %d bytes "                          BIO_printf(bio_err, "bad digest, %d bytes "
                             "must be specified\n", md_value_len);                              "must be specified\n", md_value_len);
                         goto err;                          goto err;
                 }                  }
         }          }
   
         return md_value_len;          *out_md_value = md_value;
           md_value = NULL;
   
           ret = md_value_len;
   
  err:   err:
           free(md_value);
         EVP_MD_CTX_free(md_ctx);          EVP_MD_CTX_free(md_ctx);
         return 0;  
           return ret;
 }  }
   
 static ASN1_INTEGER *  static ASN1_INTEGER *

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28