diff options
author | jsing <> | 2016-09-04 15:53:03 +0000 |
---|---|---|
committer | jsing <> | 2016-09-04 15:53:03 +0000 |
commit | 04eb134ce1ed30093ff08d9ef481d7de69068a52 (patch) | |
tree | 6b84449056c3649980487f20cff5536ddd248a74 /src | |
parent | 20323935e1006deec963ad00e5d00972d7ade3f1 (diff) | |
download | openbsd-04eb134ce1ed30093ff08d9ef481d7de69068a52.tar.gz openbsd-04eb134ce1ed30093ff08d9ef481d7de69068a52.tar.bz2 openbsd-04eb134ce1ed30093ff08d9ef481d7de69068a52.zip |
Expand IMPLEMENT_PEM macros.
No change in generated assembly.
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/pem/pem_all.c | 422 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_pk8.c | 61 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_x509.c | 31 | ||||
-rw-r--r-- | src/lib/libcrypto/pem/pem_xaux.c | 61 |
4 files changed, 545 insertions, 30 deletions
diff --git a/src/lib/libcrypto/pem/pem_all.c b/src/lib/libcrypto/pem/pem_all.c index 7df917b01c..befa37c654 100644 --- a/src/lib/libcrypto/pem/pem_all.c +++ b/src/lib/libcrypto/pem/pem_all.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_all.c,v 1.15 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pem_all.c,v 1.16 2016/09/04 15:53:03 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -140,16 +140,136 @@ static DSA *pkey_get_dsa(EVP_PKEY *key, DSA **dsa); | |||
140 | static EC_KEY *pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey); | 140 | static EC_KEY *pkey_get_eckey(EVP_PKEY *key, EC_KEY **eckey); |
141 | #endif | 141 | #endif |
142 | 142 | ||
143 | IMPLEMENT_PEM_rw(X509_REQ, X509_REQ, PEM_STRING_X509_REQ, X509_REQ) | ||
144 | 143 | ||
145 | IMPLEMENT_PEM_write(X509_REQ_NEW, X509_REQ, PEM_STRING_X509_REQ_OLD, X509_REQ) | 144 | X509_REQ * |
145 | PEM_read_bio_X509_REQ(BIO *bp, X509_REQ **x, pem_password_cb *cb, void *u) | ||
146 | { | ||
147 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_REQ, PEM_STRING_X509_REQ, bp, | ||
148 | (void **)x, cb, u); | ||
149 | } | ||
150 | |||
151 | X509_REQ * | ||
152 | PEM_read_X509_REQ(FILE *fp, X509_REQ **x, pem_password_cb *cb, void *u) | ||
153 | { | ||
154 | return PEM_ASN1_read((d2i_of_void *)d2i_X509_REQ, PEM_STRING_X509_REQ, fp, | ||
155 | (void **)x, cb, u); | ||
156 | } | ||
146 | 157 | ||
147 | IMPLEMENT_PEM_rw(X509_CRL, X509_CRL, PEM_STRING_X509_CRL, X509_CRL) | 158 | int |
159 | PEM_write_bio_X509_REQ(BIO *bp, X509_REQ *x) | ||
160 | { | ||
161 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_REQ, PEM_STRING_X509_REQ, bp, | ||
162 | x, NULL, NULL, 0, NULL, NULL); | ||
163 | } | ||
148 | 164 | ||
149 | IMPLEMENT_PEM_rw(PKCS7, PKCS7, PEM_STRING_PKCS7, PKCS7) | 165 | int |
166 | PEM_write_X509_REQ(FILE *fp, X509_REQ *x) | ||
167 | { | ||
168 | return PEM_ASN1_write((i2d_of_void *)i2d_X509_REQ, PEM_STRING_X509_REQ, fp, | ||
169 | x, NULL, NULL, 0, NULL, NULL); | ||
170 | } | ||
150 | 171 | ||
151 | IMPLEMENT_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE, | 172 | |
152 | PEM_STRING_X509, NETSCAPE_CERT_SEQUENCE) | 173 | int |
174 | PEM_write_bio_X509_REQ_NEW(BIO *bp, X509_REQ *x) | ||
175 | { | ||
176 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_REQ, PEM_STRING_X509_REQ_OLD, bp, | ||
177 | x, NULL, NULL, 0, NULL, NULL); | ||
178 | } | ||
179 | |||
180 | int | ||
181 | PEM_write_X509_REQ_NEW(FILE *fp, X509_REQ *x) | ||
182 | { | ||
183 | return PEM_ASN1_write((i2d_of_void *)i2d_X509_REQ, PEM_STRING_X509_REQ_OLD, fp, | ||
184 | x, NULL, NULL, 0, NULL, NULL); | ||
185 | } | ||
186 | |||
187 | |||
188 | X509_CRL * | ||
189 | PEM_read_bio_X509_CRL(BIO *bp, X509_CRL **x, pem_password_cb *cb, void *u) | ||
190 | { | ||
191 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_CRL, PEM_STRING_X509_CRL, bp, | ||
192 | (void **)x, cb, u); | ||
193 | } | ||
194 | |||
195 | X509_CRL * | ||
196 | PEM_read_X509_CRL(FILE *fp, X509_CRL **x, pem_password_cb *cb, void *u) | ||
197 | { | ||
198 | return PEM_ASN1_read((d2i_of_void *)d2i_X509_CRL, PEM_STRING_X509_CRL, fp, | ||
199 | (void **)x, cb, u); | ||
200 | } | ||
201 | |||
202 | int | ||
203 | PEM_write_bio_X509_CRL(BIO *bp, X509_CRL *x) | ||
204 | { | ||
205 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_CRL, PEM_STRING_X509_CRL, bp, | ||
206 | x, NULL, NULL, 0, NULL, NULL); | ||
207 | } | ||
208 | |||
209 | int | ||
210 | PEM_write_X509_CRL(FILE *fp, X509_CRL *x) | ||
211 | { | ||
212 | return PEM_ASN1_write((i2d_of_void *)i2d_X509_CRL, PEM_STRING_X509_CRL, fp, | ||
213 | x, NULL, NULL, 0, NULL, NULL); | ||
214 | } | ||
215 | |||
216 | |||
217 | PKCS7 * | ||
218 | PEM_read_bio_PKCS7(BIO *bp, PKCS7 **x, pem_password_cb *cb, void *u) | ||
219 | { | ||
220 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_PKCS7, PEM_STRING_PKCS7, bp, | ||
221 | (void **)x, cb, u); | ||
222 | } | ||
223 | |||
224 | PKCS7 * | ||
225 | PEM_read_PKCS7(FILE *fp, PKCS7 **x, pem_password_cb *cb, void *u) | ||
226 | { | ||
227 | return PEM_ASN1_read((d2i_of_void *)d2i_PKCS7, PEM_STRING_PKCS7, fp, | ||
228 | (void **)x, cb, u); | ||
229 | } | ||
230 | |||
231 | int | ||
232 | PEM_write_bio_PKCS7(BIO *bp, PKCS7 *x) | ||
233 | { | ||
234 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_PKCS7, PEM_STRING_PKCS7, bp, | ||
235 | x, NULL, NULL, 0, NULL, NULL); | ||
236 | } | ||
237 | |||
238 | int | ||
239 | PEM_write_PKCS7(FILE *fp, PKCS7 *x) | ||
240 | { | ||
241 | return PEM_ASN1_write((i2d_of_void *)i2d_PKCS7, PEM_STRING_PKCS7, fp, | ||
242 | x, NULL, NULL, 0, NULL, NULL); | ||
243 | } | ||
244 | |||
245 | |||
246 | NETSCAPE_CERT_SEQUENCE * | ||
247 | PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u) | ||
248 | { | ||
249 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_NETSCAPE_CERT_SEQUENCE, PEM_STRING_X509, bp, | ||
250 | (void **)x, cb, u); | ||
251 | } | ||
252 | |||
253 | NETSCAPE_CERT_SEQUENCE * | ||
254 | PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE **x, pem_password_cb *cb, void *u) | ||
255 | { | ||
256 | return PEM_ASN1_read((d2i_of_void *)d2i_NETSCAPE_CERT_SEQUENCE, PEM_STRING_X509, fp, | ||
257 | (void **)x, cb, u); | ||
258 | } | ||
259 | |||
260 | int | ||
261 | PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE *x) | ||
262 | { | ||
263 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_NETSCAPE_CERT_SEQUENCE, PEM_STRING_X509, bp, | ||
264 | x, NULL, NULL, 0, NULL, NULL); | ||
265 | } | ||
266 | |||
267 | int | ||
268 | PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE *x) | ||
269 | { | ||
270 | return PEM_ASN1_write((i2d_of_void *)i2d_NETSCAPE_CERT_SEQUENCE, PEM_STRING_X509, fp, | ||
271 | x, NULL, NULL, 0, NULL, NULL); | ||
272 | } | ||
153 | 273 | ||
154 | 274 | ||
155 | #ifndef OPENSSL_NO_RSA | 275 | #ifndef OPENSSL_NO_RSA |
@@ -200,10 +320,80 @@ PEM_read_RSAPrivateKey(FILE *fp, RSA **rsa, pem_password_cb *cb, void *u) | |||
200 | } | 320 | } |
201 | 321 | ||
202 | 322 | ||
203 | IMPLEMENT_PEM_write_cb_const(RSAPrivateKey, RSA, PEM_STRING_RSA, RSAPrivateKey) | ||
204 | 323 | ||
205 | IMPLEMENT_PEM_rw_const(RSAPublicKey, RSA, PEM_STRING_RSA_PUBLIC, RSAPublicKey) | 324 | int |
206 | IMPLEMENT_PEM_rw(RSA_PUBKEY, RSA, PEM_STRING_PUBLIC, RSA_PUBKEY) | 325 | PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, |
326 | const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, | ||
327 | void *u) | ||
328 | { | ||
329 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSAPrivateKey, PEM_STRING_RSA, bp, | ||
330 | x, enc, kstr, klen, cb, u); | ||
331 | } | ||
332 | |||
333 | int | ||
334 | PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc, | ||
335 | unsigned char *kstr, int klen, pem_password_cb *cb, void *u) | ||
336 | { | ||
337 | return PEM_ASN1_write((i2d_of_void *)i2d_RSAPrivateKey, PEM_STRING_RSA, fp, | ||
338 | x, enc, kstr, klen, cb, u); | ||
339 | } | ||
340 | |||
341 | |||
342 | RSA * | ||
343 | PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u) | ||
344 | { | ||
345 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_RSAPublicKey, PEM_STRING_RSA_PUBLIC, bp, | ||
346 | (void **)x, cb, u); | ||
347 | } | ||
348 | |||
349 | RSA * | ||
350 | PEM_read_RSAPublicKey(FILE *fp, RSA **x, pem_password_cb *cb, void *u) | ||
351 | { | ||
352 | return PEM_ASN1_read((d2i_of_void *)d2i_RSAPublicKey, PEM_STRING_RSA_PUBLIC, fp, | ||
353 | (void **)x, cb, u); | ||
354 | } | ||
355 | |||
356 | int | ||
357 | PEM_write_bio_RSAPublicKey(BIO *bp, const RSA *x) | ||
358 | { | ||
359 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSAPublicKey, PEM_STRING_RSA_PUBLIC, bp, | ||
360 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
361 | } | ||
362 | |||
363 | int | ||
364 | PEM_write_RSAPublicKey(FILE *fp, const RSA *x) | ||
365 | { | ||
366 | return PEM_ASN1_write((i2d_of_void *)i2d_RSAPublicKey, PEM_STRING_RSA_PUBLIC, fp, | ||
367 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
368 | } | ||
369 | |||
370 | RSA * | ||
371 | PEM_read_bio_RSA_PUBKEY(BIO *bp, RSA **x, pem_password_cb *cb, void *u) | ||
372 | { | ||
373 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_RSA_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
374 | (void **)x, cb, u); | ||
375 | } | ||
376 | |||
377 | RSA * | ||
378 | PEM_read_RSA_PUBKEY(FILE *fp, RSA **x, pem_password_cb *cb, void *u) | ||
379 | { | ||
380 | return PEM_ASN1_read((d2i_of_void *)d2i_RSA_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
381 | (void **)x, cb, u); | ||
382 | } | ||
383 | |||
384 | int | ||
385 | PEM_write_bio_RSA_PUBKEY(BIO *bp, RSA *x) | ||
386 | { | ||
387 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_RSA_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
388 | x, NULL, NULL, 0, NULL, NULL); | ||
389 | } | ||
390 | |||
391 | int | ||
392 | PEM_write_RSA_PUBKEY(FILE *fp, RSA *x) | ||
393 | { | ||
394 | return PEM_ASN1_write((i2d_of_void *)i2d_RSA_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
395 | x, NULL, NULL, 0, NULL, NULL); | ||
396 | } | ||
207 | 397 | ||
208 | #endif | 398 | #endif |
209 | 399 | ||
@@ -236,9 +426,52 @@ PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **dsa, pem_password_cb *cb, void *u) | |||
236 | return pkey_get_dsa(pktmp, dsa); /* will free pktmp */ | 426 | return pkey_get_dsa(pktmp, dsa); /* will free pktmp */ |
237 | } | 427 | } |
238 | 428 | ||
239 | IMPLEMENT_PEM_write_cb_const(DSAPrivateKey, DSA, PEM_STRING_DSA, DSAPrivateKey) | ||
240 | 429 | ||
241 | IMPLEMENT_PEM_rw(DSA_PUBKEY, DSA, PEM_STRING_PUBLIC, DSA_PUBKEY) | 430 | int |
431 | PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, | ||
432 | const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, | ||
433 | void *u) | ||
434 | { | ||
435 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSAPrivateKey, PEM_STRING_DSA, bp, | ||
436 | x, enc, kstr, klen, cb, u); | ||
437 | } | ||
438 | |||
439 | int | ||
440 | PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc, | ||
441 | unsigned char *kstr, int klen, pem_password_cb *cb, void *u) | ||
442 | { | ||
443 | return PEM_ASN1_write((i2d_of_void *)i2d_DSAPrivateKey, PEM_STRING_DSA, fp, | ||
444 | x, enc, kstr, klen, cb, u); | ||
445 | } | ||
446 | |||
447 | |||
448 | DSA * | ||
449 | PEM_read_bio_DSA_PUBKEY(BIO *bp, DSA **x, pem_password_cb *cb, void *u) | ||
450 | { | ||
451 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_DSA_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
452 | (void **)x, cb, u); | ||
453 | } | ||
454 | |||
455 | DSA * | ||
456 | PEM_read_DSA_PUBKEY(FILE *fp, DSA **x, pem_password_cb *cb, void *u) | ||
457 | { | ||
458 | return PEM_ASN1_read((d2i_of_void *)d2i_DSA_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
459 | (void **)x, cb, u); | ||
460 | } | ||
461 | |||
462 | int | ||
463 | PEM_write_bio_DSA_PUBKEY(BIO *bp, DSA *x) | ||
464 | { | ||
465 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSA_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
466 | x, NULL, NULL, 0, NULL, NULL); | ||
467 | } | ||
468 | |||
469 | int | ||
470 | PEM_write_DSA_PUBKEY(FILE *fp, DSA *x) | ||
471 | { | ||
472 | return PEM_ASN1_write((i2d_of_void *)i2d_DSA_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
473 | x, NULL, NULL, 0, NULL, NULL); | ||
474 | } | ||
242 | 475 | ||
243 | 476 | ||
244 | DSA * | 477 | DSA * |
@@ -251,7 +484,34 @@ PEM_read_DSAPrivateKey(FILE *fp, DSA **dsa, pem_password_cb *cb, void *u) | |||
251 | } | 484 | } |
252 | 485 | ||
253 | 486 | ||
254 | IMPLEMENT_PEM_rw_const(DSAparams, DSA, PEM_STRING_DSAPARAMS, DSAparams) | 487 | |
488 | DSA * | ||
489 | PEM_read_bio_DSAparams(BIO *bp, DSA **x, pem_password_cb *cb, void *u) | ||
490 | { | ||
491 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_DSAparams, PEM_STRING_DSAPARAMS, bp, | ||
492 | (void **)x, cb, u); | ||
493 | } | ||
494 | |||
495 | DSA * | ||
496 | PEM_read_DSAparams(FILE *fp, DSA **x, pem_password_cb *cb, void *u) | ||
497 | { | ||
498 | return PEM_ASN1_read((d2i_of_void *)d2i_DSAparams, PEM_STRING_DSAPARAMS, fp, | ||
499 | (void **)x, cb, u); | ||
500 | } | ||
501 | |||
502 | int | ||
503 | PEM_write_bio_DSAparams(BIO *bp, const DSA *x) | ||
504 | { | ||
505 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_DSAparams, PEM_STRING_DSAPARAMS, bp, | ||
506 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
507 | } | ||
508 | |||
509 | int | ||
510 | PEM_write_DSAparams(FILE *fp, const DSA *x) | ||
511 | { | ||
512 | return PEM_ASN1_write((i2d_of_void *)i2d_DSAparams, PEM_STRING_DSAPARAMS, fp, | ||
513 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
514 | } | ||
255 | 515 | ||
256 | #endif | 516 | #endif |
257 | 517 | ||
@@ -283,13 +543,81 @@ PEM_read_bio_ECPrivateKey(BIO *bp, EC_KEY **key, pem_password_cb *cb, void *u) | |||
283 | return pkey_get_eckey(pktmp, key); /* will free pktmp */ | 543 | return pkey_get_eckey(pktmp, key); /* will free pktmp */ |
284 | } | 544 | } |
285 | 545 | ||
286 | IMPLEMENT_PEM_rw_const(ECPKParameters, EC_GROUP, PEM_STRING_ECPARAMETERS, | ||
287 | ECPKParameters) | ||
288 | 546 | ||
289 | IMPLEMENT_PEM_write_cb(ECPrivateKey, EC_KEY, PEM_STRING_ECPRIVATEKEY, | 547 | EC_GROUP * |
290 | ECPrivateKey) | 548 | PEM_read_bio_ECPKParameters(BIO *bp, EC_GROUP **x, pem_password_cb *cb, void *u) |
549 | { | ||
550 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_ECPKParameters, PEM_STRING_ECPARAMETERS, bp, | ||
551 | (void **)x, cb, u); | ||
552 | } | ||
553 | |||
554 | EC_GROUP * | ||
555 | PEM_read_ECPKParameters(FILE *fp, EC_GROUP **x, pem_password_cb *cb, void *u) | ||
556 | { | ||
557 | return PEM_ASN1_read((d2i_of_void *)d2i_ECPKParameters, PEM_STRING_ECPARAMETERS, fp, | ||
558 | (void **)x, cb, u); | ||
559 | } | ||
560 | |||
561 | int | ||
562 | PEM_write_bio_ECPKParameters(BIO *bp, const EC_GROUP *x) | ||
563 | { | ||
564 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_ECPKParameters, PEM_STRING_ECPARAMETERS, bp, | ||
565 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
566 | } | ||
291 | 567 | ||
292 | IMPLEMENT_PEM_rw(EC_PUBKEY, EC_KEY, PEM_STRING_PUBLIC, EC_PUBKEY) | 568 | int |
569 | PEM_write_ECPKParameters(FILE *fp, const EC_GROUP *x) | ||
570 | { | ||
571 | return PEM_ASN1_write((i2d_of_void *)i2d_ECPKParameters, PEM_STRING_ECPARAMETERS, fp, | ||
572 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
573 | } | ||
574 | |||
575 | |||
576 | int | ||
577 | PEM_write_bio_ECPrivateKey(BIO *bp, EC_KEY *x, | ||
578 | const EVP_CIPHER *enc, unsigned char *kstr, int klen, pem_password_cb *cb, | ||
579 | void *u) | ||
580 | { | ||
581 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_ECPrivateKey, PEM_STRING_ECPRIVATEKEY, bp, | ||
582 | x, enc, kstr, klen, cb, u); | ||
583 | } | ||
584 | |||
585 | int | ||
586 | PEM_write_ECPrivateKey(FILE *fp, EC_KEY *x, const EVP_CIPHER *enc, | ||
587 | unsigned char *kstr, int klen, pem_password_cb *cb, void *u) | ||
588 | { | ||
589 | return PEM_ASN1_write((i2d_of_void *)i2d_ECPrivateKey, PEM_STRING_ECPRIVATEKEY, fp, | ||
590 | x, enc, kstr, klen, cb, u); | ||
591 | } | ||
592 | |||
593 | |||
594 | EC_KEY * | ||
595 | PEM_read_bio_EC_PUBKEY(BIO *bp, EC_KEY **x, pem_password_cb *cb, void *u) | ||
596 | { | ||
597 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_EC_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
598 | (void **)x, cb, u); | ||
599 | } | ||
600 | |||
601 | EC_KEY * | ||
602 | PEM_read_EC_PUBKEY(FILE *fp, EC_KEY **x, pem_password_cb *cb, void *u) | ||
603 | { | ||
604 | return PEM_ASN1_read((d2i_of_void *)d2i_EC_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
605 | (void **)x, cb, u); | ||
606 | } | ||
607 | |||
608 | int | ||
609 | PEM_write_bio_EC_PUBKEY(BIO *bp, EC_KEY *x) | ||
610 | { | ||
611 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_EC_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
612 | x, NULL, NULL, 0, NULL, NULL); | ||
613 | } | ||
614 | |||
615 | int | ||
616 | PEM_write_EC_PUBKEY(FILE *fp, EC_KEY *x) | ||
617 | { | ||
618 | return PEM_ASN1_write((i2d_of_void *)i2d_EC_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
619 | x, NULL, NULL, 0, NULL, NULL); | ||
620 | } | ||
293 | 621 | ||
294 | 622 | ||
295 | EC_KEY * | 623 | EC_KEY * |
@@ -306,8 +634,62 @@ PEM_read_ECPrivateKey(FILE *fp, EC_KEY **eckey, pem_password_cb *cb, void *u) | |||
306 | 634 | ||
307 | #ifndef OPENSSL_NO_DH | 635 | #ifndef OPENSSL_NO_DH |
308 | 636 | ||
309 | IMPLEMENT_PEM_rw_const(DHparams, DH, PEM_STRING_DHPARAMS, DHparams) | 637 | |
638 | DH * | ||
639 | PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u) | ||
640 | { | ||
641 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_DHparams, PEM_STRING_DHPARAMS, bp, | ||
642 | (void **)x, cb, u); | ||
643 | } | ||
644 | |||
645 | DH * | ||
646 | PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u) | ||
647 | { | ||
648 | return PEM_ASN1_read((d2i_of_void *)d2i_DHparams, PEM_STRING_DHPARAMS, fp, | ||
649 | (void **)x, cb, u); | ||
650 | } | ||
651 | |||
652 | int | ||
653 | PEM_write_bio_DHparams(BIO *bp, const DH *x) | ||
654 | { | ||
655 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_DHparams, PEM_STRING_DHPARAMS, bp, | ||
656 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
657 | } | ||
658 | |||
659 | int | ||
660 | PEM_write_DHparams(FILE *fp, const DH *x) | ||
661 | { | ||
662 | return PEM_ASN1_write((i2d_of_void *)i2d_DHparams, PEM_STRING_DHPARAMS, fp, | ||
663 | (void *)x, NULL, NULL, 0, NULL, NULL); | ||
664 | } | ||
310 | 665 | ||
311 | #endif | 666 | #endif |
312 | 667 | ||
313 | IMPLEMENT_PEM_rw(PUBKEY, EVP_PKEY, PEM_STRING_PUBLIC, PUBKEY) | 668 | |
669 | EVP_PKEY * | ||
670 | PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u) | ||
671 | { | ||
672 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
673 | (void **)x, cb, u); | ||
674 | } | ||
675 | |||
676 | EVP_PKEY * | ||
677 | PEM_read_PUBKEY(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u) | ||
678 | { | ||
679 | return PEM_ASN1_read((d2i_of_void *)d2i_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
680 | (void **)x, cb, u); | ||
681 | } | ||
682 | |||
683 | int | ||
684 | PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x) | ||
685 | { | ||
686 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_PUBKEY, PEM_STRING_PUBLIC, bp, | ||
687 | x, NULL, NULL, 0, NULL, NULL); | ||
688 | } | ||
689 | |||
690 | int | ||
691 | PEM_write_PUBKEY(FILE *fp, EVP_PKEY *x) | ||
692 | { | ||
693 | return PEM_ASN1_write((i2d_of_void *)i2d_PUBKEY, PEM_STRING_PUBLIC, fp, | ||
694 | x, NULL, NULL, 0, NULL, NULL); | ||
695 | } | ||
diff --git a/src/lib/libcrypto/pem/pem_pk8.c b/src/lib/libcrypto/pem/pem_pk8.c index d02dec1546..50aafb7655 100644 --- a/src/lib/libcrypto/pem/pem_pk8.c +++ b/src/lib/libcrypto/pem/pem_pk8.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_pk8.c,v 1.10 2015/09/10 15:56:25 jsing Exp $ */ | 1 | /* $OpenBSD: pem_pk8.c,v 1.11 2016/09/04 15:53:03 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -251,6 +251,59 @@ d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u) | |||
251 | } | 251 | } |
252 | 252 | ||
253 | 253 | ||
254 | IMPLEMENT_PEM_rw(PKCS8, X509_SIG, PEM_STRING_PKCS8, X509_SIG) | 254 | |
255 | IMPLEMENT_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO, PEM_STRING_PKCS8INF, | 255 | X509_SIG * |
256 | PKCS8_PRIV_KEY_INFO) | 256 | PEM_read_bio_PKCS8(BIO *bp, X509_SIG **x, pem_password_cb *cb, void *u) |
257 | { | ||
258 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_SIG, PEM_STRING_PKCS8, bp, | ||
259 | (void **)x, cb, u); | ||
260 | } | ||
261 | |||
262 | X509_SIG * | ||
263 | PEM_read_PKCS8(FILE *fp, X509_SIG **x, pem_password_cb *cb, void *u) | ||
264 | { | ||
265 | return PEM_ASN1_read((d2i_of_void *)d2i_X509_SIG, PEM_STRING_PKCS8, fp, | ||
266 | (void **)x, cb, u); | ||
267 | } | ||
268 | |||
269 | int | ||
270 | PEM_write_bio_PKCS8(BIO *bp, X509_SIG *x) | ||
271 | { | ||
272 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_SIG, PEM_STRING_PKCS8, bp, | ||
273 | x, NULL, NULL, 0, NULL, NULL); | ||
274 | } | ||
275 | |||
276 | int | ||
277 | PEM_write_PKCS8(FILE *fp, X509_SIG *x) | ||
278 | { | ||
279 | return PEM_ASN1_write((i2d_of_void *)i2d_X509_SIG, PEM_STRING_PKCS8, fp, | ||
280 | x, NULL, NULL, 0, NULL, NULL); | ||
281 | } | ||
282 | |||
283 | PKCS8_PRIV_KEY_INFO * | ||
284 | PEM_read_bio_PKCS8_PRIV_KEY_INFO(BIO *bp, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u) | ||
285 | { | ||
286 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_PKCS8_PRIV_KEY_INFO, PEM_STRING_PKCS8INF, bp, | ||
287 | (void **)x, cb, u); | ||
288 | } | ||
289 | |||
290 | PKCS8_PRIV_KEY_INFO * | ||
291 | PEM_read_PKCS8_PRIV_KEY_INFO(FILE *fp, PKCS8_PRIV_KEY_INFO **x, pem_password_cb *cb, void *u) | ||
292 | { | ||
293 | return PEM_ASN1_read((d2i_of_void *)d2i_PKCS8_PRIV_KEY_INFO, PEM_STRING_PKCS8INF, fp, | ||
294 | (void **)x, cb, u); | ||
295 | } | ||
296 | |||
297 | int | ||
298 | PEM_write_bio_PKCS8_PRIV_KEY_INFO(BIO *bp, PKCS8_PRIV_KEY_INFO *x) | ||
299 | { | ||
300 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_PKCS8_PRIV_KEY_INFO, PEM_STRING_PKCS8INF, bp, | ||
301 | x, NULL, NULL, 0, NULL, NULL); | ||
302 | } | ||
303 | |||
304 | int | ||
305 | PEM_write_PKCS8_PRIV_KEY_INFO(FILE *fp, PKCS8_PRIV_KEY_INFO *x) | ||
306 | { | ||
307 | return PEM_ASN1_write((i2d_of_void *)i2d_PKCS8_PRIV_KEY_INFO, PEM_STRING_PKCS8INF, fp, | ||
308 | x, NULL, NULL, 0, NULL, NULL); | ||
309 | } | ||
diff --git a/src/lib/libcrypto/pem/pem_x509.c b/src/lib/libcrypto/pem/pem_x509.c index e4b7f1c2c6..350c48ba9a 100644 --- a/src/lib/libcrypto/pem/pem_x509.c +++ b/src/lib/libcrypto/pem/pem_x509.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_x509.c,v 1.6 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pem_x509.c,v 1.7 2016/09/04 15:53:03 jsing Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -64,4 +64,31 @@ | |||
64 | #include <openssl/pkcs7.h> | 64 | #include <openssl/pkcs7.h> |
65 | #include <openssl/x509.h> | 65 | #include <openssl/x509.h> |
66 | 66 | ||
67 | IMPLEMENT_PEM_rw(X509, X509, PEM_STRING_X509, X509) | 67 | |
68 | X509 * | ||
69 | PEM_read_bio_X509(BIO *bp, X509 **x, pem_password_cb *cb, void *u) | ||
70 | { | ||
71 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509, PEM_STRING_X509, bp, | ||
72 | (void **)x, cb, u); | ||
73 | } | ||
74 | |||
75 | X509 * | ||
76 | PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u) | ||
77 | { | ||
78 | return PEM_ASN1_read((d2i_of_void *)d2i_X509, PEM_STRING_X509, fp, | ||
79 | (void **)x, cb, u); | ||
80 | } | ||
81 | |||
82 | int | ||
83 | PEM_write_bio_X509(BIO *bp, X509 *x) | ||
84 | { | ||
85 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509, PEM_STRING_X509, bp, | ||
86 | x, NULL, NULL, 0, NULL, NULL); | ||
87 | } | ||
88 | |||
89 | int | ||
90 | PEM_write_X509(FILE *fp, X509 *x) | ||
91 | { | ||
92 | return PEM_ASN1_write((i2d_of_void *)i2d_X509, PEM_STRING_X509, fp, | ||
93 | x, NULL, NULL, 0, NULL, NULL); | ||
94 | } | ||
diff --git a/src/lib/libcrypto/pem/pem_xaux.c b/src/lib/libcrypto/pem/pem_xaux.c index eb76840532..f5dfb8476c 100644 --- a/src/lib/libcrypto/pem/pem_xaux.c +++ b/src/lib/libcrypto/pem/pem_xaux.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pem_xaux.c,v 1.7 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pem_xaux.c,v 1.8 2016/09/04 15:53:03 jsing Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -64,6 +64,59 @@ | |||
64 | #include <openssl/pkcs7.h> | 64 | #include <openssl/pkcs7.h> |
65 | #include <openssl/x509.h> | 65 | #include <openssl/x509.h> |
66 | 66 | ||
67 | IMPLEMENT_PEM_rw(X509_AUX, X509, PEM_STRING_X509_TRUSTED, X509_AUX) | 67 | |
68 | IMPLEMENT_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR, PEM_STRING_X509_PAIR, | 68 | X509 * |
69 | X509_CERT_PAIR) | 69 | PEM_read_bio_X509_AUX(BIO *bp, X509 **x, pem_password_cb *cb, void *u) |
70 | { | ||
71 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_AUX, PEM_STRING_X509_TRUSTED, bp, | ||
72 | (void **)x, cb, u); | ||
73 | } | ||
74 | |||
75 | X509 * | ||
76 | PEM_read_X509_AUX(FILE *fp, X509 **x, pem_password_cb *cb, void *u) | ||
77 | { | ||
78 | return PEM_ASN1_read((d2i_of_void *)d2i_X509_AUX, PEM_STRING_X509_TRUSTED, fp, | ||
79 | (void **)x, cb, u); | ||
80 | } | ||
81 | |||
82 | int | ||
83 | PEM_write_bio_X509_AUX(BIO *bp, X509 *x) | ||
84 | { | ||
85 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_AUX, PEM_STRING_X509_TRUSTED, bp, | ||
86 | x, NULL, NULL, 0, NULL, NULL); | ||
87 | } | ||
88 | |||
89 | int | ||
90 | PEM_write_X509_AUX(FILE *fp, X509 *x) | ||
91 | { | ||
92 | return PEM_ASN1_write((i2d_of_void *)i2d_X509_AUX, PEM_STRING_X509_TRUSTED, fp, | ||
93 | x, NULL, NULL, 0, NULL, NULL); | ||
94 | } | ||
95 | |||
96 | X509_CERT_PAIR * | ||
97 | PEM_read_bio_X509_CERT_PAIR(BIO *bp, X509_CERT_PAIR **x, pem_password_cb *cb, void *u) | ||
98 | { | ||
99 | return PEM_ASN1_read_bio((d2i_of_void *)d2i_X509_CERT_PAIR, PEM_STRING_X509_PAIR, bp, | ||
100 | (void **)x, cb, u); | ||
101 | } | ||
102 | |||
103 | X509_CERT_PAIR * | ||
104 | PEM_read_X509_CERT_PAIR(FILE *fp, X509_CERT_PAIR **x, pem_password_cb *cb, void *u) | ||
105 | { | ||
106 | return PEM_ASN1_read((d2i_of_void *)d2i_X509_CERT_PAIR, PEM_STRING_X509_PAIR, fp, | ||
107 | (void **)x, cb, u); | ||
108 | } | ||
109 | |||
110 | int | ||
111 | PEM_write_bio_X509_CERT_PAIR(BIO *bp, X509_CERT_PAIR *x) | ||
112 | { | ||
113 | return PEM_ASN1_write_bio((i2d_of_void *)i2d_X509_CERT_PAIR, PEM_STRING_X509_PAIR, bp, | ||
114 | x, NULL, NULL, 0, NULL, NULL); | ||
115 | } | ||
116 | |||
117 | int | ||
118 | PEM_write_X509_CERT_PAIR(FILE *fp, X509_CERT_PAIR *x) | ||
119 | { | ||
120 | return PEM_ASN1_write((i2d_of_void *)i2d_X509_CERT_PAIR, PEM_STRING_X509_PAIR, fp, | ||
121 | x, NULL, NULL, 0, NULL, NULL); | ||
122 | } | ||