cryptmgr_be.h

Go to the documentation of this file.
00001 /***************************************************************************
00002     begin       : Mon Dec 01 2008
00003     copyright   : (C) 2008 by Martin Preuss
00004     email       : martin@libchipcard.de
00005 
00006  ***************************************************************************
00007  *          Please see toplevel file COPYING for license details           *
00008  ***************************************************************************/
00009 
00010 
00011 #ifndef GWEN_CRYPTMGR_CRYPTMGR_BE_H
00012 #define GWEN_CRYPTMGR_CRYPTMGR_BE_H
00013 
00014 #include <gwenhywfar/cryptmgr.h>
00015 #include <gwenhywfar/inherit.h>
00016 
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020 
00021 
00022 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CRYPTMGR, GWENHYWFAR_API)
00023 
00024 
00025 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_SIGNDATA_FN)(GWEN_CRYPTMGR *cm,
00026                                                        const uint8_t *pData, uint32_t lData,
00027                                                        GWEN_BUFFER *dbuf);
00028 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_ENCRYPTKEY_FN)(GWEN_CRYPTMGR *cm,
00029                                                          const uint8_t *pData, uint32_t lData,
00030                                                          GWEN_BUFFER *dbuf);
00031 
00032 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_VERIFYDATA_FN)(GWEN_CRYPTMGR *cm,
00033                                                          const uint8_t *pData, uint32_t lData,
00034                                                          const uint8_t *pSignature, uint32_t lSignature);
00035 typedef GWENHYWFAR_CB int (*GWEN_CRYPTMGR_DECRYPTKEY_FN)(GWEN_CRYPTMGR *cm,
00036                                                          const uint8_t *pData, uint32_t lData,
00037                                                          GWEN_BUFFER *dbuf);
00038 
00039 
00040 
00041 GWENHYWFAR_API
00042 GWEN_CRYPTMGR *GWEN_CryptMgr_new(void);
00043 
00044 GWENHYWFAR_API
00045 void GWEN_CryptMgr_SetLocalKeyName(GWEN_CRYPTMGR *cm, const char *s);
00046 
00047 GWENHYWFAR_API
00048 void GWEN_CryptMgr_SetLocalKeyNumber(GWEN_CRYPTMGR *cm, int i);
00049 
00050 GWENHYWFAR_API
00051 void GWEN_CryptMgr_SetLocalKeyVersion(GWEN_CRYPTMGR *cm, int i);
00052 
00053 GWENHYWFAR_API
00054 void GWEN_CryptMgr_SetPeerKeyName(GWEN_CRYPTMGR *cm, const char *s);
00055 
00056 GWENHYWFAR_API
00057 void GWEN_CryptMgr_SetPeerKeyNumber(GWEN_CRYPTMGR *cm, int i);
00058 
00059 GWENHYWFAR_API
00060 void GWEN_CryptMgr_SetPeerKeyVersion(GWEN_CRYPTMGR *cm, int i);
00061 
00062 
00063 GWENHYWFAR_API
00064 int GWEN_CryptMgr_SignData(GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf);
00065 
00066 GWENHYWFAR_API
00067 int GWEN_CryptMgr_EncryptKey(GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf);
00068 
00069 GWENHYWFAR_API
00070 int GWEN_CryptMgr_VerifyData(GWEN_CRYPTMGR *cm,
00071                              const uint8_t *pData, uint32_t lData,
00072                              const uint8_t *pSignature, uint32_t lSignature);
00073 
00074 GWENHYWFAR_API
00075 int GWEN_CryptMgr_DecryptKey(GWEN_CRYPTMGR *cm, const uint8_t *pData, uint32_t lData, GWEN_BUFFER *dbuf);
00076 
00077 
00078 GWENHYWFAR_API
00079 GWEN_CRYPTMGR_SIGNDATA_FN GWEN_CryptMgr_SetSignDataFn(GWEN_CRYPTMGR *cm,
00080                                                       GWEN_CRYPTMGR_SIGNDATA_FN f);
00081 
00082 GWENHYWFAR_API
00083 GWEN_CRYPTMGR_VERIFYDATA_FN GWEN_CryptMgr_SetVerifyDataFn(GWEN_CRYPTMGR *cm,
00084                                                           GWEN_CRYPTMGR_VERIFYDATA_FN f);
00085 
00086 GWENHYWFAR_API
00087 GWEN_CRYPTMGR_ENCRYPTKEY_FN
00088   GWEN_CryptMgr_SetEncryptKeyFn(GWEN_CRYPTMGR *cm,
00089                                 GWEN_CRYPTMGR_ENCRYPTKEY_FN f);
00090 
00091 GWENHYWFAR_API
00092 GWEN_CRYPTMGR_DECRYPTKEY_FN GWEN_CryptMgr_SetDecryptKeyFn(GWEN_CRYPTMGR *cm,
00093                                                           GWEN_CRYPTMGR_DECRYPTKEY_FN f);
00094 
00095 
00096 #ifdef __cplusplus
00097 }
00098 #endif
00099 
00100 
00101 #endif
00102 
00103