Description: Fix and patch relevant upstream code for fixing autopkgtests with golang-1.16
Author: Nilesh Patra <nilesh@debian.org>
Forwarded: not-needed
Last-Update: 2021-09-08
--- a/fullsailor/pkcs7/pkcs7_test.go
+++ b/fullsailor/pkcs7/pkcs7_test.go
@@ -16,6 +16,7 @@
 	"math/big"
 	"os"
 	"os/exec"
+	"strings"
 	"testing"
 	"time"
 )
@@ -28,7 +29,11 @@
 	}
 
 	if err := p7.Verify(); err != nil {
-		t.Errorf("Verify failed with error: %v", err)
+		if strings.Contains(err.Error(), "algorithm unimplemented") {
+			t.Skip("DSA is not supported since go1.16, ignoring:", err)
+		} else {
+			t.Errorf("Verify failed with error: %v", err)
+		}
 	}
 	expected := []byte("We the People")
 	if bytes.Compare(p7.Content, expected) != 0 {
--- a/schemev1.go
+++ b/schemev1.go
@@ -811,9 +811,11 @@
 			return fmt.Errorf("Unexpected public key type (%T)!", cert.PublicKey)
 		}
 		return rsa.VerifyPKCS1v15(pub, crypto.SHA224, digest[:], signature)
-	case DSAWithSHA224, x509.DSAWithSHA256:
+	case x509.DSAWithSHA1, DSAWithSHA224, x509.DSAWithSHA256:
 		var hasher hash.Hash
 		switch algo {
+		case x509.DSAWithSHA1:
+			hasher = sha1.New()
 		case x509.DSAWithSHA256:
 			hasher = sha256.New()
 		case DSAWithSHA224:
