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