59 #ifndef HEADER_PKCS12_H
60 #define HEADER_PKCS12_H
62 #include <openssl/bio.h>
63 #include <openssl/x509.h>
69 #define PKCS12_KEY_ID 1
70 #define PKCS12_IV_ID 2
71 #define PKCS12_MAC_ID 3
74 #ifndef PKCS12_DEFAULT_ITER
75 #define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER
78 #define PKCS12_MAC_KEY_LENGTH 20
80 #define PKCS12_SALT_LEN 8
87 #define PKCS12_key_gen PKCS12_key_gen_uni
88 #define PKCS12_add_friendlyname PKCS12_add_friendlyname_uni
90 #define PKCS12_key_gen PKCS12_key_gen_asc
91 #define PKCS12_add_friendlyname PKCS12_add_friendlyname_asc
140 #define PKCS12_ERROR 0
145 #define M_PKCS12_x5092certbag PKCS12_x5092certbag
146 #define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag
148 #define M_PKCS12_certbag2x509 PKCS12_certbag2x509
149 #define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl
151 #define M_PKCS12_unpack_p7data PKCS12_unpack_p7data
152 #define M_PKCS12_pack_authsafes PKCS12_pack_authsafes
153 #define M_PKCS12_unpack_authsafes PKCS12_unpack_authsafes
154 #define M_PKCS12_unpack_p7encdata PKCS12_unpack_p7encdata
156 #define M_PKCS12_decrypt_skey PKCS12_decrypt_skey
157 #define M_PKCS8_decrypt PKCS8_decrypt
159 #define M_PKCS12_bag_type(bg) OBJ_obj2nid((bg)->type)
160 #define M_PKCS12_cert_bag_type(bg) OBJ_obj2nid((bg)->value.bag->type)
161 #define M_PKCS12_crl_bag_type M_PKCS12_cert_bag_type
163 #define PKCS12_get_attr(bag, attr_nid) \
164 PKCS12_get_attr_gen(bag->attrib, attr_nid)
166 #define PKCS8_get_attr(p8, attr_nid) \
167 PKCS12_get_attr_gen(p8->attributes, attr_nid)
169 #define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0)
184 const char *pass,
int passlen,
185 unsigned char *salt,
int saltlen,
int iter,
187 PKCS12_SAFEBAG *PKCS12_MAKE_SHKEYBAG(
int pbe_nid,
const char *pass,
188 int passlen,
unsigned char *salt,
189 int saltlen,
int iter,
193 PKCS7 *PKCS12_pack_p7encdata(
int pbe_nid,
const char *pass,
int passlen,
194 unsigned char *salt,
int saltlen,
int iter,
201 int PKCS12_add_localkeyid(
PKCS12_SAFEBAG *bag,
unsigned char *name,
int namelen);
202 int PKCS12_add_friendlyname_asc(
PKCS12_SAFEBAG *bag,
const char *name,
206 int PKCS12_add_friendlyname_uni(
PKCS12_SAFEBAG *bag,
const unsigned char *name,
211 unsigned char *PKCS12_pbe_crypt(
X509_ALGOR *algor,
const char *pass,
212 int passlen,
unsigned char *in,
int inlen,
213 unsigned char **data,
int *datalen,
int en_de);
217 const char *pass,
int passlen,
218 void *obj,
int zbuf);
219 PKCS12 *PKCS12_init(
int mode);
220 int PKCS12_key_gen_asc(
const char *pass,
int passlen,
unsigned char *salt,
221 int saltlen,
int id,
int iter,
int n,
222 unsigned char *out,
const EVP_MD *md_type);
223 int PKCS12_key_gen_uni(
unsigned char *pass,
int passlen,
unsigned char *salt,
int saltlen,
int id,
int iter,
int n,
unsigned char *out,
const EVP_MD *md_type);
224 int PKCS12_PBE_keyivgen(
EVP_CIPHER_CTX *ctx,
const char *pass,
int passlen,
227 int PKCS12_gen_mac(
PKCS12 *p12,
const char *pass,
int passlen,
228 unsigned char *mac,
unsigned int *maclen);
229 int PKCS12_verify_mac(
PKCS12 *p12,
const char *pass,
int passlen);
230 int PKCS12_set_mac(
PKCS12 *p12,
const char *pass,
int passlen,
231 unsigned char *salt,
int saltlen,
int iter,
233 int PKCS12_setup_mac(
PKCS12 *p12,
int iter,
unsigned char *salt,
234 int saltlen,
const EVP_MD *md_type);
235 unsigned char *asc2uni(
const char *asc,
int asclen,
unsigned char **uni,
int *unilen);
236 char *uni2asc(
unsigned char *uni,
int unilen);
238 DECLARE_ASN1_FUNCTIONS(
PKCS12)
243 DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS)
244 DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES)
246 void PKCS12_PBE_add(
void);
250 STACK_OF(
X509) *ca,
int nid_key,
int nid_cert,
int iter,
251 int mac_iter,
int keytype);
255 int key_usage,
int iter,
256 int key_nid,
char *pass);
258 int safe_nid,
int iter,
char *pass);
261 int i2d_PKCS12_bio(
BIO *bp,
PKCS12 *p12);
262 int i2d_PKCS12_fp(FILE *fp,
PKCS12 *p12);
265 int PKCS12_newpass(
PKCS12 *p12,
char *oldpass,
char *newpass);
271 void ERR_load_PKCS12_strings(
void);
276 #define PKCS12_F_PARSE_BAG 129
277 #define PKCS12_F_PARSE_BAGS 103
278 #define PKCS12_F_PKCS12_ADD_FRIENDLYNAME 100
279 #define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_ASC 127
280 #define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI 102
281 #define PKCS12_F_PKCS12_ADD_LOCALKEYID 104
282 #define PKCS12_F_PKCS12_CREATE 105
283 #define PKCS12_F_PKCS12_GEN_MAC 107
284 #define PKCS12_F_PKCS12_INIT 109
285 #define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106
286 #define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108
287 #define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117
288 #define PKCS12_F_PKCS12_KEY_GEN_ASC 110
289 #define PKCS12_F_PKCS12_KEY_GEN_UNI 111
290 #define PKCS12_F_PKCS12_MAKE_KEYBAG 112
291 #define PKCS12_F_PKCS12_MAKE_SHKEYBAG 113
292 #define PKCS12_F_PKCS12_NEWPASS 128
293 #define PKCS12_F_PKCS12_PACK_P7DATA 114
294 #define PKCS12_F_PKCS12_PACK_P7ENCDATA 115
295 #define PKCS12_F_PKCS12_PARSE 118
296 #define PKCS12_F_PKCS12_PBE_CRYPT 119
297 #define PKCS12_F_PKCS12_PBE_KEYIVGEN 120
298 #define PKCS12_F_PKCS12_SETUP_MAC 122
299 #define PKCS12_F_PKCS12_SET_MAC 123
300 #define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130
301 #define PKCS12_F_PKCS12_UNPACK_P7DATA 131
302 #define PKCS12_F_PKCS12_VERIFY_MAC 126
303 #define PKCS12_F_PKCS8_ADD_KEYUSAGE 124
304 #define PKCS12_F_PKCS8_ENCRYPT 125
307 #define PKCS12_R_CANT_PACK_STRUCTURE 100
308 #define PKCS12_R_CONTENT_TYPE_NOT_DATA 121
309 #define PKCS12_R_DECODE_ERROR 101
310 #define PKCS12_R_ENCODE_ERROR 102
311 #define PKCS12_R_ENCRYPT_ERROR 103
312 #define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120
313 #define PKCS12_R_INVALID_NULL_ARGUMENT 104
314 #define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105
315 #define PKCS12_R_IV_GEN_ERROR 106
316 #define PKCS12_R_KEY_GEN_ERROR 107
317 #define PKCS12_R_MAC_ABSENT 108
318 #define PKCS12_R_MAC_GENERATION_ERROR 109
319 #define PKCS12_R_MAC_SETUP_ERROR 110
320 #define PKCS12_R_MAC_STRING_SET_ERROR 111
321 #define PKCS12_R_MAC_VERIFY_ERROR 112
322 #define PKCS12_R_MAC_VERIFY_FAILURE 113
323 #define PKCS12_R_PARSE_ERROR 114
324 #define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115
325 #define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116
326 #define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117
327 #define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118
328 #define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119
STACK_OF(X509_NAME)
Definition: ssl_cert.c:554