gwenhywfar 5.11.2beta
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
23extern "C" {
24#endif
25
27 GWEN_Crypt_CryptAlgo,
29#ifdef __cplusplus
30}
31#endif
32
33
34typedef 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
55typedef 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
68extern "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_CRYPTALGO * GWEN_Crypt_CryptAlgo_new(GWEN_CRYPT_CRYPTALGOID id, GWEN_CRYPT_CRYPTMODE m)
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 GWEN_CRYPT_CRYPTALGO * GWEN_Crypt_CryptAlgo_dup(const GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API const char * GWEN_Crypt_CryptAlgoId_toString(GWEN_CRYPT_CRYPTALGOID a)
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 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_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 const char * GWEN_Crypt_CryptMode_toString(GWEN_CRYPT_CRYPTMODE m)
GWENHYWFAR_API uint8_t * GWEN_Crypt_CryptAlgo_GetInitVectorPtr(const GWEN_CRYPT_CRYPTALGO *a)
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 void GWEN_Crypt_CryptAlgo_Attach(GWEN_CRYPT_CRYPTALGO *a)
GWENHYWFAR_API void GWEN_Crypt_CryptAlgo_free(GWEN_CRYPT_CRYPTALGO *a)
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.