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