From e7501ef8475cfe12c882004c2db0cacc17bb0e43 Mon Sep 17 00:00:00 2001
From: Shivaram Lingamneni <slingamn@cs.stanford.edu>
Date: Sun, 18 May 2025 01:28:48 -0400
Subject: [PATCH] upgrade go-msgauth

---
 go.mod                                               | 2 +-
 go.sum                                               | 2 ++
 vendor/github.com/emersion/go-msgauth/dkim/header.go | 7 ++++++-
 vendor/github.com/emersion/go-msgauth/dkim/query.go  | 2 +-
 vendor/modules.txt                                   | 2 +-
 5 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/go.mod b/go.mod
index 416b22a1..ab661164 100644
--- a/go.mod
+++ b/go.mod
@@ -25,7 +25,7 @@ require (
 )
 
 require (
-	github.com/emersion/go-msgauth v0.6.8
+	github.com/emersion/go-msgauth v0.7.0
 	github.com/ergochat/webpush-go/v2 v2.0.0
 	github.com/golang-jwt/jwt/v5 v5.2.2
 )
diff --git a/go.sum b/go.sum
index 521e691f..24ef25c3 100644
--- a/go.sum
+++ b/go.sum
@@ -8,6 +8,8 @@ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh
 github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
 github.com/emersion/go-msgauth v0.6.8 h1:kW/0E9E8Zx5CdKsERC/WnAvnXvX7q9wTHia1OA4944A=
 github.com/emersion/go-msgauth v0.6.8/go.mod h1:YDwuyTCUHu9xxmAeVj0eW4INnwB6NNZoPdLerpSxRrc=
+github.com/emersion/go-msgauth v0.7.0 h1:vj2hMn6KhFtW41kshIBTXvp6KgYSqpA/ZN9Pv4g1INc=
+github.com/emersion/go-msgauth v0.7.0/go.mod h1:mmS9I6HkSovrNgq0HNXTeu8l3sRAAuQ9RMvbM4KU7Ck=
 github.com/ergochat/confusables v0.0.0-20201108231250-4ab98ab61fb1 h1:WLHTOodthVyv5NvYLIvWl112kSFv5IInKKrRN2qpons=
 github.com/ergochat/confusables v0.0.0-20201108231250-4ab98ab61fb1/go.mod h1:mov+uh1DPWsltdQnOdzn08UO9GsJ3MEvhtu0Ci37fdk=
 github.com/ergochat/go-ident v0.0.0-20230911071154-8c30606d6881 h1:+J5m88nvybxB5AnBVGzTXM/yHVytt48rXBGcJGzSbms=
diff --git a/vendor/github.com/emersion/go-msgauth/dkim/header.go b/vendor/github.com/emersion/go-msgauth/dkim/header.go
index dddd81f7..09f90212 100644
--- a/vendor/github.com/emersion/go-msgauth/dkim/header.go
+++ b/vendor/github.com/emersion/go-msgauth/dkim/header.go
@@ -83,7 +83,12 @@ func parseHeaderParams(s string) (map[string]string, error) {
 			return params, errors.New("dkim: malformed header params")
 		}
 
-		params[strings.TrimSpace(key)] = strings.TrimSpace(value)
+		trimmedKey := strings.TrimSpace(key)
+		_, present := params[trimmedKey]
+		if present {
+			return params, errors.New("dkim: duplicate tag name")
+		}
+		params[trimmedKey] = strings.TrimSpace(value)
 	}
 	return params, nil
 }
diff --git a/vendor/github.com/emersion/go-msgauth/dkim/query.go b/vendor/github.com/emersion/go-msgauth/dkim/query.go
index 33f8556e..45134cdd 100644
--- a/vendor/github.com/emersion/go-msgauth/dkim/query.go
+++ b/vendor/github.com/emersion/go-msgauth/dkim/query.go
@@ -100,7 +100,7 @@ func queryDNSTXT(domain, selector string, txtLookup txtLookupFunc) (*queryResult
 func parsePublicKey(s string) (*queryResult, error) {
 	params, err := parseHeaderParams(s)
 	if err != nil {
-		return nil, permFailError("key syntax error: " + err.Error())
+		return nil, permFailError("key record error: " + err.Error())
 	}
 
 	res := new(queryResult)
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 00111422..1a218695 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -10,7 +10,7 @@ github.com/GehirnInc/crypt/md5_crypt
 # github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
 ## explicit
 github.com/docopt/docopt-go
-# github.com/emersion/go-msgauth v0.6.8
+# github.com/emersion/go-msgauth v0.7.0
 ## explicit; go 1.18
 github.com/emersion/go-msgauth/dkim
 # github.com/ergochat/confusables v0.0.0-20201108231250-4ab98ab61fb1