diff --git a/xmlenc/fuzz.go b/xmlenc/fuzz.go index ae23bdf3..1c602b01 100644 --- a/xmlenc/fuzz.go +++ b/xmlenc/fuzz.go @@ -2,39 +2,12 @@ package xmlenc import ( "crypto/rsa" - "crypto/x509" - "encoding/pem" "github.com/beevik/etree" ) -var testKey = func() *rsa.PrivateKey { - //nolint:gosec - const keyStr = `-----BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQDkXTUsWzRVpUHjbDpWCfYDfXmQ/q4LkaioZoTpu4ut1Q3eQC5t -gD14agJhgT8yzeY5S/YNlwCyuVkjuFyoyTHFX2IOPpz7jnh4KnQ+B1IH9fY/+kmk -zHJgxSUDJsdUMPgGpKt5hnEn7ziXAWXLc2udFbnHwhi9TXXwRHGi9wZ4YwIDAQAB -AoGBALNTnlXeqRI4W61DZ+v4ln/XIIeD9xiOoWrcVrNU2zL+g41ryQmkEqFkXcpD -vGUg2xFTXTz+v0WZ1y39sIW6uKFRYUfaNsF6iVfGAyx1VWK/jgtPnCWDQy26Eby0 -BqpbZRy1a6MLYVEG/5bvZE01CDV4XttpTrNX91WWcYGduJxBAkEA6ED1ZOqIzBpu -c2KAo+bWmroCH8+cSDk0gVq6bnRB+EEhRCmo/VgvndWLxfexdGmDIOAIisB06N5a -GzBSCaEY/QJBAPu2cNvuuBNLwrlxPCwOEpIHYT4gJq8UMtg6O6N+u++nYCGhK6uo -VCmrKY+UewyNIcsLZF0jsNI2qJjiU1vQxN8CQQDfQJnigMQwlfO3/Ga1po6Buu2R -0IpkroB3G1R8GkrTrR+iGv2zUdKrwHsUOC2fPlFrB4+OeMOomRw6aG9jjDStAkB1 -ztiZhuvuVAoKIv5HnDqC0CNqIUAZtzlozDB3f+xT6SFr+/Plfn4Nlod4JMVGhZNo -ZaeOlBLBAEX+cAcVtOs/AkBicZOAPv84ABmFfyhXhYaAuacaJLq//jg+t+URUOg+ -XZS9naRmawEQxOkZQVoMeKgvu05+V4MniFqdQBINIkr5 ------END RSA PRIVATE KEY-----` - b, _ := pem.Decode([]byte(keyStr)) - k, err := x509.ParsePKCS1PrivateKey(b.Bytes) - if err != nil { - panic(err) - } - return k -}() - // Fuzz is the go-fuzz fuzzing function -func Fuzz(data []byte) int { +func Fuzz(testKey *rsa.PrivateKey, data []byte) int { doc := etree.NewDocument() if err := doc.ReadFromBytes(data); err != nil { return 0 diff --git a/xmlenc/fuzz_test.go b/xmlenc/fuzz_test.go index da3af637..ffb96bbe 100644 --- a/xmlenc/fuzz_test.go +++ b/xmlenc/fuzz_test.go @@ -9,6 +9,31 @@ import ( "strings" ) +var testKey = func() *rsa.PrivateKey { + //nolint:gosec + const keyStr = `-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQDkXTUsWzRVpUHjbDpWCfYDfXmQ/q4LkaioZoTpu4ut1Q3eQC5t +gD14agJhgT8yzeY5S/YNlwCyuVkjuFyoyTHFX2IOPpz7jnh4KnQ+B1IH9fY/+kmk +zHJgxSUDJsdUMPgGpKt5hnEn7ziXAWXLc2udFbnHwhi9TXXwRHGi9wZ4YwIDAQAB +AoGBALNTnlXeqRI4W61DZ+v4ln/XIIeD9xiOoWrcVrNU2zL+g41ryQmkEqFkXcpD +vGUg2xFTXTz+v0WZ1y39sIW6uKFRYUfaNsF6iVfGAyx1VWK/jgtPnCWDQy26Eby0 +BqpbZRy1a6MLYVEG/5bvZE01CDV4XttpTrNX91WWcYGduJxBAkEA6ED1ZOqIzBpu +c2KAo+bWmroCH8+cSDk0gVq6bnRB+EEhRCmo/VgvndWLxfexdGmDIOAIisB06N5a +GzBSCaEY/QJBAPu2cNvuuBNLwrlxPCwOEpIHYT4gJq8UMtg6O6N+u++nYCGhK6uo +VCmrKY+UewyNIcsLZF0jsNI2qJjiU1vQxN8CQQDfQJnigMQwlfO3/Ga1po6Buu2R +0IpkroB3G1R8GkrTrR+iGv2zUdKrwHsUOC2fPlFrB4+OeMOomRw6aG9jjDStAkB1 +ztiZhuvuVAoKIv5HnDqC0CNqIUAZtzlozDB3f+xT6SFr+/Plfn4Nlod4JMVGhZNo +ZaeOlBLBAEX+cAcVtOs/AkBicZOAPv84ABmFfyhXhYaAuacaJLq//jg+t+URUOg+ +XZS9naRmawEQxOkZQVoMeKgvu05+V4MniFqdQBINIkr5 +-----END RSA PRIVATE KEY-----` + b, _ := pem.Decode([]byte(keyStr)) + k, err := x509.ParsePKCS1PrivateKey(b.Bytes) + if err != nil { + panic(err) + } + return k +}() + func TestPastFuzzingFailures(t *testing.T) { entries, err := io.ReadDir("crashers") if err != nil { @@ -28,6 +53,6 @@ func TestPastFuzzingFailures(t *testing.T) { t.Errorf("%s: %s", entry.Name(), err) return } - Fuzz(data) + Fuzz(testKey, data) } }