The Smart Card Detective (SCD)
apps.h
Go to the documentation of this file.
00001 
00035 #ifndef _APPS_H_
00036 #define _APPS_H_
00037 
00038 #include <avr/io.h>
00039 
00040 #include "emv.h"
00041 #include "scd_logger.h"
00042 
00044 #define MAX_EXCHANGES 50
00045 
00047 #define MAGIC_BOOT_KEY 0x77
00048 
00050 #define EEPROM_PIN 0x8          
00051 
00053 
00054 #define APP_VIRTUAL_SERIAL_PORT 0x01
00055 
00056 #define APP_FORWARD 0x02
00057 
00058 #define APP_FILTER_GENERATEAC 0x03
00059 
00060 #define APP_TERMINAL 0x04
00061 
00062 #define APP_ERASE_EEPROM 0x05
00063 
00065 #define APPLICATION_COUNT 5
00066 
00068 // These should be in the order of their IDs
00069 static char* appStrings[] = {
00070         "Virtual Serial",
00071                 "Forward and Log", 
00072                 "Filter  amount",
00073                 "Terminal",
00074                 "Erase   EEPROM",
00075                 };
00076 
00077 
00078 /* Global external variables */
00079 extern uint8_t warmResetByte;                   // stores the status of last card reset (warm/cold)
00080 extern CRP* transactionData[MAX_EXCHANGES];     // used to log data
00081 extern uint8_t nTransactions;                       // used to log data
00082 extern uint8_t lcdAvailable;                            // non-zero if LCD is working
00083 extern uint8_t nCounter;                                    // number of transactions
00084 extern uint8_t selected;                        // ID of application selected
00085 extern uint8_t bootkey;                         // used for bootloader jump
00086 extern volatile uint32_t usCounter;                         // micro-second counter
00087 
00089 uint8_t VirtualSerial();
00090 
00092 uint8_t SerialInterface();
00093 
00095 void EraseEEPROM();
00096 
00098 void ResetEEPROM();
00099 
00101 void RunBootloader();
00102 
00104 uint8_t ForwardData(log_struct_t *logger);
00105 
00107 uint8_t ForwardDataLogAC(log_struct_t *logger);
00108 
00110 uint8_t FilterGenerateAC(log_struct_t *logger);
00111 
00113 uint8_t StorePIN(log_struct_t *logger);
00114 
00116 uint8_t ForwardAndChangePIN(log_struct_t *logger);
00117 
00119 uint8_t Terminal(log_struct_t *logger);
00120 
00122 void WriteLogEEPROM(log_struct_t *logger);
00123 
00124 #endif // _APPS_H_
00125 
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines