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

Side by Side Diff: openssl/crypto/x509v3/v3_ocsp.c

Issue 9254031: Upgrade chrome's OpenSSL to same version Android ships with. (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/openssl/
Patch Set: '' Created 8 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « openssl/crypto/x509v3/v3_ncons.c ('k') | openssl/crypto/x509v3/v3_pci.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* v3_ocsp.c */ 1 /* v3_ocsp.c */
2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
5 /* ==================================================================== 5 /* ====================================================================
6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved. 6 * Copyright (c) 1999 The OpenSSL Project. All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 #include <stdio.h> 61 #include <stdio.h>
62 #include "cryptlib.h" 62 #include "cryptlib.h"
63 #include <openssl/conf.h> 63 #include <openssl/conf.h>
64 #include <openssl/asn1.h> 64 #include <openssl/asn1.h>
65 #include <openssl/ocsp.h> 65 #include <openssl/ocsp.h>
66 #include <openssl/x509v3.h> 66 #include <openssl/x509v3.h>
67 67
68 /* OCSP extensions and a couple of CRL entry extensions 68 /* OCSP extensions and a couple of CRL entry extensions
69 */ 69 */
70 70
71 static int i2r_ocsp_crlid(X509V3_EXT_METHOD *method, void *nonce, BIO *out, int indent); 71 static int i2r_ocsp_crlid(const X509V3_EXT_METHOD *method, void *nonce,
72 static int i2r_ocsp_acutoff(X509V3_EXT_METHOD *method, void *nonce, BIO *out, in t indent); 72 » » » BIO *out, int indent);
73 static int i2r_object(X509V3_EXT_METHOD *method, void *obj, BIO *out, int indent ); 73 static int i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *nonce,
74 » » » BIO *out, int indent);
75 static int i2r_object(const X509V3_EXT_METHOD *method, void *obj, BIO *out,
76 » » int indent);
74 77
75 static void *ocsp_nonce_new(void); 78 static void *ocsp_nonce_new(void);
76 static int i2d_ocsp_nonce(void *a, unsigned char **pp); 79 static int i2d_ocsp_nonce(void *a, unsigned char **pp);
77 static void *d2i_ocsp_nonce(void *a, const unsigned char **pp, long length); 80 static void *d2i_ocsp_nonce(void *a, const unsigned char **pp, long length);
78 static void ocsp_nonce_free(void *a); 81 static void ocsp_nonce_free(void *a);
79 static int i2r_ocsp_nonce(X509V3_EXT_METHOD *method, void *nonce, BIO *out, int indent); 82 static int i2r_ocsp_nonce(const X509V3_EXT_METHOD *method, void *nonce,
83 » » » BIO *out, int indent);
80 84
81 static int i2r_ocsp_nocheck(X509V3_EXT_METHOD *method, void *nocheck, BIO *out, int indent); 85 static int i2r_ocsp_nocheck(const X509V3_EXT_METHOD *method,
82 static void *s2i_ocsp_nocheck(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const char *str); 86 » » » void *nocheck, BIO *out, int indent);
83 static int i2r_ocsp_serviceloc(X509V3_EXT_METHOD *method, void *in, BIO *bp, int ind); 87 static void *s2i_ocsp_nocheck(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
88 » » » const char *str);
89 static int i2r_ocsp_serviceloc(const X509V3_EXT_METHOD *method, void *in,
90 » » » BIO *bp, int ind);
84 91
85 const X509V3_EXT_METHOD v3_ocsp_crlid = { 92 const X509V3_EXT_METHOD v3_ocsp_crlid = {
86 NID_id_pkix_OCSP_CrlID, 0, ASN1_ITEM_ref(OCSP_CRLID), 93 NID_id_pkix_OCSP_CrlID, 0, ASN1_ITEM_ref(OCSP_CRLID),
87 0,0,0,0, 94 0,0,0,0,
88 0,0, 95 0,0,
89 0,0, 96 0,0,
90 i2r_ocsp_crlid,0, 97 i2r_ocsp_crlid,0,
91 NULL 98 NULL
92 }; 99 };
93 100
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 148
142 const X509V3_EXT_METHOD v3_ocsp_serviceloc = { 149 const X509V3_EXT_METHOD v3_ocsp_serviceloc = {
143 NID_id_pkix_OCSP_serviceLocator, 0, ASN1_ITEM_ref(OCSP_SERVICELOC), 150 NID_id_pkix_OCSP_serviceLocator, 0, ASN1_ITEM_ref(OCSP_SERVICELOC),
144 0,0,0,0, 151 0,0,0,0,
145 0,0, 152 0,0,
146 0,0, 153 0,0,
147 i2r_ocsp_serviceloc,0, 154 i2r_ocsp_serviceloc,0,
148 NULL 155 NULL
149 }; 156 };
150 157
151 static int i2r_ocsp_crlid(X509V3_EXT_METHOD *method, void *in, BIO *bp, int ind) 158 static int i2r_ocsp_crlid(const X509V3_EXT_METHOD *method, void *in, BIO *bp,
159 » » » int ind)
152 { 160 {
153 OCSP_CRLID *a = in; 161 OCSP_CRLID *a = in;
154 if (a->crlUrl) 162 if (a->crlUrl)
155 { 163 {
156 if (BIO_printf(bp, "%*scrlUrl: ", ind, "") <= 0) goto err; 164 if (BIO_printf(bp, "%*scrlUrl: ", ind, "") <= 0) goto err;
157 if (!ASN1_STRING_print(bp, (ASN1_STRING*)a->crlUrl)) goto err; 165 if (!ASN1_STRING_print(bp, (ASN1_STRING*)a->crlUrl)) goto err;
158 if (BIO_write(bp, "\n", 1) <= 0) goto err; 166 if (BIO_write(bp, "\n", 1) <= 0) goto err;
159 } 167 }
160 if (a->crlNum) 168 if (a->crlNum)
161 { 169 {
162 if (BIO_printf(bp, "%*scrlNum: ", ind, "") <= 0) goto err; 170 if (BIO_printf(bp, "%*scrlNum: ", ind, "") <= 0) goto err;
163 if (i2a_ASN1_INTEGER(bp, a->crlNum) <= 0) goto err; 171 if (i2a_ASN1_INTEGER(bp, a->crlNum) <= 0) goto err;
164 if (BIO_write(bp, "\n", 1) <= 0) goto err; 172 if (BIO_write(bp, "\n", 1) <= 0) goto err;
165 } 173 }
166 if (a->crlTime) 174 if (a->crlTime)
167 { 175 {
168 if (BIO_printf(bp, "%*scrlTime: ", ind, "") <= 0) goto err; 176 if (BIO_printf(bp, "%*scrlTime: ", ind, "") <= 0) goto err;
169 if (!ASN1_GENERALIZEDTIME_print(bp, a->crlTime)) goto err; 177 if (!ASN1_GENERALIZEDTIME_print(bp, a->crlTime)) goto err;
170 if (BIO_write(bp, "\n", 1) <= 0) goto err; 178 if (BIO_write(bp, "\n", 1) <= 0) goto err;
171 } 179 }
172 return 1; 180 return 1;
173 err: 181 err:
174 return 0; 182 return 0;
175 } 183 }
176 184
177 static int i2r_ocsp_acutoff(X509V3_EXT_METHOD *method, void *cutoff, BIO *bp, in t ind) 185 static int i2r_ocsp_acutoff(const X509V3_EXT_METHOD *method, void *cutoff,
186 » » » BIO *bp, int ind)
178 { 187 {
179 if (BIO_printf(bp, "%*s", ind, "") <= 0) return 0; 188 if (BIO_printf(bp, "%*s", ind, "") <= 0) return 0;
180 if(!ASN1_GENERALIZEDTIME_print(bp, cutoff)) return 0; 189 if(!ASN1_GENERALIZEDTIME_print(bp, cutoff)) return 0;
181 return 1; 190 return 1;
182 } 191 }
183 192
184 193
185 static int i2r_object(X509V3_EXT_METHOD *method, void *oid, BIO *bp, int ind) 194 static int i2r_object(const X509V3_EXT_METHOD *method, void *oid, BIO *bp,
195 » » int ind)
186 { 196 {
187 if (BIO_printf(bp, "%*s", ind, "") <= 0) return 0; 197 if (BIO_printf(bp, "%*s", ind, "") <= 0) return 0;
188 if(i2a_ASN1_OBJECT(bp, oid) <= 0) return 0; 198 if(i2a_ASN1_OBJECT(bp, oid) <= 0) return 0;
189 return 1; 199 return 1;
190 } 200 }
191 201
192 /* OCSP nonce. This is needs special treatment because it doesn't have 202 /* OCSP nonce. This is needs special treatment because it doesn't have
193 * an ASN1 encoding at all: it just contains arbitrary data. 203 * an ASN1 encoding at all: it just contains arbitrary data.
194 */ 204 */
195 205
(...skipping 29 matching lines...) Expand all
225 if(os && (!pos || (*pos != os))) M_ASN1_OCTET_STRING_free(os); 235 if(os && (!pos || (*pos != os))) M_ASN1_OCTET_STRING_free(os);
226 OCSPerr(OCSP_F_D2I_OCSP_NONCE, ERR_R_MALLOC_FAILURE); 236 OCSPerr(OCSP_F_D2I_OCSP_NONCE, ERR_R_MALLOC_FAILURE);
227 return NULL; 237 return NULL;
228 } 238 }
229 239
230 static void ocsp_nonce_free(void *a) 240 static void ocsp_nonce_free(void *a)
231 { 241 {
232 M_ASN1_OCTET_STRING_free(a); 242 M_ASN1_OCTET_STRING_free(a);
233 } 243 }
234 244
235 static int i2r_ocsp_nonce(X509V3_EXT_METHOD *method, void *nonce, BIO *out, int indent) 245 static int i2r_ocsp_nonce(const X509V3_EXT_METHOD *method, void *nonce,
246 » » » BIO *out, int indent)
236 { 247 {
237 if(BIO_printf(out, "%*s", indent, "") <= 0) return 0; 248 if(BIO_printf(out, "%*s", indent, "") <= 0) return 0;
238 if(i2a_ASN1_STRING(out, nonce, V_ASN1_OCTET_STRING) <= 0) return 0; 249 if(i2a_ASN1_STRING(out, nonce, V_ASN1_OCTET_STRING) <= 0) return 0;
239 return 1; 250 return 1;
240 } 251 }
241 252
242 /* Nocheck is just a single NULL. Don't print anything and always set it */ 253 /* Nocheck is just a single NULL. Don't print anything and always set it */
243 254
244 static int i2r_ocsp_nocheck(X509V3_EXT_METHOD *method, void *nocheck, BIO *out, int indent) 255 static int i2r_ocsp_nocheck(const X509V3_EXT_METHOD *method, void *nocheck,
256 » » » BIO *out, int indent)
245 { 257 {
246 return 1; 258 return 1;
247 } 259 }
248 260
249 static void *s2i_ocsp_nocheck(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, const char *str) 261 static void *s2i_ocsp_nocheck(const X509V3_EXT_METHOD *method, X509V3_CTX *ctx,
262 » » » const char *str)
250 { 263 {
251 return ASN1_NULL_new(); 264 return ASN1_NULL_new();
252 } 265 }
253 266
254 static int i2r_ocsp_serviceloc(X509V3_EXT_METHOD *method, void *in, BIO *bp, int ind) 267 static int i2r_ocsp_serviceloc(const X509V3_EXT_METHOD *method, void *in,
268 » » » BIO *bp, int ind)
255 { 269 {
256 int i; 270 int i;
257 OCSP_SERVICELOC *a = in; 271 OCSP_SERVICELOC *a = in;
258 ACCESS_DESCRIPTION *ad; 272 ACCESS_DESCRIPTION *ad;
259 273
260 if (BIO_printf(bp, "%*sIssuer: ", ind, "") <= 0) goto err; 274 if (BIO_printf(bp, "%*sIssuer: ", ind, "") <= 0) goto err;
261 if (X509_NAME_print_ex(bp, a->issuer, 0, XN_FLAG_ONELINE) <= 0) goto err ; 275 if (X509_NAME_print_ex(bp, a->issuer, 0, XN_FLAG_ONELINE) <= 0) goto err ;
262 for (i = 0; i < sk_ACCESS_DESCRIPTION_num(a->locator); i++) 276 for (i = 0; i < sk_ACCESS_DESCRIPTION_num(a->locator); i++)
263 { 277 {
264 ad = sk_ACCESS_DESCRIPTION_value(a->locator,i); 278 ad = sk_ACCESS_DESCRIPTION_value(a->locator,i);
265 if (BIO_printf(bp, "\n%*s", (2*ind), "") <= 0) 279 if (BIO_printf(bp, "\n%*s", (2*ind), "") <= 0)
266 goto err; 280 goto err;
267 if(i2a_ASN1_OBJECT(bp, ad->method) <= 0) goto er r; 281 if(i2a_ASN1_OBJECT(bp, ad->method) <= 0) goto er r;
268 if(BIO_puts(bp, " - ") <= 0) goto err; 282 if(BIO_puts(bp, " - ") <= 0) goto err;
269 if(GENERAL_NAME_print(bp, ad->location) <= 0) go to err; 283 if(GENERAL_NAME_print(bp, ad->location) <= 0) go to err;
270 } 284 }
271 return 1; 285 return 1;
272 err: 286 err:
273 return 0; 287 return 0;
274 } 288 }
275 #endif 289 #endif
OLDNEW
« no previous file with comments | « openssl/crypto/x509v3/v3_ncons.c ('k') | openssl/crypto/x509v3/v3_pci.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698