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 */ |