diff --git a/dkim.go b/dkim.go index aa0591f..303ff2b 100644 --- a/dkim.go +++ b/dkim.go @@ -473,7 +473,6 @@ func verifySignature(toSign []byte, sig64 string, key *rsa.PublicKey, algo strin return ErrVerifyInappropriateHashAlgo } - //fmt.Printf("|%s|", toSign) h1.Write(toSign) sig, err := base64.StdEncoding.DecodeString(sig64) if err != nil { diff --git a/dkimHeader.go b/dkimHeader.go index ab7cefb..11563a8 100644 --- a/dkimHeader.go +++ b/dkimHeader.go @@ -315,7 +315,11 @@ func parseDkHeader(header string) (dkh *dkimHeader, err error) { dkh.MessageCanonicalization = "simple/simple" dkh.QueryMethods = []string{"dns/txt"} - fs := strings.Split(keyVal[1], ";") + // unfold && clean + val := removeFWS(keyVal[1]) + val = strings.Replace(val, " ", "", -1) + + fs := strings.Split(val, ";") for _, f := range fs { flagData := strings.SplitN(f, "=", 2) flag := strings.ToLower(strings.TrimSpace(flagData[0])) diff --git a/dkim_test.go b/dkim_test.go index 946eea6..cac6ddd 100644 --- a/dkim_test.go +++ b/dkim_test.go @@ -360,5 +360,4 @@ func Test_Verify(t *testing.T) { status, err = Verify(&email) assert.NoError(t, err) assert.Equal(t, SUCCESS, status) - }