gwenhywfar  5.11.1beta
cryptalgo.h
Go to the documentation of this file.
1 /***************************************************************************
2  $RCSfile$
3  -------------------
4  cvs : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
5  begin : Wed Mar 16 2005
6  copyright : (C) 2005 by Martin Preuss
7  email : martin@libchipcard.de
8 
9  ***************************************************************************
10  * Please see toplevel file COPYING for license details *
11  ***************************************************************************/
12 
13 
14 #ifndef GWEN_CRYPT_CRYPTALGO_H
15 #define GWEN_CRYPT_CRYPTALGO_H
16 
17 
18 #include <gwenhywfar/list2.h>
19 
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
27  GWEN_Crypt_CryptAlgo,
29 #ifdef __cplusplus
30 }
31 #endif
32 
33 
34 typedef enum {
35  GWEN_Crypt_CryptAlgoId_Unknown=-1,
36  GWEN_Crypt_CryptAlgoId_None=0,
37  GWEN_Crypt_CryptAlgoId_Any,
39  GWEN_Crypt_CryptAlgoId_Rsa,
41  GWEN_Crypt_CryptAlgoId_Dsa,
42  /* DES */
43  GWEN_Crypt_CryptAlgoId_Des,
45  GWEN_Crypt_CryptAlgoId_Des3K,
46  /* blowfish */
47  GWEN_Crypt_CryptAlgoId_BlowFish,
48  /* AES-128 */
49  GWEN_Crypt_CryptAlgoId_Aes128,
50  /* AES-246 */
51  GWEN_Crypt_CryptAlgoId_Aes256,
53 
54 
55 typedef enum {
58  GWEN_Crypt_CryptMode_Ecb, /* electronic codebook */
59  GWEN_Crypt_CryptMode_Cfb, /* cipher feedback */
60  GWEN_Crypt_CryptMode_Cbc /* cipher block chaining */
62 
63 
64 #include <gwenhywfar/db.h>
65 
66 
67 #ifdef __cplusplus
68 extern "C" {
69 #endif
70 
73 
76 
77 
85 
91  const uint8_t *pv,
92  uint32_t lv);
93 
94 
97 
98 
101 
102 
103 #ifdef __cplusplus
104 }
105 #endif
106 
107 #endif
108 
109 
GWEN_CRYPT_CRYPTALGOID
Definition: cryptalgo.h:52
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetChunkSize(GWEN_CRYPT_CRYPTALGO *a, int s)
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgoId_fromString(const char *s)
GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptAlgo_GetMode(const GWEN_CRYPT_CRYPTALGO *a)
GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_CRYPTALGO, GWEN_Crypt_CryptAlgo, GWENHYWFAR_API) } typedef enum
Definition: cryptalgo.h:26
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_SetInitVector(GWEN_CRYPT_CRYPTALGO *a, const uint8_t *pv, uint32_t lv)
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_CryptAlgo_GetId(const GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_toDb(const GWEN_CRYPT_CRYPTALGO *a, GWEN_DB_NODE *db)
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO * GWEN_Crypt_CryptAlgo_dup(const GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API const char * GWEN_Crypt_CryptMode_toString(GWEN_CRYPT_CRYPTMODE m)
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_SetKeySizeInBits(GWEN_CRYPT_CRYPTALGO *a, int s)
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetChunkSize(const GWEN_CRYPT_CRYPTALGO *a)
struct GWEN_CRYPT_CRYPTALGO GWEN_CRYPT_CRYPTALGO
Definition: cryptalgo.h:20
GWEN_CRYPT_CRYPTMODE
Definition: cryptalgo.h:55
@ GWEN_Crypt_CryptMode_Unknown
Definition: cryptalgo.h:56
@ GWEN_Crypt_CryptMode_Ecb
Definition: cryptalgo.h:58
@ GWEN_Crypt_CryptMode_Cbc
Definition: cryptalgo.h:60
@ GWEN_Crypt_CryptMode_Cfb
Definition: cryptalgo.h:59
@ GWEN_Crypt_CryptMode_None
Definition: cryptalgo.h:57
GWENHYWFAR_API uint8_t * GWEN_Crypt_CryptAlgo_GetInitVectorPtr(const GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API GWEN_CRYPT_CRYPTALGO * GWEN_Crypt_CryptAlgo_new(GWEN_CRYPT_CRYPTALGOID id, GWEN_CRYPT_CRYPTMODE m)
GWENHYWFAR_API int GWEN_Crypt_CryptAlgo_GetKeySizeInBits(const GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API uint32_t GWEN_Crypt_CryptAlgo_GetInitVectorLen(const GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API const char * GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a)
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_CRYPTALGO * GWEN_Crypt_CryptAlgo_fromDb(GWEN_DB_NODE *db)
GWENHYWFAR_API GWEN_CRYPT_CRYPTMODE GWEN_Crypt_CryptMode_fromString(const char *s)
struct GWEN_DB_NODE GWEN_DB_NODE
Definition: db.h:228
#define GWENHYWFAR_API
Definition: gwenhywfarapi.h:67
This file contains some macros concerning lists.