GlobalPlatform Messaging
Specification
Version 1.0
October 2003
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page i
Table of Contents
1. INTRODUCTION.............................................................................................................................. 1
1.1 INTENDED AUDIENCE ....................................................................................................................... 2
1.2 SCOPE ........................................................................................................................................... 2
1.3 NORMATIVE REFERENCES ............................................................................................................... 2
1.4 ABBREVIATIONS AND NOTATIONS ..................................................................................................... 4
1.5 CONVENTIONS ................................................................................................................................ 5
1.6 OBJECTIVES ................................................................................................................................... 5
2. ACTORS ROLES AND RESPONSIBILITIES ................................................................................. 7
2.1 PLATFORM SPECIFICATION OWNER .................................................................................................. 9
2.1.1 Platform Specification Owner’s Processing Flow.................................................................. 9
2.2 PLATFORM DEVELOPER ................................................................................................................... 9
2.2.1 Platform Developer’s Processing Flow ............................................................................... 10
2.3 IC MANUFACTURER ...................................................................................................................... 10
2.3.1 IC Manufacturer’s Processing Flow .................................................................................... 11
2.4 CARD MANUFACTURER.................................................................................................................. 11
2.4.1 Card Manufacturer’s Processing Flow ................................................................................ 12
2.5 CARD ENABLER ............................................................................................................................ 12
2.5.1 Card Enabler’s Processing Flow ......................................................................................... 14
2.6 APPLICATION OWNER .................................................................................................................... 14
2.6.1 Application Owner’s Processing Flow ................................................................................. 15
2.7 APPLICATION DEVELOPER ............................................................................................................. 15
2.7.1 Application Developer’s Processing Flow ........................................................................... 16
2.8 APPLICATION PROVIDER ................................................................................................................ 16
2.8.1 Application Provider’s Processing Flow .............................................................................. 17
2.9 CARD ISSUER ............................................................................................................................... 19
2.9.1 Card Issuer’s Processing Flow............................................................................................ 20
2.10 COLLATOR/DECOLLATOR ........................................................................................................... 22
2.10.1 Collator/Decollator’s Processing Flow................................................................................. 23
2.11 LOADER .................................................................................................................................... 24
2.11.1 Loader’s Processing Flow ................................................................................................... 25
2.12 CARDHOLDER............................................................................................................................ 26
3. DATA EXCHANGE MATRIX ......................................................................................................... 27
3.1 CARD ISSUER DATA EXCHANGE ..................................................................................................... 28
3.1.1 Card Issuer [CI] to Card Enabler [CE]................................................................................. 28
3.1.2 Card Issuer [CI] to Application Provider [AP] ...................................................................... 28
3.1.3 Card Issuer [CI] to Collator/Decollator [CD] ........................................................................ 28
3.2 CARD MANUFACTURER DATA EXCHANGE ....................................................................................... 29
3.2.1 Card Manufacturer [CM] to Card Issuer [CI] ....................................................................... 29
3.3 IC MANUFACTURER DATA EXCHANGE ............................................................................................ 29
3.3.1 IC Manufacturer [IM] to Card Manufacturer [CM]................................................................ 29
3.4 PLATFORM DEVELOPER DATA EXCHANGE ...................................................................................... 29
3.4.1 Platform Developer [PD] to IC Manufacturer [IM] ............................................................... 29
3.5 PLATFORM SPECIFICATION OWNER DATA EXCHANGE ..................................................................... 29
3.5.1 Platform Specification Owner [PS] to Platform Developer [PD] .......................................... 29
3.6 CARD ENABLER DATA EXCHANGE .................................................................................................. 30
3.6.1 Card Enabler [CE] to Card Issuer [CI]................................................................................. 30
3.7 APPLICATION DEVELOPER DATA EXCHANGE ................................................................................... 30
3.7.1 Application Developer [AD] to Application Owner [AO]....................................................... 30
3.8 APPLICATION OWNER DATA EXCHANGE ......................................................................................... 30
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page ii
3.8.1 Application Owner [AO] to Application Developer [AD]....................................................... 30
3.8.2 Application Owner [AO] to Application Provider [AP].......................................................... 31
3.9 APPLICATION PROVIDER DATA EXCHANGE ..................................................................................... 31
3.9.1 Application Provider [AP] to Card Issuer [CI] ...................................................................... 31
3.9.2 Application Provider [AP] to Card Enabler [CE] .................................................................. 31
3.9.3 Table Application Provider [AP] to Collator/Decollator [CD] ............................................... 31
3.10 COLLATOR/DECOLLATOR DATA EXCHANGE ................................................................................ 32
3.10.1 Collator/Decollator [CD] to Card Issuer [CI] ........................................................................ 32
3.10.2 Collator/Decollator [CD] to Application Provider [AP] ......................................................... 32
3.10.3 Collator/Decollator [CD] to Loader [LO] .............................................................................. 32
3.11 LOADER DATA EXCHANGE ......................................................................................................... 32
3.11.1 Loader [LO] to Collator/Decollator [CD] .............................................................................. 32
4. MESSAGE CATEGORIZATION.................................................................................................... 33
5. GLOBALPLATFORM MESSAGE STRUCTURE ......................................................................... 35
5.1 NAMESPACES ............................................................................................................................... 35
5.2 DATA TYPES AND STRING ENCODING ............................................................................................. 36
5.3 XML SCHEMA REFERENCES ......................................................................................................... 37
5.4 ENCRYPTION XML ........................................................................................................................ 37
6. MESSAGE HEADER ..................................................................................................................... 38
6.1 SIGNATURE XML ELEMENT ............................................................................................................ 40
7. MESSAGE BODY .......................................................................................................................... 41
8. APPLICATION PROFILE MESSAGE ........................................................................................... 44
8.1 APPLICATIONPROFILE ELEMENT ..................................................................................................... 44
8.2 PROFILEIDENTIFICATION ELEMENT ................................................................................................. 44
9. CARD PROFILE MESSAGE ......................................................................................................... 45
9.1 CARDPROFILE ELEMENT ................................................................................................................ 45
9.2 PROFILEIDENTIFICATION ELEMENT ................................................................................................. 46
10. CARD PROFILE CHANGES MESSAGE ...................................................................................... 47
10.1 APPLICATIONINSTANCES ELEMENT ............................................................................................. 48
10.2 LOADFILEINSTANCES ELEMENT .................................................................................................. 48
10.3 CARDINFO ELEMENT .................................................................................................................. 48
10.4 PROFILEIDENTIFICATION ELEMENT .............................................................................................. 48
11. KEY PROFILE MESSAGE ............................................................................................................ 49
11.1 KEYPROFILE ELEMENT ............................................................................................................... 49
11.2 PROFILEIDENTIFICTION ELEMENT ................................................................................................ 49
12. KEY EXCHANGE MESSAGE ....................................................................................................... 50
13. LOAD FILE PROFILE MESSAGE................................................................................................. 51
13.1 LOADFILEPROFILE ELEMENT ...................................................................................................... 51
13.2 PROFILEIDENTIFICATION ELEMENT .............................................................................................. 51
14. PROFILE REQUEST MESSAGE .................................................................................................. 52
14.1 PROFILEIDENTIFICATION ELEMENT .............................................................................................. 53
15. APPLICATION DATA NOTIFICATION MESSAGE...................................................................... 54
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page iii
15.1 APPLICATIONCOMMONDATA ELEMENT ........................................................................................ 57
15.2 APPLICATIONDATAPERCRN ELEMENT ....................................................................................... 57
15.3 CRN ELEMENT .......................................................................................................................... 58
15.4 APPLICATIONDATA ELEMENT ...................................................................................................... 60
15.4.1 AID element......................................................................................................................... 60
15.4.2 ApplicationProfileUniqueID element.................................................................................... 61
15.4.3 Data element ....................................................................................................................... 61
15.4.4 DataSet element.................................................................................................................. 63
15.4.5 ICCData element................................................................................................................. 64
15.4.6 LogData element ................................................................................................................. 64
15.4.7 PersoDeviceIns element ..................................................................................................... 64
15.4.8 ProcessingStep element ..................................................................................................... 65
15.4.9 Script element...................................................................................................................... 66
15.4.10 Signature element............................................................................................................ 67
15.4.11 TransportKey element ..................................................................................................... 67
16. APPLICATION DATA REQUEST MESSAGE .............................................................................. 69
16.1.1 AID element......................................................................................................................... 69
16.1.2 CRN element ....................................................................................................................... 69
17. CARD CUSTOMIZATION MESSAGE........................................................................................... 70
17.1 MODULEIDENTIFIERCODE ELEMENT ............................................................................................ 72
17.1.1 CardConfiguration element ................................................................................................. 73
17.1.2 AID element......................................................................................................................... 73
17.1.3 CRN element ....................................................................................................................... 73
17.1.4 ValidCardProfileID element ................................................................................................. 74
17.1.5 ApplicationData element ..................................................................................................... 74
18. BATCH CARD CUSTOMIZATION MESSAGE ............................................................................. 75
18.1 ENVIRONMENTCONTAINER ELEMENT .......................................................................................... 78
18.2 JOBCONTAINER ......................................................................................................................... 79
18.3 DATACONTAINERHEADER .......................................................................................................... 79
18.4 COMMONDATACONTAINER ........................................................................................................ 80
18.5 COMMONMODULEIDENTIFIERCODE ............................................................................................ 81
18.6 CARDCOMMONCONFIGURATION ELEMENT .................................................................................. 81
18.6.1 AID element......................................................................................................................... 81
18.6.2 ValidCardProfileID element ................................................................................................. 82
18.7 APPLICATIONCOMMONDATA ELEMENT ........................................................................................ 82
18.7.1 ApplicationData element ..................................................................................................... 82
18.8 DATACONTAINER ...................................................................................................................... 82
18.8.1 ModuleIdentifierCode element ............................................................................................ 82
19. APPLICATION AUDIT TRAIL MESSAGE .................................................................................... 83
19.1 APPLICATIONCOMMONLOG ELEMENT .......................................................................................... 85
19.2 APPLICATIONLOG ELEMENT ........................................................................................................ 86
19.2.1 AID element......................................................................................................................... 86
19.2.2 ApplicationProfileUniqueID element.................................................................................... 86
19.2.3 ProcessingStepResult element ........................................................................................... 86
19.2.4 Data element ....................................................................................................................... 87
19.2.5 DataSet element.................................................................................................................. 87
19.2.6 Error element....................................................................................................................... 87
19.2.7 LogData element ................................................................................................................. 87
19.2.8 PersoDeviceIns element ..................................................................................................... 87
19.2.9 Script element...................................................................................................................... 87
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page iv
19.2.10 Signature element............................................................................................................ 88
19.2.11 TransportKey element ..................................................................................................... 88
19.3 APPLICATIONLOGPERCRN ELEMENT ......................................................................................... 88
19.4 CRN ELEMENT .......................................................................................................................... 88
19.5 APPLICATIONLOG ELEMENT ........................................................................................................ 88
20. BATCH AUDIT TRAIL MESSAGE................................................................................................ 89
20.1 ENVIRONMENTCONTAINERLOG ELEMENT .................................................................................... 92
20.2 JOBCONTAINERLOG ELEMENT .................................................................................................... 92
20.3 LOGCONTAINERHEADER ELEMENT ............................................................................................. 93
20.4 COMMONLOGCONTAINER ELEMENT ............................................................................................ 94
20.5 LOGCONTAINER ELEMENT .......................................................................................................... 94
20.6 LOGIDENTIFIERCODE ELEMENT .................................................................................................. 94
20.6.1 AID element......................................................................................................................... 95
20.6.2 ApplicationLog element ....................................................................................................... 95
20.6.3 CardConfigurationLog element ........................................................................................... 95
20.6.4 CardLifeCycleState element ............................................................................................... 96
20.6.5 CollatorReturnCode element............................................................................................... 96
20.6.6 CRN element ....................................................................................................................... 96
20.6.7 Error element....................................................................................................................... 96
20.6.8 PhysicalCardIdentifier element ........................................................................................... 96
20.6.9 MuteCardsNumber element ................................................................................................ 97
20.6.10 ValidCardProfileID element ............................................................................................. 97
20.7 COMMONLOGIDENTIFIERCODE ELEMENT .................................................................................... 97
20.7.1 ApplicationCommonLog element ........................................................................................ 98
20.7.2 ApplicationLog element ....................................................................................................... 98
20.7.3 CardCommonConfigurationLog element............................................................................. 98
20.7.4 CollatorReturnCode element............................................................................................... 99
20.7.5 Error element....................................................................................................................... 99
20.7.6 ValidCardProfileID element ................................................................................................. 99
21. CARD AUDIT TRAIL MESSAGE ................................................................................................ 100
21.1 LOGIDENTIFIERCODE ELEMENT ................................................................................................ 102
22. ERROR ELEMENT ...................................................................................................................... 103
APPENDIX A: GPMESSAGES.1.0.0 XML SCHEMA FOR GLOBALPLATFORM MESSAGING ....... 104
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page v
List of Tables
Table 1-1 Normative References ................................................................................................................ 4
Table 1-2 Abbreviations and Notations....................................................................................................... 5
Table 3-1 Data Exchange Matrix .............................................................................................................. 27
Table 3-2 Card Issuer [CI] to Card Enabler [CE] ...................................................................................... 28
Table 3-3 Card Issuer [CI] to Application Provider [AP]............................................................................ 28
Table 3-4 Card Issuer [CI] to Collator/Decollator [CD] ............................................................................. 28
Table 3-5 Card Manufacturer [CM] to Card Issuer [CI]............................................................................. 29
Table 3-6 IC Manufacturer [IM] to Card Manufacturer [CM] ..................................................................... 29
Table 3-7 Platform Developer [PD] to IC Manufacturer [IM]..................................................................... 29
Table 3-8 Platform Specification Owner [PS] to Platform Developer [PD] ............................................... 29
Table 3-9 Card Enabler [CE] to Card Issuer [CI] ...................................................................................... 30
Table 3-10 Application Developer [AD] to Application Owner [AO] .......................................................... 30
Table 3-11 Application Owner [AO] to Application Developer [AD] .......................................................... 30
Table 3-12 Application Owner [8] to Application Provider [9] ................................................................... 31
Table 3-13 Application Provider [AP] to Card Issuer [CI] ......................................................................... 31
Table 3-14 Application Provider [AP] to Card Enabler [CE] ..................................................................... 31
Table 3-15 Application Provider [AP] to Collator/Decollator [CD]............................................................. 31
Table 3-16 Collator/Decollator [CD] to Card Issuer [CI] ........................................................................... 32
Table 3-17 Collator/Decollator [CD] to Application Provider [AP]............................................................. 32
Table 3-18 Collator/Decollator [CD] to Loader [LO].................................................................................. 32
Table 3-19 Loader [LO] to Collator/Decollator [CD].................................................................................. 32
Table 4-1 Message Categories................................................................................................................. 34
Table 5-1 GPMessage Attributes ............................................................................................................. 35
Table 5-2 Data Types................................................................................................................................ 36
Table 5-3 String Encodings for String Data Type ..................................................................................... 37
Table 6-1 GPHeader Attributes................................................................................................................ 40
Table 7-1 GPBody Attributes.................................................................................................................... 43
Table 8-1 AP Attributes ............................................................................................................................. 44
Table 9-1 CP Attributes ............................................................................................................................. 45
Table 9-2 ProfileIdentification Attributes............................................................................................... 46
Table 10-1 CPChanges Attributes ........................................................................................................... 47
Table 11-1 KP Attributes ........................................................................................................................... 49
Table 12-1 KeyExchange Attributes ....................................................................................................... 50
Table 13-1 LFP Attributes ......................................................................................................................... 51
Table 14-1 ProfileRequest Attributes...................................................................................................... 53
Table 15-1 ApplicationDataNotification Attributes............................................................................... 57
Table 15-2 ApplicationCommonData Attributes ................................................................................... 57
Table 15-3 ApplicationDataPerCRN Attributes...................................................................................... 58
Table 15-4 CRN Attributes ........................................................................................................................ 59
Table 15-5 ApplicationData Attributes ................................................................................................... 60
Table 15-6 CRN Attributes ........................................................................................................................ 61
Table 15-7 ApplicationProfileUniqueID Data Type .............................................................................. 61
Table 15-8 Data Attributes ....................................................................................................................... 63
Table 15-9 DataSet Attributes ................................................................................................................. 63
Table 15-10 ICCData Attributes............................................................................................................... 64
Table 15-11 LogData Attributes............................................................................................................... 64
Table 15-12 PersoDeviceIns Attributes .................................................................................................. 65
Table 15-13 ProcessingStep Attributes .................................................................................................. 66
Table 15-14 Script Data Type.................................................................................................................. 66
Table 15-15 TransportKey Attributes ..................................................................................................... 68
Table 16-1 ApplicationDataRequest Attributes .................................................................................... 69
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page vi
Table 17-1 CardConfiguration Attributes............................................................................................... 73
Table 17-2 ApplicationProfileUniqueID Data Type .............................................................................. 74
Table 18-1 BatchCardCustomization Attributes ................................................................................... 77
Table 18-2 EnvironmentContainer Attributes ....................................................................................... 78
Table 18-3 JobContainer Attributes ........................................................................................................ 79
Table 18-4 DataContainerHeader Attributes......................................................................................... 80
Table 18-5 CommonDataContainer Attributes ..................................................................................... 80
Table 18-6 CommonModuleIdentifierCode Attributes......................................................................... 81
Table 18-7 ApplicationCommonData Attributes ................................................................................... 82
Table 18-8 DataContainer Attributes...................................................................................................... 82
Table 19-1 ApplicationAuditTrail Attributes .......................................................................................... 85
Table 19-2 ApplicationCommonLog Attributes..................................................................................... 85
Table 19-3 ApplicationLog Attributes ..................................................................................................... 86
Table 19-4 ProcessingStepResult Attributes......................................................................................... 87
Table 19-5 ApplicationLogPerCRN Attributes........................................................................................ 88
Table 20-1 BatchAuditTrail Attributes.................................................................................................... 91
Table 20-2 EnvironmentContainerLog Attributes ................................................................................ 92
Table 20-3 JobContainerLog Attributes ................................................................................................. 93
Table 20-4 LogContainerHeader Attributes........................................................................................... 93
Table 20-5 CommonLogContainer Attributes ....................................................................................... 94
Table 20-6 LogContainer Attributes ....................................................................................................... 94
Table 20-7 LogIdentifierCod Attributes ................................................................................................. 95
Table 20-8 CardConfigutationLog Attributes ........................................................................................ 95
Table 20-9 CardLifeCycleState Attributes ............................................................................................. 96
Table 20-10 CollatorReturnCode Attributes .......................................................................................... 96
Table 20-11 PhysicalCardIdentifier Attributes ...................................................................................... 97
Table 20-12 MuteCardsNumber Attributes............................................................................................ 97
Table 20-13 CardCommonConfigurationLog Attributes ...................................................................... 98
Table 21-1 CardAuditTrail Attributes.................................................................................................... 102
Table 22-1 Error Attributes .................................................................................................................... 103
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page vii
List of Figures
Figure 1-1 This Specification and Directly Related Documents ................................................................. 1
Figure 2-1 Actors and Interchanges ........................................................................................................... 8
Figure 2-2 Platform Developer’s Processing Flow ................................................................................... 10
Figure 2-3 IC Manufacturer’s Processing Flow......................................................................................... 11
Figure 2-4 Card Embedding Processing Flow .......................................................................................... 12
Figure 2-5 Card Enablement Processing Flow ......................................................................................... 14
Figure 2-6 Application development Subcontracting Processing Flow .................................................... 15
Figure 2-7 Application and Application Data Preparation Processing Flow ............................................. 18
Figure 2-8 Card Customization Processing Flow ..................................................................................... 21
Figure 2-9 Card Customizing Processing Flow ........................................................................................ 25
Figure 5-1 GPMessage XML Diagram ..................................................................................................... 35
Figure 6-1 GPHeader XML Diagram........................................................................................................ 38
Figure 7-1 GPBody XML Diagram............................................................................................................ 42
Figure 8-1 AP XML Diagram ..................................................................................................................... 44
Figure 9-1 CP XML Diagram ..................................................................................................................... 45
Figure 10-1 CPChanges XML Diagram ................................................................................................... 47
Figure 11-1 KP XML Diagram ................................................................................................................... 49
Figure 12-1 KeyExchange XML Diagram ............................................................................................... 50
Figure 13-1 LoadFileProfile XML Diagram ............................................................................................. 51
Figure 14-1 ProfileRequest XML Diagram.............................................................................................. 52
Figure 15-1 ApplicationDataNotification XML Diagram....................................................................... 56
Figure 16-1 ApplicationDataRequest XML Diagram ............................................................................ 69
Figure 17-1 CardCustomization XML Diagram ..................................................................................... 71
Figure 17-2 CardCustomization Attributes ............................................................................................ 72
Figure 17-3 ModuleIdentifierCode Attributes........................................................................................ 73
Figure 18-1 BatchCardCustomization XML Diagram ........................................................................... 76
Figure 18-2 CommonCardConfiguration Attributes ............................................................................. 81
Figure 19-1 ApplicationAuditTrail XML Diagram .................................................................................. 84
Figure 20-1 BatchAuditTrail XML Diagram ............................................................................................ 90
Figure 20-2 CommonLogIdentifierCode Attributes .............................................................................. 98
Figure 21-1 CardAuditTrail XML Diagram............................................................................................ 101
Figure 22-1 Error XML Diagram............................................................................................................. 103
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page viii
Revision History
Version Date Who Comments
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 1/113
1. Introduction
The GlobalPlatform systems infrastructure model is based on the concept of distinct infrastructural
components. This model was chosen for its simplicity, extensibility and for the fact that it allows
component developers to specialize in their areas of competence. However, in any particular
GlobalPlatform smart card infrastructure, systems from different vendors will be used. In line with
GlobalPlatform’s objective for open standards, this document addresses the standardization of
communication within the system infrastructure.
It is expected that this document be used in conjunction with other GlobalPlatform documentation.
The document map presented in Figure 1-1 illustrates this document as it relates to complementary
system documentation.
Device Card
Specification Specification
GP Application GP Key
SCMS SCMS
Developers Management
Minimum Functional
Guide System
Requirements Requirements
Requirements
GP Messaging GP Card
Specification Customization Guide
GP Load & Personalization GP Guide to GP Systems Profiles GP Systems
Interface Specification Common Personalization Specification Scripting Specification
Figure 1-1 This Specification and Directly Related Documents
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 2/113
1.1 Intended Audience
This document is targeted to Systems Developers and Systems Integrators participating in
GlobalPlatform smart card implementations. Such systems could include:
Data Preparation Systems
Personalization Systems
Application Management Systems
Smart Card Management Systems
Personalization Collators/Decollators
1.2 Scope
This document is limited to describing the format and data requirements when various components of
the systems infrastructure involved are required to communicate.
The following is in the scope of the document:
Card customization messages
Profile exchange messages
Post issuance messages
Error messages
The following is outside of the scope of the document:
Messaging protocol
System design
System and application specific features
1.3 Normative References
The documents specified in Table 1-1 are referenced in this specification
Standard / Specification Description
Defines the requirements for a GlobalPlatform smart card.
GlobalPlatform Card
Available at
Specification 2.1.1, 2003
http://www.globalplatform.org/
GlobalPlatform Systems Basic XML data structures used to describe smart cards,
Profiles Specification, 1.1, applications, and related entities. Available at
2003 http://www.globalplatform.org/
GlobalPlatform Systems Defines the language to use to create code to customize
Scripting Language multi-application smart cards. Available at
Specification, 1.1, 2003 http://www.globalplatform.org/
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 3/113
Standard / Specification Description
Describes the major customization components required to
implement the card customization process, the
GlobalPlatform Systems
responsibilities for each of the major roles and how GP
Card Customization Guide,
profiles and the GP scripting language should be used for
1.0, 2002
card customization under GlobalPlatform. Available at
http://www.globalplatform.org/
GlobalPlatform Load and Describes a standard interface between a data preparation
Personalization Interface system and a personalization system. Available at
Specification, 1.0, 2003 http://www.globalplatform.org/
GlobalPlatform Guide to Provides detailed guidelines on how to implement the
Common Personalization, common personalization. Available at
1.0, 2003 http://www.globalplatform.org/
Provides detailed specification over the common
EMV Card Personalization
personalization approach adopted by EMV. Available at
Specification, 1.0, 2003
http://www.emvco.com/
Specifies XML digital signature processing rules and syntax.
W3C
XML Signatures provide Intergrity, message Authentication,
XML-Signature Syntax and
and/or signer authentication services for data of any type,
Processing,
whether located within the XML that includes the signature
W3C Recommendation 12
or elsewhere. Available at
February 2002
http://www.w3.org/
W3C specifies a process for encrypting data and representing the
XML-Encryption Syntax and result in XML. The data may be arbitrary data (including an
Processing, XML document), an XML element, or XML element content.
W3C Recommendation 10 Available at
December 2002 http://www.w3.org/
Extensible Markup
Language (XML) 1.0, W3C
[W3C_XML]
Recommendation 10-Feb-
98, REC-xml-19980210
ISO/IEC 7816-3:
Information Technology –
Identification Cards –
Integrated Circuit(s) Cards
[IS7816-3]
with Contacts – Part 3:
Electronic Signals and
Transmission Protocols, 2nd
Edition, 15 December 1997.
ISO/IEC 7816-4:
Information Technology –
Identification Cards –
Integrated Circuit(s) Cards
[IS7816-4]
with Contacts – Part 4:
Interindustry Commands for
Interchange, 1st Edition, 1
September 1995.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 4/113
Standard / Specification Description
ISO/IEC 7816-5:
Identification Cards –
Integrated Circuit(s) Cards
with Contacts – Part 5:
[IS7816-5]
Numbering System and
Registration Procedure for
Application Identifier, 1st
Edition, 15 June 1994
ISO/IEC 8825 - International
Standard Organization -
Information Technology - [IS8825]
ASN.1 Encoding Rules –
1995
The UniCode Consortium,
The Unicode Standard - [UNICODE] Defines the UTF-8 format.
Version 3.2, March 2002.
“Namespaces in XML” [W3C NAMESPACES]
REC-xml-names-19990114 XML namespaces provide a simple method for qualifying
http://www.w3.org/TR/1999/REC- element and attribute names used in XML documents by
xml-names-19990114
associating them with namespaces identified by URI
references.
“XML Schema Part 1: [W3C SCHEMA1]
Structures” XML Schema: Structures specifies the XML Schema
http://www.w3.org/TR/2001/REC- definition language, which offers facilities for describing the
xmlschema-1-20010502/
structure and constraining the contents of XML 1.0
documents, including those which exploit the XML
Namespace facility.
“XML Schema Part 2: [W3C SCHEMA2]
Datatypes” XML Schema: Datatypes is part 2 of the specification of the
http://www.w3.org/TR/2001/REC- XML Schema language. It defines facilities for defining
xmlschema-2-20010502/
datatypes to be used in XML Schemas as well as other XML
specifications.
Table 1-1 Normative References
1.4 Abbreviations and Notations
Abbreviation Meaning
AID Application Identifier (see ISO/IEC 7816-5)
CIN Card Image Number / Card Identification Number
Logical Card Reference Number identifies a card with one or
CRN multiple application for identified cardholder. If the card is
replaced the CRN remains the same.
Europay, MasterCard, and Visa; used to refer to the ICC
EMV
Specifications for Payment Systems
IC Integrated Circuit
ICC Integrated Circuit Card
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 5/113
IPR Intellectual Property
ISK Initial Supplier Key
OID Object Identifier specified by ASN1.
OPEN GlobalPlatform Card Environment
PIN Personal Identification Number
RFU Reserved for Future Use
RID Registered Application Provider Identifier
ROM Read-only Memory
RSA Rivest / Shamir / Adleman asymmetric algorithm
SCMS Smart Card Management System
XML eXtensive Markup Language
Table 1-2 Abbreviations and Notations
1.5 Conventions
Text in Verdana Bold refers to elements and attributes from XML document type definition files,
XML schema files, XML documents, XML elements, and XML attributes.
1.6 Objectives
The objective of this document is to describe the standardized messages that need to be exchanged
between disparate systems in a GlobalPlatform smart card environment. Messages can be
exchanged between any number of parties, and in some cases the recipient may not necessarily be
the entity required to act on the message. However, it is the responsibility of the recipient system to
route the message on to the relevant party. The GlobalPlatform Messaging Specification's primary
objective is to standardize the most common messages that will be exchanged between disparate
systems from a range of suppliers. By creating standards for these fundamental messages, the
intention is to reduce systems integration impacts typically associated with constructing a systems
architecture from a variety of solution providers.
It is important to note that the objective of this specification is not to prescribe or specify messages
internal to a supplier of a system. Thus, where a supplier's product or product solution internalizes
the interchanges of two or more actors identified in this document, the implementation of these
particular interchanges is left to the design discretion of the supplier. In such instances, where the
product eventually needs to interface with other systems, the required messages for these interfaces
are defined in the GlobalPlatform Messaging Specification.
The messages described in the GlobalPlatform Messaging Specification all utilize a standard XML
message header. The purpose of a standardized header is to facilitate message identification by
systems utilizing this specification. This header will, at a minimum, describe:
Message Identifier
Message Type
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 6/113
Message Source
Message Recipient
Message Security
The messages described in this specification can be characterized into two different categories:
Messages for GlobalPlatform Profiles. These messages focus on card, application and key
management interchange.
Messages for GlobalPlatform Card Customization. These messages focus on
personalization data preparation and personalization enablement including post issuance
delete, load, install and personalization. This category includes audit trail messages.
Extensible Markup Language (XML) is the language of choice to structure messages. XML provides
the flexibility and standards based approach that messages require in order to be unambiguous,
support different versions of messages as they evolve, and be conducive to ease of information
parsing and maintenance. XML is easily adaptable by actors involved in the Card Personalization
process, and facilitates future changes in the content model as these changes need only be reflected
in the XML schemas used by message providers. As a result, XML as a choice to represent
messages is an open approach that should be tenable to everyone involved in smart card
implementations.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 7/113
2. Actors Roles and Responsibilities
There are various actors involved in the production, distribution and maintenance of a multi-
application smart card program. This section of the specification defines a simple model describing
the roles necessary in such programs. Figure 2-1 depicts this model and labels the interactions
between these roles. These labels will be useful when delving into message specifics elsewhere in
this specification.
Actors are the entities responsible for playing roles (i.e., taking actions). Roles are the functions to be
performed. Responsibilities describe more specifically the actions and the scope of actions that are
performed.
An actor may perform dual or even multiple roles. For example, a Card Issuer could conceivably also
be the Application Provider as well as the Loader. At a high level an actor can also perform roles that
appear similar or may be identical. At a lower level of detail, the specific responsibilities of actors
distinguish the roles they play.
In addition, several actors may combine responsibilities to accomplish a certain function. For
example, while there may be only one actor responsible for application loading, the Application
Provider or the Cardholders have responsibilities that result in the initiation of application loading. All
have some common set of responsibilities with respect to loading but each may deploy different
processes and instruments to acquire the application to be loaded.
Although this specification may be used to implement interfaces internal to a role, the GP Messaging
Specification does not dictate any interface or messaging exchanged internally to a role or even to an
actor performing multiple roles.
The following sections define the elements which need to be exchanged between the systems
supplied under the different roles. It is essential for an actor playing one or multiple roles to know
which data elements it is expected to send out and receive with respect to the messages exchanged.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 8/113
Figure 2-1 Actors and Interchanges
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 9/113
2.1 Platform Specification Owner
The Platform Specification Owner defines and maintains the card platform operating system
specifications. The GlobalPlatform consortium is the Platform Specification Owner for the
GlobalPlatform Specifications.
A platform is defined as the combination of:
the on-card functionality that is independent of applications and hardware,
the on-card administrative functions required to support applications,
and the off-card administrative functions required to facilitate the management of applications
to/from the card.
The Platform Specification Owner has the following responsibilities:
to develop and maintain the specification content and Type Approval requirements,
and to license the platform specifications to the Platform Developers, the Application
Developers and others as required.
To perform its responsibilities, the Platform Specification Owner should be able to:
1. Send to other actors:
a. Platform specification (to the Platform Developer [PD])
2.1.1 Platform Specification Owner’s Processing Flow
Figure 2-2 illustrates the Platform Specification Owner’s participation in the production lifecycle.
2.2 Platform Developer
The Platform Developer is responsible for the development of the GlobalPlatform cards according to
the Specifications provided by the GlobalPlatform consortium. The Actors playing this role will be
primarily those entities currently developing read-only memory (ROM) code for masking on Integrated
Circuits in the Smart Card industry, although other entities in different industry sectors may also
choose to do so.
The Platform Developer has the following responsibilities:
to select the appropriate target silicon on which the platform will reside,
to license the specifications from the Platform Specification Owner,
to design and produce code to satisfy the requirements of the specifications and the chip
device,
to securely deliver the code to and procure a mask from the IC Manufacturer,
to satisfy the Type Approval requirements specified by the Platform Specification Owner,
and to generate application profiles for the platform application components (i.e., card
manager and security domain applications).
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 10/113
To perform its responsibilities, the Platform Developer should be able to:
1. Receive from other actors:
a. Platform Specification (from the Platform Specification Owner [PS])
2. Send to other actors:
a. Binary Operating System (to the IC Manufacturer [IM])
2.2.1 Platform Developer’s Processing Flow
Figure 2-2 depicts the Platform Developer’s participation in the production lifecycle.
Platform Specification Owner Platform Developer IC Manufacturer
Sends Platform Receives Specification
Specification to the Platform
Developer
Develops the platform
Sends binary Operating Receives binary Operating
System to the IC System
Manufacturer
Figure 2-2 Platform Developer’s Processing Flow
2.3 IC Manufacturer
The entity that fabricates wafers containing chips with a specified ROM configuration. The Actors
playing this role will be primarily those entities currently manufacturing Integrated Circuits for the chip
card industry, although other entities in the silicon chip industry may also choose to do so.
The IC Manufacturer has the following responsibilities:
to accept ROM code from the Platform Developer,
to control the ROM masking process,
to securely receive the transport keys for a set of chips containing a particular platform from
the appropriate key management authority,
to securely load initial transport keys and/or certificates into the chip,
to operate under appropriate security and quality processes (e.g., accepted industry
practices, guidelines, standards, laws, regulations),
to securely deliver the chips to the Card Manufacturer,
and to generate the ISK along with a Key Profile.
To perform its responsibilities, the IC Manufacturer should be able to:
1. Receive from other actors:
a. Binary Operating System (from the Platform Developer [PD])
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 11/113
2. Send to other actors:
a. IC Information (to the Card Manufacturer [CM])
b. Key and Key profile for the ISK (to the Card Manufacturer [CM])
2.3.1 IC Manufacturer’s Processing Flow
Figure 2-3 depicts the IC Manufacturer’s participation in the production lifecycle.
Platform Developer IC Manufacturer Card Manufacturer
Sends binary Operating Receives binary OS
System to the IC Manufactures chip
Manufacturer
Sends IC information to the Receives IC information
Card Manufacturer from IC Manufacturer
Sends IC to the Card Receives IC
Manufacturer
Sends Initial Supplier Key to Receives ISK from IC
the Card Manufacturer Manufacturer
Figure 2-3 IC Manufacturer’s Processing Flow
2.4 Card Manufacturer
The Card Manufacturer is the entity that manufactures (fabricates) cards to the requirements of the
Card Issuer. This role is principally a materials management role. It is often coupled with the Loader
and Card Enabler roles in the initial production of the cards.
The Actors playing this role will be primarily those entities currently manufacturing cards for the Smart
Card industry, although other entities in different industry sectors may also choose to do so.
The Card Manufacturer has the following responsibilities:
to procure and accept all material components necessary for card manufacturing (i.e., chips,
plastic),
to produce plastic card bodies to the design requirements of the Card Issuer,
to embeds the chips in the card plastic,
to load the card manufacturer initial key(s) for the Issuer Security Domain,
to update the card lifecycle status (GP: OP_READY state refer to GP card spec),
to securely deliver the cards to the Card Issuer (or Card Issuer agents),
to create initial card profiles,
and to generate unique card serial number.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 12/113
To perform its responsibilities, the Card Manufacturer should be able to:
1. Receive from other actors:
a. IC information (from the IC Manufacturer [IM])
b. Key and Key profile for the ISK (From the IC Manufacturer [IM])
2. Send to other actors:
a. Initial Card Profile (to the Card Issuer [CI])
b. Key and Key profile for the transport key (to the Card Issuer [CI])
2.4.1 Card Manufacturer’s Processing Flow
The Card Manufacturer’s processing flow consists of activities required for embedding the IC into the
card. Figure 2-4 depicts the Card Manufacturer’s participation in the production lifecycle.
IC Manufacturer Card Manufacturer Card Issuer
Generate and send Initial
Receives Initial Supplier
Supplier Key (profile and
Key (profile and value) from
value) to the Card
IC Manufacturer.
Manufacturer
Sends IC information to the Receives IC information
Card Manufacturer from IC Manufacturer
Embeds chip in the card
Generates the Issuer Receives Initial Issuer
Security Domain Initial Keys Security Domain Keys
and load them and sends (profile and value) and
(profile and value) them to sends them to card enabler
the Card Issuer
Changes the status of the
card to OP_READY
Creates initial Card Profile Receives initial Card Profile
and sends it to card enabler
Figure 2-4 Card Embedding Processing Flow
2.5 Card Enabler
The Card Enabler performs pre-personalization functions, specifically the loading of the initial Issuer
and the Application Provider Security Domain keys and personalizing the Issuer’s Security Domain
with Issuer specific data. Should a card support delegated management, the Card Enabler would
also load the Issuer’s token verification and receipt generation keys on the card. The token
verification key is used to verify the authenticity of any third party applications Extradition, Load and
Install tokens before delegated management Extradition, Load or Install is permitted. The receipt
generation key is used to sign a receipt after a successful delegated management load, install,
extradition or delete
Part of the responsibility for loading any Application Provider Security Domain keys may include
loading DAP verification keys for Security Domains performing DAP or Mandated DAP verification.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 13/113
The Card Enabler prepares the platform for subsequent application loading.
The Actors playing this role will be primarily those entities currently providing bureau operations,
including manufacturing, data loading and personalization services, to the Smart Card industry,
although other entities may wish to do this.
The Card Enabler has the following responsibilities:
to securely load the platform keys and/or card keys and Card Issuer specific data to the card,
to securely load the supplementary security domain keys,
to update platform lifecycle status (GP: INITIALIZED state refer to GP card spec),
to update the card profile,
and to securely deliver enabled cards to the Card Issuer.
To perform its responsibilities, Card Enabler should be able to.
1. Receive from other actors:
a. Key and Key profile for Transport Key for the Issuer Security Domain (from Card Issuer
[CI])
b. Key and Key profile for Issuer’s Initial Security Domain Keys (from the Card Issuer [CI])
c. Key and Key profile for Issuer Security Domain Token verification Key and issuing
Receipt Key in case of delegated management (from the Card Issuer [CI])
d. Key and Key profile for Supplementary Security Domain keys (from the Application
Provider [AP])
e. Card Profile (from the Card Issuer [CI])
f. Card issuer specific data (from the Card issuer [CI])
2. Send to other actors:
a. Updated Card Profile or updated elements in card profile (to the Card Issuer [CI])
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 14/113
2.5.1 Card Enabler’s Processing Flow
The Card Enabler’s processing flow consists of activities required for enabling the card. Figure 2-5
depicts the Card Enabler’s participation in the production lifecycle.
Card Manufacturer Card Issuer Card Enabler
Sends issuer’s specific data Receives issuer’s specific
to the card enabler data
Receives Initial Transport Receives Initial Transport
Sends Initial Transport Key for
Key for Issuer Security Key for Issuer Security
Issuer Security Domain (profile
Domain (profile and value) Domain (profile and value)
and value)
and sends to the Card
Enabler
Receives Card Profile and
Creates initial Card Profile Receives initial Card Profile updates after initialization of
and sends it to card enabler the issuer’s security domain
and sends it back to the
card issuer
Generates initial issuer’s Receives initial issuer’s
security domain keys and Security Domain keys,
optional Token verification optional Token verification
and Receipt generation and Receipt generation
keys with key profiles and keys with key profiles and
Application Provider sends them to the card loads them to the card
enabler
Generates initial
supplementary security Receives initial
domain keys and optional supplementary Security
DAP verification key with Domain keys and optional
key profiles and sends them DAP verification key with
to the card enabler key profiles and loads them
Having card profile and
initial keys with key profiles,
enables the card by loading
initial keys and turn the card
status to INITIALIZED
Has updated card profile for Sends updated card profile
the enabled card which is in or updated elements of the
INITIALIZED state card profile back to the card
issuer
Figure 2-5 Card Enablement Processing Flow
2.6 Application Owner
The Application Owner defines and maintains the IC Card application specifications.
The Actors playing this role may be Payment Associations, Government Departments or any third
party in any industry sector who wishes to do so.
The Application Owner has the following responsibilities:
to obtain and maintain the registry for an Application Identifier (AID) for the application,
to specify requirements for the development and type approval of the application,
to perform configuration management for the application,
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 15/113
to license the application IPR,
and to securely deliver the application product / specification to the Application Provider.
To perform its responsibilities, the Application Owner should be able to:
1. Receive from other actors:
a. Load File (from the Application Developer [AD])
b. Load File profile (from the Application Developer [AD])
c. Application Profile (from the Application Developer [AD])
d. Application Key Profiles (from the Application Developer [AD])
2. Send to other actors:
a. Load File (to the Application Provider [AP])
b. Load File profile (to the Application Provider [AP])
c. Application Profile (to the Application Provider [AP])
d. Application Key Profiles (to the Application Provider [AP])
e. AID (to the Application Provider [AP])
f. Specification including AID (to the Application Developer [AD])
2.6.1 Application Owner’s Processing Flow
The Application Owner’s processing flow consists of activities required for subcontracting application
development. Figure 2-6 depicts the Application Owner’s participation in the production lifecycle.
Application Developer Application Owner Application Provider
Receives application Sends application
specification including AID specification including AID
Develops application,
application profile, load file
profile and application key
profiles
Receives application profile,
loadfile, loadfile profile, Receives application profile,
Sends application profile, application key profiles, AID loadfile, loadfile profile,
loadfile profile, application and sends them to the application key profiles and
key profiles and load file Application Provider AID
Figure 2-6 Application development Subcontracting Processing Flow
2.7 Application Developer
The Application Developer writes application code.
The Actors playing this role will be primarily software house experts in the language of the target
platform.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 16/113
The Application Developer has the following responsibilities:
to develop the application according to the requirements and specifications provided by the
Application Owner,
to securely deliver the completed product to the Application Owner,
to satisfy Type Approval requirements specified by the Application Owner,
and to create and to maintain application related profiles.
To perform its responsibilities, Application Developer should be able to:
1. Receive from other actors:
a. Application Specification and optional AID (from the Application Owner [AO])
2. Send to other actors:
a. Load File (to the Application Owner [AO])
b. Load File profile (to the Application Owner [AO])
c. Application Profile (to the Application Owner [AO])
d. Application Key Profiles (to the Application Owner [AO])
2.7.1 Application Developer’s Processing Flow
Refer to Figure 2-6 for an illustration of the Application Developer’s participation in the production
lifecycle.
2.8 Application Provider
The Application Provider procures the necessary components to load a complete application on to a
card (i.e., application code, application data, application keys and/or certificates, and data belonging
to a specific Cardholder). The Application Provider has a direct business relationship with the
Cardholder and provides a card-based service to that Cardholder.
The Actors playing this role will be primarily traditional Card Issuers, loyalty scheme operators,
government associations or Certificate Authorities managing public key infrastructures, although
other entities in different industry sectors will also do so.
The Application Provider has the following responsibilities:
to define its own application product or card service offering,
to establish the business relationship with the Card Issuer of the card for the target
Cardholder and obtain the necessary authority to load code and data onto the Card Issuer's
card,
to maintain an inventory of or be able to generate application load files for various platforms
and chips,
to securely produce and maintain an inventory of application keys and/or certificates (for
protection of code or insertion into application),
to obtain from the Card Issuer and maintain an inventory of application load tokens,
to establish base policies for application expiry, renewal, update and replacement,
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 17/113
to identify and qualify Cardholders who may use the service,
to contract for services with and securely deliver necessary application components to the
Loader,
to provide an appropriate Cardholder assistance and support infrastructure for provided
applications,
to comply with security policies and procedures set by the Card Issuer,
to operate under appropriate security and quality processes (i.e., accepted industry practices,
guidelines, standards, laws, regulations),
and to make modifications and to maintain scripts, application profiles and load file profiles
under the direction of the Card Issuer.
To perform its responsibilities, the Application Provider should be able to:
1. Receive from other actors:
a. Load File (from the Application Owner [AO])
b. Load File profile (from the Application Owner [AO])
c. Application Profile (from the Application Owner [AO])
d. Application Key Profile (from the Application Owner [AO])
e. AID (from the Application Owner [AO])
f. Logical Card Reference Number CRN (from the Card Issuer [CI])
g. Application data preparation request (from the Card Issuer [CI])
h. Application Audit Data (from the Collator/Decollator [CD])
2. Send to other actors:
a. Load File (to the Card Issuer [CI])
b. Load File profile (to the Card Issuer [CI])
c. Application Profile (to the Card Issuer [CI], Collator/Decollator [CD])
d. Key profiles for application keys (to the Collator/Decollator [CD])
e. Key profiles for application secret data Transport keys (to the Collator/Decollator [CD])
f. Keys (including optional DAP verification key) and key profiles for the Supplementary
Security Domain (to the Card Enabler [CE])
g. Application data per CRN (to the Collator/Decollator [CD])
h. Application install parameter data (to the Card Issuer [CI])
i. AID (to the Card Issuer [CI])
2.8.1 Application Provider’s Processing Flow
The Application Provider’s processing flow consists of activities required for preparing the application
data. Figure 2-7 depicts the Application Provider’s participation in the production lifecycle. For
further illustration of the Application Provider’s role, refer to Figure 2-5, Figure 2-6 and Figure 2-8.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 18/113
Application Owner Application Provider Card Issuer Collator
Receives AID from
Sends AID Application Owner and Receives AID from
sends it to the Card Issuer Application Provider
Sends application profile, Receives application profile,
load file profile, application loadfile profile, application
key profile and load file key profile and load file
Prepares load file
application’s install
parameters data
Receives and sends
Sends application profile, Receives application profile, application profile, loadfile
load file profile, load file, loadfile profile, load file, profile, load file,
application’s install application’s install application’s install
parameters data to the Card parameters data and sends parameters data to the
Issuer for load and/or install to the Collator Loader for load and/or
process under Issuer’s install process under
Security domain Issuer’s Security domain
Receives the CRN for which Sends CRN to the application
application data should be provider along with data
prepared and sent to the preparation request for this CRN
Collator for collation
Having list of CRNs,
application provider Receives application data
prepares data and send it to per CRN for data collation
the Collator
Sends key profiles for
application keys and Receives key profile and
application secret data sends it to the Loader
transport keys to the collator
Sends application profile Receives application profile
to the collator and sends it to the loader
Receives the audit trails
from Loader per CRN
Performs decollation of
audit trails for card issuer
and application providers
Receives the decollated Sends the decollated audit
audit trail trail for the Application
Provider
Figure 2-7 Application and Application Data Preparation Processing Flow
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 19/113
2.9 Card Issuer
The Card Issuer holds ultimate responsibility for the GlobalPlatform card. A Card Issuer may be the
only authority that allows load, install, delete, extradition or personalization of applications or the Card
Issuer may delegate load, install, extradition or personalization of the applications to a third party
such as an Application Provider.
The Card Issuer issues cards to the Cardholders. The Card Issuer is responsible for securely
managing all the pre-issuance production processes culminating in a card specifically prepared for a
Cardholder, and for many post-issuance processes, including final decommissioning of a card.
The Card Issuer determines a portfolio of applications to be supported and offered to its card base.
The Issuer manages authorization of applications permitted to reside on its cards.
The Actors playing this role could be Financial Institutions, Transport Operators, Telecommunications
Companies, University Campuses or Government bodies.
The Card Issuer has the following responsibilities:
to develop the card product profile,
to choose the platform and application technologies,
to design card layout (graphical data),
to choose other actors and govern the relationship with those actors,
to control inventory of the cards, including card orders from the Card Manufacturers and
distribution to the Cardholders,
to control the inventory of supported applications versus different Platform/hardware card
combinations,
to control the data, keys, and/or certificates necessary for enabling cards with card unique
information and contract for services with the Card Enabler,
to maintain an inventory of platform related keys and/or certificates,
to maintain an inventory and provide to the Application Providers the necessary application
load, install or extradition tokens,
to maintain the CIN for each Cardholder,
to manage security policies and procedures governing the relationships between, and the
internal practices of, all actors (i.e., logical access control policies, procedures to ensure
appropriate segregation between the IC Manufacturer, the Card Manufacturer and the
Application Provider security domains, and the Application Provider and the Issuer security
domains),
to govern the usage of profiles and scripts for purposes of load, personalization, delete,
extradition and update operations),
to maintain the issued card base policies for card and application expiry, renewal, update and
replacement both by Cardholder and by type of card issued,
to establish the policies and operating rules governing application loading and deleting,
to control identification, qualification and validation of Cardholders,
to control the supply of cards and applications for Cardholders,
and to provide the appropriate Cardholder assistance and support infrastructure.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 20/113
To perform its responsibilities, the Card Issuer should be able to:
1. Receive from other actors:
a. Load File (from the Application Provider [AP])
b. Load File profile (from the Application Provider [AP])
c. Application Profile (from the Application Provider [AP])
d. Initial Card profile (from the Card Manufacturer [CM])
e. Card profile changes (from the Card Enabler [CE])
f. Application install parameter data (from the Application Provider [AP])
g. AID (from the Application Provider [AP])
h. Batch and card audit trail and data in card profile format (from the Collator/Decollator
[CD])
i. Load, install, extradition and delete receipts for delegated management (From the
Application Provider [AP])
2. Send to other actors:
a. CRN (to the Application Provider [AP])
b. Card Profile (to the Card Enabler [CE] and to the Collator/Decollator [CD])
c. Load File (to the Collator/Decollator [CD])
d. Load File profile (to the Collator/Decollator [CD])
e. Application Profile (to the Collator/Decollator [CD])
f. Application Profile for Platform application (to the Collator/Decollator [CD])
g. Key profiles for Transport Keys (to the Card Enabler [CE])
h. Key profiles for Security Domain Keys (to the Card Enabler [CE] and to the
Collator/Decollator [CD]),
i. Key profiles for the Card Issuer secret data Transport Keys (to the Collator/Decollator
[CD])
j. Batch and card customization data per CRN (to the Collator/Decollator [CD])
k. Application install parameter data (to the Collator/Decollator [CD])
l. Card Issuer Specific data (to the Card Enabler [CE])
m. PIN (to Card Holder [CH])
n. Load, install and extradition tokens for delegated management (to the Application
Provider [AP])
2.9.1 Card Issuer’s Processing Flow
The Car Issuer’s processing flow consists of activities required for card customization. Figure 2-8
depicts the Card Issuer’s participation in the production lifecycle.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 21/113
Application Provider Card Issuer Collator Loader
Receives the card profile for
Sends the card profile Receives the card profile load and/or install application
and/or personalization of the
applications
Sends the platform Receives the platform Receives platform application
application profile application profile profile for load and/or install
and/or personalization of the
applications
Sends application profile, Receives application Receives application Receives application
loadfile profile, load file, profile, loadfile profile, load profile, loadfile profile, load profile, loadfile profile, load
application’s install para file, application’s install file, application’s install file, application’s install
meters data to the Card para meters data and para meters data and para meters data for load
Issuer for load and/or sends to the Collator for sends to the Loader for and/or install process
install process under load and/or install process load and/or install process under Issuer’s Security
Issuer’s Security domain under Issuer’s Security under Issuer’s Security domain
domain domain
Receives the CRNs for Sends CRN to the
which application data application provider along
should be prepared and with data preparation
sent to the Collator for request for this CRN
collation
Key profiles for Card Key profiles for Card Key profiles for Card
Issuer secret data Issuer secret data Issuer secret data
Transport Keys Transport Keys Transport Keys
Sends Job/collator Receives Job/collator
Configuration data per Configuration data per
CRN for data collation CRN for data collation
Having list of CRNs,
application provider Receives application data
prepares data and sends it per CRN for data collation
to the Collator
Receives key profile and Receives key profile for
Sends key profiles for sends it to the application application secret data
application secret data loader transport keys personalization
transport keys to the
collator
Receives application Receives application
Sends application profile profile and sends it to the profile for personalization
to the collator application loader
Having job/collator
configuration data and
application data per CRN,
the Collator performs the
collation for the Loader
Sends the collated data to Receives application data.
the Loader Having all the elements
the Loader performs card
customization (load and/or
install and/or
Receives the audit trails personalization) and
from application loader per returns the audit trails
CRN
Performs decollation of
audit trails for card issuer
and application providers
Receives the updated card Receives the updated card Sends updated card profile
profile or updated element profile or updated element or updated element of the
of the card profile to of the card profile and card profile to the data
update the card profile to sends it to the card issuer decollator
be stored
Receives the decollated Sends the decollated audit
batch/card audit trail trail for the card issuer
Receives the decollated Sends the decollated audit
application audit trail trail for the application
providers
Figure 2-8 Card Customization Processing Flow
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 22/113
2.10 Collator/Decollator
An Application Provider may generate personalization data for one or more applications or the
request could be sent to individual Application Providers. The result from the personalization request
is sent to the Collator/Decollator. The Collator/Decollator performs the collation of multi-application
personalization data for each Cardholder into a single data stream for processing by a Loader. The
Collator/Decollator could perform the reverse communications by sending information that was
produced by the Loader to the Application Provider. This is called Demodulation performed by the
Collator/Decollator.
The Collator/Decollator is responsible for ensuring that all the data pertaining to the suite of
applications offered to the Cardholder reaches the correct card. The Collator/Decollator achieves this
by linking the Issuer and all Application Provider data using the Logical Card Reference Number
(CRN).
While the functionality of the Collator/Decollator remains the same, there are a variety of different
implementation scenarios such as the Collator/Decollator being part of the Loader/Personalization
system, or being part of the Issuer/SCMS, or in cases where extreme privacy is required, the
Collator/Decollator may be a third party.
After personalization, the Collator/Decollator performs the decollation function to return information to
the Issuer and the appropriate Application Providers about the results of the personalization process.
The return data may also contain any exception information or error messages. There are also a
variety of implementations regardless of the location of the decollation function. The decollation
function may take place in a Loader/Personalization System, or in an Issuer/SCMS location, or by an
Application Provider. In cases where extreme privacy is required, the decollation function may be
done by a third party.
The Actors playing this role will be primarily those entities that provide the interface to the Loader and
are responsible for the order. It is also possible for specific implementations to combine the
Collator/Decollator role with other roles or even divide these responsibilities among multiple roles.
The Collator/Decollator has the following responsibilities:
Interface with the Card Issuer to obtain the parameters for a specific issuance job, including:
Card type identifier
List of CRNs for each card to be issued
List of application AIDs for each CRN, for which application personalization data must be
prepared
Job and environment data for Personalization Bureau usage
Potentially collate the load file and application profile for each application.
Interface with one or more Application Providers (Data Generation responsibility) for receipt
of that Provider's application personalization data and personalization scripts for each CRN.
Interface with the Loader to transmit single collated data stream for processing.
Interface with the Loader to receive audit return data. Decollation is a process of sending
data out to:
the Application Providers (application’s audit data),
and the Card Issuer (configuration audit data).
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 23/113
Ensure enforcement of the Card Issuer security policies for transmission of data.
To perform its responsibilities, the Collator/Decollator should be able to:
1. Receive from other actors:
a. Card Profile (from the Card Issuer [CI])
b. Application Install Parameter Data (from the Card Issuer [CI])
c. Job/Collator configuration Data per CRN (from the Card Issuer [CI])
d. Application Data (from the Application Provider [AP])
e. Load File (from the Card Issuer [CI])
f. Load File profile (from the Card Issuer [CI])
g. Application Profile (from the Application Provider [AP] and the Card Issuer [CI])
h. Key profiles for application keys (Application Provider [AP])
i. Key profiles for application secret data Transport keys (Application Provider [AP])
j. Load, Install and extradition Tokens (from the Application Provider [AP])
k. Key profiles for Security Domain keys (from the Card Issuer [CI])
l. Key profiles for the Card Issuer secret data Transport keys (from the Card Issuer [CI])
m. Updated Card Profile or updated elements in card profile format (from the Loader [LO])
n. Audit trails (from the Loader [LO])
o. Load, Install, extradition and delete Receipts (from the Loader [LO])
2. Send to other actors:
a. Card Profile (to the Loader [LO])
b. Load File (to the Loader [LO])
c. Load File profile (to the Loader [LO])
d. Application Profile (to the Loader [LO])
e. Key profiles (to the Loader [LO])
f. Application install parameter data (to the Loader [LO])
g. Card Customization Data (to the Loader [LO])
h. Load, Install and extradition Token (to the Loader [LO])
i. Audit trail for Application Provider (to the Application Provider [AP])
j. Updated Card Profile or card profile changes (to the Card Issuer [CI])
k. Audit trail for the Card Issuer (to the Card Issuer [CI])
l. Load, Install, extradition and delete Receipts ((to the Application Provider [AP])
2.10.1 Collator/Decollator’s Processing Flow
Refer to Figure 2-9 for an illustration of the Collator/Decollator’s participation in the production
lifecycle.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 24/113
2.11 Loader
The Loader loads Card Issuer specific cards with applications and/or personalization/customization
data according to the instructions of the Application Provider [complying with security policies and
procedures set by the Card Issuer]. It may also place the final Security Domains keys on the card. It
is important to note that the roles and even the Actors themselves may differ for the initial batch
loading of applications and the loading of applications post issuance.
The Actors playing this role will be primarily those entities currently providing (batch) bureau
operations, including data loading, personalization and customization services, to the Smart Card
industry, although other entities may wish to do this. The “Loader” and the “Personalizer” represent
the same entity.
It is likely that the remote loading of applications and customer data over new networks (such as the
Internet) will lead to a number of new (online) Actors performing this role.
The Loader has the following responsibilities:
to securely receive application code, application keys and/or certificates, application tokens
and Cardholder specific personalization data from the Application Provider,
to prepare application code, application keys and/or certificates, application tokens and
personalization data to a format necessary for loading to an Open Platform card,
to provide software, firmware and / or network infrastructure necessary to load the above to a
specific Cardholder card,
to delete application code, keys/certificates and personalization data for specific Cardholders,
to securely deliver mechanisms for the loading, installing, extradition and deletion process
(e.g., remote communication procedures),
to undertake the entire application personalization process including writing of data to
magnetic stripe and embossing where required,
to load the supplementary security domain,
to securely load security domain specific keys and data to the card,
and to process load and personalization scripts.
To perform its responsibilities, the Loader should be able to:
1. Receive from other actors:
a. Card Profile (from the Collator/Decollator [CD])
b. Load File (from the Collator/Decollator [CD])
c. Load File Profile (from the Collator/Decollator [CD])
d. Application Profile (from the Collator/Decollator [CD])
e. Platform Application Profile (from the Collator/Decollator [CD])
f. Keys and Key profiles (from the Collator/Decollator [CD])
g. Card Customization Data (from the Collator/Decollator [CD])
h. Application install parameter data (from the Collator/Decollator [CD])
i. Load, Install and extradition Token (from the Collator/Decollator [CD])
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 25/113
2. Send to other actors:
a. Batch/Card Audit Trail (to the Collator/Decollator [CD])
b. Updated Card Profile or Card Profile Changes (to the Collator/Decollator [CD])
c. Load, Install, extradition and delete Receipt (to the Collator/Decollator [CD])
d. Card (to Card Holder [CH])
2.11.1 Loader’s Processing Flow
Figure 2-9 depicts Loader’s participation in the production lifecycle.
Collator Loader Card Holder
Receives application profile,
Sends application profile, load file, load file profile,
loadfile profile, load file, card profile, card
card profile, card customization data, install
customization data, install parameters data to load
parameters data and/or install and/or
personalize the card
Sends Issuer security Receives Issuer security
domain and issuer secret domain and issuer secret
data keys and key profiles data keys and key profiles
Sends application keys and Receives application keys
application secret data keys and application secret data
and key profiles keys and key profiles
Performs card customization
Updates card profile
Receives audit trails for Sends audit trails
decollation
Receives the updated card Sends updated card profile
profile or card profile or card profile changes
changes and sends to the
card issuer
Sends the card to the Receives the card
cardholder
Figure 2-9 Card Customizing Processing Flow
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 26/113
2.12 Cardholder
The Cardholder is the entity that receives the card.
The Cardholder is the user of the card/chip that interacts with the contents on the card/chip. A
Cardholder maintains the contents of the chip with the authorization of the Card Issuer.
The Actors playing this role will be the target customers of the Card Issuers and Application
Providers.
The Cardholder has the following responsibilities:
to obtain a card from the Card Issuer; to use the card in accordance with terms & conditions
of the Card Issuer and relevant Application Provider(s); to request and obtain
additional/replacement applications from an Application Provider.
To perform its responsibilities, Card Holder should be able to:
1. Receive from other actors:
a. Card (from the Loader [LO])
b. PIN, if any (from the Card Issuer [CI], Application Provider [AP])
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 27/113
3. Data Exchange Matrix
TO Card Card IC Platform Card Application Application Application Collator/Decollator Loader Card
Issuer Manufacturer Manufact. Develop Enabler Develop Owner Provider [CD] [LO] Holder
From [CI] [CM] [IM] [PD] [CE] [AD] [AO] [AP] [CH]
Card -Card Issuer -CRN (data -Card profile -PIN
Issuer Specific Data prep request) -Load File
[CI] -Card profile -Load File profile
-Key Profiles for -Application Profile
Security Domain -Issuer Security Domain App. Profile
keys -Key profiles for Security Domain
-Key profile for Keys
TK -Key profiles for secret data TK
-Job/collator config
-Application install parameter data
Card Manufacturer -Initial Card
[CM] profile
-Key profile for
TK
IC -Key profile for
Manufacturer ISK
[IM] -IC information
Platform -Binary
Developer OS
[PD]
Platform -Platform
Spec Owner Spec.
[PS]
Card -Updated card
Enabler profile/card
[CE] profile changes
Application -Load File
Develop -Load File
[AD] profile
-App Profile
-App Key
Profiles
Application - -Load File
Owner Specification -Load File
[AO] including AID profile
-App Profile
-App Key
Profiles
-AID
Application -Load File -Keys (including -Application Profile -PIN
Provider -Load File optional DAP -Key profiles for Application Keys
[AP] profile verification key) -Key profiles for application secret
-Application with key profiles data TK
Profile for -Application data per CRN
-Application Supplementary - Supplementary Security Domain
install Security Domain profile and Key Profiles for SD keys
parameter data
-AID
Collator/ -Batch/Card -Application -Card profile
Decollator audit trail audit trail -Card customization
[CD] -Updated card data
profile/card -Load File
profile changes -Load File profile
-Application profile
-Platform App profile
-Keys and Key
profiles
-Application install
parameters data
Loader -Batch/Card audit trail -Card
[LO] -Card profile/card profile changes
Table 3-1 Data Exchange Matrix
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license agreement and
any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 28/113
3.1 Card Issuer Data Exchange
3.1.1 Card Issuer [CI] to Card Enabler [CE]
Table 3-2 summarizes the messages exchanged from the Card Issuer to the Card Enabler.
Exchange ID Message Content
CI.CE.1 Card Issuer Specific Data
CI.CE.2 Card profile
CI.CE.3 Key Profiles for Security Domain
keys
CI.CE.4 Key profile for TK
Table 3-2 Card Issuer [CI] to Card Enabler [CE]
3.1.2 Card Issuer [CI] to Application Provider [AP]
Table 3-3 summarizes the message exchanged from the Card Issuer to the Application Provider.
Exchange ID Message Content
CI.AP.1 CRN (Data prep. Request)
Table 3-3 Card Issuer [CI] to Application Provider [AP]
3.1.3 Card Issuer [CI] to Collator/Decollator [CD]
Table 3-4 summarizes the messages exchanged from the Card Issuer to the Collator/Decollator.
Exchange ID Message Content
CI.CD.1 Card profile
CI.CD.2 Load File
CI.CD.3 Load File profile
CI.CD.4 Application Profile
CI.CD.5 Key profiles for Security Domain
Keys
CI.CD.6 Key profiles for secret data TK
CI.CD.7 Job/Collator configuration data
CI.CD.8 Application install parameters data
CI.CD.9 Platform Application Profile
Table 3-4 Card Issuer [CI] to Collator/Decollator [CD]
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 29/113
3.2 Card Manufacturer Data Exchange
3.2.1 Card Manufacturer [CM] to Card Issuer [CI]
Table 3-5 summarizes the messages exchanged from the Card Manufacturer to the Card Issuer.
Exchange ID Message Content
CM.CI.1 Initial Card profile
CM.CI.2 Key profile for TK
Table 3-5 Card Manufacturer [CM] to Card Issuer [CI]
3.3 IC Manufacturer Data Exchange
3.3.1 IC Manufacturer [IM] to Card Manufacturer [CM]
Table 3-6 summarizes the messages exchanged from the IC Manufacturer to the Card Manufacturer.
Exchange Message Content
ID
IM.CM.1 Key profile for ISK
IM.CM.2 IC information
Table 3-6 IC Manufacturer [IM] to Card Manufacturer [CM]
3.4 Platform Developer Data Exchange
3.4.1 Platform Developer [PD] to IC Manufacturer [IM]
Table 3-7 summarizes the message exchanged from the Platform Developer to the IC Manufacturer.
Exchange ID Message Content
PD.IM.1 Binary Operating System
Table 3-7 Platform Developer [PD] to IC Manufacturer [IM]
3.5 Platform Specification Owner Data Exchange
3.5.1 Platform Specification Owner [PS] to Platform Developer [PD]
Table 3-8 summarizes the message exchanged from the Platform Specification Owner to the
Platform Developer.
Exchange ID Message Content
PS.PD.1 Platform Specification
Table 3-8 Platform Specification Owner [PS] to Platform Developer [PD]
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 30/113
3.6 Card Enabler Data Exchange
3.6.1 Card Enabler [CE] to Card Issuer [CI]
Table 3-9 summarizes the message exchanged from the Card Enabler to the Card Issuer.
Exchange ID Message Content
CE.CI.1 Updated Card Profile
Table 3-9 Card Enabler [CE] to Card Issuer [CI]
3.7 Application Developer Data Exchange
3.7.1 Application Developer [AD] to Application Owner [AO]
Table 3-10 summarizes the messages exchanged from the Application Developer to the Application
Owner.
Exchange ID Message Content
AD.AO.1 Load File
AD.AO.2 Load File profile
AD.AO.3 Application Profile
AD.AO.4 Application Key Profiles
Table 3-10 Application Developer [AD] to Application Owner [AO]
3.8 Application Owner Data Exchange
3.8.1 Application Owner [AO] to Application Developer [AD]
Table 3-11 summarizes the message exchanged from the Application Owner to the Application
Developer.
Exchange ID Message Content
AO.AD.1 Specification including AID
Table 3-11 Application Owner [AO] to Application Developer [AD]
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 31/113
3.8.2 Application Owner [AO] to Application Provider [AP]
Table 3-12 summarizes the messages exchanged from the Application Owner to the Application
Provider.
Exchange ID Message Content
AO.AP.1 Load File
AO.AP.2 Load File profile
AO.AP.3 Application Profile
AO.AP.4 AID
AO.AP.5 Application Key Profile
Table 3-12 Application Owner [8] to Application Provider [9]
3.9 Application Provider Data Exchange
3.9.1 Application Provider [AP] to Card Issuer [CI]
Table 3-13 summarizes the messages exchanged from the Application Provider to the Card Issuer.
Exchange ID Message Content
AP.CI.1 Load File
AP.CI.2 Load File Profile
AP.CI.3 Application Profile
AP.CI.4 Application Install Parameters Data
AP.CI.5 AID
Table 3-13 Application Provider [AP] to Card Issuer [CI]
3.9.2 Application Provider [AP] to Card Enabler [CE]
Table 3-13 summarizes the messages exchanged from the Application Provider to the Card Enabler.
Exchange ID Message Content
AP.CE.1 Key Profiles for Security Domain
keys
Table 3-14 Application Provider [AP] to Card Enabler [CE]
3.9.3 Table Application Provider [AP] to Collator/Decollator [CD]
Table 3-15 summarizes the messages exchanged from the Application Provider to the
Collator/Decollator.
Exchange ID Message Content
AP.CD.1 Application Profile
AP.CD.2 Key profiles for Application Keys
AP.CD.3 Key profiles for application secret data
TK
AP.CD.4 Application data per CRN
Table 3-15 Application Provider [AP] to Collator/Decollator [CD]
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 32/113
3.10 Collator/Decollator Data Exchange
3.10.1 Collator/Decollator [CD] to Card Issuer [CI]
Table 3-16 summarizes the messages exchanged from the Collator/Decollator to the Card Issuer.
Exchange ID Message Content
CD.CI.1 Batch/Card Audit Trail
CD.CI.2 Updated Card Profile
Table 3-16 Collator/Decollator [CD] to Card Issuer [CI]
3.10.2 Collator/Decollator [CD] to Application Provider [AP]
Table 3-17 summarizes the message exchanged from the Collator/Decollator to the Application
Provider.
Exchange ID Message Content
CD.AP.1 Application Audit Trail
Table 3-17 Collator/Decollator [CD] to Application Provider [AP]
3.10.3 Collator/Decollator [CD] to Loader [LO]
Table 3-18 summarizes the messages exchanged from the Collator/Decollator to the Loader.
Exchange ID Message Content
CD.LO.1 Card Profile
CD.LO.2 Batch/Card Customization Data
CD.LO.3 Load File
CD.LO.4 Load File profile
CD.LO.5 Application Profile
CD.LO.6 Keys and Key Profiles
CD.LO.7 Application Install Parameters Data
CD.LO.8 Platform Application Profile
Table 3-18 Collator/Decollator [CD] to Loader [LO]
3.11 Loader Data Exchange
3.11.1 Loader [LO] to Collator/Decollator [CD]
Table 3-19 summarizes the messages exchanged from the Loader to the Collator/Decollator.
Exchange ID Message Content
LO.CD.1 Batch/Card Audit Trail
LO.CD.2 Updated Card Profile
Table 3-19 Loader [LO] to Collator/Decollator [CD]
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 33/113
4. Message Categorization
Table 4-1 categorizes the messages summarized and described in the previous sections under
logical groupings containing messages of similar type. Aside from messages which typically only
occur once in a one-time information exchange, the bulk of the messages can either be categorized
as messages used in exchanging profiles and messages used to facilitate card customization
processes.
Message Message Type Exchange ID Message Content
Category
One time CI.CE.1 Card Issuer Specific Data
Information AO.AD.1 Specification including AID
exchange IM.CM.2 IC information
PD.IM.1 Binary Operating System
PS.PD.1 Platform Specification
Profile
Card Profile CM.CI.1 Initial Card profile
Exchange
exchange CI.CE.2 Card profile
CI.CD.1 Card profile
CD.LO.1 Card Profile
CE.CI.1 Updated Card Profile
LO.CD.2 Updated Card Profile
CD.CI.2 Updated Card Profile
Load File CI.CD.2 Load File
exchange AD.AO.1 Load File
AO.AP.1 Load File
AP.CI.1 Load File
CD.LO.3 Load File
Load File Profile CI.CD.3 Load File profile
exchange AD.AO.2 Load File profile
AO.AP.2 Load File profile
AP.CI.2 Load File profile
CD.LO.4 Load File profile
Application CI.CD.4 Application Profile
Profile exchange AD.AO.3 Application Profile
AO.AP.3 Application Profile
AP.CI.3 Application Profile
AP.CD.1 Application Profile
CD.LO.5 Application Profile
CI.CD.9 Platform Application Profile
CD.LO.8 Platform Application Profile
Platform Key CI.CE.3 Key Profiles for Security Domain keys
Profile exchange CI.CD.5 Key profiles for Security Domain Keys
Application Key AP.CD.2 Key profiles for Application Keys
Profile exchange AP.CE.1 Key profiles for Security Domain Keys
AD.AO.3 Key profiles for Application Keys
AO.AP.5 Key profiles for Application Keys
Transport Key AP.CD.3 Key profiles for application secret data TK
Profile exchange CI.CD.6 Key profiles for secret data TK
CM.CI.2 Key profile for TK
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 34/113
Message Message Type Exchange ID Message Content
Category
IM.CM.1 Key profile for ISK
CI.CE.4 Key profile for TK
CD.LO.6 Key Profiles
Card Install Parameter CI.CD.8 Application install parameter data
Customization exchange AP.CI.4 Application Install Parameters Data
Exchange CD.LO.7 Application Install Parameters Data
AID exchange AO.AP.4 AID
AP.CI.5 AID
CRN exchange CI.AP.1 CRN
Customization CI.CD.7 Job/Collator configuration Data
data exchange AP.CD.4 Application data per CRN
CD.LO.2 Card Customization Data
Return Audit LO.CD.1 Batch/Card Audit Trail
Trail exchange CD.CI.1 Batch/Card Audit Trail for Card Issuer
CD.AP.1 Application Audit Trail
Table 4-1 Message Categories
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 35/113
5. GlobalPlatform Message Structure
The GPMessage is the GlobalPlatform message envelope. It is composed of the GPHeader and
the GPBody elements, the latter incorporates different types of messages.
Figure 5-1 illustrates the GPMessage.
Figure 5-1 GPMessage XML Diagram
Name Description Data Type Encoding No.
None
Table 5-1 GPMessage Attributes
5.1 Namespaces
In order to allow modularity, evolution and seamless integration of the Global Platform messaging in
complex systems, all messages should be expressed in a specific conventional namespace.
GlobalPlatform XML files should comply to [W3C NAMESPACES].
Namespaces identifiers for GlobalPlatform Messaging Specification respects the following layout:
http://namespaces.globalplatform.org/systems-messaging/[VERSION]
or
http://namespaces.globalplatform.org/systems-messaging/[VERSION]/[NAMESPACE]
The latter layout to be used if the namespace identification must be more precise than the version of
the specifications.
Therefore, the namespace that defines elements used in the XML messages described in this
document is given the following identifier:
http://namespaces.globalplatform.org/systems-messaging/1.0.0
Therefore, XML messages that comply with this specification must refer to this URI.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 36/113
5.2 Data Types and String Encoding
The data types in this specification are defined to be consistent with the data types defined in the
GlobalPlatform Systems Profiles Specification and the GlobalPlatform Systems Scripting Language
Specification.
Table 5-2 provides an overview of the abstract data types used throughout this specification
and their text encoding in XML.
Name Description
The value is a sequence of characters. The value is encoded in XML as a
sequence of characters. Characters may be ‘escaped’ using XML entities.
The value “<=” is encoded in XML as follows:
String <=
Separate attributes may indicate additional encodings. See Table 5-3 for a list
of supported text encodings for scripting language ByteString objects.
The value is an integer number. The value is encoded in XML as a decimal or
hexadecimal sequence of characters. Leading zeroes may be added or
omitted. When a hexadecimal encoding is used, the encoding is pre-fixed with
0x. At the data type level a value does not assume a particular size of an
encoding. Therefore, a negative number cannot be encoded in text using twos-
Integer complement notation, a separate sign character must be included.
The value -12345 can be encoded in XML as follows:
-12345
-000012345
-0x3039
-0x00003039
The value is a Boolean true or false. The value is encoded in XML as a literal
text:
true
false
Boolean
By default, if an attribute is not provided, then it is assumed to have a value of
false for purposes of populating the attribute value, unless otherwise stated in
the specification (notably regarding the MandatoryAudit attribute for
DataElement element).
Table 5-2 Data Types
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 37/113
Encoding Description
Each byte is encoded as two hexadecimal digits with optional white space. When
a string is decoded white space is accepted. When a string is encoded it is up to
the environment whether white space is inserted or not. Alphabetic characters
may be uppercase or lowercase.
HEX The hex value { 0xab, 0x34, 0x56 } may be encoded as follows:
ab3456
AB 34 56
Ab34 56
ab 3456
Each byte is encoded as a single extended ASCII character. No conversions are
to occur (i.e., no new-line to CRLF conversion).
ASCII
The value {0x47, 0x70, 0x21}:
Gp!
Table 5-3 String Encodings for String Data Type
5.3 XML Schema References
The XML schema refers to the XML schemas defined in the following specifications and
recommendations:
• ds: W3C XML-Signature Syntax and Processing, W3C Recommendation
• gpm: GlobalPlatform Messaging Specification
• gpp: GlobalPlatform Systems Profiles Specification
• xsd: Extensible Markup Language (XML) 1.0, W3C Recommendation
5.4 Encryption XML
The entire message or any part of the message could be encrypted according to the W3C
XML-Encryption Syntax and Processing. However, it requires the mutual pre-agreement between the
sender and the receiver of the message.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 38/113
6. Message Header
The GPHeader facilitates the automatic reception of the message and recognition of the sender as
well as the automation of a log to track the reception of the messages. An optional Signature
element allows ensuring the integrity of the message. The type attribute within GBHeader
facilitates parsing of the XML when only one type of message is to be exchanged. If the message
contains messages of different types, then the type attribute is specified as MIXED.
Figure 6-1 illustrates GPHeader.
Figure 6-1 GPHeader XML Diagram
Name Description Data Type Encoding No.
The TransactionID attribute contains
TransactionID String ASCII 1
the unique identifier for the message.
This attribute contains an OID that
identifies the sender of the message.
For example, if the sender is
Sender specified as GlobalPlatform, this String HEX 1
attribute is specified as
2A864886FC6B which
corresponds to the OID {
globalplatform }.
This attribute contains an OID that
identifies the receiver of the
message.
For example, if the receiver is
Destination String HEX 1
specified as GlobalPlatform, this
attribute is specified as
2A864886FC6B which
corresponds to the OID {
globalplatform }.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 39/113
Name Description Data Type Encoding No.
Description of the type of the
message.
Valid types are:
AP Application profile
CP Card profile
CP_CHANGES Card profile changes
KP Key profile
KP_EXCHANGES
Key exchange
LFP Load File profile
PROFILE_REQUEST
Profile request
BATCH_CARD_CUSTOMIZATION
Customization data
for a batch of cards
CARD_CUSTOMIZATION
Customization data
for a card
DATA_PREPARATION_REQUEST
Request data *See
Type preparation for a String description 1
given card column
APP_DATA_NOTIFICATION
Personalization data
provided for a given
card
BATCH_AUDIT_TRAIL
Audit trail for batch of
cards
CARD_AUDIT_TRAIL
Audit trail for a given
card
APPLICATION_AUDIT_TRAIL
Audit trail for a given
application for a card
or a batch of cards
ERROR Error notification
MIXED GPBody contains
at least two different
types of messages
Example: CARD_AUDIT_TRAIL
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 40/113
Name Description Data Type Encoding No.
Version of messaging specification
conforming to GP versioning.
Version number is x.x.x where each x
is a decimal number. If the version of
the specification has no last x value,
MessageVersion
then version number is x.x.0. String ASCII 1
Example:
1.0.0
1.0.1
1.1.0
1.1.2
Version of messaging specification
errata being used by the message.
Version number is a decimal digit
corresponding to the version of the
errata.
If the attribute is not specified, then
the version of the messaging
specification errata supported is the
latest version.
ErrataVersion If the attribute is specified with a Integer ASCII 0..1
value of zero, then the version of the
messaging specification is the
specification defined in
MessageVersion without any
errata.
Example:
1 defines errata version 0.1
12 defines errata version 0.12
0 defines no errata
Table 6-1 GPHeader Attributes
6.1 Signature XML element
The Signature is an optional element. When present, it allows verifying the integrity of the
message. Signature is defined as per W3C. Signature must be computed over the entire
message. For this purpose, the Reference element of the Signature must reference the
GPMessage. W3C XML-Signature Syntax and Processing provides more information on how to
compute a signature and populate this XML element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 41/113
7. Message body
The GPBody is the element that contains the core of the message. It is composed of one type of
message if the type attribute within GBHeader specifies a type other than MIXED. If MIXED is
specified, the GPBody element will contain at least two different types of messages as represented
by their respective child elements.
Figure 7-1 illustrates the GPBody element and the different types of messages that it could contain.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 42/113
Figure 7-1 GPBody XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 43/113
Name Description Data Type Encoding No.
None
Table 7-1 GPBody Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 44/113
8. Application Profile Message
The AP element represents a single Application Profile based on Application Profile Unique Identifier.
It can be used for Application Profile exchanges CI.CD.4, AD.AO.3, AO.AP.3, AP.CI.3, AP.CD.1,
CD.LO.5, and platform Application Profile exchange messages CI.CD.9 and CD.LO.8.
Figure 8-1 illustrates the AP element.
Figure 8-1 AP XML Diagram
Name Description Data Type Encoding No.
Variable length byte field consisting of
a unique OID.
UniqueID The GlobalPlatform Systems Profiles String HEX 1
Specification provides further
information on how this Unique ID
must be set or updated
Table 8-1 AP Attributes
8.1 ApplicationProfile element
The ApplicationProfile element corresponds to the ApplicationProfile element defined in the
GlobalPlatform Systems Profiles Specification.
8.2 ProfileIdentification element
The ProfileIdentification element is defined in section 9.2.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 45/113
9. Card Profile Message
The CP element represents a single Card Profile which can be identified by a Card Profile Unique
Identifier. This could be used for the Card Profile exchange messages CM.CI.1, CI.CE.2, CI.CD.1,
CD.LO.1, CE.CI.1, LO.CD.2 or CD.CI.2. This message basically sends the entire CardProfile
element structure, and may be useful for one-time information exchanges when the receiving party is
not presently aware of the Card Profile for the given Card Profile Unique Identifier or for the given
logical Card Reference Number. If GPBody contains multiple occurrences of CP elements, the
UniqueID attribute of CP allows indexing a specific Card Profile (without the need to parse all the
CardProfile XML elements) within the child elements of this message.
Figure 9-1 illustrates the CP element:
Figure 9-1 CP XML Diagram
Name Description Data Type Encoding No.
Variable length byte field consisting of
variable length OID (as assigned by
ISO for the Card Manufacturer and up
to 119 bytes long) which uniquely
identifies the Card Profile. It is left up
to the Card Manufacturer to ensure
that the OID is unique so that all
UniqueID UniqueID attributes for all the Card String HEX 1
Profiles produced by the Card
Manufacturer are unique.
The GlobalPlatform Systems Profiles
Specification provides further
information on how this Unique ID
should be created.
Table 9-1 CP Attributes
9.1 CardProfile element
CardProfile element corresponds to the Card Profile XML document defined in the GlobalPlatform
Systems Profiles Specification.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 46/113
9.2 ProfileIdentification element
The ProfileIdentification element is used for establishing the relationship between the profile
that it is referring to and other related elements such as other profiles or customization data. For
example, a CRN may be used to establish the relationship between all the profiles and the card
customization data for a given card.
Name Description Data Type Encoding No.
Logical Card Reference Number. CRN
is stated as an OID. It identifies a
CRN logical card which includes one or String HEX 0..1
multiple application for a specific
cardholder
Application Identifier per ISO 7816-4.
AID is stated as a hexadecimal value.
AID String HEX 0..1
Example: A123456789AB
Identifier of a key. KeyID is stated as
a hexadecimal value.
KeyID String HEX 0..1
Example: 1234ABFF01
Name of the load file.
LoadFileName String ASCII 0..1
Example: CPSDEMO01.CAP
The label of an identifier other than the
ones defined in this table to be used to
identify the profile by implementation
OtherIDFieldLabel String ASCII 0..1
dependent fields.
Example: SCMS_ID
The Value of the identifier other than
the ones defined in this table to be
used to identify the profile by
implementation dependent fields.
OtherIDFieldValue String HEX 0..1
Example:
If SCMS_ID is the label, this attribute
could contain 2A864886FC6B010203
Table 9-2 ProfileIdentification Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 47/113
10. Card Profile Changes Message
The CPChanges element represents the changes to a Card Profile for a given Card Profile Unique
Identifier. This could be used for the Card Profile exchanges CM.CI.1, CI.CE.2, CI.CD.1, CD.LO.1,
CE.CI.1, LO.CD.2, or CD.CI.2. This message basically sends only a subset of the CardProfile
element structure, and may be useful for information exchanges when the receiving party is presently
aware of the Card Profile for the given Card Profile Unique Identifier or the given Logical Card
Reference Number. It is an optimized message structure for just exchanging changes to a Card
Profile.
Figure 10-1 illustrates the CPChanges element:
Figure 10-1 CPChanges XML Diagram
Name Description Data Type Encoding No.
Variable length byte field consisting of
variable length OID (as assigned by
ISO for the Card Manufacturer and up
to 119 bytes long) which uniquely
identifies the Card Profile. It is left up
to the Card Manufacturer to ensure
that the OID is unique so that all
UniqueID UniqueID attributes for all the Card String HEX 1
Profiles produced by the Card
Manufacturer are unique.
The GlobalPlatform Systems Profiles
Specification provides further
information on how this Unique ID
should be created.
Table 10-1 CPChanges Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 48/113
10.1 ApplicationInstances element
The ApplicationInstances element corresponds to the Application Instances element defined in
the GlobalPlatform Systems Profiles Specification.
10.2 LoadFileInstances element
The LoadFileInstances element corresponds to the LoadFile Instances element defined in the
GlobalPlatform Systems Profiles Specification.
10.3 CardInfo element
The CardInfo element corresponds to the CardInfo element defined in the GlobalPlatform Systems
Profiles Specification.
10.4 ProfileIdentification element
The ProfileIdentification element is defined in section 9.2.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 49/113
11. Key Profile Message
The KP element represents a single Key Profile exchange. It can be used for Platform Key Profile
exchanges CI.CE.3 and CI.CD.5, Application Key Profile exchanges AP.CD.2, AD.AO.3 and AO.AP.5
and Transport Key Profile exchanges AP.CD.3, CI.CD.6, CM.CI.2, IM.CM.1, CI.CE.4 and CD.LO.6.
The KeyExchange message can be used for exchanging the actual key for a Key Profile.
Figure 11-1 illustrates the KP element.
Figure 11-1 KP XML Diagram
Name Description Data Type Encoding No.
Variable length byte field consisting of
a unique OID.
UniqueID The GlobalPlatform Systems Profiles String HEX 1
Specification provides further
information on how this Unique ID
must be set or updated
Table 11-1 KP Attributes
11.1 KeyProfile element
The KeyProfile element corresponds to the KeyProfile element defined in the GlobalPlatform
Systems Profiles Specification.
11.2 ProfileIdentifiction element
The ProfileIdentification element is defined in section 9.2.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 50/113
12. Key Exchange Message
For a UniqueID value specified, the KeyExchange element returns the corresponding key value
encrypted under a transport key.
Figure 12-1 illustrates the KeyExchange element:
Figure 12-1 KeyExchange XML Diagram
Name Description Data Type Encoding No.
Variable length byte field consisting of
a unique OID.
UniqueID The GlobalPlatform Systems Profiles String HEX 1
Specification provides further
information on how this Unique ID
must be set.
The actual key value identified by the
UniqueID encrypted under a transport
KeyValue String HEX 1
key identified by the
TransportKeyUniqueID attribute.
Variable length byte field consisting of
a unique OID.
TransportKeyUniqueID The GlobalPlatform Systems Profiles String HEX 1
Specification provides further
information on how this Unique ID
must be set.
Table 12-1 KeyExchange Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 51/113
13. Load File Profile Message
The LFP element represents a single LoadFileProfile exchange based on Load File Profile Unique
ID. It can be used for exchanges CI.CD.2, AD.AO.1, AO.AP.1, AP.CI.1, and CD.LO.3.
Figure 13-1 illustrates the LFP element:
Figure 13-1 LoadFileProfile XML Diagram
Name Description Data Type Encoding No.
Variable length byte field consisting of
a unique OID.
UniqueID The GlobalPlatform Systems Profiles String HEX 1
Specification provides further
information on how this Unique ID
must be set or updated
Table 13-1 LFP Attributes
13.1 LoadFileProfile element
The LoadFileProfile element corresponds to the LoadFileProfile element defined in the
GlobalPlatform Systems Profiles Specification.
13.2 ProfileIdentification element
The ProfileIdentification element is defined in section 9.2.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 52/113
14. Profile Request Message
The ProfileRequest element contains one request for a particular profile. It can optionally request
that all the associated profiles need to be returned.
Figure 14-1 illustrates the ProfileRequest message:
Figure 14-1 ProfileRequest XML Diagram
Name Description Data Type Encoding No.
This attribute specifies the type of the
profile.
Example: ASCII
Type AP String *See 1
CP description
CP_CHANGES
KP
KEY_EXCHANGE
LFP
Variable length byte field consisting of
a unique OID.
ProfileUniqueID The GlobalPlatform Systems Profiles String HEX 0..1
Specification provides further
information on how this Unique ID
must be set.
Version of profiles specification
conforming to GP versioning. Version
number is x.x.x where each x is a
decimal number. If the version of the
specification has no last x value, then
ProfileVersion version number is x.x.0. String ASCII 0..1
Example:
1.0.0
1.1.0
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 53/113
Name Description Data Type Encoding No.
Indicates if all the associated profiles
need to be returned. For example, if
the request is for a card profile and the
value for this attribute is true, then the
system must return the card profile
AssociateProfiles String Boolean 0..1
along with the application profiles, load
file profiles and key profiles specified
in the card profile.
Default value is false
Table 14-1 ProfileRequest Attributes
14.1 ProfileIdentification element
The ProfileIdentification element is defined in section 9.2.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 54/113
15. Application Data Notification Message
The ApplicationDataNotification element represents the actual ICC Data personalization
provided by an Application Provider participant in this transaction. Each Application Provider
participant needs to prepare the personalization data and send it to the collator along with the Batch
ID and the CRN. It can be used for exchange AP.CD.4.
Figure 15-1 illustrates the ApplicationDataNotification element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 56/113
Figure 15-1 ApplicationDataNotification XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 57/113
Name Description Data Type Encoding No.
An ASCII field to identify the batch of
jobs between the SCMS and the
Personalization system. This
information is required by the collator
in order to identify XML messages
coming from different entities but
related to the same batch.
BatchID is required when data
preparation is requested for a batch of
BatchID String ASCII 0..1
cards. BatchID can be omitted when
the data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in the
case of post issuance personalization).
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Table 15-1 ApplicationDataNotification Attributes
15.1 ApplicationCommonData element
The ApplicationCommonData provides a set of application data common for all CRNs. This
element is used to prevent the replication of the information for each CRN specified. It encapsulates the
ApplicationData element. The ApplicationCommonData element applies to all CRNs specified
within the ApplicationDataNotification message. The recipient personalization system will need
to take into account the application common data in addition to the application data per CRN. The AID
allows the system to establish the relationship between the common data and specific data per CRN.
Name Description Data Type Encoding No.
None
Table 15-2 ApplicationCommonData Attributes
15.2 ApplicationDataPerCRN element
The ApplicationDataPerCRN element provides the application data specific for a given card
identified by the CRN element. In addition to CRN element, it encapsulates the ApplicationData
element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 58/113
Name Description Data Type Encoding No.
None
Table 15-3 ApplicationDataPerCRN Attributes
15.3 CRN element
The CRN element is used to identify a logical card. The CRN must be communicated to each
application provider responsible to provide the personalization data for that application. The Collator
uses the CRN to collate all the personalization data for each application listed on the
CardConfiguration element and identified by the AID element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 59/113
Name Description Data Type Encoding No.
The logical Card Reference Number
specified by the CRN attribute is an
OID. It must be unique for each
record. It is the responsibility of the
owner of the CRN to ensure the
uniqueness of this number per record.
Example: 2A864886FC6B010203
The following illustrates the example of
OID construction for purposes of the
CRN:
Object identifier value Meaning
{1} ISO
{12} ISO member body
{ 1 2 031 } Azerbaijan
{ 1 2 031 21 } Joe Doe Inc
{ 1 2 031 21 1 } Joe Doe’s Card
Management System
{ 1 2 031 21 1 2 } Joe Doe’s Card
Management System Version 2
{ 1 2 031 21 2 } Joe Doe’s Card
Numbering Scheme. Please use the
recommendations for CRN in the LPIS
CRN since these are used by GEMPlus and String HEX 1
Bell ID. It still remains an OID but
replace Azerbaijan with Country Code ,
John Doe with SCMS ID, John Does
card with Issuer ID etc….
Note that if { 1 2 031 21 } is assigned to
Joe Doe Inc, then lets assume that
internally Joe Doe Inc takes this range
{1 2 031 21 1 3 } as the base of its
CRNs. Joe Doe Inc will can then
provide the CRN numbers in the
following range:
1 2 031 21 1 3 000000000001
1 2 031 21 1 3 999999999999
This is a simplistic illustration of what
could be done. Internal rules to the
organization with respect to CRN
creation may be established, such as:
1 2 031 21 1 3 [RID=5 bytes] [Country
code=2 bytes] [Sequence number = 8
bytes] [and maybe a "1 byte check
value (Modulo 256 (XOR))]
Table 15-4 CRN Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 60/113
15.4 ApplicationData element
The ApplicationData element contains the actual card customization data for each application on
the card. The ApplicationData element could be used for the card customization data prepared
using the GlobalPlatform card customization technology (i.e., Profiles and Scripting Language) or any
other alternative means. It can be used as input to a personalization system running GlobalPlatform
card customization technology (i.e., a Scripting Language engine) or using the common
personalization approach defined in the EMV Card Personalization Specification. As the
ApplicationData is used in other XML elements, and in order not to repeat this section and
sections that describe all the children elements of the ApplicationData element, its children
elements are described in the sub-sections of this section. Further messages including the
ApplicationData element will reference this section.
Name Description Data Type Encoding No.
None
Table 15-5 ApplicationData Attributes
15.4.1 AID element
The AID element provides the application identifier as specified in ISO 7816-5. It’s used in the
ApplicationData element to identify a selectable application on the card on which the
ProcessingStep elements will operate. The operation could consist of personalizing the selected
application or using the selected application (i.e., a Security Domain) to load, install or personalize
other applications on the card.
Name Description Data Type Encoding No.
ISO7816 [IS7816-5] Application
Identifier of the application instance.
Hexadecimal value.
AID String HEX 1
Example:
A123456789AB
The order in which the application
must be selected.
Order Integer 1
Example:
01
The expected target state of the
selected application after successful
completion of all of processing steps.
TargetState String ASCII 0..1
Example:
PERSONALIZED
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 61/113
Name Description Data Type Encoding No.
The actual state achieved for the
selected application after successful or
unsuccessful completion of the
processing steps for the selected
ReachedState String ASCII 0..1
application.
Example:
INSTALLED
Table 15-6 CRN Attributes
15.4.2 ApplicationProfileUniqueID element
The optional ApplicationProfileUniqueID element, if present, provides the UniqueID of the
application profile corresponding to the application to be selected using the AID element. If the
GlobalPlatform card customization technology (i.e., Profiles and Scripting) is used for card
customization, the ApplicationProfileUniqueID element is required in order to allow the
system to correctly reference the application profile identified by this unique identifier. This
information may not be necessary if another card customization approach such as common
personalization is used.
Name Description Data Type Encoding No.
ApplicationProfileUniqueID UniqueID of the application profile. String HEX N/A
Table 15-7 ApplicationProfileUniqueID Data Type
15.4.3 Data element
The Data element is a placeholder for the actual data. The Data element, when placed in the
ICCData element, is used to carry data to be sent to the IC application. When placed in the
Logdata element, it provides the data to be used to create the log data for audit trails during card
customization. When placed in the PersoDeviceIns element, it contains data to provide
instructions to the personalization system to drive the card customization process.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 62/113
Name Description Data Type Encoding No.
When a child of the ICCData element:
1. If GlobalPlatform card
customization technology (i.e.,
Profile and Scripting) is used to
perform the card customization,
DataElement contains the name
of the data element within the
application profile.
Example:
If the DataElement name within
the application profile is “isid“ as
shown in the following example:
<DataElement Name="isid"
External="true"
Type="BYTESTRING"
Encoding="HEX" …/>
then the value of DataElement
within the Data element will be
isid
2. If the common personalization
approach is used, then the value
DataElement of DataElement within the Data String String 1
will be DGI
When a child of the LogData element:
The value is to be defined by the
user.
Example: AccountNumber
When a child of the PersoDeviceIns
element:
If the common personalization
approach is used, then the value of
DataElement within the Data is
specified according to the
GlobalPlatform Guide to common
personalization. <Not exactly sure
what is meant here by this sentence>
Examples:
ORDER, VERCNTL, GROUP, …
If an approach not covered here is
used, then it is to be defined by the
implementation.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 63/113
Name Description Data Type Encoding No.
When a child of the ICCData element:
1. If the GlobalPlatform card
customization (i.e., Profiles and
Scripting) is used to process the
card customization, Value
contains the value of the data
element. The data type of the
Value must be consistent with the
Encoding defined for this data
element in the application profile.
In the following example the data
type must be HEX:
<DataElement Name="isid"
External="true"
Type="BYTESTRING" *See
Value Encoding="HEX" …/> String description 1
column
2. If common personalization
approach is used then Value will
be the DGI (including the identifier
and the length). The data type is
always HEX.
When a child of the LogData element:
Value is to be defined by the
implementation.
When a child of the PersoDeviceIns
element:
Value is to be defined by the
implementation.
Table 15-8 Data Attributes
15.4.4 DataSet element
The DataSet element is used to group a set of Data elements which have a logical relationship
with each other. An example of this relationship could be that all Data elements are all encrypted
with the same TransportKey or they should be sent to the IC application within the same
command.
Name Description Data Type Encoding No.
Name Optional name to identify a DataSet. String ASCII 0..1
Table 15-9 DataSet Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 64/113
15.4.5 ICCData element
The ICCData element is a placeholder for the data to be sent to the IC application. The Application
Provider needs to format the data as expected by the personalization process. If the GlobalPlatform
card customization technology (i.e, Profiles and Scripting) is used for personalization, the data
contained in the Data element within ICCData must be consistent with each DataElement element
within the application profile. As the application profile contains all the data element to be used by
different script fragments within the application profile, the ICCData should contain all the external
data required by the ProcessingStep elements. Conversely, if the common personalization
approach is used, then the Data element within ICCData must contain the data expected by the
common personalization process.
Name Description Data Type Encoding No.
None
Table 15-10 ICCData Attributes
15.4.6 LogData element
The LogData element is a placeholder for data to be logged. This is utilized when the Application
Provider needs data from the personalization process to be logged. However, the personalization
device is not aware of what data is required to be logged. Therefore, any data to be logged in
addition to what the device logs by default must be sent to the personalization device in a manner
that indicates that this is log data. To inform the personalization device of application data that must
be logged, the LogData element must be created.
Name Description Data Type Encoding No.
None
Table 15-11 LogData Attributes
15.4.7 PersoDeviceIns element
The PersoDeviceIns element provides special instructions that are created by the Application
Provider during the data preparation process and are used by the personalization device during the
personalization process. The Personalization device instructions are not sent to the IC card. If
Common Personalization is used, this element must be populated according to the GlobalPlatform
Guide to Common Personalization.
Name Description Data Type Encoding No.
None
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 65/113
Table 15-12 PersoDeviceIns Attributes
15.4.8 ProcessingStep element
The ProcessingStep element provides information on the steps to undertake for card
customization. If Common Personalization is used, this element must be populated according to the
GlobalPlatform Guide to Common Personalization. This section presents an example of how this
element could be used.
Specifically, if the card customization consists of load, install and personalization of an application
either in pre-issuance or post-issuance production stage of the card, the following sequences could
be utilized:
1. The first ApplicationData element should address the AID of the security domain related to the
application(s) to be loaded. The ApplicationProfileUniqueID per card customized must
indicate the unique ID of this security domain application profile where a set of script fragments is
present to perform load and install of the applications. The suggested processing steps would be:
ProcessingStep 1: The script fragment to be executed is GETSTATUS in order to find
out if the Load File is already present on the card or not.
ProcessingStep 2: The script fragment to be executed is LOADFORLOAD in order to
load the Load File into the card.
ProcessingStep 3: The script fragment to be executed is LOADFORINSTALL in order to
create an instance of the application on the card.
2. The subsequent ApplicationData element should reference the AID of the application currently
loaded and installed. The ApplicationProfileUniqueID per card customized must indicate
the unique ID of this application profile (to be personalized) where a set of script fragments is
present to perform personalization of the application. The suggested processing steps would be:
ProcessingStep 1: The script fragment to be executed is PERSONALIZE in order to
personalize the application.
Name Description Data Type Encoding No.
The action to be undertaken by the
personalization device.
Action String ASCII 1
Example:
PERSONALIZE
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 66/113
Name Description Data Type Encoding No.
Whether the step is required or
optional. For example, if the
processing step is to install an
application which is already installed,
when this attribute is specified as 01
(required), the personalization device
must delete the already installed ASCII
Requirement instance and install the new instance String *see 1
of the application where optional (00) description
in this case means that no delete and
re-install is necessary.
Example:
00 (optional)
01 (required)
Optional DataSet name in the ICCData
DataSet element to be used to perform this String ASCII 0..1
step.
Table 15-13 ProcessingStep Attributes
15.4.9 Script element
The Script element provides the name of the script fragment within the application profile to be
executed for this processing step.
Name Description Data Type Encoding No.
Implementation defined. For
GlobalPlatform Profiles and Scripting,
Script String ASCII 1
it’s the name of the scripting fragment
within the application profile
Table 15-14 Script Data Type
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 67/113
15.4.10 Signature element
The Signature element is an optional element. When present, it allows the verification of the
integrity of the ApplicationDataPerCRN. Signature is defined as per W3C. In order to
ensure that the application data corresponds to the associated CRN, the Signature must be
computed over the ApplicationDataPerCRN. For this, the Reference element of the
Signature must reference the ApplicationDataPerCRN. After collation, the Signature could
be carried over to the Loader in order to keep the original value from the Application Provider. The
entity that verifies the signature must reconstruct the ApplicationDataPerCRN XML element and
computes the signature for verification. If the Signature element is present in the
ApplicationData element within the ApplicationCommonData element, it should be
computed over the ApplicationData element. For this, the Reference element of the
Signature must reference the ApplicationData element. W3C XML-Signature Syntax and
Processing provides more information on how to compute a signature and populate this XML
element.
15.4.11 TransportKey element
The TransportKey element identifies the transport key used for cryptographic operations on the
personalization data during the transportation. The TransportKey element is associated with a
DataSet element. It implies that the value of each Data element within that DataSet is encrypted
using the key identified by the TransportKey. If GlobalPlatform card customization (i.e., Profiles
and Scripting) is utilized, the key profiles used for cryptographic operations on the personalization
data may be defined within the application profile and their unique identifiers passed from the
application provider to the personalization system as part of personalization data. In the latter case,
the TransportKey is not used.
Name Description Data Type Encoding No.
OID used to identify the key to be used
during script processing.
The OID root will not be the same as
that of the Key Profile UniqueID. This
ID attribute value will be universally unique String HEX 0..1
amongst all keys, whereas the
UniqueID of the Key Profile is only
unique for a Key Profile, which, in turn,
may be referenced by more than one
key.
Free text field.
Not necessarily unique amongst all Key
Name String ASCII 0..1
Profiles. This does not have to be the
same name as the Name attribute in the
Key element in the Application Profile.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 68/113
Name Description Data Type Encoding No.
Owner of the Key Profile.
The entity controlling and managing the
lifecycle of the key and the data that it
Owner String HEX 0..1
protects. For example, the Owner
attribute could contain the Issuer
Identification Number (IIN) of the key
owner.
Version of the key.
The Version attribute is provided to
support legacy systems using Key
Version String HEX 0..1
Name & Key Version. In the cases
where it is used, it is a hexadecimal
value representation of the numeric
value of the key version.
Algorithm used with the Transport Key
when exporting a key.
ASCII
Algorithm Valid values are: String *see 0..1
description
CBC
ECB
If present, this attribute represents the
AlgorithmParameters initial vector to be used if the Algorithm String HEX 0..1
attribute has a value of CBC.
Table 15-15 TransportKey Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 69/113
16. Application Data Request Message
The ApplicationDataRequest element contains the optional Batch ID which is the unique
identifier of the project and a list of CRNs for which the Application Provider needs to prepare the
application data and send it to the collator. The Batch ID is required when the intent of the
ApplicationDataRequest message is for customization of a batch of cards.
Figure 16-1 illustrates the ApplicationDataRequest element.
Figure 16-1 ApplicationDataRequest XML Diagram
Name Description Data Type Encoding No.
An ASCII field to identify the batch of
jobs between the SCMS and the
Personalization system. This
information is required by the collator
in order to identify XML messages
coming from different entities but
related to the same batch.
BatchID is required when data
preparation is requested for a batch of
BatchID String ASCII 0..1
cards. BatchID can be omitted when
the data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in the
case of post issuance personalization).
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Table 16-1 ApplicationDataRequest Attributes
16.1.1 AID element
See section 15.4.1.
16.1.2 CRN element
See section 15.3.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 70/113
17. Card Customization Message
The CardCustomization element provides information to customize a unique card. This element
encapsulates the ModuleIdentifierCode which in turn includes the CardConfiguration and
the ApplicationData for all the applications to be customized on the card. Although it is more
logical to use this message for a post-issuance card customization, it could also be used to
customize a single card in pre-issuance card customization. It can be used for exchanges CI.CD.7
and CD.LO.2.
Figure 17-1 illustrates the CardCustomization element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 71/113
Figure 17-1 CardCustomization XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 72/113
Name Description Data Type Encoding No.
An ASCII field to identify the batch of
jobs between the SCMS and the
Personalization system. This
information is required by the collator
in order to identify XML messages
coming from different entities, but
related to the same batch.
BatchID is required when the data
preparation is requested for a batch of
BatchID String ASCII 0..1
cards. BatchID can be omitted when
the data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in
case of post issuance personalization)
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Figure 17-2 CardCustomization Attributes
17.1 ModuleIdentifierCode element
The ModuleIdentifierCode element for ICC Data provides information related to the card
configuration for the Collator before the collation. During the collation process, all of the
ApplicationData elements sent from different application providers are appended to the
ModuleIdentifierCode until it contains all of the data for all of the applications (including the on
card Issuer Security Domain and Supplementary Security Domains) expected by the
CardConfiguration. The collator must append the ApplicationData elements in the same
order as defined in the AID order attribute found in the CardConfiguration element.
It is important to note that before the collation process, the ModuleIdentifierCode element
usually has only the CardConfiguration element to be used to collate all the ApplicationData
elements. However, if collation is done for some of the ApplicationData elements, then the
ModuleIdentifierCode element along with the appended ApplicationData elements will be
received by the collator to complete the collation for the remaining ApplicationData elements.
As the ModuleIdentifierCode is used in other XML elements and in order not to repeat this
section and sections that describe all the children elements of the ModuleIdentifierCode
element, its children elements are described in sub-sections of this section. Further messages
including the ModuleIdentifierCode element will reference this section.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 73/113
Name Description Data Type Encoding No.
An identifier specifying that this is data
for chip card application(s).
Identifier String ASCII 1
Example:
ELECTRICAL
Figure 17-3 ModuleIdentifierCode Attributes
17.1.1 CardConfiguration element
The CardConfiguration element along with its parent ModuleIdentifierCode element and its
grandparent DataContainer element (if it’s used in the customization for a batch of cards) are
used by the collator to combine the ApplicationData elements from the various application
providers for each card into a set of multiple ApplicationData elements for the personalization
device.
The collator uses the CRN from this element and matches it with the CRNs placed as identifiers in
the ApplicationDataNotification message to collect all the ApplicationData elements as
specified in the AID elements.
This collation function may be performed at the Loader itself or alternatively at the Issuer, prior to
sending the personalization file to the Loader (bureau). If collation occurs at the Issuer, then the card
customization message is sent directly to the personalization system.
The CardConfiguration is also used by the personalization device to retrieve the appropriate
Card Profile and to perform the card customization in the order defined by the AID elements.
Name Description Data Type Encoding No.
Collator Status. Valid values are:
0 – Not Applicable
1 – request for collation
CollatorStatus String ASCII 1
2 – request for collation and collation
data
3 – collation data only
4 – collation complete
Table 17-1 CardConfiguration Attributes
17.1.2 AID element
See section 15.4.1.
17.1.3 CRN element
See section 15.3.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 74/113
17.1.4 ValidCardProfileID element
The optional ValidCardProfileID element, if present, provides the UniqueID of the card
profiles which can be used for this card customization. If more than one ValidCardProfileID
elements are specified, the personalization system can chose any of them based on their availability.
Name Description Data Type Encoding No.
CardProfileUniqueID UniqueID of the card profile. String HEX N/A
Table 17-2 ApplicationProfileUniqueID Data Type
17.1.5 ApplicationData element
See section 15.4.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 75/113
18. Batch Card Customization Message
The BatchCardCustomization element provides information to customize a batch of cards in
one or more jobs. The BatchCardCustomization elememt provides the batch identifier which is
a unique identifier for the included jobs. The BatchID attribute specified in the
BatchCardCustomization element is defined to allow the collation of data when two or more
entities are involved in this transaction. The entities include the Issuer, the Application Providers, the
Collator and the Loader. The BatchCardCustomization element contains at least one
EnvironmentContainer element. It can be used for exchanges CI.CD.7 and CD.LO.2.
Figure 18-1 illustrates the BatchCardCustomization element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 76/113
Figure 18-1 BatchCardCustomization XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 77/113
Name Description Data Type Encoding No.
Identifies the batch of jobs between
the SCMS and the Personalization
system. This information is required
by the collator in order to identify XML
messages coming from different
entities, but related to the same batch.
BatchID is required when the data
preparation is requested for a batch of
BatchID cards. BatchID can be omitted when String ASCII 1
the data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in
case of post issuance personalization)
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Identifies the source of issuing
request. It could be different from the
sender in the GPHeader.
IssuingEntity String ASCII 1
Example:
SCMS_ID: 1.2.840.114283
Identifies the Loader responsible for
the card customization process. It
could be different from the receiver in
ProcessingEntity the GPHeader. String ASCII 1
Example:
BUREAU_ID: 1.2.840.115423
Can be used for proprietary
information.
User String ASCII 0..1
Example:
12345 (Order number)
Table 18-1 BatchCardCustomization Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 78/113
18.1 EnvironmentContainer element
The EnvironmentContainer element provides information on the required features which need
to be supported by the environment. For example, if the GP scripting language is used to perform the
card customization, then the environment needs to support the GP scripting language. A Loader
such as a personalization bureau may use the EnvironmentContainer element to spread the
workload across different devices. The EnvironmentContainer element contains at least one
JobContainer element.
Name Description Data Type Encoding No.
Description of the environment in
EnvironmentName which the data will be used. This can String ASCII 1
identify any environment.
Information field containing an
optional Environment version.
EnvironmentVersion String ASCII 1
Example:
1.2.1
Available for Load and Loader
environments. The field describes
whether a certain environment is ASCII
mandatory. Valid values are: *See
Preference String 1
description
Mandatory column
Compatible
Indifferent
Identifies whether the environment
supports the specified command ASCII
interpreter. Valid values are: *See
CommandInterpreterSupport String 1
description
Mandatory
column
Compatible
Indifferent
Describes the type of command
interpreter. Valid values are:
CommandInterpreterType String ASCII 1
GP Scripting
GCP
Contains command interpreter
version.
CommandInterpreterVersion String ASCII 1
Example:
1.2.1
Table 18-2 EnvironmentContainer Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 79/113
18.2 JobContainer
JobContainer element provides information on the priority, risk and cost for a batch of cards. The
issuer uses the JobContainer element to segment its jobs according to these criteria. For example,
within an EnvironmentContainer element there might be multiple JobContainer elements with
different deadlines based on the priority of the batch of cards to be processed. The JobContainer
element contains at least one DataContainerHeader element.
Name Description Data Type Encoding No.
JobID User defined. String ASCII 1
Provides the priority for each job
within the particular environment.
For example, the job and cost for SIM
cards may be "high" and the Job for ASCII
Loyalty card may be "low". Valid *See
JobPriorityLevel values are: String 1
description
column
N/A
High
Medium
Low
Used for costing or to determine the
number of sample validations to
perform on the personalized cards. ASCII
Valid values are: *See
RiskLevel String 1
description
N/A column
High
Medium
Low
Table 18-3 JobContainer Attributes
18.3 DataContainerHeader
The DataContainerHeader element specifies the card count and the type of plastic to use. The
DataContainerHeader element may also specify any special printing or artwork requirements.
For example, multiple DataContainerHeader elements may be defined; one for Platinum cards,
one for Gold cards and another one for Classic cards. The DataContainerHeader element
contains an optional CommonDataContainer element and at least one DataContainer
element.
Name Description Data Type Encoding No.
The date the personalization data
DataGenerationDate was generated in the format String ASCII 1
YYYYMMDDHHMMSS.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 80/113
Name Description Data Type Encoding No.
A reference to the particular card
CardProductID String ASCII 1
product as assigned by the Issuer.
Information field containing an
optional Card product version.
CardProductVersion String ASCII 1
Example:
1.2.1
IssuerName The name of the Issuing entity. String ASCII 1
Number of cards to be processed in
CardRecordCount String ASCII 1
the hopper.
Identifier for the actual card stock to
PlasticStockID String ASCII 1
be used.
Date by which the cards must be
RequiredProcessingDate processed in the format String ASCII 1
YYYYMMDD.
Table 18-4 DataContainerHeader Attributes
18.4 CommonDataContainer
The optional CommonDataContainer element provides a set of card customization data
common for a subset of cards. CommonDataContainer is used to avoid unnecessary
replication of information. The Loader should parse the CommonDataContainer to find the
match with the relevant children elements of the DataContainer in order to regroup common and
specific data before starting the actual card customization required step. For example, the common
data could be the initial credit amount for an electronic purse valid for all the cards within the
DataContainerHeader.
The common data applies to all the cards within DataContainerHeader, the parent element of
the CommonDataContainer element.
If present, the CommonDataContainer element must have at least one
CommonModuleIdentifierCode element.
Name Description Data Type Encoding No.
None
Table 18-5 CommonDataContainer Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 81/113
18.5 CommonModuleIdentifierCode
The CommonModuleIdentifierCode element for ICC Data provides information related to the
card configuration and application data common to all the cards specified within the
DataContainerHeader. During the collation process, all the CommonApplicationData
elements sent from different application providers are appended to the
CommonModuleIdentifierCode until it contains all of the common data for all of the
applications.
It is important to note that both children of the CommonModuleIdentifierCode are optional.
This implies that it is possible to have only a CardCommonConfiguration element or only
CommonApplicationData element(s). The CommonModuleIdentifierCode element with
zero child element is not allowed.
Name Description Data Type Encoding No.
An identifier that specifies that this is
data for chip card application(s).
Identifier String ASCII 1
Example:
COMMON_ELECTRICAL
Table 18-6 CommonModuleIdentifierCode Attributes
18.6 CardCommonConfiguration element
The CardCommonConfiguration element provides the configuration information common to all
the cards specified within the DataContainerHeader. The CardCommonConfiguration
element must be used only in cases where all the information that it contains are valid for all the
cards specified within the DataContainerHeader.
Name Description Data Type Encoding No.
Collator Status. Valid values are:
0 – Not Applicable ASCII
1 – request for collation *See
CollatorStatus String 1
2 – request for collation and collation description
data column
3 – collation data only
4 – collation complete
Figure 18-2 CommonCardConfiguration Attributes
18.6.1 AID element
See section 15.4.1.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 82/113
18.6.2 ValidCardProfileID element
See section 17.1.4.
18.7 ApplicationCommonData element
The ApplicationCommonData element contains part of application data that is common for all
the cards within the DataContainerHeader if the AID of the application is present in the list of
AIDs of the CardCommonConfiguration element. Otherwise, it applies only to those cards
within the DataContainerHeader whose CardConfiguration includes this AID. The
ApplicationCommonData element contains the ApplicationData element.
Name Description Data Type Encoding No.
None
Table 18-7 ApplicationCommonData Attributes
18.7.1 ApplicationData element
See section 15.4.
18.8 DataContainer
The DataContainer element provides the section of the data stream that contains the set of
personalization elements for every card to be personalized.
The DataContainer contains a set of ModuleIdentifierCode elements. These
ModuleIdentifierCode elements define the type of data for the particular card that is to be
personalized. For example, there may be different Module Identifiers for magnetic stripe data or for
embossing data. Any ModuleIdentifierCode elements not related to chip are out of scope for
this specification. All chip related data is contained in this DataContainer element, including data
necessary for collation.
Name Description Data Type Encoding No.
None
Table 18-8 DataContainer Attributes
18.8.1 ModuleIdentifierCode element
See section 17.1.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 83/113
19. Application Audit Trail Message
The ApplicationAuditTrail element contains the information to be returned to the Application
Provider. This message can be used for the exchange CD.AP.1.
Figure 19-1 illustrates the ApplicationAuditTrail element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 84/113
Figure 19-1 ApplicationAuditTrail XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 85/113
Name Description Data Type Encoding No.
Identifies the batch of jobs between
the SCMS and the Personalization
system. This information is required
by the collator in order to identify XML
messages coming from different
entities but related to the same batch.
BatchID is required when data
preparation is requested for a batch of
BatchID cards. BatchID can be omitted when String ASCII 1
the data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in
case of post issuance personalization).
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Table 19-1 ApplicationAuditTrail Attributes
19.1 ApplicationCommonLog element
The optional ApplicationCommonLog element provides a set of application log data common
for all the CRN. This element is used to prevent the replication of the information per CRN.
ApplicationCommonLog encapsulates the ApplicationLog element. The
ApplicationCommonLog element applies to all the CRN within the ApplicationAuditTrail
message.
Name Description Data Type Encoding No.
None
Table 19-2 ApplicationCommonLog Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 86/113
19.2 ApplicationLog element
The ApplicationLog element contains the actual application log data for each application
customized or used to customize another application on the card. The ApplicationLog element
could be used to log card customization using the GlobalPlatform card customization technology (i.e.,
Profiles and Scripting) or any other alternative means. It is used as input for back-end application
data within an Application Provider running GlobalPlatform card customization technology or using
the common personalization approach defined in the EMV Card Personalization Specification. As the
ApplicationLog element is used in other XML elements and in order not to repeat this section and
sections that describe all the children elements of the ApplicationLog element, its children
elements are described in the sub-sections of this section. Other messages which specify the
ApplicationLog element will reference this section.
Name Description Data Type Encoding No.
None
Table 19-3 ApplicationLog Attributes
19.2.1 AID element
See section 15.4.1.
19.2.2 ApplicationProfileUniqueID element
See section 15.4.2.
19.2.3 ProcessingStepResult element
The ProcessingStepResult element provides information on the result of a processing step
undertaken during the card customization. The first three attributes Action, Requirement and
DataSet take the values from the ProcessingStep element and the StatusWords attribute reflects
the value provided by the personalization system.
Name Description Data Type Encoding No.
The action to be undertaken by the
personalization device.
Action String ASCII 1
Example:
PERSONALIZE
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 87/113
Name Description Data Type Encoding No.
Whether the step is required or
optional. For example, if the
processing step is to install an
application which is already installed,
when this attribute is specified as
required (01), it means that the
personalization device must delete the
Requirement already installed instance and install String ASCII 1
the new application instance.
Conversely, optional (00) means that
no delete and re-install is necessary.
Example:
00 (optional)
01 (required)
Optional DataSet name in the ICCData
DataSet String ASCII 0..1
to be used to perform this step.
Last Status Words returned by the
StatusWords String HEX 0..1
card for this step.
Table 19-4 ProcessingStepResult Attributes
19.2.4 Data element
See section 15.4.3.
19.2.5 DataSet element
See section 15.4.4.
19.2.6 Error element
See section 22.
19.2.7 LogData element
See section 15.4.6.
19.2.8 PersoDeviceIns element
The PersoDeviceIns element contains the original personalization device instructions within the
ApplicationData element. For more information, see section 15.4.7.
19.2.9 Script element
The Script element contains the original script information within the ApplicationData element.
For more information see section 15.4.9.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 88/113
19.2.10 Signature element
The Signature element is an optional element. When present, it allows the verification of the integrity
of the ApplicationLogPerCRN. Signature is defined as per W3C. In order to ensure that the
application data corresponds to the associate CRN, the Signature must be computed over the
ApplicationLogPerCRN. For this, the Reference element of the Signature element must
reference the ApplicationLogPerCRN. After decollation, the Signature element could be carried
over to the Application Provider in order to keep the original value from the Loader. The entity that
verifies the signature must reconstruct ApplicationLogPerCRN XML element and compute the
signature for verification. If the Signature element is present in the ApplicationLog element within
the ApplicationCommonLog element, it should be computed over the ApplicationLog element.
For this purpose, the Reference element of the Signature must reference the ApplicationLog
element. W3C XML-Signature Syntax and Processing provides more information on how to compute a
signature and populate this XML element.
19.2.11 TransportKey element
See section 15.4.11.
19.3 ApplicationLogPerCRN element
The ApplicationLogPerCRN element provides the section of the audit information and log
specific to a card identified by the CRN element. In addition to the CRN element, it encapsulates the
ApplicationLog element.
Name Description Data Type Encoding No.
None
Table 19-5 ApplicationLogPerCRN Attributes
19.4 CRN element
See section 15.3.
19.5 ApplicationLog element
See section 19.2.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 89/113
20. Batch Audit Trail Message
The BatchAuditTrail element contains the information to be returned by the Loader. This
message is to be used by the collator to decollate all the ApplicationLog elements and send them
over to the appropriate Application Providers. The rest of the message should be sent by the Collator
to the Issuer after the decollation.
Each attribute of the BatchAuditTrail element is a confirmation of the contents of the original
BatchCardCustomization element. The BatchAuditTrail element provides the batch
identifier, which is a unique identifier for the included jobs. It represents the original batch transaction
identifier. The BatchID attribute allows the receiver of the message to establish the relationship
between the original customization request and the log in the present message. The return step
code indicates the status of the transaction. If any exceptions occurred in the BatchAuditTrail,
then the Error element needs to be populated with the corresponding error code.
The BatchAuditTrail contains at least one EnvironmentContainerLog element. This
message can be used for exchanges LO.CD.1 and CD.CI.1.
Figure 20-1 illustrates the BatchAuditTrail element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 90/113
Figure 20-1 BatchAuditTrail XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 91/113
Name Description Data Type Encoding No.
Identifies the batch of jobs between
the SCMS and the Personalization
system. This information is required
by the collator in order to identify XML
messages coming from different
entities, but related to the same batch.
BatchID is required when data
preparation is requested for a batch of
BatchID cards. BatchID can be omitted when String ASCII 1
data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in
case of post issuance personalization).
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Identifies the source of issuing
request. It could be different from the
sender in the GPHeader.
IssuingEntity String ASCII 1
Example:
SCMS_ID: 1.2.840.114283
Identifies the Loader responsible for
the card customization process. It can
be different from the receiver in the
ProcessingEntity GPHeader. String ASCII 1
Example:
BUREAU_ID: 1.2.840.115423
Can be used for proprietary
information.
User String ASCII 0..1
Example:
12345 (Order number)
Table 20-1 BatchAuditTrail Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 92/113
20.1 EnvironmentContainerLog element
The EnvironmentContainerLog element is used for audit purposes. This element must identify
the device used to personalize the batch of cards as well as the date on which the actual processing
occurred. If any exceptions occurred due to the original EnvironmentContainer element, the
audit data must identify the environment that was responsible for the personalization of the batch of
cards in question. In this case, the Error element needs to be populated with the corresponding
error code.
Name Description Data Type Encoding No.
Description of the environment in
EnvironmentName which the data will be used. This can String ASCII 1
identify any environment.
Information field containing an optional
Environment version.
EnviromentVersion String ASCII 1
Example:
1.2.1
Table 20-2 EnvironmentContainerLog Attributes
20.2 JobContainerLog element
The JobContainerLog element is used for audit and generally would be for confirmation. If any
exceptions occurred due to the original JobContainer element, then the Error element must be
populated with the corresponding error code.
Name Description Data Type Encoding No.
JobID Implementation dependent. String ASCII 1
Provides the priority for each job within
the particular environment. For
example, the job and cost for SIM
cards may be "high" and the Job for
Loyalty card may be "low". ASCII
*See
JobPriorityLevel String 1
Valid values are: description
column
N/A
High
Medium
Low
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 93/113
Name Description Data Type Encoding No.
Used for costing purposes or to
determine the number of sample
validations to perform on the ASCII
personalized cards. Valid values are: *See
RiskLevel String 1
description
N/A column
High
Medium
Low
Date in format YYYYMMDDHHMMSS ASCII
indicating when the job was *See
Date String 1
processed. description
column
Table 20-3 JobContainerLog Attributes
20.3 LogContainerHeader element
The LogContainerHeader element is used for audit purposes. It provides the confirmation of the
original DataContainerHeader element. If any exceptions occurred due to the original
DataContainerHeader element, then the Error element must be populated with the
corresponding error code.
Name Description Data Type Encoding No.
The date the personalization data was
DataGenerationDate generated in the format String ASCII 1
YYYYMMDDHHMMSS.
A reference to the particular card
CardProductID String ASCII 1
product as assigned by the Issuer.
Information field containing an optional
Card product version.
CardProductID String ASCII 1
Example:
1.2.1
IssuerName The name of the Issuing entity. String ASCII 1
Number of cards to be processed in
CardRecordCount String ASCII 1
the hopper.
Identifier for the actual card stock to be
PlasticCtockID String ASCII 1
used.
ASCII
Date in format YYYYMMDDHHMMSS
*See
ProcessingDate indicating when the cards were String 1
description
processed
column
Table 20-4 LogContainerHeader Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 94/113
20.4 CommonLogContainer element
When present, the optional CommonLogContainer element provides a set of card customization
audit data common for a subset of cards. The CommonLogContainer element is used to
prevent unnecessary replication of information. The Issuer or the Application Provider should parse
the LogContainer element to find the match with the relevant children elements in order to regroup
common and specific data before starting the audit tracking management processing.
The common data applies to all the cards within the LogContainerHeader element, the parent
element of the CommonLogContainer element.
The CommonLogContainer element encapsulates the CommonLogIdentifierCode
element.
Name Description Data Type Encoding No.
None
Table 20-5 CommonLogContainer Attributes
20.5 LogContainer element
The LogContainer element is used for audit purposes. It may contain multiple
LogIdentifierCode (LIC) elements. LICs for magnetic stripe or embossing data are out of scope
of this specification. This specification only describes the RIC for the smart card audit data.
Name Description Data Type Encoding No.
None
Table 20-6 LogContainer Attributes
20.6 LogIdentifierCode element
The LogIdentifierCode element is used for audit purposes. The LogIdentifierCode element
for ICC Data provides information for the Collator before the decollation of data in order to send the
CardConfigurationLog element to the Issuer and splits ApplicationLog elements and sends
to the corresponding Application Providers.
This is important to note that before decollation the LogIdentifierCode element contains the
CardConfigurationLog element and multiple ApplicationLog elements. Once decollation is
done, the LogIdentifierCode element contains only the CardConfigurationLog element to
be sent to the Issuer.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 95/113
As the LogIdentifierCode element is used in other XML elements and in order not to replicate
this section and sections that describe all the children elements of the LogIdentifierCode
element, its children elements are described in the sub-sections of this section. Other messages
which utilize the LogIdentifierCode element will reference this section.
Name Description Data Type Encoding No.
An identifier that specifies that this is
data for chip card application(s).
Identifier String ASCII 1
Example:
LOG_ELECTRICAL
Table 20-7 LogIdentifierCod Attributes
20.6.1 AID element
See Section 15.4.1.
20.6.2 ApplicationLog element
See Section 19.2.
20.6.3 CardConfigurationLog element
The CardConfigurationLog element is used for audit purposes. It provides confirmation of the
original CardConfiguration element. If any exceptions occurred due to the original
CardConfiguration element, then the Error element needs to be populated with the
corresponding error code. If any exceptions occurred due to an issue related to the Collator, then the
Error element within CollatorReturnCode element needs to be populated with appropriate error
code. The DecollationStatus attribute provides information to the Decollator regarding the
decollation of the log.
Name Description Data Type Encoding No.
Collator Status. Valid values are:
DecollationStatus 0 – Not Applicable String ASCII 1
1 – Request for decollation
2 – Decollation complete
Table 20-8 CardConfigutationLog Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 96/113
20.6.4 CardLifeCycleState element
The CardLifeCycleState element is used for audit purposes. It indicates the card life cycle
reached at this stage. There may be multiple CardLifeCycleState elements as an exception may
occur during the card customization process that leaves the card in an unusable state.
Name Description Data Type Encoding No.
Implementation defined. It indicates
CardLifeCycleState String ASCII 1
the card life cycle reached at this stage
Table 20-9 CardLifeCycleState Attributes
20.6.5 CollatorReturnCode element
When present, the CollatorReturnCode element provides the result of the collation during the
original collation process. If any exceptions occurred due to an issue related to the Collator, then the
Error element within CollatorReturnCode element must be populated with appropriate error
code.
Name Description Data Type Encoding No.
The return code generated by the
Code String ASCII 1
Collator.
Table 20-10 CollatorReturnCode Attributes
20.6.6 CRN element
See Section 15.3.
20.6.7 Error element
See Section 19.2.6.
20.6.8 PhysicalCardIdentifier element
The PhysicalCardIdentifier element is used for audit purposes. It provides an identifier for the
physical card used. There may be multiple PhysicalCardIdentifier elements as an exception
may occur during the card customization process that leaves the card in an unusable state.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 97/113
Name Description Data Type Encoding No.
User defined. It indicates the type of
identifier used to uniquely identify the
card.
IdentifierType String ASCII 1
Example:
CIN (Chip Image Number)
The value of the identifier specified by
IdentifierValue String HEX 1
IdentifierType.
Table 20-11 PhysicalCardIdentifier Attributes
20.6.9 MuteCardsNumber element
The MuteCardsNumber element is used for audit purposes. It specifies the number of the cards
that have been mute or became mute during the card customization process specific for this CRN.
Name Description Data Type Encoding No.
MuteCardsNumber Number of mute cards. Integer 1
Table 20-12 MuteCardsNumber Attributes
20.6.10 ValidCardProfileID element
The optional ValidCardProfileID element, if present, provides the UniqueID of the card profile that
is actually used for the card customization message. For more information, see 17.1.4.
20.7 CommonLogIdentifierCode element
The optional CommonLogIdentifierCode element is used for audit purposes. The
CommonLogIdentifierCode element provides information related to the card configuration log
and application log data common to all the card within the LogContainerHeader element. The
CommonLogIdentifierCode element provides information for the Collator prior to the
decollation of data. The decollator sends the CardCommonConfigurationLog element to the
Issuer and splits ApplicationCommonLog elements, sending the resultant pieces to the
corresponding Application Providers.
It is important to note that before decollation, if the CommonLogIdentifierCode element
contains a CardCommonConfigurationLog element and zero to multiple
ApplicationCommonLog elements, once the decollation is done, the
CommonLogIdentifierCode element contains only the CardCommonConfigurationLog
element to be sent to the Issuer. After the decollation, the ApplicationCommonLog elements
will be part of the ApplicationAuditTrail messages to be sent to the appropriate Application
Providers.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 98/113
Furthermore, it is also important to note that both children of the CommonLogIdentifierCode
element are optional. This implies that is possible to have only one
CardCommonConfigurationLog element or one or more CommonApplicationLog
element(s). The CommonLogIdentifierCode with zero child is not allowed.
Name Description Data Type Encoding No.
An identifier that specifies that this is
data for chip card application(s).
Identifier String ASCII 1
Example:
COMMON_LOG_ELECTRICAL
Figure 20-2 CommonLogIdentifierCode Attributes
20.7.1 ApplicationCommonLog element
See section 19.1.
20.7.2 ApplicationLog element
See section 19.2.
20.7.3 CardCommonConfigurationLog element
The optional CardCommonConfigurationLog element is used for audit purposes. The
CardCommonConfigurationLog element provides the configuration information common for all
the cards specified within the LogContainerHeader. It also provides confirmation of the original
CardCommonConfiguration element. If any exceptions occurred due to the original
CardCommonConfiguration element, then the Error element needs to be populated with the
corresponding error code. If any exceptions occurred due to an issue related to the Collator, then the
Error element within CollatorReturnCode element should be populated with appropriate error
code. The DecollationStatus attribute provides information to the Decollator regarding the
decollation of data.
The CardCommonConfigurationLog element must be used only when all the information that
it contains is valid for all the cards within the LogContainerHeader.
Name Description Data Type Encoding No.
Collator Status. Valid values are:
DecollationStatus 0 – Not Applicable String ASCII 1
1 – Request for decollation
2 – Decollation complete
Table 20-13 CardCommonConfigurationLog Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 99/113
20.7.4 CollatorReturnCode element
See section 20.6.5.
20.7.5 Error element
See Section 22.
20.7.6 ValidCardProfileID element
The optional ValidCardProfileID element, if present, contains the UniqueID of the card profile
that is actually used for all the cards within the LogContainerHeader. For more information, see
Section 17.1.4.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 100/113
21. Card Audit Trail Message
The CardAuditTrail element represents the information to be returned by the Loader or a post-
issuance download server and provides audit information related to one single card after card
customization.
The BatchAuditTrail provides the batch identifier which is a unique identifier for the transaction. It
represents the original batch transaction identifier. The optional batch ID is defined as an element to
allow the receiver of the message to make the relationship between the original customization
request and the log in the present message. This message can be used for exchanges LO.CD.1 and
CD.CI.1.
Figure 21-1 illustrates the CardAuditTrail element.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 101/113
Figure 21-1 CardAuditTrail XML Diagram
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this information is governed by the GlobalPlatform license
agreement and any use inconsistent with that agreement is strictly prohibited.
October -03 GlobalPlatform Messaging Specification Page 102/113
Name Description Data Type Encoding No.
Identifies the batch of jobs between
the SCMS and the personalization
system. This information is required
by the collator in order to identify XML
messages coming from different
entities but related to the same batch.
BatchID is required when data
preparation is requested for a batch of
BatchID cards. BatchID can be omitted when String ASCII 0..1
data preparation is requested for a
single card as the CRN can be used to
identify personalization data
notification for a single card (i.e., in
case of post issuance personalization).
Example:
SCMS_ID + Transaction Sequence
Number: 1.2.840.114283.0001
Table 21-1 CardAuditTrail Attributes
21.1 LogIdentifierCode element
See section 20.6.
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 103/113
22. Error Element
The Error element represents the information to be returned to original sender of the message in
order to acknowledge that an error occurred during the processing of the information. When the
Error element is appended to a specific element, it must specify the error code specific to that
element. When the Error element is appended to a message, it must indicate the error code
corresponding to message that it’s attached to.
Figure 22-1 illustrates the Error element.
Figure 22-1 Error XML Diagram
Name Description Data Type Encoding No.
Implementation dependent category of
ErrorCategory String ASCII 0..1
the error.
Implementation dependent error
ErrorNumber String ASCII 1
number.
Implementation dependent description
ErrorDescription String ASCII 0..1
of the error.
Table 22-1 Error Attributes
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.
October -03 GlobalPlatform Messaging Specification Page 104/113
Appendix A: GPMessages.1.0.0 XML Schema for
GlobalPlatform Messaging
The GlobalPlatform Messaging XML schema is provided in this section. The root element of this
scema is the element GPMessage.
Root = GPMessage
Copyright 2003 GlobalPlatform Inc. All Rights Reserved.
The technology provided or described herein is subject to updates, revisions, and extensions by GlobalPlatform. Use of this
information is governed by the GlobalPlatform license agreement and any use inconsistent with that agreement is strictly
prohibited.