00001
00027 #ifndef POLARSSL_PKCS12_H
00028 #define POLARSSL_PKCS12_H
00029
00030 #include <string.h>
00031
00032 #include "md.h"
00033 #include "cipher.h"
00034 #include "asn1.h"
00035
00036 #define POLARSSL_ERR_PKCS12_BAD_INPUT_DATA -0x1F80
00037 #define POLARSSL_ERR_PKCS12_FEATURE_UNAVAILABLE -0x1F00
00038 #define POLARSSL_ERR_PKCS12_PBE_INVALID_FORMAT -0x1E80
00039 #define POLARSSL_ERR_PKCS12_PASSWORD_MISMATCH -0x1E00
00041 #define PKCS12_DERIVE_KEY 1
00042 #define PKCS12_DERIVE_IV 2
00043 #define PKCS12_DERIVE_MAC_KEY 3
00044
00045 #define PKCS12_PBE_DECRYPT 0
00046 #define PKCS12_PBE_ENCRYPT 1
00047
00048 #ifdef __cplusplus
00049 extern "C" {
00050 #endif
00051
00066 int pkcs12_pbe_sha1_rc4_128( asn1_buf *pbe_params, int mode,
00067 const unsigned char *pwd, size_t pwdlen,
00068 const unsigned char *input, size_t len,
00069 unsigned char *output );
00070
00087 int pkcs12_pbe( asn1_buf *pbe_params, int mode,
00088 cipher_type_t cipher_type, md_type_t md_type,
00089 const unsigned char *pwd, size_t pwdlen,
00090 const unsigned char *input, size_t len,
00091 unsigned char *output );
00092
00114 int pkcs12_derivation( unsigned char *data, size_t datalen,
00115 const unsigned char *pwd, size_t pwdlen,
00116 const unsigned char *salt, size_t saltlen,
00117 md_type_t md, int id, int iterations );
00118
00119 #ifdef __cplusplus
00120 }
00121 #endif
00122
00123 #endif