diff options
author | beck <> | 2000-03-19 11:13:58 +0000 |
---|---|---|
committer | beck <> | 2000-03-19 11:13:58 +0000 |
commit | 796d609550df3a33fc11468741c5d2f6d3df4c11 (patch) | |
tree | 6c6d539061caa20372dad0ac4ddb1dfae2fbe7fe /src/lib/libcrypto/objects | |
parent | 5be3114c1fd7e0dfea1e38d3abb4cbba75244419 (diff) | |
download | openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.tar.gz openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.tar.bz2 openbsd-796d609550df3a33fc11468741c5d2f6d3df4c11.zip |
OpenSSL 0.9.5 merge
*warning* this bumps shared lib minors for libssl and libcrypto from 2.1 to 2.2
if you are using the ssl26 packages for ssh and other things to work you will
need to get new ones (see ~beck/libsslsnap/<arch>) on cvs or ~beck/src-patent.tar.gz on cvs
Diffstat (limited to 'src/lib/libcrypto/objects')
-rw-r--r-- | src/lib/libcrypto/objects/Makefile.ssl | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/o_names.c | 106 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/obj_dat.c | 22 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/obj_dat.pl | 54 | ||||
-rw-r--r-- | src/lib/libcrypto/objects/objects.h | 74 |
5 files changed, 172 insertions, 87 deletions
diff --git a/src/lib/libcrypto/objects/Makefile.ssl b/src/lib/libcrypto/objects/Makefile.ssl index 53450f8754..f05e15df96 100644 --- a/src/lib/libcrypto/objects/Makefile.ssl +++ b/src/lib/libcrypto/objects/Makefile.ssl | |||
@@ -37,9 +37,6 @@ top: | |||
37 | 37 | ||
38 | all: obj_dat.h lib | 38 | all: obj_dat.h lib |
39 | 39 | ||
40 | obj_dat.h: objects.h obj_dat.pl | ||
41 | $(PERL) ./obj_dat.pl < objects.h > obj_dat.h | ||
42 | |||
43 | lib: $(LIBOBJ) | 40 | lib: $(LIBOBJ) |
44 | $(AR) $(LIB) $(LIBOBJ) | 41 | $(AR) $(LIB) $(LIBOBJ) |
45 | $(RANLIB) $(LIB) | 42 | $(RANLIB) $(LIB) |
diff --git a/src/lib/libcrypto/objects/o_names.c b/src/lib/libcrypto/objects/o_names.c index 4da5e45b9c..d654eb220e 100644 --- a/src/lib/libcrypto/objects/o_names.c +++ b/src/lib/libcrypto/objects/o_names.c | |||
@@ -4,15 +4,25 @@ | |||
4 | 4 | ||
5 | #include <openssl/lhash.h> | 5 | #include <openssl/lhash.h> |
6 | #include <openssl/objects.h> | 6 | #include <openssl/objects.h> |
7 | #include <openssl/safestack.h> | ||
7 | 8 | ||
8 | /* I use the ex_data stuff to manage the identifiers for the obj_name_types | 9 | /* I use the ex_data stuff to manage the identifiers for the obj_name_types |
9 | * that applications may define. I only really use the free function field. | 10 | * that applications may define. I only really use the free function field. |
10 | */ | 11 | */ |
11 | static LHASH *names_lh=NULL; | 12 | static LHASH *names_lh=NULL; |
12 | static int names_type_num=OBJ_NAME_TYPE_NUM; | 13 | static int names_type_num=OBJ_NAME_TYPE_NUM; |
13 | static STACK *names_cmp=NULL; | 14 | |
14 | static STACK *names_hash=NULL; | 15 | typedef struct name_funcs_st |
15 | static STACK *names_free=NULL; | 16 | { |
17 | unsigned long (*hash_func)(); | ||
18 | int (*cmp_func)(); | ||
19 | void (*free_func)(); | ||
20 | } NAME_FUNCS; | ||
21 | |||
22 | DECLARE_STACK_OF(NAME_FUNCS) | ||
23 | IMPLEMENT_STACK_OF(NAME_FUNCS) | ||
24 | |||
25 | STACK_OF(NAME_FUNCS) *name_funcs_stack; | ||
16 | 26 | ||
17 | static unsigned long obj_name_hash(OBJ_NAME *a); | 27 | static unsigned long obj_name_hash(OBJ_NAME *a); |
18 | static int obj_name_cmp(OBJ_NAME *a,OBJ_NAME *b); | 28 | static int obj_name_cmp(OBJ_NAME *a,OBJ_NAME *b); |
@@ -31,51 +41,57 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(), int (*cmp_func)(), | |||
31 | { | 41 | { |
32 | int ret; | 42 | int ret; |
33 | int i; | 43 | int i; |
44 | NAME_FUNCS *name_funcs; | ||
34 | 45 | ||
35 | if (names_free == NULL) | 46 | if (name_funcs_stack == NULL) |
36 | { | 47 | { |
37 | MemCheck_off(); | 48 | MemCheck_off(); |
38 | names_hash=sk_new_null(); | 49 | name_funcs_stack=sk_NAME_FUNCS_new_null(); |
39 | names_cmp=sk_new_null(); | ||
40 | names_free=sk_new_null(); | ||
41 | MemCheck_on(); | 50 | MemCheck_on(); |
42 | } | 51 | } |
43 | if ((names_free == NULL) || (names_hash == NULL) || (names_cmp == NULL)) | 52 | if ((name_funcs_stack == NULL)) |
44 | { | 53 | { |
45 | /* ERROR */ | 54 | /* ERROR */ |
46 | return(0); | 55 | return(0); |
47 | } | 56 | } |
48 | ret=names_type_num; | 57 | ret=names_type_num; |
49 | names_type_num++; | 58 | names_type_num++; |
50 | for (i=sk_num(names_free); i<names_type_num; i++) | 59 | for (i=sk_NAME_FUNCS_num(name_funcs_stack); i<names_type_num; i++) |
51 | { | 60 | { |
52 | MemCheck_off(); | 61 | MemCheck_off(); |
53 | sk_push(names_hash,(char *)strcmp); | 62 | name_funcs = Malloc(sizeof(NAME_FUNCS)); |
54 | sk_push(names_cmp,(char *)lh_strhash); | 63 | name_funcs->hash_func = lh_strhash; |
55 | sk_push(names_free,NULL); | 64 | name_funcs->cmp_func = (int (*)())strcmp; |
65 | name_funcs->free_func = 0; /* NULL is often declared to | ||
66 | * ((void *)0), which according | ||
67 | * to Compaq C is not really | ||
68 | * compatible with a function | ||
69 | * pointer. -- Richard Levitte*/ | ||
70 | sk_NAME_FUNCS_push(name_funcs_stack,name_funcs); | ||
56 | MemCheck_on(); | 71 | MemCheck_on(); |
57 | } | 72 | } |
73 | name_funcs = sk_NAME_FUNCS_value(name_funcs_stack, ret); | ||
58 | if (hash_func != NULL) | 74 | if (hash_func != NULL) |
59 | sk_set(names_hash,ret,(char *)hash_func); | 75 | name_funcs->hash_func = hash_func; |
60 | if (cmp_func != NULL) | 76 | if (cmp_func != NULL) |
61 | sk_set(names_cmp,ret,(char *)cmp_func); | 77 | name_funcs->cmp_func = cmp_func; |
62 | if (free_func != NULL) | 78 | if (free_func != NULL) |
63 | sk_set(names_free,ret,(char *)free_func); | 79 | name_funcs->free_func = free_func; |
64 | return(ret); | 80 | return(ret); |
65 | } | 81 | } |
66 | 82 | ||
67 | static int obj_name_cmp(OBJ_NAME *a, OBJ_NAME *b) | 83 | static int obj_name_cmp(OBJ_NAME *a, OBJ_NAME *b) |
68 | { | 84 | { |
69 | int ret; | 85 | int ret; |
70 | int (*cmp)(); | ||
71 | 86 | ||
72 | ret=a->type-b->type; | 87 | ret=a->type-b->type; |
73 | if (ret == 0) | 88 | if (ret == 0) |
74 | { | 89 | { |
75 | if ((names_cmp != NULL) && (sk_num(names_cmp) > a->type)) | 90 | if ((name_funcs_stack != NULL) |
91 | && (sk_NAME_FUNCS_num(name_funcs_stack) > a->type)) | ||
76 | { | 92 | { |
77 | cmp=(int (*)())sk_value(names_cmp,a->type); | 93 | ret=sk_NAME_FUNCS_value(name_funcs_stack,a->type) |
78 | ret=cmp(a->name,b->name); | 94 | ->cmp_func(a->name,b->name); |
79 | } | 95 | } |
80 | else | 96 | else |
81 | ret=strcmp(a->name,b->name); | 97 | ret=strcmp(a->name,b->name); |
@@ -86,12 +102,11 @@ static int obj_name_cmp(OBJ_NAME *a, OBJ_NAME *b) | |||
86 | static unsigned long obj_name_hash(OBJ_NAME *a) | 102 | static unsigned long obj_name_hash(OBJ_NAME *a) |
87 | { | 103 | { |
88 | unsigned long ret; | 104 | unsigned long ret; |
89 | unsigned long (*hash)(); | ||
90 | 105 | ||
91 | if ((names_hash != NULL) && (sk_num(names_hash) > a->type)) | 106 | if ((name_funcs_stack != NULL) && (sk_NAME_FUNCS_num(name_funcs_stack) > a->type)) |
92 | { | 107 | { |
93 | hash=(unsigned long (*)())sk_value(names_hash,a->type); | 108 | ret=sk_NAME_FUNCS_value(name_funcs_stack,a->type) |
94 | ret=hash(a->name); | 109 | ->hash_func(a->name); |
95 | } | 110 | } |
96 | else | 111 | else |
97 | { | 112 | { |
@@ -117,7 +132,7 @@ const char *OBJ_NAME_get(const char *name, int type) | |||
117 | 132 | ||
118 | for (;;) | 133 | for (;;) |
119 | { | 134 | { |
120 | ret=(OBJ_NAME *)lh_retrieve(names_lh,(char *)&on); | 135 | ret=(OBJ_NAME *)lh_retrieve(names_lh,&on); |
121 | if (ret == NULL) return(NULL); | 136 | if (ret == NULL) return(NULL); |
122 | if ((ret->alias) && !alias) | 137 | if ((ret->alias) && !alias) |
123 | { | 138 | { |
@@ -133,7 +148,6 @@ const char *OBJ_NAME_get(const char *name, int type) | |||
133 | 148 | ||
134 | int OBJ_NAME_add(const char *name, int type, const char *data) | 149 | int OBJ_NAME_add(const char *name, int type, const char *data) |
135 | { | 150 | { |
136 | void (*f)(); | ||
137 | OBJ_NAME *onp,*ret; | 151 | OBJ_NAME *onp,*ret; |
138 | int alias; | 152 | int alias; |
139 | 153 | ||
@@ -154,16 +168,20 @@ int OBJ_NAME_add(const char *name, int type, const char *data) | |||
154 | onp->type=type; | 168 | onp->type=type; |
155 | onp->data=data; | 169 | onp->data=data; |
156 | 170 | ||
157 | ret=(OBJ_NAME *)lh_insert(names_lh,(char *)onp); | 171 | ret=(OBJ_NAME *)lh_insert(names_lh,onp); |
158 | if (ret != NULL) | 172 | if (ret != NULL) |
159 | { | 173 | { |
160 | /* free things */ | 174 | /* free things */ |
161 | if ((names_free != NULL) && (sk_num(names_free) > ret->type)) | 175 | if ((name_funcs_stack != NULL) && (sk_NAME_FUNCS_num(name_funcs_stack) > ret->type)) |
162 | { | 176 | { |
163 | f=(void (*)())sk_value(names_free,ret->type); | 177 | /* XXX: I'm not sure I understand why the free |
164 | f(ret->name,ret->type,ret->data); | 178 | * function should get three arguments... |
179 | * -- Richard Levitte | ||
180 | */ | ||
181 | sk_NAME_FUNCS_value(name_funcs_stack,ret->type) | ||
182 | ->free_func(ret->name,ret->type,ret->data); | ||
165 | } | 183 | } |
166 | Free((char *)ret); | 184 | Free(ret); |
167 | } | 185 | } |
168 | else | 186 | else |
169 | { | 187 | { |
@@ -179,23 +197,26 @@ int OBJ_NAME_add(const char *name, int type, const char *data) | |||
179 | int OBJ_NAME_remove(const char *name, int type) | 197 | int OBJ_NAME_remove(const char *name, int type) |
180 | { | 198 | { |
181 | OBJ_NAME on,*ret; | 199 | OBJ_NAME on,*ret; |
182 | void (*f)(); | ||
183 | 200 | ||
184 | if (names_lh == NULL) return(0); | 201 | if (names_lh == NULL) return(0); |
185 | 202 | ||
186 | type&= ~OBJ_NAME_ALIAS; | 203 | type&= ~OBJ_NAME_ALIAS; |
187 | on.name=name; | 204 | on.name=name; |
188 | on.type=type; | 205 | on.type=type; |
189 | ret=(OBJ_NAME *)lh_delete(names_lh,(char *)&on); | 206 | ret=(OBJ_NAME *)lh_delete(names_lh,&on); |
190 | if (ret != NULL) | 207 | if (ret != NULL) |
191 | { | 208 | { |
192 | /* free things */ | 209 | /* free things */ |
193 | if ((names_free != NULL) && (sk_num(names_free) > type)) | 210 | if ((name_funcs_stack != NULL) && (sk_NAME_FUNCS_num(name_funcs_stack) > ret->type)) |
194 | { | 211 | { |
195 | f=(void (*)())sk_value(names_free,type); | 212 | /* XXX: I'm not sure I understand why the free |
196 | f(ret->name,ret->type,ret->data); | 213 | * function should get three arguments... |
214 | * -- Richard Levitte | ||
215 | */ | ||
216 | sk_NAME_FUNCS_value(name_funcs_stack,ret->type) | ||
217 | ->free_func(ret->name,ret->type,ret->data); | ||
197 | } | 218 | } |
198 | Free((char *)ret); | 219 | Free(ret); |
199 | return(1); | 220 | return(1); |
200 | } | 221 | } |
201 | else | 222 | else |
@@ -215,6 +236,11 @@ static void names_lh_free(OBJ_NAME *onp, int type) | |||
215 | } | 236 | } |
216 | } | 237 | } |
217 | 238 | ||
239 | static void name_funcs_free(NAME_FUNCS *ptr) | ||
240 | { | ||
241 | Free(ptr); | ||
242 | } | ||
243 | |||
218 | void OBJ_NAME_cleanup(int type) | 244 | void OBJ_NAME_cleanup(int type) |
219 | { | 245 | { |
220 | unsigned long down_load; | 246 | unsigned long down_load; |
@@ -229,13 +255,9 @@ void OBJ_NAME_cleanup(int type) | |||
229 | if (type < 0) | 255 | if (type < 0) |
230 | { | 256 | { |
231 | lh_free(names_lh); | 257 | lh_free(names_lh); |
232 | sk_free(names_hash); | 258 | sk_NAME_FUNCS_pop_free(name_funcs_stack,name_funcs_free); |
233 | sk_free(names_cmp); | ||
234 | sk_free(names_free); | ||
235 | names_lh=NULL; | 259 | names_lh=NULL; |
236 | names_hash=NULL; | 260 | name_funcs_stack = NULL; |
237 | names_cmp=NULL; | ||
238 | names_free=NULL; | ||
239 | } | 261 | } |
240 | else | 262 | else |
241 | names_lh->down_load=down_load; | 263 | names_lh->down_load=down_load; |
diff --git a/src/lib/libcrypto/objects/obj_dat.c b/src/lib/libcrypto/objects/obj_dat.c index d47b874399..da6df3762a 100644 --- a/src/lib/libcrypto/objects/obj_dat.c +++ b/src/lib/libcrypto/objects/obj_dat.c | |||
@@ -214,16 +214,12 @@ int OBJ_new_nid(int num) | |||
214 | int OBJ_add_object(ASN1_OBJECT *obj) | 214 | int OBJ_add_object(ASN1_OBJECT *obj) |
215 | { | 215 | { |
216 | ASN1_OBJECT *o; | 216 | ASN1_OBJECT *o; |
217 | ADDED_OBJ *ao[4],*aop; | 217 | ADDED_OBJ *ao[4]={NULL,NULL,NULL,NULL},*aop; |
218 | int i; | 218 | int i; |
219 | 219 | ||
220 | if (added == NULL) | 220 | if (added == NULL) |
221 | if (!init_added()) return(0); | 221 | if (!init_added()) return(0); |
222 | if ((o=OBJ_dup(obj)) == NULL) goto err; | 222 | if ((o=OBJ_dup(obj)) == NULL) goto err; |
223 | ao[ADDED_DATA]=NULL; | ||
224 | ao[ADDED_SNAME]=NULL; | ||
225 | ao[ADDED_LNAME]=NULL; | ||
226 | ao[ADDED_NID]=NULL; | ||
227 | ao[ADDED_NID]=(ADDED_OBJ *)Malloc(sizeof(ADDED_OBJ)); | 223 | ao[ADDED_NID]=(ADDED_OBJ *)Malloc(sizeof(ADDED_OBJ)); |
228 | if ((o->length != 0) && (obj->data != NULL)) | 224 | if ((o->length != 0) && (obj->data != NULL)) |
229 | ao[ADDED_DATA]=(ADDED_OBJ *)Malloc(sizeof(ADDED_OBJ)); | 225 | ao[ADDED_DATA]=(ADDED_OBJ *)Malloc(sizeof(ADDED_OBJ)); |
@@ -238,7 +234,7 @@ int OBJ_add_object(ASN1_OBJECT *obj) | |||
238 | { | 234 | { |
239 | ao[i]->type=i; | 235 | ao[i]->type=i; |
240 | ao[i]->obj=o; | 236 | ao[i]->obj=o; |
241 | aop=(ADDED_OBJ *)lh_insert(added,(char *)ao[i]); | 237 | aop=(ADDED_OBJ *)lh_insert(added,ao[i]); |
242 | /* memory leak, buit should not normally matter */ | 238 | /* memory leak, buit should not normally matter */ |
243 | if (aop != NULL) | 239 | if (aop != NULL) |
244 | Free(aop); | 240 | Free(aop); |
@@ -276,7 +272,7 @@ ASN1_OBJECT *OBJ_nid2obj(int n) | |||
276 | ad.type=ADDED_NID; | 272 | ad.type=ADDED_NID; |
277 | ad.obj= &ob; | 273 | ad.obj= &ob; |
278 | ob.nid=n; | 274 | ob.nid=n; |
279 | adp=(ADDED_OBJ *)lh_retrieve(added,(char *)&ad); | 275 | adp=(ADDED_OBJ *)lh_retrieve(added,&ad); |
280 | if (adp != NULL) | 276 | if (adp != NULL) |
281 | return(adp->obj); | 277 | return(adp->obj); |
282 | else | 278 | else |
@@ -308,7 +304,7 @@ const char *OBJ_nid2sn(int n) | |||
308 | ad.type=ADDED_NID; | 304 | ad.type=ADDED_NID; |
309 | ad.obj= &ob; | 305 | ad.obj= &ob; |
310 | ob.nid=n; | 306 | ob.nid=n; |
311 | adp=(ADDED_OBJ *)lh_retrieve(added,(char *)&ad); | 307 | adp=(ADDED_OBJ *)lh_retrieve(added,&ad); |
312 | if (adp != NULL) | 308 | if (adp != NULL) |
313 | return(adp->obj->sn); | 309 | return(adp->obj->sn); |
314 | else | 310 | else |
@@ -340,7 +336,7 @@ const char *OBJ_nid2ln(int n) | |||
340 | ad.type=ADDED_NID; | 336 | ad.type=ADDED_NID; |
341 | ad.obj= &ob; | 337 | ad.obj= &ob; |
342 | ob.nid=n; | 338 | ob.nid=n; |
343 | adp=(ADDED_OBJ *)lh_retrieve(added,(char *)&ad); | 339 | adp=(ADDED_OBJ *)lh_retrieve(added,&ad); |
344 | if (adp != NULL) | 340 | if (adp != NULL) |
345 | return(adp->obj->ln); | 341 | return(adp->obj->ln); |
346 | else | 342 | else |
@@ -365,7 +361,7 @@ int OBJ_obj2nid(ASN1_OBJECT *a) | |||
365 | { | 361 | { |
366 | ad.type=ADDED_DATA; | 362 | ad.type=ADDED_DATA; |
367 | ad.obj=a; | 363 | ad.obj=a; |
368 | adp=(ADDED_OBJ *)lh_retrieve(added,(char *)&ad); | 364 | adp=(ADDED_OBJ *)lh_retrieve(added,&ad); |
369 | if (adp != NULL) return (adp->obj->nid); | 365 | if (adp != NULL) return (adp->obj->nid); |
370 | } | 366 | } |
371 | op=(ASN1_OBJECT **)OBJ_bsearch((char *)&a,(char *)obj_objs,NUM_OBJ, | 367 | op=(ASN1_OBJECT **)OBJ_bsearch((char *)&a,(char *)obj_objs,NUM_OBJ, |
@@ -504,7 +500,7 @@ int OBJ_ln2nid(const char *s) | |||
504 | { | 500 | { |
505 | ad.type=ADDED_LNAME; | 501 | ad.type=ADDED_LNAME; |
506 | ad.obj= &o; | 502 | ad.obj= &o; |
507 | adp=(ADDED_OBJ *)lh_retrieve(added,(char *)&ad); | 503 | adp=(ADDED_OBJ *)lh_retrieve(added,&ad); |
508 | if (adp != NULL) return (adp->obj->nid); | 504 | if (adp != NULL) return (adp->obj->nid); |
509 | } | 505 | } |
510 | op=(ASN1_OBJECT **)OBJ_bsearch((char *)&oo,(char *)ln_objs,NUM_LN, | 506 | op=(ASN1_OBJECT **)OBJ_bsearch((char *)&oo,(char *)ln_objs,NUM_LN, |
@@ -523,7 +519,7 @@ int OBJ_sn2nid(const char *s) | |||
523 | { | 519 | { |
524 | ad.type=ADDED_SNAME; | 520 | ad.type=ADDED_SNAME; |
525 | ad.obj= &o; | 521 | ad.obj= &o; |
526 | adp=(ADDED_OBJ *)lh_retrieve(added,(char *)&ad); | 522 | adp=(ADDED_OBJ *)lh_retrieve(added,&ad); |
527 | if (adp != NULL) return (adp->obj->nid); | 523 | if (adp != NULL) return (adp->obj->nid); |
528 | } | 524 | } |
529 | op=(ASN1_OBJECT **)OBJ_bsearch((char *)&oo,(char *)sn_objs,NUM_SN, | 525 | op=(ASN1_OBJECT **)OBJ_bsearch((char *)&oo,(char *)sn_objs,NUM_SN, |
@@ -647,7 +643,7 @@ int OBJ_create(char *oid, char *sn, char *ln) | |||
647 | ok=OBJ_add_object(op); | 643 | ok=OBJ_add_object(op); |
648 | err: | 644 | err: |
649 | ASN1_OBJECT_free(op); | 645 | ASN1_OBJECT_free(op); |
650 | Free((char *)buf); | 646 | Free(buf); |
651 | return(ok); | 647 | return(ok); |
652 | } | 648 | } |
653 | 649 | ||
diff --git a/src/lib/libcrypto/objects/obj_dat.pl b/src/lib/libcrypto/objects/obj_dat.pl index 5043daef2a..e6e3c3b9c0 100644 --- a/src/lib/libcrypto/objects/obj_dat.pl +++ b/src/lib/libcrypto/objects/obj_dat.pl | |||
@@ -38,7 +38,10 @@ sub expand_obj | |||
38 | return(%objn); | 38 | return(%objn); |
39 | } | 39 | } |
40 | 40 | ||
41 | while (<>) | 41 | open (IN,"$ARGV[0]") || die "Can't open input file $ARGV[0]"; |
42 | open (OUT,">$ARGV[1]") || die "Can't open output file $ARGV[1]"; | ||
43 | |||
44 | while (<IN>) | ||
42 | { | 45 | { |
43 | next unless /^\#define\s+(\S+)\s+(.*)$/; | 46 | next unless /^\#define\s+(\S+)\s+(.*)$/; |
44 | $v=$1; | 47 | $v=$1; |
@@ -55,6 +58,7 @@ while (<>) | |||
55 | $objd{$v}=$d; | 58 | $objd{$v}=$d; |
56 | } | 59 | } |
57 | } | 60 | } |
61 | close IN; | ||
58 | 62 | ||
59 | %ob=&expand_obj(*objd); | 63 | %ob=&expand_obj(*objd); |
60 | 64 | ||
@@ -132,7 +136,7 @@ foreach (sort obj_cmp @a) | |||
132 | push(@ob,sprintf("&(nid_objs[%2d]),/* %-32s %s */\n",$_,$m,$v)); | 136 | push(@ob,sprintf("&(nid_objs[%2d]),/* %-32s %s */\n",$_,$m,$v)); |
133 | } | 137 | } |
134 | 138 | ||
135 | print <<'EOF'; | 139 | print OUT <<'EOF'; |
136 | /* lib/obj/obj_dat.h */ | 140 | /* lib/obj/obj_dat.h */ |
137 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) | 141 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) |
138 | * All rights reserved. | 142 | * All rights reserved. |
@@ -193,21 +197,21 @@ print <<'EOF'; | |||
193 | 197 | ||
194 | /* THIS FILE IS GENERATED FROM Objects.h by obj_dat.pl via the | 198 | /* THIS FILE IS GENERATED FROM Objects.h by obj_dat.pl via the |
195 | * following command: | 199 | * following command: |
196 | * perl obj_dat.pl < objects.h > obj_dat.h | 200 | * perl obj_dat.pl objects.h obj_dat.h |
197 | */ | 201 | */ |
198 | 202 | ||
199 | EOF | 203 | EOF |
200 | 204 | ||
201 | printf "#define NUM_NID %d\n",$n; | 205 | printf OUT "#define NUM_NID %d\n",$n; |
202 | printf "#define NUM_SN %d\n",$#sn+1; | 206 | printf OUT "#define NUM_SN %d\n",$#sn+1; |
203 | printf "#define NUM_LN %d\n",$#ln+1; | 207 | printf OUT "#define NUM_LN %d\n",$#ln+1; |
204 | printf "#define NUM_OBJ %d\n\n",$#ob+1; | 208 | printf OUT "#define NUM_OBJ %d\n\n",$#ob+1; |
205 | 209 | ||
206 | printf "static unsigned char lvalues[%d]={\n",$lvalues+1; | 210 | printf OUT "static unsigned char lvalues[%d]={\n",$lvalues+1; |
207 | print @lvalues; | 211 | print OUT @lvalues; |
208 | print "};\n\n"; | 212 | print OUT "};\n\n"; |
209 | 213 | ||
210 | printf "static ASN1_OBJECT nid_objs[NUM_NID]={\n"; | 214 | printf OUT "static ASN1_OBJECT nid_objs[NUM_NID]={\n"; |
211 | foreach (@out) | 215 | foreach (@out) |
212 | { | 216 | { |
213 | if (length($_) > 75) | 217 | if (length($_) > 75) |
@@ -218,30 +222,32 @@ foreach (@out) | |||
218 | $t=$out.$_.","; | 222 | $t=$out.$_.","; |
219 | if (length($t) > 70) | 223 | if (length($t) > 70) |
220 | { | 224 | { |
221 | print "$out\n"; | 225 | print OUT "$out\n"; |
222 | $t="\t$_,"; | 226 | $t="\t$_,"; |
223 | } | 227 | } |
224 | $out=$t; | 228 | $out=$t; |
225 | } | 229 | } |
226 | chop $out; | 230 | chop $out; |
227 | print "$out"; | 231 | print OUT "$out"; |
228 | } | 232 | } |
229 | else | 233 | else |
230 | { print $_; } | 234 | { print OUT $_; } |
231 | } | 235 | } |
232 | print "};\n\n"; | 236 | print OUT "};\n\n"; |
237 | |||
238 | printf OUT "static ASN1_OBJECT *sn_objs[NUM_SN]={\n"; | ||
239 | print OUT @sn; | ||
240 | print OUT "};\n\n"; | ||
233 | 241 | ||
234 | printf "static ASN1_OBJECT *sn_objs[NUM_SN]={\n"; | 242 | printf OUT "static ASN1_OBJECT *ln_objs[NUM_LN]={\n"; |
235 | print @sn; | 243 | print OUT @ln; |
236 | print "};\n\n"; | 244 | print OUT "};\n\n"; |
237 | 245 | ||
238 | printf "static ASN1_OBJECT *ln_objs[NUM_LN]={\n"; | 246 | printf OUT "static ASN1_OBJECT *obj_objs[NUM_OBJ]={\n"; |
239 | print @ln; | 247 | print OUT @ob; |
240 | print "};\n\n"; | 248 | print OUT "};\n\n"; |
241 | 249 | ||
242 | printf "static ASN1_OBJECT *obj_objs[NUM_OBJ]={\n"; | 250 | close OUT; |
243 | print @ob; | ||
244 | print "};\n\n"; | ||
245 | 251 | ||
246 | sub der_it | 252 | sub der_it |
247 | { | 253 | { |
diff --git a/src/lib/libcrypto/objects/objects.h b/src/lib/libcrypto/objects/objects.h index d03748e022..d1a5ad2502 100644 --- a/src/lib/libcrypto/objects/objects.h +++ b/src/lib/libcrypto/objects/objects.h | |||
@@ -110,10 +110,12 @@ extern "C" { | |||
110 | #define NID_md5WithRSAEncryption 8 | 110 | #define NID_md5WithRSAEncryption 8 |
111 | #define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L | 111 | #define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L |
112 | 112 | ||
113 | #define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" | ||
113 | #define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" | 114 | #define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" |
114 | #define NID_pbeWithMD2AndDES_CBC 9 | 115 | #define NID_pbeWithMD2AndDES_CBC 9 |
115 | #define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L | 116 | #define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L |
116 | 117 | ||
118 | #define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" | ||
117 | #define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" | 119 | #define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" |
118 | #define NID_pbeWithMD5AndDES_CBC 10 | 120 | #define NID_pbeWithMD5AndDES_CBC 10 |
119 | #define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L | 121 | #define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L |
@@ -230,6 +232,7 @@ extern "C" { | |||
230 | #define SN_idea_cbc "IDEA-CBC" | 232 | #define SN_idea_cbc "IDEA-CBC" |
231 | #define LN_idea_cbc "idea-cbc" | 233 | #define LN_idea_cbc "idea-cbc" |
232 | #define NID_idea_cbc 34 | 234 | #define NID_idea_cbc 34 |
235 | #define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L | ||
233 | 236 | ||
234 | #define SN_idea_cfb64 "IDEA-CFB" | 237 | #define SN_idea_cfb64 "IDEA-CFB" |
235 | #define LN_idea_cfb64 "idea-cfb" | 238 | #define LN_idea_cfb64 "idea-cfb" |
@@ -380,6 +383,7 @@ extern "C" { | |||
380 | #define OBJ_dsa_2 OBJ_algorithm,12L | 383 | #define OBJ_dsa_2 OBJ_algorithm,12L |
381 | 384 | ||
382 | /* proposed by microsoft to RSA */ | 385 | /* proposed by microsoft to RSA */ |
386 | #define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" | ||
383 | #define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" | 387 | #define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" |
384 | #define NID_pbeWithSHA1AndRC2_CBC 68 | 388 | #define NID_pbeWithSHA1AndRC2_CBC 68 |
385 | #define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L | 389 | #define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L |
@@ -499,6 +503,7 @@ extern "C" { | |||
499 | #define SN_bf_cbc "BF-CBC" | 503 | #define SN_bf_cbc "BF-CBC" |
500 | #define LN_bf_cbc "bf-cbc" | 504 | #define LN_bf_cbc "bf-cbc" |
501 | #define NID_bf_cbc 91 | 505 | #define NID_bf_cbc 91 |
506 | #define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L | ||
502 | 507 | ||
503 | #define SN_bf_ecb "BF-ECB" | 508 | #define SN_bf_ecb "BF-ECB" |
504 | #define LN_bf_ecb "bf-ecb" | 509 | #define LN_bf_ecb "bf-ecb" |
@@ -627,7 +632,7 @@ extern "C" { | |||
627 | #define OBJ_ripemd160 1L,3L,36L,3L,2L,1L | 632 | #define OBJ_ripemd160 1L,3L,36L,3L,2L,1L |
628 | 633 | ||
629 | /* The name should actually be rsaSignatureWithripemd160, but I'm going | 634 | /* The name should actually be rsaSignatureWithripemd160, but I'm going |
630 | * to contiune using the convention I'm using with the other ciphers */ | 635 | * to continue using the convention I'm using with the other ciphers */ |
631 | #define SN_ripemd160WithRSA "RSA-RIPEMD160" | 636 | #define SN_ripemd160WithRSA "RSA-RIPEMD160" |
632 | #define LN_ripemd160WithRSA "ripemd160WithRSA" | 637 | #define LN_ripemd160WithRSA "ripemd160WithRSA" |
633 | #define NID_ripemd160WithRSA 119 | 638 | #define NID_ripemd160WithRSA 119 |
@@ -661,12 +666,12 @@ extern "C" { | |||
661 | #define SN_rle_compression "RLE" | 666 | #define SN_rle_compression "RLE" |
662 | #define LN_rle_compression "run length compression" | 667 | #define LN_rle_compression "run length compression" |
663 | #define NID_rle_compression 124 | 668 | #define NID_rle_compression 124 |
664 | #define OBJ_rle_compression 1L,1L,1L,1L,666L.1L | 669 | #define OBJ_rle_compression 1L,1L,1L,1L,666L,1L |
665 | 670 | ||
666 | #define SN_zlib_compression "ZLIB" | 671 | #define SN_zlib_compression "ZLIB" |
667 | #define LN_zlib_compression "zlib compression" | 672 | #define LN_zlib_compression "zlib compression" |
668 | #define NID_zlib_compression 125 | 673 | #define NID_zlib_compression 125 |
669 | #define OBJ_zlib_compression 1L,1L,1L,1L,666L.2L | 674 | #define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L |
670 | 675 | ||
671 | #define SN_ext_key_usage "extendedKeyUsage" | 676 | #define SN_ext_key_usage "extendedKeyUsage" |
672 | #define LN_ext_key_usage "X509v3 Extended Key Usage" | 677 | #define LN_ext_key_usage "X509v3 Extended Key Usage" |
@@ -735,7 +740,7 @@ extern "C" { | |||
735 | #define NID_ms_efs 138 | 740 | #define NID_ms_efs 138 |
736 | #define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L | 741 | #define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L |
737 | 742 | ||
738 | /* Addidional usage: Netscape */ | 743 | /* Additional usage: Netscape */ |
739 | 744 | ||
740 | #define SN_ns_sgc "nsSGC" | 745 | #define SN_ns_sgc "nsSGC" |
741 | #define LN_ns_sgc "Netscape Server Gated Crypto" | 746 | #define LN_ns_sgc "Netscape Server Gated Crypto" |
@@ -767,26 +772,32 @@ extern "C" { | |||
767 | #define OBJ_pkcs12 OBJ_pkcs,12L | 772 | #define OBJ_pkcs12 OBJ_pkcs,12L |
768 | #define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 | 773 | #define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 |
769 | 774 | ||
775 | #define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" | ||
770 | #define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" | 776 | #define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" |
771 | #define NID_pbe_WithSHA1And128BitRC4 144 | 777 | #define NID_pbe_WithSHA1And128BitRC4 144 |
772 | #define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L | 778 | #define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L |
773 | 779 | ||
780 | #define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" | ||
774 | #define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" | 781 | #define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" |
775 | #define NID_pbe_WithSHA1And40BitRC4 145 | 782 | #define NID_pbe_WithSHA1And40BitRC4 145 |
776 | #define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L | 783 | #define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L |
777 | 784 | ||
785 | #define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" | ||
778 | #define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" | 786 | #define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" |
779 | #define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 | 787 | #define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 |
780 | #define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L | 788 | #define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L |
781 | 789 | ||
790 | #define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" | ||
782 | #define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" | 791 | #define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" |
783 | #define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 | 792 | #define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 |
784 | #define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L | 793 | #define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L |
785 | 794 | ||
795 | #define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" | ||
786 | #define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" | 796 | #define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" |
787 | #define NID_pbe_WithSHA1And128BitRC2_CBC 148 | 797 | #define NID_pbe_WithSHA1And128BitRC2_CBC 148 |
788 | #define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L | 798 | #define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L |
789 | 799 | ||
800 | #define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" | ||
790 | #define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" | 801 | #define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" |
791 | #define NID_pbe_WithSHA1And40BitRC2_CBC 149 | 802 | #define NID_pbe_WithSHA1And40BitRC2_CBC 149 |
792 | #define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L | 803 | #define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L |
@@ -876,20 +887,73 @@ extern "C" { | |||
876 | #define SN_SMIMECapabilities "SMIME-CAPS" | 887 | #define SN_SMIMECapabilities "SMIME-CAPS" |
877 | #define LN_SMIMECapabilities "S/MIME Capabilities" | 888 | #define LN_SMIMECapabilities "S/MIME Capabilities" |
878 | #define NID_SMIMECapabilities 167 | 889 | #define NID_SMIMECapabilities 167 |
879 | #define OBJ_SMIMECapabilities OBJ_id_pkcs9,15L | 890 | #define OBJ_SMIMECapabilities OBJ_pkcs9,15L |
880 | 891 | ||
892 | #define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" | ||
881 | #define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" | 893 | #define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" |
882 | #define NID_pbeWithMD2AndRC2_CBC 168 | 894 | #define NID_pbeWithMD2AndRC2_CBC 168 |
883 | #define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L | 895 | #define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L |
884 | 896 | ||
897 | #define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" | ||
885 | #define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" | 898 | #define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" |
886 | #define NID_pbeWithMD5AndRC2_CBC 169 | 899 | #define NID_pbeWithMD5AndRC2_CBC 169 |
887 | #define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L | 900 | #define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L |
888 | 901 | ||
902 | #define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" | ||
889 | #define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" | 903 | #define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" |
890 | #define NID_pbeWithSHA1AndDES_CBC 170 | 904 | #define NID_pbeWithSHA1AndDES_CBC 170 |
891 | #define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L | 905 | #define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L |
892 | 906 | ||
907 | /* Extension request OIDs */ | ||
908 | |||
909 | #define LN_ms_ext_req "Microsoft Extension Request" | ||
910 | #define SN_ms_ext_req "msExtReq" | ||
911 | #define NID_ms_ext_req 171 | ||
912 | #define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L | ||
913 | |||
914 | #define LN_ext_req "Extension Request" | ||
915 | #define SN_ext_req "extReq" | ||
916 | #define NID_ext_req 172 | ||
917 | #define OBJ_ext_req OBJ_pkcs9,14L | ||
918 | |||
919 | #define SN_name "name" | ||
920 | #define LN_name "name" | ||
921 | #define NID_name 173 | ||
922 | #define OBJ_name OBJ_X509,41L | ||
923 | |||
924 | #define SN_dnQualifier "dnQualifier" | ||
925 | #define LN_dnQualifier "dnQualifier" | ||
926 | #define NID_dnQualifier 174 | ||
927 | #define OBJ_dnQualifier OBJ_X509,46L | ||
928 | |||
929 | #define SN_id_pe "id-pe" | ||
930 | #define NID_id_pe 175 | ||
931 | #define OBJ_id_pe OBJ_id_pkix,1L | ||
932 | |||
933 | #define SN_id_ad "id-ad" | ||
934 | #define NID_id_ad 176 | ||
935 | #define OBJ_id_ad OBJ_id_pkix,48L | ||
936 | |||
937 | #define SN_info_access "authorityInfoAccess" | ||
938 | #define LN_info_access "Authority Information Access" | ||
939 | #define NID_info_access 177 | ||
940 | #define OBJ_info_access OBJ_id_pe,1L | ||
941 | |||
942 | #define SN_ad_OCSP "OCSP" | ||
943 | #define LN_ad_OCSP "OCSP" | ||
944 | #define NID_ad_OCSP 178 | ||
945 | #define OBJ_ad_OCSP OBJ_id_ad,1L | ||
946 | |||
947 | #define SN_ad_ca_issuers "caIssuers" | ||
948 | #define LN_ad_ca_issuers "CA Issuers" | ||
949 | #define NID_ad_ca_issuers 179 | ||
950 | #define OBJ_ad_ca_issuers OBJ_id_ad,2L | ||
951 | |||
952 | #define SN_OSCP_sign "OCSPSigning" | ||
953 | #define LN_OCSP_sign "OCSP Signing" | ||
954 | #define NID_OCSP_sign 180 | ||
955 | #define OBJ_OCSP_sign OBJ_id_kp,9L | ||
956 | |||
893 | #include <openssl/bio.h> | 957 | #include <openssl/bio.h> |
894 | #include <openssl/asn1.h> | 958 | #include <openssl/asn1.h> |
895 | 959 | ||