summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509/x_all.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509/x_all.c')
-rw-r--r--src/lib/libcrypto/x509/x_all.c272
1 files changed, 122 insertions, 150 deletions
diff --git a/src/lib/libcrypto/x509/x_all.c b/src/lib/libcrypto/x509/x_all.c
index b7dde23e9a..f2af895df0 100644
--- a/src/lib/libcrypto/x509/x_all.c
+++ b/src/lib/libcrypto/x509/x_all.c
@@ -58,90 +58,74 @@
58 58
59#include <stdio.h> 59#include <stdio.h>
60#undef SSLEAY_MACROS 60#undef SSLEAY_MACROS
61#include "stack.h" 61#include <openssl/stack.h>
62#include "cryptlib.h" 62#include "cryptlib.h"
63#include "buffer.h" 63#include <openssl/buffer.h>
64#include "asn1.h" 64#include <openssl/asn1.h>
65#include "evp.h" 65#include <openssl/evp.h>
66#include "x509.h" 66#include <openssl/x509.h>
67 67
68int X509_verify(a,r) 68int X509_verify(X509 *a, EVP_PKEY *r)
69X509 *a;
70EVP_PKEY *r;
71 { 69 {
72 return(ASN1_verify((int (*)())i2d_X509_CINF,a->sig_alg, 70 return(ASN1_verify((int (*)())i2d_X509_CINF,a->sig_alg,
73 a->signature,(char *)a->cert_info,r)); 71 a->signature,(char *)a->cert_info,r));
74 } 72 }
75 73
76int X509_REQ_verify(a,r) 74int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r)
77X509_REQ *a;
78EVP_PKEY *r;
79 { 75 {
80 return( ASN1_verify((int (*)())i2d_X509_REQ_INFO, 76 return( ASN1_verify((int (*)())i2d_X509_REQ_INFO,
81 a->sig_alg,a->signature,(char *)a->req_info,r)); 77 a->sig_alg,a->signature,(char *)a->req_info,r));
82 } 78 }
83 79
84int X509_CRL_verify(a,r) 80int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r)
85X509_CRL *a;
86EVP_PKEY *r;
87 { 81 {
88 return(ASN1_verify((int (*)())i2d_X509_CRL_INFO, 82 return(ASN1_verify((int (*)())i2d_X509_CRL_INFO,
89 a->sig_alg, a->signature,(char *)a->crl,r)); 83 a->sig_alg, a->signature,(char *)a->crl,r));
90 } 84 }
91 85
92int NETSCAPE_SPKI_verify(a,r) 86int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r)
93NETSCAPE_SPKI *a;
94EVP_PKEY *r;
95 { 87 {
96 return(ASN1_verify((int (*)())i2d_NETSCAPE_SPKAC, 88 return(ASN1_verify((int (*)())i2d_NETSCAPE_SPKAC,
97 a->sig_algor,a->signature, (char *)a->spkac,r)); 89 a->sig_algor,a->signature, (char *)a->spkac,r));
98 } 90 }
99 91
100int X509_sign(x,pkey,md) 92int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)
101X509 *x;
102EVP_PKEY *pkey;
103EVP_MD *md;
104 { 93 {
105 return(ASN1_sign((int (*)())i2d_X509_CINF, x->cert_info->signature, 94 return(ASN1_sign((int (*)())i2d_X509_CINF, x->cert_info->signature,
106 x->sig_alg, x->signature, (char *)x->cert_info,pkey,md)); 95 x->sig_alg, x->signature, (char *)x->cert_info,pkey,md));
107 } 96 }
108 97
109int X509_REQ_sign(x,pkey,md) 98int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md)
110X509_REQ *x;
111EVP_PKEY *pkey;
112EVP_MD *md;
113 { 99 {
114 return(ASN1_sign((int (*)())i2d_X509_REQ_INFO,x->sig_alg, NULL, 100 return(ASN1_sign((int (*)())i2d_X509_REQ_INFO,x->sig_alg, NULL,
115 x->signature, (char *)x->req_info,pkey,md)); 101 x->signature, (char *)x->req_info,pkey,md));
116 } 102 }
117 103
118int X509_CRL_sign(x,pkey,md) 104int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md)
119X509_CRL *x;
120EVP_PKEY *pkey;
121EVP_MD *md;
122 { 105 {
123 return(ASN1_sign((int (*)())i2d_X509_CRL_INFO,x->crl->sig_alg, 106 return(ASN1_sign((int (*)())i2d_X509_CRL_INFO,x->crl->sig_alg,
124 x->sig_alg, x->signature, (char *)x->crl,pkey,md)); 107 x->sig_alg, x->signature, (char *)x->crl,pkey,md));
125 } 108 }
126 109
127int NETSCAPE_SPKI_sign(x,pkey,md) 110int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md)
128NETSCAPE_SPKI *x;
129EVP_PKEY *pkey;
130EVP_MD *md;
131 { 111 {
132 return(ASN1_sign((int (*)())i2d_NETSCAPE_SPKAC, x->sig_algor,NULL, 112 return(ASN1_sign((int (*)())i2d_NETSCAPE_SPKAC, x->sig_algor,NULL,
133 x->signature, (char *)x->spkac,pkey,md)); 113 x->signature, (char *)x->spkac,pkey,md));
134 } 114 }
135 115
136X509 *X509_dup(x509) 116X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa)
137X509 *x509; 117 {
118 return((X509_ATTRIBUTE *)ASN1_dup((int (*)())i2d_X509_ATTRIBUTE,
119 (char *(*)())d2i_X509_ATTRIBUTE,(char *)xa));
120 }
121
122X509 *X509_dup(X509 *x509)
138 { 123 {
139 return((X509 *)ASN1_dup((int (*)())i2d_X509, 124 return((X509 *)ASN1_dup((int (*)())i2d_X509,
140 (char *(*)())d2i_X509,(char *)x509)); 125 (char *(*)())d2i_X509,(char *)x509));
141 } 126 }
142 127
143X509_EXTENSION *X509_EXTENSION_dup(ex) 128X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex)
144X509_EXTENSION *ex;
145 { 129 {
146 return((X509_EXTENSION *)ASN1_dup( 130 return((X509_EXTENSION *)ASN1_dup(
147 (int (*)())i2d_X509_EXTENSION, 131 (int (*)())i2d_X509_EXTENSION,
@@ -149,237 +133,184 @@ X509_EXTENSION *ex;
149 } 133 }
150 134
151#ifndef NO_FP_API 135#ifndef NO_FP_API
152X509 *d2i_X509_fp(fp,x509) 136X509 *d2i_X509_fp(FILE *fp, X509 **x509)
153FILE *fp;
154X509 *x509;
155 { 137 {
156 return((X509 *)ASN1_d2i_fp((char *(*)())X509_new, 138 return((X509 *)ASN1_d2i_fp((char *(*)())X509_new,
157 (char *(*)())d2i_X509, (fp),(unsigned char **)(x509))); 139 (char *(*)())d2i_X509, (fp),(unsigned char **)(x509)));
158 } 140 }
159 141
160int i2d_X509_fp(fp,x509) 142int i2d_X509_fp(FILE *fp, X509 *x509)
161FILE *fp;
162X509 *x509;
163 { 143 {
164 return(ASN1_i2d_fp(i2d_X509,fp,(unsigned char *)x509)); 144 return(ASN1_i2d_fp(i2d_X509,fp,(unsigned char *)x509));
165 } 145 }
166#endif 146#endif
167 147
168X509 *d2i_X509_bio(bp,x509) 148X509 *d2i_X509_bio(BIO *bp, X509 **x509)
169BIO *bp;
170X509 *x509;
171 { 149 {
172 return((X509 *)ASN1_d2i_bio((char *(*)())X509_new, 150 return((X509 *)ASN1_d2i_bio((char *(*)())X509_new,
173 (char *(*)())d2i_X509, (bp),(unsigned char **)(x509))); 151 (char *(*)())d2i_X509, (bp),(unsigned char **)(x509)));
174 } 152 }
175 153
176int i2d_X509_bio(bp,x509) 154int i2d_X509_bio(BIO *bp, X509 *x509)
177BIO *bp;
178X509 *x509;
179 { 155 {
180 return(ASN1_i2d_bio(i2d_X509,bp,(unsigned char *)x509)); 156 return(ASN1_i2d_bio(i2d_X509,bp,(unsigned char *)x509));
181 } 157 }
182 158
183X509_CRL *X509_CRL_dup(crl) 159X509_CRL *X509_CRL_dup(X509_CRL *crl)
184X509_CRL *crl;
185 { 160 {
186 return((X509_CRL *)ASN1_dup((int (*)())i2d_X509_CRL, 161 return((X509_CRL *)ASN1_dup((int (*)())i2d_X509_CRL,
187 (char *(*)())d2i_X509_CRL,(char *)crl)); 162 (char *(*)())d2i_X509_CRL,(char *)crl));
188 } 163 }
189 164
190#ifndef NO_FP_API 165#ifndef NO_FP_API
191X509_CRL *d2i_X509_CRL_fp(fp,crl) 166X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl)
192FILE *fp;
193X509_CRL *crl;
194 { 167 {
195 return((X509_CRL *)ASN1_d2i_fp((char *(*)()) 168 return((X509_CRL *)ASN1_d2i_fp((char *(*)())
196 X509_CRL_new,(char *(*)())d2i_X509_CRL, (fp), 169 X509_CRL_new,(char *(*)())d2i_X509_CRL, (fp),
197 (unsigned char **)(crl))); 170 (unsigned char **)(crl)));
198 } 171 }
199 172
200int i2d_X509_CRL_fp(fp,crl) 173int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl)
201FILE *fp;
202X509_CRL *crl;
203 { 174 {
204 return(ASN1_i2d_fp(i2d_X509_CRL,fp,(unsigned char *)crl)); 175 return(ASN1_i2d_fp(i2d_X509_CRL,fp,(unsigned char *)crl));
205 } 176 }
206#endif 177#endif
207 178
208X509_CRL *d2i_X509_CRL_bio(bp,crl) 179X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl)
209BIO *bp;
210X509_CRL *crl;
211 { 180 {
212 return((X509_CRL *)ASN1_d2i_bio((char *(*)()) 181 return((X509_CRL *)ASN1_d2i_bio((char *(*)())
213 X509_CRL_new,(char *(*)())d2i_X509_CRL, (bp), 182 X509_CRL_new,(char *(*)())d2i_X509_CRL, (bp),
214 (unsigned char **)(crl))); 183 (unsigned char **)(crl)));
215 } 184 }
216 185
217int i2d_X509_CRL_bio(bp,crl) 186int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl)
218BIO *bp;
219X509_CRL *crl;
220 { 187 {
221 return(ASN1_i2d_bio(i2d_X509_CRL,bp,(unsigned char *)crl)); 188 return(ASN1_i2d_bio(i2d_X509_CRL,bp,(unsigned char *)crl));
222 } 189 }
223 190
224PKCS7 *PKCS7_dup(p7) 191PKCS7 *PKCS7_dup(PKCS7 *p7)
225PKCS7 *p7;
226 { 192 {
227 return((PKCS7 *)ASN1_dup((int (*)())i2d_PKCS7, 193 return((PKCS7 *)ASN1_dup((int (*)())i2d_PKCS7,
228 (char *(*)())d2i_PKCS7,(char *)p7)); 194 (char *(*)())d2i_PKCS7,(char *)p7));
229 } 195 }
230 196
231#ifndef NO_FP_API 197#ifndef NO_FP_API
232PKCS7 *d2i_PKCS7_fp(fp,p7) 198PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7)
233FILE *fp;
234PKCS7 *p7;
235 { 199 {
236 return((PKCS7 *)ASN1_d2i_fp((char *(*)()) 200 return((PKCS7 *)ASN1_d2i_fp((char *(*)())
237 PKCS7_new,(char *(*)())d2i_PKCS7, (fp), 201 PKCS7_new,(char *(*)())d2i_PKCS7, (fp),
238 (unsigned char **)(p7))); 202 (unsigned char **)(p7)));
239 } 203 }
240 204
241int i2d_PKCS7_fp(fp,p7) 205int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7)
242FILE *fp;
243PKCS7 *p7;
244 { 206 {
245 return(ASN1_i2d_fp(i2d_PKCS7,fp,(unsigned char *)p7)); 207 return(ASN1_i2d_fp(i2d_PKCS7,fp,(unsigned char *)p7));
246 } 208 }
247#endif 209#endif
248 210
249PKCS7 *d2i_PKCS7_bio(bp,p7) 211PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7)
250BIO *bp;
251PKCS7 *p7;
252 { 212 {
253 return((PKCS7 *)ASN1_d2i_bio((char *(*)()) 213 return((PKCS7 *)ASN1_d2i_bio((char *(*)())
254 PKCS7_new,(char *(*)())d2i_PKCS7, (bp), 214 PKCS7_new,(char *(*)())d2i_PKCS7, (bp),
255 (unsigned char **)(p7))); 215 (unsigned char **)(p7)));
256 } 216 }
257 217
258int i2d_PKCS7_bio(bp,p7) 218int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7)
259BIO *bp;
260PKCS7 *p7;
261 { 219 {
262 return(ASN1_i2d_bio(i2d_PKCS7,bp,(unsigned char *)p7)); 220 return(ASN1_i2d_bio(i2d_PKCS7,bp,(unsigned char *)p7));
263 } 221 }
264 222
265X509_REQ *X509_REQ_dup(req) 223X509_REQ *X509_REQ_dup(X509_REQ *req)
266X509_REQ *req;
267 { 224 {
268 return((X509_REQ *)ASN1_dup((int (*)())i2d_X509_REQ, 225 return((X509_REQ *)ASN1_dup((int (*)())i2d_X509_REQ,
269 (char *(*)())d2i_X509_REQ,(char *)req)); 226 (char *(*)())d2i_X509_REQ,(char *)req));
270 } 227 }
271 228
272#ifndef NO_FP_API 229#ifndef NO_FP_API
273X509_REQ *d2i_X509_REQ_fp(fp,req) 230X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req)
274FILE *fp;
275X509_REQ *req;
276 { 231 {
277 return((X509_REQ *)ASN1_d2i_fp((char *(*)()) 232 return((X509_REQ *)ASN1_d2i_fp((char *(*)())
278 X509_REQ_new, (char *(*)())d2i_X509_REQ, (fp), 233 X509_REQ_new, (char *(*)())d2i_X509_REQ, (fp),
279 (unsigned char **)(req))); 234 (unsigned char **)(req)));
280 } 235 }
281 236
282int i2d_X509_REQ_fp(fp,req) 237int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req)
283FILE *fp;
284X509_REQ *req;
285 { 238 {
286 return(ASN1_i2d_fp(i2d_X509_REQ,fp,(unsigned char *)req)); 239 return(ASN1_i2d_fp(i2d_X509_REQ,fp,(unsigned char *)req));
287 } 240 }
288#endif 241#endif
289 242
290X509_REQ *d2i_X509_REQ_bio(bp,req) 243X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req)
291BIO *bp;
292X509_REQ *req;
293 { 244 {
294 return((X509_REQ *)ASN1_d2i_bio((char *(*)()) 245 return((X509_REQ *)ASN1_d2i_bio((char *(*)())
295 X509_REQ_new, (char *(*)())d2i_X509_REQ, (bp), 246 X509_REQ_new, (char *(*)())d2i_X509_REQ, (bp),
296 (unsigned char **)(req))); 247 (unsigned char **)(req)));
297 } 248 }
298 249
299int i2d_X509_REQ_bio(bp,req) 250int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req)
300BIO *bp;
301X509_REQ *req;
302 { 251 {
303 return(ASN1_i2d_bio(i2d_X509_REQ,bp,(unsigned char *)req)); 252 return(ASN1_i2d_bio(i2d_X509_REQ,bp,(unsigned char *)req));
304 } 253 }
305 254
306#ifndef NO_RSA 255#ifndef NO_RSA
307RSA *RSAPublicKey_dup(rsa) 256RSA *RSAPublicKey_dup(RSA *rsa)
308RSA *rsa;
309 { 257 {
310 return((RSA *)ASN1_dup((int (*)())i2d_RSAPublicKey, 258 return((RSA *)ASN1_dup((int (*)())i2d_RSAPublicKey,
311 (char *(*)())d2i_RSAPublicKey,(char *)rsa)); 259 (char *(*)())d2i_RSAPublicKey,(char *)rsa));
312 } 260 }
313 261
314RSA *RSAPrivateKey_dup(rsa) 262RSA *RSAPrivateKey_dup(RSA *rsa)
315RSA *rsa;
316 { 263 {
317 return((RSA *)ASN1_dup((int (*)())i2d_RSAPrivateKey, 264 return((RSA *)ASN1_dup((int (*)())i2d_RSAPrivateKey,
318 (char *(*)())d2i_RSAPrivateKey,(char *)rsa)); 265 (char *(*)())d2i_RSAPrivateKey,(char *)rsa));
319 } 266 }
320 267
321#ifndef NO_FP_API 268#ifndef NO_FP_API
322RSA *d2i_RSAPrivateKey_fp(fp,rsa) 269RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa)
323FILE *fp;
324RSA *rsa;
325 { 270 {
326 return((RSA *)ASN1_d2i_fp((char *(*)()) 271 return((RSA *)ASN1_d2i_fp((char *(*)())
327 RSA_new,(char *(*)())d2i_RSAPrivateKey, (fp), 272 RSA_new,(char *(*)())d2i_RSAPrivateKey, (fp),
328 (unsigned char **)(rsa))); 273 (unsigned char **)(rsa)));
329 } 274 }
330 275
331int i2d_RSAPrivateKey_fp(fp,rsa) 276int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa)
332FILE *fp;
333RSA *rsa;
334 { 277 {
335 return(ASN1_i2d_fp(i2d_RSAPrivateKey,fp,(unsigned char *)rsa)); 278 return(ASN1_i2d_fp(i2d_RSAPrivateKey,fp,(unsigned char *)rsa));
336 } 279 }
337 280
338RSA *d2i_RSAPublicKey_fp(fp,rsa) 281RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa)
339FILE *fp;
340RSA *rsa;
341 { 282 {
342 return((RSA *)ASN1_d2i_fp((char *(*)()) 283 return((RSA *)ASN1_d2i_fp((char *(*)())
343 RSA_new,(char *(*)())d2i_RSAPublicKey, (fp), 284 RSA_new,(char *(*)())d2i_RSAPublicKey, (fp),
344 (unsigned char **)(rsa))); 285 (unsigned char **)(rsa)));
345 } 286 }
346 287
347int i2d_RSAPublicKey_fp(fp,rsa) 288int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa)
348FILE *fp;
349RSA *rsa;
350 { 289 {
351 return(ASN1_i2d_fp(i2d_RSAPublicKey,fp,(unsigned char *)rsa)); 290 return(ASN1_i2d_fp(i2d_RSAPublicKey,fp,(unsigned char *)rsa));
352 } 291 }
353#endif 292#endif
354 293
355RSA *d2i_RSAPrivateKey_bio(bp,rsa) 294RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa)
356BIO *bp;
357RSA *rsa;
358 { 295 {
359 return((RSA *)ASN1_d2i_bio((char *(*)()) 296 return((RSA *)ASN1_d2i_bio((char *(*)())
360 RSA_new,(char *(*)())d2i_RSAPrivateKey, (bp), 297 RSA_new,(char *(*)())d2i_RSAPrivateKey, (bp),
361 (unsigned char **)(rsa))); 298 (unsigned char **)(rsa)));
362 } 299 }
363 300
364int i2d_RSAPrivateKey_bio(bp,rsa) 301int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa)
365BIO *bp;
366RSA *rsa;
367 { 302 {
368 return(ASN1_i2d_bio(i2d_RSAPrivateKey,bp,(unsigned char *)rsa)); 303 return(ASN1_i2d_bio(i2d_RSAPrivateKey,bp,(unsigned char *)rsa));
369 } 304 }
370 305
371RSA *d2i_RSAPublicKey_bio(bp,rsa) 306RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa)
372BIO *bp;
373RSA *rsa;
374 { 307 {
375 return((RSA *)ASN1_d2i_bio((char *(*)()) 308 return((RSA *)ASN1_d2i_bio((char *(*)())
376 RSA_new,(char *(*)())d2i_RSAPublicKey, (bp), 309 RSA_new,(char *(*)())d2i_RSAPublicKey, (bp),
377 (unsigned char **)(rsa))); 310 (unsigned char **)(rsa)));
378 } 311 }
379 312
380int i2d_RSAPublicKey_bio(bp,rsa) 313int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa)
381BIO *bp;
382RSA *rsa;
383 { 314 {
384 return(ASN1_i2d_bio(i2d_RSAPublicKey,bp,(unsigned char *)rsa)); 315 return(ASN1_i2d_bio(i2d_RSAPublicKey,bp,(unsigned char *)rsa));
385 } 316 }
@@ -387,79 +318,120 @@ RSA *rsa;
387 318
388#ifndef NO_DSA 319#ifndef NO_DSA
389#ifndef NO_FP_API 320#ifndef NO_FP_API
390DSA *d2i_DSAPrivateKey_fp(fp,dsa) 321DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa)
391FILE *fp;
392DSA *dsa;
393 { 322 {
394 return((DSA *)ASN1_d2i_fp((char *(*)()) 323 return((DSA *)ASN1_d2i_fp((char *(*)())
395 DSA_new,(char *(*)())d2i_DSAPrivateKey, (fp), 324 DSA_new,(char *(*)())d2i_DSAPrivateKey, (fp),
396 (unsigned char **)(dsa))); 325 (unsigned char **)(dsa)));
397 } 326 }
398 327
399int i2d_DSAPrivateKey_fp(fp,dsa) 328int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa)
400FILE *fp;
401DSA *dsa;
402 { 329 {
403 return(ASN1_i2d_fp(i2d_DSAPrivateKey,fp,(unsigned char *)dsa)); 330 return(ASN1_i2d_fp(i2d_DSAPrivateKey,fp,(unsigned char *)dsa));
404 } 331 }
405#endif 332#endif
406 333
407DSA *d2i_DSAPrivateKey_bio(bp,dsa) 334DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa)
408BIO *bp;
409DSA *dsa;
410 { 335 {
411 return((DSA *)ASN1_d2i_bio((char *(*)()) 336 return((DSA *)ASN1_d2i_bio((char *(*)())
412 DSA_new,(char *(*)())d2i_DSAPrivateKey, (bp), 337 DSA_new,(char *(*)())d2i_DSAPrivateKey, (bp),
413 (unsigned char **)(dsa))); 338 (unsigned char **)(dsa)));
414 } 339 }
415 340
416int i2d_DSAPrivateKey_bio(bp,dsa) 341int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa)
417BIO *bp;
418DSA *dsa;
419 { 342 {
420 return(ASN1_i2d_bio(i2d_DSAPrivateKey,bp,(unsigned char *)dsa)); 343 return(ASN1_i2d_bio(i2d_DSAPrivateKey,bp,(unsigned char *)dsa));
421 } 344 }
422#endif 345#endif
423 346
424X509_NAME *X509_NAME_dup(xn) 347X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn)
425X509_NAME *xn; 348 {
349 return((X509_ALGOR *)ASN1_dup((int (*)())i2d_X509_ALGOR,
350 (char *(*)())d2i_X509_ALGOR,(char *)xn));
351 }
352
353X509_NAME *X509_NAME_dup(X509_NAME *xn)
426 { 354 {
427 return((X509_NAME *)ASN1_dup((int (*)())i2d_X509_NAME, 355 return((X509_NAME *)ASN1_dup((int (*)())i2d_X509_NAME,
428 (char *(*)())d2i_X509_NAME,(char *)xn)); 356 (char *(*)())d2i_X509_NAME,(char *)xn));
429 } 357 }
430 358
431X509_NAME_ENTRY *X509_NAME_ENTRY_dup(ne) 359X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne)
432X509_NAME_ENTRY *ne;
433 { 360 {
434 return((X509_NAME_ENTRY *)ASN1_dup((int (*)())i2d_X509_NAME_ENTRY, 361 return((X509_NAME_ENTRY *)ASN1_dup((int (*)())i2d_X509_NAME_ENTRY,
435 (char *(*)())d2i_X509_NAME_ENTRY,(char *)ne)); 362 (char *(*)())d2i_X509_NAME_ENTRY,(char *)ne));
436 } 363 }
437 364
438int X509_digest(data,type,md,len) 365int X509_digest(X509 *data, EVP_MD *type, unsigned char *md,
439X509 *data; 366 unsigned int *len)
440EVP_MD *type;
441unsigned char *md;
442unsigned int *len;
443 { 367 {
444 return(ASN1_digest((int (*)())i2d_X509,type,(char *)data,md,len)); 368 return(ASN1_digest((int (*)())i2d_X509,type,(char *)data,md,len));
445 } 369 }
446 370
447int X509_NAME_digest(data,type,md,len) 371int X509_NAME_digest(X509_NAME *data, EVP_MD *type, unsigned char *md,
448X509_NAME *data; 372 unsigned int *len)
449EVP_MD *type;
450unsigned char *md;
451unsigned int *len;
452 { 373 {
453 return(ASN1_digest((int (*)())i2d_X509_NAME,type,(char *)data,md,len)); 374 return(ASN1_digest((int (*)())i2d_X509_NAME,type,(char *)data,md,len));
454 } 375 }
455 376
456int PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) 377int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, EVP_MD *type,
457PKCS7_ISSUER_AND_SERIAL *data; 378 unsigned char *md, unsigned int *len)
458EVP_MD *type;
459unsigned char *md;
460unsigned int *len;
461 { 379 {
462 return(ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type, 380 return(ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,
463 (char *)data,md,len)); 381 (char *)data,md,len));
464 } 382 }
465 383
384
385#ifndef NO_FP_API
386X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8)
387 {
388 return((X509_SIG *)ASN1_d2i_fp((char *(*)())X509_SIG_new,
389 (char *(*)())d2i_X509_SIG, (fp),(unsigned char **)(p8)));
390 }
391
392int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8)
393 {
394 return(ASN1_i2d_fp(i2d_X509_SIG,fp,(unsigned char *)p8));
395 }
396#endif
397
398X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8)
399 {
400 return((X509_SIG *)ASN1_d2i_bio((char *(*)())X509_SIG_new,
401 (char *(*)())d2i_X509_SIG, (bp),(unsigned char **)(p8)));
402 }
403
404int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8)
405 {
406 return(ASN1_i2d_bio(i2d_X509_SIG,bp,(unsigned char *)p8));
407 }
408
409#ifndef NO_FP_API
410PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,
411 PKCS8_PRIV_KEY_INFO **p8inf)
412 {
413 return((PKCS8_PRIV_KEY_INFO *)ASN1_d2i_fp(
414 (char *(*)())PKCS8_PRIV_KEY_INFO_new,
415 (char *(*)())d2i_PKCS8_PRIV_KEY_INFO, (fp),
416 (unsigned char **)(p8inf)));
417 }
418
419int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf)
420 {
421 return(ASN1_i2d_fp(i2d_PKCS8_PRIV_KEY_INFO,fp,(unsigned char *)p8inf));
422 }
423#endif
424
425PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,
426 PKCS8_PRIV_KEY_INFO **p8inf)
427 {
428 return((PKCS8_PRIV_KEY_INFO *)ASN1_d2i_bio(
429 (char *(*)())PKCS8_PRIV_KEY_INFO_new,
430 (char *(*)())d2i_PKCS8_PRIV_KEY_INFO, (bp),
431 (unsigned char **)(p8inf)));
432 }
433
434int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf)
435 {
436 return(ASN1_i2d_bio(i2d_PKCS8_PRIV_KEY_INFO,bp,(unsigned char *)p8inf));
437 }