Tizen 2.0 Release
[external/libgnutls26.git] / tests / certder.c
1 /*
2  * Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
3  *
4  * Author: Simon Josefsson
5  *
6  * This file is part of GnuTLS.
7  *
8  * GnuTLS is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * GnuTLS is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with GnuTLS; if not, write to the Free Software Foundation,
20  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
21  */
22
23 #ifdef HAVE_CONFIG_H
24 #include "config.h"
25 #endif
26
27 #include <gnutls/gnutls.h>
28 #include <gnutls/x509.h>
29 #include "utils.h"
30
31 void
32 doit (void)
33 {
34   int ret;
35   unsigned char der[] = {
36     0x30, 0x82, 0x04, 0x10, 0x30, 0x82, 0x03, 0x79,
37     0xa0, 0x07, 0x02, 0x84, 0x90, 0x00, 0x00, 0x00,
38     0x02, 0x02, 0x01, 0x00, 0x30, 0x0d, 0x06, 0x09,
39     0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
40     0x04, 0x05, 0x00, 0x30, 0x81, 0xbb, 0x31, 0x0b,
41     0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13,
42     0x02, 0x2d, 0x2d, 0x31, 0x12, 0x30, 0x10, 0x06,
43     0x03, 0x55, 0x04, 0x08, 0x13, 0x09, 0x53, 0x6f,
44     0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31,
45     0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x07,
46     0x13, 0x08, 0x53, 0x6f, 0x6d, 0x65, 0x43, 0x69,
47     0x74, 0x79, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03,
48     0x55, 0x04, 0x0a, 0x13, 0x10, 0x53, 0x6f, 0x6d,
49     0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a,
50     0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30,
51     0x1d, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16,
52     0x53, 0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61,
53     0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
54     0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, 0x1e,
55     0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
56     0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f,
57     0x73, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
58     0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x31, 0x29,
59     0x30, 0x27, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
60     0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x1a, 0x72,
61     0x6f, 0x6f, 0x74, 0x40, 0x6c, 0x6f, 0x63, 0x61,
62     0x6c, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f,
63     0x63, 0x61, 0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69,
64     0x6e, 0x30, 0x1e, 0x17, 0x0d, 0x30, 0x34, 0x30,
65     0x32, 0x31, 0x38, 0x32, 0x30, 0x30, 0x32, 0x33,
66     0x34, 0x5a, 0x17, 0x0d, 0x30, 0x35, 0x31, 0x31,
67     0x31, 0x37, 0x32, 0x30, 0x30, 0x32, 0x33, 0x34,
68     0x5a, 0x30, 0x81, 0xbb, 0x31, 0x0b, 0x30, 0x09,
69     0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x2d,
70     0x2d, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55,
71     0x04, 0x08, 0x13, 0x09, 0x53, 0x6f, 0x6d, 0x65,
72     0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x11, 0x30,
73     0x0f, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, 0x08,
74     0x53, 0x6f, 0x6d, 0x65, 0x43, 0x69, 0x74, 0x79,
75     0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55, 0x04,
76     0x0a, 0x13, 0x10, 0x53, 0x6f, 0x6d, 0x65, 0x4f,
77     0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
78     0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x06,
79     0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x53, 0x6f,
80     0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
81     0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c,
82     0x55, 0x6e, 0x69, 0x74, 0x31, 0x1e, 0x30, 0x1c,
83     0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x6c,
84     0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74,
85     0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64, 0x6f,
86     0x6d, 0x61, 0x69, 0x6e, 0x31, 0x29, 0x30, 0x27,
87     0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
88     0x01, 0x09, 0x01, 0x16, 0x1a, 0x72, 0x6f, 0x6f,
89     0x74, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68,
90     0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61,
91     0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x30,
92     0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
93     0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05,
94     0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89,
95     0x02, 0x81, 0x81, 0x00, 0xda, 0x3d, 0xb7, 0x66,
96     0x9a, 0x41, 0x4f, 0xca, 0x1d, 0xd1, 0xc4, 0x1f,
97     0xc9, 0x4c, 0xc6, 0x76, 0x45, 0xc5, 0x8e, 0x2f,
98     0x3d, 0x45, 0xf5, 0x16, 0x9f, 0xb5, 0x22, 0x0b,
99     0x61, 0x60, 0xa4, 0x42, 0x42, 0x98, 0xae, 0x45,
100     0xe1, 0x4a, 0x17, 0x0b, 0x6e, 0xf7, 0x4e, 0xc0,
101     0x1e, 0xe7, 0x78, 0xd0, 0x80, 0xfc, 0xde, 0x0a,
102     0x96, 0x43, 0x13, 0xe4, 0xb5, 0xef, 0x47, 0xca,
103     0x8f, 0xb3, 0x13, 0x92, 0x10, 0xc4, 0x02, 0x7b,
104     0xbb, 0x6c, 0x9f, 0x2b, 0x63, 0x65, 0xfa, 0xac,
105     0xcb, 0xc9, 0x14, 0x68, 0x53, 0xd9, 0xe2, 0x9c,
106     0x57, 0x52, 0x23, 0xb9, 0x4f, 0x92, 0xc0, 0xa0,
107     0xe3, 0xf5, 0x50, 0xb3, 0xc4, 0x5f, 0x4e, 0x73,
108     0x9d, 0x0e, 0xfd, 0x9c, 0x57, 0x8e, 0x4c, 0x13,
109     0xe0, 0x7a, 0x16, 0x6b, 0x27, 0xc9, 0xac, 0xb3,
110     0x47, 0xb2, 0x3f, 0x8f, 0xe6, 0x1d, 0x00, 0xc8,
111     0xaa, 0x6f, 0xdf, 0xcb, 0x02, 0x03, 0x01, 0x00,
112     0x01, 0xa3, 0x82, 0x01, 0x1c, 0x30, 0x82, 0x01,
113     0x18, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e,
114     0x04, 0x16, 0x04, 0x14, 0xe6, 0x30, 0x79, 0x2b,
115     0xe2, 0xcf, 0x4f, 0xa7, 0x40, 0xa4, 0xb9, 0xa4,
116     0x1e, 0x95, 0x56, 0xe8, 0x94, 0xda, 0xd9, 0x15,
117     0x30, 0x81, 0xe8, 0x06, 0x03, 0x55, 0x1d, 0x23,
118     0x04, 0x81, 0xe0, 0x30, 0x81, 0xdd, 0x80, 0x14,
119     0xe6, 0x30, 0x79, 0x2b, 0xe2, 0xcf, 0x4f, 0xa7,
120     0x40, 0xa4, 0xb9, 0xa4, 0x1e, 0x95, 0x56, 0xe8,
121     0x94, 0xda, 0xd9, 0x15, 0xa1, 0x81, 0xc1, 0xa4,
122     0x81, 0xbe, 0x30, 0x81, 0xbb, 0x31, 0x0b, 0x30,
123     0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02,
124     0x2d, 0x2d, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03,
125     0x55, 0x04, 0x08, 0x13, 0x09, 0x53, 0x6f, 0x6d,
126     0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x11,
127     0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13,
128     0x08, 0x53, 0x6f, 0x6d, 0x65, 0x43, 0x69, 0x74,
129     0x79, 0x31, 0x19, 0x30, 0x17, 0x06, 0x03, 0x55,
130     0x04, 0x0a, 0x13, 0x10, 0x53, 0x6f, 0x6d, 0x65,
131     0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
132     0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d,
133     0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x16, 0x53,
134     0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e,
135     0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61,
136     0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, 0x1e, 0x30,
137     0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15,
138     0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73,
139     0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64,
140     0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x31, 0x29, 0x30,
141     0x27, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
142     0x0d, 0x01, 0x09, 0x01, 0x16, 0x1a, 0x72, 0x6f,
143     0x6f, 0x74, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
144     0x68, 0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f, 0x63,
145     0x61, 0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
146     0x82, 0x01, 0x00, 0x30, 0x0c, 0x06, 0x03, 0x55,
147     0x1d, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01,
148     0xff, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48,
149     0x86, 0xf7, 0x0d, 0x01, 0x01, 0x04, 0x05, 0x00,
150     0x03, 0x81, 0x81, 0x00, 0xcd, 0xc9, 0x30, 0x6d,
151     0x02, 0x65, 0x41, 0xea, 0x0e, 0x46, 0x08, 0x6c,
152     0x2f, 0xd5, 0xa7, 0xe4, 0x29, 0xd7, 0x3f, 0x18,
153     0x16, 0xd7, 0x4b, 0x6f, 0x9d, 0xc0, 0x5b, 0xbf,
154     0x68, 0x7b, 0x2e, 0x66, 0xa5, 0x1b, 0xfd, 0xff,
155     0x09, 0x25, 0xa5, 0x56, 0x37, 0x41, 0xd8, 0xaf,
156     0x07, 0xa6, 0x12, 0xa8, 0x58, 0xc4, 0x42, 0x9c,
157     0xce, 0x90, 0x6a, 0x9e, 0x7e, 0x04, 0x27, 0xe3,
158     0xfa, 0x8e, 0xe5, 0xdc, 0xa8, 0x5a, 0xf7, 0xc9,
159     0x0d, 0x23, 0x56, 0x8e, 0x46, 0x84, 0xe8, 0x34,
160     0x83, 0x86, 0xca, 0xc1, 0xcd, 0xfe, 0x68, 0x00,
161     0x67, 0x3f, 0x24, 0x3b, 0x50, 0x63, 0x21, 0x7f,
162     0xba, 0xc6, 0xdb, 0xff, 0xf4, 0x3a, 0x10, 0xb6,
163     0xb5, 0x09, 0x4d, 0x41, 0xff, 0xef, 0xc0, 0x84,
164     0x48, 0x1b, 0x51, 0x87, 0xe6, 0x85, 0xf0, 0x1e,
165     0xbd, 0x99, 0x0d, 0xd3, 0x98, 0xd0, 0xab, 0xd8,
166     0x30, 0x2a, 0xd5, 0x74
167   };
168
169   /* Triggers crash in _asn1_get_objectid_der. */
170   unsigned char der2[] = {
171     0x30, 0x82, 0x04, 0x10, 0x30, 0x82, 0x03, 0x79,
172     0xa0, 0x3, 0x2, 0x1, 0x2, 0x2, 0x1, 0x0, 0x30,
173     0x11, 0x6, 0x84, 0x10, 0x0, 0x0, 0x0, 0x2a,
174     0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x1, 0x4,
175     0x5, 0x0, 0x30, 0x81, 0xbb, 0x31, 0xb, 0x30,
176     0x9, 0x6, 0x3, 0x55, 0x4, 0x6, 0x13, 0x2,
177     0x2d, 0x2d, 0x31, 0x12, 0x30, 0x10, 0x6,
178     0x3, 0x55, 0x4, 0x8, 0x13, 0x9, 0x53,
179     0x6f, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74,
180     0x65, 0x31, 0x11, 0x30, 0xf, 0x6, 0x3,
181     0x55, 0x4, 0x7, 0x13, 0x8, 0x53, 0x6f,
182     0x6d, 0x65, 0x43, 0x69, 0x74, 0x79,
183     0x31, 0x19, 0x30, 0x17, 0x6, 0x3, 0x55,
184     0x4, 0xa, 0x13, 0x10, 0x53, 0x6f, 0x6d,
185     0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
186     0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31,
187     0x1f, 0x30, 0x1d, 0x6, 0x3, 0x55, 0x4, 0xb,
188     0x13, 0x16, 0x53, 0x6f, 0x6d, 0x65, 0x4f,
189     0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
190     0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55,
191     0x6e, 0x69, 0x74, 0x31, 0x1e, 0x30, 0x1c,
192     0x6, 0x3, 0x55, 0x4, 0x3, 0x13, 0x15, 0x6c,
193     0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73,
194     0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
195     0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x31,
196     0x29, 0x30, 0x27, 0x6, 0x9, 0x2a, 0x86,
197     0x48, 0x86, 0xf7, 0xd, 0x1, 0x9, 0x1, 0x16,
198     0x1a, 0x72
199   };
200
201   /* Triggers crash in asn1_der_decoding. */
202   unsigned char der3[] = {
203     0x30, 0x82, 0x4, 0x10, 0x30, 0x82, 0x3, 0x79,
204     0xa0, 0x3, 0x2, 0x1, 0x2, 0x2, 0x1, 0x0,
205     0x30, 0x11, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd,
206     0x1, 0x1, 0x4, 0x5, 0x84, 0x10, 0x0, 0x0, 0x0, 0x30, 0x81, 0xbb, 0x31,
207     0xb, 0x30, 0x9, 0x6, 0x3, 0x55, 0x4, 0x6, 0x13, 0x2, 0x2d, 0x2d, 0x31,
208     0x12, 0x30, 0x10, 0x6, 0x3, 0x55, 0x4, 0x8, 0x13, 0x9, 0x53, 0x6f, 0x6d,
209     0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x11, 0x30, 0xf, 0x6, 0x3,
210     0x55, 0x4, 0x7, 0x13, 0x8, 0x53, 0x6f, 0x6d, 0x65, 0x43, 0x69, 0x74,
211     0x79, 0x31, 0x19, 0x30, 0x17, 0x6, 0x3, 0x55, 0x4, 0xa, 0x13, 0x10,
212     0x53, 0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61,
213     0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x6, 0x3, 0x55, 0x4,
214     0xb, 0x13, 0x16, 0x53, 0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e,
215     0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69,
216     0x74, 0x31, 0x1e, 0x30, 0x1c, 0x6, 0x3, 0x55, 0x4, 0x3, 0x13, 0x15,
217     0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f,
218     0x63, 0x61, 0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x31, 0x29, 0x30,
219     0x27, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x9, 0x1, 0x16,
220     0x1a, 0x72, 0x6f, 0x6f, 0x74, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68,
221     0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64, 0x6f, 0x6d,
222     0x61, 0x69, 0x6e, 0x30, 0x1e, 0x17, 0xd, 0x30, 0x34, 0x30, 0x32, 0x31,
223     0x38, 0x32, 0x30, 0x30, 0x32, 0x33, 0x34, 0x5a, 0x17, 0xd, 0x30, 0x35,
224     0x31, 0x31, 0x31, 0x37, 0x32, 0x30, 0x30, 0x32, 0x33, 0x34, 0x5a, 0x30,
225     0x81, 0xbb, 0x31, 0xb, 0x30, 0x9, 0x6, 0x3, 0x55, 0x4, 0x6, 0x13, 0x2,
226     0x2d, 0x2d, 0x31, 0x12, 0x30, 0x10, 0x6, 0x3, 0x55, 0x4, 0x8, 0x13, 0x9,
227     0x53, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x11, 0x30,
228     0xf, 0x6, 0x3, 0x55, 0x4, 0x7, 0x13, 0x8, 0x53, 0x6f, 0x6d, 0x65, 0x43,
229     0x69, 0x74, 0x79, 0x31, 0x19, 0x30, 0x17, 0x6, 0x3, 0x55, 0x4, 0xa,
230     0x13, 0x10, 0x53, 0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69,
231     0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x31, 0x1f, 0x30, 0x1d, 0x6, 0x3,
232     0x55, 0x4, 0xb, 0x13, 0x16, 0x53, 0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67,
233     0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55,
234     0x6e, 0x69, 0x74, 0x31, 0x1e, 0x30, 0x1c, 0x6, 0x3, 0x55, 0x4, 0x3,
235     0x13, 0x15, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74, 0x2e,
236     0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x31,
237     0x29, 0x30, 0x27, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x9,
238     0x1, 0x16, 0x1a, 0x72, 0x6f, 0x6f, 0x74, 0x40, 0x6c, 0x6f, 0x63, 0x61,
239     0x6c, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64,
240     0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x30, 0x81, 0x9f, 0x30, 0xd, 0x6, 0x9,
241     0x2a, 0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x1, 0x1, 0x5, 0x0, 0x3, 0x81,
242     0x8d, 0x0, 0x30, 0x81, 0x89, 0x2, 0x81, 0x81, 0x0, 0xda, 0x3d, 0xb7,
243     0x66, 0x9a, 0x41, 0x4f, 0xca, 0x1d, 0xd1, 0xc4, 0x1f, 0xc9, 0x4c, 0xc6,
244     0x76, 0x45, 0xc5, 0x8e, 0x2f, 0x3d, 0x45, 0xf5, 0x16, 0x9f, 0xb5, 0x22,
245     0xb, 0x61, 0x60, 0xa4, 0x42, 0x42, 0x98, 0xae, 0x45, 0xe1, 0x4a, 0x17,
246     0xb, 0x6e, 0xf7, 0x4e, 0xc0, 0x1e, 0xe7, 0x78, 0xd0, 0x80, 0xfc, 0xde,
247     0xa, 0x96, 0x43, 0x13, 0xe4, 0xb5, 0xef, 0x47, 0xca, 0x8f, 0xb3, 0x13,
248     0x92, 0x10, 0xc4, 0x2, 0x7b, 0xbb, 0x6c, 0x9f, 0x2b, 0x63, 0x65, 0xfa,
249     0xac, 0xcb, 0xc9, 0x14, 0x68, 0x53, 0xd9, 0xe2, 0x9c, 0x57, 0x52, 0x23,
250     0xb9, 0x4f, 0x92, 0xc0, 0xa0, 0xe3, 0xf5, 0x50, 0xb3, 0xc4, 0x5f, 0x4e,
251     0x73, 0x9d, 0xe, 0xfd, 0x9c, 0x57, 0x8e, 0x4c, 0x13, 0xe0, 0x7a, 0x16,
252     0x6b, 0x27, 0xc9, 0xac, 0xb3, 0x47, 0xb2, 0x3f, 0x8f, 0xe6, 0x1d, 0x0,
253     0xc8, 0xaa, 0x6f, 0xdf, 0xcb, 0x2, 0x3, 0x1, 0x0, 0x1, 0xa3, 0x82, 0x1,
254     0x1c, 0x30, 0x82, 0x1, 0x18, 0x30, 0x1d, 0x6, 0x3, 0x55, 0x1d, 0xe, 0x4,
255     0x16, 0x4, 0x14, 0xe6, 0x30, 0x79, 0x2b, 0xe2, 0xcf, 0x4f, 0xa7, 0x40,
256     0xa4, 0xb9, 0xa4, 0x1e, 0x95, 0x56, 0xe8, 0x94, 0xda, 0xd9, 0x15, 0x30,
257     0x81, 0xe8, 0x6, 0x3, 0x55, 0x1d, 0x23, 0x4, 0x81, 0xe0, 0x30, 0x81,
258     0xdd, 0x80, 0x14, 0xe6, 0x30, 0x79, 0x2b, 0xe2, 0xcf, 0x4f, 0xa7, 0x40,
259     0xa4, 0xb9, 0xa4, 0x1e, 0x95, 0x56, 0xe8, 0x94, 0xda, 0xd9, 0x15, 0xa1,
260     0x81, 0xc1, 0xa4, 0x81, 0xbe, 0x30, 0x81, 0xbb, 0x31, 0xb, 0x30, 0x9,
261     0x6, 0x3, 0x55, 0x4, 0x6, 0x13, 0x2, 0x2d, 0x2d, 0x31, 0x12, 0x30, 0x10,
262     0x6, 0x3, 0x55, 0x4, 0x8, 0x13, 0x9, 0x53, 0x6f, 0x6d, 0x65, 0x53, 0x74,
263     0x61, 0x74, 0x65, 0x31, 0x11, 0x30, 0xf, 0x6, 0x3, 0x55, 0x4, 0x7, 0x13,
264     0x8, 0x53, 0x6f, 0x6d, 0x65, 0x43, 0x69, 0x74, 0x79, 0x31, 0x19, 0x30,
265     0x17, 0x6, 0x3, 0x55, 0x4, 0xa, 0x13, 0x10, 0x53, 0x6f, 0x6d, 0x65,
266     0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e,
267     0x31, 0x1f, 0x30, 0x1d, 0x6, 0x3, 0x55, 0x4, 0xb, 0x13, 0x16, 0x53,
268     0x6f, 0x6d, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74,
269     0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x55, 0x6e, 0x69, 0x74, 0x31, 0x1e, 0x30,
270     0x1c, 0x6, 0x3, 0x55, 0x4, 0x3, 0x13, 0x15, 0x6c, 0x6f, 0x63, 0x61,
271     0x6c, 0x68, 0x6f, 0x73, 0x74, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64,
272     0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x31, 0x29, 0x30, 0x27, 0x6, 0x9, 0x2a,
273     0x86, 0x48, 0x86, 0xf7, 0xd, 0x1, 0x9, 0x1, 0x16, 0x1a, 0x72, 0x6f,
274     0x6f, 0x74, 0x40, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x68, 0x6f, 0x73, 0x74,
275     0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
276     0x82, 0x1, 0x0, 0x30, 0xc, 0x6, 0x3, 0x55, 0x1d, 0x13, 0x4, 0x5, 0x30,
277     0x3, 0x1, 0x1, 0xff, 0x30, 0xd, 0x6, 0x9, 0x2a, 0x86, 0x48, 0x86, 0xf7,
278     0xd, 0x1, 0x1, 0x4, 0x5, 0x0, 0x3, 0x81, 0x81, 0x0, 0xcd, 0xc9, 0x30,
279     0x6d, 0x2, 0x65, 0x41, 0xea, 0xe, 0x46, 0x8, 0x6c, 0x2f, 0xd5, 0xa7,
280     0xe4, 0x29, 0xd7, 0x3f, 0x18, 0x16, 0xd7, 0x4b, 0x6f, 0x9d, 0xc0, 0x5b,
281     0xbf, 0x68, 0x7b, 0x2e, 0x66, 0xa5, 0x1b, 0xfd, 0xff, 0x9, 0x25, 0xa5,
282     0x56, 0x37, 0x41, 0xd8, 0xaf, 0x7, 0xa6, 0x12, 0xa8, 0x58, 0xc4, 0x42,
283     0x9c, 0xce, 0x90, 0x6a, 0x9e, 0x7e, 0x4, 0x27, 0xe3, 0xfa, 0x8e, 0xe5,
284     0xdc, 0xa8, 0x5a, 0xf7, 0xc9, 0xd, 0x23, 0x56, 0x8e, 0x46, 0x84, 0xe8,
285     0x34, 0x83, 0x86, 0xca, 0xc1, 0xcd, 0xfe, 0x68, 0x0, 0x67, 0x3f, 0x24,
286     0x3b, 0x50, 0x63, 0x21, 0x7f, 0xba, 0xc6, 0xdb, 0xff, 0xf4, 0x3a, 0x10,
287     0xb6, 0xb5, 0x9, 0x4d, 0x41, 0xff, 0xef, 0xc0, 0x84, 0x48, 0x1b, 0x51,
288     0x87, 0xe6, 0x85, 0xf0, 0x1e, 0xbd, 0x99, 0xd, 0xd3, 0x98, 0xd0, 0xab,
289     0xd8, 0x30, 0x2a, 0xd5, 0x74
290   };
291   gnutls_datum_t derCert = { der, sizeof (der) };
292   gnutls_datum_t der2Cert = { der2, sizeof (der2) };
293   gnutls_datum_t der3Cert = { der3, sizeof (der3) };
294   gnutls_x509_crt_t cert;
295
296   ret = gnutls_global_init ();
297   if (ret < 0)
298     fail ("init %d\n", ret);
299
300   ret = gnutls_x509_crt_init (&cert);
301   if (ret < 0)
302     fail ("crt_init %d\n", ret);
303
304   ret = gnutls_x509_crt_import (cert, &derCert, GNUTLS_X509_FMT_DER);
305   if (ret != GNUTLS_E_ASN1_DER_ERROR)
306     fail ("crt_import %d\n", ret);
307
308   gnutls_x509_crt_deinit (cert);
309
310   ret = gnutls_x509_crt_init (&cert);
311   if (ret < 0)
312     fail ("crt_init %d\n", ret);
313
314   ret = gnutls_x509_crt_import (cert, &der2Cert, GNUTLS_X509_FMT_DER);
315   if (ret != GNUTLS_E_ASN1_DER_ERROR)
316     fail ("crt2_import %d\n", ret);
317
318   gnutls_x509_crt_deinit (cert);
319
320   ret = gnutls_x509_crt_init (&cert);
321   if (ret < 0)
322     fail ("crt_init %d\n", ret);
323
324   ret = gnutls_x509_crt_import (cert, &der3Cert, GNUTLS_X509_FMT_DER);
325   if (ret != GNUTLS_E_ASN1_DER_ERROR)
326     fail ("crt3_import %d\n", ret);
327
328   if (debug)
329     success ("done\n");
330
331   gnutls_x509_crt_deinit (cert);
332
333   gnutls_global_deinit ();
334 }