diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x_all.c')
-rw-r--r-- | src/lib/libcrypto/x509/x_all.c | 203 |
1 files changed, 63 insertions, 140 deletions
diff --git a/src/lib/libcrypto/x509/x_all.c b/src/lib/libcrypto/x509/x_all.c index 9bd6e2a39b..fb5015cd4d 100644 --- a/src/lib/libcrypto/x509/x_all.c +++ b/src/lib/libcrypto/x509/x_all.c | |||
@@ -67,224 +67,159 @@ | |||
67 | 67 | ||
68 | int X509_verify(X509 *a, EVP_PKEY *r) | 68 | int X509_verify(X509 *a, EVP_PKEY *r) |
69 | { | 69 | { |
70 | return(ASN1_verify((int (*)())i2d_X509_CINF,a->sig_alg, | 70 | return(ASN1_item_verify(ASN1_ITEM_rptr(X509_CINF),a->sig_alg, |
71 | a->signature,(char *)a->cert_info,r)); | 71 | a->signature,a->cert_info,r)); |
72 | } | 72 | } |
73 | 73 | ||
74 | int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r) | 74 | int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r) |
75 | { | 75 | { |
76 | return( ASN1_verify((int (*)())i2d_X509_REQ_INFO, | 76 | return( ASN1_item_verify(ASN1_ITEM_rptr(X509_REQ_INFO), |
77 | a->sig_alg,a->signature,(char *)a->req_info,r)); | 77 | a->sig_alg,a->signature,a->req_info,r)); |
78 | } | 78 | } |
79 | 79 | ||
80 | int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r) | 80 | int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r) |
81 | { | 81 | { |
82 | return(ASN1_verify((int (*)())i2d_X509_CRL_INFO, | 82 | return(ASN1_item_verify(ASN1_ITEM_rptr(X509_CRL_INFO), |
83 | a->sig_alg, a->signature,(char *)a->crl,r)); | 83 | a->sig_alg, a->signature,a->crl,r)); |
84 | } | 84 | } |
85 | 85 | ||
86 | int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r) | 86 | int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r) |
87 | { | 87 | { |
88 | return(ASN1_verify((int (*)())i2d_NETSCAPE_SPKAC, | 88 | return(ASN1_item_verify(ASN1_ITEM_rptr(NETSCAPE_SPKAC), |
89 | a->sig_algor,a->signature, (char *)a->spkac,r)); | 89 | a->sig_algor,a->signature,a->spkac,r)); |
90 | } | 90 | } |
91 | 91 | ||
92 | int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md) | 92 | int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md) |
93 | { | 93 | { |
94 | return(ASN1_sign((int (*)())i2d_X509_CINF, x->cert_info->signature, | 94 | return(ASN1_item_sign(ASN1_ITEM_rptr(X509_CINF), x->cert_info->signature, |
95 | x->sig_alg, x->signature, (char *)x->cert_info,pkey,md)); | 95 | x->sig_alg, x->signature, x->cert_info,pkey,md)); |
96 | } | 96 | } |
97 | 97 | ||
98 | int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md) | 98 | int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md) |
99 | { | 99 | { |
100 | return(ASN1_sign((int (*)())i2d_X509_REQ_INFO,x->sig_alg, NULL, | 100 | return(ASN1_item_sign(ASN1_ITEM_rptr(X509_REQ_INFO),x->sig_alg, NULL, |
101 | x->signature, (char *)x->req_info,pkey,md)); | 101 | x->signature, x->req_info,pkey,md)); |
102 | } | 102 | } |
103 | 103 | ||
104 | int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md) | 104 | int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md) |
105 | { | 105 | { |
106 | return(ASN1_sign((int (*)())i2d_X509_CRL_INFO,x->crl->sig_alg, | 106 | return(ASN1_item_sign(ASN1_ITEM_rptr(X509_CRL_INFO),x->crl->sig_alg, |
107 | x->sig_alg, x->signature, (char *)x->crl,pkey,md)); | 107 | x->sig_alg, x->signature, x->crl,pkey,md)); |
108 | } | 108 | } |
109 | 109 | ||
110 | int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md) | 110 | int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md) |
111 | { | 111 | { |
112 | return(ASN1_sign((int (*)())i2d_NETSCAPE_SPKAC, x->sig_algor,NULL, | 112 | return(ASN1_item_sign(ASN1_ITEM_rptr(NETSCAPE_SPKAC), x->sig_algor,NULL, |
113 | x->signature, (char *)x->spkac,pkey,md)); | 113 | x->signature, x->spkac,pkey,md)); |
114 | } | 114 | } |
115 | 115 | ||
116 | X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa) | 116 | #ifndef OPENSSL_NO_FP_API |
117 | { | ||
118 | return((X509_ATTRIBUTE *)ASN1_dup((int (*)())i2d_X509_ATTRIBUTE, | ||
119 | (char *(*)())d2i_X509_ATTRIBUTE,(char *)xa)); | ||
120 | } | ||
121 | |||
122 | X509 *X509_dup(X509 *x509) | ||
123 | { | ||
124 | return((X509 *)ASN1_dup((int (*)())i2d_X509, | ||
125 | (char *(*)())d2i_X509,(char *)x509)); | ||
126 | } | ||
127 | |||
128 | X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex) | ||
129 | { | ||
130 | return((X509_EXTENSION *)ASN1_dup( | ||
131 | (int (*)())i2d_X509_EXTENSION, | ||
132 | (char *(*)())d2i_X509_EXTENSION,(char *)ex)); | ||
133 | } | ||
134 | |||
135 | #ifndef NO_FP_API | ||
136 | X509 *d2i_X509_fp(FILE *fp, X509 **x509) | 117 | X509 *d2i_X509_fp(FILE *fp, X509 **x509) |
137 | { | 118 | { |
138 | return((X509 *)ASN1_d2i_fp((char *(*)())X509_new, | 119 | return ASN1_item_d2i_fp(ASN1_ITEM_rptr(X509), fp, x509); |
139 | (char *(*)())d2i_X509, (fp),(unsigned char **)(x509))); | ||
140 | } | 120 | } |
141 | 121 | ||
142 | int i2d_X509_fp(FILE *fp, X509 *x509) | 122 | int i2d_X509_fp(FILE *fp, X509 *x509) |
143 | { | 123 | { |
144 | return(ASN1_i2d_fp(i2d_X509,fp,(unsigned char *)x509)); | 124 | return ASN1_item_i2d_fp(ASN1_ITEM_rptr(X509), fp, x509); |
145 | } | 125 | } |
146 | #endif | 126 | #endif |
147 | 127 | ||
148 | X509 *d2i_X509_bio(BIO *bp, X509 **x509) | 128 | X509 *d2i_X509_bio(BIO *bp, X509 **x509) |
149 | { | 129 | { |
150 | return((X509 *)ASN1_d2i_bio((char *(*)())X509_new, | 130 | return ASN1_item_d2i_bio(ASN1_ITEM_rptr(X509), bp, x509); |
151 | (char *(*)())d2i_X509, (bp),(unsigned char **)(x509))); | ||
152 | } | 131 | } |
153 | 132 | ||
154 | int i2d_X509_bio(BIO *bp, X509 *x509) | 133 | int i2d_X509_bio(BIO *bp, X509 *x509) |
155 | { | 134 | { |
156 | return(ASN1_i2d_bio(i2d_X509,bp,(unsigned char *)x509)); | 135 | return ASN1_item_i2d_bio(ASN1_ITEM_rptr(X509), bp, x509); |
157 | } | ||
158 | |||
159 | X509_CRL *X509_CRL_dup(X509_CRL *crl) | ||
160 | { | ||
161 | return((X509_CRL *)ASN1_dup((int (*)())i2d_X509_CRL, | ||
162 | (char *(*)())d2i_X509_CRL,(char *)crl)); | ||
163 | } | 136 | } |
164 | 137 | ||
165 | #ifndef NO_FP_API | 138 | #ifndef OPENSSL_NO_FP_API |
166 | X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl) | 139 | X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl) |
167 | { | 140 | { |
168 | return((X509_CRL *)ASN1_d2i_fp((char *(*)()) | 141 | return ASN1_item_d2i_fp(ASN1_ITEM_rptr(X509_CRL), fp, crl); |
169 | X509_CRL_new,(char *(*)())d2i_X509_CRL, (fp), | ||
170 | (unsigned char **)(crl))); | ||
171 | } | 142 | } |
172 | 143 | ||
173 | int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl) | 144 | int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl) |
174 | { | 145 | { |
175 | return(ASN1_i2d_fp(i2d_X509_CRL,fp,(unsigned char *)crl)); | 146 | return ASN1_item_i2d_fp(ASN1_ITEM_rptr(X509_CRL), fp, crl); |
176 | } | 147 | } |
177 | #endif | 148 | #endif |
178 | 149 | ||
179 | X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl) | 150 | X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl) |
180 | { | 151 | { |
181 | return((X509_CRL *)ASN1_d2i_bio((char *(*)()) | 152 | return ASN1_item_d2i_bio(ASN1_ITEM_rptr(X509_CRL), bp, crl); |
182 | X509_CRL_new,(char *(*)())d2i_X509_CRL, (bp), | ||
183 | (unsigned char **)(crl))); | ||
184 | } | 153 | } |
185 | 154 | ||
186 | int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl) | 155 | int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl) |
187 | { | 156 | { |
188 | return(ASN1_i2d_bio(i2d_X509_CRL,bp,(unsigned char *)crl)); | 157 | return ASN1_item_i2d_bio(ASN1_ITEM_rptr(X509_CRL), bp, crl); |
189 | } | ||
190 | |||
191 | PKCS7 *PKCS7_dup(PKCS7 *p7) | ||
192 | { | ||
193 | return((PKCS7 *)ASN1_dup((int (*)())i2d_PKCS7, | ||
194 | (char *(*)())d2i_PKCS7,(char *)p7)); | ||
195 | } | 158 | } |
196 | 159 | ||
197 | #ifndef NO_FP_API | 160 | #ifndef OPENSSL_NO_FP_API |
198 | PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7) | 161 | PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7) |
199 | { | 162 | { |
200 | return((PKCS7 *)ASN1_d2i_fp((char *(*)()) | 163 | return ASN1_item_d2i_fp(ASN1_ITEM_rptr(PKCS7), fp, p7); |
201 | PKCS7_new,(char *(*)())d2i_PKCS7, (fp), | ||
202 | (unsigned char **)(p7))); | ||
203 | } | 164 | } |
204 | 165 | ||
205 | int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7) | 166 | int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7) |
206 | { | 167 | { |
207 | return(ASN1_i2d_fp(i2d_PKCS7,fp,(unsigned char *)p7)); | 168 | return ASN1_item_i2d_fp(ASN1_ITEM_rptr(PKCS7), fp, p7); |
208 | } | 169 | } |
209 | #endif | 170 | #endif |
210 | 171 | ||
211 | PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7) | 172 | PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7) |
212 | { | 173 | { |
213 | return((PKCS7 *)ASN1_d2i_bio((char *(*)()) | 174 | return ASN1_item_d2i_bio(ASN1_ITEM_rptr(PKCS7), bp, p7); |
214 | PKCS7_new,(char *(*)())d2i_PKCS7, (bp), | ||
215 | (unsigned char **)(p7))); | ||
216 | } | 175 | } |
217 | 176 | ||
218 | int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7) | 177 | int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7) |
219 | { | 178 | { |
220 | return(ASN1_i2d_bio(i2d_PKCS7,bp,(unsigned char *)p7)); | 179 | return ASN1_item_i2d_bio(ASN1_ITEM_rptr(PKCS7), bp, p7); |
221 | } | 180 | } |
222 | 181 | ||
223 | X509_REQ *X509_REQ_dup(X509_REQ *req) | 182 | #ifndef OPENSSL_NO_FP_API |
224 | { | ||
225 | return((X509_REQ *)ASN1_dup((int (*)())i2d_X509_REQ, | ||
226 | (char *(*)())d2i_X509_REQ,(char *)req)); | ||
227 | } | ||
228 | |||
229 | #ifndef NO_FP_API | ||
230 | X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req) | 183 | X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req) |
231 | { | 184 | { |
232 | return((X509_REQ *)ASN1_d2i_fp((char *(*)()) | 185 | return ASN1_item_d2i_fp(ASN1_ITEM_rptr(X509_REQ), fp, req); |
233 | X509_REQ_new, (char *(*)())d2i_X509_REQ, (fp), | ||
234 | (unsigned char **)(req))); | ||
235 | } | 186 | } |
236 | 187 | ||
237 | int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req) | 188 | int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req) |
238 | { | 189 | { |
239 | return(ASN1_i2d_fp(i2d_X509_REQ,fp,(unsigned char *)req)); | 190 | return ASN1_item_i2d_fp(ASN1_ITEM_rptr(X509_REQ), fp, req); |
240 | } | 191 | } |
241 | #endif | 192 | #endif |
242 | 193 | ||
243 | X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req) | 194 | X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req) |
244 | { | 195 | { |
245 | return((X509_REQ *)ASN1_d2i_bio((char *(*)()) | 196 | return ASN1_item_d2i_bio(ASN1_ITEM_rptr(X509_REQ), bp, req); |
246 | X509_REQ_new, (char *(*)())d2i_X509_REQ, (bp), | ||
247 | (unsigned char **)(req))); | ||
248 | } | 197 | } |
249 | 198 | ||
250 | int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req) | 199 | int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req) |
251 | { | 200 | { |
252 | return(ASN1_i2d_bio(i2d_X509_REQ,bp,(unsigned char *)req)); | 201 | return ASN1_item_i2d_bio(ASN1_ITEM_rptr(X509_REQ), bp, req); |
253 | } | ||
254 | |||
255 | #ifndef NO_RSA | ||
256 | RSA *RSAPublicKey_dup(RSA *rsa) | ||
257 | { | ||
258 | return((RSA *)ASN1_dup((int (*)())i2d_RSAPublicKey, | ||
259 | (char *(*)())d2i_RSAPublicKey,(char *)rsa)); | ||
260 | } | 202 | } |
261 | 203 | ||
262 | RSA *RSAPrivateKey_dup(RSA *rsa) | 204 | #ifndef OPENSSL_NO_RSA |
263 | { | ||
264 | return((RSA *)ASN1_dup((int (*)())i2d_RSAPrivateKey, | ||
265 | (char *(*)())d2i_RSAPrivateKey,(char *)rsa)); | ||
266 | } | ||
267 | 205 | ||
268 | #ifndef NO_FP_API | 206 | #ifndef OPENSSL_NO_FP_API |
269 | RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa) | 207 | RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa) |
270 | { | 208 | { |
271 | return((RSA *)ASN1_d2i_fp((char *(*)()) | 209 | return ASN1_item_d2i_fp(ASN1_ITEM_rptr(RSAPrivateKey), fp, rsa); |
272 | RSA_new,(char *(*)())d2i_RSAPrivateKey, (fp), | ||
273 | (unsigned char **)(rsa))); | ||
274 | } | 210 | } |
275 | 211 | ||
276 | int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa) | 212 | int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa) |
277 | { | 213 | { |
278 | return(ASN1_i2d_fp(i2d_RSAPrivateKey,fp,(unsigned char *)rsa)); | 214 | return ASN1_item_i2d_fp(ASN1_ITEM_rptr(RSAPrivateKey), fp, rsa); |
279 | } | 215 | } |
280 | 216 | ||
281 | RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa) | 217 | RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa) |
282 | { | 218 | { |
283 | return((RSA *)ASN1_d2i_fp((char *(*)()) | 219 | return ASN1_item_d2i_fp(ASN1_ITEM_rptr(RSAPublicKey), fp, rsa); |
284 | RSA_new,(char *(*)())d2i_RSAPublicKey, (fp), | ||
285 | (unsigned char **)(rsa))); | ||
286 | } | 220 | } |
287 | 221 | ||
222 | |||
288 | RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa) | 223 | RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa) |
289 | { | 224 | { |
290 | return((RSA *)ASN1_d2i_fp((char *(*)()) | 225 | return((RSA *)ASN1_d2i_fp((char *(*)()) |
@@ -294,7 +229,7 @@ RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa) | |||
294 | 229 | ||
295 | int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa) | 230 | int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa) |
296 | { | 231 | { |
297 | return(ASN1_i2d_fp(i2d_RSAPublicKey,fp,(unsigned char *)rsa)); | 232 | return ASN1_item_i2d_fp(ASN1_ITEM_rptr(RSAPublicKey), fp, rsa); |
298 | } | 233 | } |
299 | 234 | ||
300 | int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa) | 235 | int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa) |
@@ -305,23 +240,20 @@ int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa) | |||
305 | 240 | ||
306 | RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa) | 241 | RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa) |
307 | { | 242 | { |
308 | return((RSA *)ASN1_d2i_bio((char *(*)()) | 243 | return ASN1_item_d2i_bio(ASN1_ITEM_rptr(RSAPrivateKey), bp, rsa); |
309 | RSA_new,(char *(*)())d2i_RSAPrivateKey, (bp), | ||
310 | (unsigned char **)(rsa))); | ||
311 | } | 244 | } |
312 | 245 | ||
313 | int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa) | 246 | int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa) |
314 | { | 247 | { |
315 | return(ASN1_i2d_bio(i2d_RSAPrivateKey,bp,(unsigned char *)rsa)); | 248 | return ASN1_item_i2d_bio(ASN1_ITEM_rptr(RSAPrivateKey), bp, rsa); |
316 | } | 249 | } |
317 | 250 | ||
318 | RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa) | 251 | RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa) |
319 | { | 252 | { |
320 | return((RSA *)ASN1_d2i_bio((char *(*)()) | 253 | return ASN1_item_d2i_bio(ASN1_ITEM_rptr(RSAPublicKey), bp, rsa); |
321 | RSA_new,(char *(*)())d2i_RSAPublicKey, (bp), | ||
322 | (unsigned char **)(rsa))); | ||
323 | } | 254 | } |
324 | 255 | ||
256 | |||
325 | RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa) | 257 | RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa) |
326 | { | 258 | { |
327 | return((RSA *)ASN1_d2i_bio((char *(*)()) | 259 | return((RSA *)ASN1_d2i_bio((char *(*)()) |
@@ -331,7 +263,7 @@ RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa) | |||
331 | 263 | ||
332 | int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa) | 264 | int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa) |
333 | { | 265 | { |
334 | return(ASN1_i2d_bio(i2d_RSAPublicKey,bp,(unsigned char *)rsa)); | 266 | return ASN1_item_i2d_bio(ASN1_ITEM_rptr(RSAPublicKey), bp, rsa); |
335 | } | 267 | } |
336 | 268 | ||
337 | int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa) | 269 | int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa) |
@@ -340,8 +272,8 @@ int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa) | |||
340 | } | 272 | } |
341 | #endif | 273 | #endif |
342 | 274 | ||
343 | #ifndef NO_DSA | 275 | #ifndef OPENSSL_NO_DSA |
344 | #ifndef NO_FP_API | 276 | #ifndef OPENSSL_NO_FP_API |
345 | DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa) | 277 | DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa) |
346 | { | 278 | { |
347 | return((DSA *)ASN1_d2i_fp((char *(*)()) | 279 | return((DSA *)ASN1_d2i_fp((char *(*)()) |
@@ -393,57 +325,48 @@ int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa) | |||
393 | 325 | ||
394 | #endif | 326 | #endif |
395 | 327 | ||
396 | X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn) | 328 | int X509_pubkey_digest(const X509 *data, const EVP_MD *type, unsigned char *md, |
397 | { | 329 | unsigned int *len) |
398 | return((X509_ALGOR *)ASN1_dup((int (*)())i2d_X509_ALGOR, | ||
399 | (char *(*)())d2i_X509_ALGOR,(char *)xn)); | ||
400 | } | ||
401 | |||
402 | X509_NAME *X509_NAME_dup(X509_NAME *xn) | ||
403 | { | ||
404 | return((X509_NAME *)ASN1_dup((int (*)())i2d_X509_NAME, | ||
405 | (char *(*)())d2i_X509_NAME,(char *)xn)); | ||
406 | } | ||
407 | |||
408 | X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne) | ||
409 | { | 330 | { |
410 | return((X509_NAME_ENTRY *)ASN1_dup((int (*)())i2d_X509_NAME_ENTRY, | 331 | ASN1_BIT_STRING *key; |
411 | (char *(*)())d2i_X509_NAME_ENTRY,(char *)ne)); | 332 | key = X509_get0_pubkey_bitstr(data); |
333 | if(!key) return 0; | ||
334 | return EVP_Digest(key->data, key->length, md, len, type, NULL); | ||
412 | } | 335 | } |
413 | 336 | ||
414 | int X509_digest(const X509 *data, const EVP_MD *type, unsigned char *md, | 337 | int X509_digest(const X509 *data, const EVP_MD *type, unsigned char *md, |
415 | unsigned int *len) | 338 | unsigned int *len) |
416 | { | 339 | { |
417 | return(ASN1_digest((int (*)())i2d_X509,type,(char *)data,md,len)); | 340 | return(ASN1_item_digest(ASN1_ITEM_rptr(X509),type,(char *)data,md,len)); |
418 | } | 341 | } |
419 | 342 | ||
420 | int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, unsigned char *md, | 343 | int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, unsigned char *md, |
421 | unsigned int *len) | 344 | unsigned int *len) |
422 | { | 345 | { |
423 | return(ASN1_digest((int (*)())i2d_X509_CRL,type,(char *)data,md,len)); | 346 | return(ASN1_item_digest(ASN1_ITEM_rptr(X509_CRL),type,(char *)data,md,len)); |
424 | } | 347 | } |
425 | 348 | ||
426 | int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, unsigned char *md, | 349 | int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, unsigned char *md, |
427 | unsigned int *len) | 350 | unsigned int *len) |
428 | { | 351 | { |
429 | return(ASN1_digest((int (*)())i2d_X509_REQ,type,(char *)data,md,len)); | 352 | return(ASN1_item_digest(ASN1_ITEM_rptr(X509_REQ),type,(char *)data,md,len)); |
430 | } | 353 | } |
431 | 354 | ||
432 | int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, unsigned char *md, | 355 | int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, unsigned char *md, |
433 | unsigned int *len) | 356 | unsigned int *len) |
434 | { | 357 | { |
435 | return(ASN1_digest((int (*)())i2d_X509_NAME,type,(char *)data,md,len)); | 358 | return(ASN1_item_digest(ASN1_ITEM_rptr(X509_NAME),type,(char *)data,md,len)); |
436 | } | 359 | } |
437 | 360 | ||
438 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, const EVP_MD *type, | 361 | int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, const EVP_MD *type, |
439 | unsigned char *md, unsigned int *len) | 362 | unsigned char *md, unsigned int *len) |
440 | { | 363 | { |
441 | return(ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type, | 364 | return(ASN1_item_digest(ASN1_ITEM_rptr(PKCS7_ISSUER_AND_SERIAL),type, |
442 | (char *)data,md,len)); | 365 | (char *)data,md,len)); |
443 | } | 366 | } |
444 | 367 | ||
445 | 368 | ||
446 | #ifndef NO_FP_API | 369 | #ifndef OPENSSL_NO_FP_API |
447 | X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8) | 370 | X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8) |
448 | { | 371 | { |
449 | return((X509_SIG *)ASN1_d2i_fp((char *(*)())X509_SIG_new, | 372 | return((X509_SIG *)ASN1_d2i_fp((char *(*)())X509_SIG_new, |
@@ -467,7 +390,7 @@ int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8) | |||
467 | return(ASN1_i2d_bio(i2d_X509_SIG,bp,(unsigned char *)p8)); | 390 | return(ASN1_i2d_bio(i2d_X509_SIG,bp,(unsigned char *)p8)); |
468 | } | 391 | } |
469 | 392 | ||
470 | #ifndef NO_FP_API | 393 | #ifndef OPENSSL_NO_FP_API |
471 | PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, | 394 | PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, |
472 | PKCS8_PRIV_KEY_INFO **p8inf) | 395 | PKCS8_PRIV_KEY_INFO **p8inf) |
473 | { | 396 | { |