CryptoPkg/OpensslLib: Switch to upstream fix for OpenSSL RT#3992
authorQin Long <qin.long@intel.com>
Sat, 5 Mar 2016 15:42:24 +0000 (23:42 +0800)
committerQin Long <qin.long@intel.com>
Sat, 5 Mar 2016 15:42:24 +0000 (23:42 +0800)
Instead of commenting out the Signed Certificate Timestamps purely based
on the OPENSSL_SYS_UEFI flag, OpenSSL 1.1 supports a no-sct configuration
option, added in commit 05d7bf6c5. Drop our own hack and use that.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Qin Long <qin.long@intel.com>
Tested-by: Qin Long <qin.long@intel.com>
CryptoPkg/Library/OpensslLib/EDKII_openssl-1.0.2f.patch

index 82fa8dddf0594887fc2861a099a27ff828224375..6607200b02a9ca248325411fb5af6e450b1075d8 100644 (file)
@@ -1520,14 +1520,14 @@ index 2663e1c..3790ef5 100644
  int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);\r
  int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);\r
 diff --git a/crypto/x509v3/ext_dat.h b/crypto/x509v3/ext_dat.h\r
-index c3a6fce..01edd2a 100644\r
+index c3a6fce..09ebbca 100644\r
 --- a/crypto/x509v3/ext_dat.h\r
 +++ b/crypto/x509v3/ext_dat.h\r
 @@ -127,8 +127,10 @@ static const X509V3_EXT_METHOD *standard_exts[] = {\r
      &v3_idp,\r
      &v3_alt[2],\r
      &v3_freshest_crl,\r
-+#ifndef OPENSSL_SYS_UEFI\r
++#ifndef OPENSSL_NO_SCT\r
      &v3_ct_scts[0],\r
      &v3_ct_scts[1],\r
 +#endif\r
@@ -1554,6 +1554,23 @@ index 34cad53..12f12a7 100644
          } else if (strncmp(val->value, "text:", 5) == 0) {\r
              val_len = strlen(val->value + 5);\r
              tmp_data = OPENSSL_realloc((*policy)->data,\r
+diff --git a/crypto/x509v3/v3_scts.c b/crypto/x509v3/v3_scts.c\r
+index 0b7c681..1895b8f 100644\r
+--- a/crypto/x509v3/v3_scts.c\r
++++ b/crypto/x509v3/v3_scts.c\r
+@@ -61,6 +61,7 @@\r
+ #include <openssl/asn1.h>\r
+ #include <openssl/x509v3.h>\r
\r
++#ifndef OPENSSL_NO_SCT\r
+ /* Signature and hash algorithms from RFC 5246 */\r
+ #define TLSEXT_hash_sha256                              4\r
\r
+@@ -332,3 +333,4 @@ static int i2r_SCT_LIST(X509V3_EXT_METHOD *method, STACK_OF(SCT) *sct_list,\r
\r
+     return 1;\r
+ }\r
++#endif\r
 diff --git a/crypto/x509v3/x509v3.h b/crypto/x509v3/x509v3.h\r
 index f5c6156..a2e78aa 100644\r
 --- a/crypto/x509v3/x509v3.h\r
@@ -1837,6 +1854,18 @@ index c8aec7c..67110ed 100644
  \r
  /* Error codes for the UBSEC functions. */\r
  \r
+diff --git a/makevms.com b/makevms.com\r
+index f6b3ff2..1dcbe36 100755\r
+--- a/makevms.com\r
++++ b/makevms.com\r
+@@ -293,6 +293,7 @@ $ CONFIG_LOGICALS := AES,-\r
+                    RFC3779,-\r
+                    RIPEMD,-\r
+                    RSA,-\r
++                   SCT,-\r
+                    SCTP,-\r
+                    SEED,-\r
+                    SHA,-\r
 diff --git a/ssl/d1_both.c b/ssl/d1_both.c\r
 index d1fc716..d5f661a 100644\r
 --- a/ssl/d1_both.c\r
@@ -2008,6 +2037,44 @@ index 7f7487d..13b2e3a 100755
  RSA_OAEP_PARAMS_free                    4736  EXIST::FUNCTION:RSA\r
  EVP_des_ede3_wrap                       4737  EXIST::FUNCTION:DES\r
  RSA_OAEP_PARAMS_it                      4738  EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RSA\r
+diff --git a/util/mkdef.pl b/util/mkdef.pl\r
+index c57c7f7..d4c3386 100755\r
+--- a/util/mkdef.pl\r
++++ b/util/mkdef.pl\r
+@@ -97,6 +97,8 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",\r
+                        "FP_API", "STDIO", "SOCK", "KRB5", "DGRAM",\r
+                        # Engines\r
+                        "STATIC_ENGINE", "ENGINE", "HW", "GMP",\r
++                       # X.509v3 Signed Certificate Timestamps\r
++                       "SCT",\r
+                        # RFC3779\r
+                        "RFC3779",\r
+                        # TLS\r
+@@ -142,7 +144,7 @@ my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;\r
+ my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;\r
+ my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw;\r
+ my $no_fp_api; my $no_static_engine=1; my $no_gmp; my $no_deprecated;\r
+-my $no_rfc3779; my $no_psk; my $no_tlsext; my $no_cms; my $no_capieng;\r
++my $no_sct; my $no_rfc3779; my $no_psk; my $no_tlsext; my $no_cms; my $no_capieng;\r
+ my $no_jpake; my $no_srp; my $no_ssl2; my $no_ec2m; my $no_nistp_gcc; \r
+ my $no_nextprotoneg; my $no_sctp; my $no_srtp; my $no_ssl_trace;\r
+ my $no_unit_test; my $no_ssl3_method;\r
+@@ -233,6 +235,7 @@ foreach (@ARGV, split(/ /, $options))\r
+       elsif (/^no-engine$/)   { $no_engine=1; }\r
+       elsif (/^no-hw$/)       { $no_hw=1; }\r
+       elsif (/^no-gmp$/)      { $no_gmp=1; }\r
++      elsif (/^no-sct$/)      { $no_sct=1; }\r
+       elsif (/^no-rfc3779$/)  { $no_rfc3779=1; }\r
+       elsif (/^no-tlsext$/)   { $no_tlsext=1; }\r
+       elsif (/^no-cms$/)      { $no_cms=1; }\r
+@@ -1206,6 +1209,7 @@ sub is_valid\r
+                       if ($keyword eq "FP_API" && $no_fp_api) { return 0; }\r
+                       if ($keyword eq "STATIC_ENGINE" && $no_static_engine) { return 0; }\r
+                       if ($keyword eq "GMP" && $no_gmp) { return 0; }\r
++                      if ($keyword eq "SCT" && $no_sct) { return 0; }\r
+                       if ($keyword eq "RFC3779" && $no_rfc3779) { return 0; }\r
+                       if ($keyword eq "TLSEXT" && $no_tlsext) { return 0; }\r
+                       if ($keyword eq "PSK" && $no_psk) { return 0; }\r
 diff --git a/util/mkerr.pl b/util/mkerr.pl\r
 index 09ebebe..cd57ade 100644\r
 --- a/util/mkerr.pl\r