gwenhywfar 4.0.3
|
00001 /************************************************************************************************* 00002 $RCSfile$ 00003 ------------------- 00004 cvs : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $ 00005 begin : Wed Mar 16 2005 00006 copyright : (C) 2005 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 ************************************************************************************************* 00010 * Please see toplevel file COPYING for license details * 00011 *************************************************************************************************/ 00012 00013 00014 #ifndef GWEN_CRYPT_KEY_H 00015 #define GWEN_CRYPT_KEY_H 00016 00017 00018 #include <gwenhywfar/inherit.h> 00019 #include <gwenhywfar/list1.h> 00020 #include <gwenhywfar/list2.h> 00021 #include <gwenhywfar/db.h> 00022 #include <gwenhywfar/cryptalgo.h> 00023 #include <gwenhywfar/hashalgo.h> 00024 #include <gwenhywfar/paddalgo.h> 00025 00026 00027 00028 00029 typedef struct GWEN_CRYPT_KEY GWEN_CRYPT_KEY; 00030 00031 #ifdef __cplusplus 00032 extern "C" { 00033 #endif 00034 00035 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CRYPT_KEY, GWENHYWFAR_API) 00036 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_CRYPT_KEY, GWEN_Crypt_Key, GWENHYWFAR_API) 00037 GWEN_LIST2_FUNCTION_LIB_DEFS(GWEN_CRYPT_KEY, GWEN_Crypt_Key, GWENHYWFAR_API) 00038 00039 00040 GWENHYWFAR_API void GWEN_Crypt_Key_free(GWEN_CRYPT_KEY *k); 00041 00042 GWENHYWFAR_API GWEN_CRYPT_CRYPTALGOID GWEN_Crypt_Key_GetCryptAlgoId(const GWEN_CRYPT_KEY *k); 00043 00044 GWENHYWFAR_API int GWEN_Crypt_Key_GetKeySize(const GWEN_CRYPT_KEY *k); 00045 00046 GWENHYWFAR_API int GWEN_Crypt_Key_GetKeyNumber(const GWEN_CRYPT_KEY *k); 00047 00048 GWENHYWFAR_API void GWEN_Crypt_Key_SetKeyNumber(GWEN_CRYPT_KEY *k, int i); 00049 00050 GWENHYWFAR_API int GWEN_Crypt_Key_GetKeyVersion(const GWEN_CRYPT_KEY *k); 00051 00052 GWENHYWFAR_API void GWEN_Crypt_Key_SetKeyVersion(GWEN_CRYPT_KEY *k, int i); 00053 00054 GWENHYWFAR_API int GWEN_Crypt_Key_Sign(GWEN_CRYPT_KEY *k, 00055 const uint8_t *pInData, 00056 uint32_t inLen, 00057 uint8_t *pSignatureData, 00058 uint32_t *pSignatureLen); 00059 00060 GWENHYWFAR_API int GWEN_Crypt_Key_Verify(GWEN_CRYPT_KEY *k, 00061 const uint8_t *pInData, 00062 uint32_t inLen, 00063 const uint8_t *pSignatureData, 00064 uint32_t signatureLen); 00065 00066 GWENHYWFAR_API int GWEN_Crypt_Key_Encipher(GWEN_CRYPT_KEY *k, 00067 const uint8_t *pInData, 00068 uint32_t inLen, 00069 uint8_t *pOutData, 00070 uint32_t *pOutLen); 00071 00072 GWENHYWFAR_API int GWEN_Crypt_Key_Decipher(GWEN_CRYPT_KEY *k, 00073 const uint8_t *pInData, 00074 uint32_t inLen, 00075 uint8_t *pOutData, 00076 uint32_t *pOutLen); 00077 00078 00079 #ifdef __cplusplus 00080 } 00081 #endif 00082 00083 00084 #endif