]>
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 | ||
14 | // this struct is used by EPA_Parse_CardAccess and contains info about the | |
15 | // PACE protocol supported by the chip | |
16 | typedef struct { | |
17 | uint8_t oid[10]; | |
18 | uint8_t version; | |
19 | uint8_t parameter_id; | |
20 | } pace_version_info_t; | |
21 | ||
4be27083 | 22 | // note: EPA_PACE_Collect_Nonce and EPA_PACE_Replay are declared in apps.h |
5acd09bd | 23 | |
24 | // general functions | |
25 | void EPA_Finish(); | |
26 | size_t EPA_Parse_CardAccess(uint8_t *data, | |
27 | size_t length, | |
28 | pace_version_info_t *pace_info); | |
29 | int EPA_Read_CardAccess(uint8_t *buffer, size_t max_length); | |
30 | int EPA_Setup(); | |
31 | ||
32 | // PACE related functions | |
33 | int EPA_PACE_MSE_Set_AT(pace_version_info_t pace_version_info, uint8_t password); | |
34 | int EPA_PACE_Get_Nonce(uint8_t requested_length, uint8_t *nonce); | |
35 | ||
3bb07d96 | 36 | #endif /* __EPA_H */ |