()
| 284 | } |
| 285 | |
| 286 | fn generate_auth_message_fuzzing() -> Vec<Vec<u8>> { |
| 287 | let mut inputs = Vec::new(); |
| 288 | |
| 289 | // Valid auth types |
| 290 | for auth_type in [0, 2, 3, 5, 10, 11, 12] { |
| 291 | let mut msg = vec![b'R']; |
| 292 | msg.extend_from_slice(&(8u32).to_be_bytes()); |
| 293 | msg.extend_from_slice(&(auth_type as u32).to_be_bytes()); |
| 294 | inputs.push(msg); |
| 295 | } |
| 296 | |
| 297 | // MD5 auth with salt |
| 298 | let mut md5_msg = vec![b'R']; |
| 299 | md5_msg.extend_from_slice(&(12u32).to_be_bytes()); |
| 300 | md5_msg.extend_from_slice(&(5u32).to_be_bytes()); // MD5 auth type |
| 301 | md5_msg.extend_from_slice(&[0x12, 0x34, 0x56, 0x78]); // Salt |
| 302 | inputs.push(md5_msg); |
| 303 | |
| 304 | // SASL auth with mechanisms |
| 305 | let mut sasl_msg = vec![b'R']; |
| 306 | sasl_msg.extend_from_slice(&(20u32).to_be_bytes()); |
| 307 | sasl_msg.extend_from_slice(&(10u32).to_be_bytes()); // SASL auth type |
| 308 | sasl_msg.extend_from_slice(b"SCRAM-SHA-256\0"); |
| 309 | sasl_msg.push(0); // Null terminator |
| 310 | inputs.push(sasl_msg); |
| 311 | |
| 312 | inputs |
| 313 | } |
| 314 | |
| 315 | fn generate_query_message_fuzzing() -> Vec<Vec<u8>> { |
| 316 | let mut inputs = Vec::new(); |
no outgoing calls
no test coverage detected