Go to the documentation of this file.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
00049 GWEN_Crypt_CryptAlgoId_Aes128,
00050 } GWEN_CRYPT_CRYPTALGOID;
00051
00052
00053 typedef enum {
00054 GWEN_Crypt_CryptMode_Unknown=-1,
00055 GWEN_Crypt_CryptMode_None=0,
00056 GWEN_Crypt_CryptMode_Ecb,
00057 GWEN_Crypt_CryptMode_Cfb,
00058 GWEN_Crypt_CryptMode_Cbc
00059 } GWEN_CRYPT_CRYPTMODE;
00060
00061
00062 #include <gwenhywfar/db.h>
00063
00064
00065 #ifdef __cplusplus
00066 extern "C" {
00067 #endif
00068
00069 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgoId_fromString(const char *s);
00070 GWENHYWFAR_API const char *GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a);
00071
00072 GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptMode_fromString(const char *s);
00073 GWENHYWFAR_API const char *GWEN_Crypt_CryptMode_toString(GWEN_CRYPT_CRYPTMODE m);
00074
00075
00076 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_new(GWEN_CRYPT_CRYPTALGOID id,
00077 GWEN_CRYPT_CRYPTMODE m);
00078 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_dup(const GWEN_CRYPT_CRYPTALGO *a);
00079 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_fromDb(GWEN_DB_NODE *db);
00080 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_toDb(const GWEN_CRYPT_CRYPTALGO *a, GWEN_DB_NODE *db);
00081 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_Attach(GWEN_CRYPT_CRYPTALGO *a);
00082 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_free(GWEN_CRYPT_CRYPTALGO *a);
00083
00084 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgo_GetId(const GWEN_CRYPT_CRYPTALGO *a);
00085 GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptAlgo_GetMode(const GWEN_CRYPT_CRYPTALGO *a);
00086 GWENHYWFAR_API uint8_t *GWEN_Crypt_CryptAlgo_GetInitVectorPtr(const GWEN_CRYPT_CRYPTALGO *a);
00087 GWENHYWFAR_API uint32_t GWEN_Crypt_CryptAlgo_GetInitVectorLen(const GWEN_CRYPT_CRYPTALGO *a);
00088 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_SetInitVector(GWEN_CRYPT_CRYPTALGO *a,
00089 const uint8_t *pv,
00090 uint32_t lv);
00091
00092
00093 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetChunkSize(const GWEN_CRYPT_CRYPTALGO *a);
00094 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetChunkSize(GWEN_CRYPT_CRYPTALGO *a, int s);
00095
00096
00097 GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetKeySizeInBits(const GWEN_CRYPT_CRYPTALGO *a);
00098 GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetKeySizeInBits(GWEN_CRYPT_CRYPTALGO *a, int s);
00099
00100
00101 #ifdef __cplusplus
00102 }
00103 #endif
00104
00105 #endif
00106
00107