• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2020 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); you may not
4 // use this file except in compliance with the License. You may obtain a copy of
5 // the License at
6 //
7 //     https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11 // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12 // License for the specific language governing permissions and limitations under
13 // the License.
14 
15 // !!! GENERATED - DO NOT MODIFY !!!
16 // To update this file, use generate_test_values.py.
17 
18 #ifndef DICE_KNOWN_TEST_VALUES_H_
19 #define DICE_KNOWN_TEST_VALUES_H_
20 
21 #include <stdint.h>
22 
23 namespace dice {
24 namespace test {
25 
26 constexpr uint8_t kExpectedCdiAttest_ZeroInput[32] = {
27     0xfb, 0xfc, 0x67, 0x97, 0x71, 0x34, 0x2e, 0xea, 0xcb, 0x90, 0x86,
28     0x59, 0xce, 0x49, 0xd6, 0xb6, 0x3b, 0x45, 0x35, 0xda, 0x2c, 0x51,
29     0x43, 0x3d, 0x7f, 0x04, 0xef, 0xa6, 0x31, 0x9e, 0x0c, 0x19};
30 
31 constexpr uint8_t kExpectedCdiSeal_ZeroInput[32] = {
32     0x8f, 0xf8, 0xb2, 0x25, 0x71, 0x32, 0x5e, 0x7d, 0xef, 0xef, 0xbf,
33     0xea, 0x8d, 0xf1, 0xc9, 0xf3, 0x4b, 0xf4, 0xd9, 0xee, 0x03, 0xb7,
34     0x5b, 0x78, 0x82, 0x19, 0xc6, 0xb1, 0xef, 0x49, 0xbd, 0xc5};
35 
36 // $ openssl x509 -inform DER -noout -text -certopt ext_parse
37 // Certificate:
38 //     Data:
39 //         Version: 3 (0x2)
40 //         Serial Number:
41 //             67:c2:2a:88:59:06:2b:98:68:18:e8:e7:2b:0b:cd:9f:59:34:9c:89
42 //         Signature Algorithm: ED25519
43 //         Issuer: serialNumber = 7a06eee41b789f4863d86b8778b1a201a6fedd56
44 //         Validity
45 //             Not Before: Mar 22 23:59:59 2018 GMT
46 //             Not After : Dec 31 23:59:59 9999 GMT
47 //         Subject: serialNumber = 67c22a8859062b986818e8e72b0bcd9f59349c89
48 //         Subject Public Key Info:
49 //             Public Key Algorithm: ED25519
50 //                 ED25519 Public-Key:
51 //                 pub:
52 //                     0d:14:e5:de:29:2e:b1:c8:b3:1b:ea:e4:3a:b5:5d:
53 //                     8e:9d:c0:14:b7:3e:aa:83:b9:25:a0:78:8c:c6:2e:
54 //                     5c:8d
55 //         X509v3 extensions:
56 //             X509v3 Authority Key Identifier:
57 //                 keyid:7A:06:EE:E4:1B:78:9F:48:63:D8:6B:87:78:B1:A2:01:A6:FE:DD:56
58 //
59 //             X509v3 Subject Key Identifier:
60 //                 67:C2:2A:88:59:06:2B:98:68:18:E8:E7:2B:0B:CD:9F:59:34:9C:89
61 //             X509v3 Key Usage: critical
62 //                 Certificate Sign
63 //             X509v3 Basic Constraints: critical
64 //                 CA:TRUE
65 //             1.3.6.1.4.1.11129.2.1.24:
66 //     0:d=0  hl=3 l= 209 cons: SEQUENCE
67 //     3:d=1  hl=2 l=  66 cons:  cont [ 0 ]
68 //     5:d=2  hl=2 l=  64 prim:   OCTET STRING
69 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
70 //       0010 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
71 //       0020 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
72 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
73 //    71:d=1  hl=2 l=  66 cons:  cont [ 3 ]
74 //    73:d=2  hl=2 l=  64 prim:   OCTET STRING
75 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
76 //       0010 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
77 //       0020 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
78 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
79 //   139:d=1  hl=2 l=  66 cons:  cont [ 4 ]
80 //   141:d=2  hl=2 l=  64 prim:   OCTET STRING
81 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
82 //       0010 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
83 //       0020 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
84 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
85 //   207:d=1  hl=2 l=   3 cons:  cont [ 6 ]
86 //   209:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
87 //
88 //     Signature Algorithm: ED25519
89 //          ba:e1:ef:9f:c5:b6:88:be:4a:67:22:b4:47:44:50:25:b6:37:
90 //          68:8b:1a:29:27:9e:46:c6:d0:68:d8:6d:19:ed:50:55:ca:24:
91 //          41:71:a5:b5:37:0d:60:2b:85:08:f9:38:6c:95:c6:77:33:11:
92 //          a2:28:a5:49:5b:87:05:e4:e8:0d
93 constexpr uint8_t kExpectedX509Ed25519Cert_ZeroInput[635] = {
94     0x30, 0x82, 0x02, 0x77, 0x30, 0x82, 0x02, 0x29, 0xa0, 0x03, 0x02, 0x01,
95     0x02, 0x02, 0x14, 0x67, 0xc2, 0x2a, 0x88, 0x59, 0x06, 0x2b, 0x98, 0x68,
96     0x18, 0xe8, 0xe7, 0x2b, 0x0b, 0xcd, 0x9f, 0x59, 0x34, 0x9c, 0x89, 0x30,
97     0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f,
98     0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28, 0x37, 0x61, 0x30, 0x36, 0x65,
99     0x65, 0x65, 0x34, 0x31, 0x62, 0x37, 0x38, 0x39, 0x66, 0x34, 0x38, 0x36,
100     0x33, 0x64, 0x38, 0x36, 0x62, 0x38, 0x37, 0x37, 0x38, 0x62, 0x31, 0x61,
101     0x32, 0x30, 0x31, 0x61, 0x36, 0x66, 0x65, 0x64, 0x64, 0x35, 0x36, 0x30,
102     0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33, 0x32, 0x32, 0x32, 0x33, 0x35,
103     0x39, 0x35, 0x39, 0x5a, 0x18, 0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32,
104     0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31,
105     0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28, 0x36, 0x37,
106     0x63, 0x32, 0x32, 0x61, 0x38, 0x38, 0x35, 0x39, 0x30, 0x36, 0x32, 0x62,
107     0x39, 0x38, 0x36, 0x38, 0x31, 0x38, 0x65, 0x38, 0x65, 0x37, 0x32, 0x62,
108     0x30, 0x62, 0x63, 0x64, 0x39, 0x66, 0x35, 0x39, 0x33, 0x34, 0x39, 0x63,
109     0x38, 0x39, 0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x03,
110     0x21, 0x00, 0x0d, 0x14, 0xe5, 0xde, 0x29, 0x2e, 0xb1, 0xc8, 0xb3, 0x1b,
111     0xea, 0xe4, 0x3a, 0xb5, 0x5d, 0x8e, 0x9d, 0xc0, 0x14, 0xb7, 0x3e, 0xaa,
112     0x83, 0xb9, 0x25, 0xa0, 0x78, 0x8c, 0xc6, 0x2e, 0x5c, 0x8d, 0xa3, 0x82,
113     0x01, 0x4b, 0x30, 0x82, 0x01, 0x47, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
114     0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x7a, 0x06, 0xee, 0xe4, 0x1b,
115     0x78, 0x9f, 0x48, 0x63, 0xd8, 0x6b, 0x87, 0x78, 0xb1, 0xa2, 0x01, 0xa6,
116     0xfe, 0xdd, 0x56, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
117     0x04, 0x14, 0x67, 0xc2, 0x2a, 0x88, 0x59, 0x06, 0x2b, 0x98, 0x68, 0x18,
118     0xe8, 0xe7, 0x2b, 0x0b, 0xcd, 0x9f, 0x59, 0x34, 0x9c, 0x89, 0x30, 0x0e,
119     0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
120     0x02, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
121     0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x81, 0xe3, 0x06, 0x0a,
122     0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02, 0x01, 0x18, 0x04, 0x81,
123     0xd4, 0x30, 0x81, 0xd1, 0xa0, 0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00,
124     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
125     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
126     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
127     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
128     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
129     0xa3, 0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
130     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
131     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
132     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
133     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
134     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x42, 0x04, 0x40,
135     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
136     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
137     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
138     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
139     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140     0x00, 0x00, 0x00, 0x00, 0xa6, 0x03, 0x0a, 0x01, 0x00, 0x30, 0x05, 0x06,
141     0x03, 0x2b, 0x65, 0x70, 0x03, 0x41, 0x00, 0xba, 0xe1, 0xef, 0x9f, 0xc5,
142     0xb6, 0x88, 0xbe, 0x4a, 0x67, 0x22, 0xb4, 0x47, 0x44, 0x50, 0x25, 0xb6,
143     0x37, 0x68, 0x8b, 0x1a, 0x29, 0x27, 0x9e, 0x46, 0xc6, 0xd0, 0x68, 0xd8,
144     0x6d, 0x19, 0xed, 0x50, 0x55, 0xca, 0x24, 0x41, 0x71, 0xa5, 0xb5, 0x37,
145     0x0d, 0x60, 0x2b, 0x85, 0x08, 0xf9, 0x38, 0x6c, 0x95, 0xc6, 0x77, 0x33,
146     0x11, 0xa2, 0x28, 0xa5, 0x49, 0x5b, 0x87, 0x05, 0xe4, 0xe8, 0x0d};
147 
148 // $ openssl x509 -inform DER -noout -text -certopt ext_parse
149 // Certificate:
150 //     Data:
151 //         Version: 3 (0x2)
152 //         Serial Number:
153 //             7c:7d:c0:a3:c1:e7:8d:4e:68:bc:c1:a2:32:9e:f9:1c:a8:12:44:91
154 //         Signature Algorithm: ecdsa-with-SHA512
155 //         Issuer: serialNumber = 4c514d88db0f81d57beb96177e3d7ea4aa581e66
156 //         Validity
157 //             Not Before: Mar 22 23:59:59 2018 GMT
158 //             Not After : Dec 31 23:59:59 9999 GMT
159 //         Subject: serialNumber = 7c7dc0a3c1e78d4e68bcc1a2329ef91ca8124491
160 //         Subject Public Key Info:
161 //             Public Key Algorithm: id-ecPublicKey
162 //                 Public-Key: (256 bit)
163 //                 pub:
164 //                     04:4f:3b:4e:82:c4:5a:da:08:45:89:c2:19:7b:af:
165 //                     1f:37:6e:ac:40:e1:fd:49:b0:24:06:02:ae:c2:69:
166 //                     54:1c:6b:e7:eb:40:19:ab:55:c6:6b:c8:8b:b8:b4:
167 //                     69:ad:7e:e8:58:9e:07:d2:f8:bc:88:8e:b3:11:c2:
168 //                     df:97:3b:1b:4a
169 //                 ASN1 OID: prime256v1
170 //                 NIST CURVE: P-256
171 //         X509v3 extensions:
172 //             X509v3 Authority Key Identifier:
173 //                 keyid:4C:51:4D:88:DB:0F:81:D5:7B:EB:96:17:7E:3D:7E:A4:AA:58:1E:66
174 //
175 //             X509v3 Subject Key Identifier:
176 //                 7C:7D:C0:A3:C1:E7:8D:4E:68:BC:C1:A2:32:9E:F9:1C:A8:12:44:91
177 //             X509v3 Key Usage: critical
178 //                 Certificate Sign
179 //             X509v3 Basic Constraints: critical
180 //                 CA:TRUE
181 //             1.3.6.1.4.1.11129.2.1.24:
182 //     0:d=0  hl=3 l= 209 cons: SEQUENCE
183 //     3:d=1  hl=2 l=  66 cons:  cont [ 0 ]
184 //     5:d=2  hl=2 l=  64 prim:   OCTET STRING
185 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
186 //       0010 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
187 //       0020 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
188 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
189 //    71:d=1  hl=2 l=  66 cons:  cont [ 3 ]
190 //    73:d=2  hl=2 l=  64 prim:   OCTET STRING
191 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
192 //       0010 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
193 //       0020 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
194 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
195 //   139:d=1  hl=2 l=  66 cons:  cont [ 4 ]
196 //   141:d=2  hl=2 l=  64 prim:   OCTET STRING
197 //       0000 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
198 //       0010 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
199 //       0020 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
200 //       0030 - 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
201 //   207:d=1  hl=2 l=   3 cons:  cont [ 6 ]
202 //   209:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
203 //
204 //     Signature Algorithm: ecdsa-with-SHA512
205 //          30:46:02:21:00:b9:97:04:aa:8f:7f:65:d6:da:7c:3b:35:d8:
206 //          6c:1f:93:c9:e2:ae:48:69:dd:0d:82:b9:0a:e1:f4:42:02:35:
207 //          b0:02:21:00:9b:a9:cf:3c:5f:2b:88:fd:4f:e6:97:2b:b4:c8:
208 //          6b:28:91:75:c0:49:17:48:df:47:2f:80:fa:8c:5d:3f:a9:82
209 constexpr uint8_t kExpectedX509P256Cert_ZeroInput[704] = {
210     0x30, 0x82, 0x02, 0xbc, 0x30, 0x82, 0x02, 0x5f, 0xa0, 0x03, 0x02, 0x01,
211     0x02, 0x02, 0x14, 0x7c, 0x7d, 0xc0, 0xa3, 0xc1, 0xe7, 0x8d, 0x4e, 0x68,
212     0xbc, 0xc1, 0xa2, 0x32, 0x9e, 0xf9, 0x1c, 0xa8, 0x12, 0x44, 0x91, 0x30,
213     0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x05,
214     0x00, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05,
215     0x13, 0x28, 0x34, 0x63, 0x35, 0x31, 0x34, 0x64, 0x38, 0x38, 0x64, 0x62,
216     0x30, 0x66, 0x38, 0x31, 0x64, 0x35, 0x37, 0x62, 0x65, 0x62, 0x39, 0x36,
217     0x31, 0x37, 0x37, 0x65, 0x33, 0x64, 0x37, 0x65, 0x61, 0x34, 0x61, 0x61,
218     0x35, 0x38, 0x31, 0x65, 0x36, 0x36, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38,
219     0x30, 0x33, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x18,
220     0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
221     0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
222     0x55, 0x04, 0x05, 0x13, 0x28, 0x37, 0x63, 0x37, 0x64, 0x63, 0x30, 0x61,
223     0x33, 0x63, 0x31, 0x65, 0x37, 0x38, 0x64, 0x34, 0x65, 0x36, 0x38, 0x62,
224     0x63, 0x63, 0x31, 0x61, 0x32, 0x33, 0x32, 0x39, 0x65, 0x66, 0x39, 0x31,
225     0x63, 0x61, 0x38, 0x31, 0x32, 0x34, 0x34, 0x39, 0x31, 0x30, 0x59, 0x30,
226     0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08,
227     0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,
228     0x4f, 0x3b, 0x4e, 0x82, 0xc4, 0x5a, 0xda, 0x08, 0x45, 0x89, 0xc2, 0x19,
229     0x7b, 0xaf, 0x1f, 0x37, 0x6e, 0xac, 0x40, 0xe1, 0xfd, 0x49, 0xb0, 0x24,
230     0x06, 0x02, 0xae, 0xc2, 0x69, 0x54, 0x1c, 0x6b, 0xe7, 0xeb, 0x40, 0x19,
231     0xab, 0x55, 0xc6, 0x6b, 0xc8, 0x8b, 0xb8, 0xb4, 0x69, 0xad, 0x7e, 0xe8,
232     0x58, 0x9e, 0x07, 0xd2, 0xf8, 0xbc, 0x88, 0x8e, 0xb3, 0x11, 0xc2, 0xdf,
233     0x97, 0x3b, 0x1b, 0x4a, 0xa3, 0x82, 0x01, 0x4b, 0x30, 0x82, 0x01, 0x47,
234     0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
235     0x14, 0x4c, 0x51, 0x4d, 0x88, 0xdb, 0x0f, 0x81, 0xd5, 0x7b, 0xeb, 0x96,
236     0x17, 0x7e, 0x3d, 0x7e, 0xa4, 0xaa, 0x58, 0x1e, 0x66, 0x30, 0x1d, 0x06,
237     0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x7c, 0x7d, 0xc0, 0xa3,
238     0xc1, 0xe7, 0x8d, 0x4e, 0x68, 0xbc, 0xc1, 0xa2, 0x32, 0x9e, 0xf9, 0x1c,
239     0xa8, 0x12, 0x44, 0x91, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
240     0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0f, 0x06, 0x03,
241     0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01,
242     0xff, 0x30, 0x81, 0xe3, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6,
243     0x79, 0x02, 0x01, 0x18, 0x04, 0x81, 0xd4, 0x30, 0x81, 0xd1, 0xa0, 0x42,
244     0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
245     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
246     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
247     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
249     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x42, 0x04, 0x40, 0x00, 0x00,
250     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
251     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
252     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
253     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
254     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255     0x00, 0x00, 0xa4, 0x42, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
256     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
257     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
258     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
259     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
260     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x03,
261     0x0a, 0x01, 0x00, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,
262     0x04, 0x03, 0x04, 0x05, 0x00, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 0x21,
263     0x00, 0xb9, 0x97, 0x04, 0xaa, 0x8f, 0x7f, 0x65, 0xd6, 0xda, 0x7c, 0x3b,
264     0x35, 0xd8, 0x6c, 0x1f, 0x93, 0xc9, 0xe2, 0xae, 0x48, 0x69, 0xdd, 0x0d,
265     0x82, 0xb9, 0x0a, 0xe1, 0xf4, 0x42, 0x02, 0x35, 0xb0, 0x02, 0x21, 0x00,
266     0x9b, 0xa9, 0xcf, 0x3c, 0x5f, 0x2b, 0x88, 0xfd, 0x4f, 0xe6, 0x97, 0x2b,
267     0xb4, 0xc8, 0x6b, 0x28, 0x91, 0x75, 0xc0, 0x49, 0x17, 0x48, 0xdf, 0x47,
268     0x2f, 0x80, 0xfa, 0x8c, 0x5d, 0x3f, 0xa9, 0x82};
269 
270 constexpr uint8_t kExpectedCborEd25519Cert_ZeroInput[441] = {
271     0x84, 0x43, 0xa1, 0x01, 0x27, 0xa0, 0x59, 0x01, 0x6e, 0xa8, 0x01, 0x78,
272     0x28, 0x37, 0x61, 0x30, 0x36, 0x65, 0x65, 0x65, 0x34, 0x31, 0x62, 0x37,
273     0x38, 0x39, 0x66, 0x34, 0x38, 0x36, 0x33, 0x64, 0x38, 0x36, 0x62, 0x38,
274     0x37, 0x37, 0x38, 0x62, 0x31, 0x61, 0x32, 0x30, 0x31, 0x61, 0x36, 0x66,
275     0x65, 0x64, 0x64, 0x35, 0x36, 0x02, 0x78, 0x28, 0x36, 0x37, 0x63, 0x32,
276     0x32, 0x61, 0x38, 0x38, 0x35, 0x39, 0x30, 0x36, 0x32, 0x62, 0x39, 0x38,
277     0x36, 0x38, 0x31, 0x38, 0x65, 0x38, 0x65, 0x37, 0x32, 0x62, 0x30, 0x62,
278     0x63, 0x64, 0x39, 0x66, 0x35, 0x39, 0x33, 0x34, 0x39, 0x63, 0x38, 0x39,
279     0x3a, 0x00, 0x47, 0x44, 0x50, 0x58, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
280     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
281     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
282     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
283     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
284     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a,
285     0x00, 0x47, 0x44, 0x53, 0x58, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
286     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
287     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
288     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
289     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00,
291     0x47, 0x44, 0x54, 0x58, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
292     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
293     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
294     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
295     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
296     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x47,
297     0x44, 0x56, 0x41, 0x00, 0x3a, 0x00, 0x47, 0x44, 0x57, 0x58, 0x2d, 0xa5,
298     0x01, 0x01, 0x03, 0x27, 0x04, 0x81, 0x02, 0x20, 0x06, 0x21, 0x58, 0x20,
299     0x0d, 0x14, 0xe5, 0xde, 0x29, 0x2e, 0xb1, 0xc8, 0xb3, 0x1b, 0xea, 0xe4,
300     0x3a, 0xb5, 0x5d, 0x8e, 0x9d, 0xc0, 0x14, 0xb7, 0x3e, 0xaa, 0x83, 0xb9,
301     0x25, 0xa0, 0x78, 0x8c, 0xc6, 0x2e, 0x5c, 0x8d, 0x3a, 0x00, 0x47, 0x44,
302     0x58, 0x41, 0x20, 0x58, 0x40, 0xf9, 0x9b, 0xd6, 0xdb, 0xc1, 0x24, 0x71,
303     0x53, 0xc1, 0x0f, 0x88, 0x1c, 0x0f, 0x5f, 0x33, 0xbf, 0x02, 0x23, 0xd2,
304     0x22, 0x32, 0x71, 0x24, 0x41, 0xb1, 0x28, 0xd3, 0x83, 0xde, 0x32, 0x1b,
305     0x67, 0xc0, 0x9a, 0x1f, 0x45, 0x91, 0xc4, 0x20, 0xdc, 0xc9, 0xd6, 0x21,
306     0x21, 0xec, 0xa3, 0xd3, 0x89, 0x7a, 0x24, 0x4d, 0xcb, 0xe1, 0x1a, 0x0f,
307     0x9a, 0xb7, 0x9f, 0x67, 0x09, 0x3f, 0xee, 0x56, 0x0f};
308 
309 constexpr uint8_t kExpectedCborP256Cert_ZeroInput[0] = {};
310 
311 constexpr uint8_t kExpectedCdiAttest_HashOnlyInput[32] = {
312     0x08, 0x4e, 0xf4, 0x06, 0xc6, 0x9b, 0xa7, 0x4b, 0x1e, 0x24, 0xd0,
313     0x62, 0xf9, 0xab, 0x8a, 0x8d, 0x89, 0xda, 0x6e, 0x03, 0xe4, 0xc6,
314     0xb1, 0x22, 0x85, 0x7c, 0xf7, 0x4f, 0xd6, 0xa4, 0xbe, 0xe5};
315 
316 constexpr uint8_t kExpectedCdiSeal_HashOnlyInput[32] = {
317     0x90, 0xc9, 0xa2, 0x86, 0x5d, 0xf4, 0xfa, 0x58, 0x30, 0x64, 0x3d,
318     0x6c, 0xae, 0xf0, 0x7c, 0x76, 0xae, 0xaa, 0x15, 0x61, 0x98, 0x28,
319     0xf1, 0xbd, 0xa7, 0xf7, 0x44, 0x82, 0xe2, 0xf0, 0xae, 0x1e};
320 
321 // $ openssl x509 -inform DER -noout -text -certopt ext_parse
322 // Certificate:
323 //     Data:
324 //         Version: 3 (0x2)
325 //         Serial Number:
326 //             0d:04:0e:2f:46:00:52:a5:31:1c:1b:91:db:f9:b4:40:83:32:ec:29
327 //         Signature Algorithm: ED25519
328 //         Issuer: serialNumber = 475708eb3b426f386cfce8f3baf5439046278dfa
329 //         Validity
330 //             Not Before: Mar 22 23:59:59 2018 GMT
331 //             Not After : Dec 31 23:59:59 9999 GMT
332 //         Subject: serialNumber = 0d040e2f460052a5311c1b91dbf9b4408332ec29
333 //         Subject Public Key Info:
334 //             Public Key Algorithm: ED25519
335 //                 ED25519 Public-Key:
336 //                 pub:
337 //                     5a:39:49:67:8c:d3:0e:88:ab:1c:dd:f7:15:55:d5:
338 //                     bf:d3:f0:b8:47:25:a9:58:e1:b9:da:4e:b5:f1:38:
339 //                     9a:5a
340 //         X509v3 extensions:
341 //             X509v3 Authority Key Identifier:
342 //                 keyid:47:57:08:EB:3B:42:6F:38:6C:FC:E8:F3:BA:F5:43:90:46:27:8D:FA
343 //
344 //             X509v3 Subject Key Identifier:
345 //                 0D:04:0E:2F:46:00:52:A5:31:1C:1B:91:DB:F9:B4:40:83:32:EC:29
346 //             X509v3 Key Usage: critical
347 //                 Certificate Sign
348 //             X509v3 Basic Constraints: critical
349 //                 CA:TRUE
350 //             1.3.6.1.4.1.11129.2.1.24:
351 //     0:d=0  hl=3 l= 209 cons: SEQUENCE
352 //     3:d=1  hl=2 l=  66 cons:  cont [ 0 ]
353 //     5:d=2  hl=2 l=  64 prim:   OCTET STRING
354 //       0000 - b7 d4 0c cb 22 5b a5 78-8f 98 ff 9e 86 93 75 f6 ...."[.x......u.
355 //       0010 - 90 ac 50 cf 9e bd 0a fe-b1 d9 c2 4e 52 19 e4 de ..P........NR...
356 //       0020 - 29 e5 61 f3 f9 29 e8 40-87 7a dd 17 48 05 89 7e ).a..).@.z..H..~
357 //       0030 - 2b cb 54 79 cc 66 f1 b3-13 29 0c 68 96 b2 bb 8f +.Ty.f...).h....
358 //    71:d=1  hl=2 l=  66 cons:  cont [ 3 ]
359 //    73:d=2  hl=2 l=  64 prim:   OCTET STRING
360 //       0000 - cf 99 7b ea 2e 2c 86 a0-7b 52 09 c8 b5 3c 41 12 ..{..,..{R...<A.
361 //       0010 - 29 28 1a 82 0d 49 9c 95-cb 0b 1b 31 1a 01 9c f2 )(...I.....1....
362 //       0020 - 66 1a d9 b5 ce 52 59 cb-f4 81 9b 21 af 32 5d 07 f....RY....!.2].
363 //       0030 - a0 1e 91 59 6f 06 55 10-8e 2e 08 88 52 28 86 7f ...Yo.U.....R(..
364 //   139:d=1  hl=2 l=  66 cons:  cont [ 4 ]
365 //   141:d=2  hl=2 l=  64 prim:   OCTET STRING
366 //       0000 - 22 52 60 17 ef 2c a1 f6-cb ed 39 d5 e2 aa 65 20 "R`..,....9...e
367 //       0010 - fb ad 82 93 e5 78 23 22-97 c1 6e 6a 4e 36 d7 6a .....x#"..njN6.j
368 //       0020 - 61 39 08 21 d4 fe 92 5f-36 2d eb 5d bb 32 8b e3 a9.!..._6-.].2..
369 //       0030 - 94 4f be 1b 21 f9 cc 23-73 41 b6 b9 b6 98 d0 bc .O..!..#sA......
370 //   207:d=1  hl=2 l=   3 cons:  cont [ 6 ]
371 //   209:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
372 //
373 //     Signature Algorithm: ED25519
374 //          2d:26:2d:e5:ad:8f:4a:d2:78:e3:38:fe:bc:4f:60:67:d8:c3:
375 //          20:4b:f1:19:e1:e7:48:c5:9f:51:01:57:62:f1:0d:75:d2:6d:
376 //          d0:1b:0b:a4:32:f6:55:5a:55:b0:86:c0:e9:f9:6a:35:7c:5e:
377 //          40:68:5f:05:ef:f6:52:a7:4c:05
378 constexpr uint8_t kExpectedX509Ed25519Cert_HashOnlyInput[635] = {
379     0x30, 0x82, 0x02, 0x77, 0x30, 0x82, 0x02, 0x29, 0xa0, 0x03, 0x02, 0x01,
380     0x02, 0x02, 0x14, 0x0d, 0x04, 0x0e, 0x2f, 0x46, 0x00, 0x52, 0xa5, 0x31,
381     0x1c, 0x1b, 0x91, 0xdb, 0xf9, 0xb4, 0x40, 0x83, 0x32, 0xec, 0x29, 0x30,
382     0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f,
383     0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28, 0x34, 0x37, 0x35, 0x37, 0x30,
384     0x38, 0x65, 0x62, 0x33, 0x62, 0x34, 0x32, 0x36, 0x66, 0x33, 0x38, 0x36,
385     0x63, 0x66, 0x63, 0x65, 0x38, 0x66, 0x33, 0x62, 0x61, 0x66, 0x35, 0x34,
386     0x33, 0x39, 0x30, 0x34, 0x36, 0x32, 0x37, 0x38, 0x64, 0x66, 0x61, 0x30,
387     0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33, 0x32, 0x32, 0x32, 0x33, 0x35,
388     0x39, 0x35, 0x39, 0x5a, 0x18, 0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32,
389     0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31,
390     0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28, 0x30, 0x64,
391     0x30, 0x34, 0x30, 0x65, 0x32, 0x66, 0x34, 0x36, 0x30, 0x30, 0x35, 0x32,
392     0x61, 0x35, 0x33, 0x31, 0x31, 0x63, 0x31, 0x62, 0x39, 0x31, 0x64, 0x62,
393     0x66, 0x39, 0x62, 0x34, 0x34, 0x30, 0x38, 0x33, 0x33, 0x32, 0x65, 0x63,
394     0x32, 0x39, 0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x03,
395     0x21, 0x00, 0x5a, 0x39, 0x49, 0x67, 0x8c, 0xd3, 0x0e, 0x88, 0xab, 0x1c,
396     0xdd, 0xf7, 0x15, 0x55, 0xd5, 0xbf, 0xd3, 0xf0, 0xb8, 0x47, 0x25, 0xa9,
397     0x58, 0xe1, 0xb9, 0xda, 0x4e, 0xb5, 0xf1, 0x38, 0x9a, 0x5a, 0xa3, 0x82,
398     0x01, 0x4b, 0x30, 0x82, 0x01, 0x47, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
399     0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x47, 0x57, 0x08, 0xeb, 0x3b,
400     0x42, 0x6f, 0x38, 0x6c, 0xfc, 0xe8, 0xf3, 0xba, 0xf5, 0x43, 0x90, 0x46,
401     0x27, 0x8d, 0xfa, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
402     0x04, 0x14, 0x0d, 0x04, 0x0e, 0x2f, 0x46, 0x00, 0x52, 0xa5, 0x31, 0x1c,
403     0x1b, 0x91, 0xdb, 0xf9, 0xb4, 0x40, 0x83, 0x32, 0xec, 0x29, 0x30, 0x0e,
404     0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
405     0x02, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
406     0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x81, 0xe3, 0x06, 0x0a,
407     0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02, 0x01, 0x18, 0x04, 0x81,
408     0xd4, 0x30, 0x81, 0xd1, 0xa0, 0x42, 0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb,
409     0x22, 0x5b, 0xa5, 0x78, 0x8f, 0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6,
410     0x90, 0xac, 0x50, 0xcf, 0x9e, 0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e,
411     0x52, 0x19, 0xe4, 0xde, 0x29, 0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40,
412     0x87, 0x7a, 0xdd, 0x17, 0x48, 0x05, 0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79,
413     0xcc, 0x66, 0xf1, 0xb3, 0x13, 0x29, 0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f,
414     0xa3, 0x42, 0x04, 0x40, 0xcf, 0x99, 0x7b, 0xea, 0x2e, 0x2c, 0x86, 0xa0,
415     0x7b, 0x52, 0x09, 0xc8, 0xb5, 0x3c, 0x41, 0x12, 0x29, 0x28, 0x1a, 0x82,
416     0x0d, 0x49, 0x9c, 0x95, 0xcb, 0x0b, 0x1b, 0x31, 0x1a, 0x01, 0x9c, 0xf2,
417     0x66, 0x1a, 0xd9, 0xb5, 0xce, 0x52, 0x59, 0xcb, 0xf4, 0x81, 0x9b, 0x21,
418     0xaf, 0x32, 0x5d, 0x07, 0xa0, 0x1e, 0x91, 0x59, 0x6f, 0x06, 0x55, 0x10,
419     0x8e, 0x2e, 0x08, 0x88, 0x52, 0x28, 0x86, 0x7f, 0xa4, 0x42, 0x04, 0x40,
420     0x22, 0x52, 0x60, 0x17, 0xef, 0x2c, 0xa1, 0xf6, 0xcb, 0xed, 0x39, 0xd5,
421     0xe2, 0xaa, 0x65, 0x20, 0xfb, 0xad, 0x82, 0x93, 0xe5, 0x78, 0x23, 0x22,
422     0x97, 0xc1, 0x6e, 0x6a, 0x4e, 0x36, 0xd7, 0x6a, 0x61, 0x39, 0x08, 0x21,
423     0xd4, 0xfe, 0x92, 0x5f, 0x36, 0x2d, 0xeb, 0x5d, 0xbb, 0x32, 0x8b, 0xe3,
424     0x94, 0x4f, 0xbe, 0x1b, 0x21, 0xf9, 0xcc, 0x23, 0x73, 0x41, 0xb6, 0xb9,
425     0xb6, 0x98, 0xd0, 0xbc, 0xa6, 0x03, 0x0a, 0x01, 0x00, 0x30, 0x05, 0x06,
426     0x03, 0x2b, 0x65, 0x70, 0x03, 0x41, 0x00, 0x2d, 0x26, 0x2d, 0xe5, 0xad,
427     0x8f, 0x4a, 0xd2, 0x78, 0xe3, 0x38, 0xfe, 0xbc, 0x4f, 0x60, 0x67, 0xd8,
428     0xc3, 0x20, 0x4b, 0xf1, 0x19, 0xe1, 0xe7, 0x48, 0xc5, 0x9f, 0x51, 0x01,
429     0x57, 0x62, 0xf1, 0x0d, 0x75, 0xd2, 0x6d, 0xd0, 0x1b, 0x0b, 0xa4, 0x32,
430     0xf6, 0x55, 0x5a, 0x55, 0xb0, 0x86, 0xc0, 0xe9, 0xf9, 0x6a, 0x35, 0x7c,
431     0x5e, 0x40, 0x68, 0x5f, 0x05, 0xef, 0xf6, 0x52, 0xa7, 0x4c, 0x05};
432 
433 // $ openssl x509 -inform DER -noout -text -certopt ext_parse
434 // Certificate:
435 //     Data:
436 //         Version: 3 (0x2)
437 //         Serial Number:
438 //             68:49:58:d9:ae:a7:2e:bf:7c:06:af:20:03:b6:44:47:82:4a:62:71
439 //         Signature Algorithm: ecdsa-with-SHA512
440 //         Issuer: serialNumber = 1be5687933db3d9cd5fca729e81d6685465a7bf1
441 //         Validity
442 //             Not Before: Mar 22 23:59:59 2018 GMT
443 //             Not After : Dec 31 23:59:59 9999 GMT
444 //         Subject: serialNumber = 684958d9aea72ebf7c06af2003b64447824a6271
445 //         Subject Public Key Info:
446 //             Public Key Algorithm: id-ecPublicKey
447 //                 Public-Key: (256 bit)
448 //                 pub:
449 //                     04:fe:9d:b2:f9:28:09:c3:04:12:85:dc:d3:70:6f:
450 //                     22:1c:72:b6:c4:4f:de:93:ee:fd:fb:6d:57:18:fc:
451 //                     8f:6f:0b:09:1a:19:ea:10:7e:a9:38:f4:45:33:c1:
452 //                     66:5b:bc:fc:0a:6e:98:99:72:88:c1:ad:0e:15:c2:
453 //                     85:77:75:00:0b
454 //                 ASN1 OID: prime256v1
455 //                 NIST CURVE: P-256
456 //         X509v3 extensions:
457 //             X509v3 Authority Key Identifier:
458 //                 keyid:1B:E5:68:79:33:DB:3D:9C:D5:FC:A7:29:E8:1D:66:85:46:5A:7B:F1
459 //
460 //             X509v3 Subject Key Identifier:
461 //                 68:49:58:D9:AE:A7:2E:BF:7C:06:AF:20:03:B6:44:47:82:4A:62:71
462 //             X509v3 Key Usage: critical
463 //                 Certificate Sign
464 //             X509v3 Basic Constraints: critical
465 //                 CA:TRUE
466 //             1.3.6.1.4.1.11129.2.1.24:
467 //     0:d=0  hl=3 l= 209 cons: SEQUENCE
468 //     3:d=1  hl=2 l=  66 cons:  cont [ 0 ]
469 //     5:d=2  hl=2 l=  64 prim:   OCTET STRING
470 //       0000 - b7 d4 0c cb 22 5b a5 78-8f 98 ff 9e 86 93 75 f6 ...."[.x......u.
471 //       0010 - 90 ac 50 cf 9e bd 0a fe-b1 d9 c2 4e 52 19 e4 de ..P........NR...
472 //       0020 - 29 e5 61 f3 f9 29 e8 40-87 7a dd 17 48 05 89 7e ).a..).@.z..H..~
473 //       0030 - 2b cb 54 79 cc 66 f1 b3-13 29 0c 68 96 b2 bb 8f +.Ty.f...).h....
474 //    71:d=1  hl=2 l=  66 cons:  cont [ 3 ]
475 //    73:d=2  hl=2 l=  64 prim:   OCTET STRING
476 //       0000 - cf 99 7b ea 2e 2c 86 a0-7b 52 09 c8 b5 3c 41 12 ..{..,..{R...<A.
477 //       0010 - 29 28 1a 82 0d 49 9c 95-cb 0b 1b 31 1a 01 9c f2 )(...I.....1....
478 //       0020 - 66 1a d9 b5 ce 52 59 cb-f4 81 9b 21 af 32 5d 07 f....RY....!.2].
479 //       0030 - a0 1e 91 59 6f 06 55 10-8e 2e 08 88 52 28 86 7f ...Yo.U.....R(..
480 //   139:d=1  hl=2 l=  66 cons:  cont [ 4 ]
481 //   141:d=2  hl=2 l=  64 prim:   OCTET STRING
482 //       0000 - 22 52 60 17 ef 2c a1 f6-cb ed 39 d5 e2 aa 65 20 "R`..,....9...e
483 //       0010 - fb ad 82 93 e5 78 23 22-97 c1 6e 6a 4e 36 d7 6a .....x#"..njN6.j
484 //       0020 - 61 39 08 21 d4 fe 92 5f-36 2d eb 5d bb 32 8b e3 a9.!..._6-.].2..
485 //       0030 - 94 4f be 1b 21 f9 cc 23-73 41 b6 b9 b6 98 d0 bc .O..!..#sA......
486 //   207:d=1  hl=2 l=   3 cons:  cont [ 6 ]
487 //   209:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
488 //
489 //     Signature Algorithm: ecdsa-with-SHA512
490 //          30:45:02:21:00:a8:1f:9a:1c:bd:6e:f7:a1:6c:4c:a8:98:b3:
491 //          c9:c7:48:8b:2a:aa:29:37:35:83:8a:e3:64:2b:f2:e2:e2:a1:
492 //          44:02:20:5e:80:29:7c:a9:7e:8c:44:3d:01:f7:ea:bd:8a:1f:
493 //          eb:e8:f6:92:43:03:16:e6:a9:5d:e7:26:42:f4:9b:6e:54
494 constexpr uint8_t kExpectedX509P256Cert_HashOnlyInput[703] = {
495     0x30, 0x82, 0x02, 0xbb, 0x30, 0x82, 0x02, 0x5f, 0xa0, 0x03, 0x02, 0x01,
496     0x02, 0x02, 0x14, 0x68, 0x49, 0x58, 0xd9, 0xae, 0xa7, 0x2e, 0xbf, 0x7c,
497     0x06, 0xaf, 0x20, 0x03, 0xb6, 0x44, 0x47, 0x82, 0x4a, 0x62, 0x71, 0x30,
498     0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x05,
499     0x00, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05,
500     0x13, 0x28, 0x31, 0x62, 0x65, 0x35, 0x36, 0x38, 0x37, 0x39, 0x33, 0x33,
501     0x64, 0x62, 0x33, 0x64, 0x39, 0x63, 0x64, 0x35, 0x66, 0x63, 0x61, 0x37,
502     0x32, 0x39, 0x65, 0x38, 0x31, 0x64, 0x36, 0x36, 0x38, 0x35, 0x34, 0x36,
503     0x35, 0x61, 0x37, 0x62, 0x66, 0x31, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38,
504     0x30, 0x33, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x18,
505     0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
506     0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
507     0x55, 0x04, 0x05, 0x13, 0x28, 0x36, 0x38, 0x34, 0x39, 0x35, 0x38, 0x64,
508     0x39, 0x61, 0x65, 0x61, 0x37, 0x32, 0x65, 0x62, 0x66, 0x37, 0x63, 0x30,
509     0x36, 0x61, 0x66, 0x32, 0x30, 0x30, 0x33, 0x62, 0x36, 0x34, 0x34, 0x34,
510     0x37, 0x38, 0x32, 0x34, 0x61, 0x36, 0x32, 0x37, 0x31, 0x30, 0x59, 0x30,
511     0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08,
512     0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,
513     0xfe, 0x9d, 0xb2, 0xf9, 0x28, 0x09, 0xc3, 0x04, 0x12, 0x85, 0xdc, 0xd3,
514     0x70, 0x6f, 0x22, 0x1c, 0x72, 0xb6, 0xc4, 0x4f, 0xde, 0x93, 0xee, 0xfd,
515     0xfb, 0x6d, 0x57, 0x18, 0xfc, 0x8f, 0x6f, 0x0b, 0x09, 0x1a, 0x19, 0xea,
516     0x10, 0x7e, 0xa9, 0x38, 0xf4, 0x45, 0x33, 0xc1, 0x66, 0x5b, 0xbc, 0xfc,
517     0x0a, 0x6e, 0x98, 0x99, 0x72, 0x88, 0xc1, 0xad, 0x0e, 0x15, 0xc2, 0x85,
518     0x77, 0x75, 0x00, 0x0b, 0xa3, 0x82, 0x01, 0x4b, 0x30, 0x82, 0x01, 0x47,
519     0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
520     0x14, 0x1b, 0xe5, 0x68, 0x79, 0x33, 0xdb, 0x3d, 0x9c, 0xd5, 0xfc, 0xa7,
521     0x29, 0xe8, 0x1d, 0x66, 0x85, 0x46, 0x5a, 0x7b, 0xf1, 0x30, 0x1d, 0x06,
522     0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x68, 0x49, 0x58, 0xd9,
523     0xae, 0xa7, 0x2e, 0xbf, 0x7c, 0x06, 0xaf, 0x20, 0x03, 0xb6, 0x44, 0x47,
524     0x82, 0x4a, 0x62, 0x71, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
525     0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0f, 0x06, 0x03,
526     0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01,
527     0xff, 0x30, 0x81, 0xe3, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6,
528     0x79, 0x02, 0x01, 0x18, 0x04, 0x81, 0xd4, 0x30, 0x81, 0xd1, 0xa0, 0x42,
529     0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22, 0x5b, 0xa5, 0x78, 0x8f, 0x98,
530     0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90, 0xac, 0x50, 0xcf, 0x9e, 0xbd,
531     0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52, 0x19, 0xe4, 0xde, 0x29, 0xe5,
532     0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87, 0x7a, 0xdd, 0x17, 0x48, 0x05,
533     0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79, 0xcc, 0x66, 0xf1, 0xb3, 0x13, 0x29,
534     0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f, 0xa3, 0x42, 0x04, 0x40, 0xcf, 0x99,
535     0x7b, 0xea, 0x2e, 0x2c, 0x86, 0xa0, 0x7b, 0x52, 0x09, 0xc8, 0xb5, 0x3c,
536     0x41, 0x12, 0x29, 0x28, 0x1a, 0x82, 0x0d, 0x49, 0x9c, 0x95, 0xcb, 0x0b,
537     0x1b, 0x31, 0x1a, 0x01, 0x9c, 0xf2, 0x66, 0x1a, 0xd9, 0xb5, 0xce, 0x52,
538     0x59, 0xcb, 0xf4, 0x81, 0x9b, 0x21, 0xaf, 0x32, 0x5d, 0x07, 0xa0, 0x1e,
539     0x91, 0x59, 0x6f, 0x06, 0x55, 0x10, 0x8e, 0x2e, 0x08, 0x88, 0x52, 0x28,
540     0x86, 0x7f, 0xa4, 0x42, 0x04, 0x40, 0x22, 0x52, 0x60, 0x17, 0xef, 0x2c,
541     0xa1, 0xf6, 0xcb, 0xed, 0x39, 0xd5, 0xe2, 0xaa, 0x65, 0x20, 0xfb, 0xad,
542     0x82, 0x93, 0xe5, 0x78, 0x23, 0x22, 0x97, 0xc1, 0x6e, 0x6a, 0x4e, 0x36,
543     0xd7, 0x6a, 0x61, 0x39, 0x08, 0x21, 0xd4, 0xfe, 0x92, 0x5f, 0x36, 0x2d,
544     0xeb, 0x5d, 0xbb, 0x32, 0x8b, 0xe3, 0x94, 0x4f, 0xbe, 0x1b, 0x21, 0xf9,
545     0xcc, 0x23, 0x73, 0x41, 0xb6, 0xb9, 0xb6, 0x98, 0xd0, 0xbc, 0xa6, 0x03,
546     0x0a, 0x01, 0x00, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d,
547     0x04, 0x03, 0x04, 0x05, 0x00, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x21,
548     0x00, 0xa8, 0x1f, 0x9a, 0x1c, 0xbd, 0x6e, 0xf7, 0xa1, 0x6c, 0x4c, 0xa8,
549     0x98, 0xb3, 0xc9, 0xc7, 0x48, 0x8b, 0x2a, 0xaa, 0x29, 0x37, 0x35, 0x83,
550     0x8a, 0xe3, 0x64, 0x2b, 0xf2, 0xe2, 0xe2, 0xa1, 0x44, 0x02, 0x20, 0x5e,
551     0x80, 0x29, 0x7c, 0xa9, 0x7e, 0x8c, 0x44, 0x3d, 0x01, 0xf7, 0xea, 0xbd,
552     0x8a, 0x1f, 0xeb, 0xe8, 0xf6, 0x92, 0x43, 0x03, 0x16, 0xe6, 0xa9, 0x5d,
553     0xe7, 0x26, 0x42, 0xf4, 0x9b, 0x6e, 0x54};
554 
555 constexpr uint8_t kExpectedCborEd25519Cert_HashOnlyInput[441] = {
556     0x84, 0x43, 0xa1, 0x01, 0x27, 0xa0, 0x59, 0x01, 0x6e, 0xa8, 0x01, 0x78,
557     0x28, 0x34, 0x37, 0x35, 0x37, 0x30, 0x38, 0x65, 0x62, 0x33, 0x62, 0x34,
558     0x32, 0x36, 0x66, 0x33, 0x38, 0x36, 0x63, 0x66, 0x63, 0x65, 0x38, 0x66,
559     0x33, 0x62, 0x61, 0x66, 0x35, 0x34, 0x33, 0x39, 0x30, 0x34, 0x36, 0x32,
560     0x37, 0x38, 0x64, 0x66, 0x61, 0x02, 0x78, 0x28, 0x30, 0x64, 0x30, 0x34,
561     0x30, 0x65, 0x32, 0x66, 0x34, 0x36, 0x30, 0x30, 0x35, 0x32, 0x61, 0x35,
562     0x33, 0x31, 0x31, 0x63, 0x31, 0x62, 0x39, 0x31, 0x64, 0x62, 0x66, 0x39,
563     0x62, 0x34, 0x34, 0x30, 0x38, 0x33, 0x33, 0x32, 0x65, 0x63, 0x32, 0x39,
564     0x3a, 0x00, 0x47, 0x44, 0x50, 0x58, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22,
565     0x5b, 0xa5, 0x78, 0x8f, 0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90,
566     0xac, 0x50, 0xcf, 0x9e, 0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52,
567     0x19, 0xe4, 0xde, 0x29, 0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87,
568     0x7a, 0xdd, 0x17, 0x48, 0x05, 0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79, 0xcc,
569     0x66, 0xf1, 0xb3, 0x13, 0x29, 0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f, 0x3a,
570     0x00, 0x47, 0x44, 0x53, 0x58, 0x40, 0xcf, 0x99, 0x7b, 0xea, 0x2e, 0x2c,
571     0x86, 0xa0, 0x7b, 0x52, 0x09, 0xc8, 0xb5, 0x3c, 0x41, 0x12, 0x29, 0x28,
572     0x1a, 0x82, 0x0d, 0x49, 0x9c, 0x95, 0xcb, 0x0b, 0x1b, 0x31, 0x1a, 0x01,
573     0x9c, 0xf2, 0x66, 0x1a, 0xd9, 0xb5, 0xce, 0x52, 0x59, 0xcb, 0xf4, 0x81,
574     0x9b, 0x21, 0xaf, 0x32, 0x5d, 0x07, 0xa0, 0x1e, 0x91, 0x59, 0x6f, 0x06,
575     0x55, 0x10, 0x8e, 0x2e, 0x08, 0x88, 0x52, 0x28, 0x86, 0x7f, 0x3a, 0x00,
576     0x47, 0x44, 0x54, 0x58, 0x40, 0x22, 0x52, 0x60, 0x17, 0xef, 0x2c, 0xa1,
577     0xf6, 0xcb, 0xed, 0x39, 0xd5, 0xe2, 0xaa, 0x65, 0x20, 0xfb, 0xad, 0x82,
578     0x93, 0xe5, 0x78, 0x23, 0x22, 0x97, 0xc1, 0x6e, 0x6a, 0x4e, 0x36, 0xd7,
579     0x6a, 0x61, 0x39, 0x08, 0x21, 0xd4, 0xfe, 0x92, 0x5f, 0x36, 0x2d, 0xeb,
580     0x5d, 0xbb, 0x32, 0x8b, 0xe3, 0x94, 0x4f, 0xbe, 0x1b, 0x21, 0xf9, 0xcc,
581     0x23, 0x73, 0x41, 0xb6, 0xb9, 0xb6, 0x98, 0xd0, 0xbc, 0x3a, 0x00, 0x47,
582     0x44, 0x56, 0x41, 0x00, 0x3a, 0x00, 0x47, 0x44, 0x57, 0x58, 0x2d, 0xa5,
583     0x01, 0x01, 0x03, 0x27, 0x04, 0x81, 0x02, 0x20, 0x06, 0x21, 0x58, 0x20,
584     0x5a, 0x39, 0x49, 0x67, 0x8c, 0xd3, 0x0e, 0x88, 0xab, 0x1c, 0xdd, 0xf7,
585     0x15, 0x55, 0xd5, 0xbf, 0xd3, 0xf0, 0xb8, 0x47, 0x25, 0xa9, 0x58, 0xe1,
586     0xb9, 0xda, 0x4e, 0xb5, 0xf1, 0x38, 0x9a, 0x5a, 0x3a, 0x00, 0x47, 0x44,
587     0x58, 0x41, 0x20, 0x58, 0x40, 0x82, 0x99, 0xff, 0x84, 0x55, 0xcb, 0xf9,
588     0x99, 0x89, 0x48, 0x99, 0x12, 0x1d, 0x04, 0x40, 0xcf, 0x90, 0xa4, 0xbc,
589     0x61, 0x4f, 0x0d, 0x2e, 0x77, 0x2e, 0x9c, 0x8f, 0xaa, 0xdd, 0xf4, 0x2f,
590     0xe2, 0x14, 0xd2, 0x42, 0x4a, 0x02, 0x9e, 0x1d, 0x24, 0x72, 0x0b, 0x08,
591     0xb6, 0x71, 0xc7, 0x76, 0x64, 0x25, 0xfb, 0x03, 0xcf, 0xd6, 0x6f, 0x2f,
592     0x9a, 0x15, 0xc8, 0xad, 0x47, 0x9a, 0xf3, 0x16, 0x01};
593 
594 constexpr uint8_t kExpectedCborP256Cert_HashOnlyInput[0] = {};
595 
596 constexpr uint8_t kExpectedCdiAttest_DescriptorInput[32] = {
597     0x20, 0xd5, 0x0c, 0x68, 0x5a, 0xd9, 0xe2, 0xdf, 0x77, 0x60, 0x78,
598     0x68, 0x19, 0x00, 0x24, 0xc2, 0x04, 0x4f, 0xb8, 0xde, 0x79, 0xaa,
599     0x9f, 0x5f, 0x12, 0xfc, 0xa8, 0xda, 0x37, 0x08, 0xa3, 0x10};
600 
601 constexpr uint8_t kExpectedCdiSeal_DescriptorInput[32] = {
602     0x90, 0xc9, 0xa2, 0x86, 0x5d, 0xf4, 0xfa, 0x58, 0x30, 0x64, 0x3d,
603     0x6c, 0xae, 0xf0, 0x7c, 0x76, 0xae, 0xaa, 0x15, 0x61, 0x98, 0x28,
604     0xf1, 0xbd, 0xa7, 0xf7, 0x44, 0x82, 0xe2, 0xf0, 0xae, 0x1e};
605 
606 // $ openssl x509 -inform DER -noout -text -certopt ext_parse
607 // Certificate:
608 //     Data:
609 //         Version: 3 (0x2)
610 //         Serial Number:
611 //             52:1f:03:5c:21:e3:2f:16:74:1c:1e:ae:6b:de:d9:3c:e3:21:e0:df
612 //         Signature Algorithm: ED25519
613 //         Issuer: serialNumber = 475708eb3b426f386cfce8f3baf5439046278dfa
614 //         Validity
615 //             Not Before: Mar 22 23:59:59 2018 GMT
616 //             Not After : Dec 31 23:59:59 9999 GMT
617 //         Subject: serialNumber = 521f035c21e32f16741c1eae6bded93ce321e0df
618 //         Subject Public Key Info:
619 //             Public Key Algorithm: ED25519
620 //                 ED25519 Public-Key:
621 //                 pub:
622 //                     93:7f:d9:c0:4d:c6:bb:2e:1d:11:62:cd:5c:76:94:
623 //                     c7:db:02:54:0c:85:01:3a:01:ab:37:fa:ce:f9:6e:
624 //                     62:20
625 //         X509v3 extensions:
626 //             X509v3 Authority Key Identifier:
627 //                 keyid:47:57:08:EB:3B:42:6F:38:6C:FC:E8:F3:BA:F5:43:90:46:27:8D:FA
628 //
629 //             X509v3 Subject Key Identifier:
630 //                 52:1F:03:5C:21:E3:2F:16:74:1C:1E:AE:6B:DE:D9:3C:E3:21:E0:DF
631 //             X509v3 Key Usage: critical
632 //                 Certificate Sign
633 //             X509v3 Basic Constraints: critical
634 //                 CA:TRUE
635 //             1.3.6.1.4.1.11129.2.1.24:
636 //     0:d=0  hl=4 l= 426 cons: SEQUENCE
637 //     4:d=1  hl=2 l=  66 cons:  cont [ 0 ]
638 //     6:d=2  hl=2 l=  64 prim:   OCTET STRING
639 //       0000 - b7 d4 0c cb 22 5b a5 78-8f 98 ff 9e 86 93 75 f6 ...."[.x......u.
640 //       0010 - 90 ac 50 cf 9e bd 0a fe-b1 d9 c2 4e 52 19 e4 de ..P........NR...
641 //       0020 - 29 e5 61 f3 f9 29 e8 40-87 7a dd 17 48 05 89 7e ).a..).@.z..H..~
642 //       0030 - 2b cb 54 79 cc 66 f1 b3-13 29 0c 68 96 b2 bb 8f +.Ty.f...).h....
643 //    72:d=1  hl=2 l= 102 cons:  cont [ 1 ]
644 //    74:d=2  hl=2 l= 100 prim:   OCTET STRING
645 //       0000 - 6c 46 01 33 26 73 4b 22-65 fd fa 58 d7 57 3e 95 lF.3&sK"e..X.W>.
646 //       0010 - 59 e0 3a c3 b9 f7 c8 0e-98 80 8c f5 c4 b8 af e3 Y.:.............
647 //       0020 - 16 84 25 a5 35 5d 17 72-56 8f 8e ec 2f 5a 74 60 ..%.5].rV.../Zt`
648 //       0030 - 77 2a 6e 90 c0 4e 9f 87-6b f4 8d 9c 66 e3 0b d2 w*n..N..k...f...
649 //       0040 - 10 35 21 a8 1d a2 31 17-e7 0c df 18 f7 94 e4 d1 .5!...1.........
650 //       0050 - ca 32 7d f2 63 23 1d bc-84 74 61 db 87 f2 ab 72 .2}.c#...ta....r
651 //       0060 - ad af 08 f8                                       ....
652 //   176:d=1  hl=2 l=  66 cons:  cont [ 2 ]
653 //   178:d=2  hl=2 l=  64 prim:   OCTET STRING
654 //       0000 - 45 00 e9 5c bd 00 57 04-55 87 6c bd 2f ea 41 9c E..\..W.U.l./.A.
655 //       0010 - 66 42 51 41 bb 44 ed 0e-e9 66 cf d5 10 73 0d 4b fBQA.D...f...s.K
656 //       0020 - 48 e4 7a 53 35 01 0e 6d-15 55 c5 b7 d2 d5 36 b6 H.zS5..m.U....6.
657 //       0030 - bc 7e b0 f3 3d e6 19 78-62 eb 02 57 39 56 73 4f .~..=..xb..W9VsO
658 //   244:d=1  hl=2 l=  42 cons:  cont [ 3 ]
659 //   246:d=2  hl=2 l=  40 prim:   OCTET STRING
660 //       0000 - 1b 40 c1 a9 77 60 eb c3-67 f0 5f 6a e1 5e 20 c2   .@..w`..g._j.^
661 //       . 0010 - 51 68 4d 82 48 8b 03 32-16 79 88 14 37 78 7f 16
662 //       QhM.H..2.y..7x.. 0020 - 9a 06 fd c0 8a 15 80 62- .......b
663 //   288:d=1  hl=2 l=  66 cons:  cont [ 4 ]
664 //   290:d=2  hl=2 l=  64 prim:   OCTET STRING
665 //       0000 - 22 52 60 17 ef 2c a1 f6-cb ed 39 d5 e2 aa 65 20 "R`..,....9...e
666 //       0010 - fb ad 82 93 e5 78 23 22-97 c1 6e 6a 4e 36 d7 6a .....x#"..njN6.j
667 //       0020 - 61 39 08 21 d4 fe 92 5f-36 2d eb 5d bb 32 8b e3 a9.!..._6-.].2..
668 //       0030 - 94 4f be 1b 21 f9 cc 23-73 41 b6 b9 b6 98 d0 bc .O..!..#sA......
669 //   356:d=1  hl=2 l=  67 cons:  cont [ 5 ]
670 //   358:d=2  hl=2 l=  65 prim:   OCTET STRING
671 //       0000 - 92 d6 97 b3 83 df e7 8c-c7 bc 4a fc ea 76 c0 53 ..........J..v.S
672 //       0010 - 66 bd 2c 1e 10 31 90 80-11 2d 08 4d 7c 39 76 dc f.,..1...-.M|9v.
673 //       0020 - 73 e7 1c 16 62 d5 59 d7-49 2b 6a a2 36 67 57 d1 s...b.Y.I+j.6gW.
674 //       0030 - f2 f9 af 13 d7 a3 e4 d3-39 5b 02 78 b1 e0 09 70 ........9[.x...p
675 //       0040 - a2                                                .
676 //   425:d=1  hl=2 l=   3 cons:  cont [ 6 ]
677 //   427:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
678 //
679 //     Signature Algorithm: ED25519
680 //          70:3c:ba:64:6b:18:2b:3f:26:b3:67:52:3b:3d:08:f5:88:3d:
681 //          fe:79:d4:b4:e5:70:71:1d:95:f6:9a:ac:ca:f7:23:8b:fd:e2:
682 //          22:5b:3b:39:82:99:02:e8:db:67:70:f2:99:9d:f7:3b:73:12:
683 //          6a:b0:a0:ac:49:4b:37:06:21:06
684 constexpr uint8_t kExpectedX509Ed25519Cert_DescriptorInput[855] = {
685     0x30, 0x82, 0x03, 0x53, 0x30, 0x82, 0x03, 0x05, 0xa0, 0x03, 0x02, 0x01,
686     0x02, 0x02, 0x14, 0x52, 0x1f, 0x03, 0x5c, 0x21, 0xe3, 0x2f, 0x16, 0x74,
687     0x1c, 0x1e, 0xae, 0x6b, 0xde, 0xd9, 0x3c, 0xe3, 0x21, 0xe0, 0xdf, 0x30,
688     0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f,
689     0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28, 0x34, 0x37, 0x35, 0x37, 0x30,
690     0x38, 0x65, 0x62, 0x33, 0x62, 0x34, 0x32, 0x36, 0x66, 0x33, 0x38, 0x36,
691     0x63, 0x66, 0x63, 0x65, 0x38, 0x66, 0x33, 0x62, 0x61, 0x66, 0x35, 0x34,
692     0x33, 0x39, 0x30, 0x34, 0x36, 0x32, 0x37, 0x38, 0x64, 0x66, 0x61, 0x30,
693     0x20, 0x17, 0x0d, 0x31, 0x38, 0x30, 0x33, 0x32, 0x32, 0x32, 0x33, 0x35,
694     0x39, 0x35, 0x39, 0x5a, 0x18, 0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32,
695     0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31,
696     0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05, 0x13, 0x28, 0x35, 0x32,
697     0x31, 0x66, 0x30, 0x33, 0x35, 0x63, 0x32, 0x31, 0x65, 0x33, 0x32, 0x66,
698     0x31, 0x36, 0x37, 0x34, 0x31, 0x63, 0x31, 0x65, 0x61, 0x65, 0x36, 0x62,
699     0x64, 0x65, 0x64, 0x39, 0x33, 0x63, 0x65, 0x33, 0x32, 0x31, 0x65, 0x30,
700     0x64, 0x66, 0x30, 0x2a, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x03,
701     0x21, 0x00, 0x93, 0x7f, 0xd9, 0xc0, 0x4d, 0xc6, 0xbb, 0x2e, 0x1d, 0x11,
702     0x62, 0xcd, 0x5c, 0x76, 0x94, 0xc7, 0xdb, 0x02, 0x54, 0x0c, 0x85, 0x01,
703     0x3a, 0x01, 0xab, 0x37, 0xfa, 0xce, 0xf9, 0x6e, 0x62, 0x20, 0xa3, 0x82,
704     0x02, 0x27, 0x30, 0x82, 0x02, 0x23, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d,
705     0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x47, 0x57, 0x08, 0xeb, 0x3b,
706     0x42, 0x6f, 0x38, 0x6c, 0xfc, 0xe8, 0xf3, 0xba, 0xf5, 0x43, 0x90, 0x46,
707     0x27, 0x8d, 0xfa, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16,
708     0x04, 0x14, 0x52, 0x1f, 0x03, 0x5c, 0x21, 0xe3, 0x2f, 0x16, 0x74, 0x1c,
709     0x1e, 0xae, 0x6b, 0xde, 0xd9, 0x3c, 0xe3, 0x21, 0xe0, 0xdf, 0x30, 0x0e,
710     0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02,
711     0x02, 0x04, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff,
712     0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x82, 0x01, 0xbe, 0x06,
713     0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0xd6, 0x79, 0x02, 0x01, 0x18, 0x04,
714     0x82, 0x01, 0xae, 0x30, 0x82, 0x01, 0xaa, 0xa0, 0x42, 0x04, 0x40, 0xb7,
715     0xd4, 0x0c, 0xcb, 0x22, 0x5b, 0xa5, 0x78, 0x8f, 0x98, 0xff, 0x9e, 0x86,
716     0x93, 0x75, 0xf6, 0x90, 0xac, 0x50, 0xcf, 0x9e, 0xbd, 0x0a, 0xfe, 0xb1,
717     0xd9, 0xc2, 0x4e, 0x52, 0x19, 0xe4, 0xde, 0x29, 0xe5, 0x61, 0xf3, 0xf9,
718     0x29, 0xe8, 0x40, 0x87, 0x7a, 0xdd, 0x17, 0x48, 0x05, 0x89, 0x7e, 0x2b,
719     0xcb, 0x54, 0x79, 0xcc, 0x66, 0xf1, 0xb3, 0x13, 0x29, 0x0c, 0x68, 0x96,
720     0xb2, 0xbb, 0x8f, 0xa1, 0x66, 0x04, 0x64, 0x6c, 0x46, 0x01, 0x33, 0x26,
721     0x73, 0x4b, 0x22, 0x65, 0xfd, 0xfa, 0x58, 0xd7, 0x57, 0x3e, 0x95, 0x59,
722     0xe0, 0x3a, 0xc3, 0xb9, 0xf7, 0xc8, 0x0e, 0x98, 0x80, 0x8c, 0xf5, 0xc4,
723     0xb8, 0xaf, 0xe3, 0x16, 0x84, 0x25, 0xa5, 0x35, 0x5d, 0x17, 0x72, 0x56,
724     0x8f, 0x8e, 0xec, 0x2f, 0x5a, 0x74, 0x60, 0x77, 0x2a, 0x6e, 0x90, 0xc0,
725     0x4e, 0x9f, 0x87, 0x6b, 0xf4, 0x8d, 0x9c, 0x66, 0xe3, 0x0b, 0xd2, 0x10,
726     0x35, 0x21, 0xa8, 0x1d, 0xa2, 0x31, 0x17, 0xe7, 0x0c, 0xdf, 0x18, 0xf7,
727     0x94, 0xe4, 0xd1, 0xca, 0x32, 0x7d, 0xf2, 0x63, 0x23, 0x1d, 0xbc, 0x84,
728     0x74, 0x61, 0xdb, 0x87, 0xf2, 0xab, 0x72, 0xad, 0xaf, 0x08, 0xf8, 0xa2,
729     0x42, 0x04, 0x40, 0x45, 0x00, 0xe9, 0x5c, 0xbd, 0x00, 0x57, 0x04, 0x55,
730     0x87, 0x6c, 0xbd, 0x2f, 0xea, 0x41, 0x9c, 0x66, 0x42, 0x51, 0x41, 0xbb,
731     0x44, 0xed, 0x0e, 0xe9, 0x66, 0xcf, 0xd5, 0x10, 0x73, 0x0d, 0x4b, 0x48,
732     0xe4, 0x7a, 0x53, 0x35, 0x01, 0x0e, 0x6d, 0x15, 0x55, 0xc5, 0xb7, 0xd2,
733     0xd5, 0x36, 0xb6, 0xbc, 0x7e, 0xb0, 0xf3, 0x3d, 0xe6, 0x19, 0x78, 0x62,
734     0xeb, 0x02, 0x57, 0x39, 0x56, 0x73, 0x4f, 0xa3, 0x2a, 0x04, 0x28, 0x1b,
735     0x40, 0xc1, 0xa9, 0x77, 0x60, 0xeb, 0xc3, 0x67, 0xf0, 0x5f, 0x6a, 0xe1,
736     0x5e, 0x20, 0xc2, 0x51, 0x68, 0x4d, 0x82, 0x48, 0x8b, 0x03, 0x32, 0x16,
737     0x79, 0x88, 0x14, 0x37, 0x78, 0x7f, 0x16, 0x9a, 0x06, 0xfd, 0xc0, 0x8a,
738     0x15, 0x80, 0x62, 0xa4, 0x42, 0x04, 0x40, 0x22, 0x52, 0x60, 0x17, 0xef,
739     0x2c, 0xa1, 0xf6, 0xcb, 0xed, 0x39, 0xd5, 0xe2, 0xaa, 0x65, 0x20, 0xfb,
740     0xad, 0x82, 0x93, 0xe5, 0x78, 0x23, 0x22, 0x97, 0xc1, 0x6e, 0x6a, 0x4e,
741     0x36, 0xd7, 0x6a, 0x61, 0x39, 0x08, 0x21, 0xd4, 0xfe, 0x92, 0x5f, 0x36,
742     0x2d, 0xeb, 0x5d, 0xbb, 0x32, 0x8b, 0xe3, 0x94, 0x4f, 0xbe, 0x1b, 0x21,
743     0xf9, 0xcc, 0x23, 0x73, 0x41, 0xb6, 0xb9, 0xb6, 0x98, 0xd0, 0xbc, 0xa5,
744     0x43, 0x04, 0x41, 0x92, 0xd6, 0x97, 0xb3, 0x83, 0xdf, 0xe7, 0x8c, 0xc7,
745     0xbc, 0x4a, 0xfc, 0xea, 0x76, 0xc0, 0x53, 0x66, 0xbd, 0x2c, 0x1e, 0x10,
746     0x31, 0x90, 0x80, 0x11, 0x2d, 0x08, 0x4d, 0x7c, 0x39, 0x76, 0xdc, 0x73,
747     0xe7, 0x1c, 0x16, 0x62, 0xd5, 0x59, 0xd7, 0x49, 0x2b, 0x6a, 0xa2, 0x36,
748     0x67, 0x57, 0xd1, 0xf2, 0xf9, 0xaf, 0x13, 0xd7, 0xa3, 0xe4, 0xd3, 0x39,
749     0x5b, 0x02, 0x78, 0xb1, 0xe0, 0x09, 0x70, 0xa2, 0xa6, 0x03, 0x0a, 0x01,
750     0x00, 0x30, 0x05, 0x06, 0x03, 0x2b, 0x65, 0x70, 0x03, 0x41, 0x00, 0x70,
751     0x3c, 0xba, 0x64, 0x6b, 0x18, 0x2b, 0x3f, 0x26, 0xb3, 0x67, 0x52, 0x3b,
752     0x3d, 0x08, 0xf5, 0x88, 0x3d, 0xfe, 0x79, 0xd4, 0xb4, 0xe5, 0x70, 0x71,
753     0x1d, 0x95, 0xf6, 0x9a, 0xac, 0xca, 0xf7, 0x23, 0x8b, 0xfd, 0xe2, 0x22,
754     0x5b, 0x3b, 0x39, 0x82, 0x99, 0x02, 0xe8, 0xdb, 0x67, 0x70, 0xf2, 0x99,
755     0x9d, 0xf7, 0x3b, 0x73, 0x12, 0x6a, 0xb0, 0xa0, 0xac, 0x49, 0x4b, 0x37,
756     0x06, 0x21, 0x06};
757 
758 // $ openssl x509 -inform DER -noout -text -certopt ext_parse
759 // Certificate:
760 //     Data:
761 //         Version: 3 (0x2)
762 //         Serial Number:
763 //             2c:0d:e9:55:c4:fa:08:2c:2c:3a:0b:40:66:59:af:a1:c1:c0:84:6c
764 //         Signature Algorithm: ecdsa-with-SHA512
765 //         Issuer: serialNumber = 1be5687933db3d9cd5fca729e81d6685465a7bf1
766 //         Validity
767 //             Not Before: Mar 22 23:59:59 2018 GMT
768 //             Not After : Dec 31 23:59:59 9999 GMT
769 //         Subject: serialNumber = 2c0de955c4fa082c2c3a0b406659afa1c1c0846c
770 //         Subject Public Key Info:
771 //             Public Key Algorithm: id-ecPublicKey
772 //                 Public-Key: (256 bit)
773 //                 pub:
774 //                     04:6d:1e:dd:35:38:70:c2:8a:01:df:80:b1:a5:ae:
775 //                     85:4b:7a:12:dd:11:f6:97:27:44:9b:27:f3:87:97:
776 //                     b3:e7:36:e6:42:87:8c:72:de:f7:af:2d:c6:23:00:
777 //                     b1:2b:4e:1c:f3:af:67:f0:9b:88:40:79:3b:09:78:
778 //                     30:51:65:38:61
779 //                 ASN1 OID: prime256v1
780 //                 NIST CURVE: P-256
781 //         X509v3 extensions:
782 //             X509v3 Authority Key Identifier:
783 //                 keyid:1B:E5:68:79:33:DB:3D:9C:D5:FC:A7:29:E8:1D:66:85:46:5A:7B:F1
784 //
785 //             X509v3 Subject Key Identifier:
786 //                 2C:0D:E9:55:C4:FA:08:2C:2C:3A:0B:40:66:59:AF:A1:C1:C0:84:6C
787 //             X509v3 Key Usage: critical
788 //                 Certificate Sign
789 //             X509v3 Basic Constraints: critical
790 //                 CA:TRUE
791 //             1.3.6.1.4.1.11129.2.1.24:
792 //     0:d=0  hl=4 l= 426 cons: SEQUENCE
793 //     4:d=1  hl=2 l=  66 cons:  cont [ 0 ]
794 //     6:d=2  hl=2 l=  64 prim:   OCTET STRING
795 //       0000 - b7 d4 0c cb 22 5b a5 78-8f 98 ff 9e 86 93 75 f6 ...."[.x......u.
796 //       0010 - 90 ac 50 cf 9e bd 0a fe-b1 d9 c2 4e 52 19 e4 de ..P........NR...
797 //       0020 - 29 e5 61 f3 f9 29 e8 40-87 7a dd 17 48 05 89 7e ).a..).@.z..H..~
798 //       0030 - 2b cb 54 79 cc 66 f1 b3-13 29 0c 68 96 b2 bb 8f +.Ty.f...).h....
799 //    72:d=1  hl=2 l= 102 cons:  cont [ 1 ]
800 //    74:d=2  hl=2 l= 100 prim:   OCTET STRING
801 //       0000 - 6c 46 01 33 26 73 4b 22-65 fd fa 58 d7 57 3e 95 lF.3&sK"e..X.W>.
802 //       0010 - 59 e0 3a c3 b9 f7 c8 0e-98 80 8c f5 c4 b8 af e3 Y.:.............
803 //       0020 - 16 84 25 a5 35 5d 17 72-56 8f 8e ec 2f 5a 74 60 ..%.5].rV.../Zt`
804 //       0030 - 77 2a 6e 90 c0 4e 9f 87-6b f4 8d 9c 66 e3 0b d2 w*n..N..k...f...
805 //       0040 - 10 35 21 a8 1d a2 31 17-e7 0c df 18 f7 94 e4 d1 .5!...1.........
806 //       0050 - ca 32 7d f2 63 23 1d bc-84 74 61 db 87 f2 ab 72 .2}.c#...ta....r
807 //       0060 - ad af 08 f8                                       ....
808 //   176:d=1  hl=2 l=  66 cons:  cont [ 2 ]
809 //   178:d=2  hl=2 l=  64 prim:   OCTET STRING
810 //       0000 - 45 00 e9 5c bd 00 57 04-55 87 6c bd 2f ea 41 9c E..\..W.U.l./.A.
811 //       0010 - 66 42 51 41 bb 44 ed 0e-e9 66 cf d5 10 73 0d 4b fBQA.D...f...s.K
812 //       0020 - 48 e4 7a 53 35 01 0e 6d-15 55 c5 b7 d2 d5 36 b6 H.zS5..m.U....6.
813 //       0030 - bc 7e b0 f3 3d e6 19 78-62 eb 02 57 39 56 73 4f .~..=..xb..W9VsO
814 //   244:d=1  hl=2 l=  42 cons:  cont [ 3 ]
815 //   246:d=2  hl=2 l=  40 prim:   OCTET STRING
816 //       0000 - 1b 40 c1 a9 77 60 eb c3-67 f0 5f 6a e1 5e 20 c2   .@..w`..g._j.^
817 //       . 0010 - 51 68 4d 82 48 8b 03 32-16 79 88 14 37 78 7f 16
818 //       QhM.H..2.y..7x.. 0020 - 9a 06 fd c0 8a 15 80 62- .......b
819 //   288:d=1  hl=2 l=  66 cons:  cont [ 4 ]
820 //   290:d=2  hl=2 l=  64 prim:   OCTET STRING
821 //       0000 - 22 52 60 17 ef 2c a1 f6-cb ed 39 d5 e2 aa 65 20 "R`..,....9...e
822 //       0010 - fb ad 82 93 e5 78 23 22-97 c1 6e 6a 4e 36 d7 6a .....x#"..njN6.j
823 //       0020 - 61 39 08 21 d4 fe 92 5f-36 2d eb 5d bb 32 8b e3 a9.!..._6-.].2..
824 //       0030 - 94 4f be 1b 21 f9 cc 23-73 41 b6 b9 b6 98 d0 bc .O..!..#sA......
825 //   356:d=1  hl=2 l=  67 cons:  cont [ 5 ]
826 //   358:d=2  hl=2 l=  65 prim:   OCTET STRING
827 //       0000 - 92 d6 97 b3 83 df e7 8c-c7 bc 4a fc ea 76 c0 53 ..........J..v.S
828 //       0010 - 66 bd 2c 1e 10 31 90 80-11 2d 08 4d 7c 39 76 dc f.,..1...-.M|9v.
829 //       0020 - 73 e7 1c 16 62 d5 59 d7-49 2b 6a a2 36 67 57 d1 s...b.Y.I+j.6gW.
830 //       0030 - f2 f9 af 13 d7 a3 e4 d3-39 5b 02 78 b1 e0 09 70 ........9[.x...p
831 //       0040 - a2                                                .
832 //   425:d=1  hl=2 l=   3 cons:  cont [ 6 ]
833 //   427:d=2  hl=2 l=   1 prim:   ENUMERATED        :00
834 //
835 //     Signature Algorithm: ecdsa-with-SHA512
836 //          30:45:02:21:00:b2:0b:bb:86:04:4e:38:55:db:f5:58:92:e1:
837 //          c1:31:4e:79:57:e4:5f:bc:36:68:29:b4:89:a5:63:4e:67:19:
838 //          8c:02:20:1b:5d:e6:35:c0:cd:9f:7b:ec:c0:01:52:b8:2f:81:
839 //          f0:29:01:a0:17:19:83:ca:84:e2:ec:01:a8:b2:13:8a:b9
840 constexpr uint8_t kExpectedX509P256Cert_DescriptorInput[923] = {
841     0x30, 0x82, 0x03, 0x97, 0x30, 0x82, 0x03, 0x3b, 0xa0, 0x03, 0x02, 0x01,
842     0x02, 0x02, 0x14, 0x2c, 0x0d, 0xe9, 0x55, 0xc4, 0xfa, 0x08, 0x2c, 0x2c,
843     0x3a, 0x0b, 0x40, 0x66, 0x59, 0xaf, 0xa1, 0xc1, 0xc0, 0x84, 0x6c, 0x30,
844     0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x05,
845     0x00, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03, 0x55, 0x04, 0x05,
846     0x13, 0x28, 0x31, 0x62, 0x65, 0x35, 0x36, 0x38, 0x37, 0x39, 0x33, 0x33,
847     0x64, 0x62, 0x33, 0x64, 0x39, 0x63, 0x64, 0x35, 0x66, 0x63, 0x61, 0x37,
848     0x32, 0x39, 0x65, 0x38, 0x31, 0x64, 0x36, 0x36, 0x38, 0x35, 0x34, 0x36,
849     0x35, 0x61, 0x37, 0x62, 0x66, 0x31, 0x30, 0x20, 0x17, 0x0d, 0x31, 0x38,
850     0x30, 0x33, 0x32, 0x32, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x18,
851     0x0f, 0x39, 0x39, 0x39, 0x39, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35,
852     0x39, 0x35, 0x39, 0x5a, 0x30, 0x33, 0x31, 0x31, 0x30, 0x2f, 0x06, 0x03,
853     0x55, 0x04, 0x05, 0x13, 0x28, 0x32, 0x63, 0x30, 0x64, 0x65, 0x39, 0x35,
854     0x35, 0x63, 0x34, 0x66, 0x61, 0x30, 0x38, 0x32, 0x63, 0x32, 0x63, 0x33,
855     0x61, 0x30, 0x62, 0x34, 0x30, 0x36, 0x36, 0x35, 0x39, 0x61, 0x66, 0x61,
856     0x31, 0x63, 0x31, 0x63, 0x30, 0x38, 0x34, 0x36, 0x63, 0x30, 0x59, 0x30,
857     0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08,
858     0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04,
859     0x6d, 0x1e, 0xdd, 0x35, 0x38, 0x70, 0xc2, 0x8a, 0x01, 0xdf, 0x80, 0xb1,
860     0xa5, 0xae, 0x85, 0x4b, 0x7a, 0x12, 0xdd, 0x11, 0xf6, 0x97, 0x27, 0x44,
861     0x9b, 0x27, 0xf3, 0x87, 0x97, 0xb3, 0xe7, 0x36, 0xe6, 0x42, 0x87, 0x8c,
862     0x72, 0xde, 0xf7, 0xaf, 0x2d, 0xc6, 0x23, 0x00, 0xb1, 0x2b, 0x4e, 0x1c,
863     0xf3, 0xaf, 0x67, 0xf0, 0x9b, 0x88, 0x40, 0x79, 0x3b, 0x09, 0x78, 0x30,
864     0x51, 0x65, 0x38, 0x61, 0xa3, 0x82, 0x02, 0x27, 0x30, 0x82, 0x02, 0x23,
865     0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80,
866     0x14, 0x1b, 0xe5, 0x68, 0x79, 0x33, 0xdb, 0x3d, 0x9c, 0xd5, 0xfc, 0xa7,
867     0x29, 0xe8, 0x1d, 0x66, 0x85, 0x46, 0x5a, 0x7b, 0xf1, 0x30, 0x1d, 0x06,
868     0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2c, 0x0d, 0xe9, 0x55,
869     0xc4, 0xfa, 0x08, 0x2c, 0x2c, 0x3a, 0x0b, 0x40, 0x66, 0x59, 0xaf, 0xa1,
870     0xc1, 0xc0, 0x84, 0x6c, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01,
871     0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x02, 0x04, 0x30, 0x0f, 0x06, 0x03,
872     0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01,
873     0xff, 0x30, 0x82, 0x01, 0xbe, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01,
874     0xd6, 0x79, 0x02, 0x01, 0x18, 0x04, 0x82, 0x01, 0xae, 0x30, 0x82, 0x01,
875     0xaa, 0xa0, 0x42, 0x04, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22, 0x5b, 0xa5,
876     0x78, 0x8f, 0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90, 0xac, 0x50,
877     0xcf, 0x9e, 0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52, 0x19, 0xe4,
878     0xde, 0x29, 0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87, 0x7a, 0xdd,
879     0x17, 0x48, 0x05, 0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79, 0xcc, 0x66, 0xf1,
880     0xb3, 0x13, 0x29, 0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f, 0xa1, 0x66, 0x04,
881     0x64, 0x6c, 0x46, 0x01, 0x33, 0x26, 0x73, 0x4b, 0x22, 0x65, 0xfd, 0xfa,
882     0x58, 0xd7, 0x57, 0x3e, 0x95, 0x59, 0xe0, 0x3a, 0xc3, 0xb9, 0xf7, 0xc8,
883     0x0e, 0x98, 0x80, 0x8c, 0xf5, 0xc4, 0xb8, 0xaf, 0xe3, 0x16, 0x84, 0x25,
884     0xa5, 0x35, 0x5d, 0x17, 0x72, 0x56, 0x8f, 0x8e, 0xec, 0x2f, 0x5a, 0x74,
885     0x60, 0x77, 0x2a, 0x6e, 0x90, 0xc0, 0x4e, 0x9f, 0x87, 0x6b, 0xf4, 0x8d,
886     0x9c, 0x66, 0xe3, 0x0b, 0xd2, 0x10, 0x35, 0x21, 0xa8, 0x1d, 0xa2, 0x31,
887     0x17, 0xe7, 0x0c, 0xdf, 0x18, 0xf7, 0x94, 0xe4, 0xd1, 0xca, 0x32, 0x7d,
888     0xf2, 0x63, 0x23, 0x1d, 0xbc, 0x84, 0x74, 0x61, 0xdb, 0x87, 0xf2, 0xab,
889     0x72, 0xad, 0xaf, 0x08, 0xf8, 0xa2, 0x42, 0x04, 0x40, 0x45, 0x00, 0xe9,
890     0x5c, 0xbd, 0x00, 0x57, 0x04, 0x55, 0x87, 0x6c, 0xbd, 0x2f, 0xea, 0x41,
891     0x9c, 0x66, 0x42, 0x51, 0x41, 0xbb, 0x44, 0xed, 0x0e, 0xe9, 0x66, 0xcf,
892     0xd5, 0x10, 0x73, 0x0d, 0x4b, 0x48, 0xe4, 0x7a, 0x53, 0x35, 0x01, 0x0e,
893     0x6d, 0x15, 0x55, 0xc5, 0xb7, 0xd2, 0xd5, 0x36, 0xb6, 0xbc, 0x7e, 0xb0,
894     0xf3, 0x3d, 0xe6, 0x19, 0x78, 0x62, 0xeb, 0x02, 0x57, 0x39, 0x56, 0x73,
895     0x4f, 0xa3, 0x2a, 0x04, 0x28, 0x1b, 0x40, 0xc1, 0xa9, 0x77, 0x60, 0xeb,
896     0xc3, 0x67, 0xf0, 0x5f, 0x6a, 0xe1, 0x5e, 0x20, 0xc2, 0x51, 0x68, 0x4d,
897     0x82, 0x48, 0x8b, 0x03, 0x32, 0x16, 0x79, 0x88, 0x14, 0x37, 0x78, 0x7f,
898     0x16, 0x9a, 0x06, 0xfd, 0xc0, 0x8a, 0x15, 0x80, 0x62, 0xa4, 0x42, 0x04,
899     0x40, 0x22, 0x52, 0x60, 0x17, 0xef, 0x2c, 0xa1, 0xf6, 0xcb, 0xed, 0x39,
900     0xd5, 0xe2, 0xaa, 0x65, 0x20, 0xfb, 0xad, 0x82, 0x93, 0xe5, 0x78, 0x23,
901     0x22, 0x97, 0xc1, 0x6e, 0x6a, 0x4e, 0x36, 0xd7, 0x6a, 0x61, 0x39, 0x08,
902     0x21, 0xd4, 0xfe, 0x92, 0x5f, 0x36, 0x2d, 0xeb, 0x5d, 0xbb, 0x32, 0x8b,
903     0xe3, 0x94, 0x4f, 0xbe, 0x1b, 0x21, 0xf9, 0xcc, 0x23, 0x73, 0x41, 0xb6,
904     0xb9, 0xb6, 0x98, 0xd0, 0xbc, 0xa5, 0x43, 0x04, 0x41, 0x92, 0xd6, 0x97,
905     0xb3, 0x83, 0xdf, 0xe7, 0x8c, 0xc7, 0xbc, 0x4a, 0xfc, 0xea, 0x76, 0xc0,
906     0x53, 0x66, 0xbd, 0x2c, 0x1e, 0x10, 0x31, 0x90, 0x80, 0x11, 0x2d, 0x08,
907     0x4d, 0x7c, 0x39, 0x76, 0xdc, 0x73, 0xe7, 0x1c, 0x16, 0x62, 0xd5, 0x59,
908     0xd7, 0x49, 0x2b, 0x6a, 0xa2, 0x36, 0x67, 0x57, 0xd1, 0xf2, 0xf9, 0xaf,
909     0x13, 0xd7, 0xa3, 0xe4, 0xd3, 0x39, 0x5b, 0x02, 0x78, 0xb1, 0xe0, 0x09,
910     0x70, 0xa2, 0xa6, 0x03, 0x0a, 0x01, 0x00, 0x30, 0x0c, 0x06, 0x08, 0x2a,
911     0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x05, 0x00, 0x03, 0x48, 0x00,
912     0x30, 0x45, 0x02, 0x21, 0x00, 0xb2, 0x0b, 0xbb, 0x86, 0x04, 0x4e, 0x38,
913     0x55, 0xdb, 0xf5, 0x58, 0x92, 0xe1, 0xc1, 0x31, 0x4e, 0x79, 0x57, 0xe4,
914     0x5f, 0xbc, 0x36, 0x68, 0x29, 0xb4, 0x89, 0xa5, 0x63, 0x4e, 0x67, 0x19,
915     0x8c, 0x02, 0x20, 0x1b, 0x5d, 0xe6, 0x35, 0xc0, 0xcd, 0x9f, 0x7b, 0xec,
916     0xc0, 0x01, 0x52, 0xb8, 0x2f, 0x81, 0xf0, 0x29, 0x01, 0xa0, 0x17, 0x19,
917     0x83, 0xca, 0x84, 0xe2, 0xec, 0x01, 0xa8, 0xb2, 0x13, 0x8a, 0xb9};
918 
919 constexpr uint8_t kExpectedCborEd25519Cert_DescriptorInput[667] = {
920     0x84, 0x43, 0xa1, 0x01, 0x27, 0xa0, 0x59, 0x02, 0x50, 0xab, 0x01, 0x78,
921     0x28, 0x34, 0x37, 0x35, 0x37, 0x30, 0x38, 0x65, 0x62, 0x33, 0x62, 0x34,
922     0x32, 0x36, 0x66, 0x33, 0x38, 0x36, 0x63, 0x66, 0x63, 0x65, 0x38, 0x66,
923     0x33, 0x62, 0x61, 0x66, 0x35, 0x34, 0x33, 0x39, 0x30, 0x34, 0x36, 0x32,
924     0x37, 0x38, 0x64, 0x66, 0x61, 0x02, 0x78, 0x28, 0x35, 0x32, 0x31, 0x66,
925     0x30, 0x33, 0x35, 0x63, 0x32, 0x31, 0x65, 0x33, 0x32, 0x66, 0x31, 0x36,
926     0x37, 0x34, 0x31, 0x63, 0x31, 0x65, 0x61, 0x65, 0x36, 0x62, 0x64, 0x65,
927     0x64, 0x39, 0x33, 0x63, 0x65, 0x33, 0x32, 0x31, 0x65, 0x30, 0x64, 0x66,
928     0x3a, 0x00, 0x47, 0x44, 0x50, 0x58, 0x40, 0xb7, 0xd4, 0x0c, 0xcb, 0x22,
929     0x5b, 0xa5, 0x78, 0x8f, 0x98, 0xff, 0x9e, 0x86, 0x93, 0x75, 0xf6, 0x90,
930     0xac, 0x50, 0xcf, 0x9e, 0xbd, 0x0a, 0xfe, 0xb1, 0xd9, 0xc2, 0x4e, 0x52,
931     0x19, 0xe4, 0xde, 0x29, 0xe5, 0x61, 0xf3, 0xf9, 0x29, 0xe8, 0x40, 0x87,
932     0x7a, 0xdd, 0x17, 0x48, 0x05, 0x89, 0x7e, 0x2b, 0xcb, 0x54, 0x79, 0xcc,
933     0x66, 0xf1, 0xb3, 0x13, 0x29, 0x0c, 0x68, 0x96, 0xb2, 0xbb, 0x8f, 0x3a,
934     0x00, 0x47, 0x44, 0x51, 0x58, 0x64, 0x6c, 0x46, 0x01, 0x33, 0x26, 0x73,
935     0x4b, 0x22, 0x65, 0xfd, 0xfa, 0x58, 0xd7, 0x57, 0x3e, 0x95, 0x59, 0xe0,
936     0x3a, 0xc3, 0xb9, 0xf7, 0xc8, 0x0e, 0x98, 0x80, 0x8c, 0xf5, 0xc4, 0xb8,
937     0xaf, 0xe3, 0x16, 0x84, 0x25, 0xa5, 0x35, 0x5d, 0x17, 0x72, 0x56, 0x8f,
938     0x8e, 0xec, 0x2f, 0x5a, 0x74, 0x60, 0x77, 0x2a, 0x6e, 0x90, 0xc0, 0x4e,
939     0x9f, 0x87, 0x6b, 0xf4, 0x8d, 0x9c, 0x66, 0xe3, 0x0b, 0xd2, 0x10, 0x35,
940     0x21, 0xa8, 0x1d, 0xa2, 0x31, 0x17, 0xe7, 0x0c, 0xdf, 0x18, 0xf7, 0x94,
941     0xe4, 0xd1, 0xca, 0x32, 0x7d, 0xf2, 0x63, 0x23, 0x1d, 0xbc, 0x84, 0x74,
942     0x61, 0xdb, 0x87, 0xf2, 0xab, 0x72, 0xad, 0xaf, 0x08, 0xf8, 0x3a, 0x00,
943     0x47, 0x44, 0x53, 0x58, 0x28, 0x1b, 0x40, 0xc1, 0xa9, 0x77, 0x60, 0xeb,
944     0xc3, 0x67, 0xf0, 0x5f, 0x6a, 0xe1, 0x5e, 0x20, 0xc2, 0x51, 0x68, 0x4d,
945     0x82, 0x48, 0x8b, 0x03, 0x32, 0x16, 0x79, 0x88, 0x14, 0x37, 0x78, 0x7f,
946     0x16, 0x9a, 0x06, 0xfd, 0xc0, 0x8a, 0x15, 0x80, 0x62, 0x3a, 0x00, 0x47,
947     0x44, 0x52, 0x58, 0x40, 0x45, 0x00, 0xe9, 0x5c, 0xbd, 0x00, 0x57, 0x04,
948     0x55, 0x87, 0x6c, 0xbd, 0x2f, 0xea, 0x41, 0x9c, 0x66, 0x42, 0x51, 0x41,
949     0xbb, 0x44, 0xed, 0x0e, 0xe9, 0x66, 0xcf, 0xd5, 0x10, 0x73, 0x0d, 0x4b,
950     0x48, 0xe4, 0x7a, 0x53, 0x35, 0x01, 0x0e, 0x6d, 0x15, 0x55, 0xc5, 0xb7,
951     0xd2, 0xd5, 0x36, 0xb6, 0xbc, 0x7e, 0xb0, 0xf3, 0x3d, 0xe6, 0x19, 0x78,
952     0x62, 0xeb, 0x02, 0x57, 0x39, 0x56, 0x73, 0x4f, 0x3a, 0x00, 0x47, 0x44,
953     0x54, 0x58, 0x40, 0x22, 0x52, 0x60, 0x17, 0xef, 0x2c, 0xa1, 0xf6, 0xcb,
954     0xed, 0x39, 0xd5, 0xe2, 0xaa, 0x65, 0x20, 0xfb, 0xad, 0x82, 0x93, 0xe5,
955     0x78, 0x23, 0x22, 0x97, 0xc1, 0x6e, 0x6a, 0x4e, 0x36, 0xd7, 0x6a, 0x61,
956     0x39, 0x08, 0x21, 0xd4, 0xfe, 0x92, 0x5f, 0x36, 0x2d, 0xeb, 0x5d, 0xbb,
957     0x32, 0x8b, 0xe3, 0x94, 0x4f, 0xbe, 0x1b, 0x21, 0xf9, 0xcc, 0x23, 0x73,
958     0x41, 0xb6, 0xb9, 0xb6, 0x98, 0xd0, 0xbc, 0x3a, 0x00, 0x47, 0x44, 0x55,
959     0x58, 0x41, 0x92, 0xd6, 0x97, 0xb3, 0x83, 0xdf, 0xe7, 0x8c, 0xc7, 0xbc,
960     0x4a, 0xfc, 0xea, 0x76, 0xc0, 0x53, 0x66, 0xbd, 0x2c, 0x1e, 0x10, 0x31,
961     0x90, 0x80, 0x11, 0x2d, 0x08, 0x4d, 0x7c, 0x39, 0x76, 0xdc, 0x73, 0xe7,
962     0x1c, 0x16, 0x62, 0xd5, 0x59, 0xd7, 0x49, 0x2b, 0x6a, 0xa2, 0x36, 0x67,
963     0x57, 0xd1, 0xf2, 0xf9, 0xaf, 0x13, 0xd7, 0xa3, 0xe4, 0xd3, 0x39, 0x5b,
964     0x02, 0x78, 0xb1, 0xe0, 0x09, 0x70, 0xa2, 0x3a, 0x00, 0x47, 0x44, 0x56,
965     0x41, 0x00, 0x3a, 0x00, 0x47, 0x44, 0x57, 0x58, 0x2d, 0xa5, 0x01, 0x01,
966     0x03, 0x27, 0x04, 0x81, 0x02, 0x20, 0x06, 0x21, 0x58, 0x20, 0x93, 0x7f,
967     0xd9, 0xc0, 0x4d, 0xc6, 0xbb, 0x2e, 0x1d, 0x11, 0x62, 0xcd, 0x5c, 0x76,
968     0x94, 0xc7, 0xdb, 0x02, 0x54, 0x0c, 0x85, 0x01, 0x3a, 0x01, 0xab, 0x37,
969     0xfa, 0xce, 0xf9, 0x6e, 0x62, 0x20, 0x3a, 0x00, 0x47, 0x44, 0x58, 0x41,
970     0x20, 0x58, 0x40, 0xf6, 0x01, 0x7a, 0xc0, 0xf7, 0x8b, 0xb4, 0xf9, 0xbf,
971     0x60, 0x98, 0x5b, 0xc5, 0x64, 0x15, 0x4f, 0xa3, 0x0d, 0x19, 0x3a, 0x5f,
972     0xb2, 0x46, 0x0c, 0xc8, 0xfc, 0x40, 0x47, 0xa5, 0x87, 0xef, 0xd2, 0xdb,
973     0xbd, 0x35, 0xb6, 0x87, 0x99, 0x22, 0xe1, 0x3f, 0x37, 0xe3, 0x71, 0x28,
974     0x5a, 0xfa, 0xca, 0xcd, 0x5d, 0x44, 0x58, 0x45, 0xdf, 0xbb, 0x3d, 0x08,
975     0x88, 0x9b, 0x0c, 0x3b, 0x06, 0x7c, 0x0e};
976 
977 constexpr uint8_t kExpectedCborP256Cert_DescriptorInput[0] = {};
978 
979 }  // namespace test
980 }  // namespace dice
981 
982 #endif  // DICE_KNOWN_TEST_VALUES_H_
983