1 /***************************************************************************
2  $RCSfile$
3                              -------------------
4     cvs         : $Id: crypttoken.h 1113 2007-01-10 09:14:16Z martin $
5     begin       : Wed Mar 16 2005
6     copyright   : (C) 2005 by Martin Preuss
7     email       : martin@libchipcard.de
8 
9  ***************************************************************************
10  *          Please see toplevel file COPYING for license details           *
11  ***************************************************************************/
12 
13 
14 #ifndef GWEN_CRYPT_CRYPTDEFS_H
15 #define GWEN_CRYPT_CRYPTDEFS_H
16 
17 
18 #include <gwenhywfar/gwenhywfarapi.h>
19 
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
25 
26 typedef enum {
27   GWEN_Crypt_PinType_Unknown=-1,
28   GWEN_Crypt_PinType_None=0,
29   GWEN_Crypt_PinType_Access,
30   GWEN_Crypt_PinType_Manage
31 }
32 GWEN_CRYPT_PINTYPE;
33 
34 GWENHYWFAR_API GWEN_CRYPT_PINTYPE GWEN_Crypt_PinType_fromString(const char *s);
35 GWENHYWFAR_API const char *GWEN_Crypt_PinType_toString(GWEN_CRYPT_PINTYPE pt);
36 
37 
38 
39 typedef enum {
40   GWEN_Crypt_PinEncoding_Unknown=-1,
41   GWEN_Crypt_PinEncoding_None=0,
42   GWEN_Crypt_PinEncoding_Bin,
43   GWEN_Crypt_PinEncoding_Bcd,
44   GWEN_Crypt_PinEncoding_Ascii,
45   GWEN_Crypt_PinEncoding_FPin2
46 } GWEN_CRYPT_PINENCODING;
47 
48 GWENHYWFAR_API GWEN_CRYPT_PINENCODING GWEN_Crypt_PinEncoding_fromString(const char *s);
49 GWENHYWFAR_API const char *GWEN_Crypt_PinEncoding_toString(GWEN_CRYPT_PINENCODING pe);
50 
51 
52 GWENHYWFAR_API int GWEN_Crypt_TransformPin(GWEN_CRYPT_PINENCODING peSrc,
53                                            GWEN_CRYPT_PINENCODING peDst,
54                                            unsigned char *buffer,
55                                            unsigned int bufLength,
56                                            unsigned int *pinLength);
57 
58 GWENHYWFAR_API int GWEN_Crypt_KeyDataFromText(const char *text,
59                                               unsigned char *buffer,
60                                               unsigned int bufLength);
61 
62 GWENHYWFAR_API void GWEN_Crypt_Random(int quality, uint8_t *buffer, uint32_t len);
63 
64 
65 #ifdef __cplusplus
66 }
67 #endif
68 
69 
70 #endif
71 
72