59 #ifndef HEADER_PKCS12_H
60 #define HEADER_PKCS12_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
138 #define PKCS12_ERROR 0
143 #define M_PKCS12_x5092certbag PKCS12_x5092certbag
144 #define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag
146 #define M_PKCS12_certbag2x509 PKCS12_certbag2x509
147 #define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl
149 #define M_PKCS12_unpack_p7data PKCS12_unpack_p7data
150 #define M_PKCS12_pack_authsafes PKCS12_pack_authsafes
151 #define M_PKCS12_unpack_authsafes PKCS12_unpack_authsafes
152 #define M_PKCS12_unpack_p7encdata PKCS12_unpack_p7encdata
154 #define M_PKCS12_decrypt_skey PKCS12_decrypt_skey
155 #define M_PKCS8_decrypt PKCS8_decrypt
157 #define M_PKCS12_bag_type(bg) OBJ_obj2nid((bg)->type)
158 #define M_PKCS12_cert_bag_type(bg) OBJ_obj2nid((bg)->value.bag->type)
159 #define M_PKCS12_crl_bag_type M_PKCS12_cert_bag_type
161 #define PKCS12_get_attr(bag, attr_nid) \
162 PKCS12_get_attr_gen(bag->attrib, attr_nid)
164 #define PKCS8_get_attr(p8, attr_nid) \
165 PKCS12_get_attr_gen(p8->attributes, attr_nid)
167 #define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0)
183 unsigned char *salt,
int saltlen,
int iter,
186 int passlen,
unsigned char *salt,
187 int saltlen,
int iter,
192 unsigned char *salt,
int saltlen,
int iter,
210 int passlen,
unsigned char *in,
int inlen,
211 unsigned char **
data,
int *datalen,
int en_de);
215 const char *pass,
int passlen,
216 void *
obj,
int zbuf);
219 int saltlen,
int id,
int iter,
int n,
220 unsigned char *out,
const EVP_MD *md_type);
221 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);
226 unsigned char *mac,
unsigned int *maclen);
229 unsigned char *salt,
int saltlen,
int iter,
232 int saltlen,
const EVP_MD *md_type);
233 unsigned char *
OPENSSL_asc2uni(
const char *asc,
int asclen,
unsigned char **uni,
int *unilen);
248 STACK_OF(
X509) *ca,
int nid_key,
int nid_cert,
int iter,
249 int mac_iter,
int keytype);
253 int key_usage,
int iter,
254 int key_nid,
char *pass);
256 int safe_nid,
int iter,
char *pass);
274 #define PKCS12_F_PARSE_BAG 129
275 #define PKCS12_F_PARSE_BAGS 103
276 #define PKCS12_F_PKCS12_ADD_FRIENDLYNAME 100
277 #define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_ASC 127
278 #define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI 102
279 #define PKCS12_F_PKCS12_ADD_LOCALKEYID 104
280 #define PKCS12_F_PKCS12_CREATE 105
281 #define PKCS12_F_PKCS12_GEN_MAC 107
282 #define PKCS12_F_PKCS12_INIT 109
283 #define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106
284 #define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108
285 #define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117
286 #define PKCS12_F_PKCS12_KEY_GEN_ASC 110
287 #define PKCS12_F_PKCS12_KEY_GEN_UNI 111
288 #define PKCS12_F_PKCS12_MAKE_KEYBAG 112
289 #define PKCS12_F_PKCS12_MAKE_SHKEYBAG 113
290 #define PKCS12_F_PKCS12_NEWPASS 128
291 #define PKCS12_F_PKCS12_PACK_P7DATA 114
292 #define PKCS12_F_PKCS12_PACK_P7ENCDATA 115
293 #define PKCS12_F_PKCS12_PARSE 118
294 #define PKCS12_F_PKCS12_PBE_CRYPT 119
295 #define PKCS12_F_PKCS12_PBE_KEYIVGEN 120
296 #define PKCS12_F_PKCS12_SETUP_MAC 122
297 #define PKCS12_F_PKCS12_SET_MAC 123
298 #define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130
299 #define PKCS12_F_PKCS12_UNPACK_P7DATA 131
300 #define PKCS12_F_PKCS12_VERIFY_MAC 126
301 #define PKCS12_F_PKCS8_ADD_KEYUSAGE 124
302 #define PKCS12_F_PKCS8_ENCRYPT 125
305 #define PKCS12_R_CANT_PACK_STRUCTURE 100
306 #define PKCS12_R_CONTENT_TYPE_NOT_DATA 121
307 #define PKCS12_R_DECODE_ERROR 101
308 #define PKCS12_R_ENCODE_ERROR 102
309 #define PKCS12_R_ENCRYPT_ERROR 103
310 #define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120
311 #define PKCS12_R_INVALID_NULL_ARGUMENT 104
312 #define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105
313 #define PKCS12_R_IV_GEN_ERROR 106
314 #define PKCS12_R_KEY_GEN_ERROR 107
315 #define PKCS12_R_MAC_ABSENT 108
316 #define PKCS12_R_MAC_GENERATION_ERROR 109
317 #define PKCS12_R_MAC_SETUP_ERROR 110
318 #define PKCS12_R_MAC_STRING_SET_ERROR 111
319 #define PKCS12_R_MAC_VERIFY_ERROR 112
320 #define PKCS12_R_MAC_VERIFY_FAILURE 113
321 #define PKCS12_R_PARSE_ERROR 114
322 #define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115
323 #define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116
324 #define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117
325 #define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118
326 #define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119