gwenhywfar 4.0.3
|
00001 /*************************************************************************** 00002 begin : Mon Dec 01 2008 00003 copyright : (C) 2008 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * Please see toplevel file COPYING for license details * 00008 ***************************************************************************/ 00009 00010 00011 #ifndef GWEN_CRYPTMGR_CRYPTMGR_BE_H 00012 #define GWEN_CRYPTMGR_CRYPTMGR_BE_H 00013 00014 #include <gwenhywfar/cryptmgr.h> 00015 #include <gwenhywfar/inherit.h> 00016 00017 #ifdef __cplusplus 00018 extern "C" { 00019 #endif 00020 00021 00022 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CRYPTMGR, GWENHYWFAR_API) 00023 00024 00025 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_SIGNDATA_FN)(GWEN_CRYPTMGR *cm, 00026 const uint8_t *pData, uint32_t lData, 00027 GWEN_BUFFER *dbuf); 00028 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_ENCRYPTKEY_FN)(GWEN_CRYPTMGR *cm, 00029 const uint8_t *pData, uint32_t lData, 00030 GWEN_BUFFER *dbuf); 00031 00032 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_VERIFYDATA_FN)(GWEN_CRYPTMGR *cm, 00033 const uint8_t *pData, uint32_t lData, 00034 const uint8_t *pSignature, uint32_t lSignature); 00035 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_DECRYPTKEY_FN)(GWEN_CRYPTMGR *cm, 00036 const uint8_t *pData, uint32_t lData, 00037 GWEN_BUFFER *dbuf); 00038 00039 00040 00041 GWENHYWFAR_API 00042 GWEN_CRYPTMGR *GWEN_CryptMgr_new(); 00043 00044 GWENHYWFAR_API 00045 void GWEN_CryptMgr_SetLocalKeyName(GWEN_CRYPTMGR *cm, const char *s); 00046 00047 GWENHYWFAR_API 00048 void GWEN_CryptMgr_SetLocalKeyNumber(GWEN_CRYPTMGR *cm, int i); 00049 00050 GWENHYWFAR_API 00051 void GWEN_CryptMgr_SetLocalKeyVersion(GWEN_CRYPTMGR *cm, int i); 00052 00053 GWENHYWFAR_API 00054 void GWEN_CryptMgr_SetPeerKeyName(GWEN_CRYPTMGR *cm, const char *s); 00055 00056 GWENHYWFAR_API 00057 void GWEN_CryptMgr_SetPeerKeyNumber(GWEN_CRYPTMGR *cm, int i); 00058 00059 GWENHYWFAR_API 00060 void GWEN_CryptMgr_SetPeerKeyVersion(GWEN_CRYPTMGR *cm, int i); 00061 00062 00063 GWENHYWFAR_API 00064 int GWEN_CryptMgr_SignData(GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf); 00065 00066 GWENHYWFAR_API 00067 int GWEN_CryptMgr_EncryptKey(GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf); 00068 00069 GWENHYWFAR_API 00070 int GWEN_CryptMgr_VerifyData(GWEN_CRYPTMGR *cm, 00071 const uint8_t *pData, uint32_t lData, 00072 const uint8_t *pSignature, uint32_t lSignature); 00073 00074 GWENHYWFAR_API 00075 int GWEN_CryptMgr_DecryptKey(GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf); 00076 00077 00078 GWENHYWFAR_API 00079 GWEN_CRYPTMGR_SIGNDATA_FN GWEN_CryptMgr_SetSignDataFn(GWEN_CRYPTMGR *cm, 00080 GWEN_CRYPTMGR_SIGNDATA_FN f); 00081 00082 GWENHYWFAR_API 00083 GWEN_CRYPTMGR_VERIFYDATA_FN GWEN_CryptMgr_SetVerifyDataFn(GWEN_CRYPTMGR *cm, 00084 GWEN_CRYPTMGR_VERIFYDATA_FN f); 00085 00086 GWENHYWFAR_API 00087 GWEN_CRYPTMGR_ENCRYPTKEY_FN 00088 GWEN_CryptMgr_SetEncryptKeyFn(GWEN_CRYPTMGR *cm, 00089 GWEN_CRYPTMGR_ENCRYPTKEY_FN f); 00090 00091 GWENHYWFAR_API 00092 GWEN_CRYPTMGR_DECRYPTKEY_FN GWEN_CryptMgr_SetDecryptKeyFn(GWEN_CRYPTMGR *cm, 00093 GWEN_CRYPTMGR_DECRYPTKEY_FN f); 00094 00095 00096 #ifdef __cplusplus 00097 } 00098 #endif 00099 00100 00101 #endif 00102 00103