00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef GWEN_CRYPT_CRYPTALGO_H
00015 #define GWEN_CRYPT_CRYPTALGO_H
00016
00017
00018 #include <gwenhywfar/list2.h>
00019
00020 typedef struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO;
00021
00022 #ifdef __cplusplus
00023 extern "C" {
00024 #endif
00025
00026 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_CRYPTALGO,
00027 GWEN_Crypt_CryptAlgo,
00028 GWENHYWFAR_API)
00029 #ifdef __cplusplus
00030 }
00031 #endif
00032
00033
00034 typedef enum {
00035 GWEN_Crypt_CryptAlgoId_Unknown=-1,
00036 GWEN_Crypt_CryptAlgoId_None=0,
00037 GWEN_Crypt_CryptAlgoId_Any,
00039 GWEN_Crypt_CryptAlgoId_Rsa,
00041 GWEN_Crypt_CryptAlgoId_Dsa,
00042
00043 GWEN_Crypt_CryptAlgoId_Des,
00045 GWEN_Crypt_CryptAlgoId_Des3K,
00046
00047 GWEN_Crypt_CryptAlgoId_BlowFish,
00048 } GWEN_CRYPT_CRYPTALGOID;
00049
00050
00051 typedef enum {
00052 GWEN_Crypt_CryptMode_Unknown=-1,
00053 GWEN_Crypt_CryptMode_None=0,
00054 GWEN_Crypt_CryptMode_Ecb,
00055 GWEN_Crypt_CryptMode_Cfb,
00056 GWEN_Crypt_CryptMode_Cbc
00057 } GWEN_CRYPT_CRYPTMODE;
00058
00059
00060 #include <gwenhywfar/db.h>
00061
00062
00063 #ifdef __cplusplus
00064 extern "C" {
00065 #endif
00066
00067 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgoId_fromString(const char *s);
00068 GWENHYWFAR_API const char *GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a);
00069
00070 GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptMode_fromString(const char *s);
00071 GWENHYWFAR_API const char *GWEN_Crypt_CryptMode_toString(GWEN_CRYPT_CRYPTMODE m);
00072
00073
00074 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_new(GWEN_CRYPT_CRYPTALGOID id,
00075 GWEN_CRYPT_CRYPTMODE m);
00076 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_dup(const GWEN_CRYPT_CRYPTALGO *a);
00077 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_fromDb(GWEN_DB_NODE *db);
00078 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_toDb(const GWEN_CRYPT_CRYPTALGO *a, GWEN_DB_NODE *db);
00079 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_Attach(GWEN_CRYPT_CRYPTALGO *a);
00080 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_free(GWEN_CRYPT_CRYPTALGO *a);
00081
00082 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgo_GetId(const GWEN_CRYPT_CRYPTALGO *a);
00083 GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptAlgo_GetMode(const GWEN_CRYPT_CRYPTALGO *a);
00084 GWENHYWFAR_API uint8_t *GWEN_Crypt_CryptAlgo_GetInitVectorPtr(const GWEN_CRYPT_CRYPTALGO *a);
00085 GWENHYWFAR_API uint32_t GWEN_Crypt_CryptAlgo_GetInitVectorLen(const GWEN_CRYPT_CRYPTALGO *a);
00086 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_SetInitVector(GWEN_CRYPT_CRYPTALGO *a,
00087 const uint8_t *pv,
00088 uint32_t lv);
00089
00090
00091 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetChunkSize(const GWEN_CRYPT_CRYPTALGO *a);
00092 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetChunkSize(GWEN_CRYPT_CRYPTALGO *a, int s);
00093
00094
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098
00099 #endif
00100
00101