File 1331-public_key-Add-DSA-with-SHA2-support.patch of Package erlang

From fcbcaa59336bc75afcc7655c257b934e96030200 Mon Sep 17 00:00:00 2001
From: Ingela Anderton Andin <ingela@erlang.org>
Date: Mon, 15 Oct 2018 12:09:34 +0200
Subject: [PATCH] public_key: Add DSA with SHA2 support

---
 lib/public_key/asn1/OTP-PKIX.asn1        |  7 +++++++
 lib/public_key/src/public_key.erl        |  4 ++++
 lib/public_key/test/public_key_SUITE.erl | 11 ++++++++++-
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/lib/public_key/asn1/OTP-PKIX.asn1 b/lib/public_key/asn1/OTP-PKIX.asn1
index 37196bb9bf..10a83555af 100644
--- a/lib/public_key/asn1/OTP-PKIX.asn1
+++ b/lib/public_key/asn1/OTP-PKIX.asn1
@@ -368,6 +368,13 @@ SupportedPublicKeyAlgorithms PUBLIC-KEY-ALGORITHM-CLASS ::= {
 		 ID id-dsaWithSHA1
 		 TYPE  DSAParams }
 
+   id-dsa-with-sha224 OBJECT IDENTIFIER ::=  {
+        joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101)
+        csor(3) algorithms(4) id-dsa-with-sha2(3) 1 }
+
+    id-dsa-with-sha256 OBJECT IDENTIFIER ::=  {
+        joint-iso-ccitt(2) country(16) us(840) organization(1) gov(101)
+        csor(3) algorithms(4) id-dsa-with-sha2(3) 2 }
 				  --
    --   RSA Keys and Signatures
    --
diff --git a/lib/public_key/src/public_key.erl b/lib/public_key/src/public_key.erl
index 3f609ce6c6..dca1e0766e 100644
--- a/lib/public_key/src/public_key.erl
+++ b/lib/public_key/src/public_key.erl
@@ -609,6 +609,10 @@ pkix_sign_types(?'id-dsa-with-sha1') ->
     {sha, dsa};
 pkix_sign_types(?'id-dsaWithSHA1') ->
     {sha, dsa};
+pkix_sign_types(?'id-dsa-with-sha224') ->
+    {sha224, dsa};
+pkix_sign_types(?'id-dsa-with-sha256') ->
+    {sha256, dsa};
 pkix_sign_types(?'ecdsa-with-SHA1') ->
     {sha, ecdsa};
 pkix_sign_types(?'ecdsa-with-SHA256') ->
diff --git a/lib/public_key/test/public_key_SUITE.erl b/lib/public_key/test/public_key_SUITE.erl
index 1955e9e119..878489eb0f 100644
--- a/lib/public_key/test/public_key_SUITE.erl
+++ b/lib/public_key/test/public_key_SUITE.erl
@@ -44,7 +44,9 @@ all() ->
      encrypt_decrypt,
      {group, sign_verify},
      pkix, pkix_countryname, pkix_emailaddress, pkix_path_validation,
-     pkix_iso_rsa_oid, pkix_iso_dsa_oid, pkix_crl, general_name,
+     pkix_iso_rsa_oid, pkix_iso_dsa_oid, 
+     pkix_dsa_sha2_oid,
+     pkix_crl, general_name,
      pkix_verify_hostname_cn,
      pkix_verify_hostname_subjAltName,
      pkix_verify_hostname_subjAltName_IP,
@@ -1113,6 +1115,13 @@ pkix_iso_dsa_oid(Config) when is_list(Config) ->
     SigAlg = OTPCert#'OTPCertificate'.signatureAlgorithm,
     {_, dsa} = public_key:pkix_sign_types(SigAlg#'SignatureAlgorithm'.algorithm).
 
+%%--------------------------------------------------------------------
+pkix_dsa_sha2_oid() ->
+ [{doc, "Test support dsa_sha2 oid"}].
+pkix_dsa_sha2_oid(Config) when is_list(Config) ->
+    {sha224, dsa} = public_key:pkix_sign_types(?'id-dsa-with-sha224'),
+    {sha256, dsa} = public_key:pkix_sign_types(?'id-dsa-with-sha256').
+    
 %%--------------------------------------------------------------------
 
 pkix_crl() ->
-- 
2.16.4