summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/pkcs12/p12_utl.c
diff options
context:
space:
mode:
authorbeck <>2002-05-15 02:29:21 +0000
committerbeck <>2002-05-15 02:29:21 +0000
commitb64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9 (patch)
treefa27cf82a1250b64ed3bf5f4a18c7354d470bbcc /src/lib/libcrypto/pkcs12/p12_utl.c
parente471e1ea98d673597b182ea85f29e30c97cd08b5 (diff)
downloadopenbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.gz
openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.tar.bz2
openbsd-b64270d1e45fe7f3241e4c9b6ce60d5ac89bc2e9.zip
OpenSSL 0.9.7 stable 2002 05 08 merge
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_utl.c')
-rw-r--r--src/lib/libcrypto/pkcs12/p12_utl.c40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_utl.c b/src/lib/libcrypto/pkcs12/p12_utl.c
index 2f1d1e534f..243ec76be9 100644
--- a/src/lib/libcrypto/pkcs12/p12_utl.c
+++ b/src/lib/libcrypto/pkcs12/p12_utl.c
@@ -97,26 +97,50 @@ char *uni2asc(unsigned char *uni, int unilen)
97 97
98int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12) 98int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12)
99{ 99{
100 return ASN1_i2d_bio((int(*)())i2d_PKCS12, bp, (unsigned char *)p12); 100 return ASN1_item_i2d_bio(ASN1_ITEM_rptr(PKCS12), bp, p12);
101} 101}
102 102
103#ifndef NO_FP_API 103#ifndef OPENSSL_NO_FP_API
104int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12) 104int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12)
105{ 105{
106 return ASN1_i2d_fp((int(*)())i2d_PKCS12, fp, (unsigned char *)p12); 106 return ASN1_item_i2d_fp(ASN1_ITEM_rptr(PKCS12), fp, p12);
107} 107}
108#endif 108#endif
109 109
110PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12) 110PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12)
111{ 111{
112 return (PKCS12 *)ASN1_d2i_bio((char *(*)())PKCS12_new, 112 return ASN1_item_d2i_bio(ASN1_ITEM_rptr(PKCS12), bp, p12);
113 (char *(*)())d2i_PKCS12, bp, (unsigned char **)p12);
114} 113}
115#ifndef NO_FP_API 114#ifndef OPENSSL_NO_FP_API
116PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12) 115PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12)
117{ 116{
118 return (PKCS12 *)ASN1_d2i_fp((char *(*)())PKCS12_new, 117 return ASN1_item_d2i_fp(ASN1_ITEM_rptr(PKCS12), fp, p12);
119 (char *(*)())d2i_PKCS12, fp, (unsigned char **)(p12));
120} 118}
121#endif 119#endif
122 120
121PKCS12_SAFEBAG *PKCS12_x5092certbag(X509 *x509)
122{
123 return PKCS12_item_pack_safebag(x509, ASN1_ITEM_rptr(X509),
124 NID_x509Certificate, NID_certBag);
125}
126
127PKCS12_SAFEBAG *PKCS12_x509crl2certbag(X509_CRL *crl)
128{
129 return PKCS12_item_pack_safebag(crl, ASN1_ITEM_rptr(X509_CRL),
130 NID_x509Crl, NID_crlBag);
131}
132
133X509 *PKCS12_certbag2x509(PKCS12_SAFEBAG *bag)
134{
135 if(M_PKCS12_bag_type(bag) != NID_certBag) return NULL;
136 if(M_PKCS12_cert_bag_type(bag) != NID_x509Certificate) return NULL;
137 return ASN1_item_unpack(bag->value.bag->value.octet, ASN1_ITEM_rptr(X509));
138}
139
140X509_CRL *PKCS12_certbag2x509crl(PKCS12_SAFEBAG *bag)
141{
142 if(M_PKCS12_bag_type(bag) != NID_crlBag) return NULL;
143 if(M_PKCS12_cert_bag_type(bag) != NID_x509Crl) return NULL;
144 return ASN1_item_unpack(bag->value.bag->value.octet,
145 ASN1_ITEM_rptr(X509_CRL));
146}