On 10 June 2015 at 04:21, qlong <qin.l...@intel.com> wrote: > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Long, Qin <qin.l...@intel.com> > Signed-off-by: qlong <qin.l...@intel.com>
This builds correctly now under GCC/AArch64. Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > --- > CryptoPkg/Include/OpenSslSupport.h | 8 +++++++- > CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c | 6 ++++-- > CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Sign.c | 10 +++++----- > CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c | 13 +++++++------ > CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c | 12 ++++++++---- > CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c | 8 +++++--- > 6 files changed, 36 insertions(+), 21 deletions(-) > > diff --git a/CryptoPkg/Include/OpenSslSupport.h > b/CryptoPkg/Include/OpenSslSupport.h > index ed889e9..b5a8b58 100644 > --- a/CryptoPkg/Include/OpenSslSupport.h > +++ b/CryptoPkg/Include/OpenSslSupport.h > @@ -1,7 +1,7 @@ > /** @file > 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 > 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 > @@ -109,6 +109,11 @@ struct tm { > char *tm_zone; /* timezone abbreviation */ > }; > > +struct timeval { > + long tv_sec; /* time value, in seconds */ > + long tv_usec; /* time value, in microseconds */ > +} timeval; > + > struct dirent { > UINT32 d_fileno; /* file number of entry */ > UINT16 d_reclen; /* length of this record */ > @@ -240,5 +245,6 @@ extern FILE *stdout; > #define assert(expression) > #define localtime(timer) NULL > #define gmtime_r(timer,result) (result = NULL) > +#define atoi(nptr) AsciiStrDecimalToUintn(nptr) > > #endif > diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c > index 4ce2b06..9e93355 100644 > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c > @@ -9,7 +9,7 @@ > AuthenticodeVerify() will get PE/COFF Authenticode and will do basic check > for > 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 > 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 > @@ -72,6 +72,7 @@ AuthenticodeVerify ( > { > BOOLEAN Status; > PKCS7 *Pkcs7; > + CONST UINT8 *Temp; > CONST UINT8 *OrigAuthData; > UINT8 *SpcIndirectDataContent; > UINT8 Asn1Byte; > @@ -96,7 +97,8 @@ AuthenticodeVerify ( > // > // 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) { > goto _Exit; > } > diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Sign.c > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Sign.c > index 63fe78f..704eb4e 100644 > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Sign.c > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Sign.c > @@ -1,7 +1,7 @@ > /** @file > 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 > 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 > @@ -116,9 +116,9 @@ Pkcs7Sign ( > if (Key == NULL) { > goto _Exit; > } > - Key->save_type = EVP_PKEY_RSA; > - Key->type = EVP_PKEY_type (EVP_PKEY_RSA); > - Key->pkey.rsa = (RSA *) RsaContext; > + if (EVP_PKEY_assign_RSA (Key, (RSA *) RsaContext) == 0) { > + goto _Exit; > + } > > // > // Convert the data to be signed to BIO format. > @@ -175,7 +175,7 @@ Pkcs7Sign ( > } > > CopyMem (*SignedData, P7Data + 19, *SignedDataSize); > - > + > OPENSSL_free (P7Data); > > Status = TRUE; > diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c > index a9665d5..863e4b7 100644 > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c > @@ -10,7 +10,7 @@ > WrapPkcs7Data(), Pkcs7GetSigners(), Pkcs7Verify() will get UEFI > Authenticated > 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 > 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 > @@ -273,7 +273,7 @@ X509PopCertificate ( > goto _Exit; > } > > - Length = ((BUF_MEM *) CertBio->ptr)->length; > + Length = (INT32)(((BUF_MEM *) CertBio->ptr)->length); > if (Length <= 0) { > goto _Exit; > } > @@ -343,7 +343,7 @@ Pkcs7GetSigners ( > PKCS7 *Pkcs7; > BOOLEAN Status; > UINT8 *SignedData; > - UINT8 *Temp; > + CONST UINT8 *Temp; > UINTN SignedDataSize; > BOOLEAN Wrapped; > STACK_OF(X509) *Stack; > @@ -549,7 +549,7 @@ Pkcs7Verify ( > X509 *Cert; > X509_STORE *CertStore; > UINT8 *SignedData; > - UINT8 *Temp; > + CONST UINT8 *Temp; > UINTN SignedDataSize; > BOOLEAN Wrapped; > > @@ -618,7 +618,8 @@ Pkcs7Verify ( > // > // 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) { > goto _Exit; > } > @@ -679,4 +680,4 @@ _Exit: > } > > return Status; > -} > \ No newline at end of file > +} > diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c > index e4b5a84..7d269b0 100644 > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c > @@ -5,7 +5,7 @@ > the lifetime of the signature when a signing certificate expires or is > later > 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 > 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 > @@ -441,11 +441,12 @@ TimestampTokenVerify ( > CONST UINT8 *TokenTemp; > PKCS7 *Pkcs7; > X509 *Cert; > + CONST UINT8 *CertTemp; > X509_STORE *CertStore; > BIO *OutBio; > UINT8 *TstData; > UINTN TstSize; > - UINT8 *TstTemp; > + CONST UINT8 *TstTemp; > TS_TST_INFO *TstInfo; > > Status = FALSE; > @@ -490,7 +491,8 @@ TimestampTokenVerify ( > // > // 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) { > goto _Exit; > } > @@ -605,6 +607,7 @@ ImageTimestampVerify ( > { > BOOLEAN Status; > PKCS7 *Pkcs7; > + CONST UINT8 *Temp; > STACK_OF(PKCS7_SIGNER_INFO) *SignerInfos; > PKCS7_SIGNER_INFO *SignInfo; > UINTN Index; > @@ -644,7 +647,8 @@ ImageTimestampVerify ( > // > // 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) { > goto _Exit; > } > diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c > b/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c > index 29efc42..64073e8 100644 > --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c > +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c > @@ -1,7 +1,7 @@ > /** @file > 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 > 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 > @@ -38,7 +38,8 @@ X509ConstructCertificate ( > OUT UINT8 **SingleX509Cert > ) > { > - X509 *X509Cert; > + X509 *X509Cert; > + CONST UINT8 *Temp; > > // > // Check input parameters. > @@ -50,7 +51,8 @@ X509ConstructCertificate ( > // > // 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) { > return FALSE; > } > -- > 1.9.5.msysgit.1 > ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel