22 #ifndef OPGP_GLOBALPLATFORM_H
23 #define OPGP_GLOBALPLATFORM_H
36 #define max(a,b) (((a)>(b))?(a):(b))
39 #define min(a,b) (((a)>(b))?(b):(a))
52 #define APDU_COMMAND_LEN 261
53 #define APDU_RESPONSE_LEN 258
56 static const BYTE OPGP_VISA_DEFAULT_KEY[16] = { 0x40, 0x41, 0x42, 0x43, 0x44,
57 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F };
60 static const BYTE OPGP_GEMXPRESSO_DEFAULT_KEY[16] = { 0x47, 0x45, 0x4d, 0x58,
61 0x50, 0x52, 0x45, 0x53, 0x53, 0x4f, 0x53, 0x41, 0x4d, 0x50, 0x4c, 0x45 };
63 static const BYTE GP211_CARD_MANAGER_AID[7] = { 0xA0, 0x00, 0x00, 0x01, 0x51,
68 static const BYTE GP231_ISD_AID[8] = { 0xA0, 0x00, 0x00, 0x01, 0x51, 0x00, 0x00,
71 static const BYTE GP211_CARD_MANAGER_AID_ALT1[8] = { 0xA0, 0x00, 0x00, 0x00,
72 0x03, 0x00, 0x00, 0x00 };
74 #define GP211_LIFE_CYCLE_LOAD_FILE_LOADED 0x01
75 #define GP211_LIFE_CYCLE_CARD_OP_READY 0x01
76 #define GP211_LIFE_CYCLE_CARD_INITIALIZED 0x07
77 #define GP211_LIFE_CYCLE_CARD_SECURED 0x0f
78 #define GP211_LIFE_CYCLE_CARD_LOCKED 0x7f
79 #define GP211_LIFE_CYCLE_CARD_TERMINATED 0xff
80 #define GP211_LIFE_CYCLE_APPLICATION_INSTALLED 0x03
81 #define GP211_LIFE_CYCLE_APPLICATION_SELECTABLE 0x07
82 #define GP211_LIFE_CYCLE_APPLICATION_LOCKED 0xff
83 #define GP211_LIFE_CYCLE_SECURITY_DOMAIN_INSTALLED 0x03
84 #define GP211_LIFE_CYCLE_SECURITY_DOMAIN_SELECTABLE 0x07
85 #define GP211_LIFE_CYCLE_SECURITY_DOMAIN_PERSONALIZED 0xff
86 #define GP211_LIFE_CYCLE_SECURITY_DOMAIN_LOCKED 0xff
90 #define GP211_MANAGE_CHANNEL_OPEN 0x00
91 #define GP211_MANAGE_CHANNEL_CLOSE 0x80
121 #define GP211_STATUS_APPLICATIONS 0x40
122 #define GP211_STATUS_ISSUER_SECURITY_DOMAIN 0x80
123 #define GP211_STATUS_LOAD_FILES 0x20
124 #define GP211_STATUS_LOAD_FILES_AND_EXECUTABLE_MODULES 0x10
126 #define GP211_STATUS_FORMAT_NEW 0x02
127 #define GP211_STATUS_FORMAT_DEPRECATED 0x00
131 #define STORE_DATA_ENCRYPTION_NO_INFORMATION 0x00
132 #define STORE_DATA_ENCRYPTION_APPLICATION_DEPENDENT 0x20
133 #define STORE_DATA_ENCRYPTION_RFU 0x40
134 #define STORE_DATA_ENCRYPTION_ENCRYPTED 0x60
136 #define STORE_DATA_FORMAT_NO_INFORMATION 0x00
137 #define STORE_DATA_FORMAT_DGI 0x08
138 #define STORE_DATA_FORMAT_BER_TLV 0x10
139 #define STORE_DATA_FORMAT_RFU 0x18
144 static const BYTE GP211_GET_DATA_ISSUER_IDENTIFICATION_NUMBER[2] = {0x00, 0x42};
145 static const BYTE GP211_GET_DATA_APPLICATION_PROVIDER_IDENTIFICATION_NUMBER[2] = {0x00, 0x42};
147 static const BYTE GP211_GET_DATA_CARD_IMAGE_NUMBER[2] = {0x00, 0x45};
148 static const BYTE GP211_GET_DATA_SECURITY_DOMAIN_IMAGE_NUMBER[2] = {0x00, 0x45};
150 static const BYTE GP211_GET_DATA_ISSUER_SECURITY_DOMAIN_AID[2] = {0x00, 0x4F};
151 static const BYTE GP211_GET_DATA_SECURITY_DOMAIN_AID[2] = {0x00, 0x4F};
152 static const BYTE GP211_GET_DATA_LIST_OF_APPLICATIONS[2] = {0x2F, 0x00};
153 static const BYTE GP211_GET_DATA_EXTENDED_CARD_RESOURCES[2] = {0xFF, 0x21};
155 static const BYTE GP211_GET_DATA_CARD_DATA[2] = {0x00, 0x66};
156 static const BYTE GP211_GET_DATA_SECURITY_DOMAIN_MANAGEMENT_DATA[2] = {0x00, 0x66};
157 static const BYTE GP211_GET_DATA_SEQUENCE_COUNTER_DEFAULT_KEY_VERSION[2] = {0x00, 0xC1};
158 static const BYTE GP211_GET_DATA_CONFIRMATION_COUNTER[2] = {0x00, 0xC2};
159 static const BYTE GP211_GET_DATA_FREE_EEPROM_MEMORY_SPACE[2] = {0x00, 0xC6};
160 static const BYTE GP211_GET_DATA_FREE_COR_RAM[2] = {0x00, 0xC7};
161 static const BYTE GP211_GET_DATA_DIVERSIFICATION_DATA[2] = {0x00, 0xCF};
167 static const BYTE GP211_GET_DATA_KEY_INFORMATION_TEMPLATE[2] = {0x00, 0xE0};
169 static const BYTE GP211_GET_DATA_CPLC_PERSONALIZATION_DATE[2] = {0x9F, 0x66};
170 static const BYTE GP211_GET_DATA_CPLC_PRE_PERSONALIZATION_DATE[2] = {0x9F, 0x67};
171 static const BYTE GP211_GET_DATA_CPLC_ICC_MANUFACTURER_EMBEDDING_DATE[2] = {0x9F, 0x68};
172 static const BYTE GP211_GET_DATA_CPLC_MODULE_FABRICATOR_PACKAGING_DATE[2] = {0x9F, 0x69};
173 static const BYTE GP211_GET_DATA_CPLC_FABRICATION_DATE_SERIAL_NUMBER_BATCH_IDENTIFIER[2] = {0x9F, 0x6A};
198 static const BYTE GP211_GET_DATA_CPLC_WHOLE_CPLC[2] = {0x9F, 0x7F};
200 static const BYTE GP211_GET_DATA_FCI_DATA[2] = {0xBF, 0x0C};
202 static const BYTE GP211_GET_DATA_PROTOCOL[2] = {0xDF, 0x70};
203 static const BYTE GP211_GET_DATA_ATR_HISTRORICAL_BYTES[2] = {0xDF, 0x71};
205 static const BYTE GP211_GET_DATA_EF_PROD_DATA_INITIALIZATION_FINGERPRINT[2] = {0xDF, 0x76};
206 static const BYTE GP211_GET_DATA_EF_PROD_DATA_INITIALIZATION_DATA[2] = {0xDF, 0x77};
207 static const BYTE GP211_GET_DATA_EF_PROD_DATA_PRODUCTION_KEY_INDEX[2] = {0xDF, 0x78};
208 static const BYTE GP211_GET_DATA_EF_PROD_DATA_PROTOCOL_VERSION[2] = {0xDF, 0x79};
209 static const BYTE GP211_GET_DATA_EF_PROD_DATA_CHECKSUM[2] = {0xDF, 0x7A};
210 static const BYTE GP211_GET_DATA_EF_PROD_DATA_SOFTWARE_VERSION[2] = {0xDF, 0x7B};
211 static const BYTE GP211_GET_DATA_EF_PROD_DATA_RFU[2] = {0xDF, 0x7C};
212 static const BYTE GP211_GET_DATA_EF_PROD_DATA_PROFILE_WITH_PROFILE_VERSION[2] = {0xDF, 0x7D};
213 static const BYTE GP211_GET_DATA_EF_PROD_DATA_LOCATION_MACHINE_DATE_TIME[2] = {0xDF, 0x7E};
215 static const BYTE GP211_GET_DATA_WHOLE_EF_PROD[2] = {0xDF, 0x7F};
217 static const BYTE GP211_GET_DATA_KEY_DIVERSIFICATION[2] = {0x00, 0xCF};
221 static const BYTE OP201_CARD_MANAGER_AID[7] = {0xA0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00};
223 #define OP201_LIFE_CYCLE_LOAD_FILE_LOGICALLY_DELETED 0x00
224 #define OP201_LIFE_CYCLE_LOAD_FILE_LOADED 0x01
225 #define OP201_LIFE_CYCLE_CARD_MANAGER_OP_READY 0x01
226 #define OP201_LIFE_CYCLE_CARD_MANAGER_INITIALIZED 0x07
227 #define OP201_LIFE_CYCLE_CARD_MANAGER_SECURED 0x0f
228 #define OP201_LIFE_CYCLE_CARD_MANAGER_CM_LOCKED 0x7f
229 #define OP201_LIFE_CYCLE_CARD_MANAGER_TERMINATED 0xff
230 #define OP201_LIFE_CYCLE_APPLICATION_LOGICALLY_DELETED 0x00
231 #define OP201_LIFE_CYCLE_APPLICATION_INSTALLED 0x03
232 #define OP201_LIFE_CYCLE_APPLICATION_SELECTABLE 0x07
233 #define OP201_LIFE_CYCLE_APPLICATION_PERSONALIZED 0x0f
234 #define OP201_LIFE_CYCLE_APPLICATION_BLOCKED 0x7f
235 #define OP201_LIFE_CYCLE_APPLICATION_LOCKED 0xff
251 #define OP201_STATUS_APPLICATIONS 0x40
252 #define OP201_STATUS_CARD_MANAGER 0x80
253 #define OP201_STATUS_LOAD_FILES 0x20
257 static const BYTE OP201_GET_DATA_ISSUER_BIN[2] = {0x00, 0x42};
258 static const BYTE OP201_GET_DATA_APPLICATION_PROVIDER_IDENTIFICATION_NUMBER[2] = {0x00, 0x42};
260 static const BYTE OP201_GET_DATA_ISSUER_DATA[2] = {0x00, 0x45};
261 static const BYTE OP201_GET_DATA_SECURITY_DOMAIN_IMAGE_NUMBER[2] = {0x00, 0x45};
263 static const BYTE OP201_GET_DATA_CARD_MANAGER_AID[2] = {0x00, 0x4F};
264 static const BYTE OP201_GET_DATA_SECURITY_DOMAIN_AID[2] = {0x00, 0x4F};
266 static const BYTE OP201_GET_DATA_CARD_RECOGNITION_DATA[2] = {0x00, 0x66};
267 static const BYTE OP201_GET_DATA_SEQUENCE_COUNTER_DEFAULT_KEY_VERSION[2] = {0x00, 0xC1};
268 static const BYTE OP201_GET_DATA_CONFIRMATION_COUNTER[2] = {0x00, 0xC2};
269 static const BYTE OP201_GET_DATA_FREE_EEPROM_MEMORY_SPACE[2] = {0x00, 0xC6};
270 static const BYTE OP201_GET_DATA_FREE_COR_RAM[2] = {0x00, 0xC7};
271 static const BYTE OP201_GET_DATA_DIVERSIFICATION_DATA[2] = {0x00, 0xCF};
277 static const BYTE OP201_GET_DATA_KEY_INFORMATION_TEMPLATE[2] = {0x00, 0xE0};
279 static const BYTE OP201_GET_DATA_CPLC_PERSONALIZATION_DATE[2] = {0x9F, 0x66};
280 static const BYTE OP201_GET_DATA_CPLC_PRE_PERSONALIZATION_DATE[2] = {0x9F, 0x67};
281 static const BYTE OP201_GET_DATA_CPLC_ICC_MANUFACTURER_EMBEDDING_DATE[2] = {0x9F, 0x68};
282 static const BYTE OP201_GET_DATA_CPLC_MODULE_FABRICATOR_PACKAGING_DATE[2] = {0x9F, 0x69};
283 static const BYTE OP201_GET_DATA_CPLC_FABRICATION_DATE_SERIAL_NUMBER_BATCH_IDENTIFIER[2] = {0x9F, 0x6A};
284 static const BYTE OP201_GET_DATA_CPLC_WHOLE_CPLC[2] = {0x9F, 0x7F};
286 static const BYTE OP201_GET_DATA_FCI_DATA[2] = {0xBF, 0x0C};
288 static const BYTE OP201_GET_DATA_PROTOCOL[2] = {0xDF, 0x70};
289 static const BYTE OP201_GET_DATA_ATR_HISTRORICAL_BYTES[2] = {0xDF, 0x71};
291 static const BYTE OP201_GET_DATA_EF_PROD_DATA_INITIALIZATION_FINGERPRINT[2] = {0xDF, 0x76};
292 static const BYTE OP201_GET_DATA_EF_PROD_DATA_INITIALIZATION_DATA[2] = {0xDF, 0x77};
293 static const BYTE OP201_GET_DATA_EF_PROD_DATA_PRODUCTION_KEY_INDEX[2] = {0xDF, 0x78};
294 static const BYTE OP201_GET_DATA_EF_PROD_DATA_PROTOCOL_VERSION[2] = {0xDF, 0x79};
295 static const BYTE OP201_GET_DATA_EF_PROD_DATA_CHECKSUM[2] = {0xDF, 0x7A};
296 static const BYTE OP201_GET_DATA_EF_PROD_DATA_SOFTWARE_VERSION[2] = {0xDF, 0x7B};
297 static const BYTE OP201_GET_DATA_EF_PROD_DATA_RFU[2] = {0xDF, 0x7C};
298 static const BYTE OP201_GET_DATA_EF_PROD_DATA_PROFILE_WITH_PROFILE_VERSION[2] = {0xDF, 0x7D};
299 static const BYTE OP201_GET_DATA_EF_PROD_DATA_LOCATION_MACHINE_DATE_TIME[2] = {0xDF, 0x7E};
301 static const BYTE OP201_GET_DATA_WHOLE_EF_PROD[2] = {0xDF, 0x7F};
303 #define OPGP_DERIVATION_METHOD_NONE 0
304 #define OPGP_DERIVATION_METHOD_VISA2 1
305 #define OPGP_DERIVATION_METHOD_EMV_CPS11 2
306 #define OPGP_DERIVATION_METHOD_VISA1 3
308 #define OPGP_WORK_UNKNOWN -1
309 #define OPGP_TASK_FINISHED 1
311 #define INIT_PROGRESS_CALLBACK_PARAMETERS(callbackParameters, callback) if (callback != NULL) {callbackParameters.parameters = callback->parameters; \
312 callbackParameters.finished = !OPGP_TASK_FINISHED;}
403 BYTE cardConfigurationDetails[64];
407 BYTE issuerSecurityDomainsTrustPointCertificateInformation[64];
409 BYTE issuerSecurityDomainCertificateInformation[64];
440 BYTE keyIndex,
BYTE secureChannelProtocol,
441 BYTE secureChannelProtocolImpl,
448 BYTE secureChannelProtocolImpl,
BYTE sequenceCounter[2],
471 BYTE *secureChannelProtocol,
BYTE *secureChannelProtocolImpl);
476 BYTE sequenceCounter[2]);
501 BYTE keySetVersion,
BYTE keyIndex,
BYTE newKeySetVersion,
BYTE _3DESKey[16]);
511 BYTE keySetVersion,
BYTE newKeySetVersion,
BYTE baseKey[32],
517 BYTE keySetVersion,
BYTE newKeySetVersion,
BYTE baseKey[32],
528 BYTE keyInformationTemplate,
540 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
541 PBYTE securityDomainAID,
542 DWORD securityDomainAIDLength,
BYTE loadFileDataBlockHash[20],
BYTE loadToken[128],
543 DWORD nonVolatileCodeSpaceLimit,
DWORD volatileDataSpaceLimit,
544 DWORD nonVolatileDataSpaceLimit);
549 DWORD securityDomainAIDLength,
550 PBYTE applicationAID,
DWORD applicationAIDLength,
551 PBYTE extraditionTokenSignatureData,
552 PDWORD extraditionTokenSignatureDataLength);
557 PBYTE securityDomainAID,
558 DWORD securityDomainAIDLength,
BYTE loadFileDataBlockHash[20],
559 DWORD nonVolatileCodeSpaceLimit,
DWORD volatileDataSpaceLimit,
560 DWORD nonVolatileDataSpaceLimit,
PBYTE loadTokenSignatureData,
561 PDWORD loadTokenSignatureDataLength);
566 DWORD executableLoadFileAIDLength,
567 PBYTE executableModuleAID,
DWORD executableModuleAIDLength,
568 PBYTE applicationAID,
DWORD applicationAIDLength,
569 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
570 DWORD nonVolatileDataSpaceLimit,
571 PBYTE installParameters,
DWORD installParametersLength,
572 PBYTE installTokenSignatureData,
PDWORD installTokenSignatureDataLength);
577 DWORD executableLoadFileAIDLength,
578 PBYTE executableModuleAID,
DWORD executableModuleAIDLength,
579 PBYTE applicationAID,
DWORD applicationAIDLength,
580 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
581 DWORD nonVolatileDataSpaceLimit,
582 PBYTE installParameters,
DWORD installParametersLength,
583 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
584 PBYTE simSpecParams,
DWORD simSpecParamsLength,
585 PBYTE installTokenSignatureData,
PDWORD installTokenSignatureDataLength);
590 PBYTE securityDomainAID,
591 DWORD securityDomainAIDLength,
BYTE loadFileDataBlockHash[20],
592 DWORD nonVolatileCodeSpaceLimit,
DWORD volatileDataSpaceLimit,
593 DWORD nonVolatileDataSpaceLimit,
BYTE loadToken[128],
599 PBYTE executableModuleAID,
600 DWORD executableModuleAIDLength,
PBYTE applicationAID,
601 DWORD applicationAIDLength,
BYTE applicationPrivileges,
602 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
603 PBYTE installParameters,
DWORD installParametersLength,
609 PBYTE executableModuleAID,
610 DWORD executableModuleAIDLength,
PBYTE applicationAID,
611 DWORD applicationAIDLength,
BYTE applicationPrivileges,
612 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
613 PBYTE installParameters,
DWORD installParametersLength,
614 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
615 PBYTE simSpecParams,
DWORD simSpecParamsLength,
621 BYTE hash[64],
DWORD hashLength,
BYTE secureChannelProtocol);
639 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE executableModuleAID,
640 DWORD executableModuleAIDLength,
PBYTE applicationAID,
DWORD applicationAIDLength,
641 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
642 PBYTE installParameters,
DWORD installParametersLength,
648 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE executableModuleAID,
649 DWORD executableModuleAIDLength,
PBYTE applicationAID,
DWORD applicationAIDLength,
650 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
651 PBYTE installParameters,
DWORD installParametersLength,
652 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
653 PBYTE simSpecParams,
DWORD simSpecParamsLength,
659 PBYTE applicationAID,
DWORD applicationAIDLength,
660 BYTE applicationPrivileges,
BYTE installToken[128],
666 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE executableModuleAID,
667 DWORD executableModuleAIDLength,
PBYTE applicationAID,
668 DWORD applicationAIDLength,
BYTE applicationPrivileges,
669 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
670 PBYTE installParameters,
DWORD installParametersLength,
676 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE executableModuleAID,
677 DWORD executableModuleAIDLength,
PBYTE applicationAID,
678 DWORD applicationAIDLength,
BYTE applicationPrivileges,
679 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
680 PBYTE installParameters,
DWORD installParametersLength,
681 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
682 PBYTE simSpecParams,
DWORD simSpecParamsLength,
689 PBYTE applicationAID,
690 DWORD applicationAIDLength);
695 PBYTE securityDomainAID,
696 DWORD securityDomainAIDLength,
PBYTE applicationAID,
697 DWORD applicationAIDLength,
699 PDWORD receiptDataAvailable);
705 BYTE newKeySetVersion,
718 DWORD securityDomainAIDLength,
730 DWORD cardUniqueDataLength,
737 DWORD cardUniqueDataLength,
739 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
740 PBYTE applicationAID,
DWORD applicationAIDLength,
BYTE secureChannelProtocol);
745 DWORD cardUniqueDataLength,
747 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
748 PBYTE securityDomainAID,
DWORD securityDomainAIDLength,
BYTE secureChannelProtocol);
752 DWORD cardUniqueDataLength,
754 PBYTE oldSecurityDomainAID,
DWORD oldSecurityDomainAIDLength,
755 PBYTE newSecurityDomainAID,
DWORD newSecurityDomainAIDLength,
756 PBYTE applicationOrExecutableLoadFileAID,
757 DWORD applicationOrExecutableLoadFileAIDLength,
BYTE secureChannelProtocol);
762 BYTE openClose,
BYTE channelNumberToClose,
763 BYTE *channelNumberOpened);
785 BYTE encryptionFlags,
BYTE formatFlags, BOOL responseDataExpected,
PBYTE data,
DWORD dataLength);
799 BYTE kekKey[16],
BYTE keySetVersion,
800 BYTE keyIndex,
BYTE securityLevel,
BYTE derivationMethod,
821 BYTE keySetVersion,
BYTE keyIndex,
BYTE newKeySetVersion,
BYTE _3desKey[16]);
831 BYTE keySetVersion,
BYTE newKeySetVersion,
832 BYTE new_encKey[16],
BYTE new_macKey[16],
BYTE new_KEK[16]);
842 BYTE keyInformationTemplate,
854 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE securityDomainAID,
855 DWORD securityDomainAIDLength,
BYTE loadFileDAP[20],
BYTE loadToken[128],
856 DWORD nonVolatileCodeSpaceLimit,
DWORD volatileDataSpaceLimit,
857 DWORD nonVolatileDataSpaceLimit);
862 PBYTE securityDomainAID,
DWORD securityDomainAIDLength,
863 BYTE loadFileDAP[20],
DWORD nonVolatileCodeSpaceLimit,
864 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
865 PBYTE loadTokenSignatureData,
PDWORD loadTokenSignatureDataLength);
870 PBYTE AIDWithinLoadFileAID,
DWORD AIDWithinLoadFileAIDLength,
871 PBYTE applicationInstanceAID,
DWORD applicationInstanceAIDLength,
872 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
873 DWORD nonVolatileDataSpaceLimit,
874 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
875 PBYTE installTokenSignatureData,
PDWORD installTokenSignatureDataLength);
880 PBYTE AIDWithinLoadFileAID,
DWORD AIDWithinLoadFileAIDLength,
881 PBYTE applicationInstanceAID,
DWORD applicationInstanceAIDLength,
882 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
883 DWORD nonVolatileDataSpaceLimit,
884 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
885 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
886 PBYTE simSpecParams,
DWORD simSpecParamsLength,
887 PBYTE installTokenSignatureData,
PDWORD installTokenSignatureDataLength);
892 DWORD securityDomainAIDLength,
BYTE loadFileDAP[20],
893 DWORD nonVolatileCodeSpaceLimit,
DWORD volatileDataSpaceLimit,
894 DWORD nonVolatileDataSpaceLimit,
BYTE loadToken[128],
900 DWORD AIDWithinLoadFileAIDLength,
PBYTE applicationInstanceAID,
901 DWORD applicationInstanceAIDLength,
BYTE applicationPrivileges,
902 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
903 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
909 DWORD AIDWithinLoadFileAIDLength,
PBYTE applicationInstanceAID,
910 DWORD applicationInstanceAIDLength,
BYTE applicationPrivileges,
911 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
912 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
913 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
914 PBYTE simSpecParams,
DWORD simSpecParamsLength,
938 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE AIDWithinLoadFileAID,
939 DWORD AIDWithinLoadFileAIDLength,
PBYTE applicationInstanceAID,
DWORD applicationInstanceAIDLength,
940 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
941 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
947 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
PBYTE AIDWithinLoadFileAID,
948 DWORD AIDWithinLoadFileAIDLength,
PBYTE applicationInstanceAID,
DWORD applicationInstanceAIDLength,
949 BYTE applicationPrivileges,
DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
950 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
951 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
952 PBYTE simSpecParams,
DWORD simSpecParamsLength,
958 PBYTE applicationInstanceAID,
DWORD applicationInstanceAIDLength,
959 BYTE applicationPrivileges,
BYTE installToken[128],
965 DWORD AIDWithinLoadFileAIDLength,
PBYTE applicationInstanceAID,
966 DWORD applicationInstanceAIDLength,
BYTE applicationPrivileges,
967 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
968 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
974 DWORD AIDWithinLoadFileAIDLength,
PBYTE applicationInstanceAID,
975 DWORD applicationInstanceAIDLength,
BYTE applicationPrivileges,
976 DWORD volatileDataSpaceLimit,
DWORD nonVolatileDataSpaceLimit,
977 PBYTE applicationInstallParameters,
DWORD applicationInstallParametersLength,
978 PBYTE uiccSystemSpecParams,
DWORD uiccSystemSpecParamsLength,
979 PBYTE simSpecParams,
DWORD simSpecParamsLength,
986 BYTE newKeySetVersion,
988 BYTE receiptGenerationKey[16]);
1016 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
1017 PBYTE applicationInstanceAID,
DWORD applicationInstanceAIDLength);
1023 PBYTE executableLoadFileAID,
DWORD executableLoadFileAIDLength,
1024 PBYTE securityDomainAID,
DWORD securityDomainAIDLength);
Definition: globalplatform.h:366
BYTE lifeCycleState
The Issuer Security Domain, Security Domains, Executable Load Files and Application life cycle state.
Definition: globalplatform.h:368
OPGP_AID aid
The AID.
Definition: globalplatform.h:367
OPGP_AID associatedSecurityDomainAID
The associated Security Domain's AID.
Definition: globalplatform.h:371
GP211_APPLICATION_PRIVILEGES privileges
The Issuer Security Domain, Security Domains or Application privileges. Has no meaning for Executable...
Definition: globalplatform.h:369
Definition: globalplatform.h:398
DWORD cardChipDetailsLength
Card configuration details length.
Definition: globalplatform.h:406
DWORD issuerSecurityDomainsTrustPointCertificateInformationLength
Issuer Security Domain’s Trust Point certificate information length.
Definition: globalplatform.h:408
DWORD cardConfigurationDetailsLength
Card configuration details length.
Definition: globalplatform.h:404
DWORD scpLength
The length of the SCP.
Definition: globalplatform.h:402
DWORD issuerSecurityDomainCertificateInformationLength
Issuer Security Domain certificate information length.
Definition: globalplatform.h:410
DWORD version
The GlobalPlatform version.
Definition: globalplatform.h:399
Definition: security.h:269
Definition: globalplatform.h:377
OPGP_AID aid
The Executable Load File AID.
Definition: globalplatform.h:378
BYTE numExecutableModules
Number of associated Executable Modules.
Definition: globalplatform.h:381
OPGP_AID associatedSecurityDomainAID
The associated Security Domain's AID.
Definition: globalplatform.h:383
BYTE lifeCycleState
The Executable Load File life cycle state.
Definition: globalplatform.h:379
Definition: security.h:280
Definition: security.h:203
Definition: globalplatform.h:344
BYTE lifeCycleState
The Card Manager, Executable Load File or application life cycle state.
Definition: globalplatform.h:346
OPGP_AID aid
The AID.
Definition: globalplatform.h:345
OP201_APPLICATION_PRIVILEGES privileges
The Card Manager or application privileges.
Definition: globalplatform.h:347
Definition: security.h:231
Definition: security.h:243
Definition: security.h:188
Definition: globalplatform.h:335
BYTE AIDLength
The length of the AID.
Definition: globalplatform.h:336
Definition: connection.h:69
Definition: connection.h:80
Definition: globalplatform.h:354
OPGP_AID loadFileAID
The AID of the Load File.
Definition: globalplatform.h:356
DWORD loadFileSize
The size of the Load File.
Definition: globalplatform.h:355
BYTE numAppletAIDs
The number of applets contained in the Load File.
Definition: globalplatform.h:357
Definition: globalplatform.h:317
DWORD finished
Task is finished. If finished contains OPGP_TASK_FINISHED.
Definition: globalplatform.h:320
DWORD totalWork
The total work which needs to be done. If not known this contains OPGP_WORK_UNKNOWN.
Definition: globalplatform.h:319
PVOID parameters
Proprietary parameters for the function passed in with OPGP_PROGRESS_CALLBACK.
Definition: globalplatform.h:321
DWORD currentWork
The current work which is done. If not known this contains OPGP_WORK_UNKNOWN.
Definition: globalplatform.h:318
Definition: globalplatform.h:327
PVOID callback
The callback function. The must accept a OPGP_PROGRESS_CALLBACK_PARAMETERS parameter and return void,...
Definition: globalplatform.h:328
PVOID parameters
Proprietary parameters for the callback function. Passed in when the function is called.
Definition: globalplatform.h:329
void * PVOID
Pointer definition.
Definition: types.h:36
unsigned char BYTE
A Microsoft/Muscle BYTE definition.
Definition: types.h:51
unsigned char * PBYTE
A Microsoft/Muscle LPBYTE, pointer to unsigned char.
Definition: types.h:48
unsigned long * PDWORD
A Microsoft LPDWORD/Muscle pointer to a DWORD.
Definition: types.h:50
char * OPGP_STRING
A Microsoft/Muscle LPTSTR.
Definition: types.h:46
unsigned long DWORD
A Microsoft/Muscle DWORD definition.
Definition: types.h:52
const char * OPGP_CSTRING
A Microsoft/Muscle LPCTSTR.
Definition: types.h:47