]>
Commit | Line | Data |
---|---|---|
5acd09bd | 1 | //----------------------------------------------------------------------------- |
2 | // Frederik Möllers - August 2012 | |
3 | // | |
4 | // This code is licensed to you under the terms of the GNU GPL, version 2 or, | |
5 | // at your option, any later version. See the LICENSE.txt file for the text of | |
6 | // the license. | |
7 | //----------------------------------------------------------------------------- | |
8 | // Routines to support the German eletronic "Personalausweis" (ID card) | |
9 | //----------------------------------------------------------------------------- | |
10 | ||
11 | #ifndef __EPA_H | |
12 | #define __EPA_H | |
13 | ||
00e524aa | 14 | #include "cmd.h" |
15 | #include "iso14443a.h" | |
16 | #include "iso14443b.h" | |
17 | ||
5acd09bd | 18 | // this struct is used by EPA_Parse_CardAccess and contains info about the |
19 | // PACE protocol supported by the chip | |
20 | typedef struct { | |
21 | uint8_t oid[10]; | |
22 | uint8_t version; | |
23 | uint8_t parameter_id; | |
24 | } pace_version_info_t; | |
25 | ||
a62bf3af | 26 | // note: EPA_PACE_Collect_Nonce and EPA_PACE_Replay are declared in apps.h |
5acd09bd | 27 | |
28 | // general functions | |
29 | void EPA_Finish(); | |
30 | size_t EPA_Parse_CardAccess(uint8_t *data, | |
31 | size_t length, | |
32 | pace_version_info_t *pace_info); | |
33 | int EPA_Read_CardAccess(uint8_t *buffer, size_t max_length); | |
34 | int EPA_Setup(); | |
35 | ||
36 | // PACE related functions | |
37 | int EPA_PACE_MSE_Set_AT(pace_version_info_t pace_version_info, uint8_t password); | |
38 | int EPA_PACE_Get_Nonce(uint8_t requested_length, uint8_t *nonce); | |
39 | ||
d0f3338e | 40 | #endif /* __EPA_H */ |