On 10 June 2015 at 19:47, Long, Qin <qin.l...@intel.com> wrote:
> Lee, I totally agree with you. And ever made some tries years ago, but no 
> result. :-(
> >From OpenSSL community, there also were lots of requests about the supports 
> >to have smaller fingerprint for those embedded system (e.g. adding more 
> >MACRO to disable something). Also no positive feedback. That's why many 
> >derived projects were created, such as MatrixSSL, CyaSSL, etc. Looks OpenSSL 
> >Dev Team is still short of resource to do this.
>
> Moreover, in current EDKII-OpenSSL patch, I believe some issues we patched 
> are really openssl issue: e.g.
>         Missed DECLARE_PEM_write_fp_const definition if OPENSSL_NO_FP_API was 
> used in pem.h
>         Wrong memory allocation for paramid in  x509_vpm.c
>         ......

Those are fixed in the OpenSSL master branch now. The change that
moves a buffer allocation from the stack to the heap is not upstream,
but may be a candidate if we propose it as a standalone patch.

> At least, there should be valuable to upstream these changes, and we will 
> have smaller patch in future. :-)
>

Agreed.

-- 
Ard.

> -----Original Message-----
> From: Blibbet [mailto:blib...@gmail.com]
> Sent: Saturday, June 6, 2015 3:56 AM
> To: edk2-devel@lists.sourceforge.net
> Subject: Re: [edk2] [patch 3/3] [CryptoPkg] Updates some support header files 
> and wrapper files to support openssl-1.0.2a build, and correct some openssl 
> API usages when handling ASN.1 en/decoding.
>
> Has there been any thought to upstream the libOpenSSL changes?
>
> It would be nice to be able to grab a current OpenSSL tarball and have it 
> include UEFI support, and not have to patch it each time. Having the patches 
> in truck also makes the main OpenSSL developers aware of how their changes 
> impact UEFI-centric codepaths, which they are currently blind to.
>
> The previous OpenSSL patch was apparently not acceptable to them. I hope some 
> consideration has been made for this patch.
>
> Thanks,
> Lee
>
> On 06/05/2015 09:11 AM, Long, Qin wrote:
>> Copy that. Thanks biesheuvel.
>> I will double-check the GCC building.
>>
>>
>> Best Regards & Thanks,
>> LONG, Qin
>>
>> -----Original Message-----
>> From: Ard Biesheuvel [mailto:ard.biesheu...@linaro.org]
>> Sent: Friday, June 5, 2015 5:20 PM
>> To: edk2-devel@lists.sourceforge.net
>> Subject: Re: [edk2] [patch 3/3] [CryptoPkg] Updates some support
> header files and wrapper files to support openssl-1.0.2a build, and correct 
> some openssl API usages when handling ASN.1 en/decoding.
>>
>> Hello Long Qin,
>>
>> This patch breaks the build on GCC due to UINT8* variables being
> passed as 'const unsigned char*' parameters.
>> Please see below.
>>
>> On 5 June 2015 at 03:06, 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>
>>> ---
>>>  CryptoPkg/Include/OpenSslSupport.h                    |  8 +++++++-
>>>  CryptoPkg/Include/memory.h                            | 16
> ++++++++++++++++
>>>  CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c |  6 ++++--
>>>  CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Sign.c    | 10 +++++-----
>>>  CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c  |  9 +++++----
>>>  CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c           | 10 +++++++---
>>>  CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c         |  6 ++++--
>>>  7 files changed, 48 insertions(+), 17 deletions(-)  create mode
>>> 100644 CryptoPkg/Include/memory.h
>>>
>> [...]
>>> diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c
>>> b/CryptoPkg/Library/BaseCryptLib/Pk/CryptAuthenticode.c
>>> index 4ce2b06..9ace5e6 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;
>>> +  UINT8        *Temp;
>>
>> 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  = (UINT8 *)AuthData;
>>> +  Pkcs7 = d2i_PKCS7 (NULL, &Temp, (int)DataSize);
>>>    if (Pkcs7 == NULL) {
>>>      goto _Exit;
>>>    }
>>
>> [...]
>>
>>> diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
>>> b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
>>> index a9665d5..06e4bb2 100644
>>> --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
>>> +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
>> [...]
>>> @@ -618,7 +618,8 @@ Pkcs7Verify (
>>>    //
>>>    // Read DER-encoded root certificate and Construct X509 Certificate
>>>    //
>>> -  Cert = d2i_X509 (NULL, &TrustedCert, (long) CertLength);
>>> +  Temp = (UINT8 *)TrustedCert;
>>> +  Cert = d2i_X509 (NULL, &Temp, (long) CertLength);
>>
>> Same here: temp should be declared as CONST UINT8*
>>
>>>    if (Cert == NULL) {
>>>      goto _Exit;
>>>    }
>> [...]
>>> diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c
>>> b/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c
>>> index e4b5a84..7456755 100644
>>> --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c
>>> +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptTs.c
>> [...]
>>> @@ -441,6 +441,7 @@ TimestampTokenVerify (
>>>    CONST UINT8  *TokenTemp;
>>>    PKCS7        *Pkcs7;
>>>    X509         *Cert;
>>> +  UINT8        *CertTemp;
>>
>> Same here
>>
>>>    X509_STORE   *CertStore;
>>>    BIO          *OutBio;
>>>    UINT8        *TstData;
>>> @@ -490,7 +491,8 @@ TimestampTokenVerify (
>>>    //
>>>    // Read the trusted TSA certificate (DER-encoded), and Construct
> X509 Certificate.
>>>    //
>>> -  Cert = d2i_X509 (NULL, &TsaCert, (long) CertSize);
>>> +  CertTemp = (UINT8 *)TsaCert;
>>> +  Cert = d2i_X509 (NULL, &CertTemp, (long) CertSize);
>>>    if (Cert == NULL) {
>>>      goto _Exit;
>>>    }
>> [...]
>>> diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c
>>> b/CryptoPkg/Library/BaseCryptLib/Pk/CryptX509.c
>>> index 29efc42..66f79da 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 @@ -39,6 +39,7 @@ X509ConstructCertificate (
>>>    )
>>>  {
>>>    X509     *X509Cert;
>>> +  UINT8    *Temp;
>>
>> ... and here
>>
>>>
>>>    //
>>>    // 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     = (UINT8 *)Cert;
>>> +  X509Cert = d2i_X509 (NULL, &Temp, (long) CertSize);
>>>    if (X509Cert == NULL) {
>>>      return FALSE;
>>>    }
>>
>>
>> Thanks,
>> Ard.
>>
>>
> ------------------------------------------------------------------------------
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>
>>
> ------------------------------------------------------------------------------
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>>
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel
>
> ------------------------------------------------------------------------------
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to