cryptalgo.h
Go to the documentation of this file.
/***************************************************************************
$RCSfile$
-------------------
cvs : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
begin : Wed Mar 16 2005
copyright : (C) 2005 by Martin Preuss
email : martin@libchipcard.de
***************************************************************************
* Please see toplevel file COPYING for license details *
***************************************************************************/
#ifndef GWEN_CRYPT_CRYPTALGO_H
#define GWEN_CRYPT_CRYPTALGO_H
#include <gwenhywfar/list2.h>
typedef struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO;
#ifdef __cplusplus
extern "C" {
#endif
GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_CRYPTALGO,
GWEN_Crypt_CryptAlgo,
GWENHYWFAR_API)
#ifdef __cplusplus
}
#endif
typedef enum {
GWEN_Crypt_CryptAlgoId_Unknown=-1,
GWEN_Crypt_CryptAlgoId_None=0,
GWEN_Crypt_CryptAlgoId_Any,
GWEN_Crypt_CryptAlgoId_Rsa,
GWEN_Crypt_CryptAlgoId_Dsa,
/* DES */
GWEN_Crypt_CryptAlgoId_Des,
GWEN_Crypt_CryptAlgoId_Des3K,
/* blowfish */
GWEN_Crypt_CryptAlgoId_BlowFish,
/* AES-128 */
GWEN_Crypt_CryptAlgoId_Aes128,
/* AES-246 */
GWEN_Crypt_CryptAlgoId_Aes256,
} GWEN_CRYPT_CRYPTALGOID;
typedef enum {
GWEN_Crypt_CryptMode_Unknown=-1,
GWEN_Crypt_CryptMode_None=0,
GWEN_Crypt_CryptMode_Ecb, /* electronic codebook */
GWEN_Crypt_CryptMode_Cfb, /* cipher feedback */
GWEN_Crypt_CryptMode_Cbc /* cipher block chaining */
} GWEN_CRYPT_CRYPTMODE;
#include <gwenhywfar/db.h>
#ifdef __cplusplus
extern "C" {
#endif
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgoId_fromString(const char *s);
GWENHYWFAR_API const char *GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a);
GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptMode_fromString(const char *s);
GWENHYWFAR_API const char *GWEN_Crypt_CryptMode_toString(GWEN_CRYPT_CRYPTMODE m);
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_new(GWEN_CRYPT_CRYPTALGOID id,
GWEN_CRYPT_CRYPTMODE m);
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_dup(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO *GWEN_Crypt_CryptAlgo_fromDb(GWEN_DB_NODE *db);
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_toDb(const GWEN_CRYPT_CRYPTALGO *a, GWEN_DB_NODE *db);
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_Attach(GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_free(GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgo_GetId(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptAlgo_GetMode(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API uint8_t *GWEN_Crypt_CryptAlgo_GetInitVectorPtr(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API uint32_t GWEN_Crypt_CryptAlgo_GetInitVectorLen(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_SetInitVector(GWEN_CRYPT_CRYPTALGO *a,
const uint8_t *pv,
uint32_t lv);
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetChunkSize(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetChunkSize(GWEN_CRYPT_CRYPTALGO *a, int s);
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetKeySizeInBits(const GWEN_CRYPT_CRYPTALGO *a);
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetKeySizeInBits(GWEN_CRYPT_CRYPTALGO *a, int s);
#ifdef __cplusplus
}
#endif
#endif
GWEN_CRYPT_CRYPTALGOID
GWEN_CRYPT_CRYPTALGOID
Definition cryptalgo.h:52
GWEN_Crypt_CryptAlgo_SetChunkSize
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetChunkSize(GWEN_CRYPT_CRYPTALGO *a, int s)
GWEN_Crypt_CryptAlgo_new
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO * GWEN_Crypt_CryptAlgo_new(GWEN_CRYPT_CRYPTALGOID id, GWEN_CRYPT_CRYPTMODE m)
GWEN_Crypt_CryptAlgoId_fromString
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgoId_fromString(const char *s)
GWEN_Crypt_CryptAlgo_GetMode
GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptAlgo_GetMode(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgo_dup
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO * GWEN_Crypt_CryptAlgo_dup(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgoId_toString
GWENHYWFAR_API const char * GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a)
GWEN_Crypt_CryptAlgo_SetInitVector
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_SetInitVector(GWEN_CRYPT_CRYPTALGO *a, const uint8_t *pv, uint32_t lv)
GWEN_Crypt_CryptAlgo_GetId
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgo_GetId(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgo_fromDb
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO * GWEN_Crypt_CryptAlgo_fromDb(GWEN_DB_NODE *db)
GWEN_Crypt_CryptAlgo_toDb
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_toDb(const GWEN_CRYPT_CRYPTALGO *a, GWEN_DB_NODE *db)
GWEN_Crypt_CryptAlgo_SetKeySizeInBits
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetKeySizeInBits(GWEN_CRYPT_CRYPTALGO *a, int s)
GWEN_Crypt_CryptAlgo_GetChunkSize
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetChunkSize(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_CRYPT_CRYPTALGO
struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO
Definition cryptalgo.h:20
GWEN_CRYPT_CRYPTMODE
GWEN_CRYPT_CRYPTMODE
Definition cryptalgo.h:55
GWEN_Crypt_CryptMode_Unknown
@ GWEN_Crypt_CryptMode_Unknown
Definition cryptalgo.h:56
GWEN_Crypt_CryptMode_Ecb
@ GWEN_Crypt_CryptMode_Ecb
Definition cryptalgo.h:58
GWEN_Crypt_CryptMode_Cbc
@ GWEN_Crypt_CryptMode_Cbc
Definition cryptalgo.h:60
GWEN_Crypt_CryptMode_Cfb
@ GWEN_Crypt_CryptMode_Cfb
Definition cryptalgo.h:59
GWEN_Crypt_CryptMode_None
@ GWEN_Crypt_CryptMode_None
Definition cryptalgo.h:57
GWEN_Crypt_CryptMode_toString
GWENHYWFAR_API const char * GWEN_Crypt_CryptMode_toString(GWEN_CRYPT_CRYPTMODE m)
GWEN_Crypt_CryptAlgo_GetInitVectorPtr
GWENHYWFAR_API uint8_t * GWEN_Crypt_CryptAlgo_GetInitVectorPtr(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgo_GetKeySizeInBits
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetKeySizeInBits(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgo_GetInitVectorLen
GWENHYWFAR_API uint32_t GWEN_Crypt_CryptAlgo_GetInitVectorLen(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgo_Attach
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_Attach(GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptAlgo_free
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_free(GWEN_CRYPT_CRYPTALGO *a)
GWEN_Crypt_CryptMode_fromString
GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptMode_fromString(const char *s)
db.h
GWEN_DB_NODE
struct GWEN_DB_NODE GWEN_DB_NODE
Definition db.h:228
GWENHYWFAR_API
#define GWENHYWFAR_API
Definition gwenhywfarapi.h:67
list2.h
This file contains some macros concerning lists.
GWEN_LIST2_FUNCTION_LIB_DEFS
#define GWEN_LIST2_FUNCTION_LIB_DEFS(t, pr, decl)
Definition list2.h:56