summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ex_data.c
diff options
context:
space:
mode:
authorbeck <>2000-03-19 11:13:58 +0000
committerbeck <>2000-03-19 11:13:58 +0000
commit796d609550df3a33fc11468741c5d2f6d3df4c11 (patch)
tree6c6d539061caa20372dad0ac4ddb1dfae2fbe7fe /src/lib/libcrypto/ex_data.c
parent5be3114c1fd7e0dfea1e38d3abb4cbba75244419 (diff)
downloadopenbsd-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/ex_data.c')
-rw-r--r--src/lib/libcrypto/ex_data.c40
1 files changed, 20 insertions, 20 deletions
diff --git a/src/lib/libcrypto/ex_data.c b/src/lib/libcrypto/ex_data.c
index 176574766b..a057dd3b68 100644
--- a/src/lib/libcrypto/ex_data.c
+++ b/src/lib/libcrypto/ex_data.c
@@ -63,15 +63,15 @@
63#include <openssl/lhash.h> 63#include <openssl/lhash.h>
64#include "cryptlib.h" 64#include "cryptlib.h"
65 65
66int CRYPTO_get_ex_new_index(int idx, STACK **skp, long argl, char *argp, 66int CRYPTO_get_ex_new_index(int idx, STACK_OF(CRYPTO_EX_DATA_FUNCS) **skp, long argl, void *argp,
67 int (*new_func)(), int (*dup_func)(), void (*free_func)()) 67 CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)
68 { 68 {
69 int ret= -1; 69 int ret= -1;
70 CRYPTO_EX_DATA_FUNCS *a; 70 CRYPTO_EX_DATA_FUNCS *a;
71 71
72 MemCheck_off(); 72 MemCheck_off();
73 if (*skp == NULL) 73 if (*skp == NULL)
74 *skp=sk_new_null(); 74 *skp=sk_CRYPTO_EX_DATA_FUNCS_new_null();
75 if (*skp == NULL) 75 if (*skp == NULL)
76 { 76 {
77 CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE); 77 CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE);
@@ -88,23 +88,23 @@ int CRYPTO_get_ex_new_index(int idx, STACK **skp, long argl, char *argp,
88 a->new_func=new_func; 88 a->new_func=new_func;
89 a->dup_func=dup_func; 89 a->dup_func=dup_func;
90 a->free_func=free_func; 90 a->free_func=free_func;
91 while (sk_num(*skp) <= idx) 91 while (sk_CRYPTO_EX_DATA_FUNCS_num(*skp) <= idx)
92 { 92 {
93 if (!sk_push(*skp,NULL)) 93 if (!sk_CRYPTO_EX_DATA_FUNCS_push(*skp,NULL))
94 { 94 {
95 CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE); 95 CRYPTOerr(CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX,ERR_R_MALLOC_FAILURE);
96 Free(a); 96 Free(a);
97 goto err; 97 goto err;
98 } 98 }
99 } 99 }
100 sk_set(*skp,idx, (char *)a); 100 sk_CRYPTO_EX_DATA_FUNCS_set(*skp,idx, a);
101 ret=idx; 101 ret=idx;
102err: 102err:
103 MemCheck_on(); 103 MemCheck_on();
104 return(idx); 104 return(idx);
105 } 105 }
106 106
107int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, char *val) 107int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val)
108 { 108 {
109 int i; 109 int i;
110 110
@@ -131,7 +131,7 @@ int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, char *val)
131 return(1); 131 return(1);
132 } 132 }
133 133
134char *CRYPTO_get_ex_data(CRYPTO_EX_DATA *ad, int idx) 134void *CRYPTO_get_ex_data(CRYPTO_EX_DATA *ad, int idx)
135 { 135 {
136 if (ad->sk == NULL) 136 if (ad->sk == NULL)
137 return(0); 137 return(0);
@@ -145,7 +145,7 @@ char *CRYPTO_get_ex_data(CRYPTO_EX_DATA *ad, int idx)
145 * being duplicated, a pointer to the 145 * being duplicated, a pointer to the
146 * 'new' object to be inserted, the index, and the argi/argp 146 * 'new' object to be inserted, the index, and the argi/argp
147 */ 147 */
148int CRYPTO_dup_ex_data(STACK *meth, CRYPTO_EX_DATA *to, 148int CRYPTO_dup_ex_data(STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth, CRYPTO_EX_DATA *to,
149 CRYPTO_EX_DATA *from) 149 CRYPTO_EX_DATA *from)
150 { 150 {
151 int i,j,m,r; 151 int i,j,m,r;
@@ -154,14 +154,14 @@ int CRYPTO_dup_ex_data(STACK *meth, CRYPTO_EX_DATA *to,
154 154
155 if (meth == NULL) return(1); 155 if (meth == NULL) return(1);
156 if (from->sk == NULL) return(1); 156 if (from->sk == NULL) return(1);
157 m=sk_num(meth); 157 m=sk_CRYPTO_EX_DATA_FUNCS_num(meth);
158 j=sk_num(from->sk); 158 j=sk_num(from->sk);
159 for (i=0; i<j; i++) 159 for (i=0; i<j; i++)
160 { 160 {
161 from_d=CRYPTO_get_ex_data(from,i); 161 from_d=CRYPTO_get_ex_data(from,i);
162 if (i < m) 162 if (i < m)
163 { 163 {
164 mm=(CRYPTO_EX_DATA_FUNCS *)sk_value(meth,i); 164 mm=sk_CRYPTO_EX_DATA_FUNCS_value(meth,i);
165 if (mm->dup_func != NULL) 165 if (mm->dup_func != NULL)
166 r=mm->dup_func(to,from,(char **)&from_d,i, 166 r=mm->dup_func(to,from,(char **)&from_d,i,
167 mm->argl,mm->argp); 167 mm->argl,mm->argp);
@@ -172,18 +172,18 @@ int CRYPTO_dup_ex_data(STACK *meth, CRYPTO_EX_DATA *to,
172 } 172 }
173 173
174/* Call each free callback */ 174/* Call each free callback */
175void CRYPTO_free_ex_data(STACK *meth, char *obj, CRYPTO_EX_DATA *ad) 175void CRYPTO_free_ex_data(STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth, void *obj, CRYPTO_EX_DATA *ad)
176 { 176 {
177 CRYPTO_EX_DATA_FUNCS *m; 177 CRYPTO_EX_DATA_FUNCS *m;
178 char *ptr; 178 void *ptr;
179 int i,max; 179 int i,max;
180 180
181 if (meth != NULL) 181 if (meth != NULL)
182 { 182 {
183 max=sk_num(meth); 183 max=sk_CRYPTO_EX_DATA_FUNCS_num(meth);
184 for (i=0; i<max; i++) 184 for (i=0; i<max; i++)
185 { 185 {
186 m=(CRYPTO_EX_DATA_FUNCS *)sk_value(meth,i); 186 m=sk_CRYPTO_EX_DATA_FUNCS_value(meth,i);
187 if ((m != NULL) && (m->free_func != NULL)) 187 if ((m != NULL) && (m->free_func != NULL))
188 { 188 {
189 ptr=CRYPTO_get_ex_data(ad,i); 189 ptr=CRYPTO_get_ex_data(ad,i);
@@ -198,19 +198,19 @@ void CRYPTO_free_ex_data(STACK *meth, char *obj, CRYPTO_EX_DATA *ad)
198 } 198 }
199 } 199 }
200 200
201void CRYPTO_new_ex_data(STACK *meth, char *obj, CRYPTO_EX_DATA *ad) 201void CRYPTO_new_ex_data(STACK_OF(CRYPTO_EX_DATA_FUNCS) *meth, void *obj, CRYPTO_EX_DATA *ad)
202 { 202 {
203 CRYPTO_EX_DATA_FUNCS *m; 203 CRYPTO_EX_DATA_FUNCS *m;
204 char *ptr; 204 void *ptr;
205 int i,max; 205 int i,max;
206 206
207 ad->sk=NULL; 207 ad->sk=NULL;
208 if (meth != NULL) 208 if (meth != NULL)
209 { 209 {
210 max=sk_num(meth); 210 max=sk_CRYPTO_EX_DATA_FUNCS_num(meth);
211 for (i=0; i<max; i++) 211 for (i=0; i<max; i++)
212 { 212 {
213 m=(CRYPTO_EX_DATA_FUNCS *)sk_value(meth,i); 213 m=sk_CRYPTO_EX_DATA_FUNCS_value(meth,i);
214 if ((m != NULL) && (m->new_func != NULL)) 214 if ((m != NULL) && (m->new_func != NULL))
215 { 215 {
216 ptr=CRYPTO_get_ex_data(ad,i); 216 ptr=CRYPTO_get_ex_data(ad,i);
@@ -220,4 +220,4 @@ void CRYPTO_new_ex_data(STACK *meth, char *obj, CRYPTO_EX_DATA *ad)
220 } 220 }
221 } 221 }
222 222
223 223IMPLEMENT_STACK_OF(CRYPTO_EX_DATA_FUNCS)