aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/objects
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2000-12-13 17:15:03 +0000
committerRichard Levitte <levitte@openssl.org>2000-12-13 17:15:03 +0000
commit8d28d5f81b81f68a69db1c67e24bcfc092614346 (patch)
tree3391f9ea36d1b9655ffd8e9065de14a5284c5556 /crypto/objects
parent53b407da84909dffb54c44dc8a1106723a23a546 (diff)
downloadopenssl-8d28d5f81b81f68a69db1c67e24bcfc092614346.tar.gz
Constification of the data of a hash table. This means the callback
functions need to be constified, and therefore meant a number of easy changes a little everywhere. Now, if someone could explain to me why OBJ_dup() cheats...
Diffstat (limited to 'crypto/objects')
-rw-r--r--crypto/objects/o_names.c8
-rw-r--r--crypto/objects/obj_dat.c23
-rw-r--r--crypto/objects/obj_lib.c7
-rw-r--r--crypto/objects/objects.h17
4 files changed, 29 insertions, 26 deletions
diff --git a/crypto/objects/o_names.c b/crypto/objects/o_names.c
index a5b1aacd66..367ee2bdef 100644
--- a/crypto/objects/o_names.c
+++ b/crypto/objects/o_names.c
@@ -29,9 +29,9 @@ static STACK_OF(NAME_FUNCS) *name_funcs_stack;
* need for macro-generated wrapper functions. */
/* static unsigned long obj_name_hash(OBJ_NAME *a); */
-static unsigned long obj_name_hash(void *a_void);
+static unsigned long obj_name_hash(const void *a_void);
/* static int obj_name_cmp(OBJ_NAME *a,OBJ_NAME *b); */
-static int obj_name_cmp(void *a_void,void *b_void);
+static int obj_name_cmp(const void *a_void,const void *b_void);
int OBJ_NAME_init(void)
{
@@ -88,7 +88,7 @@ int OBJ_NAME_new_index(unsigned long (*hash_func)(const char *),
}
/* static int obj_name_cmp(OBJ_NAME *a, OBJ_NAME *b) */
-static int obj_name_cmp(void *a_void, void *b_void)
+static int obj_name_cmp(const void *a_void, const void *b_void)
{
int ret;
OBJ_NAME *a = (OBJ_NAME *)a_void;
@@ -110,7 +110,7 @@ static int obj_name_cmp(void *a_void, void *b_void)
}
/* static unsigned long obj_name_hash(OBJ_NAME *a) */
-static unsigned long obj_name_hash(void *a_void)
+static unsigned long obj_name_hash(const void *a_void)
{
unsigned long ret;
OBJ_NAME *a = (OBJ_NAME *)a_void;
diff --git a/crypto/objects/obj_dat.c b/crypto/objects/obj_dat.c
index 0057da29bd..9d47c8fb8d 100644
--- a/crypto/objects/obj_dat.c
+++ b/crypto/objects/obj_dat.c
@@ -109,9 +109,9 @@ static int ln_cmp(const void *a, const void *b)
}
/* static unsigned long add_hash(ADDED_OBJ *ca) */
-static unsigned long add_hash(void *ca_void)
+static unsigned long add_hash(const void *ca_void)
{
- ASN1_OBJECT *a;
+ const ASN1_OBJECT *a;
int i;
unsigned long ret=0;
unsigned char *p;
@@ -145,7 +145,7 @@ static unsigned long add_hash(void *ca_void)
}
/* static int add_cmp(ADDED_OBJ *ca, ADDED_OBJ *cb) */
-static int add_cmp(void *ca_void, void *cb_void)
+static int add_cmp(const void *ca_void, const void *cb_void)
{
ASN1_OBJECT *a,*b;
int i;
@@ -224,7 +224,7 @@ int OBJ_new_nid(int num)
return(i);
}
-int OBJ_add_object(ASN1_OBJECT *obj)
+int OBJ_add_object(const ASN1_OBJECT *obj)
{
ASN1_OBJECT *o;
ADDED_OBJ *ao[4]={NULL,NULL,NULL,NULL},*aop;
@@ -360,7 +360,7 @@ const char *OBJ_nid2ln(int n)
}
}
-int OBJ_obj2nid(ASN1_OBJECT *a)
+int OBJ_obj2nid(const ASN1_OBJECT *a)
{
ASN1_OBJECT **op;
ADDED_OBJ ad,*adp;
@@ -373,7 +373,7 @@ int OBJ_obj2nid(ASN1_OBJECT *a)
if (added != NULL)
{
ad.type=ADDED_DATA;
- ad.obj=a;
+ ad.obj=(ASN1_OBJECT *)a; /* XXX: ugly but harmless */
adp=(ADDED_OBJ *)lh_retrieve(added,&ad);
if (adp != NULL) return (adp->obj->nid);
}
@@ -427,7 +427,7 @@ ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name)
return op;
}
-int OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *a, int no_name)
+int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name)
{
int i,idx=0,n=0,len,nid;
unsigned long l;
@@ -493,7 +493,7 @@ int OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *a, int no_name)
return(n);
}
-int OBJ_txt2nid(char *s)
+int OBJ_txt2nid(const char *s)
{
ASN1_OBJECT *obj;
int nid;
@@ -552,10 +552,11 @@ static int obj_cmp(const void *ap, const void *bp)
return(memcmp(a->data,b->data,a->length));
}
-char *OBJ_bsearch(char *key, char *base, int num, int size, int (*cmp)(const void *, const void *))
+const char *OBJ_bsearch(const char *key, const char *base, int num, int size,
+ int (*cmp)(const void *, const void *))
{
int l,h,i,c;
- char *p;
+ const char *p;
if (num == 0) return(NULL);
l=0;
@@ -634,7 +635,7 @@ int OBJ_create_objects(BIO *in)
/* return(num); */
}
-int OBJ_create(char *oid, char *sn, char *ln)
+int OBJ_create(const char *oid, const char *sn, const char *ln)
{
int ok=0;
ASN1_OBJECT *op=NULL;
diff --git a/crypto/objects/obj_lib.c b/crypto/objects/obj_lib.c
index 0c71639eba..b0b0f2ff24 100644
--- a/crypto/objects/obj_lib.c
+++ b/crypto/objects/obj_lib.c
@@ -62,7 +62,7 @@
#include <openssl/objects.h>
#include <openssl/buffer.h>
-ASN1_OBJECT *OBJ_dup(ASN1_OBJECT *o)
+ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o)
{
ASN1_OBJECT *r;
int i;
@@ -70,7 +70,8 @@ ASN1_OBJECT *OBJ_dup(ASN1_OBJECT *o)
if (o == NULL) return(NULL);
if (!(o->flags & ASN1_OBJECT_FLAG_DYNAMIC))
- return(o);
+ return((ASN1_OBJECT *)o); /* XXX: ugh! Why? What kind of
+ duplication is this??? */
r=ASN1_OBJECT_new();
if (r == NULL)
@@ -116,7 +117,7 @@ err:
return(NULL);
}
-int OBJ_cmp(ASN1_OBJECT *a, ASN1_OBJECT *b)
+int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b)
{
int ret;
diff --git a/crypto/objects/objects.h b/crypto/objects/objects.h
index 8918683aab..e98e92e993 100644
--- a/crypto/objects/objects.h
+++ b/crypto/objects/objects.h
@@ -997,24 +997,25 @@ void OBJ_NAME_do_all(int type,void (*fn)(const OBJ_NAME *,void *arg),
void OBJ_NAME_do_all_sorted(int type,void (*fn)(const OBJ_NAME *,void *arg),
void *arg);
-ASN1_OBJECT * OBJ_dup(ASN1_OBJECT *o);
+ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o);
ASN1_OBJECT * OBJ_nid2obj(int n);
const char * OBJ_nid2ln(int n);
const char * OBJ_nid2sn(int n);
-int OBJ_obj2nid(ASN1_OBJECT *o);
+int OBJ_obj2nid(const ASN1_OBJECT *o);
ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name);
-int OBJ_obj2txt(char *buf, int buf_len, ASN1_OBJECT *a, int no_name);
-int OBJ_txt2nid(char *s);
+int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name);
+int OBJ_txt2nid(const char *s);
int OBJ_ln2nid(const char *s);
int OBJ_sn2nid(const char *s);
-int OBJ_cmp(ASN1_OBJECT *a,ASN1_OBJECT *b);
-char * OBJ_bsearch(char *key,char *base,int num,int size,int (*cmp)(const void *, const void *));
+int OBJ_cmp(const ASN1_OBJECT *a,const ASN1_OBJECT *b);
+const char * OBJ_bsearch(const char *key,const char *base,int num,int size,
+ int (*cmp)(const void *, const void *));
void ERR_load_OBJ_strings(void );
int OBJ_new_nid(int num);
-int OBJ_add_object(ASN1_OBJECT *obj);
-int OBJ_create(char *oid,char *sn,char *ln);
+int OBJ_add_object(const ASN1_OBJECT *obj);
+int OBJ_create(const char *oid,const char *sn,const char *ln);
void OBJ_cleanup(void );
int OBJ_create_objects(BIO *in);