mirror of https://github.com/acidanthera/audk.git
CryptoPkg: Wrapper files updates to support openssl-1.0.2c
This patch updates some support header and wrapper files to support openssl-1.0.2c build, and correct some openssl API usages and boundary check. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Qin Long <qin.long@intel.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17635 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
73c54a5823
commit
1463ce18ca
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Root include file to support building OpenSSL Crypto Library.
|
Root include file to support building OpenSSL Crypto Library.
|
||||||
|
|
||||||
Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -109,6 +109,11 @@ struct tm {
|
||||||
char *tm_zone; /* timezone abbreviation */
|
char *tm_zone; /* timezone abbreviation */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct timeval {
|
||||||
|
long tv_sec; /* time value, in seconds */
|
||||||
|
long tv_usec; /* time value, in microseconds */
|
||||||
|
} timeval;
|
||||||
|
|
||||||
struct dirent {
|
struct dirent {
|
||||||
UINT32 d_fileno; /* file number of entry */
|
UINT32 d_fileno; /* file number of entry */
|
||||||
UINT16 d_reclen; /* length of this record */
|
UINT16 d_reclen; /* length of this record */
|
||||||
|
@ -240,5 +245,6 @@ extern FILE *stdout;
|
||||||
#define assert(expression)
|
#define assert(expression)
|
||||||
#define localtime(timer) NULL
|
#define localtime(timer) NULL
|
||||||
#define gmtime_r(timer,result) (result = NULL)
|
#define gmtime_r(timer,result) (result = NULL)
|
||||||
|
#define atoi(nptr) AsciiStrDecimalToUintn(nptr)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
/** @file
|
||||||
|
Include file to support building OpenSSL Crypto Library.
|
||||||
|
|
||||||
|
Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
|
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
|
||||||
|
http://opensource.org/licenses/bsd-license.php
|
||||||
|
|
||||||
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#include <OpenSslSupport.h>
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
AuthenticodeVerify() will get PE/COFF Authenticode and will do basic check for
|
AuthenticodeVerify() will get PE/COFF Authenticode and will do basic check for
|
||||||
data structure.
|
data structure.
|
||||||
|
|
||||||
Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -72,6 +72,7 @@ AuthenticodeVerify (
|
||||||
{
|
{
|
||||||
BOOLEAN Status;
|
BOOLEAN Status;
|
||||||
PKCS7 *Pkcs7;
|
PKCS7 *Pkcs7;
|
||||||
|
CONST UINT8 *Temp;
|
||||||
CONST UINT8 *OrigAuthData;
|
CONST UINT8 *OrigAuthData;
|
||||||
UINT8 *SpcIndirectDataContent;
|
UINT8 *SpcIndirectDataContent;
|
||||||
UINT8 Asn1Byte;
|
UINT8 Asn1Byte;
|
||||||
|
@ -96,7 +97,8 @@ AuthenticodeVerify (
|
||||||
//
|
//
|
||||||
// Retrieve & Parse PKCS#7 Data (DER encoding) from Authenticode Signature
|
// Retrieve & Parse PKCS#7 Data (DER encoding) from Authenticode Signature
|
||||||
//
|
//
|
||||||
Pkcs7 = d2i_PKCS7 (NULL, &AuthData, (int)DataSize);
|
Temp = AuthData;
|
||||||
|
Pkcs7 = d2i_PKCS7 (NULL, &Temp, (int)DataSize);
|
||||||
if (Pkcs7 == NULL) {
|
if (Pkcs7 == NULL) {
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
PKCS#7 SignedData Sign Wrapper Implementation over OpenSSL.
|
PKCS#7 SignedData Sign Wrapper Implementation over OpenSSL.
|
||||||
|
|
||||||
Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -116,9 +116,9 @@ Pkcs7Sign (
|
||||||
if (Key == NULL) {
|
if (Key == NULL) {
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
Key->save_type = EVP_PKEY_RSA;
|
if (EVP_PKEY_assign_RSA (Key, (RSA *) RsaContext) == 0) {
|
||||||
Key->type = EVP_PKEY_type (EVP_PKEY_RSA);
|
goto _Exit;
|
||||||
Key->pkey.rsa = (RSA *) RsaContext;
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Convert the data to be signed to BIO format.
|
// Convert the data to be signed to BIO format.
|
||||||
|
@ -175,7 +175,7 @@ Pkcs7Sign (
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyMem (*SignedData, P7Data + 19, *SignedDataSize);
|
CopyMem (*SignedData, P7Data + 19, *SignedDataSize);
|
||||||
|
|
||||||
OPENSSL_free (P7Data);
|
OPENSSL_free (P7Data);
|
||||||
|
|
||||||
Status = TRUE;
|
Status = TRUE;
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
WrapPkcs7Data(), Pkcs7GetSigners(), Pkcs7Verify() will get UEFI Authenticated
|
WrapPkcs7Data(), Pkcs7GetSigners(), Pkcs7Verify() will get UEFI Authenticated
|
||||||
Variable and will do basic check for data structure.
|
Variable and will do basic check for data structure.
|
||||||
|
|
||||||
Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -273,7 +273,7 @@ X509PopCertificate (
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
Length = ((BUF_MEM *) CertBio->ptr)->length;
|
Length = (INT32)(((BUF_MEM *) CertBio->ptr)->length);
|
||||||
if (Length <= 0) {
|
if (Length <= 0) {
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
|
@ -343,7 +343,7 @@ Pkcs7GetSigners (
|
||||||
PKCS7 *Pkcs7;
|
PKCS7 *Pkcs7;
|
||||||
BOOLEAN Status;
|
BOOLEAN Status;
|
||||||
UINT8 *SignedData;
|
UINT8 *SignedData;
|
||||||
UINT8 *Temp;
|
CONST UINT8 *Temp;
|
||||||
UINTN SignedDataSize;
|
UINTN SignedDataSize;
|
||||||
BOOLEAN Wrapped;
|
BOOLEAN Wrapped;
|
||||||
STACK_OF(X509) *Stack;
|
STACK_OF(X509) *Stack;
|
||||||
|
@ -549,7 +549,7 @@ Pkcs7Verify (
|
||||||
X509 *Cert;
|
X509 *Cert;
|
||||||
X509_STORE *CertStore;
|
X509_STORE *CertStore;
|
||||||
UINT8 *SignedData;
|
UINT8 *SignedData;
|
||||||
UINT8 *Temp;
|
CONST UINT8 *Temp;
|
||||||
UINTN SignedDataSize;
|
UINTN SignedDataSize;
|
||||||
BOOLEAN Wrapped;
|
BOOLEAN Wrapped;
|
||||||
|
|
||||||
|
@ -618,7 +618,8 @@ Pkcs7Verify (
|
||||||
//
|
//
|
||||||
// Read DER-encoded root certificate and Construct X509 Certificate
|
// Read DER-encoded root certificate and Construct X509 Certificate
|
||||||
//
|
//
|
||||||
Cert = d2i_X509 (NULL, &TrustedCert, (long) CertLength);
|
Temp = TrustedCert;
|
||||||
|
Cert = d2i_X509 (NULL, &Temp, (long) CertLength);
|
||||||
if (Cert == NULL) {
|
if (Cert == NULL) {
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
the lifetime of the signature when a signing certificate expires or is later
|
the lifetime of the signature when a signing certificate expires or is later
|
||||||
revoked.
|
revoked.
|
||||||
|
|
||||||
Copyright (c) 2014, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -441,11 +441,12 @@ TimestampTokenVerify (
|
||||||
CONST UINT8 *TokenTemp;
|
CONST UINT8 *TokenTemp;
|
||||||
PKCS7 *Pkcs7;
|
PKCS7 *Pkcs7;
|
||||||
X509 *Cert;
|
X509 *Cert;
|
||||||
|
CONST UINT8 *CertTemp;
|
||||||
X509_STORE *CertStore;
|
X509_STORE *CertStore;
|
||||||
BIO *OutBio;
|
BIO *OutBio;
|
||||||
UINT8 *TstData;
|
UINT8 *TstData;
|
||||||
UINTN TstSize;
|
UINTN TstSize;
|
||||||
UINT8 *TstTemp;
|
CONST UINT8 *TstTemp;
|
||||||
TS_TST_INFO *TstInfo;
|
TS_TST_INFO *TstInfo;
|
||||||
|
|
||||||
Status = FALSE;
|
Status = FALSE;
|
||||||
|
@ -490,7 +491,8 @@ TimestampTokenVerify (
|
||||||
//
|
//
|
||||||
// Read the trusted TSA certificate (DER-encoded), and Construct X509 Certificate.
|
// Read the trusted TSA certificate (DER-encoded), and Construct X509 Certificate.
|
||||||
//
|
//
|
||||||
Cert = d2i_X509 (NULL, &TsaCert, (long) CertSize);
|
CertTemp = TsaCert;
|
||||||
|
Cert = d2i_X509 (NULL, &CertTemp, (long) CertSize);
|
||||||
if (Cert == NULL) {
|
if (Cert == NULL) {
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
|
@ -605,6 +607,7 @@ ImageTimestampVerify (
|
||||||
{
|
{
|
||||||
BOOLEAN Status;
|
BOOLEAN Status;
|
||||||
PKCS7 *Pkcs7;
|
PKCS7 *Pkcs7;
|
||||||
|
CONST UINT8 *Temp;
|
||||||
STACK_OF(PKCS7_SIGNER_INFO) *SignerInfos;
|
STACK_OF(PKCS7_SIGNER_INFO) *SignerInfos;
|
||||||
PKCS7_SIGNER_INFO *SignInfo;
|
PKCS7_SIGNER_INFO *SignInfo;
|
||||||
UINTN Index;
|
UINTN Index;
|
||||||
|
@ -644,7 +647,8 @@ ImageTimestampVerify (
|
||||||
//
|
//
|
||||||
// Decode ASN.1-encoded Authenticode data into PKCS7 structure.
|
// Decode ASN.1-encoded Authenticode data into PKCS7 structure.
|
||||||
//
|
//
|
||||||
Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &AuthData, (int) DataSize);
|
Temp = AuthData;
|
||||||
|
Pkcs7 = d2i_PKCS7 (NULL, (const unsigned char **) &Temp, (int) DataSize);
|
||||||
if (Pkcs7 == NULL) {
|
if (Pkcs7 == NULL) {
|
||||||
goto _Exit;
|
goto _Exit;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
X.509 Certificate Handler Wrapper Implementation over OpenSSL.
|
X.509 Certificate Handler Wrapper Implementation over OpenSSL.
|
||||||
|
|
||||||
Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2010 - 2015, Intel Corporation. All rights reserved.<BR>
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -38,7 +38,8 @@ X509ConstructCertificate (
|
||||||
OUT UINT8 **SingleX509Cert
|
OUT UINT8 **SingleX509Cert
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
X509 *X509Cert;
|
X509 *X509Cert;
|
||||||
|
CONST UINT8 *Temp;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Check input parameters.
|
// Check input parameters.
|
||||||
|
@ -50,7 +51,8 @@ X509ConstructCertificate (
|
||||||
//
|
//
|
||||||
// Read DER-encoded X509 Certificate and Construct X509 object.
|
// Read DER-encoded X509 Certificate and Construct X509 object.
|
||||||
//
|
//
|
||||||
X509Cert = d2i_X509 (NULL, &Cert, (long) CertSize);
|
Temp = Cert;
|
||||||
|
X509Cert = d2i_X509 (NULL, &Temp, (long) CertSize);
|
||||||
if (X509Cert == NULL) {
|
if (X509Cert == NULL) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
@ -123,6 +125,9 @@ X509ConstructCertificateStack (
|
||||||
}
|
}
|
||||||
|
|
||||||
CertSize = VA_ARG (Args, UINTN);
|
CertSize = VA_ARG (Args, UINTN);
|
||||||
|
if (CertSize == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Construct X509 Object from the given DER-encoded certificate data.
|
// Construct X509 Object from the given DER-encoded certificate data.
|
||||||
|
@ -133,7 +138,9 @@ X509ConstructCertificateStack (
|
||||||
(UINT8 **) &X509Cert
|
(UINT8 **) &X509Cert
|
||||||
);
|
);
|
||||||
if (!Status) {
|
if (!Status) {
|
||||||
X509_free (X509Cert);
|
if (X509Cert != NULL) {
|
||||||
|
X509_free (X509Cert);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -518,7 +525,8 @@ X509GetTBSCert (
|
||||||
//
|
//
|
||||||
// Check input parameters.
|
// Check input parameters.
|
||||||
//
|
//
|
||||||
if ((Cert == NULL) || (TBSCert == NULL) || (TBSCertSize == NULL)) {
|
if ((Cert == NULL) || (TBSCert == NULL) ||
|
||||||
|
(TBSCertSize == NULL) || (CertSize > INT_MAX)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue