diff options
Diffstat (limited to 'src/lib/libssl/src/crypto/pkcs12/p12_utl.c')
-rw-r--r-- | src/lib/libssl/src/crypto/pkcs12/p12_utl.c | 40 |
1 files changed, 32 insertions, 8 deletions
diff --git a/src/lib/libssl/src/crypto/pkcs12/p12_utl.c b/src/lib/libssl/src/crypto/pkcs12/p12_utl.c index 2f1d1e534f..243ec76be9 100644 --- a/src/lib/libssl/src/crypto/pkcs12/p12_utl.c +++ b/src/lib/libssl/src/crypto/pkcs12/p12_utl.c | |||
@@ -97,26 +97,50 @@ char *uni2asc(unsigned char *uni, int unilen) | |||
97 | 97 | ||
98 | int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12) | 98 | int 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 |
104 | int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12) | 104 | int 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 | ||
110 | PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12) | 110 | PKCS12 *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 |
116 | PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12) | 115 | PKCS12 *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 | ||
121 | PKCS12_SAFEBAG *PKCS12_x5092certbag(X509 *x509) | ||
122 | { | ||
123 | return PKCS12_item_pack_safebag(x509, ASN1_ITEM_rptr(X509), | ||
124 | NID_x509Certificate, NID_certBag); | ||
125 | } | ||
126 | |||
127 | PKCS12_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 | |||
133 | X509 *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 | |||
140 | X509_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 | } | ||