From 7bf7a6d0852382bb645119b18df3ff461aaba247 Mon Sep 17 00:00:00 2001 From: Mathieu Trudel-Lapierre Date: Tue, 21 Aug 2018 14:22:44 -0400 Subject: New upstream version 15+1533136590.3beb971 --- Cryptlib/Pk/CryptTs.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'Cryptlib/Pk/CryptTs.c') diff --git a/Cryptlib/Pk/CryptTs.c b/Cryptlib/Pk/CryptTs.c index 1b78472f..d63c23df 100644 --- a/Cryptlib/Pk/CryptTs.c +++ b/Cryptlib/Pk/CryptTs.c @@ -5,7 +5,7 @@ the lifetime of the signature when a signing certificate expires or is later revoked. -Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.
+Copyright (c) 2014 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -239,7 +239,7 @@ CheckTSTInfo ( TS_MESSAGE_IMPRINT *Imprint; X509_ALGOR *HashAlgo; CONST EVP_MD *Md; - EVP_MD_CTX MdCtx; + EVP_MD_CTX *MdCtx; UINTN MdSize; UINT8 *HashedMsg; @@ -249,6 +249,7 @@ CheckTSTInfo ( Status = FALSE; HashAlgo = NULL; HashedMsg = NULL; + MdCtx = NULL; // // -- Check version number of Timestamp: @@ -285,11 +286,17 @@ CheckTSTInfo ( if (HashedMsg == NULL) { goto _Exit; } - EVP_DigestInit (&MdCtx, Md); - EVP_DigestUpdate (&MdCtx, TimestampedData, DataSize); - EVP_DigestFinal (&MdCtx, HashedMsg, NULL); + MdCtx = EVP_MD_CTX_new (); + if (MdCtx == NULL) { + goto _Exit; + } + if ((EVP_DigestInit_ex (MdCtx, Md, NULL) != 1) || + (EVP_DigestUpdate (MdCtx, TimestampedData, DataSize) != 1) || + (EVP_DigestFinal (MdCtx, HashedMsg, NULL) != 1)) { + goto _Exit; + } if ((MdSize == (UINTN)ASN1_STRING_length (Imprint->HashedMessage)) && - (CompareMem (HashedMsg, ASN1_STRING_data (Imprint->HashedMessage), MdSize) != 0)) { + (CompareMem (HashedMsg, ASN1_STRING_get0_data (Imprint->HashedMessage), MdSize) != 0)) { goto _Exit; } @@ -315,6 +322,7 @@ CheckTSTInfo ( _Exit: X509_ALGOR_free (HashAlgo); + EVP_MD_CTX_free (MdCtx); if (HashedMsg != NULL) { FreePool (HashedMsg); } -- cgit v1.2.3