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

Side by Side Diff: openssl/crypto/x509v3/v3_lib.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_genn.c ('k') | openssl/crypto/x509v3/v3_ncons.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_lib.c */ 1 /* v3_lib.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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 return 0; 77 return 0;
78 } 78 }
79 if(!sk_X509V3_EXT_METHOD_push(ext_list, ext)) { 79 if(!sk_X509V3_EXT_METHOD_push(ext_list, ext)) {
80 X509V3err(X509V3_F_X509V3_EXT_ADD,ERR_R_MALLOC_FAILURE); 80 X509V3err(X509V3_F_X509V3_EXT_ADD,ERR_R_MALLOC_FAILURE);
81 return 0; 81 return 0;
82 } 82 }
83 return 1; 83 return 1;
84 } 84 }
85 85
86 static int ext_cmp(const X509V3_EXT_METHOD * const *a, 86 static int ext_cmp(const X509V3_EXT_METHOD * const *a,
87 » » const X509V3_EXT_METHOD * const *b) 87 » » const X509V3_EXT_METHOD * const *b)
88 { 88 {
89 return ((*a)->ext_nid - (*b)->ext_nid); 89 return ((*a)->ext_nid - (*b)->ext_nid);
90 } 90 }
91 91
92 X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid) 92 DECLARE_OBJ_BSEARCH_CMP_FN(const X509V3_EXT_METHOD *, const X509V3_EXT_METHOD *,
93 » » » ext);
94 IMPLEMENT_OBJ_BSEARCH_CMP_FN(const X509V3_EXT_METHOD *,
95 » » » const X509V3_EXT_METHOD *, ext);
96
97 const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid)
93 { 98 {
94 » X509V3_EXT_METHOD tmp, *t = &tmp, **ret; 99 » X509V3_EXT_METHOD tmp;
100 » const X509V3_EXT_METHOD *t = &tmp, * const *ret;
95 int idx; 101 int idx;
96 if(nid < 0) return NULL; 102 if(nid < 0) return NULL;
97 tmp.ext_nid = nid; 103 tmp.ext_nid = nid;
98 » ret = (X509V3_EXT_METHOD **) OBJ_bsearch((char *)&t, 104 » ret = OBJ_bsearch_ext(&t, standard_exts, STANDARD_EXTENSION_COUNT);
99 » » » (char *)standard_exts, STANDARD_EXTENSION_COUNT,
100 » » » sizeof(X509V3_EXT_METHOD *), (int (*)(const void *, cons t void *))ext_cmp);
101 if(ret) return *ret; 105 if(ret) return *ret;
102 if(!ext_list) return NULL; 106 if(!ext_list) return NULL;
103 idx = sk_X509V3_EXT_METHOD_find(ext_list, &tmp); 107 idx = sk_X509V3_EXT_METHOD_find(ext_list, &tmp);
104 if(idx == -1) return NULL; 108 if(idx == -1) return NULL;
105 return sk_X509V3_EXT_METHOD_value(ext_list, idx); 109 return sk_X509V3_EXT_METHOD_value(ext_list, idx);
106 } 110 }
107 111
108 X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext) 112 const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext)
109 { 113 {
110 int nid; 114 int nid;
111 if((nid = OBJ_obj2nid(ext->object)) == NID_undef) return NULL; 115 if((nid = OBJ_obj2nid(ext->object)) == NID_undef) return NULL;
112 return X509V3_EXT_get_nid(nid); 116 return X509V3_EXT_get_nid(nid);
113 } 117 }
114 118
115 119
116 int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist) 120 int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist)
117 { 121 {
118 for(;extlist->ext_nid!=-1;extlist++) 122 for(;extlist->ext_nid!=-1;extlist++)
119 if(!X509V3_EXT_add(extlist)) return 0; 123 if(!X509V3_EXT_add(extlist)) return 0;
120 return 1; 124 return 1;
121 } 125 }
122 126
123 int X509V3_EXT_add_alias(int nid_to, int nid_from) 127 int X509V3_EXT_add_alias(int nid_to, int nid_from)
124 { 128 {
125 » X509V3_EXT_METHOD *ext, *tmpext; 129 » const X509V3_EXT_METHOD *ext;
130 » X509V3_EXT_METHOD *tmpext;
131
126 if(!(ext = X509V3_EXT_get_nid(nid_from))) { 132 if(!(ext = X509V3_EXT_get_nid(nid_from))) {
127 X509V3err(X509V3_F_X509V3_EXT_ADD_ALIAS,X509V3_R_EXTENSION_NOT_F OUND); 133 X509V3err(X509V3_F_X509V3_EXT_ADD_ALIAS,X509V3_R_EXTENSION_NOT_F OUND);
128 return 0; 134 return 0;
129 } 135 }
130 if(!(tmpext = (X509V3_EXT_METHOD *)OPENSSL_malloc(sizeof(X509V3_EXT_METH OD)))) { 136 if(!(tmpext = (X509V3_EXT_METHOD *)OPENSSL_malloc(sizeof(X509V3_EXT_METH OD)))) {
131 X509V3err(X509V3_F_X509V3_EXT_ADD_ALIAS,ERR_R_MALLOC_FAILURE); 137 X509V3err(X509V3_F_X509V3_EXT_ADD_ALIAS,ERR_R_MALLOC_FAILURE);
132 return 0; 138 return 0;
133 } 139 }
134 *tmpext = *ext; 140 *tmpext = *ext;
135 tmpext->ext_nid = nid_to; 141 tmpext->ext_nid = nid_to;
(...skipping 18 matching lines...) Expand all
154 160
155 int X509V3_add_standard_extensions(void) 161 int X509V3_add_standard_extensions(void)
156 { 162 {
157 return 1; 163 return 1;
158 } 164 }
159 165
160 /* Return an extension internal structure */ 166 /* Return an extension internal structure */
161 167
162 void *X509V3_EXT_d2i(X509_EXTENSION *ext) 168 void *X509V3_EXT_d2i(X509_EXTENSION *ext)
163 { 169 {
164 » X509V3_EXT_METHOD *method; 170 » const X509V3_EXT_METHOD *method;
165 const unsigned char *p; 171 const unsigned char *p;
166 172
167 if(!(method = X509V3_EXT_get(ext))) return NULL; 173 if(!(method = X509V3_EXT_get(ext))) return NULL;
168 p = ext->value->data; 174 p = ext->value->data;
169 if(method->it) return ASN1_item_d2i(NULL, &p, ext->value->length, ASN1_I TEM_ptr(method->it)); 175 if(method->it) return ASN1_item_d2i(NULL, &p, ext->value->length, ASN1_I TEM_ptr(method->it));
170 return method->d2i(NULL, &p, ext->value->length); 176 return method->d2i(NULL, &p, ext->value->length);
171 } 177 }
172 178
173 /* Get critical flag and decoded version of extension from a NID. 179 /* Get critical flag and decoded version of extension from a NID.
174 * The "idx" variable returns the last found extension and can 180 * The "idx" variable returns the last found extension and can
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 300
295 return 1; 301 return 1;
296 302
297 err: 303 err:
298 if(!(flags & X509V3_ADD_SILENT)) 304 if(!(flags & X509V3_ADD_SILENT))
299 X509V3err(X509V3_F_X509V3_ADD1_I2D, errcode); 305 X509V3err(X509V3_F_X509V3_ADD1_I2D, errcode);
300 return 0; 306 return 0;
301 } 307 }
302 308
303 IMPLEMENT_STACK_OF(X509V3_EXT_METHOD) 309 IMPLEMENT_STACK_OF(X509V3_EXT_METHOD)
OLDNEW
« no previous file with comments | « openssl/crypto/x509v3/v3_genn.c ('k') | openssl/crypto/x509v3/v3_ncons.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698