ICDataElement.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #ifndef __ICDATA_ELEMENT_H
  2. #define __ICDATA_ELEMENT_H
  3. #pragma once
  4. #include <string>
  5. #include <vector>
  6. using namespace std;
  7. #include "DeviceBaseClass.h"
  8. #define TAGLENFLAG 0x1f
  9. #define DATALENFLAG 0x80
  10. #define DATALENVALUE 0x7f
  11. #define CARDHOLDERVERIFYFLAG 0x10
  12. //TVR
  13. #define TVR_IC_Data_Miss 0x20
  14. #define TVR_CVM_Unkown 0x40
  15. #define TVR_CVM_Failed 0x80
  16. #define TVR_APP_VERSION_UNMATCH 0x80
  17. const int TVR_ISSUER_BANK_AUTH_FAIL = 0x40;
  18. //TSI
  19. const int TSI_CARDHOLDER_VERIFY = 0x40;
  20. const int TSI_TERM_RISK_MANAGE = 0x08;
  21. const int TSI_ISSUER_BANK_AUTH = 0x10;
  22. //AIP
  23. const int AIP_CARDHOLDER_VERIFY =0x10;
  24. const int AIP_TERM_RISK_MANAGE = 0x08;
  25. const int AIP_ISSUER_BANK_AUTH = 0x04;
  26. //定义GAC指令参数
  27. const BYTE CLS_GENAC = 0x80;
  28. const BYTE CLS_EX_AUTH = 0x00;
  29. const BYTE CLS_GET_RESPONSE = 0x00;
  30. const BYTE INS_GENAC = 0xAE;
  31. const BYTE INS_EX_AUTH = 0x82;
  32. const BYTE INS_GET_RESPONSE = 0xc0;
  33. #define P2_GENAC 0x00
  34. #define P1_GENAC_AAC 0x00
  35. #define P1_GENAC_TC 0x40
  36. #define P1_GENAC_ARQC 0x80
  37. #define P1_GENAC_CDA 0x10
  38. struct CommandData
  39. {
  40. //CommandData(BYTE bCls,BYTE bIns,BYTE bP1,BYTE bP2,BYTE bLc,LPBYTE* bPData,LPBYTE bLe)
  41. //{
  42. // cls = bCls;
  43. // ins = bIns;
  44. // p1 = bP1;
  45. // p2 = bP2;
  46. // lc = bLc;
  47. // pData = *bPData;
  48. // le = *bLe;
  49. //}
  50. BYTE cls;
  51. BYTE ins;
  52. BYTE p1;
  53. BYTE p2;
  54. BYTE lc;
  55. LPBYTE pData;
  56. BYTE le;
  57. };
  58. struct AIDData
  59. {
  60. LPBYTE aid;
  61. BYTE len;
  62. BYTE asiFlag;//oiltest read from machine 0 partly;1 completed
  63. };
  64. struct ADFRecord
  65. {
  66. ADFRecord()
  67. {
  68. name = appLabel = priName = NULL;
  69. appPriID = 0x00;
  70. nameLen=appLabelLen=priNameLen=appPriIDLen=0;
  71. }
  72. LPBYTE name;
  73. LPBYTE appLabel;
  74. LPBYTE priName;
  75. BYTE appPriID;
  76. int nameLen,appLabelLen,priNameLen,appPriIDLen;
  77. };
  78. struct PSEData
  79. {
  80. int level;
  81. bool model;
  82. bool mandotory;
  83. string tag;
  84. string value;
  85. };
  86. struct ICData
  87. {
  88. ICData(bool f,BYTE b0,BYTE b1,int lev=0,DWORD len = 0,int num = 0,LPBYTE pData=NULL)
  89. {
  90. level = lev;
  91. tag[0] = b0;
  92. tag[1] = b1;
  93. bForm = f;
  94. lenth = len;
  95. value = pData;
  96. }
  97. ICData()
  98. {
  99. lenth = 0;
  100. value = NULL;
  101. }
  102. int level;
  103. BYTE tag[2];
  104. bool bForm;
  105. int num;//标签是模板时表示所含tag数目
  106. DWORD lenth;
  107. LPBYTE value;
  108. };
  109. #endif //