1#ifndef _PKCS12_UTILS_H_ 2#define _PKCS12_UTILS_H_ 3 4#include <Security/cssmtype.h> 5#include <CoreFoundation/CFString.h> 6#include <security_pkcs12/pkcs12Templates.h> 7 8#ifdef __cplusplus 9extern "C" { 10#endif 11 12/* CSSM_DATA --> uint32. Returns true if OK. */ 13bool p12DataToInt( 14 const CSSM_DATA &cdata, 15 uint32 &u); 16 17typedef enum { 18 PW_None, /* not comprehended */ 19 PW_PKCS5_v1_5, /* PKCS5 v1.5 */ 20 PW_PKCS5_v2, /* PKCS5 v2.0, not used by this module but parsed here */ 21 PW_PKCS12 /* PKCS12 */ 22} PKCS_Which; 23 24/* returns false if OID not found */ 25bool pkcsOidToParams( 26 const CSSM_OID *oid, 27 CSSM_ALGORITHMS &keyAlg, // e.g., CSSM_ALGID_DES 28 CSSM_ALGORITHMS &encrAlg, // e.g., CSSM_ALGID_3DES_3KEY_EDE 29 CSSM_ALGORITHMS &pbeHashAlg, // SHA1 or MD5 30 uint32 &keySizeInBits, 31 uint32 &blockSizeInBytes, // for IV, optional 32 CSSM_PADDING &padding, // CSSM_PADDING_PKCS7, etc. 33 CSSM_ENCRYPT_MODE &mode, // CSSM_ALGMODE_CBCPadIV8, etc. 34 PKCS_Which &pkcs); // PW_PKCS5_v1_5 or PW_PKCS12 35 36const char *p12BagTypeStr( 37 NSS_P12_SB_Type type); 38const char *p7ContentInfoTypeStr( 39 NSS_P7_CI_Type type); 40 41#ifdef __cplusplus 42} 43#endif 44 45#endif /* _PKCS12_UTILS_H_ */ 46