Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(819)

Side by Side Diff: net/data/verify_certificate_chain_unittest/constrained-root-lacks-basic-constraints.pem

Issue 2805213004: Refactor how net/data/verify_certificate_chain_unittest/* (Closed)
Patch Set: fix android Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 [Created by: generate-constrained-root-lacks-basic-constraints.py]
2
3 Certificate chain with 1 intermediate and a trust anchor. The trust anchor
4 lacks the basic constraints extension, and is loaded with anchor constraints.
5 This is not a problem and verification should succeed.
6
7 Certificate:
8 Data:
9 Version: 3 (0x2)
10 Serial Number: 1 (0x1)
11 Signature Algorithm: sha256WithRSAEncryption
12 Issuer: CN=Intermediate
13 Validity
14 Not Before: Jan 1 12:00:00 2015 GMT
15 Not After : Jan 1 12:00:00 2016 GMT
16 Subject: CN=Target
17 Subject Public Key Info:
18 Public Key Algorithm: rsaEncryption
19 Public-Key: (2048 bit)
20 Modulus:
21 00:b6:ec:ef:24:7e:2c:a4:bb:5b:e1:b1:a0:d6:fd:
22 a0:3d:be:ea:69:1b:dc:65:d0:35:ab:1a:cf:0a:08:
23 f5:ba:f3:96:99:55:87:14:d5:fb:43:e0:a9:ab:f7:
24 e6:d1:fc:09:53:e3:81:5b:1a:ba:b6:a9:93:3e:21:
25 c9:65:11:54:ca:77:74:e5:dc:d3:a2:78:72:b8:59:
26 3b:4b:85:1f:f2:b8:3b:38:1e:56:55:c9:fa:fb:ed:
27 3b:0b:55:11:76:24:23:4d:bd:92:fb:2c:87:ce:0c:
28 2a:1d:16:60:91:5f:92:d6:e3:a6:c5:02:4e:24:22:
29 76:5d:45:0e:35:9e:f4:4b:f5:a1:d2:5e:0b:15:90:
30 34:64:c7:13:3a:97:32:01:25:06:55:34:34:c1:95:
31 17:e6:93:03:6e:59:2f:68:0a:a6:ea:83:70:9f:3c:
32 0e:b1:29:f2:eb:14:69:19:ec:ef:43:64:9e:bf:15:
33 28:d9:e6:d0:b3:a9:da:9e:da:a8:86:36:21:a4:9b:
34 21:c8:c2:dc:d8:04:fd:a9:1a:3b:15:64:eb:fa:50:
35 a1:71:85:9b:9f:14:e1:6f:9c:32:98:2d:82:64:71:
36 1c:4a:8f:bc:fb:0b:98:18:ef:e3:d9:3f:9a:df:1e:
37 b9:09:ab:bf:b0:d4:09:05:e5:47:14:c1:b8:05:59:
38 cc:2d
39 Exponent: 65537 (0x10001)
40 X509v3 extensions:
41 X509v3 Subject Key Identifier:
42 83:4E:85:AD:B6:23:89:9C:16:DE:68:3B:75:E5:29:7B:D8:06:2D:49
43 X509v3 Authority Key Identifier:
44 keyid:89:BF:48:AC:C6:30:B7:51:CE:94:B6:45:9D:D8:C8:16:8B:7D:47:F 7
45
46 Authority Information Access:
47 CA Issuers - URI:http://url-for-aia/Intermediate.cer
48
49 X509v3 CRL Distribution Points:
50
51 Full Name:
52 URI:http://url-for-crl/Intermediate.crl
53
54 X509v3 Key Usage: critical
55 Digital Signature, Key Encipherment
56 X509v3 Extended Key Usage:
57 TLS Web Server Authentication, TLS Web Client Authentication
58 Signature Algorithm: sha256WithRSAEncryption
59 68:d1:c1:bd:2a:ed:8b:6b:14:e1:52:15:16:6c:2f:d9:0b:e4:
60 24:2a:55:e7:dc:58:ff:b4:c3:05:2d:f3:7c:36:aa:db:cd:6b:
61 ae:19:df:63:e8:6d:91:1d:a7:02:b7:b5:e4:a2:60:9b:3d:9f:
62 a3:0d:5c:f6:72:87:1e:bf:2e:e8:4c:c1:61:48:4b:8a:d6:8f:
63 9b:82:3f:fe:f1:d7:94:04:82:cb:6a:7f:33:b7:97:f6:6c:bf:
64 79:f3:94:e9:46:ed:00:e5:16:e5:12:f5:f1:e4:e7:45:1c:8b:
65 fa:b3:ca:03:27:74:df:69:b2:e3:75:3b:b0:96:c2:42:97:07:
66 03:b7:34:8e:e0:c5:01:7b:1d:b8:24:7d:9c:b5:4f:d5:0a:c1:
67 45:9a:f6:a5:72:e6:ca:84:78:f2:b9:ac:4e:68:75:23:57:9e:
68 0e:f5:06:2e:d1:38:5f:d8:81:b6:e0:f6:72:cb:7d:dc:16:5f:
69 72:66:b7:0d:60:aa:7e:48:4e:16:62:74:3d:d7:de:b1:d3:ae:
70 e2:07:d0:e9:4c:7f:ef:32:80:1a:8b:7f:ae:14:0d:59:31:59:
71 ab:39:39:df:27:c0:23:82:d7:39:e8:8e:48:b9:53:f3:c5:e9:
72 84:93:be:f4:32:44:d8:ed:1a:d5:49:3d:14:d8:07:f6:a1:6f:
73 93:f9:1b:21
74 -----BEGIN CERTIFICATE-----
75 MIIDjTCCAnWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAXMRUwEwYDVQQDDAxJbnRl
76 cm1lZGlhdGUwHhcNMTUwMTAxMTIwMDAwWhcNMTYwMTAxMTIwMDAwWjARMQ8wDQYD
77 VQQDDAZUYXJnZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC27O8k
78 fiyku1vhsaDW/aA9vuppG9xl0DWrGs8KCPW685aZVYcU1ftD4Kmr9+bR/AlT44Fb
79 Grq2qZM+IcllEVTKd3Tl3NOieHK4WTtLhR/yuDs4HlZVyfr77TsLVRF2JCNNvZL7
80 LIfODCodFmCRX5LW46bFAk4kInZdRQ41nvRL9aHSXgsVkDRkxxM6lzIBJQZVNDTB
81 lRfmkwNuWS9oCqbqg3CfPA6xKfLrFGkZ7O9DZJ6/FSjZ5tCzqdqe2qiGNiGkmyHI
82 wtzYBP2pGjsVZOv6UKFxhZufFOFvnDKYLYJkcRxKj7z7C5gY7+PZP5rfHrkJq7+w
83 1AkF5UcUwbgFWcwtAgMBAAGjgekwgeYwHQYDVR0OBBYEFINOha22I4mcFt5oO3Xl
84 KXvYBi1JMB8GA1UdIwQYMBaAFIm/SKzGMLdRzpS2RZ3YyBaLfUf3MD8GCCsGAQUF
85 BwEBBDMwMTAvBggrBgEFBQcwAoYjaHR0cDovL3VybC1mb3ItYWlhL0ludGVybWVk
86 aWF0ZS5jZXIwNAYDVR0fBC0wKzApoCegJYYjaHR0cDovL3VybC1mb3ItY3JsL0lu
87 dGVybWVkaWF0ZS5jcmwwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUF
88 BwMBBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAQEAaNHBvSrti2sU4VIVFmwv
89 2QvkJCpV59xY/7TDBS3zfDaq281rrhnfY+htkR2nAre15KJgmz2fow1c9nKHHr8u
90 6EzBYUhLitaPm4I//vHXlASCy2p/M7eX9my/efOU6UbtAOUW5RL18eTnRRyL+rPK
91 Ayd032my43U7sJbCQpcHA7c0juDFAXsduCR9nLVP1QrBRZr2pXLmyoR48rmsTmh1
92 I1eeDvUGLtE4X9iBtuD2cst93BZfcma3DWCqfkhOFmJ0PdfesdOu4gfQ6Ux/7zKA
93 Got/rhQNWTFZqzk53yfAI4LXOeiOSLlT88XphJO+9DJE2O0a1Uk9FNgH9qFvk/kb
94 IQ==
95 -----END CERTIFICATE-----
96
97 Certificate:
98 Data:
99 Version: 3 (0x2)
100 Serial Number: 2 (0x2)
101 Signature Algorithm: sha256WithRSAEncryption
102 Issuer: CN=Root
103 Validity
104 Not Before: Jan 1 12:00:00 2015 GMT
105 Not After : Jan 1 12:00:00 2016 GMT
106 Subject: CN=Intermediate
107 Subject Public Key Info:
108 Public Key Algorithm: rsaEncryption
109 Public-Key: (2048 bit)
110 Modulus:
111 00:ac:2a:39:80:53:9e:de:12:59:e3:e1:77:4d:62:
112 f3:bc:5e:ba:8a:e3:a0:72:81:10:b5:55:37:e9:16:
113 8b:f3:39:42:71:11:e7:d8:50:5e:08:f5:60:f8:bb:
114 73:89:eb:73:65:30:49:c7:10:5f:fa:f7:0d:a2:ae:
115 7e:8e:cb:ba:b8:64:ba:36:92:e1:c0:16:15:a6:93:
116 13:62:71:0e:5f:a6:a9:4f:54:d1:62:d8:14:a9:b5:
117 4a:ef:27:74:83:2a:33:ed:9e:3a:ba:e4:c4:d9:04:
118 73:34:1b:fc:68:ea:4d:6f:d2:3d:ba:25:04:18:2c:
119 3d:c4:81:dd:01:b8:b4:fe:3a:09:c6:2a:72:84:e6:
120 fa:00:a7:db:7f:4c:a0:c9:46:b5:9c:fc:15:d4:4c:
121 98:8e:60:43:2f:41:2d:6d:a7:f9:99:d8:ef:92:c5:
122 6c:f2:cc:d2:50:c0:44:1b:a4:c2:0c:a8:7a:66:64:
123 ae:76:4d:11:03:b4:d0:0a:6f:01:d4:e2:6d:90:42:
124 33:78:17:78:8b:e1:b3:55:77:9b:f8:8f:d2:5f:08:
125 08:bf:f9:51:fe:8e:8b:ab:ea:fb:31:15:cb:b2:ed:
126 fc:16:78:c8:ec:fb:43:c4:35:4b:da:78:a5:53:0e:
127 7a:5e:63:93:e4:f6:02:93:aa:9a:a4:c0:e1:7f:45:
128 1b:39
129 Exponent: 65537 (0x10001)
130 X509v3 extensions:
131 X509v3 Subject Key Identifier:
132 89:BF:48:AC:C6:30:B7:51:CE:94:B6:45:9D:D8:C8:16:8B:7D:47:F7
133 X509v3 Authority Key Identifier:
134 keyid:FA:67:7E:92:9E:B8:4B:2B:0A:B0:E7:68:CC:C8:EA:A9:97:AF:A2:F D
135
136 Authority Information Access:
137 CA Issuers - URI:http://url-for-aia/Root.cer
138
139 X509v3 CRL Distribution Points:
140
141 Full Name:
142 URI:http://url-for-crl/Root.crl
143
144 X509v3 Key Usage: critical
145 Certificate Sign, CRL Sign
146 X509v3 Basic Constraints: critical
147 CA:TRUE
148 Signature Algorithm: sha256WithRSAEncryption
149 c0:f6:2e:12:b6:74:1d:04:70:30:75:1b:4e:ab:8d:e3:66:1e:
150 7d:eb:6d:51:f7:ee:a0:92:5c:2d:1b:fe:63:de:4e:5e:62:fc:
151 14:45:43:cb:c3:00:b9:ad:44:cb:a6:2a:43:e6:1d:8d:6c:09:
152 30:70:eb:fa:be:6a:bc:04:c9:7f:c4:cd:d0:ac:d5:07:34:1b:
153 d8:77:97:3f:82:41:4e:d1:7a:ff:d0:36:85:2c:7f:2f:ff:e5:
154 48:67:c8:71:a7:a0:fe:21:e4:8a:10:2e:45:e8:69:99:2e:2f:
155 aa:86:ad:e1:b6:4a:a2:49:cc:8e:a7:32:6a:ee:ff:ea:be:e4:
156 ed:f4:09:a2:b7:5f:39:a0:2c:c2:60:cd:67:0c:e1:4a:c8:02:
157 17:02:30:49:0d:31:df:30:fc:5a:ae:24:ab:ad:66:93:0f:34:
158 8b:62:a6:eb:86:44:4d:8f:cf:31:5f:df:91:c9:4c:8d:10:89:
159 a5:67:ad:ff:38:2b:56:81:76:e5:42:d4:6a:78:04:93:41:6b:
160 b1:ee:62:f6:da:8f:35:35:d2:26:54:c0:7a:f7:44:b7:b6:81:
161 ae:f5:e6:50:c9:f7:06:35:a1:9b:aa:19:2c:3c:31:b1:84:00:
162 47:3c:1a:31:11:5c:69:0b:a9:b6:e9:3b:34:32:e1:7e:66:0e:
163 0d:6a:9b:ca
164 -----BEGIN CERTIFICATE-----
165 MIIDbTCCAlWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARSb290
166 MB4XDTE1MDEwMTEyMDAwMFoXDTE2MDEwMTEyMDAwMFowFzEVMBMGA1UEAwwMSW50
167 ZXJtZWRpYXRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArCo5gFOe
168 3hJZ4+F3TWLzvF66iuOgcoEQtVU36RaL8zlCcRHn2FBeCPVg+LtzietzZTBJxxBf
169 +vcNoq5+jsu6uGS6NpLhwBYVppMTYnEOX6apT1TRYtgUqbVK7yd0gyoz7Z46uuTE
170 2QRzNBv8aOpNb9I9uiUEGCw9xIHdAbi0/joJxipyhOb6AKfbf0ygyUa1nPwV1EyY
171 jmBDL0Etbaf5mdjvksVs8szSUMBEG6TCDKh6ZmSudk0RA7TQCm8B1OJtkEIzeBd4
172 i+GzVXeb+I/SXwgIv/lR/o6Lq+r7MRXLsu38FnjI7PtDxDVL2nilUw56XmOT5PYC
173 k6qapMDhf0UbOQIDAQABo4HLMIHIMB0GA1UdDgQWBBSJv0isxjC3Uc6UtkWd2MgW
174 i31H9zAfBgNVHSMEGDAWgBT6Z36SnrhLKwqw52jMyOqpl6+i/TA3BggrBgEFBQcB
175 AQQrMCkwJwYIKwYBBQUHMAKGG2h0dHA6Ly91cmwtZm9yLWFpYS9Sb290LmNlcjAs
176 BgNVHR8EJTAjMCGgH6AdhhtodHRwOi8vdXJsLWZvci1jcmwvUm9vdC5jcmwwDgYD
177 VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB
178 AMD2LhK2dB0EcDB1G06rjeNmHn3rbVH37qCSXC0b/mPeTl5i/BRFQ8vDALmtRMum
179 KkPmHY1sCTBw6/q+arwEyX/EzdCs1Qc0G9h3lz+CQU7Rev/QNoUsfy//5UhnyHGn
180 oP4h5IoQLkXoaZkuL6qGreG2SqJJzI6nMmru/+q+5O30CaK3XzmgLMJgzWcM4UrI
181 AhcCMEkNMd8w/FquJKutZpMPNItipuuGRE2PzzFf35HJTI0QiaVnrf84K1aBduVC
182 1Gp4BJNBa7HuYvbajzU10iZUwHr3RLe2ga715lDJ9wY1oZuqGSw8MbGEAEc8GjER
183 XGkLqbbpOzQy4X5mDg1qm8o=
184 -----END CERTIFICATE-----
185
186 Certificate:
187 Data:
188 Version: 3 (0x2)
189 Serial Number: 1 (0x1)
190 Signature Algorithm: sha256WithRSAEncryption
191 Issuer: CN=Root
192 Validity
193 Not Before: Jan 1 12:00:00 2015 GMT
194 Not After : Jan 1 12:00:00 2016 GMT
195 Subject: CN=Root
196 Subject Public Key Info:
197 Public Key Algorithm: rsaEncryption
198 Public-Key: (2048 bit)
199 Modulus:
200 00:d5:a0:85:97:01:89:b2:31:f1:f5:fb:99:66:f9:
201 47:a6:fd:65:be:1e:35:ef:8b:ad:75:bf:81:61:9e:
202 aa:54:d6:02:87:61:07:d4:4e:0a:c5:2d:9a:78:e0:
203 93:ee:b9:b1:aa:06:14:91:13:23:ec:dd:a2:b1:80:
204 9e:d4:af:8d:77:38:d6:3b:f6:53:a6:c2:cf:af:37:
205 40:9e:c4:70:23:c9:da:e5:31:77:c8:1b:a3:9d:dc:
206 14:b2:79:77:86:1d:0e:48:58:60:b0:46:69:1d:6a:
207 4b:1b:19:bb:c6:e2:c5:b3:ea:1a:79:dc:ba:db:10:
208 0f:31:52:9b:73:55:09:d1:97:a8:a1:02:e5:12:c8:
209 39:6d:c0:75:0e:90:2f:48:1c:26:b5:19:f2:cb:00:
210 ac:42:f0:3b:e5:dd:8e:55:b5:d5:61:e3:47:c4:fb:
211 0f:79:83:ae:6a:ca:ec:4b:e3:89:db:af:ec:47:10:
212 c5:42:82:90:8b:61:1e:c7:f0:39:8b:63:31:1c:8c:
213 d5:90:48:82:9a:a0:a4:84:a1:2d:7f:4d:3a:7d:3a:
214 31:f5:03:bc:ce:cf:a4:e5:53:43:23:ed:dc:46:cf:
215 8c:28:d1:dd:97:c8:93:0f:6c:cf:0f:6e:1c:a8:c2:
216 c4:51:73:6a:f1:33:fb:22:26:fb:c3:e2:e6:b9:37:
217 72:e5
218 Exponent: 65537 (0x10001)
219 X509v3 extensions:
220 X509v3 Subject Key Identifier:
221 FA:67:7E:92:9E:B8:4B:2B:0A:B0:E7:68:CC:C8:EA:A9:97:AF:A2:FD
222 X509v3 Authority Key Identifier:
223 keyid:FA:67:7E:92:9E:B8:4B:2B:0A:B0:E7:68:CC:C8:EA:A9:97:AF:A2:F D
224
225 Authority Information Access:
226 CA Issuers - URI:http://url-for-aia/Root.cer
227
228 X509v3 CRL Distribution Points:
229
230 Full Name:
231 URI:http://url-for-crl/Root.crl
232
233 X509v3 Key Usage: critical
234 Certificate Sign, CRL Sign
235 Signature Algorithm: sha256WithRSAEncryption
236 54:d6:3d:d6:97:11:fc:2b:66:e3:f1:e4:4a:55:45:7d:33:7e:
237 54:69:c4:49:02:aa:f7:84:0b:2a:1e:87:d1:55:77:f3:93:c8:
238 25:d4:74:37:48:0d:de:22:4b:9d:f2:dc:8f:f9:49:9f:0d:e7:
239 e9:1a:69:70:2d:66:ee:f0:38:07:5d:16:55:34:40:6a:29:2f:
240 a1:51:29:3f:de:1f:55:18:78:22:b2:41:d0:2c:85:7c:2c:e2:
241 a7:18:d3:8e:17:50:b7:f6:c1:e7:b6:de:57:1c:a1:8e:33:e2:
242 4c:c7:08:78:bd:13:47:b0:1b:d4:4c:07:17:7e:a7:84:17:d3:
243 7d:12:43:05:bc:8e:8b:b4:52:46:95:bf:87:ac:ae:92:30:39:
244 14:59:fe:55:47:37:a1:4f:7c:97:f9:f5:55:92:7d:95:47:26:
245 be:1e:b6:e8:86:c6:09:8a:a2:27:1e:c5:c9:29:89:e1:ea:e2:
246 70:09:d6:af:6f:74:91:b8:12:fa:03:ad:ab:4a:89:a8:d2:1d:
247 3b:9e:f7:8a:cc:90:43:5d:4d:aa:3a:a3:25:8a:25:15:53:68:
248 b5:66:2d:fe:f3:b3:03:26:b8:f1:2b:89:5a:e9:fc:fa:2d:e2:
249 bb:57:ac:5b:15:de:3e:eb:34:3a:34:ad:5b:40:5b:16:c9:c2:
250 c4:ae:a1:45
251 -----BEGIN TRUST_ANCHOR_CONSTRAINED-----
252 MIIDVDCCAjygAwIBAgIBATANBgkqhkiG9w0BAQsFADAPMQ0wCwYDVQQDDARSb290
253 MB4XDTE1MDEwMTEyMDAwMFoXDTE2MDEwMTEyMDAwMFowDzENMAsGA1UEAwwEUm9v
254 dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANWghZcBibIx8fX7mWb5
255 R6b9Zb4eNe+LrXW/gWGeqlTWAodhB9ROCsUtmnjgk+65saoGFJETI+zdorGAntSv
256 jXc41jv2U6bCz683QJ7EcCPJ2uUxd8gbo53cFLJ5d4YdDkhYYLBGaR1qSxsZu8bi
257 xbPqGnncutsQDzFSm3NVCdGXqKEC5RLIOW3AdQ6QL0gcJrUZ8ssArELwO+XdjlW1
258 1WHjR8T7D3mDrmrK7Evjiduv7EcQxUKCkIthHsfwOYtjMRyM1ZBIgpqgpIShLX9N
259 On06MfUDvM7PpOVTQyPt3EbPjCjR3ZfIkw9szw9uHKjCxFFzavEz+yIm+8Pi5rk3
260 cuUCAwEAAaOBujCBtzAdBgNVHQ4EFgQU+md+kp64SysKsOdozMjqqZevov0wHwYD
261 VR0jBBgwFoAU+md+kp64SysKsOdozMjqqZevov0wNwYIKwYBBQUHAQEEKzApMCcG
262 CCsGAQUFBzAChhtodHRwOi8vdXJsLWZvci1haWEvUm9vdC5jZXIwLAYDVR0fBCUw
263 IzAhoB+gHYYbaHR0cDovL3VybC1mb3ItY3JsL1Jvb3QuY3JsMA4GA1UdDwEB/wQE
264 AwIBBjANBgkqhkiG9w0BAQsFAAOCAQEAVNY91pcR/Ctm4/HkSlVFfTN+VGnESQKq
265 94QLKh6H0VV385PIJdR0N0gN3iJLnfLcj/lJnw3n6RppcC1m7vA4B10WVTRAaikv
266 oVEpP94fVRh4IrJB0CyFfCzipxjTjhdQt/bB57beVxyhjjPiTMcIeL0TR7Ab1EwH
267 F36nhBfTfRJDBbyOi7RSRpW/h6yukjA5FFn+VUc3oU98l/n1VZJ9lUcmvh626IbG
268 CYqiJx7FySmJ4ericAnWr290kbgS+gOtq0qJqNIdO573isyQQ11NqjqjJYolFVNo
269 tWYt/vOzAya48SuJWun8+i3iu1esWxXePus0OjStW0BbFsnCxK6hRQ==
270 -----END TRUST_ANCHOR_CONSTRAINED-----
271
272 150302120000Z
273 -----BEGIN TIME-----
274 MTUwMzAyMTIwMDAwWg==
275 -----END TIME-----
276
277 SUCCESS
278 -----BEGIN VERIFY_RESULT-----
279 U1VDQ0VTUw==
280 -----END VERIFY_RESULT-----
281
282 serverAuth
283 -----BEGIN KEY_PURPOSE-----
284 c2VydmVyQXV0aA==
285 -----END KEY_PURPOSE-----
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698