1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#![no_main]
#[macro_use]
extern crate libfuzzer_sys;
extern crate rustls;
use rustls::internal::msgs::codec::Reader;
use rustls::internal::msgs::message::{Message, OutboundOpaqueMessage, PlainMessage};
fuzz_target!(|data: &[u8]| {
let mut rdr = Reader::init(data);
if let Ok(m) = OutboundOpaqueMessage::read(&mut rdr) {
let Ok(msg) = Message::try_from(m.into_plain_message()) else {
return;
};
//println!("msg = {:#?}", m);
let enc = PlainMessage::from(msg)
.into_unencrypted_opaque()
.encode();
//println!("data = {:?}", &data[..rdr.used()]);
assert_eq!(enc, data[..rdr.used()]);
}
});
|