• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * @license
3  * Copyright 2016 Google Inc. All rights reserved.
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.security.wycheproof;
18 
19 import java.math.BigInteger;
20 import java.security.KeyFactory;
21 import java.security.KeyPair;
22 import java.security.KeyPairGenerator;
23 import java.security.interfaces.RSAPrivateCrtKey;
24 import java.security.interfaces.RSAPrivateKey;
25 import java.security.interfaces.RSAPublicKey;
26 import java.security.spec.InvalidKeySpecException;
27 import java.security.spec.X509EncodedKeySpec;
28 import junit.framework.TestCase;
29 
30 /**
31  * Tests RSA keys. Signatures and encryption are tested in different tests.
32  *
33  * @author bleichen@google.com (Daniel Bleichenbacher)
34  */
35 // TODO(bleichen):
36 // - Add checks for bad random numbers
37 // - expect keys with e=1 to be rejected
38 // - expect keys with e=0 to be rejected
39 // - document stuff
40 // - Maybe also check encodings of private keys.
41 // - Test multi prime RSA
42 // - Tests for alternative representations:
43 //    many libraries sort the primes as: p > q (but not all)
44 //    some libraries compute d mod lambda(n)
45 //    paramaters p,q,... are not really required
46 // - checks for bad random number generation
47 public class RsaKeyTest extends TestCase {
48 
49   public static final String ENCODED_PUBLIC_KEY =
50     "30819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
51         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
52         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
53         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
54         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
55         + "0001";
56 
57   /**
58    * Encodings of the public key from ENCODED_PUBLIC_KEY with modifications.
59    * This list so far has just a simple purpose: it is used to check whether parsing the key
60    * leads to some unexpected exceptions. I.e. it should not be possible to crash an
61    * application with an modified public key.
62    */
63   public static final String[] MODIFIED_PUBLIC_KEY = {
64     // length contains leading 0
65     "3082009f300d06092a864886f70d010101050003818d0030818902818100ab90"
66         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
67         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
68         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
69         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
70         + "010001",
71     "3081a13082000d06092a864886f70d010101050003818d0030818902818100ab"
72         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
73         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
74         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
75         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
76         + "03010001",
77     "3081a1300f068200092a864886f70d010101050003818d0030818902818100ab"
78         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
79         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
80         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
81         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
82         + "03010001",
83     "3081a1300f06092a864886f70d0101010582000003818d0030818902818100ab"
84         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
85         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
86         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
87         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
88         + "03010001",
89     "3081a0300d06092a864886f70d01010105000382008d0030818902818100ab90"
90         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
91         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
92         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
93         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
94         + "010001",
95     "30819f300d06092a864886f70d010101050003818d3082008902818100ab9014"
96         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
97         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
98         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
99         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
100         + "0001",
101     "30819f300d06092a864886f70d010101050003818d30818a0282008100ab9014"
102         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
103         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
104         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
105         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
106         + "0001",
107     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
108         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
109         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
110         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
111         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02820003"
112         + "010001",
113     // wrong length
114     "30a0300d06092a864886f70d010101050003818d0030818902818100ab9014dc"
115         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
116         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
117         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
118         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
119         + "01",
120     "309e300d06092a864886f70d010101050003818d0030818902818100ab9014dc"
121         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
122         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
123         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
124         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
125         + "01",
126     "30819f300e06092a864886f70d010101050003818d0030818902818100ab9014"
127         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
128         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
129         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
130         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
131         + "0001",
132     "30819f300c06092a864886f70d010101050003818d0030818902818100ab9014"
133         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
134         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
135         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
136         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
137         + "0001",
138     "30819f300d060a2a864886f70d010101050003818d0030818902818100ab9014"
139         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
140         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
141         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
142         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
143         + "0001",
144     "30819f300d06082a864886f70d010101050003818d0030818902818100ab9014"
145         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
146         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
147         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
148         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
149         + "0001",
150     "30819f300d06092a864886f70d010101050103818d0030818902818100ab9014"
151         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
152         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
153         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
154         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
155         + "0001",
156     "30819e300d06092a864886f70d0101010500038e0030818902818100ab9014dc"
157         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
158         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
159         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
160         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
161         + "01",
162     "30819e300d06092a864886f70d0101010500038c0030818902818100ab9014dc"
163         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
164         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
165         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
166         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
167         + "01",
168     "30819d300d06092a864886f70d010101050003818b308a02818100ab9014dc47"
169         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
170         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
171         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
172         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
173     "30819d300d06092a864886f70d010101050003818b308802818100ab9014dc47"
174         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
175         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
176         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
177         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
178     "30819d300d06092a864886f70d010101050003818b308188028200ab9014dc47"
179         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
180         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
181         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
182         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
183     "30819d300d06092a864886f70d010101050003818b308188028000ab9014dc47"
184         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
185         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
186         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
187         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
188     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
189         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
190         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
191         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
192         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02040100"
193         + "01",
194     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
195         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
196         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
197         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
198         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02020100"
199         + "01",
200     // uint32 overflow in length
201     "3085010000009f300d06092a864886f70d010101050003818d00308189028181"
202         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
203         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
204         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
205         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
206         + "3f0203010001",
207     "3081a43085010000000d06092a864886f70d010101050003818d003081890281"
208         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
209         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
210         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
211         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
212         + "a23f0203010001",
213     "3081a43012068501000000092a864886f70d010101050003818d003081890281"
214         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
215         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
216         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
217         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
218         + "a23f0203010001",
219     "3081a4301206092a864886f70d0101010585010000000003818d003081890281"
220         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
221         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
222         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
223         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
224         + "a23f0203010001",
225     "3081a3300d06092a864886f70d01010105000385010000008d00308189028181"
226         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
227         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
228         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
229         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
230         + "3f0203010001",
231     "3081a2300d06092a864886f70d01010105000381903085010000008902818100"
232         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
233         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
234         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
235         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
236         + "0203010001",
237     "3081a2300d06092a864886f70d010101050003819030818d0285010000008100"
238         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
239         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
240         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
241         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
242         + "0203010001",
243     "3081a3300d06092a864886f70d010101050003819130818e02818100ab9014dc"
244         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
245         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
246         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
247         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02850100"
248         + "000003010001",
249     // uint64 overflow in length
250     "308901000000000000009f300d06092a864886f70d010101050003818d003081"
251         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
252         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
253         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
254         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
255         + "a0b351a23f0203010001",
256     "3081a8308901000000000000000d06092a864886f70d010101050003818d0030"
257         + "818902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c5410"
258         + "0cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4"
259         + "d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984"
260         + "b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315ac"
261         + "f9a0b351a23f0203010001",
262     "3081a8301606890100000000000000092a864886f70d010101050003818d0030"
263         + "818902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c5410"
264         + "0cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4"
265         + "d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984"
266         + "b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315ac"
267         + "f9a0b351a23f0203010001",
268     "3081a8301606092a864886f70d010101058901000000000000000003818d0030"
269         + "818902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c5410"
270         + "0cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4"
271         + "d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984"
272         + "b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315ac"
273         + "f9a0b351a23f0203010001",
274     "3081a7300d06092a864886f70d0101010500038901000000000000008d003081"
275         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
276         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
277         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
278         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
279         + "a0b351a23f0203010001",
280     "3081a6300d06092a864886f70d01010105000381943089010000000000000089"
281         + "02818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6"
282         + "e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f1"
283         + "09fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562"
284         + "517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0"
285         + "b351a23f0203010001",
286     "3081a6300d06092a864886f70d01010105000381943081910289010000000000"
287         + "00008100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6"
288         + "e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f1"
289         + "09fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562"
290         + "517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0"
291         + "b351a23f0203010001",
292     "3081a7300d06092a864886f70d010101050003819530819202818100ab9014dc"
293         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
294         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
295         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
296         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02890100"
297         + "00000000000003010001",
298     // length = 2**32 - 1
299     "3084ffffffff300d06092a864886f70d010101050003818d0030818902818100"
300         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
301         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
302         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
303         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
304         + "0203010001",
305     "3081a33084ffffffff06092a864886f70d010101050003818d00308189028181"
306         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
307         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
308         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
309         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
310         + "3f0203010001",
311     "3081a330110684ffffffff2a864886f70d010101050003818d00308189028181"
312         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
313         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
314         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
315         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
316         + "3f0203010001",
317     "3081a3301106092a864886f70d0101010584ffffffff03818d00308189028181"
318         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
319         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
320         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
321         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
322         + "3f0203010001",
323     "3081a2300d06092a864886f70d01010105000384ffffffff0030818902818100"
324         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
325         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
326         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
327         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
328         + "0203010001",
329     "3081a1300d06092a864886f70d010101050003818f3084ffffffff02818100ab"
330         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
331         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
332         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
333         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
334         + "03010001",
335     "3081a1300d06092a864886f70d010101050003818f30818c0284ffffffff00ab"
336         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
337         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
338         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
339         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
340         + "03010001",
341     "3081a2300d06092a864886f70d010101050003819030818d02818100ab9014dc"
342         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
343         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
344         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
345         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0284ffff"
346         + "ffff010001",
347     // length = 2**64 - 1
348     "3088ffffffffffffffff300d06092a864886f70d010101050003818d00308189"
349         + "02818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6"
350         + "e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f1"
351         + "09fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562"
352         + "517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0"
353         + "b351a23f0203010001",
354     "3081a73088ffffffffffffffff06092a864886f70d010101050003818d003081"
355         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
356         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
357         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
358         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
359         + "a0b351a23f0203010001",
360     "3081a730150688ffffffffffffffff2a864886f70d010101050003818d003081"
361         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
362         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
363         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
364         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
365         + "a0b351a23f0203010001",
366     "3081a7301506092a864886f70d0101010588ffffffffffffffff03818d003081"
367         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
368         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
369         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
370         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
371         + "a0b351a23f0203010001",
372     "3081a6300d06092a864886f70d01010105000388ffffffffffffffff00308189"
373         + "02818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6"
374         + "e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f1"
375         + "09fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562"
376         + "517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0"
377         + "b351a23f0203010001",
378     "3081a5300d06092a864886f70d01010105000381933088ffffffffffffffff02"
379         + "818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
380         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
381         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
382         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
383         + "51a23f0203010001",
384     "3081a5300d06092a864886f70d01010105000381933081900288ffffffffffff"
385         + "ffff00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
386         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
387         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
388         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
389         + "51a23f0203010001",
390     "3081a6300d06092a864886f70d010101050003819430819102818100ab9014dc"
391         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
392         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
393         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
394         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0288ffff"
395         + "ffffffffffff010001",
396     // removing sequence
397     "",
398     "30819003818d0030818902818100ab9014dc47d44b6d260fc1fef9ab022042fd"
399         + "9566e9d7b60c54100cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb1"
400         + "67d8a44ab93d73c4d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e"
401         + "043b6fec81f9d984b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31"
402         + "dad83563f3a315acf9a0b351a23f0203010001",
403     // appending 0's to sequence
404     "3081a1300d06092a864886f70d010101050003818d0030818902818100ab9014"
405         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
406         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
407         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
408         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
409         + "00010000",
410     "3081a1300f06092a864886f70d0101010500000003818d0030818902818100ab"
411         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
412         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
413         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
414         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
415         + "03010001",
416     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
417         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
418         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
419         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
420         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
421         + "010000",
422     // prepending 0's to sequence
423     "3081a10000300d06092a864886f70d010101050003818d0030818902818100ab"
424         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
425         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
426         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
427         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
428         + "03010001",
429     "3081a1300f000006092a864886f70d010101050003818d0030818902818100ab"
430         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
431         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
432         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
433         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
434         + "03010001",
435     "3081a0300d06092a864886f70d010101050003818e30818b000002818100ab90"
436         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
437         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
438         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
439         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
440         + "010001",
441     // appending unused 0's
442     "30819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
443         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
444         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
445         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
446         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
447         + "00010000",
448     "3081a1300d06092a864886f70d0101010500000003818d0030818902818100ab"
449         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
450         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
451         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
452         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
453         + "03010001",
454     "3081a1300f06092a864886f70d0101010000050003818d0030818902818100ab"
455         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
456         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
457         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
458         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
459         + "03010001",
460     "3081a0300d06092a864886f70d010101050003818e30818902818100ab9014dc"
461         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
462         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
463         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
464         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
465         + "010000",
466     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
467         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
468         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
469         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
470         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f00000203"
471         + "010001",
472     // appending null value
473     "3081a1300d06092a864886f70d010101050003818d0030818902818100ab9014"
474         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
475         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
476         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
477         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
478         + "00010500",
479     "3081a1300f06092a864886f70d0101010500050003818d0030818902818100ab"
480         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
481         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
482         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
483         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
484         + "03010001",
485     "3081a1300f060b2a864886f70d0101010500050003818d0030818902818100ab"
486         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
487         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
488         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
489         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
490         + "03010001",
491     "3081a1300f06092a864886f70d0101010502050003818d0030818902818100ab"
492         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
493         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
494         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
495         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
496         + "03010001",
497     "3081a1300d06092a864886f70d010101050003818f0030818902818100ab9014"
498         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
499         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
500         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
501         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
502         + "00010500",
503     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
504         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
505         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
506         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
507         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
508         + "010500",
509     "3081a0300d06092a864886f70d010101050003818e30818b02818300ab9014dc"
510         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
511         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
512         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
513         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f05000203"
514         + "010001",
515     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
516         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
517         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
518         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
519         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02050100"
520         + "010500",
521     // including garbage
522     "3081a4498030819f300d06092a864886f70d010101050003818d003081890281"
523         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
524         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
525         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
526         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
527         + "a23f0203010001",
528     "3081a4250030819f300d06092a864886f70d010101050003818d003081890281"
529         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
530         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
531         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
532         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
533         + "a23f0203010001",
534     "3081a230819f300d06092a864886f70d010101050003818d0030818902818100"
535         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
536         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
537         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
538         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
539         + "02030100010004deadbeef",
540     "3081a330114980300d06092a864886f70d010101050003818d00308189028181"
541         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
542         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
543         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
544         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
545         + "3f0203010001",
546     "3081a330112500300d06092a864886f70d010101050003818d00308189028181"
547         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
548         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
549         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
550         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
551         + "3f0203010001",
552     "3081a7300f300d06092a864886f70d01010105000004deadbeef03818d003081"
553         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
554         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
555         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
556         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
557         + "a0b351a23f0203010001",
558     "3081a33011260d498006092a864886f70d010101050003818d00308189028181"
559         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
560         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
561         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
562         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
563         + "3f0203010001",
564     "3081a33011260d250006092a864886f70d010101050003818d00308189028181"
565         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
566         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
567         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
568         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
569         + "3f0203010001",
570     "3081a73015260b06092a864886f70d0101010004deadbeef050003818d003081"
571         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
572         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
573         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
574         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
575         + "a0b351a23f0203010001",
576     "3081a3301106092a864886f70d01010125044980050003818d00308189028181"
577         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
578         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
579         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
580         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
581         + "3f0203010001",
582     "3081a3301106092a864886f70d01010125042500050003818d00308189028181"
583         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
584         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
585         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
586         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
587         + "3f0203010001",
588     "3081a7301506092a864886f70d010101250205000004deadbeef03818d003081"
589         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
590         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
591         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
592         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
593         + "a0b351a23f0203010001",
594     "3081a4300d06092a864886f70d0101010500238192498003818d003081890281"
595         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
596         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
597         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
598         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
599         + "a23f0203010001",
600     "3081a4300d06092a864886f70d0101010500238192250003818d003081890281"
601         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
602         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
603         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
604         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
605         + "a23f0203010001",
606     "3081a8300d06092a864886f70d010101050023819003818d0030818902818100"
607         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
608         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
609         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
610         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
611         + "02030100010004deadbeef",
612     "3081a3300d06092a864886f70d010101050003819130818e4980308189028181"
613         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
614         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
615         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
616         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
617         + "3f0203010001",
618     "3081a3300d06092a864886f70d010101050003819130818e2500308189028181"
619         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
620         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
621         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
622         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
623         + "3f0203010001",
624     "3081a7300d06092a864886f70d010101050003819530818c30818902818100ab"
625         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
626         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
627         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
628         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
629         + "030100010004deadbeef",
630     "3081a3300d06092a864886f70d010101050003819130818e2281864980028181"
631         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
632         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
633         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
634         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
635         + "3f0203010001",
636     "3081a3300d06092a864886f70d010101050003819130818e2281862500028181"
637         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
638         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
639         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
640         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
641         + "3f0203010001",
642     "3081a7300d06092a864886f70d010101050003819530819222818402818100ab"
643         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
644         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
645         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
646         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f00"
647         + "04deadbeef0203010001",
648     "3081a2300d06092a864886f70d010101050003819030818d02818100ab9014dc"
649         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
650         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
651         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
652         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f22074980"
653         + "0203010001",
654     "3081a2300d06092a864886f70d010101050003819030818d02818100ab9014dc"
655         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
656         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
657         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
658         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f22072500"
659         + "0203010001",
660     "3081a6300d06092a864886f70d010101050003819430819102818100ab9014dc"
661         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
662         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
663         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
664         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f22050203"
665         + "0100010004deadbeef",
666     // including undefined tags
667     "3081a8aa00bb00cd0030819f300d06092a864886f70d010101050003818d0030"
668         + "818902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c5410"
669         + "0cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4"
670         + "d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984"
671         + "b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315ac"
672         + "f9a0b351a23f0203010001",
673     "3081a6aa02aabb30819f300d06092a864886f70d010101050003818d00308189"
674         + "02818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6"
675         + "e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f1"
676         + "09fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562"
677         + "517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0"
678         + "b351a23f0203010001",
679     "3081a73015aa00bb00cd00300d06092a864886f70d010101050003818d003081"
680         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
681         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
682         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
683         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
684         + "a0b351a23f0203010001",
685     "3081a53013aa02aabb300d06092a864886f70d010101050003818d0030818902"
686         + "818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
687         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
688         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
689         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
690         + "51a23f0203010001",
691     "3081a730152611aa00bb00cd0006092a864886f70d010101050003818d003081"
692         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
693         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
694         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
695         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
696         + "a0b351a23f0203010001",
697     "3081a53013260faa02aabb06092a864886f70d010101050003818d0030818902"
698         + "818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
699         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
700         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
701         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
702         + "51a23f0203010001",
703     "3081a7301506092a864886f70d0101012508aa00bb00cd00050003818d003081"
704         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
705         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
706         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
707         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
708         + "a0b351a23f0203010001",
709     "3081a5301306092a864886f70d0101012506aa02aabb050003818d0030818902"
710         + "818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
711         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
712         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
713         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
714         + "51a23f0203010001",
715     "3081a8300d06092a864886f70d0101010500238196aa00bb00cd0003818d0030"
716         + "818902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c5410"
717         + "0cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4"
718         + "d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984"
719         + "b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315ac"
720         + "f9a0b351a23f0203010001",
721     "3081a6300d06092a864886f70d0101010500238194aa02aabb03818d00308189"
722         + "02818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6"
723         + "e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f1"
724         + "09fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562"
725         + "517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0"
726         + "b351a23f0203010001",
727     "3081a7300d06092a864886f70d0101010500038195308192aa00bb00cd003081"
728         + "8902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
729         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
730         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
731         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
732         + "a0b351a23f0203010001",
733     "3081a5300d06092a864886f70d0101010500038193308190aa02aabb30818902"
734         + "818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
735         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
736         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
737         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
738         + "51a23f0203010001",
739     "3081a7300d06092a864886f70d010101050003819530819222818aaa00bb00cd"
740         + "0002818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100c"
741         + "b6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0"
742         + "f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b5"
743         + "62517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9"
744         + "a0b351a23f0203010001",
745     "3081a5300d06092a864886f70d0101010500038193308190228188aa02aabb02"
746         + "818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1"
747         + "d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109"
748         + "fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b56251"
749         + "7e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b3"
750         + "51a23f0203010001",
751     "3081a6300d06092a864886f70d010101050003819430819102818100ab9014dc"
752         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
753         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
754         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
755         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f220baa00"
756         + "bb00cd000203010001",
757     "3081a4300d06092a864886f70d010101050003819230818f02818100ab9014dc"
758         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
759         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
760         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
761         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f2209aa02"
762         + "aabb0203010001",
763     // changing tag value
764     "2e819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
765         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
766         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
767         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
768         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
769         + "0001",
770     "32819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
771         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
772         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
773         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
774         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
775         + "0001",
776     "ff819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
777         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
778         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
779         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
780         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
781         + "0001",
782     "30819f2e0d06092a864886f70d010101050003818d0030818902818100ab9014"
783         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
784         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
785         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
786         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
787         + "0001",
788     "30819f320d06092a864886f70d010101050003818d0030818902818100ab9014"
789         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
790         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
791         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
792         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
793         + "0001",
794     "30819fff0d06092a864886f70d010101050003818d0030818902818100ab9014"
795         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
796         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
797         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
798         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
799         + "0001",
800     "30819f300d04092a864886f70d010101050003818d0030818902818100ab9014"
801         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
802         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
803         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
804         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
805         + "0001",
806     "30819f300d08092a864886f70d010101050003818d0030818902818100ab9014"
807         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
808         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
809         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
810         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
811         + "0001",
812     "30819f300dff092a864886f70d010101050003818d0030818902818100ab9014"
813         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
814         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
815         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
816         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
817         + "0001",
818     "30819f300d06092a864886f70d010101030003818d0030818902818100ab9014"
819         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
820         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
821         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
822         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
823         + "0001",
824     "30819f300d06092a864886f70d010101070003818d0030818902818100ab9014"
825         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
826         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
827         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
828         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
829         + "0001",
830     "30819f300d06092a864886f70d010101ff0003818d0030818902818100ab9014"
831         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
832         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
833         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
834         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
835         + "0001",
836     "30819f300d06092a864886f70d010101050001818d0030818902818100ab9014"
837         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
838         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
839         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
840         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
841         + "0001",
842     "30819f300d06092a864886f70d010101050005818d0030818902818100ab9014"
843         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
844         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
845         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
846         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
847         + "0001",
848     "30819f300d06092a864886f70d0101010500ff818d0030818902818100ab9014"
849         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
850         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
851         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
852         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
853         + "0001",
854     "30819e300d06092a864886f70d010101050003818c2e818902818100ab9014dc"
855         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
856         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
857         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
858         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
859         + "01",
860     "30819e300d06092a864886f70d010101050003818c32818902818100ab9014dc"
861         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
862         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
863         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
864         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
865         + "01",
866     "30819e300d06092a864886f70d010101050003818cff818902818100ab9014dc"
867         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
868         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
869         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
870         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
871         + "01",
872     "30819e300d06092a864886f70d010101050003818c30818900818100ab9014dc"
873         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
874         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
875         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
876         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
877         + "01",
878     "30819e300d06092a864886f70d010101050003818c30818904818100ab9014dc"
879         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
880         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
881         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
882         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
883         + "01",
884     "30819e300d06092a864886f70d010101050003818c308189ff818100ab9014dc"
885         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
886         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
887         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
888         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
889         + "01",
890     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
891         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
892         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
893         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
894         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f00030100"
895         + "01",
896     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
897         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
898         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
899         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
900         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f04030100"
901         + "01",
902     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
903         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
904         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
905         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
906         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23fff030100"
907         + "01",
908     // dropping value of sequence
909     "3000",
910     "308192300003818d0030818902818100ab9014dc47d44b6d260fc1fef9ab0220"
911         + "42fd9566e9d7b60c54100cb6e1d4edc98590467d0502c17fce69d00ac5efb40b"
912         + "2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236ff517cf84412e173679cfa"
913         + "e42e043b6fec81f9d984b562517e6febe1f72295dbc3fdfc19d3240aa7551556"
914         + "3f31dad83563f3a315acf9a0b351a23f0203010001",
915     // using composition
916     "3081a430013030819e0d06092a864886f70d010101050003818d003081890281"
917         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
918         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
919         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
920         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
921         + "a23f0203010001",
922     "3081a33011300106300c092a864886f70d010101050003818d00308189028181"
923         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
924         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
925         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
926         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
927         + "3f0203010001",
928     "3081a33011260d06012a0608864886f70d010101050003818d00308189028181"
929         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
930         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
931         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
932         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
933         + "3f0203010001",
934     "3081a4300d06092a864886f70d010101050023819203010003818c3081890281"
935         + "8100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4"
936         + "edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb"
937         + "5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e"
938         + "6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351"
939         + "a23f0203010001",
940     "3081a3300d06092a864886f70d010101050003819130818e3001023081888181"
941         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
942         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
943         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
944         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
945         + "3f0203010001",
946     "3081a3300d06092a864886f70d010101050003819130818e2281860201000281"
947         + "80ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
948         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
949         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
950         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
951         + "3f0203010001",
952     "3081a2300d06092a864886f70d010101050003819030818d02818100ab9014dc"
953         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
954         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
955         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
956         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f22070201"
957         + "0102020001",
958     // truncate sequence
959     "30819e300d06092a864886f70d010101050003818d0030818902818100ab9014"
960         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
961         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
962         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
963         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
964         + "00",
965     "30819e0d06092a864886f70d010101050003818d0030818902818100ab9014dc"
966         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
967         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
968         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
969         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
970         + "01",
971     "30819e300c06092a864886f70d0101010503818d0030818902818100ab9014dc"
972         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
973         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
974         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
975         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
976         + "01",
977     "30819e300c092a864886f70d010101050003818d0030818902818100ab9014dc"
978         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
979         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
980         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
981         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
982         + "01",
983     "30819d300d06092a864886f70d010101050003818b30818802818100ab9014dc"
984         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
985         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
986         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
987         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100",
988     "30819d300d06092a864886f70d010101050003818b308188818100ab9014dc47"
989         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
990         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
991         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
992         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
993     // prepend empty sequence
994     "3081a13000300d06092a864886f70d010101050003818d0030818902818100ab"
995         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
996         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
997         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
998         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
999         + "03010001",
1000     "3081a1300f300006092a864886f70d010101050003818d0030818902818100ab"
1001         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1002         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1003         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1004         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1005         + "03010001",
1006     "3081a0300d06092a864886f70d010101050003818e30818b300002818100ab90"
1007         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1008         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1009         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1010         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1011         + "010001",
1012     // append empty sequence
1013     "3081a1300d06092a864886f70d010101050003818d0030818902818100ab9014"
1014         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1015         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1016         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1017         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1018         + "00013000",
1019     "3081a1300f06092a864886f70d0101010500300003818d0030818902818100ab"
1020         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1021         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1022         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1023         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1024         + "03010001",
1025     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
1026         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1027         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1028         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1029         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1030         + "013000",
1031     // sequence of sequence
1032     "3081a230819f300d06092a864886f70d010101050003818d0030818902818100"
1033         + "ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9"
1034         + "8590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26"
1035         + "c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6feb"
1036         + "e1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f"
1037         + "0203010001",
1038     "3081a1300f300d06092a864886f70d010101050003818d0030818902818100ab"
1039         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1040         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1041         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1042         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1043         + "03010001",
1044     "3081a1300d06092a864886f70d010101050003818f30818c30818902818100ab"
1045         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1046         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1047         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1048         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1049         + "03010001",
1050     // truncated sequence
1051     "300f300d06092a864886f70d0101010500",
1052     "30819d300b06092a864886f70d01010103818d0030818902818100ab9014dc47"
1053         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
1054         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
1055         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
1056         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
1057     "308199300d06092a864886f70d010101050003818730818402818100ab9014dc"
1058         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1059         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1060         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1061         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f",
1062     // repeat element in sequence
1063     "3082012f300d06092a864886f70d010101050003818d0030818902818100ab90"
1064         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1065         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1066         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1067         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1068         + "01000103818d0030818902818100ab9014dc47d44b6d260fc1fef9ab022042fd"
1069         + "9566e9d7b60c54100cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb1"
1070         + "67d8a44ab93d73c4d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e"
1071         + "043b6fec81f9d984b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31"
1072         + "dad83563f3a315acf9a0b351a23f0203010001",
1073     "3081a3300d06092a864886f70d010101050003819130818e02818100ab9014dc"
1074         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1075         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1076         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1077         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1078         + "010203010001",
1079     // long form encoding of length
1080     "3081a030810d06092a864886f70d010101050003818d0030818902818100ab90"
1081         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1082         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1083         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1084         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1085         + "010001",
1086     "3081a0300e0681092a864886f70d010101050003818d0030818902818100ab90"
1087         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1088         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1089         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1090         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1091         + "010001",
1092     "3081a0300e06092a864886f70d01010105810003818d0030818902818100ab90"
1093         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1094         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1095         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1096         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1097         + "010001",
1098     "30819f300d06092a864886f70d010101050003818d30818a02818100ab9014dc"
1099         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1100         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1101         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1102         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02810301"
1103         + "0001",
1104     // removing oid
1105     "3081943002050003818d0030818902818100ab9014dc47d44b6d260fc1fef9ab"
1106         + "022042fd9566e9d7b60c54100cb6e1d4edc98590467d0502c17fce69d00ac5ef"
1107         + "b40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236ff517cf84412e17367"
1108         + "9cfae42e043b6fec81f9d984b562517e6febe1f72295dbc3fdfc19d3240aa755"
1109         + "15563f31dad83563f3a315acf9a0b351a23f0203010001",
1110     // appending 0's to oid
1111     "3081a1300f060b2a864886f70d0101010000050003818d0030818902818100ab"
1112         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1113         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1114         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1115         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1116         + "03010001",
1117     // prepending 0's to oid
1118     "3081a1300f060b00002a864886f70d010101050003818d0030818902818100ab"
1119         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1120         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1121         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1122         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1123         + "03010001",
1124     // dropping value of oid
1125     "30819630040600050003818d0030818902818100ab9014dc47d44b6d260fc1fe"
1126         + "f9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d0502c17fce69d00a"
1127         + "c5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236ff517cf84412e1"
1128         + "73679cfae42e043b6fec81f9d984b562517e6febe1f72295dbc3fdfc19d3240a"
1129         + "a75515563f31dad83563f3a315acf9a0b351a23f0203010001",
1130     // modify first byte of oid
1131     "30819f300d06092b864886f70d010101050003818d0030818902818100ab9014"
1132         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1133         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1134         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1135         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1136         + "0001",
1137     // modify last byte of oid
1138     "30819f300d06092a864886f70d010100050003818d0030818902818100ab9014"
1139         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1140         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1141         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1142         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1143         + "0001",
1144     // truncate oid
1145     "30819e300c06082a864886f70d0101050003818d0030818902818100ab9014dc"
1146         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1147         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1148         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1149         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1150         + "01",
1151     "30819e300c0608864886f70d010101050003818d0030818902818100ab9014dc"
1152         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1153         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1154         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1155         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1156         + "01",
1157     // wrong oid
1158     "30819b300906052b0e03021a050003818d0030818902818100ab9014dc47d44b"
1159         + "6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d0502c1"
1160         + "7fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236ff51"
1161         + "7cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295dbc3fd"
1162         + "fc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
1163     "30819f300d0609608648016503040201050003818d0030818902818100ab9014"
1164         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1165         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1166         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1167         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1168         + "0001",
1169     // longer oid
1170     "3081a0300e060a2a864886f70d01010101050003818d0030818902818100ab90"
1171         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1172         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1173         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1174         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1175         + "010001",
1176     // oid with modified node
1177     "30819f300d06092a864886f70d010111050003818d0030818902818100ab9014"
1178         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1179         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1180         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1181         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1182         + "0001",
1183     "3081a33011060d2a864886f70d01018880808001050003818d00308189028181"
1184         + "00ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4ed"
1185         + "c98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a"
1186         + "26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6f"
1187         + "ebe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a2"
1188         + "3f0203010001",
1189     // large integer in oid
1190     "3081a8301606122a864886f70d010182808080808080808001050003818d0030"
1191         + "818902818100ab9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c5410"
1192         + "0cb6e1d4edc98590467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4"
1193         + "d0f109fb5a26c2f8823236ff517cf84412e173679cfae42e043b6fec81f9d984"
1194         + "b562517e6febe1f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315ac"
1195         + "f9a0b351a23f0203010001",
1196     // oid with invalid node
1197     "3081a0300e060a2a864886f70d010101e0050003818d0030818902818100ab90"
1198         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1199         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1200         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1201         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1202         + "010001",
1203     "3081a0300e060a2a80864886f70d010101050003818d0030818902818100ab90"
1204         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1205         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1206         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1207         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1208         + "010001",
1209     // appending 0's to null
1210     "3081a1300f06092a864886f70d0101010502000003818d0030818902818100ab"
1211         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1212         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1213         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1214         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1215         + "03010001",
1216     // appending 0's to bit string
1217     "3081a1300d06092a864886f70d010101050003818f0030818902818100ab9014"
1218         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1219         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1220         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1221         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1222         + "00010000",
1223     // prepending 0's to bit string
1224     "3081a1300d06092a864886f70d010101050003818f00000030818902818100ab"
1225         + "9014dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc985"
1226         + "90467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2"
1227         + "f8823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1"
1228         + "f72295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02"
1229         + "03010001",
1230     // modify first byte of bit string
1231     "30819f300d06092a864886f70d010101050003818d0130818902818100ab9014"
1232         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1233         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1234         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1235         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1236         + "0001",
1237     // modify last byte of bit string
1238     "30819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
1239         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1240         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1241         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1242         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1243         + "0000",
1244     // truncate bit string
1245     "30819e300d06092a864886f70d010101050003818c0030818902818100ab9014"
1246         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1247         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1248         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1249         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1250         + "00",
1251     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
1252         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1253         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1254         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1255         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1256         + "01",
1257     // removing integer
1258     "3018300d06092a864886f70d0101010500030730050203010001",
1259     // appending 0's to integer
1260     "3081a0300d06092a864886f70d010101050003818e30818b02818300ab9014dc"
1261         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1262         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1263         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1264         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f00000203"
1265         + "010001",
1266     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
1267         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1268         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1269         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1270         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02050100"
1271         + "010000",
1272     // prepending 0's to integer
1273     "3081a0300d06092a864886f70d010101050003818e30818b028183000000ab90"
1274         + "14dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590"
1275         + "467d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8"
1276         + "823236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f7"
1277         + "2295dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203"
1278         + "010001",
1279     "3081a0300d06092a864886f70d010101050003818e30818b02818100ab9014dc"
1280         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1281         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1282         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1283         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02050000"
1284         + "010001",
1285     // dropping value of integer
1286     "301a300d06092a864886f70d01010105000309300702000203010001",
1287     "30819b300d06092a864886f70d010101050003818930818602818100ab9014dc"
1288         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1289         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1290         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1291         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0200",
1292     // modify first byte of integer
1293     "30819e300d06092a864886f70d010101050003818c30818902818101ab9014dc"
1294         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1295         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1296         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1297         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1298         + "01",
1299     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
1300         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1301         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1302         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1303         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030000"
1304         + "01",
1305     // modify last byte of integer
1306     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
1307         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1308         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1309         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1310         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23e02030100"
1311         + "01",
1312     "30819e300d06092a864886f70d010101050003818c30818902818100ab9014dc"
1313         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1314         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1315         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1316         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02030100"
1317         + "00",
1318     // truncate integer
1319     "30819d300d06092a864886f70d010101050003818b30818802818000ab9014dc"
1320         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1321         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1322         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1323         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a20203010001",
1324     "30819d300d06092a864886f70d010101050003818b308188028180ab9014dc47"
1325         + "d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d05"
1326         + "02c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f8823236"
1327         + "ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295db"
1328         + "c3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203010001",
1329     "30819d300d06092a864886f70d010101050003818b30818802818100ab9014dc"
1330         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1331         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1332         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1333         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02020100",
1334     "30819d300d06092a864886f70d010101050003818b30818802818100ab9014dc"
1335         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1336         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1337         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1338         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f02020001",
1339     // leading ff in integer
1340     "30819f300d06092a864886f70d010101050003818d30818a028182ff00ab9014"
1341         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1342         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1343         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1344         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020301"
1345         + "0001",
1346     "30819f300d06092a864886f70d010101050003818d30818a02818100ab9014dc"
1347         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1348         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1349         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1350         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0204ff01"
1351         + "0001",
1352     // infinity
1353     "301b300d06092a864886f70d0101010500030a30080901800203010001",
1354     "30819c300d06092a864886f70d010101050003818a30818702818100ab9014dc"
1355         + "47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc98590467d"
1356         + "0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f88232"
1357         + "36ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f72295"
1358         + "dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f090180",
1359     // n=0
1360     "301c300d06092a864886f70d0101010500030b0030080201000203010001",
1361     // negative n
1362     "30819f300d06092a864886f70d010101050003818d00308189028181ff546feb"
1363         + "23b82bb492d9f03e010654fddfbd026a99162849f3abeff3491e2b12367a6fb9"
1364         + "82fafd3e8031962ff53a104bf4d34e98275bb546c28c3b2f0ef604a5d93d077d"
1365         + "cdc900ae8307bbed1e8c9863051bd1fbc490137e06267b4a9dae8190141e08dd"
1366         + "6a243c0203e62cdbf558aaeaa9c0ce2527ca9c0c5cea53065f4cae5dc1020301"
1367         + "0001",
1368     // e=0
1369     "30819d300d06092a864886f70d010101050003818b0030818702818100ab9014"
1370         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1371         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1372         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1373         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020100",
1374     // e=1
1375     "30819d300d06092a864886f70d010101050003818b0030818702818100ab9014"
1376         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1377         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1378         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1379         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020101",
1380     // e=2
1381     "30819d300d06092a864886f70d010101050003818b0030818702818100ab9014"
1382         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1383         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1384         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1385         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f020102",
1386     // negative e
1387     "30819f300d06092a864886f70d010101050003818d0030818902818100ab9014"
1388         + "dc47d44b6d260fc1fef9ab022042fd9566e9d7b60c54100cb6e1d4edc9859046"
1389         + "7d0502c17fce69d00ac5efb40b2cb167d8a44ab93d73c4d0f109fb5a26c2f882"
1390         + "3236ff517cf84412e173679cfae42e043b6fec81f9d984b562517e6febe1f722"
1391         + "95dbc3fdfc19d3240aa75515563f31dad83563f3a315acf9a0b351a23f0203fe"
1392         + "ffff",
1393   };
1394 
checkPrivateCrtKey(RSAPrivateCrtKey key, int expectedKeySize)1395   private void checkPrivateCrtKey(RSAPrivateCrtKey key, int expectedKeySize) throws Exception {
1396     BigInteger p = key.getPrimeP();
1397     BigInteger q = key.getPrimeQ();
1398     BigInteger n = key.getModulus();
1399     BigInteger e = key.getPublicExponent();
1400     BigInteger d = key.getPrivateExponent();
1401     BigInteger dp = key.getPrimeExponentP();
1402     BigInteger dq = key.getPrimeExponentQ();
1403     BigInteger crtCoeff = key.getCrtCoefficient();
1404 
1405     // Simple test that (n,d,e) is a valid RSA key.
1406     assertEquals(n, p.multiply(q));
1407     assertEquals(expectedKeySize, n.bitLength());
1408     int certainty = 80;
1409     assertTrue(p.isProbablePrime(certainty));
1410     assertTrue(q.isProbablePrime(certainty));
1411     // Very simple checks for weak random number generators.
1412     RandomUtil.checkPrime(p);
1413     RandomUtil.checkPrime(q);
1414     assertTrue(d.bitLength() > expectedKeySize / 2);
1415     // TODO(bleichen): Keys that are very imbalanced can be broken with elliptic curve factoring.
1416     //   Add other checks. E.g. for the size of dp and dq
1417     assertTrue(p.bitLength() > 256);
1418     assertTrue(q.bitLength() > 256);
1419     BigInteger p1 = p.subtract(BigInteger.ONE);
1420     BigInteger q1 = q.subtract(BigInteger.ONE);
1421     BigInteger phi = p1.multiply(q1);
1422     BigInteger order = phi.divide(p1.gcd(q1)); // maximal order of elements
1423     assertEquals(BigInteger.ONE, d.multiply(e).mod(order));
1424     assertEquals(d.mod(p1), dp.mod(p1));
1425     assertEquals(d.mod(q1), dq.mod(q1));
1426     assertEquals(q.multiply(crtCoeff).mod(p), BigInteger.ONE);
1427   }
1428 
checkPublicKey(RSAPublicKey pub, RSAPrivateKey priv)1429   private void checkPublicKey(RSAPublicKey pub, RSAPrivateKey priv) {
1430     assertEquals(pub.getModulus(), priv.getModulus());
1431     BigInteger e = pub.getPublicExponent();
1432     // Checks that e > 1. [CVE-1999-1444]
1433     assertEquals(e.compareTo(BigInteger.ONE), 1);
1434   }
1435 
checkKeyPair(KeyPair keypair, int keySizeInBits)1436   private void checkKeyPair(KeyPair keypair, int keySizeInBits) throws Exception {
1437     RSAPublicKey pub = (RSAPublicKey) keypair.getPublic();
1438     RSAPrivateKey priv = (RSAPrivateKey) keypair.getPrivate();
1439     if (priv instanceof RSAPrivateCrtKey) {
1440       checkPrivateCrtKey((RSAPrivateCrtKey) priv, keySizeInBits);
1441     } else {
1442       // Using a CRT key leads to 6-7 times better performance than not using the CRT.
1443       // Such a perfomance loss makes a library almost useless. Thus we consider this
1444       // a bug.
1445       fail("Expecting an RSAPrivateCrtKey instead of " + priv.getClass().getName());
1446     }
1447     checkPublicKey(pub, priv);
1448   }
1449 
testKeyGenerationSize(int keySizeInBits)1450   public void testKeyGenerationSize(int keySizeInBits) throws Exception {
1451     KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
1452     keyGen.initialize(keySizeInBits);
1453     KeyPair keypair = keyGen.genKeyPair();
1454     checkKeyPair(keypair, keySizeInBits);
1455   }
1456 
testKeyGeneration()1457   public void testKeyGeneration() throws Exception {
1458     testKeyGenerationSize(1024);
1459     testKeyGenerationSize(2048);
1460   }
1461 
1462   /**
1463    * Checks whether decoding and again encoding an RSA public key results
1464    * in the same encoding.
1465    * This is a regression test. Failing this test implies that the encoding has changed.
1466    * Such a failure does not need to be a bug, since several encoding for the same key are
1467    * possible.
1468    */
testEncodeDecodePublic()1469   public void testEncodeDecodePublic() throws Exception {
1470     KeyFactory kf = KeyFactory.getInstance("RSA");
1471     byte[] encoded = TestUtil.hexToBytes(ENCODED_PUBLIC_KEY);
1472     X509EncodedKeySpec spec = new X509EncodedKeySpec(encoded);
1473     RSAPublicKey pub = (RSAPublicKey) kf.generatePublic(spec);
1474     assertEquals("The test assumes that the public key is in X.509 format",
1475                  "X.509", pub.getFormat());
1476     assertEquals(ENCODED_PUBLIC_KEY, TestUtil.bytesToHex(pub.getEncoded()));
1477   }
1478 
1479   /**
1480    * Parses a list of modified encodings of an RSA public key.
1481    * Expects that any modification either results in an InvalidKeySpecException
1482    * or an altered PublicKey.
1483    * This test has mostly "defense in depth" characteristic, since applications should
1484    * never accept unauthenticated public keys.
1485    */
testModifiedPublicKeyDecoding()1486   public void testModifiedPublicKeyDecoding() throws Exception {
1487     KeyFactory kf = KeyFactory.getInstance("RSA");
1488     int cnt = 0;
1489     for (String encoded : MODIFIED_PUBLIC_KEY) {
1490       X509EncodedKeySpec spec = new X509EncodedKeySpec(TestUtil.hexToBytes(encoded));
1491       try {
1492         RSAPublicKey unusedKey = (RSAPublicKey) kf.generatePublic(spec);
1493         // TODO(bleichen): check the keys that are accepted.
1494         //   To decide whether a key should have been rejected or not the test vectors must be
1495         //   divided into several categories:
1496         //   - keys that use BER encoding: these are OK
1497         //   - keys that include additional fields or garbage: might be OK
1498         //   - keys where the modification does not change the values: are probably OK
1499         //   - keys with missing parameters: should be rejected
1500         //   - keys with impossible values (negative n, negative e): should be rejected.
1501       } catch (InvalidKeySpecException ex) {
1502         // expected
1503       } catch (Exception ex) {
1504         System.out.println("generatePublic throws:" + ex.getMessage() + " for " + encoded);
1505         cnt++;
1506       }
1507     }
1508     assertEquals(0, cnt);
1509   }
1510 
1511   // TODO(bleichen): This test is only needed as long as there are open issues.
1512 
1513 }
1514