xref: /aosp_15_r20/external/pdfium/testing/fuzzers/pdf_fuzzer_templates.h (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2021 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker 
5*3ac0a46fSAndroid Build Coastguard Worker // File for holding strings representing PDF templates that are used by fuzzers.
6*3ac0a46fSAndroid Build Coastguard Worker 
7*3ac0a46fSAndroid Build Coastguard Worker #ifndef TESTING_FUZZERS_PDF_FUZZER_TEMPLATES_H_
8*3ac0a46fSAndroid Build Coastguard Worker #define TESTING_FUZZERS_PDF_FUZZER_TEMPLATES_H_
9*3ac0a46fSAndroid Build Coastguard Worker 
10*3ac0a46fSAndroid Build Coastguard Worker constexpr char kSimplePdfTemplate[] = R"(%PDF-1.7
11*3ac0a46fSAndroid Build Coastguard Worker 1 0 obj
12*3ac0a46fSAndroid Build Coastguard Worker <</Type /Catalog /Pages 2 0 R /AcroForm <</XFA 30 0 R>> /NeedsRendering true>>
13*3ac0a46fSAndroid Build Coastguard Worker endobj
14*3ac0a46fSAndroid Build Coastguard Worker 2 0 obj
15*3ac0a46fSAndroid Build Coastguard Worker <</Type /Pages /Kids [3 0 R] /Count 1>>
16*3ac0a46fSAndroid Build Coastguard Worker endobj
17*3ac0a46fSAndroid Build Coastguard Worker 3 0 obj
18*3ac0a46fSAndroid Build Coastguard Worker <</Type /Page /Parent 2 0 R /MediaBox [0 0 3 3]>>
19*3ac0a46fSAndroid Build Coastguard Worker endobj
20*3ac0a46fSAndroid Build Coastguard Worker 30 0 obj
21*3ac0a46fSAndroid Build Coastguard Worker <</Length $1>>
22*3ac0a46fSAndroid Build Coastguard Worker stream
23*3ac0a46fSAndroid Build Coastguard Worker $2
24*3ac0a46fSAndroid Build Coastguard Worker endstream
25*3ac0a46fSAndroid Build Coastguard Worker endobj
26*3ac0a46fSAndroid Build Coastguard Worker trailer
27*3ac0a46fSAndroid Build Coastguard Worker <</Root 1 0 R /Size 31>>
28*3ac0a46fSAndroid Build Coastguard Worker %%EOF)";
29*3ac0a46fSAndroid Build Coastguard Worker 
30*3ac0a46fSAndroid Build Coastguard Worker // We define the bytes of the header explicitly to make the values more readable
31*3ac0a46fSAndroid Build Coastguard Worker constexpr uint8_t kSimplePdfHeader[] = {0x25, 0x50, 0x44, 0x46, 0x2d,
32*3ac0a46fSAndroid Build Coastguard Worker                                         0x31, 0x2e, 0x37, 0x0a, 0x25,
33*3ac0a46fSAndroid Build Coastguard Worker                                         0xa0, 0xf2, 0xa4, 0xf4, 0x0a};
34*3ac0a46fSAndroid Build Coastguard Worker 
35*3ac0a46fSAndroid Build Coastguard Worker constexpr char kCatalog[] = R""(<</AcroForm 2 0 R /Extensions
36*3ac0a46fSAndroid Build Coastguard Worker   <</ADBE <</BaseVersion /1.7 /ExtensionLevel 8>>>> /NeedsRendering true
37*3ac0a46fSAndroid Build Coastguard Worker   /Pages 3 0 R /Type /Catalog>>)"";
38*3ac0a46fSAndroid Build Coastguard Worker 
39*3ac0a46fSAndroid Build Coastguard Worker constexpr char kSimpleXfaObjWrapper[] = R""(<</XFA
40*3ac0a46fSAndroid Build Coastguard Worker   [(preamble) 5 0 R ($1) 6 0 R ($2) 7 0 R ($3) 8 0 R
41*3ac0a46fSAndroid Build Coastguard Worker   (postamble) 9 0 R]>>)"";
42*3ac0a46fSAndroid Build Coastguard Worker 
43*3ac0a46fSAndroid Build Coastguard Worker constexpr char kSimplePagesObj[] = "<</Count 1 /Kids [4 0 R] /Type /Pages>>";
44*3ac0a46fSAndroid Build Coastguard Worker constexpr char kSimplePageObj[] =
45*3ac0a46fSAndroid Build Coastguard Worker     "<</MediaBox [0 0 612 792] /Parent 3 0 R /Type /Page>>";
46*3ac0a46fSAndroid Build Coastguard Worker constexpr char kSimplePreamble[] =
47*3ac0a46fSAndroid Build Coastguard Worker     R""(<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/"
48*3ac0a46fSAndroid Build Coastguard Worker timeStamp="2021-12-14T14:14:14Z"
49*3ac0a46fSAndroid Build Coastguard Worker uuid="11111111-1ab1-11b1-aa1a-1aaaaaaa11a1">)"";
50*3ac0a46fSAndroid Build Coastguard Worker constexpr char kSimplePostamble[] = "</xdp:xdp>";
51*3ac0a46fSAndroid Build Coastguard Worker 
52*3ac0a46fSAndroid Build Coastguard Worker #endif  // TESTING_FUZZERS_PDF_FUZZER_TEMPLATES_H_
53