X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/b0127e65f1bef754e0ac72893e2ba99f9ca7f106..5acd09bdfb9b3777585f3875190e942e259a98f0:/armsrc/epa.h diff --git a/armsrc/epa.h b/armsrc/epa.h new file mode 100644 index 00000000..730652b7 --- /dev/null +++ b/armsrc/epa.h @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------------- +// Frederik Möllers - August 2012 +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Routines to support the German eletronic "Personalausweis" (ID card) +//----------------------------------------------------------------------------- + +#ifndef __EPA_H +#define __EPA_H + +// this struct is used by EPA_Parse_CardAccess and contains info about the +// PACE protocol supported by the chip +typedef struct { + uint8_t oid[10]; + uint8_t version; + uint8_t parameter_id; +} pace_version_info_t; + +// note: EPA_PACE_GetNonce is declared in apps.h + +// general functions +void EPA_Finish(); +size_t EPA_Parse_CardAccess(uint8_t *data, + size_t length, + pace_version_info_t *pace_info); +int EPA_Read_CardAccess(uint8_t *buffer, size_t max_length); +int EPA_Setup(); + +// PACE related functions +int EPA_PACE_MSE_Set_AT(pace_version_info_t pace_version_info, uint8_t password); +int EPA_PACE_Get_Nonce(uint8_t requested_length, uint8_t *nonce); + +#endif /* __EPA_H */ \ No newline at end of file