libicdlc
library for IC driving license card

libicdlc/icdlcard.h

説明を見る。
00001 
00051 #if defined(_MSC_VER) && 1000 < _MSC_VER
00052 #pragma once
00053 #endif
00054 
00055 #ifndef ICDL_0B6C1D32_C9E5_4823_A60F_BE457E03FE95_INCLUDE_GUARD
00056 #define ICDL_0B6C1D32_C9E5_4823_A60F_BE457E03FE95_INCLUDE_GUARD
00057 
00058 #if defined(ICDL_PHOTO_DECODE_ENABLE) || defined(ICDL_EUDC_DECODE_ENABLE)
00059 #include <windows.h>
00060 #endif
00061 
00062 #if defined(_MSC_VER)
00063 
00064 typedef unsigned char     uint8_t;
00065 typedef   signed char      int8_t;
00066 typedef unsigned short   uint16_t;
00067 typedef   signed short    int16_t;
00068 typedef unsigned int     uint32_t;
00069 typedef   signed int      int32_t;
00070 typedef unsigned __int64 uint64_t;
00071 typedef   signed __int64  int64_t;
00072 
00073 #else
00074 
00075 #include <inttypes.h>
00076 
00077 #endif
00078 
00079 
00080 
00081 static const uint16_t SW_NO_ERROR                                  = 0x9000;
00082 
00083 static const uint16_t SW_SELECTED_FILE_INVALIDATED                 = 0x6283;
00084 
00085 static const uint16_t SW_VERIFICATION_FAILED                       = 0x6300;
00086 static const uint16_t SW_VERIFICATION_FAILED_RETRY_COUNTER_0       = 0x63C0;
00087 static const uint16_t SW_VERIFICATION_FAILED_RETRY_COUNTER_1       = 0x63C1;
00088 static const uint16_t SW_VERIFICATION_FAILED_RETRY_COUNTER_2       = 0x63C2;
00089 static const uint16_t SW_VERIFICATION_FAILED_RETRY_COUNTER_3       = 0x63C3;
00090 
00091 static const uint16_t SW_NON_VOLATILE_MEMORY_UNCHANGED             = 0x6400;
00092 
00093 static const uint16_t SW_MEMORY_FAILURE                            = 0x6581;
00094 static const uint16_t SW_WRONG_LENGTH                              = 0x6700;
00095 
00096 static const uint16_t SW_LOGICAL_CHANNEL_NOT_SUPPORTED             = 0x6881;
00097 static const uint16_t SW_SECURE_MESSAGING_NOT_SUPPORTED            = 0x6882;
00098 
00099 static const uint16_t SW_COMMAND_INCOMPATIBLE_WITH_FILE_STRUCTURE  = 0x6981;
00100 static const uint16_t SW_SECURITY_STATUS_NOT_SATISFIED             = 0x6982;
00101 static const uint16_t SW_REFERENCED_DATA_INVALIDATED               = 0x6984;
00102 static const uint16_t SW_NO_CURRENT_EF                             = 0x6986;
00103 
00104 static const uint16_t SW_FUNCTION_NOT_SUPPORTED                    = 0x6A81;
00105 static const uint16_t SW_FILE_NOT_FOUND                            = 0x6A82;
00106 static const uint16_t SW_INCORRECT_PARAMETERS_P1_P2                = 0x6A86;
00107 static const uint16_t SW_Lc_INCONSISTENT_WITH_P1_P2                = 0x6A87;
00108 static const uint16_t SW_REFERENCED_DATA_NOT_FOUND                 = 0x6A88;
00109 static const uint16_t SW_OFFSET_OUTSIDE_THE_EF                     = 0x6B00;
00110 static const uint16_t SW_INSTRUCTION_CODE_NOT_SUPPORTED_OR_INVALID = 0x6D00;
00111 static const uint16_t SW_CLASS_NOT_SUPPORTED                       = 0x6E00;
00112 
00113 
00114 static const uint16_t DPIN = (uint16_t)‾0;
00115 
00116 
00117 static const uint16_t EF_ID_MF_EF01  = 0x2F01;
00118 static const uint16_t EF_ID_MF_EF02  = 0x000A;
00119 static const uint16_t EF_ID_MF_IEF01 = 0x0001;
00120 static const uint16_t EF_ID_MF_IEF02 = 0x0002;
00121 static const uint16_t EF_ID_DF1_EF01 = 0x0001;
00122 static const uint16_t EF_ID_DF1_EF02 = 0x0002;
00123 static const uint16_t EF_ID_DF1_EF03 = 0x0003;
00124 static const uint16_t EF_ID_DF1_EF04 = 0x0004;
00125 static const uint16_t EF_ID_DF1_EF05 = 0x0005;
00126 static const uint16_t EF_ID_DF1_EF06 = 0x0006;
00127 static const uint16_t EF_ID_DF1_EF07 = 0x0007;
00128 static const uint16_t EF_ID_DF2_EF01 = 0x0001;
00129 static const uint16_t EF_ID_DF3_EF01 = 0x0001;
00130 
00131 
00132 static const uint8_t AID_DF1[16] = { 0xA0, 0x00, 0x00, 0x02, 0x31,
00133                                      0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
00134 static const uint8_t AID_DF2[16] = { 0xA0, 0x00, 0x00, 0x02, 0x31,
00135                                      0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
00136 static const uint8_t AID_DF3[16] = { 0xA0, 0x00, 0x00, 0x02, 0x48,
00137                                      0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
00138 
00139 
00140 static const uint8_t LICENSE_TYPE_YET_ACQUIRED[6]          = {    '0','0','0','0','0','0'};
00141 static const uint8_t LICENSE_TYPE_UNKNOWN_DATE_ACQUIRED[7] = {'*','*','*','*','*','*','*'};
00142 
00143 
00144 static const uint16_t TAG_CARD_PUBLISHER = 0x45;
00145 static const uint16_t TAG_PREVIOUS_ISSUE = 0x46;
00146 static const size_t   MAXLEN_CARD_PUBLISHER = 11;
00147 static const size_t   MAXLEN_PREVIOUS_ISSUE = 2;
00148 
00149 
00150 static const uint16_t TAG_PIN_CONFIG = 0x05;
00151 static const size_t   MAXLEN_PIN_CONFIG = 1;
00152 
00153 static const uint8_t  PIN_ENABLE      = 0x01;
00154 static const uint8_t  PIN_DISABLE     = 0x00;
00155 static const uint8_t  PIN_ENABLE_MASK = 0x01;
00156 
00157 
00158 static const uint16_t TAG_JISX_REVISION                                          = 0x11;
00159 static const uint16_t TAG_NAME                                                   = 0x12;
00160 static const uint16_t TAG_PHONETIC_NAME                                          = 0x13;
00161 static const uint16_t TAG_ALIAS_NAME                                             = 0x14;
00162 static const uint16_t TAG_UNIFIED_NAME                                           = 0x15;
00163 static const uint16_t TAG_BIRTHDAY                                               = 0x16;
00164 static const uint16_t TAG_DOMICILE                                               = 0x17;
00165 static const uint16_t TAG_ISSUE_DATE                                             = 0x18;
00166 static const uint16_t TAG_REFERENCE_NUMBER                                       = 0x19;
00167 static const uint16_t TAG_LICENSE_COLOR                                          = 0x1A;
00168 static const uint16_t TAG_EXPIRATION_DATE                                        = 0x1B;
00169 static const uint16_t TAG_LICENSE_REQUIREMENT1                                   = 0x1C;
00170 static const uint16_t TAG_LICENSE_REQUIREMENT2                                   = 0x1D;
00171 static const uint16_t TAG_LICENSE_REQUIREMENT3                                   = 0x1E;
00172 static const uint16_t TAG_LICENSE_REQUIREMENT4                                   = 0x1F;
00173 static const uint16_t TAG_POLICE_AUTHORITY_NAME                                  = 0x20;
00174 static const uint16_t TAG_LICENSE_NUMBER                                         = 0x21;
00175 static const uint16_t TAG_LICENSE_DATE_MOTORCYCLE_OR_SMALL_OR_MOPED              = 0x22;
00176 static const uint16_t TAG_LICENSE_DATE_MISC                                      = 0x23;
00177 static const uint16_t TAG_LICENSE_DATE_CLASS_2                                   = 0x24;
00178 static const uint16_t TAG_LICENSE_DATE_LARGE_SIZED_MOTOR_VEHICLE                 = 0x25;
00179 static const uint16_t TAG_LICENSE_DATE_MOTOR_VEHICLE                             = 0x26;
00180 static const uint16_t TAG_LICENSE_DATE_LARGE_SIZED_SPECIAL_MOTOR_VEHICLE         = 0x27;
00181 static const uint16_t TAG_LICENSE_DATE_LARGE_SIZED_MOTORCYCLE                    = 0x28;
00182 static const uint16_t TAG_LICENSE_DATE_MOTORCYCLE                                = 0x29;
00183 static const uint16_t TAG_LICENSE_DATE_SMALL_SIZED_SPECIAL_MOTOR_VEHICLE         = 0x2A;
00184 static const uint16_t TAG_LICENSE_DATE_MOPED                                     = 0x2B;
00185 static const uint16_t TAG_LICENSE_DATE_TOWING                                    = 0x2C;
00186 static const uint16_t TAG_LICENSE_DATE_CLASS_2_LARGE_SIZED_MOTOR_VEHICLE         = 0x2D;
00187 static const uint16_t TAG_LICENSE_DATE_CLASS_2_MOTOR_VEHICLE                     = 0x2E;
00188 static const uint16_t TAG_LICENSE_DATE_CLASS_2_LARGE_SIZED_SPECIAL_MOTOR_VEHICLE = 0x2F;
00189 static const uint16_t TAG_LICENSE_DATE_CLASS_2_TOWING                            = 0x30;
00190 static const uint16_t TAG_LICENSE_DATE_MIDSIZE_MOTOR_VEHICLE                     = 0x31;
00191 static const uint16_t TAG_LICENSE_DATE_CLASS_2_MIDSIZE_MOTOR_VEHICLE             = 0x32;
00192 
00193 static const size_t   MAXLEN_JISX_REVISION                                          =  1;
00194 static const size_t   MAXLEN_NAME                                                   = 72;
00195 static const size_t   MAXLEN_PHONETIC_NAME                                          = 32;
00196 static const size_t   MAXLEN_ALIAS_NAME                                             = 32;
00197 static const size_t   MAXLEN_UNIFIED_NAME                                           = 16;
00198 static const size_t   MAXLEN_BIRTHDAY                                               =  7;
00199 static const size_t   MAXLEN_DOMICILE                                               = 80;
00200 static const size_t   MAXLEN_ISSUE_DATE                                             =  7;
00201 static const size_t   MAXLEN_REFERENCE_NUMBER                                       =  5;
00202 static const size_t   MAXLEN_LICENSE_COLOR                                          =  6;
00203 static const size_t   MAXLEN_EXPIRATION_DATE                                        =  7;
00204 static const size_t   MAXLEN_LICENSE_REQUIREMENT1                                   = 80;
00205 static const size_t   MAXLEN_LICENSE_REQUIREMENT2                                   = 80;
00206 static const size_t   MAXLEN_LICENSE_REQUIREMENT3                                   = 80;
00207 static const size_t   MAXLEN_LICENSE_REQUIREMENT4                                   = 80;
00208 static const size_t   MAXLEN_POLICE_AUTHORITY_NAME                                  = 24;
00209 static const size_t   MAXLEN_LICENSE_NUMBER                                         = 12;
00210 static const size_t   MAXLEN_LICENSE_DATE_MOTORCYCLE_OR_SMALL_OR_MOPED              =  7;
00211 static const size_t   MAXLEN_LICENSE_DATE_MISC                                      =  7;
00212 static const size_t   MAXLEN_LICENSE_DATE_CLASS_2                                   =  7;
00213 static const size_t   MAXLEN_LICENSE_DATE_LARGE_SIZED_MOTOR_VEHICLE                 =  7;
00214 static const size_t   MAXLEN_LICENSE_DATE_MOTOR_VEHICLE                             =  7;
00215 static const size_t   MAXLEN_LICENSE_DATE_LARGE_SIZED_SPECIAL_MOTOR_VEHICLE         =  7;
00216 static const size_t   MAXLEN_LICENSE_DATE_LARGE_SIZED_MOTORCYCLE                    =  7;
00217 static const size_t   MAXLEN_LICENSE_DATE_MOTORCYCLE                                =  7;
00218 static const size_t   MAXLEN_LICENSE_DATE_SMALL_SIZED_SPECIAL_MOTOR_VEHICLE         =  7;
00219 static const size_t   MAXLEN_LICENSE_DATE_MOPED                                     =  7;
00220 static const size_t   MAXLEN_LICENSE_DATE_TOWING                                    =  7;
00221 static const size_t   MAXLEN_LICENSE_DATE_CLASS_2_LARGE_SIZED_MOTOR_VEHICLE         =  7;
00222 static const size_t   MAXLEN_LICENSE_DATE_CLASS_2_MOTOR_VEHICLE                     =  7;
00223 static const size_t   MAXLEN_LICENSE_DATE_CLASS_2_LARGE_SIZED_SPECIAL_MOTOR_VEHICLE =  7;
00224 static const size_t   MAXLEN_LICENSE_DATE_CLASS_2_TOWING                            =  7;
00225 static const size_t   MAXLEN_LICENSE_DATE_MIDSIZE_MOTOR_VEHICLE                     =  7;
00226 static const size_t   MAXLEN_LICENSE_DATE_CLASS_2_MIDSIZE_MOTOR_VEHICLE             =  7;
00227 
00228 
00229 static const uint16_t TAG_REGISTERED_DOMICILE = 0x41;
00230 
00231 static const size_t   MAXLEN_REGISTERED_DOMICILE = 80;
00232 
00233 
00234 static const uint16_t TAG_EUDC1 = 0x48;
00235 static const uint16_t TAG_EUDC2 = 0x49;
00236 
00237 
00238 static const uint16_t TAG_APPEND_STATUS                                         = 0x50;
00239 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME1                = 0x51;
00240 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME2                = 0x52;
00241 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME3                = 0x53;
00242 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME4                = 0x54;
00243 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME5                = 0x55;
00244 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME6                = 0x56;
00245 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME7                = 0x57;
00246 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME8                = 0x58;
00247 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME9                = 0x59;
00248 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME10               = 0x5A;
00249 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME11               = 0x5B;
00250 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME12               = 0x5C;
00251 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME13               = 0x5D;
00252 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME14               = 0x5E;
00253 static const uint16_t TAG_APPEND_DOMICILE_POLICE_AUTHORITY_NAME15               = 0x5F;
00254 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME1                = 0x60;
00255 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME2                = 0x61;
00256 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME3                = 0x62;
00257 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME4                = 0x63;
00258 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME5                = 0x64;
00259 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME6                = 0x65;
00260 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME7                = 0x66;
00261 static const uint16_t TAG_APPEND_NAME_AND_POLICE_AUTHORITY_NAME8                = 0x67;
00262 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME1       = 0x68;
00263 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME2       = 0x69;
00264 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME3       = 0x6A;
00265 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME4       = 0x6B;
00266 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME5       = 0x6C;
00267 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME6       = 0x6D;
00268 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME7       = 0x6E;
00269 static const uint16_t TAG_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME8       = 0x6F;
00270 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME1            = 0x70;
00271 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME2            = 0x71;
00272 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME3            = 0x72;
00273 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME4            = 0x73;
00274 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME5            = 0x74;
00275 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME6            = 0x75;
00276 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME7            = 0x76;
00277 static const uint16_t TAG_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME8            = 0x77;
00278 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME1 = 0x78;
00279 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME2 = 0x79;
00280 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME3 = 0x7A;
00281 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME4 = 0x7B;
00282 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME5 = 0x7C;
00283 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME6 = 0x7D;
00284 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME7 = 0x7E;
00285 static const uint16_t TAG_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME8 = 0x7F;
00286 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME1   = 0x80;
00287 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME2   = 0x81;
00288 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME3   = 0x82;
00289 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME4   = 0x83;
00290 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME5   = 0x84;
00291 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME6   = 0x85;
00292 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME7   = 0x86;
00293 static const uint16_t TAG_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME8   = 0x87;
00294 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME1              = 0x88;
00295 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME2              = 0x89;
00296 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME3              = 0x8A;
00297 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME4              = 0x8B;
00298 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME5              = 0x8C;
00299 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME6              = 0x8D;
00300 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME7              = 0x8E;
00301 static const uint16_t TAG_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME8              = 0x8F;
00302 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME1               = 0x90;
00303 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME2               = 0x91;
00304 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME3               = 0x92;
00305 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME4               = 0x93;
00306 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME5               = 0x94;
00307 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME6               = 0x95;
00308 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME7               = 0x96;
00309 static const uint16_t TAG_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME8               = 0x97;
00310 
00311 static const size_t   MAXLEN_APPEND_STATUS                                         =   1;
00312 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME1                =  25;
00313 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME2                =  25;
00314 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME3                =  25;
00315 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME4                =  25;
00316 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME5                =  25;
00317 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME6                =  25;
00318 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME7                =  25;
00319 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME8                =  25;
00320 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME9                =  25;
00321 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME10               =  25;
00322 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME11               =  25;
00323 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME12               =  25;
00324 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME13               =  25;
00325 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME14               =  25;
00326 static const size_t   MAXLEN_APPEND_DOMICILE_POLICE_AUTHORITY_NAME15               =  25;
00327 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME1                =  97;
00328 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME2                =  97;
00329 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME3                =  97;
00330 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME4                =  97;
00331 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME5                =  97;
00332 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME6                =  97;
00333 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME7                =  97;
00334 static const size_t   MAXLEN_APPEND_NAME_AND_POLICE_AUTHORITY_NAME8                =  97;
00335 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME1       =  57;
00336 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME2       =  57;
00337 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME3       =  57;
00338 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME4       =  57;
00339 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME5       =  57;
00340 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME6       =  57;
00341 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME7       =  57;
00342 static const size_t   MAXLEN_APPEND_PHONETIC_NAME_AND_POLICE_AUTHORITY_NAME8       =  57;
00343 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME1            = 105;
00344 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME2            = 105;
00345 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME3            = 105;
00346 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME4            = 105;
00347 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME5            = 105;
00348 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME6            = 105;
00349 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME7            = 105;
00350 static const size_t   MAXLEN_APPEND_DOMICILE_AND_POLICE_AUTHORITY_NAME8            = 105;
00351 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME1 = 105;
00352 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME2 = 105;
00353 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME3 = 105;
00354 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME4 = 105;
00355 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME5 = 105;
00356 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME6 = 105;
00357 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME7 = 105;
00358 static const size_t   MAXLEN_APPEND_LICENSE_REQUIREMENT_AND_POLICE_AUTHORITY_NAME8 = 105;
00359 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME1   = 105;
00360 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME2   = 105;
00361 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME3   = 105;
00362 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME4   = 105;
00363 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME5   = 105;
00364 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME6   = 105;
00365 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME7   = 105;
00366 static const size_t   MAXLEN_APPEND_CONDITION_RELEASE_AND_POLICE_AUTHORITY_NAME8   = 105;
00367 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME1              = 105;
00368 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME2              = 105;
00369 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME3              = 105;
00370 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME4              = 105;
00371 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME5              = 105;
00372 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME6              = 105;
00373 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME7              = 105;
00374 static const size_t   MAXLEN_APPEND_REMARK_AND_POLICE_AUTHORITY_NAME8              = 105;
00375 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME1               = 105;
00376 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME2               = 105;
00377 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME3               = 105;
00378 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME4               = 105;
00379 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME5               = 105;
00380 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME6               = 105;
00381 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME7               = 105;
00382 static const size_t   MAXLEN_APPEND_SPARE_AND_POLICE_AUTHORITY_NAME8               = 105;
00383 
00384 
00385 static const uint16_t TAG_EUDC_APPEND_STATUS = 0xA0;
00386 static const uint16_t TAG_EUDC3              = 0xA1;
00387 static const uint16_t TAG_EUDC4              = 0xA2;
00388 static const uint16_t TAG_EUDC5              = 0xA3;
00389 static const uint16_t TAG_EUDC6              = 0xA4;
00390 static const uint16_t TAG_EUDC7              = 0xA5;
00391 
00392 
00393 static const uint16_t TAG_REGISTERED_DOMICILE_APPEND_STATUS                     = 0xAA;
00394 static const uint16_t TAG_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME1 = 0xAB;
00395 static const uint16_t TAG_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME2 = 0xAC;
00396 static const uint16_t TAG_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME3 = 0xAD;
00397 static const uint16_t TAG_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME4 = 0xAE;
00398 static const uint16_t TAG_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME5 = 0xAF;
00399 
00400 static const size_t   MAXLEN_REGISTERED_DOMICILE_APPEND_STATUS                     =   1;
00401 static const size_t   MAXLEN_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME1 = 105;
00402 static const size_t   MAXLEN_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME2 = 105;
00403 static const size_t   MAXLEN_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME3 = 105;
00404 static const size_t   MAXLEN_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME4 = 105;
00405 static const size_t   MAXLEN_APPEND_REGISTERED_DOMICILE_AND_POLICE_AUTHORITY_NAME5 = 105;
00406 
00407 
00408 static const uint16_t TAG_CHECK_CODE       = 0xB1;
00409 static const uint16_t TAG_SERIAL_NUMBER    = 0xB2;
00410 static const uint16_t TAG_CHECK_CODE_RFU   = 0xB3;
00411 static const uint16_t TAG_PUBLISHER_NAME   = 0xB4;
00412 static const uint16_t TAG_PRINCIPAL_NAME   = 0xB5;
00413 static const uint16_t TAG_PRINCIPAL_KEY_ID = 0xB6;
00414 
00415 static const size_t   MAXLEN_CHECK_CODE       = 256;
00416 static const size_t   MAXLEN_SERIAL_NUMBER    =  16;
00417 static const size_t   MAXLEN_CHECK_CODE_RFU   =  48;
00418 static const size_t   MAXLEN_PUBLISHER_NAME   =  80;
00419 static const size_t   MAXLEN_PRINCIPAL_NAME   = 130;
00420 static const size_t   MAXLEN_PRINCIPAL_KEY_ID =  32;
00421 
00422 
00423 static const uint16_t TAG_PHOTO    = 0x5F40;
00424 
00425 static const size_t   MAXLEN_PHOTO = 2000;
00426 
00427 
00428 static const uint8_t APPEND_STATUS_MARKER = 0x11;
00429 
00430 
00431 static const uint8_t CIPHER_ID_TRIPLE_DES = 0x04;
00432 
00433 
00434 static const uint8_t CARD_MANUFACTURER_RFU = 0xFF;
00435 
00436 
00437 static const uint8_t ERA_ID_UNKNOWN = 0x30;     
00438 static const uint8_t ERA_ID_MEIJI   = 0x31;     
00439 static const uint8_t ERA_ID_TAISHO  = 0x32;     
00440 static const uint8_t ERA_ID_SHOWA   = 0x33;     
00441 static const uint8_t ERA_ID_HEISEI  = 0x34;     
00442 
00444 typedef struct {
00445         uint8_t era_id; 
00446         int             year;   
00447         int             month;  
00448         int             day;    
00449 } ICDL_DATE_TYPE;
00450 
00452 typedef struct {
00453         int             size;   
00454         size_t  length; 
00455         uint8_t*data;   
00456 } ICDL_EUDC_TYPE;
00457 
00458 #ifdef __cplusplus
00459 extern "C" {
00460 #endif
00461 
00462 #if defined(ICDL_PHOTO_DECODE_ENABLE)
00463 
00472 HBITMAP icdl_photo_to_bitmap(const unsigned char * data, size_t size);
00473 
00474 #endif
00475 
00476 #if defined(ICDL_EUDC_DECODE_ENABLE)
00477 
00487 HBITMAP icdl_eudc_to_bitmap(const unsigned char * data, size_t size, int char_dots);
00488 
00489 #endif
00490 
00491 #ifdef __cplusplus
00492 }
00493 #endif
00494 
00495 #endif
 全て クラス ファイル 関数 変数 マクロ定義