f82653cb06
This allows gofuzz to store the mutating input as coverage if it reaches any new coverage, even if it didn't make it to the end of the test.
31 lines
673 B
Go
31 lines
673 B
Go
// +build gofuzz
|
|
|
|
package brontidefuzz
|
|
|
|
import (
|
|
"github.com/lightningnetwork/lnd/brontide"
|
|
)
|
|
|
|
// Fuzz_random_actone is a go-fuzz harness for ActOne in the brontide
|
|
// handshake.
|
|
func Fuzz_random_actone(data []byte) int {
|
|
// Check if data is large enough.
|
|
if len(data) < brontide.ActOneSize {
|
|
return 1
|
|
}
|
|
|
|
// This will return brontide machines with random keys.
|
|
_, responder := getBrontideMachines()
|
|
|
|
// Copy data into [ActOneSize]byte.
|
|
var actOne [brontide.ActOneSize]byte
|
|
copy(actOne[:], data)
|
|
|
|
// Responder receives ActOne, should fail on the MAC check.
|
|
if err := responder.RecvActOne(actOne); err == nil {
|
|
nilAndPanic(nil, responder, nil)
|
|
}
|
|
|
|
return 1
|
|
}
|