ct_be.h

Go to the documentation of this file.
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_CRYPTTOKEN_BE_H
00015 #define GWEN_CRYPT_CRYPTTOKEN_BE_H
00016 
00017 
00018 #include <gwenhywfar/ct.h>
00019 #include <gwenhywfar/inherit.h>
00020 #include <gwenhywfar/buffer.h>
00021 #include <gwenhywfar/hashalgo.h>
00022 
00023 
00024 
00025 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_CRYPT_TOKEN, GWENHYWFAR_API)
00026 
00027 
00028 
00029 
00030 
00034 typedef int GWENHYWFAR_CB
00035   (*GWEN_CRYPT_TOKEN_OPEN_FN)(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid);
00036 typedef int GWENHYWFAR_CB
00037   (*GWEN_CRYPT_TOKEN_CREATE_FN)(GWEN_CRYPT_TOKEN *ct, uint32_t gid);
00038 typedef int GWENHYWFAR_CB
00039   (*GWEN_CRYPT_TOKEN_CLOSE_FN)(GWEN_CRYPT_TOKEN *ct, int abandon, uint32_t gid);
00040 
00041 typedef int GWENHYWFAR_CB
00042   (*GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN)(GWEN_CRYPT_TOKEN *ct,
00043                                       uint32_t *pIdList,
00044                                       uint32_t *pCount,
00045                                       uint32_t gid);
00046 typedef const GWEN_CRYPT_TOKEN_KEYINFO* GWENHYWFAR_CB
00047   (*GWEN_CRYPT_TOKEN_GETKEYINFO_FN)(GWEN_CRYPT_TOKEN *ct,
00048                                     uint32_t id,
00049                                     uint32_t flags,
00050                                     uint32_t gid);
00051 
00052 typedef int GWENHYWFAR_CB
00053   (*GWEN_CRYPT_TOKEN_SETKEYINFO_FN)(GWEN_CRYPT_TOKEN *ct,
00054                                     uint32_t id,
00055                                     const GWEN_CRYPT_TOKEN_KEYINFO *ki,
00056                                     uint32_t gid);
00057 
00058 typedef int GWENHYWFAR_CB
00059   (*GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN)(GWEN_CRYPT_TOKEN *ct,
00060                                           uint32_t *pIdList,
00061                                           uint32_t *pCount,
00062                                           uint32_t gid);
00063 typedef const GWEN_CRYPT_TOKEN_CONTEXT* GWENHYWFAR_CB
00064   (*GWEN_CRYPT_TOKEN_GETCONTEXT_FN)(GWEN_CRYPT_TOKEN *ct,
00065                                     uint32_t id,
00066                                     uint32_t gid);
00067 
00068 typedef int GWENHYWFAR_CB
00069   (*GWEN_CRYPT_TOKEN_SETCONTEXT_FN)(GWEN_CRYPT_TOKEN *ct,
00070                                     uint32_t id,
00071                                     const GWEN_CRYPT_TOKEN_CONTEXT *ctx,
00072                                     uint32_t gid);
00073 
00074 
00075 typedef int GWENHYWFAR_CB
00076   (*GWEN_CRYPT_TOKEN_SIGN_FN)(GWEN_CRYPT_TOKEN *ct,
00077                               uint32_t keyId,
00078                               GWEN_CRYPT_PADDALGO *a,
00079                               const uint8_t *pInData,
00080                               uint32_t inLen,
00081                               uint8_t *pSignatureData,
00082                               uint32_t *pSignatureLen,
00083                               uint32_t *pSeqCounter,
00084                               uint32_t gid);
00085 
00086 typedef int GWENHYWFAR_CB
00087   (*GWEN_CRYPT_TOKEN_VERIFY_FN)(GWEN_CRYPT_TOKEN *ct,
00088                                 uint32_t keyId,
00089                                 GWEN_CRYPT_PADDALGO *a,
00090                                 const uint8_t *pInData,
00091                                 uint32_t inLen,
00092                                 const uint8_t *pSignatureData,
00093                                 uint32_t signatureLen,
00094                                 uint32_t seqCounter,
00095                                 uint32_t gid);
00096 
00097 typedef int GWENHYWFAR_CB
00098   (*GWEN_CRYPT_TOKEN_ENCIPHER_FN)(GWEN_CRYPT_TOKEN *ct,
00099                                   uint32_t keyId,
00100                                   GWEN_CRYPT_PADDALGO *a,
00101                                   const uint8_t *pInData,
00102                                   uint32_t inLen,
00103                                   uint8_t *pOutData,
00104                                   uint32_t *pOutLen,
00105                                   uint32_t gid);
00106 
00107 typedef int GWENHYWFAR_CB
00108   (*GWEN_CRYPT_TOKEN_DECIPHER_FN)(GWEN_CRYPT_TOKEN *ct,
00109                                   uint32_t keyId,
00110                                   GWEN_CRYPT_PADDALGO *a,
00111                                   const uint8_t *pInData,
00112                                   uint32_t inLen,
00113                                   uint8_t *pOutData,
00114                                   uint32_t *pOutLen,
00115                                   uint32_t gid);
00116 
00117 
00118 typedef int GWENHYWFAR_CB
00119   (*GWEN_CRYPT_TOKEN_GENERATEKEY_FN)(GWEN_CRYPT_TOKEN *ct,
00120                                      uint32_t keyId,
00121                                      const GWEN_CRYPT_CRYPTALGO *a,
00122                                      uint32_t gid);
00123 
00124 typedef int GWENHYWFAR_CB
00125   (*GWEN_CRYPT_TOKEN_CHANGEPIN_FN)(GWEN_CRYPT_TOKEN *ct, int admin, uint32_t gid);
00135 GWENHYWFAR_API GWEN_CRYPT_TOKEN *GWEN_Crypt_Token_new(GWEN_CRYPT_TOKEN_DEVICE dev,
00136                                                       const char *typeName,
00137                                                       const char *tokenName);
00146 GWENHYWFAR_API void GWEN_Crypt_Token_SetTokenName(GWEN_CRYPT_TOKEN *ct, const char *s);
00147 
00148 GWENHYWFAR_API void GWEN_Crypt_Token_SetFlags(GWEN_CRYPT_TOKEN *ct, uint32_t f);
00149 GWENHYWFAR_API void GWEN_Crypt_Token_AddFlags(GWEN_CRYPT_TOKEN *ct, uint32_t f);
00150 GWENHYWFAR_API void GWEN_Crypt_Token_SubFlags(GWEN_CRYPT_TOKEN *ct, uint32_t f);
00159 GWENHYWFAR_API int GWEN_Crypt_Token_GetPin(GWEN_CRYPT_TOKEN *ct,
00160                                            GWEN_CRYPT_PINTYPE pt,
00161                                            GWEN_CRYPT_PINENCODING pe,
00162                                            uint32_t flags,
00163                                            unsigned char *pwbuffer,
00164                                            unsigned int minLength,
00165                                            unsigned int maxLength,
00166                                            unsigned int *pinLength,
00167                                            uint32_t gid);
00168 
00169 
00170 GWENHYWFAR_API int GWEN_Crypt_Token_SetPinStatus(GWEN_CRYPT_TOKEN *ct,
00171                                                  GWEN_CRYPT_PINTYPE pt,
00172                                                  GWEN_CRYPT_PINENCODING pe,
00173                                                  uint32_t flags,
00174                                                  const unsigned char *buffer,
00175                                                  unsigned int pinLength,
00176                                                  int isOk,
00177                                                  uint32_t gid);
00178 
00179 GWENHYWFAR_API uint32_t GWEN_Crypt_Token_BeginEnterPin(GWEN_CRYPT_TOKEN *ct,
00180                                                        GWEN_CRYPT_PINTYPE pt,
00181                                                        uint32_t gid);
00182 
00183 GWENHYWFAR_API int GWEN_Crypt_Token_EndEnterPin(GWEN_CRYPT_TOKEN *ct,
00184                                                 GWEN_CRYPT_PINTYPE pt,
00185                                                 int ok,
00186                                                 uint32_t id);
00187 
00188 GWENHYWFAR_API int GWEN_Crypt_Token_InsertToken(GWEN_CRYPT_TOKEN *ct, uint32_t gid);
00189 
00190 GWENHYWFAR_API int GWEN_Crypt_Token_InsertCorrectToken(GWEN_CRYPT_TOKEN *ct, uint32_t gid);
00200 GWENHYWFAR_API GWEN_CRYPT_TOKEN_OPEN_FN GWEN_Crypt_Token_SetOpenFn(GWEN_CRYPT_TOKEN *ct,
00201                                                                    GWEN_CRYPT_TOKEN_OPEN_FN f);
00202 
00203 GWENHYWFAR_API GWEN_CRYPT_TOKEN_CREATE_FN GWEN_Crypt_Token_SetCreateFn(GWEN_CRYPT_TOKEN *ct,
00204                                                                        GWEN_CRYPT_TOKEN_CREATE_FN f);
00205 
00206 GWENHYWFAR_API GWEN_CRYPT_TOKEN_CLOSE_FN GWEN_Crypt_Token_SetCloseFn(GWEN_CRYPT_TOKEN *ct,
00207                                                                      GWEN_CRYPT_TOKEN_CLOSE_FN f);
00208 
00209 GWENHYWFAR_API
00210 GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN GWEN_Crypt_Token_SetGetKeyIdListFn(GWEN_CRYPT_TOKEN *ct,
00211                                                                     GWEN_CRYPT_TOKEN_GETKEYIDLIST_FN f);
00212 
00213 GWENHYWFAR_API GWEN_CRYPT_TOKEN_GETKEYINFO_FN GWEN_Crypt_Token_SetGetKeyInfoFn(GWEN_CRYPT_TOKEN *ct,
00214                                                                                GWEN_CRYPT_TOKEN_GETKEYINFO_FN f);
00215 
00216 GWENHYWFAR_API GWEN_CRYPT_TOKEN_SETKEYINFO_FN GWEN_Crypt_Token_SetSetKeyInfoFn(GWEN_CRYPT_TOKEN *ct,
00217                                                                                GWEN_CRYPT_TOKEN_SETKEYINFO_FN f);
00218 
00219 GWENHYWFAR_API
00220 GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN GWEN_Crypt_Token_SetGetContextIdListFn(GWEN_CRYPT_TOKEN *ct,
00221                                                                             GWEN_CRYPT_TOKEN_GETCONTEXTIDLIST_FN f);
00222 
00223 GWENHYWFAR_API GWEN_CRYPT_TOKEN_GETCONTEXT_FN GWEN_Crypt_Token_SetGetContextFn(GWEN_CRYPT_TOKEN *ct,
00224                                                                                GWEN_CRYPT_TOKEN_GETCONTEXT_FN f);
00225 
00226 GWENHYWFAR_API GWEN_CRYPT_TOKEN_SETCONTEXT_FN GWEN_Crypt_Token_SetSetContextFn(GWEN_CRYPT_TOKEN *ct,
00227                                                                                GWEN_CRYPT_TOKEN_SETCONTEXT_FN f);
00228 
00229 GWENHYWFAR_API GWEN_CRYPT_TOKEN_SIGN_FN GWEN_Crypt_Token_SetSignFn(GWEN_CRYPT_TOKEN *ct,
00230                                                                    GWEN_CRYPT_TOKEN_SIGN_FN f);
00231 
00232 GWENHYWFAR_API GWEN_CRYPT_TOKEN_VERIFY_FN GWEN_Crypt_Token_SetVerifyFn(GWEN_CRYPT_TOKEN *ct,
00233                                                                        GWEN_CRYPT_TOKEN_VERIFY_FN f);
00234 
00235 GWENHYWFAR_API GWEN_CRYPT_TOKEN_ENCIPHER_FN GWEN_Crypt_Token_SetEncipherFn(GWEN_CRYPT_TOKEN *ct,
00236                                                                            GWEN_CRYPT_TOKEN_ENCIPHER_FN f);
00237 
00238 GWENHYWFAR_API GWEN_CRYPT_TOKEN_DECIPHER_FN GWEN_Crypt_Token_SetDecipherFn(GWEN_CRYPT_TOKEN *ct,
00239                                                                            GWEN_CRYPT_TOKEN_DECIPHER_FN f);
00240 
00241 GWENHYWFAR_API GWEN_CRYPT_TOKEN_GENERATEKEY_FN GWEN_Crypt_Token_SetGenerateKeyFn(GWEN_CRYPT_TOKEN *ct,
00242                                                                                  GWEN_CRYPT_TOKEN_GENERATEKEY_FN f);
00243 
00244 GWENHYWFAR_API GWEN_CRYPT_TOKEN_CHANGEPIN_FN GWEN_Crypt_Token_SetChangePinFn(GWEN_CRYPT_TOKEN *ct,
00245                                                                              GWEN_CRYPT_TOKEN_CHANGEPIN_FN f);
00251 #endif
00252 
00253 

Generated on Wed Jul 9 13:12:27 2008 for gwenhywfar by  doxygen 1.5.6