summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ex_data.c
diff options
context:
space:
mode:
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)