1/*
2 *  si-61-pkcs12.c
3 *  Security
4 *
5 *  Created by Conrad Sauerwald on 3/19/08.
6 *  Copyright (c) 2008-2010 Apple Inc. All Rights Reserved.
7 *
8 */
9
10#include <Security/SecImportExport.h>
11
12#include <CommonCrypto/CommonCryptor.h>
13#include <Security/SecIdentity.h>
14#include <Security/SecItem.h>
15#include <Security/SecItemPriv.h>
16#include <Security/SecBasePriv.h>
17#include <Security/SecKey.h>
18#include <Security/SecECKey.h>
19
20#include <Security/SecInternal.h>
21#include <CoreFoundation/CoreFoundation.h>
22#include <stdlib.h>
23#include <unistd.h>
24
25#include "Security_regressions.h"
26
27unsigned char _user_one_p12[] = {
28  0x30, 0x82, 0x06, 0xf1, 0x02, 0x01, 0x03, 0x30, 0x82, 0x06, 0xb7, 0x06,
29  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82,
30  0x06, 0xa8, 0x04, 0x82, 0x06, 0xa4, 0x30, 0x82, 0x06, 0xa0, 0x30, 0x82,
31  0x03, 0x9f, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07,
32  0x06, 0xa0, 0x82, 0x03, 0x90, 0x30, 0x82, 0x03, 0x8c, 0x02, 0x01, 0x00,
33  0x30, 0x82, 0x03, 0x85, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
34  0x01, 0x07, 0x01, 0x30, 0x1c, 0x06, 0x0a, 0x2a, 0x86, 0x48, 0x86, 0xf7,
35  0x0d, 0x01, 0x0c, 0x01, 0x03, 0x30, 0x0e, 0x04, 0x08, 0x07, 0xfd, 0xeb,
36  0x68, 0x40, 0xd8, 0x58, 0x20, 0x02, 0x02, 0x08, 0x00, 0x80, 0x82, 0x03,
37  0x58, 0x03, 0x78, 0xbd, 0x4a, 0x74, 0xb4, 0x64, 0x25, 0xcc, 0xec, 0xb7,
38  0xad, 0xee, 0xc5, 0x80, 0x9b, 0xdd, 0x24, 0xab, 0x1f, 0xd8, 0xa4, 0x2d,
39  0x6f, 0xbc, 0x7d, 0xba, 0xf3, 0x7c, 0xc9, 0x93, 0x9c, 0xb4, 0xb7, 0x6e,
40  0x2c, 0x77, 0x8d, 0xf0, 0x64, 0x59, 0x96, 0x34, 0xfb, 0xd7, 0x95, 0x5e,
41  0x2a, 0xab, 0xf4, 0x64, 0x12, 0xdf, 0x68, 0x71, 0xcb, 0xa9, 0xc1, 0xe7,
42  0x36, 0x46, 0x06, 0xd7, 0xde, 0xc2, 0x00, 0x13, 0xfe, 0x9d, 0xb9, 0x43,
43  0xa2, 0x57, 0xd9, 0xb8, 0x6f, 0xa7, 0x09, 0xca, 0x2e, 0xc0, 0x72, 0x03,
44  0x12, 0x32, 0x4c, 0x26, 0x90, 0x6b, 0x8f, 0xc1, 0xbf, 0x2e, 0xab, 0x77,
45  0x9c, 0xaf, 0x0c, 0x96, 0x77, 0xc7, 0x93, 0x02, 0xdb, 0x6f, 0x5e, 0xfd,
46  0x67, 0xff, 0x48, 0x7f, 0x12, 0x69, 0x47, 0x29, 0x6a, 0xc5, 0x6d, 0xb2,
47  0x3f, 0xaa, 0x26, 0x42, 0x0d, 0x84, 0x7d, 0x3b, 0x19, 0xe5, 0x7c, 0xb2,
48  0x47, 0xf0, 0x9d, 0xd1, 0x06, 0x73, 0xc8, 0xd0, 0x85, 0xc5, 0xc5, 0x9f,
49  0xb4, 0xcc, 0x62, 0x17, 0xed, 0x42, 0x5b, 0x0a, 0x57, 0x2c, 0xc8, 0x6b,
50  0x39, 0x29, 0x83, 0x4f, 0xa0, 0xfa, 0xd0, 0x1d, 0xb3, 0x8f, 0xf0, 0x2e,
51  0x72, 0x66, 0x72, 0x7a, 0xc7, 0x9c, 0x67, 0x9e, 0x1c, 0xdf, 0x7c, 0xfc,
52  0x87, 0x1a, 0xcc, 0xdf, 0x6b, 0x22, 0x17, 0x4b, 0x16, 0x5a, 0x97, 0x16,
53  0x22, 0xea, 0xdb, 0x02, 0xab, 0x21, 0xcd, 0xb2, 0x4b, 0x85, 0x72, 0xbb,
54  0xe0, 0x98, 0xdc, 0x1a, 0xf8, 0xde, 0xd3, 0x0a, 0x2f, 0xc1, 0x2d, 0x91,
55  0x45, 0x7b, 0x33, 0xe6, 0x02, 0x0a, 0x12, 0xb2, 0x27, 0x4a, 0x44, 0x6f,
56  0x1b, 0x6a, 0x2f, 0x15, 0xab, 0x06, 0xcb, 0x19, 0xd4, 0x16, 0x14, 0x06,
57  0x18, 0x3e, 0x6a, 0x84, 0x61, 0x9e, 0x28, 0x61, 0xa6, 0xaa, 0x51, 0x6b,
58  0x3b, 0x66, 0x95, 0xd8, 0x9a, 0x2c, 0x65, 0x99, 0x58, 0xad, 0xcf, 0xdf,
59  0x8a, 0x0f, 0x60, 0x20, 0xc5, 0x1a, 0x3e, 0xfc, 0x28, 0x7e, 0x8f, 0x7f,
60  0xe6, 0xa5, 0x48, 0xff, 0x2b, 0x65, 0xfd, 0xa5, 0xa2, 0x9e, 0x0d, 0x1d,
61  0xe3, 0xf8, 0x68, 0x02, 0xac, 0x67, 0x0e, 0x12, 0x27, 0x37, 0x06, 0x95,
62  0x0a, 0x59, 0xdf, 0x42, 0x6b, 0x0c, 0xc0, 0x79, 0xc8, 0x38, 0xde, 0x0c,
63  0x60, 0x36, 0x89, 0xdf, 0xd0, 0x58, 0xd9, 0x67, 0x84, 0xf0, 0x54, 0x67,
64  0xd3, 0x83, 0x27, 0x13, 0x99, 0xff, 0x0e, 0x68, 0x04, 0x7e, 0x65, 0xe3,
65  0x69, 0x74, 0xec, 0x0e, 0x63, 0x2c, 0x05, 0xc2, 0x64, 0x43, 0x6d, 0x78,
66  0xa0, 0xe8, 0x76, 0x9c, 0x60, 0x6b, 0xad, 0x0f, 0x5e, 0x2d, 0x44, 0xc1,
67  0xa1, 0x2c, 0x5c, 0x2a, 0x01, 0x7b, 0xe3, 0xba, 0xbd, 0x8b, 0xd0, 0x7b,
68  0x98, 0x77, 0x5e, 0xe9, 0xb0, 0xda, 0x95, 0x97, 0x6c, 0x32, 0x60, 0x6f,
69  0x76, 0xf2, 0x07, 0x05, 0xd7, 0x3a, 0x40, 0x0b, 0x3e, 0xfc, 0xae, 0x72,
70  0x30, 0xa2, 0x9c, 0x2f, 0x66, 0xea, 0x84, 0x1e, 0xa1, 0xc8, 0x67, 0x2c,
71  0x07, 0x46, 0x84, 0xed, 0x38, 0x74, 0x75, 0xc9, 0x68, 0x7f, 0x63, 0x08,
72  0x04, 0xb8, 0xb4, 0xd3, 0x62, 0x11, 0x50, 0x32, 0x20, 0x1e, 0xce, 0xf9,
73  0x43, 0xc4, 0xe8, 0xb4, 0x01, 0x28, 0x85, 0x1b, 0x1e, 0x62, 0x60, 0x9c,
74  0x43, 0xa7, 0xab, 0xd2, 0x8f, 0x25, 0xa6, 0x2d, 0x09, 0x7d, 0x25, 0x05,
75  0x0c, 0x9e, 0x84, 0xdc, 0xd9, 0xf7, 0xf2, 0xda, 0x87, 0xce, 0x8e, 0x23,
76  0x22, 0x9c, 0x4f, 0x4a, 0x0c, 0xe2, 0x6a, 0x2b, 0x18, 0x17, 0x65, 0x08,
77  0xda, 0x18, 0x57, 0xfd, 0x34, 0x97, 0xbd, 0xc5, 0xce, 0x76, 0xa8, 0x22,
78  0xee, 0x60, 0x63, 0x78, 0x30, 0x04, 0xfa, 0x49, 0x63, 0x65, 0x5f, 0xe4,
79  0x75, 0x9f, 0x68, 0xf6, 0x93, 0x86, 0xf2, 0x76, 0x00, 0x91, 0xd1, 0x7b,
80  0xcf, 0xcc, 0x55, 0xca, 0x4a, 0x2c, 0x35, 0xe0, 0x64, 0xb2, 0xc0, 0x2c,
81  0x02, 0x84, 0xa2, 0xd8, 0x54, 0x08, 0xbe, 0x93, 0xfd, 0x77, 0x5d, 0xa5,
82  0x4e, 0xc7, 0x07, 0x39, 0xed, 0xa5, 0x68, 0x0b, 0x93, 0x65, 0xc0, 0xd3,
83  0x42, 0x55, 0xc8, 0x61, 0x92, 0x02, 0x34, 0x67, 0x93, 0x4e, 0xcb, 0xa1,
84  0x99, 0x38, 0xe6, 0x93, 0x3b, 0xe2, 0x4c, 0x7d, 0x55, 0xc4, 0xd2, 0x55,
85  0x81, 0x4a, 0xe4, 0xd7, 0x1c, 0x25, 0x85, 0xd8, 0xd2, 0x3e, 0x1c, 0xe6,
86  0xd6, 0xdb, 0x85, 0x02, 0x2b, 0x67, 0x07, 0x5e, 0xdc, 0x19, 0x82, 0x10,
87  0xa7, 0x8d, 0x2c, 0x08, 0xad, 0x4a, 0x7c, 0x54, 0x81, 0x65, 0xb6, 0xca,
88  0x4a, 0x4c, 0x5d, 0xed, 0xb4, 0x3a, 0x81, 0x0c, 0xc5, 0x65, 0x01, 0x89,
89  0x51, 0x6f, 0xbc, 0xfa, 0x90, 0x78, 0x6c, 0x81, 0x42, 0x00, 0xa3, 0x45,
90  0xa3, 0x58, 0xa7, 0x09, 0x84, 0xa6, 0x6e, 0xae, 0xc6, 0x01, 0x84, 0x9e,
91  0x8a, 0x78, 0xa9, 0xd8, 0x48, 0x07, 0x7c, 0x02, 0x44, 0x4d, 0xcf, 0xd9,
92  0x6e, 0xae, 0xbd, 0xe2, 0x8c, 0xb4, 0x92, 0x65, 0x24, 0x43, 0x67, 0xb2,
93  0x92, 0x86, 0xac, 0x81, 0x95, 0x48, 0xdc, 0xdf, 0xd7, 0x7d, 0x3b, 0xf2,
94  0x4c, 0x4b, 0x19, 0xb0, 0xdd, 0x87, 0x1d, 0xd9, 0xf6, 0x0f, 0x30, 0x40,
95  0x60, 0x78, 0x7b, 0xf8, 0xcf, 0x84, 0x60, 0x7c, 0x2d, 0xdc, 0xd3, 0x6b,
96  0xbf, 0x68, 0xd3, 0x86, 0x7e, 0x22, 0xee, 0x81, 0x25, 0xdf, 0xee, 0x2b,
97  0x2b, 0x39, 0x6b, 0xfe, 0x91, 0xa9, 0x41, 0x67, 0xe4, 0x8b, 0x14, 0xd6,
98  0x9f, 0x12, 0xaf, 0x4f, 0x89, 0x35, 0xd9, 0x6f, 0xd1, 0x48, 0xae, 0x89,
99  0xd3, 0x13, 0x8e, 0x13, 0xa0, 0xba, 0xc8, 0xef, 0xab, 0x2e, 0xdf, 0xe4,
100  0x1f, 0xbd, 0xb7, 0x26, 0x28, 0x75, 0xe4, 0x7a, 0x11, 0x29, 0x8e, 0xe6,
101  0x59, 0x62, 0x67, 0x2f, 0xd8, 0x8b, 0x87, 0xee, 0xcf, 0x80, 0x46, 0x14,
102  0xd5, 0x77, 0xd8, 0x6b, 0xb0, 0xa4, 0xa0, 0xce, 0x93, 0xa8, 0x2c, 0x5f,
103  0x4b, 0x3c, 0x56, 0x7b, 0x4e, 0x56, 0x2e, 0x7b, 0x3b, 0xa8, 0x26, 0x3e,
104  0x96, 0x57, 0x05, 0x76, 0xc4, 0xff, 0x26, 0x7a, 0xe6, 0x3b, 0x21, 0xd2,
105  0x76, 0x2b, 0xd3, 0xb8, 0x2d, 0x57, 0x7b, 0x62, 0xdb, 0x80, 0x9a, 0xde,
106  0xad, 0x4a, 0x1b, 0x85, 0xb7, 0xd0, 0xa6, 0x0e, 0x85, 0x0a, 0xbb, 0x43,
107  0x9f, 0x5c, 0x03, 0x4f, 0x9c, 0x47, 0x11, 0xb2, 0x5c, 0xc8, 0x8f, 0xb5,
108  0x8d, 0xf1, 0x28, 0x37, 0xca, 0x30, 0x82, 0x02, 0xf9, 0x06, 0x09, 0x2a,
109  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x02, 0xea,
110  0x04, 0x82, 0x02, 0xe6, 0x30, 0x82, 0x02, 0xe2, 0x30, 0x82, 0x02, 0xde,
111  0x06, 0x0b, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x0a, 0x01,
112  0x02, 0xa0, 0x82, 0x02, 0xa6, 0x30, 0x82, 0x02, 0xa2, 0x30, 0x1c, 0x06,
113  0x0a, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x01, 0x03, 0x30,
114  0x0e, 0x04, 0x08, 0xfd, 0x54, 0x70, 0x85, 0x3f, 0x2b, 0x23, 0x6c, 0x02,
115  0x02, 0x08, 0x00, 0x04, 0x82, 0x02, 0x80, 0xbc, 0x6f, 0xe7, 0x00, 0x36,
116  0xd9, 0xe9, 0xba, 0x49, 0x04, 0xd5, 0x06, 0xb0, 0xbb, 0x6b, 0xe8, 0x8d,
117  0x51, 0x46, 0x38, 0xdc, 0x00, 0xc6, 0xf0, 0xc7, 0xb0, 0x9d, 0xf9, 0x82,
118  0xec, 0x87, 0x08, 0x6a, 0x7f, 0xce, 0xb8, 0x22, 0x55, 0xae, 0x24, 0x8f,
119  0x77, 0x50, 0x40, 0xf2, 0x72, 0x9d, 0xc9, 0xc9, 0x97, 0x0d, 0x1c, 0xee,
120  0x8c, 0x30, 0x0b, 0xfe, 0x8c, 0x63, 0x1e, 0x1b, 0x6a, 0x13, 0xaa, 0xf5,
121  0x60, 0xf1, 0x38, 0x00, 0x5b, 0x55, 0x18, 0x43, 0xf5, 0xea, 0x9e, 0xdc,
122  0x12, 0xb4, 0xfd, 0xf8, 0xee, 0x62, 0x0d, 0x67, 0x32, 0x23, 0xf5, 0x3c,
123  0x43, 0x5f, 0x18, 0xea, 0x3a, 0x1b, 0x7f, 0xcb, 0x20, 0xe4, 0x80, 0xb3,
124  0xd4, 0x37, 0x1a, 0x58, 0x59, 0x3b, 0x40, 0xd7, 0x8e, 0x30, 0xbe, 0xee,
125  0x7b, 0x65, 0xa4, 0x39, 0xf5, 0x4c, 0xa8, 0x8c, 0x20, 0x79, 0xe3, 0x1f,
126  0x72, 0x82, 0x1f, 0xe3, 0x16, 0xfd, 0x29, 0xe2, 0x90, 0xa0, 0xac, 0x54,
127  0xad, 0x01, 0x18, 0x42, 0x02, 0xef, 0xae, 0x61, 0x7b, 0xf9, 0x89, 0x8c,
128  0x40, 0x97, 0xfb, 0x5a, 0x4c, 0xee, 0x9a, 0xb0, 0x02, 0xc3, 0x48, 0x28,
129  0x58, 0xb0, 0x9a, 0x98, 0xe8, 0x70, 0x53, 0xc7, 0x7d, 0x40, 0x2e, 0x6d,
130  0x0a, 0x0c, 0xa1, 0xb6, 0xac, 0x48, 0xe0, 0xde, 0x3a, 0x37, 0x52, 0x77,
131  0xc5, 0x89, 0x8f, 0xa7, 0xf8, 0xaf, 0xfc, 0x94, 0x2d, 0xb7, 0xf1, 0xff,
132  0x79, 0x44, 0x29, 0x69, 0xee, 0x6f, 0xaf, 0x3e, 0xe6, 0xe4, 0x09, 0x62,
133  0x45, 0x36, 0xb2, 0x11, 0x3d, 0x0a, 0xdc, 0x3a, 0xc6, 0x6b, 0x46, 0x48,
134  0x42, 0x60, 0xd5, 0x92, 0x49, 0x3e, 0xd8, 0xbc, 0x4b, 0x47, 0x2b, 0x2a,
135  0xe9, 0xa6, 0xe5, 0xca, 0x6a, 0x39, 0x87, 0x3b, 0xa8, 0xa4, 0xae, 0x29,
136  0x36, 0xb4, 0x39, 0xe2, 0x7e, 0x9a, 0x22, 0x69, 0xc6, 0xa3, 0x95, 0xa3,
137  0x20, 0xf9, 0x6e, 0xc9, 0xfd, 0x4c, 0x3a, 0xd4, 0x9d, 0x9c, 0xeb, 0x91,
138  0x95, 0xdc, 0x1a, 0x3b, 0xd8, 0x0d, 0x0a, 0x87, 0x52, 0xef, 0x13, 0x77,
139  0xee, 0x92, 0x25, 0xba, 0xc7, 0x7a, 0x16, 0x2d, 0x85, 0x78, 0x3e, 0xbb,
140  0x0f, 0x95, 0xed, 0x60, 0xd0, 0x01, 0x60, 0xa2, 0x69, 0x3b, 0x3c, 0x63,
141  0x5c, 0x10, 0x78, 0x15, 0x72, 0x40, 0xc6, 0x1e, 0x0e, 0x34, 0xee, 0x71,
142  0x1d, 0xdf, 0xfb, 0x5f, 0x58, 0x3a, 0xdf, 0xb9, 0xc0, 0xa1, 0xa2, 0x02,
143  0x25, 0xc7, 0x16, 0xe4, 0x50, 0x64, 0xa8, 0x84, 0x3e, 0xa0, 0xb2, 0x8a,
144  0xfa, 0xbe, 0x55, 0x17, 0xf9, 0x7c, 0x64, 0x4b, 0xa6, 0xf7, 0x50, 0x52,
145  0x06, 0x39, 0xb1, 0x30, 0x28, 0x32, 0xa7, 0x7b, 0xaf, 0x18, 0xbd, 0x8b,
146  0x25, 0x6d, 0xde, 0x95, 0x82, 0xfb, 0x65, 0x71, 0x31, 0xca, 0x3e, 0x41,
147  0xb1, 0xa9, 0xf1, 0xec, 0x3c, 0xbc, 0x24, 0x49, 0x12, 0x1a, 0x49, 0x66,
148  0x90, 0xb2, 0xc4, 0x36, 0xe3, 0xd8, 0x93, 0x66, 0x6c, 0xc6, 0x81, 0xef,
149  0xf3, 0x61, 0xab, 0x4c, 0xba, 0x8e, 0x39, 0x47, 0xeb, 0x9b, 0xdf, 0x59,
150  0x9e, 0x45, 0xdc, 0x64, 0x51, 0xfb, 0x2d, 0x4c, 0x61, 0xbe, 0x70, 0x3a,
151  0x20, 0x86, 0x09, 0x75, 0xbe, 0x03, 0xdc, 0x35, 0x00, 0xae, 0xa9, 0x3d,
152  0xb4, 0xa2, 0x3a, 0xfb, 0xc5, 0x63, 0xb6, 0xf1, 0x92, 0x58, 0x84, 0x42,
153  0xf3, 0x11, 0x47, 0x38, 0xd4, 0x47, 0x59, 0x7d, 0xc6, 0xb6, 0x31, 0x83,
154  0x7e, 0x44, 0x41, 0xca, 0x50, 0x34, 0xf6, 0xf2, 0x23, 0x1f, 0x4d, 0x7d,
155  0x4d, 0xf7, 0xe8, 0x0b, 0x58, 0x0f, 0x94, 0x1f, 0x66, 0x8b, 0xe6, 0x6d,
156  0xe3, 0x91, 0xf8, 0xe7, 0xca, 0xca, 0x86, 0xdb, 0x66, 0x7e, 0x3e, 0x0c,
157  0x7a, 0xa8, 0xd4, 0xd4, 0xa2, 0x98, 0xe7, 0x33, 0x09, 0x7a, 0x77, 0x0d,
158  0x63, 0x48, 0x0a, 0x7e, 0x27, 0x2e, 0x59, 0x87, 0xcc, 0x47, 0xa6, 0x2d,
159  0x14, 0xfc, 0x1f, 0xa7, 0x31, 0xba, 0xac, 0xef, 0x4e, 0xf2, 0x02, 0xdc,
160  0x8c, 0x7b, 0x44, 0x08, 0x4a, 0xeb, 0xbe, 0x48, 0xe1, 0xf0, 0x56, 0xb1,
161  0xe2, 0x1a, 0x5a, 0x39, 0x11, 0x3b, 0x56, 0x5b, 0x7f, 0x05, 0xd4, 0x99,
162  0x6d, 0xa1, 0x46, 0x42, 0x9a, 0x69, 0xc8, 0x97, 0x5c, 0x3b, 0xfd, 0x18,
163  0x28, 0x98, 0xaa, 0x7a, 0x66, 0xf1, 0x7d, 0xcb, 0x60, 0x38, 0xd8, 0x97,
164  0xed, 0x28, 0xec, 0xbb, 0x6e, 0xf0, 0x83, 0xdc, 0x1c, 0xae, 0xc2, 0xd3,
165  0xa5, 0x2b, 0xd5, 0x13, 0x22, 0xf6, 0x6c, 0x7c, 0x43, 0x74, 0xf3, 0xed,
166  0xd1, 0x89, 0x0a, 0x2c, 0x93, 0xb0, 0x42, 0xa3, 0x5f, 0xda, 0xa7, 0x04,
167  0x76, 0x33, 0xb8, 0x05, 0xf5, 0xaf, 0xf4, 0x91, 0x43, 0x88, 0xde, 0xfc,
168  0x68, 0xd0, 0xa4, 0x1f, 0x6e, 0x47, 0xc3, 0x73, 0x96, 0xfa, 0x4d, 0x31,
169  0x25, 0x30, 0x23, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
170  0x09, 0x15, 0x31, 0x16, 0x04, 0x14, 0x9e, 0x4f, 0xb2, 0x4e, 0x45, 0x98,
171  0x37, 0x90, 0x63, 0x59, 0xe3, 0x7b, 0xcc, 0xca, 0x76, 0x0a, 0xaf, 0x95,
172  0x35, 0x37, 0x30, 0x31, 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e,
173  0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0x82, 0xbc, 0x96, 0xb1, 0x5d,
174  0x7f, 0x5d, 0x93, 0x54, 0x42, 0x95, 0x55, 0x01, 0x6a, 0xcd, 0x65, 0x01,
175  0x7a, 0x06, 0xcf, 0x04, 0x08, 0x39, 0xfd, 0x29, 0x7c, 0xbe, 0x39, 0x07,
176  0xd5, 0x02, 0x02, 0x08, 0x00
177};
178
179unsigned char _user_two_p12[] = {
180  0x30, 0x82, 0x06, 0xf1, 0x02, 0x01, 0x03, 0x30, 0x82, 0x06, 0xb7, 0x06,
181  0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82,
182  0x06, 0xa8, 0x04, 0x82, 0x06, 0xa4, 0x30, 0x82, 0x06, 0xa0, 0x30, 0x82,
183  0x03, 0x9f, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07,
184  0x06, 0xa0, 0x82, 0x03, 0x90, 0x30, 0x82, 0x03, 0x8c, 0x02, 0x01, 0x00,
185  0x30, 0x82, 0x03, 0x85, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
186  0x01, 0x07, 0x01, 0x30, 0x1c, 0x06, 0x0a, 0x2a, 0x86, 0x48, 0x86, 0xf7,
187  0x0d, 0x01, 0x0c, 0x01, 0x06, 0x30, 0x0e, 0x04, 0x08, 0x59, 0x5c, 0x39,
188  0x74, 0xd7, 0x82, 0x11, 0x51, 0x02, 0x02, 0x08, 0x00, 0x80, 0x82, 0x03,
189  0x58, 0xa6, 0xd1, 0xa1, 0x2f, 0x26, 0x9d, 0x85, 0x45, 0xae, 0x87, 0x8f,
190  0xd4, 0x13, 0x32, 0x90, 0xba, 0x53, 0x3b, 0x65, 0x02, 0xa9, 0xa0, 0xe6,
191  0x45, 0x30, 0xee, 0x1c, 0xf6, 0x24, 0x38, 0x22, 0x26, 0x37, 0x50, 0x2d,
192  0x7c, 0x9b, 0x66, 0xa6, 0x13, 0xed, 0xd5, 0x9f, 0xd3, 0x6d, 0xc6, 0x2b,
193  0x9c, 0x66, 0x22, 0x3f, 0x95, 0xa5, 0x99, 0xc9, 0x8b, 0xcc, 0x40, 0x4b,
194  0xa8, 0xd0, 0x2a, 0x6f, 0x16, 0x9b, 0xc3, 0xec, 0xfc, 0xa4, 0x28, 0xc5,
195  0xb0, 0xa8, 0xc2, 0x96, 0xb4, 0xa2, 0x9d, 0x8d, 0x33, 0xc3, 0x6d, 0xc8,
196  0xac, 0x64, 0x34, 0x73, 0xda, 0x1c, 0x5b, 0x07, 0xc1, 0x45, 0xac, 0xe2,
197  0x00, 0x56, 0xaf, 0x38, 0xc1, 0x30, 0xe4, 0x65, 0x24, 0x42, 0x67, 0x2d,
198  0xcf, 0x19, 0xad, 0x2a, 0xe2, 0x04, 0x2d, 0x5a, 0x48, 0xd1, 0xdc, 0xbe,
199  0x88, 0xb7, 0x31, 0x5b, 0x37, 0x75, 0x6e, 0xa5, 0xe2, 0x74, 0xf0, 0xba,
200  0xac, 0xe2, 0x24, 0x84, 0x6d, 0x94, 0x65, 0xb4, 0x55, 0x3f, 0xf8, 0x8d,
201  0xd3, 0x13, 0xa1, 0xce, 0x33, 0x4f, 0x39, 0xc7, 0x80, 0x1a, 0x0e, 0x68,
202  0x0f, 0x63, 0xc6, 0x36, 0x01, 0xaa, 0xd3, 0x3b, 0x03, 0xe4, 0xa9, 0xdd,
203  0x4d, 0x4a, 0xcc, 0xf8, 0x2b, 0x55, 0xa7, 0x47, 0x31, 0x39, 0x14, 0xd5,
204  0x0f, 0x3f, 0x38, 0xfd, 0xc7, 0xe6, 0x99, 0x36, 0xc2, 0x1b, 0xa8, 0x99,
205  0x16, 0xa8, 0x05, 0x7a, 0xc4, 0x66, 0x97, 0x13, 0x09, 0x0d, 0x15, 0x14,
206  0x66, 0x3c, 0x9b, 0x39, 0x6c, 0x10, 0xc9, 0xc5, 0xbe, 0x69, 0xd7, 0x13,
207  0x21, 0xb3, 0xd8, 0x29, 0x50, 0xf4, 0x40, 0x77, 0x09, 0xb3, 0x32, 0xf2,
208  0x88, 0xa5, 0x05, 0x5e, 0x14, 0x77, 0x41, 0xd5, 0x31, 0x82, 0xcb, 0xea,
209  0xe0, 0x56, 0xd3, 0xb0, 0x3e, 0x27, 0xd7, 0x9d, 0x46, 0x04, 0x07, 0x86,
210  0x8b, 0xb2, 0x0f, 0x45, 0xc4, 0x8b, 0xff, 0xcb, 0x39, 0x54, 0x6c, 0xe0,
211  0x9b, 0x6d, 0xbc, 0x5d, 0x1c, 0x0e, 0xb2, 0xba, 0xfe, 0x94, 0x2a, 0x9c,
212  0x4f, 0x84, 0x44, 0x17, 0xc4, 0x07, 0x0b, 0x8d, 0x6f, 0x90, 0x23, 0xfb,
213  0xf3, 0xe4, 0x0f, 0x4a, 0xf4, 0x40, 0xf5, 0xf4, 0xfe, 0xb4, 0x32, 0xde,
214  0x01, 0x0c, 0x00, 0x3a, 0x0a, 0x9e, 0xa0, 0x1a, 0x95, 0x94, 0xbe, 0x3c,
215  0x75, 0x32, 0x38, 0x50, 0x07, 0xd3, 0x70, 0x30, 0x47, 0x7a, 0xce, 0x74,
216  0x57, 0x8f, 0x7b, 0x5c, 0x2b, 0xb8, 0xc0, 0x72, 0xbf, 0x9a, 0xab, 0xc0,
217  0xe4, 0x26, 0xec, 0x91, 0x80, 0xba, 0x45, 0xa7, 0xc0, 0x18, 0xcf, 0xed,
218  0x24, 0x9f, 0x1b, 0x07, 0xcb, 0x1b, 0xd2, 0x81, 0xe8, 0x4b, 0x26, 0x0a,
219  0xf6, 0x4c, 0x81, 0x5f, 0x4f, 0x2a, 0x7c, 0x79, 0x25, 0xd6, 0x8b, 0xe7,
220  0x00, 0x82, 0xf2, 0x6e, 0x6c, 0x63, 0x38, 0x19, 0x79, 0x05, 0x0e, 0xb8,
221  0x13, 0x2b, 0x30, 0x2b, 0xd3, 0xe3, 0x85, 0x6b, 0x75, 0x32, 0xc2, 0x58,
222  0xa4, 0xf0, 0xd3, 0x0a, 0xae, 0xee, 0x3e, 0x10, 0x28, 0x5d, 0xd5, 0x09,
223  0x6f, 0x0f, 0xa2, 0x15, 0x6f, 0x3c, 0x40, 0xb9, 0x74, 0x7f, 0x35, 0xb1,
224  0xd6, 0x58, 0x6a, 0x09, 0x2c, 0x29, 0x0d, 0x69, 0x37, 0xae, 0x17, 0xd2,
225  0x98, 0xef, 0x4a, 0xbd, 0x18, 0x3f, 0x97, 0x83, 0x81, 0x63, 0x8f, 0xc5,
226  0x98, 0x2a, 0xb8, 0xe9, 0x32, 0xef, 0x6b, 0x4c, 0x26, 0xd8, 0x1d, 0x8f,
227  0x5c, 0x68, 0xe0, 0x68, 0x2f, 0x5e, 0x2c, 0x85, 0xa5, 0xbc, 0x88, 0x56,
228  0x1b, 0xc7, 0x0e, 0x22, 0x80, 0x80, 0x36, 0x43, 0x68, 0x5d, 0xd4, 0x0e,
229  0xb5, 0x08, 0x82, 0xfe, 0xae, 0xc5, 0xde, 0x61, 0x1e, 0xf8, 0xfe, 0x64,
230  0x66, 0xf2, 0xda, 0x9e, 0x8e, 0xb9, 0x8e, 0xa9, 0xcd, 0xe4, 0x17, 0xe0,
231  0x12, 0xd4, 0x37, 0x54, 0xd0, 0x24, 0xca, 0xcc, 0xc0, 0xa9, 0xd4, 0x98,
232  0x1d, 0xe9, 0x04, 0x64, 0x50, 0x3d, 0x76, 0x0f, 0xf7, 0x75, 0xde, 0xb5,
233  0x5c, 0x0a, 0x3b, 0x70, 0x3e, 0xeb, 0x0b, 0x26, 0x98, 0x0e, 0x47, 0x6b,
234  0x36, 0x3d, 0x7b, 0x04, 0x20, 0x26, 0xf7, 0xe6, 0x01, 0xbf, 0xda, 0xc9,
235  0x09, 0xce, 0x2f, 0xd9, 0xeb, 0x8a, 0x19, 0x68, 0x9b, 0x67, 0x5d, 0x2a,
236  0xef, 0x74, 0x6f, 0xcd, 0xd2, 0x3b, 0xdc, 0x65, 0xbc, 0x79, 0x40, 0x12,
237  0x52, 0x3e, 0x57, 0xc4, 0x12, 0xf2, 0x4e, 0x1a, 0x5d, 0x63, 0x55, 0x0a,
238  0xb7, 0x70, 0x85, 0x09, 0x6e, 0x97, 0x2f, 0xf8, 0x7b, 0x02, 0xb6, 0x03,
239  0xa3, 0x7d, 0x91, 0x06, 0xb9, 0xf4, 0xfc, 0x45, 0x03, 0x6a, 0xb2, 0xc0,
240  0x8c, 0x75, 0xe3, 0x16, 0x0e, 0xa7, 0x65, 0x9a, 0xd4, 0x05, 0x7e, 0x03,
241  0xe0, 0x42, 0xbd, 0x8f, 0x55, 0xac, 0xf3, 0xde, 0x70, 0x0a, 0xc6, 0xbc,
242  0x0d, 0xda, 0x14, 0x87, 0x3e, 0xa2, 0x18, 0x28, 0xa7, 0x4a, 0xea, 0x21,
243  0x12, 0x70, 0xd3, 0x31, 0xed, 0x22, 0x5e, 0xc6, 0xed, 0xf0, 0xc1, 0xee,
244  0xe6, 0x4b, 0x34, 0x22, 0x97, 0x87, 0x37, 0x24, 0x8f, 0xe4, 0x47, 0x99,
245  0x5d, 0x0a, 0x82, 0xe3, 0xca, 0x88, 0xcf, 0x35, 0xa3, 0xe5, 0xa3, 0xef,
246  0x8b, 0x2c, 0x0a, 0x2c, 0x1f, 0xe4, 0x24, 0xaa, 0xf2, 0x9e, 0x85, 0x28,
247  0xae, 0x60, 0xcc, 0x0a, 0xfc, 0x94, 0x5b, 0x4a, 0xe4, 0x6e, 0xeb, 0x59,
248  0xa3, 0x6f, 0x86, 0xac, 0xc5, 0x2c, 0xf5, 0xaa, 0x10, 0xf4, 0x9e, 0x08,
249  0xc5, 0xbe, 0x8b, 0x9e, 0xe5, 0xd7, 0x6b, 0x49, 0xde, 0x0c, 0x16, 0x38,
250  0x6f, 0xa5, 0x74, 0x62, 0x93, 0x44, 0xd8, 0xf7, 0x6d, 0x40, 0x98, 0xf7,
251  0xfd, 0x6b, 0xc9, 0xda, 0xc7, 0x49, 0xf5, 0x7c, 0x83, 0x9e, 0xc8, 0xe3,
252  0x6e, 0x51, 0x93, 0xfe, 0xb4, 0xe6, 0xa4, 0x2c, 0x18, 0xe8, 0x96, 0xb6,
253  0xb7, 0x11, 0x4d, 0xd4, 0x94, 0x34, 0xfc, 0x4f, 0x2f, 0x17, 0x58, 0x84,
254  0x5a, 0xaa, 0xb7, 0x8f, 0x41, 0x65, 0x7a, 0xac, 0xbc, 0x7d, 0x77, 0x1f,
255  0xf2, 0x99, 0xba, 0x60, 0xe1, 0xe0, 0x24, 0xc0, 0x24, 0x56, 0x08, 0x24,
256  0x39, 0x12, 0xd3, 0xa8, 0xa3, 0x51, 0x37, 0xab, 0xd6, 0xab, 0x78, 0x3c,
257  0x82, 0x91, 0xb8, 0x8e, 0xbf, 0xe6, 0xfd, 0x19, 0x05, 0x60, 0x14, 0xdf,
258  0x19, 0x2f, 0x07, 0x54, 0x11, 0xea, 0x45, 0xec, 0x37, 0xaa, 0x2b, 0x9d,
259  0xa4, 0xfe, 0xd4, 0x34, 0xdf, 0xcc, 0x33, 0xda, 0x09, 0xa9, 0xa9, 0x49,
260  0x10, 0x48, 0xc3, 0x63, 0x49, 0x30, 0x82, 0x02, 0xf9, 0x06, 0x09, 0x2a,
261  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x02, 0xea,
262  0x04, 0x82, 0x02, 0xe6, 0x30, 0x82, 0x02, 0xe2, 0x30, 0x82, 0x02, 0xde,
263  0x06, 0x0b, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x0a, 0x01,
264  0x02, 0xa0, 0x82, 0x02, 0xa6, 0x30, 0x82, 0x02, 0xa2, 0x30, 0x1c, 0x06,
265  0x0a, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x01, 0x03, 0x30,
266  0x0e, 0x04, 0x08, 0x8d, 0xff, 0x52, 0xa2, 0x8e, 0x75, 0xb1, 0x64, 0x02,
267  0x02, 0x08, 0x00, 0x04, 0x82, 0x02, 0x80, 0x57, 0x31, 0xfa, 0x59, 0x1f,
268  0xec, 0x07, 0x6b, 0xcc, 0x29, 0x14, 0x9f, 0xbe, 0x11, 0x4f, 0x1b, 0xb2,
269  0x14, 0x51, 0xca, 0x2e, 0x3c, 0x53, 0xf5, 0x8f, 0xab, 0x90, 0xa0, 0xae,
270  0xf1, 0xa8, 0xd8, 0xc9, 0x51, 0xae, 0x5b, 0x84, 0xc8, 0xfa, 0xfe, 0x54,
271  0x33, 0xf3, 0x02, 0xb2, 0x74, 0x6c, 0x77, 0xcf, 0xe8, 0xdf, 0xab, 0x45,
272  0xaf, 0xb2, 0x1e, 0x18, 0xdd, 0x57, 0xa6, 0x3a, 0xc1, 0xac, 0xab, 0x83,
273  0x48, 0x91, 0x24, 0x06, 0xce, 0x58, 0x69, 0x15, 0x23, 0xf4, 0x19, 0x8f,
274  0x53, 0xd5, 0x92, 0x76, 0x31, 0x35, 0x75, 0xd6, 0x5d, 0xb3, 0x87, 0xe2,
275  0xb3, 0x96, 0x85, 0x30, 0xe0, 0x93, 0xff, 0x02, 0x7b, 0xba, 0x89, 0x50,
276  0xa9, 0xbc, 0x9d, 0x85, 0x20, 0x17, 0x3e, 0x1c, 0xef, 0xcf, 0xf9, 0x69,
277  0xdf, 0x89, 0xe8, 0x11, 0x4b, 0xcc, 0x48, 0x9a, 0x5a, 0x1a, 0x6b, 0x86,
278  0xc4, 0x74, 0xc8, 0x8f, 0x34, 0x0a, 0xbf, 0xec, 0xc8, 0x9d, 0x0f, 0x52,
279  0xd7, 0x0e, 0x39, 0x46, 0x42, 0xf8, 0x8d, 0x14, 0xf5, 0x44, 0x73, 0xb4,
280  0x78, 0x31, 0x89, 0x02, 0xc6, 0x8d, 0xae, 0x2f, 0x9c, 0x7c, 0x7a, 0x5b,
281  0x55, 0x04, 0xe7, 0x81, 0x84, 0x36, 0xee, 0xb8, 0x47, 0x81, 0x65, 0x95,
282  0x8e, 0x35, 0x7f, 0x15, 0xdc, 0xeb, 0xdc, 0x28, 0xe2, 0x16, 0xe8, 0x86,
283  0x1c, 0x7d, 0x1a, 0xd8, 0xe5, 0x8f, 0x4c, 0x29, 0x17, 0x1a, 0x9e, 0xe9,
284  0xc2, 0xd1, 0x84, 0x78, 0x76, 0xd6, 0x93, 0x8c, 0x29, 0x62, 0x3a, 0x2d,
285  0xdd, 0xc6, 0xb4, 0xab, 0x32, 0xd9, 0x18, 0x2a, 0x1d, 0x38, 0x11, 0x48,
286  0x4d, 0x0b, 0xd0, 0x3c, 0xed, 0x51, 0x0f, 0x77, 0x97, 0x67, 0x40, 0x96,
287  0x64, 0x99, 0x34, 0x56, 0xf5, 0x45, 0xe9, 0xfe, 0x87, 0x5b, 0xb2, 0xe9,
288  0x01, 0x1a, 0xfc, 0x83, 0x7e, 0x9f, 0x8b, 0xc9, 0xb2, 0xa9, 0x99, 0x1f,
289  0xb2, 0x32, 0xed, 0xb8, 0x21, 0x00, 0xf5, 0x94, 0x56, 0x15, 0x72, 0xee,
290  0x84, 0x0b, 0x98, 0x9d, 0x9f, 0xc9, 0xf6, 0x4b, 0x65, 0x71, 0xdb, 0xc0,
291  0x49, 0xd8, 0xf8, 0x86, 0x13, 0xc4, 0x23, 0xf7, 0xe3, 0x30, 0xb6, 0x6d,
292  0x2f, 0x72, 0xdb, 0x01, 0x7b, 0x68, 0x46, 0xbe, 0xd6, 0xd5, 0xfe, 0xca,
293  0xc7, 0x87, 0xec, 0x7c, 0xb6, 0x91, 0x27, 0xa4, 0xb5, 0x9f, 0x9d, 0xf7,
294  0xeb, 0x93, 0xce, 0x55, 0xd8, 0x61, 0xcb, 0x2a, 0x45, 0xd4, 0xe6, 0x94,
295  0x9c, 0x06, 0xb3, 0xe3, 0x7b, 0xbc, 0xc8, 0xff, 0xff, 0xbb, 0x29, 0xe8,
296  0x6c, 0xb5, 0x22, 0x64, 0xa4, 0xd4, 0x7e, 0x08, 0x29, 0xae, 0x05, 0xd6,
297  0xf7, 0x88, 0x8b, 0xc4, 0x12, 0x1d, 0xef, 0x38, 0x74, 0x32, 0x8d, 0x2c,
298  0x59, 0x10, 0x5b, 0x9f, 0xac, 0x45, 0x5e, 0xef, 0x62, 0xc3, 0x66, 0x64,
299  0xc4, 0xc7, 0xb3, 0x1d, 0xb1, 0xec, 0x76, 0x90, 0x2f, 0xc8, 0x52, 0x65,
300  0x3c, 0x58, 0x02, 0x01, 0x52, 0x42, 0xbd, 0x38, 0xc4, 0xb1, 0x33, 0x5e,
301  0x9d, 0x6a, 0x19, 0x4f, 0xf1, 0xee, 0x1f, 0x1c, 0x90, 0x40, 0x40, 0x9d,
302  0x41, 0xec, 0x3d, 0xbe, 0xe3, 0x97, 0x70, 0x95, 0x5c, 0x16, 0x66, 0xfd,
303  0xc9, 0xee, 0x29, 0x14, 0x7a, 0x9b, 0x53, 0xa7, 0x8b, 0x4e, 0xf5, 0x3b,
304  0xbe, 0xb4, 0x1b, 0xab, 0x25, 0x5c, 0xcd, 0xac, 0xe0, 0x49, 0xd1, 0xbc,
305  0xcb, 0x1a, 0x8a, 0x7f, 0x62, 0x67, 0xeb, 0xe2, 0x0c, 0x4f, 0x05, 0x0f,
306  0x28, 0xcf, 0xe7, 0x8a, 0x4c, 0x62, 0x16, 0x56, 0x66, 0x83, 0x9e, 0x56,
307  0x13, 0x9d, 0xf5, 0xc4, 0xeb, 0x69, 0xae, 0x64, 0xcd, 0xa0, 0x40, 0x5f,
308  0x61, 0x2d, 0x45, 0xa6, 0x5d, 0x41, 0x88, 0x87, 0xb2, 0x49, 0x30, 0x24,
309  0x95, 0x9d, 0x30, 0x77, 0x36, 0xde, 0x75, 0x54, 0x3b, 0xac, 0xc8, 0x6b,
310  0xf5, 0xed, 0x54, 0xcb, 0xef, 0xa0, 0xc8, 0xdb, 0x1b, 0x80, 0x08, 0x34,
311  0x91, 0xe7, 0x8b, 0xbe, 0x4e, 0x46, 0xed, 0x04, 0x64, 0x51, 0x73, 0xa2,
312  0x6e, 0x52, 0xa2, 0xe4, 0xe3, 0x8a, 0x72, 0x75, 0xf8, 0xb5, 0xc4, 0xa2,
313  0x4a, 0xab, 0xa4, 0x4e, 0xf1, 0x65, 0x29, 0xee, 0xe6, 0x97, 0xb8, 0xeb,
314  0x18, 0x9e, 0x49, 0x08, 0x92, 0x54, 0xc9, 0x20, 0xff, 0xfa, 0xc5, 0x39,
315  0x36, 0xa5, 0xc5, 0xf4, 0x53, 0x91, 0x73, 0x88, 0x94, 0xf1, 0xd9, 0x5a,
316  0x5b, 0xd0, 0x6f, 0x64, 0x9e, 0x32, 0xa6, 0xbf, 0xd2, 0x8e, 0xd7, 0x01,
317  0x53, 0xe2, 0xdd, 0xde, 0xf9, 0x39, 0x4f, 0x53, 0xf0, 0x38, 0x80, 0x87,
318  0xb2, 0x6b, 0x6e, 0x67, 0x5e, 0x6c, 0xcb, 0x21, 0x8b, 0x9a, 0xb3, 0xfc,
319  0x4b, 0x50, 0x71, 0x66, 0xdd, 0x80, 0xa8, 0x0b, 0x76, 0xa7, 0xb6, 0x78,
320  0xce, 0x09, 0x16, 0x88, 0x3f, 0xbb, 0x85, 0xcc, 0x30, 0x78, 0x12, 0x31,
321  0x25, 0x30, 0x23, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
322  0x09, 0x15, 0x31, 0x16, 0x04, 0x14, 0x1e, 0x0f, 0x8e, 0x8c, 0x64, 0x6c,
323  0x43, 0xac, 0xd5, 0x64, 0x2c, 0xab, 0x5f, 0xa8, 0x1b, 0x09, 0x44, 0x00,
324  0x32, 0x8d, 0x30, 0x31, 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e,
325  0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0x79, 0xb8, 0x38, 0x22, 0x89,
326  0x49, 0xa9, 0x7b, 0xfa, 0x75, 0xb9, 0x92, 0xd7, 0x25, 0xf4, 0x42, 0x17,
327  0x1f, 0xf0, 0x19, 0x04, 0x08, 0x46, 0x09, 0xf3, 0x1a, 0x9a, 0xa5, 0xda,
328  0xb3, 0x02, 0x02, 0x08, 0x00
329};
330
331
332unsigned char ECDSA_fails_import_p12[] = {
333    0x30, 0x82, 0x07, 0xf8, 0x02, 0x01, 0x03, 0x30, 0x82, 0x07, 0xbf, 0x06,
334    0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82,
335    0x07, 0xb0, 0x04, 0x82, 0x07, 0xac, 0x30, 0x82, 0x07, 0xa8, 0x30, 0x82,
336    0x04, 0xdf, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07,
337    0x06, 0xa0, 0x82, 0x04, 0xd0, 0x30, 0x82, 0x04, 0xcc, 0x02, 0x01, 0x00,
338    0x30, 0x82, 0x04, 0xc5, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
339    0x01, 0x07, 0x01, 0x30, 0x1c, 0x06, 0x0a, 0x2a, 0x86, 0x48, 0x86, 0xf7,
340    0x0d, 0x01, 0x0c, 0x01, 0x06, 0x30, 0x0e, 0x04, 0x08, 0x32, 0xb1, 0x01,
341    0x77, 0xeb, 0x95, 0x02, 0xb9, 0x02, 0x02, 0x08, 0x00, 0x80, 0x82, 0x04,
342    0x98, 0x8f, 0xa0, 0x71, 0x8a, 0x9a, 0x75, 0x78, 0x29, 0x7e, 0xc9, 0x54,
343    0x98, 0xba, 0x58, 0x7f, 0x65, 0x29, 0xb5, 0x9e, 0xb9, 0xc3, 0xfd, 0x9f,
344    0xfc, 0x43, 0x31, 0x08, 0x73, 0x45, 0x03, 0x7d, 0xfc, 0x97, 0x20, 0x8f,
345    0xb1, 0x4c, 0x85, 0xc3, 0xe9, 0xda, 0xf8, 0x73, 0xbc, 0x77, 0xe5, 0xff,
346    0xc7, 0xef, 0x74, 0xc0, 0xb6, 0x18, 0xa9, 0x76, 0x2c, 0x00, 0x2c, 0x00,
347    0x9f, 0xcb, 0x34, 0x16, 0x0b, 0xf0, 0x11, 0x7c, 0xc0, 0x65, 0x1c, 0x69,
348    0x51, 0xbb, 0x92, 0x86, 0xbf, 0x2e, 0xdf, 0x1e, 0x15, 0xad, 0x1f, 0x66,
349    0xdf, 0x5e, 0x9e, 0xb4, 0xf1, 0x9b, 0x86, 0x0d, 0x0f, 0xe6, 0xd2, 0x01,
350    0x91, 0x0e, 0x37, 0x43, 0xba, 0x5a, 0xf3, 0x4e, 0x3c, 0x5d, 0xc7, 0x0d,
351    0x14, 0x38, 0xc3, 0x4a, 0x10, 0x9a, 0x2d, 0xf8, 0x53, 0x2d, 0xfd, 0x00,
352    0xa9, 0x2b, 0xd1, 0x3f, 0xc4, 0xf8, 0x99, 0xb6, 0xaa, 0x1f, 0x70, 0xb4,
353    0x2f, 0xa4, 0xa6, 0x07, 0x1a, 0x95, 0xd1, 0x93, 0xf1, 0xd2, 0xfe, 0x3f,
354    0x7c, 0xb0, 0x55, 0x18, 0xd5, 0x9f, 0x37, 0x11, 0x3d, 0x2d, 0x1f, 0xb8,
355    0xc8, 0x47, 0xa5, 0x03, 0xa5, 0x2e, 0x91, 0x04, 0xe0, 0xd0, 0x15, 0x70,
356    0xa2, 0x05, 0xac, 0x71, 0x4a, 0x09, 0x93, 0xbb, 0x44, 0xeb, 0x78, 0x20,
357    0x7b, 0xbb, 0x0a, 0x2f, 0x0a, 0x51, 0x5c, 0x16, 0x32, 0x37, 0x82, 0x9e,
358    0xc8, 0x90, 0x96, 0xee, 0x9a, 0x4e, 0x77, 0x21, 0xfd, 0x37, 0x80, 0x2f,
359    0x55, 0xf2, 0x03, 0xb1, 0x31, 0x7e, 0x9b, 0x90, 0xa9, 0x7b, 0xb4, 0x19,
360    0x5d, 0x10, 0xfd, 0x22, 0xa5, 0x07, 0x24, 0xc5, 0xda, 0x86, 0x1e, 0xbd,
361    0x4a, 0xa6, 0xc2, 0x02, 0x71, 0xa5, 0x3d, 0xca, 0x5b, 0x19, 0x5d, 0xb6,
362    0xc4, 0x7d, 0xe7, 0x74, 0xf5, 0x71, 0xd5, 0xe5, 0x9f, 0x0a, 0x4a, 0x01,
363    0xa0, 0xe6, 0xa0, 0x73, 0x93, 0xaa, 0x3b, 0x6c, 0x03, 0x4c, 0xbd, 0x32,
364    0xc9, 0x97, 0xaf, 0x84, 0x79, 0x3d, 0x93, 0x49, 0xc6, 0xbc, 0x2a, 0x4f,
365    0xe1, 0x3e, 0x9f, 0x86, 0xe3, 0xd2, 0x16, 0xd3, 0xb3, 0xf6, 0xac, 0x3c,
366    0xb4, 0x6a, 0xa6, 0x68, 0xb8, 0xf4, 0xe7, 0x68, 0x98, 0xe6, 0xf6, 0x76,
367    0x40, 0x64, 0xeb, 0x95, 0xe2, 0xcc, 0x8b, 0x76, 0x4a, 0xab, 0x83, 0xa9,
368    0x84, 0x08, 0xf7, 0x43, 0x92, 0xcb, 0x31, 0xd1, 0x0a, 0x90, 0x8b, 0x98,
369    0x1d, 0x6a, 0x45, 0x7f, 0x83, 0x9b, 0x01, 0x8d, 0xe8, 0x25, 0x9e, 0x55,
370    0xad, 0x27, 0x7e, 0x21, 0xfd, 0x8e, 0xc8, 0x26, 0x1f, 0x43, 0x44, 0x06,
371    0x5f, 0x44, 0xbd, 0x5a, 0xf3, 0x15, 0xac, 0x1a, 0x8f, 0xc7, 0x5a, 0x40,
372    0xa9, 0x93, 0x09, 0xdc, 0xc4, 0xc9, 0xe9, 0x42, 0xf0, 0xe4, 0xda, 0x29,
373    0x90, 0x61, 0x32, 0xcb, 0x05, 0x74, 0x61, 0x71, 0x44, 0xbb, 0x3f, 0x99,
374    0xc3, 0x25, 0x29, 0x8c, 0xa1, 0xe1, 0x92, 0xe6, 0xfd, 0x55, 0x8e, 0x22,
375    0x37, 0x95, 0x08, 0x59, 0xdc, 0xa2, 0x7c, 0xfc, 0x12, 0x9a, 0x5e, 0x1a,
376    0x58, 0x8a, 0x14, 0xa7, 0x96, 0xa2, 0x9e, 0x35, 0xe1, 0x1c, 0x7d, 0xac,
377    0x86, 0x1e, 0xcf, 0x1a, 0x35, 0x7a, 0xf1, 0x31, 0x46, 0x67, 0xbd, 0x81,
378    0x9c, 0xf5, 0x70, 0x9e, 0xaf, 0x0f, 0x84, 0x10, 0xc9, 0x46, 0xce, 0xb6,
379    0xc4, 0x35, 0x88, 0xf0, 0xe1, 0xa6, 0x25, 0xa5, 0xdf, 0x4d, 0x5e, 0x10,
380    0x76, 0x2c, 0xa3, 0x85, 0x42, 0x13, 0xe2, 0x34, 0x57, 0xce, 0x8a, 0x96,
381    0x1f, 0x1b, 0x78, 0x87, 0xd6, 0x4d, 0x66, 0x36, 0x8e, 0x2c, 0xc6, 0x8b,
382    0x0a, 0x53, 0x26, 0x70, 0xa5, 0x7e, 0x7c, 0x7f, 0x94, 0x8b, 0x89, 0x75,
383    0x32, 0x1b, 0x8d, 0x27, 0x6f, 0xb1, 0x64, 0x07, 0xa1, 0xbc, 0x34, 0xe4,
384    0x9b, 0xb7, 0x96, 0x4a, 0x9b, 0x96, 0xea, 0xc1, 0x4c, 0x13, 0xa8, 0x28,
385    0xe3, 0x70, 0xdd, 0x68, 0x2b, 0xf8, 0xd2, 0xe7, 0x1a, 0xec, 0x34, 0xd2,
386    0xce, 0x7c, 0x69, 0xc5, 0xe4, 0xde, 0x98, 0x8d, 0x1d, 0x54, 0x21, 0x12,
387    0x25, 0x2d, 0xff, 0xbf, 0x1c, 0x97, 0x01, 0x25, 0x2b, 0xbe, 0xad, 0x98,
388    0x4a, 0xd3, 0x19, 0x93, 0x9c, 0x03, 0xe6, 0xa4, 0xeb, 0x6c, 0x18, 0x9d,
389    0xae, 0xcc, 0xc4, 0xb8, 0x24, 0x2d, 0xa0, 0xc1, 0x70, 0xa3, 0x5c, 0x2f,
390    0x6e, 0xee, 0x1c, 0x66, 0x67, 0x43, 0xd8, 0x50, 0x23, 0xe8, 0xd9, 0xb8,
391    0x24, 0x98, 0x3a, 0x7d, 0xcf, 0x12, 0x89, 0xae, 0x1a, 0x11, 0x26, 0xa9,
392    0x80, 0xef, 0x08, 0x20, 0xf0, 0x11, 0x95, 0xfc, 0xe8, 0xfc, 0xc3, 0x4a,
393    0x8b, 0x55, 0x2e, 0xf8, 0x93, 0x6c, 0xe1, 0x82, 0xcb, 0x33, 0xe6, 0xfa,
394    0xa1, 0xc2, 0x1d, 0x26, 0xa1, 0x38, 0xc2, 0x12, 0x53, 0x51, 0xa0, 0xbf,
395    0xa9, 0x11, 0x57, 0x18, 0x1a, 0x94, 0x28, 0xe6, 0xf6, 0x71, 0x46, 0x02,
396    0xd9, 0x1e, 0x1c, 0x07, 0xf4, 0x95, 0xb9, 0xfb, 0x30, 0x79, 0xa6, 0x8a,
397    0xe0, 0x0d, 0x35, 0xb6, 0xb4, 0x4f, 0xde, 0x59, 0x35, 0x7c, 0x1a, 0xf9,
398    0xcc, 0x42, 0x40, 0xba, 0x58, 0x07, 0xd6, 0x10, 0x20, 0x7d, 0xa4, 0x49,
399    0x17, 0x4f, 0x03, 0xa6, 0xaf, 0x30, 0xbd, 0x54, 0x6b, 0x2a, 0xc3, 0x65,
400    0x98, 0x71, 0x6c, 0xcc, 0x75, 0x4e, 0xfb, 0x68, 0x14, 0x9d, 0x50, 0xe2,
401    0x4f, 0x93, 0x48, 0x2c, 0xc3, 0x37, 0x6c, 0x7e, 0x6a, 0x87, 0x4f, 0x5a,
402    0x01, 0xcc, 0x17, 0x54, 0xe7, 0xc0, 0x3d, 0xb3, 0xb4, 0x5f, 0xb9, 0xf1,
403    0xcb, 0x5f, 0x9e, 0x48, 0xa2, 0x01, 0x82, 0xb0, 0xd9, 0x01, 0xa8, 0xf9,
404    0xac, 0xbe, 0x44, 0x23, 0xb1, 0x43, 0x85, 0xe6, 0x50, 0x64, 0x80, 0xfc,
405    0x62, 0xbd, 0xda, 0xef, 0x85, 0xb2, 0x70, 0x8a, 0x0d, 0x5a, 0x62, 0xda,
406    0xcc, 0xb3, 0xc1, 0x3a, 0x21, 0xa0, 0x09, 0xfa, 0x64, 0x79, 0xf5, 0xa5,
407    0xb6, 0x52, 0x28, 0xb5, 0x2f, 0xbd, 0x9b, 0x98, 0xae, 0x42, 0x32, 0x15,
408    0xcc, 0x1a, 0x7d, 0xa6, 0xef, 0x4a, 0xf8, 0x09, 0x72, 0x3e, 0xc3, 0x69,
409    0x31, 0x9f, 0x4b, 0x32, 0x73, 0x5f, 0xbf, 0x5f, 0xd5, 0xc3, 0x9f, 0x1e,
410    0xcf, 0x6b, 0x0c, 0xde, 0x32, 0x57, 0x1d, 0x1d, 0xc0, 0xf8, 0xe9, 0x85,
411    0x8e, 0xd0, 0xf4, 0x86, 0xad, 0xfa, 0x51, 0x07, 0xed, 0x1c, 0xb6, 0x60,
412    0x8f, 0xdc, 0x72, 0x61, 0x36, 0x2e, 0x02, 0xf9, 0xe5, 0x3e, 0x14, 0x19,
413    0xa5, 0x30, 0xb6, 0x2a, 0x7e, 0xf9, 0xbc, 0x95, 0x82, 0x0f, 0x1b, 0x61,
414    0xa5, 0xad, 0x50, 0x38, 0xa1, 0xfe, 0xa8, 0xd0, 0x86, 0x69, 0x40, 0xb9,
415    0x82, 0x21, 0xbc, 0x26, 0x9b, 0x87, 0x2f, 0xf6, 0x39, 0x9c, 0x0a, 0x71,
416    0x0d, 0x54, 0x68, 0x78, 0xcc, 0x81, 0xaf, 0x09, 0xd7, 0xa2, 0x1c, 0x7a,
417    0xfb, 0xfb, 0xae, 0xe0, 0x59, 0x23, 0x0b, 0x8a, 0x5a, 0x9c, 0x4c, 0x9d,
418    0x17, 0xfc, 0x52, 0x66, 0x43, 0xbf, 0x06, 0x6c, 0x56, 0x3f, 0xdd, 0x8e,
419    0x33, 0x2e, 0xb8, 0xd7, 0xed, 0x13, 0x44, 0x05, 0x5b, 0xbf, 0x43, 0xc7,
420    0xfd, 0x6e, 0x41, 0xf4, 0xb8, 0xf0, 0x84, 0x73, 0x60, 0xe4, 0x72, 0x24,
421    0x00, 0xec, 0xdf, 0x1b, 0x0d, 0x57, 0x26, 0x04, 0xa0, 0x8c, 0x25, 0x12,
422    0xe0, 0xc6, 0x14, 0x0e, 0x69, 0xc2, 0xc8, 0x43, 0x53, 0xc6, 0x66, 0x50,
423    0x96, 0x29, 0x50, 0x6d, 0xab, 0x02, 0x29, 0xbd, 0x17, 0xda, 0xd4, 0x5b,
424    0xbe, 0xb1, 0xe8, 0x9a, 0x32, 0x3f, 0x39, 0x12, 0x4b, 0x02, 0xb7, 0x8f,
425    0x64, 0xca, 0x24, 0x43, 0x2b, 0xee, 0x04, 0xbb, 0xbd, 0x2b, 0x9f, 0x1c,
426    0x66, 0xe0, 0x6a, 0xa5, 0xd4, 0x0e, 0x3f, 0x5e, 0xad, 0xe5, 0xc4, 0xcd,
427    0x17, 0x71, 0x57, 0x62, 0xe6, 0x7d, 0xe1, 0xc1, 0xd8, 0x3e, 0x38, 0x30,
428    0x31, 0x49, 0xb0, 0x8d, 0x64, 0x80, 0x55, 0x30, 0xc4, 0x38, 0x22, 0xad,
429    0xc7, 0x8f, 0x1a, 0xbd, 0x30, 0xf8, 0x29, 0xcc, 0xdc, 0x16, 0x6e, 0xf4,
430    0x2d, 0xc4, 0x04, 0x49, 0x9a, 0x20, 0xf3, 0x9a, 0xd9, 0xab, 0x31, 0xe4,
431    0xb4, 0x0a, 0xce, 0x4e, 0xff, 0xdd, 0xe0, 0x75, 0x59, 0xe5, 0x40, 0x2d,
432    0xb5, 0xba, 0xae, 0x73, 0x91, 0x32, 0xba, 0x0d, 0xf3, 0x4a, 0x38, 0xa3,
433    0x0c, 0x11, 0xd2, 0x6c, 0x75, 0x80, 0x7a, 0xe4, 0xd5, 0x98, 0x47, 0x05,
434    0x66, 0x6c, 0x2e, 0x9d, 0x96, 0xad, 0x99, 0x30, 0xdf, 0xc2, 0x54, 0x5a,
435    0x4d, 0xc3, 0x21, 0x80, 0x52, 0xb7, 0x21, 0xa8, 0xb3, 0xd6, 0xe6, 0xf2,
436    0xaf, 0xd3, 0x49, 0x3e, 0xff, 0xb2, 0xc2, 0xc9, 0x8b, 0xba, 0x63, 0x6c,
437    0xf8, 0x8c, 0x39, 0x16, 0x52, 0x59, 0x86, 0x20, 0x50, 0x3a, 0xe6, 0x0f,
438    0x41, 0x13, 0x68, 0xe7, 0x0f, 0x16, 0x58, 0x38, 0xff, 0xb6, 0x26, 0x69,
439    0x41, 0x07, 0xeb, 0x21, 0x45, 0xaa, 0xed, 0xae, 0xea, 0xf6, 0xda, 0x00,
440    0x72, 0x30, 0x82, 0x02, 0xc1, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
441    0x0d, 0x01, 0x07, 0x01, 0xa0, 0x82, 0x02, 0xb2, 0x04, 0x82, 0x02, 0xae,
442    0x30, 0x82, 0x02, 0xaa, 0x30, 0x82, 0x01, 0x51, 0x06, 0x0b, 0x2a, 0x86,
443    0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x0a, 0x01, 0x02, 0xa0, 0x81, 0xbc,
444    0x30, 0x81, 0xb9, 0x30, 0x1c, 0x06, 0x0a, 0x2a, 0x86, 0x48, 0x86, 0xf7,
445    0x0d, 0x01, 0x0c, 0x01, 0x03, 0x30, 0x0e, 0x04, 0x08, 0x3a, 0xe1, 0x16,
446    0x95, 0xa1, 0x45, 0x12, 0xa2, 0x02, 0x02, 0x08, 0x00, 0x04, 0x81, 0x98,
447    0x56, 0x4a, 0x5a, 0xd4, 0xf6, 0x2f, 0x5d, 0x91, 0x3d, 0xed, 0x38, 0x21,
448    0x90, 0x2a, 0xe1, 0x2d, 0x6e, 0xb5, 0x1c, 0xd9, 0xb0, 0x88, 0xcf, 0xb9,
449    0xc7, 0x3a, 0x2b, 0x21, 0xc3, 0xf6, 0x51, 0x91, 0x0c, 0xfb, 0x29, 0x84,
450    0xd1, 0x62, 0x5f, 0x75, 0xee, 0xe6, 0xb0, 0x83, 0x4b, 0x9e, 0x55, 0x7b,
451    0xdd, 0xd3, 0x9c, 0x36, 0x1f, 0xe8, 0x0a, 0x23, 0x4e, 0x5d, 0xde, 0x11,
452    0x71, 0x26, 0xfd, 0x8d, 0x5b, 0xa8, 0x9e, 0x19, 0x2d, 0xbc, 0x2c, 0x75,
453    0xfa, 0x0b, 0xa2, 0x4c, 0xe5, 0x07, 0xed, 0x6b, 0x95, 0x3d, 0x75, 0x12,
454    0xb2, 0xec, 0xc5, 0x20, 0x5e, 0xfb, 0x5c, 0x0b, 0x68, 0x35, 0x1f, 0xdf,
455    0xe0, 0xaa, 0xd5, 0x93, 0x27, 0x3e, 0xa2, 0xed, 0x3f, 0x6d, 0x2c, 0xc0,
456    0x6f, 0x55, 0xf0, 0x21, 0xa6, 0xfa, 0x79, 0xce, 0xc5, 0xd6, 0x39, 0xa6,
457    0x04, 0xa8, 0x4a, 0xa6, 0x95, 0xf0, 0x7e, 0xe7, 0x54, 0xee, 0xb2, 0x88,
458    0xe2, 0x66, 0x5c, 0xb8, 0x5d, 0x3b, 0x90, 0x32, 0x6a, 0xfb, 0x3e, 0xa3,
459    0x8b, 0x6b, 0x96, 0xf6, 0x42, 0x55, 0xb3, 0x9f, 0x31, 0x81, 0x82, 0x30,
460    0x5b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x14,
461    0x31, 0x4e, 0x1e, 0x4c, 0x00, 0x4d, 0x00, 0x65, 0x00, 0x73, 0x00, 0x73,
462    0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00, 0x50, 0x00, 0x72, 0x00, 0x6f,
463    0x00, 0x74, 0x00, 0x65, 0x00, 0x63, 0x00, 0x74, 0x00, 0x69, 0x00, 0x6f,
464    0x00, 0x6e, 0x00, 0x54, 0x00, 0x65, 0x00, 0x73, 0x00, 0x74, 0x00, 0x53,
465    0x00, 0x69, 0x00, 0x67, 0x00, 0x6e, 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67,
466    0x00, 0x49, 0x00, 0x64, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x69,
467    0x00, 0x74, 0x00, 0x79, 0x00, 0x31, 0x00, 0x00, 0x30, 0x23, 0x06, 0x09,
468    0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x15, 0x31, 0x16, 0x04,
469    0x14, 0xf8, 0x15, 0x2d, 0x15, 0x6b, 0x7d, 0x28, 0xe8, 0x23, 0x88, 0xbf,
470    0xba, 0xa2, 0x3a, 0x3e, 0x9a, 0x03, 0xe6, 0xc6, 0x89, 0x30, 0x82, 0x01,
471    0x51, 0x06, 0x0b, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x0a,
472    0x01, 0x02, 0xa0, 0x81, 0xbc, 0x30, 0x81, 0xb9, 0x30, 0x1c, 0x06, 0x0a,
473    0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x0c, 0x01, 0x03, 0x30, 0x0e,
474    0x04, 0x08, 0xe3, 0xef, 0x16, 0x96, 0x45, 0x16, 0xe5, 0xb3, 0x02, 0x02,
475    0x08, 0x00, 0x04, 0x81, 0x98, 0xf0, 0x1d, 0x35, 0x91, 0xfc, 0x16, 0x43,
476    0xaa, 0x1d, 0xb0, 0x58, 0x12, 0xde, 0x69, 0x92, 0xd0, 0xac, 0x96, 0xbe,
477    0xc7, 0xbb, 0xb8, 0xb2, 0x44, 0x4e, 0x17, 0xd1, 0xb5, 0xfb, 0x36, 0xea,
478    0xd7, 0x06, 0x3a, 0x0e, 0x9a, 0xaa, 0x23, 0xfa, 0x70, 0x51, 0xb9, 0xf9,
479    0x90, 0x78, 0xbc, 0xb3, 0x63, 0x48, 0x8c, 0x84, 0xb2, 0xa2, 0x98, 0xc9,
480    0x71, 0x46, 0x82, 0x42, 0x9f, 0x0f, 0x7b, 0xcc, 0xbe, 0xcc, 0xad, 0x3c,
481    0x30, 0xdb, 0x1d, 0x34, 0xcc, 0x89, 0x91, 0x6b, 0xee, 0x2f, 0x9c, 0x75,
482    0x8b, 0x55, 0xff, 0x2e, 0x0b, 0x1d, 0x71, 0x5e, 0xb1, 0xa2, 0xb2, 0x5e,
483    0x7e, 0x48, 0x37, 0x2f, 0x08, 0x67, 0x91, 0x9a, 0xf1, 0x05, 0x1c, 0x7a,
484    0x7f, 0xee, 0x6f, 0x1e, 0x5b, 0xd9, 0x7c, 0x2d, 0xb8, 0x09, 0x72, 0xb6,
485    0x5a, 0xbf, 0x9a, 0xd7, 0x23, 0x39, 0x6f, 0x1f, 0xf8, 0xd5, 0x72, 0x49,
486    0xea, 0xab, 0x4b, 0xa0, 0xcb, 0xa3, 0xc7, 0xef, 0xb8, 0x8c, 0xda, 0x4c,
487    0x0a, 0x8f, 0xeb, 0x7f, 0x8f, 0x42, 0xd4, 0xad, 0x45, 0x72, 0xda, 0xd9,
488    0xc4, 0x31, 0x81, 0x82, 0x30, 0x5b, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86,
489    0xf7, 0x0d, 0x01, 0x09, 0x14, 0x31, 0x4e, 0x1e, 0x4c, 0x00, 0x4d, 0x00,
490    0x65, 0x00, 0x73, 0x00, 0x73, 0x00, 0x61, 0x00, 0x67, 0x00, 0x65, 0x00,
491    0x50, 0x00, 0x72, 0x00, 0x6f, 0x00, 0x74, 0x00, 0x65, 0x00, 0x63, 0x00,
492    0x74, 0x00, 0x69, 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x54, 0x00, 0x65, 0x00,
493    0x73, 0x00, 0x74, 0x00, 0x53, 0x00, 0x69, 0x00, 0x67, 0x00, 0x6e, 0x00,
494    0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x49, 0x00, 0x64, 0x00, 0x65, 0x00,
495    0x6e, 0x00, 0x74, 0x00, 0x69, 0x00, 0x74, 0x00, 0x79, 0x00, 0x31, 0x00,
496    0x00, 0x30, 0x23, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01,
497    0x09, 0x15, 0x31, 0x16, 0x04, 0x14, 0xf8, 0x15, 0x2d, 0x15, 0x6b, 0x7d,
498    0x28, 0xe8, 0x23, 0x88, 0xbf, 0xba, 0xa2, 0x3a, 0x3e, 0x9a, 0x03, 0xe6,
499    0xc6, 0x89, 0x30, 0x30, 0x30, 0x21, 0x30, 0x09, 0x06, 0x05, 0x2b, 0x0e,
500    0x03, 0x02, 0x1a, 0x05, 0x00, 0x04, 0x14, 0x06, 0xfc, 0xc7, 0x98, 0xaf,
501    0x81, 0x75, 0x9f, 0x25, 0x05, 0x0c, 0x6d, 0x78, 0xac, 0x4b, 0x31, 0x23,
502    0x6c, 0x9b, 0x4d, 0x04, 0x08, 0xf5, 0x1e, 0x85, 0xf5, 0x54, 0xf6, 0x09,
503    0x53, 0x02, 0x01, 0x01
504};
505unsigned int ECDSA_fails_import_p12_len = 2044;
506
507unsigned char ECDSA_fails_import_priv_only[] = {
508    0x30, 0x25, 0x02, 0x01, 0x01, 0x04, 0x20, 0x79, 0xf4, 0x38, 0x5c, 0x35,
509    0xe1, 0x97, 0xbf, 0xc7, 0x39, 0xc1, 0x2e, 0x40, 0x52, 0x9f, 0xd1, 0xf0,
510    0x13, 0xa6, 0x94, 0xc5, 0xdc, 0x3b, 0x14, 0x5b, 0x08, 0x11, 0x28, 0xc5,
511    0xb6, 0xc4, 0xd7
512};
513unsigned int ECDSA_fails_import_priv_only_len = 39;
514
515static void tests(void)
516{
517    CFDataRef message = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault,
518        _user_one_p12, sizeof(_user_one_p12), kCFAllocatorNull);
519    CFArrayRef items = NULL;
520    SecCertificateRef cert = NULL;
521    SecKeyRef pkey = NULL;
522
523    is_status(SecPKCS12Import(message, NULL, NULL), errSecAuthFailed,
524        "try null password on a known good p12");
525
526    CFStringRef password = CFSTR("user-one");
527    CFDictionaryRef options = CFDictionaryCreate(NULL,
528        (const void **)&kSecImportExportPassphrase,
529        (const void **)&password, 1,
530        &kCFTypeDictionaryKeyCallBacks,
531        &kCFTypeDictionaryValueCallBacks);
532    ok_status(SecPKCS12Import(message, options, &items), "import user one");
533
534    is(CFArrayGetCount(items), 1, "one identity");
535    CFDictionaryRef item = CFArrayGetValueAtIndex(items, 0);
536    SecIdentityRef identity = NULL;
537    ok(identity = (SecIdentityRef)CFDictionaryGetValue(item, kSecImportItemIdentity), "pull identity from imported data");
538
539    ok(CFGetTypeID(identity)==SecIdentityGetTypeID(),"this is a SecIdentityRef");
540    ok_status(SecIdentityCopyPrivateKey(identity, &pkey),"get private key");
541    ok_status(SecIdentityCopyCertificate(identity, &cert), "get certificate");
542
543    CFReleaseNull(items);
544    CFReleaseNull(message);
545    CFReleaseNull(options);
546    CFReleaseNull(password);
547    CFReleaseNull(cert);
548    CFReleaseNull(pkey);
549
550    message = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault,
551        _user_two_p12, sizeof(_user_two_p12), kCFAllocatorNull);
552    items = NULL;
553    password = CFSTR("user-two");
554    options = CFDictionaryCreate(NULL,
555        (const void **)&kSecImportExportPassphrase,
556        (const void **)&password, 1,
557        &kCFTypeDictionaryKeyCallBacks,
558        &kCFTypeDictionaryValueCallBacks);
559
560    ok_status(SecPKCS12Import(message, options, &items), "import user two");
561    is(CFArrayGetCount(items), 1, "one identity");
562    item = CFArrayGetValueAtIndex(items, 0);
563    ok(identity = (SecIdentityRef)CFDictionaryGetValue(item, kSecImportItemIdentity), "pull identity from imported data");
564
565    ok(CFGetTypeID(identity)==SecIdentityGetTypeID(),"this is a SecIdentityRef");
566    ok_status(SecIdentityCopyPrivateKey(identity, &pkey),"get private key");
567    ok_status(SecIdentityCopyCertificate(identity, &cert), "get certificate");
568
569    CFReleaseNull(items);
570    CFReleaseNull(message);
571    CFReleaseNull(options);
572    CFReleaseNull(password);
573    CFReleaseNull(cert);
574    CFReleaseNull(pkey);
575
576
577
578    message = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault,
579                                          ECDSA_fails_import_p12, ECDSA_fails_import_p12_len, kCFAllocatorNull);
580    items = NULL;
581    password = CFSTR("test");
582    options = CFDictionaryCreate(NULL,
583                                 (const void **)&kSecImportExportPassphrase,
584                                 (const void **)&password, 1,
585                                 &kCFTypeDictionaryKeyCallBacks,
586                                 &kCFTypeDictionaryValueCallBacks);
587
588    ok_status(SecPKCS12Import(message, options, &items), "import ECDSA_fails_import_p12");
589    is(CFArrayGetCount(items), 1, "one identity");
590    item = CFArrayGetValueAtIndex(items, 0);
591    ok(identity = (SecIdentityRef)CFDictionaryGetValue(item, kSecImportItemIdentity), "pull identity from imported data");
592
593    ok(CFGetTypeID(identity)==SecIdentityGetTypeID(),"this is a SecIdentityRef");
594    ok_status(SecIdentityCopyPrivateKey(identity, &pkey),"get private key");
595    ok_status(SecIdentityCopyCertificate(identity, &cert), "get certificate");
596
597    CFDataRef pubdata = NULL;
598    SecKeyRef pubkey = NULL;
599
600    ok_status(SecKeyCopyPublicBytes(pkey, &pubdata), "pub key from priv key");
601    ok(pubkey = SecKeyCreateECPublicKey(kCFAllocatorDefault,
602        CFDataGetBytePtr(pubdata), CFDataGetLength(pubdata), kSecKeyEncodingBytes),
603       "recreate seckey");
604
605    /* Sign something. */
606    uint8_t something[20] = {0x80, 0xbe, 0xef, 0xba, 0xd0, };
607    size_t sigLen = SecKeyGetSize(pkey, kSecKeySignatureSize);
608    uint8_t sig[sigLen];
609    ok_status(SecKeyRawSign(pkey, kSecPaddingPKCS1,
610                            something, sizeof(something), sig, &sigLen), "sign something");
611    ok_status(SecKeyRawVerify(pubkey, kSecPaddingPKCS1,
612                              something, sizeof(something), sig, sigLen), "verify sig on something");
613
614
615    CFReleaseNull(pubdata);
616    CFReleaseNull(pubkey);
617    CFReleaseNull(pkey);
618
619    ok(pkey = SecKeyCreateECPrivateKey(kCFAllocatorDefault,
620        ECDSA_fails_import_priv_only, ECDSA_fails_import_priv_only_len,
621        kSecKeyEncodingPkcs1), "import privkey without pub");
622    ok_status(SecKeyCopyPublicBytes(pkey, &pubdata), "pub key from priv key");
623    ok(pubkey = SecKeyCreateECPublicKey(kCFAllocatorDefault,
624        CFDataGetBytePtr(pubdata), CFDataGetLength(pubdata), kSecKeyEncodingBytes),
625       "recreate seckey");
626    ok_status(SecKeyRawVerify(pubkey, kSecPaddingPKCS1,
627        something, sizeof(something), sig, sigLen), "verify sig on something");
628
629    CFReleaseNull(pubdata);
630    CFReleaseNull(pubkey);
631    CFReleaseNull(pkey);
632    CFReleaseNull(items);
633    CFReleaseNull(message);
634    CFReleaseNull(options);
635    CFReleaseNull(password);
636    CFReleaseNull(cert);
637
638}
639
640int si_61_pkcs12(int argc, char *const *argv)
641{
642	plan_tests(27);
643
644	tests();
645
646	return 0;
647}
648