1 /*************************************************************************************************
2     begin       : Wed Mar 16 2005
3     copyright   : (C) 2005 by Martin Preuss
4     email       : martin@libchipcard.de
5 
6  *************************************************************************************************
7  *                       Please see toplevel file COPYING for license details                    *
8  *************************************************************************************************/
9 
10 
11 #ifndef GWEN_CRYPT_KEY_H
12 #define GWEN_CRYPT_KEY_H
13 
14 
15 #include <gwenhywfar/inherit.h>
16 #include <gwenhywfar/list1.h>
17 #include <gwenhywfar/list2.h>
18 #include <gwenhywfar/db.h>
19 #include <gwenhywfar/cryptalgo.h>
20 #include <gwenhywfar/hashalgo.h>
21 #include <gwenhywfar/paddalgo.h>
22 
23 
24 
25 
26 typedef struct GWEN_CRYPT_KEY GWEN_CRYPT_KEY;
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CRYPT_KEY, GWENHYWFAR_API)
33 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CRYPT_KEY, GWEN_Crypt_Key, GWENHYWFAR_API)
34 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_KEY, GWEN_Crypt_Key, GWENHYWFAR_API)
35 
36 
37 GWENHYWFAR_API void GWEN_Crypt_Key_free(GWEN_CRYPT_KEY *k);
38 
39 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_Key_GetCryptAlgoId(const GWEN_CRYPT_KEY *k);
40 
41 GWENHYWFAR_API int GWEN_Crypt_Key_GetKeySize(const GWEN_CRYPT_KEY *k);
42 
43 GWENHYWFAR_API int GWEN_Crypt_Key_GetKeyNumber(const GWEN_CRYPT_KEY *k);
44 
45 GWENHYWFAR_API void GWEN_Crypt_Key_SetKeyNumber(GWEN_CRYPT_KEY *k, int i);
46 
47 GWENHYWFAR_API int GWEN_Crypt_Key_GetKeyVersion(const GWEN_CRYPT_KEY *k);
48 
49 GWENHYWFAR_API void GWEN_Crypt_Key_SetKeyVersion(GWEN_CRYPT_KEY *k, int i);
50 
51 GWENHYWFAR_API int GWEN_Crypt_Key_Sign(GWEN_CRYPT_KEY *k,
52                                        const uint8_t *pInData,
53                                        uint32_t inLen,
54                                        uint8_t *pSignatureData,
55                                        uint32_t *pSignatureLen);
56 
57 GWENHYWFAR_API int GWEN_Crypt_Key_Verify(GWEN_CRYPT_KEY *k,
58                                          const uint8_t *pInData,
59                                          uint32_t inLen,
60                                          const uint8_t *pSignatureData,
61                                          uint32_t signatureLen);
62 
63 GWENHYWFAR_API int GWEN_Crypt_Key_Encipher(GWEN_CRYPT_KEY *k,
64                                            const uint8_t *pInData,
65                                            uint32_t inLen,
66                                            uint8_t *pOutData,
67                                            uint32_t *pOutLen);
68 
69 GWENHYWFAR_API int GWEN_Crypt_Key_Decipher(GWEN_CRYPT_KEY *k,
70                                            const uint8_t *pInData,
71                                            uint32_t inLen,
72                                            uint8_t *pOutData,
73                                            uint32_t *pOutLen);
74 
75 
76 #ifdef __cplusplus
77 }
78 #endif
79 
80 
81 #endif
82