OLD | NEW |
| (Empty) |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "base/basictypes.h" | |
6 #include "net/base/x509_cert_types.h" | |
7 #include "testing/gtest/include/gtest/gtest.h" | |
8 | |
9 // 0:d=0 hl=2 l= 95 cons: SEQUENCE | |
10 // 2:d=1 hl=2 l= 11 cons: SET | |
11 // 4:d=2 hl=2 l= 9 cons: SEQUENCE | |
12 // 6:d=3 hl=2 l= 3 prim: OBJECT :countryName | |
13 // 11:d=3 hl=2 l= 2 prim: PRINTABLESTRING :US | |
14 // 15:d=1 hl=2 l= 23 cons: SET | |
15 // 17:d=2 hl=2 l= 21 cons: SEQUENCE | |
16 // 19:d=3 hl=2 l= 3 prim: OBJECT :organizationName | |
17 // 24:d=3 hl=2 l= 14 prim: PRINTABLESTRING :VeriSign, Inc. | |
18 // 40:d=1 hl=2 l= 55 cons: SET | |
19 // 42:d=2 hl=2 l= 53 cons: SEQUENCE | |
20 // 44:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName | |
21 // 49:d=3 hl=2 l= 46 prim: PRINTABLESTRING :Class 1 Public Primary Certif
ication Authority | |
22 static const uint8 VerisignDN[] = { | |
23 0x30, 0x5f, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, | |
24 0x55, 0x53, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0e, | |
25 0x56, 0x65, 0x72, 0x69, 0x53, 0x69, 0x67, 0x6e, 0x2c, 0x20, 0x49, 0x6e, 0x63, | |
26 0x2e, 0x31, 0x37, 0x30, 0x35, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x2e, 0x43, | |
27 0x6c, 0x61, 0x73, 0x73, 0x20, 0x31, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, | |
28 0x20, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x20, 0x43, 0x65, 0x72, 0x74, | |
29 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, | |
30 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79 | |
31 }; | |
32 | |
33 // 0:d=0 hl=2 l= 125 cons: SEQUENCE | |
34 // 2:d=1 hl=2 l= 11 cons: SET | |
35 // 4:d=2 hl=2 l= 9 cons: SEQUENCE | |
36 // 6:d=3 hl=2 l= 3 prim: OBJECT :countryName | |
37 // 11:d=3 hl=2 l= 2 prim: PRINTABLESTRING :IL | |
38 // 15:d=1 hl=2 l= 22 cons: SET | |
39 // 17:d=2 hl=2 l= 20 cons: SEQUENCE | |
40 // 19:d=3 hl=2 l= 3 prim: OBJECT :organizationName | |
41 // 24:d=3 hl=2 l= 13 prim: PRINTABLESTRING :StartCom Ltd. | |
42 // 39:d=1 hl=2 l= 43 cons: SET | |
43 // 41:d=2 hl=2 l= 41 cons: SEQUENCE | |
44 // 43:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName | |
45 // 48:d=3 hl=2 l= 34 prim: PRINTABLESTRING :Secure Digital Certificate Si
gning | |
46 // 84:d=1 hl=2 l= 41 cons: SET | |
47 // 86:d=2 hl=2 l= 39 cons: SEQUENCE | |
48 // 88:d=3 hl=2 l= 3 prim: OBJECT :commonName | |
49 // 93:d=3 hl=2 l= 32 prim: PRINTABLESTRING :StartCom Certification Author
ity | |
50 static const uint8 StartComDN[] = { | |
51 0x30, 0x7d, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, | |
52 0x49, 0x4c, 0x31, 0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0d, | |
53 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, 0x4c, 0x74, 0x64, 0x2e, | |
54 0x31, 0x2b, 0x30, 0x29, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x22, 0x53, 0x65, | |
55 0x63, 0x75, 0x72, 0x65, 0x20, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x20, | |
56 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x53, | |
57 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x31, 0x29, 0x30, 0x27, 0x06, 0x03, 0x55, | |
58 0x04, 0x03, 0x13, 0x20, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x20, | |
59 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, | |
60 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79 | |
61 }; | |
62 | |
63 // 0:d=0 hl=3 l= 174 cons: SEQUENCE | |
64 // 3:d=1 hl=2 l= 11 cons: SET | |
65 // 5:d=2 hl=2 l= 9 cons: SEQUENCE | |
66 // 7:d=3 hl=2 l= 3 prim: OBJECT :countryName | |
67 // 12:d=3 hl=2 l= 2 prim: PRINTABLESTRING :US | |
68 // 16:d=1 hl=2 l= 11 cons: SET | |
69 // 18:d=2 hl=2 l= 9 cons: SEQUENCE | |
70 // 20:d=3 hl=2 l= 3 prim: OBJECT :stateOrProvinceName | |
71 // 25:d=3 hl=2 l= 2 prim: PRINTABLESTRING :UT | |
72 // 29:d=1 hl=2 l= 23 cons: SET | |
73 // 31:d=2 hl=2 l= 21 cons: SEQUENCE | |
74 // 33:d=3 hl=2 l= 3 prim: OBJECT :localityName | |
75 // 38:d=3 hl=2 l= 14 prim: PRINTABLESTRING :Salt Lake City | |
76 // 54:d=1 hl=2 l= 30 cons: SET | |
77 // 56:d=2 hl=2 l= 28 cons: SEQUENCE | |
78 // 58:d=3 hl=2 l= 3 prim: OBJECT :organizationName | |
79 // 63:d=3 hl=2 l= 21 prim: PRINTABLESTRING :The USERTRUST Network | |
80 // 86:d=1 hl=2 l= 33 cons: SET | |
81 // 88:d=2 hl=2 l= 31 cons: SEQUENCE | |
82 // 90:d=3 hl=2 l= 3 prim: OBJECT :organizationalUnitName | |
83 // 95:d=3 hl=2 l= 24 prim: PRINTABLESTRING :http://www.usertrust.com | |
84 //121:d=1 hl=2 l= 54 cons: SET | |
85 //123:d=2 hl=2 l= 52 cons: SEQUENCE | |
86 //125:d=3 hl=2 l= 3 prim: OBJECT :commonName | |
87 //130:d=3 hl=2 l= 45 prim: PRINTABLESTRING :UTN-USERFirst-Client Authenti
cation and Email | |
88 static const uint8 UserTrustDN[] = { | |
89 0x30, 0x81, 0xae, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, | |
90 0x02, 0x55, 0x53, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x08, 0x13, | |
91 0x02, 0x55, 0x54, 0x31, 0x17, 0x30, 0x15, 0x06, 0x03, 0x55, 0x04, 0x07, 0x13, | |
92 0x0e, 0x53, 0x61, 0x6c, 0x74, 0x20, 0x4c, 0x61, 0x6b, 0x65, 0x20, 0x43, 0x69, | |
93 0x74, 0x79, 0x31, 0x1e, 0x30, 0x1c, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x15, | |
94 0x54, 0x68, 0x65, 0x20, 0x55, 0x53, 0x45, 0x52, 0x54, 0x52, 0x55, 0x53, 0x54, | |
95 0x20, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x31, 0x21, 0x30, 0x1f, 0x06, | |
96 0x03, 0x55, 0x04, 0x0b, 0x13, 0x18, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, | |
97 0x77, 0x77, 0x77, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x74, 0x72, 0x75, 0x73, 0x74, | |
98 0x2e, 0x63, 0x6f, 0x6d, 0x31, 0x36, 0x30, 0x34, 0x06, 0x03, 0x55, 0x04, 0x03, | |
99 0x13, 0x2d, 0x55, 0x54, 0x4e, 0x2d, 0x55, 0x53, 0x45, 0x52, 0x46, 0x69, 0x72, | |
100 0x73, 0x74, 0x2d, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x20, 0x41, 0x75, 0x74, | |
101 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, | |
102 0x6e, 0x64, 0x20, 0x45, 0x6d, 0x61, 0x69, 0x6c | |
103 }; | |
104 | |
105 // 0:d=0 hl=3 l= 190 cons: SEQUENCE | |
106 // 3:d=1 hl=2 l= 63 cons: SET | |
107 // 5:d=2 hl=2 l= 61 cons: SEQUENCE | |
108 // 7:d=3 hl=2 l= 3 prim: OBJECT :commonName | |
109 // 12:d=3 hl=2 l= 54 prim: UTF8STRING :TÜRKTRUST Elektronik Sertifik
a Hizmet Sağlayıcısı | |
110 // 68:d=1 hl=2 l= 11 cons: SET | |
111 // 70:d=2 hl=2 l= 9 cons: SEQUENCE | |
112 // 72:d=3 hl=2 l= 3 prim: OBJECT :countryName | |
113 // 77:d=3 hl=2 l= 2 prim: PRINTABLESTRING :TR | |
114 // 81:d=1 hl=2 l= 15 cons: SET | |
115 // 83:d=2 hl=2 l= 13 cons: SEQUENCE | |
116 // 85:d=3 hl=2 l= 3 prim: OBJECT :localityName | |
117 // 90:d=3 hl=2 l= 6 prim: UTF8STRING :Ankara | |
118 // 98:d=1 hl=2 l= 93 cons: SET | |
119 //100:d=2 hl=2 l= 91 cons: SEQUENCE | |
120 //102:d=3 hl=2 l= 3 prim: OBJECT :organizationName | |
121 //107:d=3 hl=2 l= 84 prim: UTF8STRING :TÜRKTRUST Bilgi İletişim ve B
ilişim Güvenliği Hizmetleri A.Ş. (c) Kasım 2005 | |
122 static const uint8 TurkTrustDN[] = { | |
123 0x30, 0x81, 0xbe, 0x31, 0x3f, 0x30, 0x3d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, | |
124 0x36, 0x54, 0xc3, 0x9c, 0x52, 0x4b, 0x54, 0x52, 0x55, 0x53, 0x54, 0x20, 0x45, | |
125 0x6c, 0x65, 0x6b, 0x74, 0x72, 0x6f, 0x6e, 0x69, 0x6b, 0x20, 0x53, 0x65, 0x72, | |
126 0x74, 0x69, 0x66, 0x69, 0x6b, 0x61, 0x20, 0x48, 0x69, 0x7a, 0x6d, 0x65, 0x74, | |
127 0x20, 0x53, 0x61, 0xc4, 0x9f, 0x6c, 0x61, 0x79, 0xc4, 0xb1, 0x63, 0xc4, 0xb1, | |
128 0x73, 0xc4, 0xb1, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, | |
129 0x02, 0x54, 0x52, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, | |
130 0x06, 0x41, 0x6e, 0x6b, 0x61, 0x72, 0x61, 0x31, 0x5d, 0x30, 0x5b, 0x06, 0x03, | |
131 0x55, 0x04, 0x0a, 0x0c, 0x54, 0x54, 0xc3, 0x9c, 0x52, 0x4b, 0x54, 0x52, 0x55, | |
132 0x53, 0x54, 0x20, 0x42, 0x69, 0x6c, 0x67, 0x69, 0x20, 0xc4, 0xb0, 0x6c, 0x65, | |
133 0x74, 0x69, 0xc5, 0x9f, 0x69, 0x6d, 0x20, 0x76, 0x65, 0x20, 0x42, 0x69, 0x6c, | |
134 0x69, 0xc5, 0x9f, 0x69, 0x6d, 0x20, 0x47, 0xc3, 0xbc, 0x76, 0x65, 0x6e, 0x6c, | |
135 0x69, 0xc4, 0x9f, 0x69, 0x20, 0x48, 0x69, 0x7a, 0x6d, 0x65, 0x74, 0x6c, 0x65, | |
136 0x72, 0x69, 0x20, 0x41, 0x2e, 0xc5, 0x9e, 0x2e, 0x20, 0x28, 0x63, 0x29, 0x20, | |
137 0x4b, 0x61, 0x73, 0xc4, 0xb1, 0x6d, 0x20, 0x32, 0x30, 0x30, 0x35, 0x30, 0x1e, | |
138 0x17, 0x0d, 0x30, 0x35, 0x31, 0x31, 0x30, 0x37, 0x31, 0x30, 0x30, 0x37, 0x35, | |
139 0x37 | |
140 }; | |
141 | |
142 // 33:d=2 hl=3 l= 207 cons: SEQUENCE | |
143 // 36:d=3 hl=2 l= 11 cons: SET | |
144 // 38:d=4 hl=2 l= 9 cons: SEQUENCE | |
145 // 40:d=5 hl=2 l= 3 prim: OBJECT :countryName | |
146 // 45:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AT | |
147 // 49:d=3 hl=3 l= 139 cons: SET | |
148 // 52:d=4 hl=3 l= 136 cons: SEQUENCE | |
149 // 55:d=5 hl=2 l= 3 prim: OBJECT :organizationName | |
150 // 60:d=5 hl=3 l= 128 prim: BMPSTRING :A-Trust Ges. für Sicherheit
ssysteme im elektr. Datenverkehr GmbH | |
151 //191:d=3 hl=2 l= 24 cons: SET | |
152 //193:d=4 hl=2 l= 22 cons: SEQUENCE | |
153 //195:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName | |
154 //200:d=5 hl=2 l= 15 prim: PRINTABLESTRING :A-Trust-Qual-01 | |
155 //217:d=3 hl=2 l= 24 cons: SET | |
156 //219:d=4 hl=2 l= 22 cons: SEQUENCE | |
157 //221:d=5 hl=2 l= 3 prim: OBJECT :commonName | |
158 //226:d=5 hl=2 l= 15 prim: PRINTABLESTRING :A-Trust-Qual-01 | |
159 static const uint8 ATrustQual01DN[] = { | |
160 0x30, 0x81, 0xcf, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, | |
161 0x02, 0x41, 0x54, 0x31, 0x81, 0x8b, 0x30, 0x81, 0x88, 0x06, 0x03, 0x55, 0x04, | |
162 0x0a, 0x1e, 0x81, 0x80, 0x00, 0x41, 0x00, 0x2d, 0x00, 0x54, 0x00, 0x72, 0x00, | |
163 0x75, 0x00, 0x73, 0x00, 0x74, 0x00, 0x20, 0x00, 0x47, 0x00, 0x65, 0x00, 0x73, | |
164 0x00, 0x2e, 0x00, 0x20, 0x00, 0x66, 0x00, 0xfc, 0x00, 0x72, 0x00, 0x20, 0x00, | |
165 0x53, 0x00, 0x69, 0x00, 0x63, 0x00, 0x68, 0x00, 0x65, 0x00, 0x72, 0x00, 0x68, | |
166 0x00, 0x65, 0x00, 0x69, 0x00, 0x74, 0x00, 0x73, 0x00, 0x73, 0x00, 0x79, 0x00, | |
167 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x6d, 0x00, 0x65, 0x00, 0x20, 0x00, 0x69, | |
168 0x00, 0x6d, 0x00, 0x20, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x6b, 0x00, | |
169 0x74, 0x00, 0x72, 0x00, 0x2e, 0x00, 0x20, 0x00, 0x44, 0x00, 0x61, 0x00, 0x74, | |
170 0x00, 0x65, 0x00, 0x6e, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x6b, 0x00, | |
171 0x65, 0x00, 0x68, 0x00, 0x72, 0x00, 0x20, 0x00, 0x47, 0x00, 0x6d, 0x00, 0x62, | |
172 0x00, 0x48, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x0f, | |
173 0x41, 0x2d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x2d, 0x51, 0x75, 0x61, 0x6c, 0x2d, | |
174 0x30, 0x31, 0x31, 0x18, 0x30, 0x16, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0f, | |
175 0x41, 0x2d, 0x54, 0x72, 0x75, 0x73, 0x74, 0x2d, 0x51, 0x75, 0x61, 0x6c, 0x2d, | |
176 0x30, 0x31, 0x30, 0x1e, 0x17 | |
177 }; | |
178 | |
179 // 34:d=2 hl=3 l= 180 cons: SEQUENCE | |
180 // 37:d=3 hl=2 l= 20 cons: SET | |
181 // 39:d=4 hl=2 l= 18 cons: SEQUENCE | |
182 // 41:d=5 hl=2 l= 3 prim: OBJECT :organizationName | |
183 // 46:d=5 hl=2 l= 11 prim: PRINTABLESTRING :Entrust.net | |
184 // 59:d=3 hl=2 l= 64 cons: SET | |
185 // 61:d=4 hl=2 l= 62 cons: SEQUENCE | |
186 // 63:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName | |
187 // 68:d=5 hl=2 l= 55 prim: T61STRING :www.entrust.net/CPS_2048 in
corp. by ref. (limits liab.) | |
188 //125:d=3 hl=2 l= 37 cons: SET | |
189 //127:d=4 hl=2 l= 35 cons: SEQUENCE | |
190 //129:d=5 hl=2 l= 3 prim: OBJECT :organizationalUnitName | |
191 //134:d=5 hl=2 l= 28 prim: PRINTABLESTRING :(c) 1999 Entrust.net Limite
d | |
192 //164:d=3 hl=2 l= 51 cons: SET | |
193 //166:d=4 hl=2 l= 49 cons: SEQUENCE | |
194 //168:d=5 hl=2 l= 3 prim: OBJECT :commonName | |
195 //173:d=5 hl=2 l= 42 prim: PRINTABLESTRING :Entrust.net Certification A
uthority (2048) | |
196 static const uint8 EntrustDN[] = { | |
197 0x30, 0x81, 0xb4, 0x31, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, | |
198 0x0b, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x31, | |
199 0x40, 0x30, 0x3e, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x14, 0x37, 0x77, 0x77, 0x77, | |
200 0x2e, 0x65, 0x6e, 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x2f, | |
201 0x43, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x20, 0x69, 0x6e, 0x63, 0x6f, | |
202 0x72, 0x70, 0x2e, 0x20, 0x62, 0x79, 0x20, 0x72, 0x65, 0x66, 0x2e, 0x20, 0x28, | |
203 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x20, 0x6c, 0x69, 0x61, 0x62, 0x2e, 0x29, | |
204 0x31, 0x25, 0x30, 0x23, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x1c, 0x28, 0x63, | |
205 0x29, 0x20, 0x31, 0x39, 0x39, 0x39, 0x20, 0x45, 0x6e, 0x74, 0x72, 0x75, 0x73, | |
206 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, | |
207 0x31, 0x33, 0x30, 0x31, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x2a, 0x45, 0x6e, | |
208 0x74, 0x72, 0x75, 0x73, 0x74, 0x2e, 0x6e, 0x65, 0x74, 0x20, 0x43, 0x65, 0x72, | |
209 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, | |
210 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x20, 0x28, 0x32, 0x30, 0x34, 0x38, | |
211 0x29 | |
212 }; | |
213 | |
214 namespace net { | |
215 | |
216 TEST(X509TypesTest, Matching) { | |
217 CertPrincipal spamco; | |
218 spamco.common_name = "SpamCo Dept. Of Certificization"; | |
219 spamco.country_name = "EB"; | |
220 spamco.organization_names.push_back("SpamCo Holding Company, LLC"); | |
221 spamco.organization_names.push_back("SpamCo Evil Masterminds"); | |
222 spamco.organization_unit_names.push_back("Class Z Obfuscation Authority"); | |
223 ASSERT_TRUE(spamco.Matches(spamco)); | |
224 | |
225 CertPrincipal bogus; | |
226 EXPECT_FALSE(bogus.Matches(spamco)); | |
227 EXPECT_FALSE(spamco.Matches(bogus)); | |
228 | |
229 bogus = spamco; | |
230 EXPECT_TRUE(bogus.Matches(spamco)); | |
231 EXPECT_TRUE(spamco.Matches(bogus)); | |
232 | |
233 bogus.organization_names.erase(bogus.organization_names.begin(), | |
234 bogus.organization_names.end()); | |
235 EXPECT_FALSE(bogus.Matches(spamco)); | |
236 EXPECT_FALSE(spamco.Matches(bogus)); | |
237 | |
238 bogus.organization_names.push_back("SpamCo Holding Company, LLC"); | |
239 bogus.organization_names.push_back("SpamCo Evil Masterminds"); | |
240 EXPECT_TRUE(bogus.Matches(spamco)); | |
241 EXPECT_TRUE(spamco.Matches(bogus)); | |
242 | |
243 bogus.locality_name = "Elbosdorf"; | |
244 EXPECT_FALSE(bogus.Matches(spamco)); | |
245 EXPECT_FALSE(spamco.Matches(bogus)); | |
246 | |
247 bogus.locality_name = ""; | |
248 bogus.organization_unit_names.push_back("Q Division"); | |
249 EXPECT_FALSE(bogus.Matches(spamco)); | |
250 EXPECT_FALSE(spamco.Matches(bogus)); | |
251 } | |
252 | |
253 TEST(X509TypesTest, ParseDNVerisign) { | |
254 CertPrincipal verisign; | |
255 EXPECT_TRUE(verisign.ParseDistinguishedName(VerisignDN, sizeof(VerisignDN))); | |
256 EXPECT_EQ("", verisign.common_name); | |
257 EXPECT_EQ("US", verisign.country_name); | |
258 ASSERT_EQ(1U, verisign.organization_names.size()); | |
259 EXPECT_EQ("VeriSign, Inc.", verisign.organization_names[0]); | |
260 ASSERT_EQ(1U, verisign.organization_unit_names.size()); | |
261 EXPECT_EQ("Class 1 Public Primary Certification Authority", | |
262 verisign.organization_unit_names[0]); | |
263 } | |
264 | |
265 TEST(X509TypesTest, ParseDNStartcom) { | |
266 CertPrincipal startcom; | |
267 EXPECT_TRUE(startcom.ParseDistinguishedName(StartComDN, sizeof(StartComDN))); | |
268 EXPECT_EQ("StartCom Certification Authority", startcom.common_name); | |
269 EXPECT_EQ("IL", startcom.country_name); | |
270 ASSERT_EQ(1U, startcom.organization_names.size()); | |
271 EXPECT_EQ("StartCom Ltd.", startcom.organization_names[0]); | |
272 ASSERT_EQ(1U, startcom.organization_unit_names.size()); | |
273 EXPECT_EQ("Secure Digital Certificate Signing", | |
274 startcom.organization_unit_names[0]); | |
275 } | |
276 | |
277 TEST(X509TypesTest, ParseDNUserTrust) { | |
278 CertPrincipal usertrust; | |
279 EXPECT_TRUE(usertrust.ParseDistinguishedName(UserTrustDN, | |
280 sizeof(UserTrustDN))); | |
281 EXPECT_EQ("UTN-USERFirst-Client Authentication and Email", | |
282 usertrust.common_name); | |
283 EXPECT_EQ("US", usertrust.country_name); | |
284 EXPECT_EQ("UT", usertrust.state_or_province_name); | |
285 EXPECT_EQ("Salt Lake City", usertrust.locality_name); | |
286 ASSERT_EQ(1U, usertrust.organization_names.size()); | |
287 EXPECT_EQ("The USERTRUST Network", usertrust.organization_names[0]); | |
288 ASSERT_EQ(1U, usertrust.organization_unit_names.size()); | |
289 EXPECT_EQ("http://www.usertrust.com", | |
290 usertrust.organization_unit_names[0]); | |
291 } | |
292 | |
293 TEST(X509TypesTest, ParseDNTurkTrust) { | |
294 // Note: This tests parsing UTF8STRINGs. | |
295 CertPrincipal turktrust; | |
296 EXPECT_TRUE(turktrust.ParseDistinguishedName(TurkTrustDN, | |
297 sizeof(TurkTrustDN))); | |
298 EXPECT_EQ("TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı", | |
299 turktrust.common_name); | |
300 EXPECT_EQ("TR", turktrust.country_name); | |
301 EXPECT_EQ("Ankara", turktrust.locality_name); | |
302 ASSERT_EQ(1U, turktrust.organization_names.size()); | |
303 EXPECT_EQ("TÜRKTRUST Bilgi İletişim ve Bilişim Güvenliği Hizmetleri A.Ş. (c) K
asım 2005", | |
304 turktrust.organization_names[0]); | |
305 } | |
306 | |
307 TEST(X509TypesTest, ParseDNATrust) { | |
308 // Note: This tests parsing 16-bit BMPSTRINGs. | |
309 CertPrincipal atrust; | |
310 EXPECT_TRUE(atrust.ParseDistinguishedName(ATrustQual01DN, | |
311 sizeof(ATrustQual01DN))); | |
312 EXPECT_EQ("A-Trust-Qual-01", | |
313 atrust.common_name); | |
314 EXPECT_EQ("AT", atrust.country_name); | |
315 ASSERT_EQ(1U, atrust.organization_names.size()); | |
316 EXPECT_EQ("A-Trust Ges. für Sicherheitssysteme im elektr. Datenverkehr GmbH", | |
317 atrust.organization_names[0]); | |
318 ASSERT_EQ(1U, atrust.organization_unit_names.size()); | |
319 EXPECT_EQ("A-Trust-Qual-01", | |
320 atrust.organization_unit_names[0]); | |
321 } | |
322 | |
323 TEST(X509TypesTest, ParseDNEntrust) { | |
324 // Note: This tests parsing T61STRINGs and fields with multiple values. | |
325 CertPrincipal entrust; | |
326 EXPECT_TRUE(entrust.ParseDistinguishedName(EntrustDN, | |
327 sizeof(EntrustDN))); | |
328 EXPECT_EQ("Entrust.net Certification Authority (2048)", | |
329 entrust.common_name); | |
330 EXPECT_EQ("", entrust.country_name); | |
331 ASSERT_EQ(1U, entrust.organization_names.size()); | |
332 EXPECT_EQ("Entrust.net", | |
333 entrust.organization_names[0]); | |
334 ASSERT_EQ(2U, entrust.organization_unit_names.size()); | |
335 EXPECT_EQ("www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)", | |
336 entrust.organization_unit_names[0]); | |
337 EXPECT_EQ("(c) 1999 Entrust.net Limited", | |
338 entrust.organization_unit_names[1]); | |
339 } | |
340 | |
341 } // namespace net | |
OLD | NEW |