github.com/decred/dcrlnd@v0.7.6/fuzz/brontide/random_resp_encrypt.go (about) 1 //go:build gofuzz 2 // +build gofuzz 3 4 package brontidefuzz 5 6 import ( 7 "bytes" 8 "math" 9 ) 10 11 // Fuzz_random_resp_encrypt is a go-fuzz harness that encrypts arbitrary data 12 // with the responder. 13 func Fuzz_random_resp_encrypt(data []byte) int { 14 // Ensure that length of message is not greater than max allowed size. 15 if len(data) > math.MaxUint16 { 16 return 1 17 } 18 19 // This will return brontide machines with random keys. 20 initiator, responder := getBrontideMachines() 21 22 // Complete the brontide handshake. 23 completeHandshake(initiator, responder) 24 25 var b bytes.Buffer 26 27 // Encrypt the message using WriteMessage w/ responder machine. 28 if err := responder.WriteMessage(data); err != nil { 29 nilAndPanic(initiator, responder, err) 30 } 31 32 // Flush the encrypted message w/ responder machine. 33 if _, err := responder.Flush(&b); err != nil { 34 nilAndPanic(initiator, responder, err) 35 } 36 37 return 1 38 }