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.
38 lines
873 B
Go
38 lines
873 B
Go
// +build gofuzz
|
|
|
|
package brontidefuzz
|
|
|
|
import (
|
|
"bytes"
|
|
"math"
|
|
)
|
|
|
|
// Fuzz_static_resp_encrypt is a go-fuzz harness that encrypts arbitrary data
|
|
// with the responder.
|
|
func Fuzz_static_resp_encrypt(data []byte) int {
|
|
// Ensure that length of message is not greater than max allowed size.
|
|
if len(data) > math.MaxUint16 {
|
|
return 1
|
|
}
|
|
|
|
// This will return brontide machines with static keys.
|
|
initiator, responder := getStaticBrontideMachines()
|
|
|
|
// Complete the brontide handshake.
|
|
completeHandshake(initiator, responder)
|
|
|
|
var b bytes.Buffer
|
|
|
|
// Encrypt the message using WriteMessage w/ responder machine.
|
|
if err := responder.WriteMessage(data); err != nil {
|
|
nilAndPanic(initiator, responder, err)
|
|
}
|
|
|
|
// Flush the encrypted message w/ responder machine.
|
|
if _, err := responder.Flush(&b); err != nil {
|
|
nilAndPanic(initiator, responder, err)
|
|
}
|
|
|
|
return 1
|
|
}
|