Thanks Jaben. I did notice this and tried to submit the patch with the modified 
subject (using git send-email with both --subject and --compose), but that 
didn't work for some reason. 

Some answers below...


-----Original Message-----
From: Carsey, Jaben [mailto:[email protected]] 
Sent: Monday, April 25, 2016 12:54 PM
To: El-Haj-Mahmoud, Samer <[email protected]>; 
[email protected]
Cc: El-Haj-Mahmoud, Samer <[email protected]>; Wu, Jiaxin 
<[email protected]>; Carsey, Jaben <[email protected]>
Subject: RE: [edk2] [PATCH] CryptoPkg: Fix TLS Lib issue when certificate is 
added to store multiple times

Samer,

Note: This is not in the EDK2 yet, but in the staging... change [PATCH] to 
[Staging/HTTPS-TLS PATCH] (or something like that per the rules...)

2 questions inline also.

-Jaben

> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of 
> Samer El-Haj-Mahmoud
> Sent: Monday, April 25, 2016 10:15 AM
> To: [email protected]
> Cc: Samer El-Haj-Mahmoud <[email protected]>; Wu, Jiaxin 
> <[email protected]>
> Subject: [edk2] [PATCH] CryptoPkg: Fix TLS Lib issue when certificate 
> is added to store multiple times
> 
> Removed unnecessary error condition in TLS Lib that that would report 
> an error if a certificate is being added to the X509_STORE more than once.
> This causes HTTPS to fail on second attempt with the same certificate.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Samer El-Haj-Mahmoud <[email protected]>
> Signed-off-by: Thomas Palmer <[email protected]>
> ---
>  CryptoPkg/Library/TlsLib/TlsLib.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/CryptoPkg/Library/TlsLib/TlsLib.c
> b/CryptoPkg/Library/TlsLib/TlsLib.c
> index e661375..0818653 100644
> --- a/CryptoPkg/Library/TlsLib/TlsLib.c
> +++ b/CryptoPkg/Library/TlsLib/TlsLib.c
> @@ -2,6 +2,7 @@
>    SSL/TLS Library Wrapper Implementation over OpenSSL.
> 
>  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
> +(C) Copyright 2016 Hewlett Packard Enterprise Development LP<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 @@ -16,6 +17,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF 
> ANY KIND, EITHER EXPRESS OR IMPLIED.
> 
>  #include <openssl/ssl.h>
>  #include <openssl/bio.h>
> +#include <openssl/err.h>
> 
>  #define MAX_BUFFER_SIZE   32768
> 
> @@ -1429,6 +1431,7 @@ TlsSetCaCertificate (
>    EFI_STATUS      Status;
>    TLS_CONNECTION  *TlsConn;
>    INTN            Ret;
> +  unsigned long   ErrorCode;
> 
>    BioCert   = NULL;
>    Cert      = NULL;
> @@ -1481,8 +1484,16 @@ TlsSetCaCertificate (
> 
>    Ret = X509_STORE_add_cert (X509Store, Cert);
>    if (Ret != 1) {

[Jaben] do we want to leave hardcoded things like this 1?
[Samer] Did not want to make additional changes in this patch. Could consider 
including it in a future cleanup patch, but the oepnSSL / crypto code is using 
0 (for error) and 1 (for OK) all over the place 


> -    Status = EFI_ABORTED;
> -    goto ON_EXIT;
> +    ErrorCode = ERR_peek_last_error ();
> +    //
> +    // Ignore "already in table" errors
> +    //
> +    if (!(ERR_GET_FUNC (ErrorCode) == X509_F_X509_STORE_ADD_CERT &&
> +        ERR_GET_REASON (ErrorCode) ==
> X509_R_CERT_ALREADY_IN_HASH_TABLE)) {
> +      Status = EFI_ABORTED;
> +      goto ON_EXIT;
> +    }
> +
>    }
> 
>    X509_STORE_set_flags (

[Jaben] Is there a reason to still change the flags on the cert?
[Samer] Did not want to make additional changes in this patch. This patch is to 
fix a specific error. The next patch I will submit (after this one is cleared) 
has some cleanup, and includes moving the store flags set to the init function.

> --
> 2.6.3.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to