1syntax = "proto2"; 2// Very simple proto description of the PNG format, 3// described at https://en.wikipedia.org/wiki/Portable_Network_Graphics 4 5message IHDR { 6 required uint32 width = 1; 7 required uint32 height = 2; 8 required uint32 other1 = 3; 9 required uint32 other2 = 4; // Only 1 byte used. 10} 11 12message PLTE { 13 required bytes data = 1; 14} 15 16message IDAT { 17 required bytes data = 1; 18} 19 20message iCCP { 21 required bytes data = 2; 22} 23 24message OtherChunk { 25 oneof type { 26 uint32 known_type = 1; 27 uint32 unknown_type = 2; 28 } 29 required bytes data = 3; 30} 31 32message PngChunk { 33 oneof chunk { 34 PLTE plte = 1; 35 IDAT idat = 2; 36 iCCP iccp = 3; 37 OtherChunk other_chunk = 10000; 38 } 39} 40 41message PngProto { 42 required IHDR ihdr = 1; 43 repeated PngChunk chunks = 2; 44} 45 46// package fuzzer_examples; 47