HTML Annotations, Copyright 1996, T.M.A. Lomas,
Computer Security Group,
University of Cambridge
Computer Laboratory.
All Rights Reserved.
These are based upon a protocol description issued 8th August 1996 by MasterCard and VISA, who we presume to retain copyright in the text of these documents.
Permission is granted to use or distribute these files provided this copyright information is preserved, and subject to any conditions imposed by MasterCard and VISA.
1 SetMessage DEFINITIONS IMPLICIT TAGS ::= BEGIN
2
3 --
4 -- This module defines types for use in the SET protocol certificate and
5 -- payment flow messages.
6 --
7
8 -- EXPORTS All;
9
10 IMPORTS
11
12 DirectoryString {}, Name
13 FROM SetAttribute
14
15 SIGNED {}, Validity
16 FROM SetCertificate
17
18 Extensions
19 FROM SetCertificateExtensions
20
21 CertInqReq, CertInqRes, CertReq, CertRes, CardCInitRes, CardCInitReq,
22 Me-AqCInitReq, Me-AqCInitRes, RegFormReq, RegFormRes
23 FROM SetCertMsgs
24
25 AuthReq, AuthRes, AuthRevReq, AuthRevRes, BatchAdminReq,
26 BatchAdminRes, CapReq, CapRes, CapRevReq, CapRevRes, CredReq,
27 CredRes, CredRevReq, CredRevRes, InqReq, InqRes, PCertReq,
28 PCertRes, PInitReq, PInitRes, PReq, PRes
29 FROM SetPayMsgs
30
31 DAlgorithmIdentifier, Digest, Digests
32 FROM SetPKCS7Plus;
33
34
35 MessageWrapper ::= SEQUENCE {
36 version INTEGER { setVer0(0) } (setVer0),
37 date Date,
38 messageIDs [0] MessageIDs OPTIONAL,
39 rrPID [1] RRPID OPTIONAL, -- Not used in CMS messages
40 swIdent SWIdent,
41 message [2] EXPLICIT MESSAGE.&Type (Message) -- Open type
42 }
43
44 MessageIDs ::= SEQUENCE {
45 localID-C [0] LocalID OPTIONAL,
46 localID-M [1] LocalID OPTIONAL,
47 xID [2] XID OPTIONAL
48 }
49
50 MESSAGE ::= TYPE-IDENTIFIER -- ISO/IEC 8824-2:1995(E), Annex A
51
52 Message ::= CHOICE {
53
54 purchaseInitRequest [ 0] PInitReq,
55 purchaseInitResponse [ 1] PInitRes,
56
57 purchaseRequest [ 2] EXPLICIT PReq,
58 purchaseResponse [ 3] PRes,
59
60 inquiryRequest [ 4] EXPLICIT InqReq,
61 inquiryResponse [ 5] InqRes,
62
63 authorizationRequest [ 6] AuthReq,
64 authorizationResponse [ 7] EXPLICIT AuthRes,
65
66 authReversalRequest [ 8] AuthRevReq,
67 authReversalResponse [ 9] EXPLICIT AuthRevRes,
68
69 captureRequest [10] EXPLICIT CapReq,
70 captureResponse [11] CapRes,
71
72 captureReversalRequest [12] EXPLICIT CapRevReq,
73 captureReversalResponse [13] CapRevRes,
74
75 creditRequest [14] EXPLICIT CredReq,
76 creditResponse [15] CredRes,
77
78 creditReversalRequest [16] EXPLICIT CredRevReq,
79 creditReversalResponse [17] CredRevRes,
80
81 pCertificateRequest [18] PCertReq,
82 pCertificateResponse [19] PCertRes,
83
84 batchAdministrationRequest [20] BatchAdminReq,
85 batchAdministrationResponse [21] BatchAdminRes,
86
87 cardholderCInitRequest [22] CardCInitReq,
88 cardholderCInitResponse [23] CardCInitRes,
89
90 meAgCInitRequest [24] Me-AqCInitReq,
91 meAgCInitResponse [25] Me-AqCInitRes,
92
93 registrationFormRequest [26] RegFormReq,
94 registrationFormResponse [27] RegFormRes,
95
96 certificateRequest [28] EXPLICIT CertReq,
97 certificateResponse [29] EXPLICIT CertRes,
98
99 certificateInquiryRequest [30] CertInqReq,
100 certificateInquiryResponse [31] EXPLICIT CertInqRes,
101
102 error [32] Error
103 }
104
105 Error ::= SEQUENCE {
106 errorCode INTEGER
107 }
108
109 -- Brand CRL Identifiers
110
111 BrandCRLIdentifier ::= SIGNED {
112 EncodedBrandCRLID
113 } ( CONSTRAINED BY { -- Verify Or Sign UnsignedBrandCRLIdentifier -- } )
114
115 EncodedBrandCRLID ::= TYPE-IDENTIFIER.&Type (UnsignedBrandCRLIdentifier)
116
117 UnsignedBrandCRLIdentifier ::= SEQUENCE {
118 brandVersion INTEGER { bVer1(0) } (bVer1),
119 sequenceNum INTEGER (0..MAX),
120 brandID BrandID,
121 validity Validity,
122 crl-IDs CRL-IDs OPTIONAL,
123 bCRLExtensions [0] Extensions -- authorityKeyIdentifier only
124 }
125
126 BrandID ::= DirectoryString { ub-BrandID }
127
128 CRL-IDs ::= SEQUENCE OF CRL-ID
129
130 CRL-ID ::= SEQUENCE {
131 issuerName Name, -- CRL issuer Distinguished Name
132 crlNumber INTEGER (0..MAX) -- cRLNumber extension sequence number
133 }
134
135 --
136
137 AcqCardCode ::= ENUMERATED {
138 tbd (0) -- To be defined
139 }
140
141 AcqCardCodeMsg ::= SEQUENCE {
142 acqCardCode AcqCardCode,
143 acqCardMsgData AcqCardMsgData
144 }
145
146 AcqCardMsgData ::= SEQUENCE {
147 acqCardText [0] EXPLICIT
148 DirectoryString { ub-acqCardText } OPTIONAL,
149 acqCardURL URL OPTIONAL,
150 acqCardPhone DirectoryString { ub-acqCardPhone } OPTIONAL
151 }
152
153 BIN ::= NumericString -- Bank identification number
154
155 CardExpiry ::= IA5String (SIZE(6)) -- YYYYMM expiration date on card
156
157 CertThumb ::= SEQUENCE {
158 digestAlgorithm DAlgorithmIdentifier -- (sha1)--,
159 thumbprint Digest
160 }
161
162 Challenge ::= OCTET STRING (SIZE(20)) -- Signature freshness challenge
163
164 Currency ::= INTEGER (1..999) -- Three digit ISO-4217 currency code
165
166 Date ::= GeneralizedTime
167
168 Language ::= IA5String (SIZE(3)) -- RFC1766 language preference
169
170 LocalID ::= OCTET STRING (SIZE(1..20))
171
172 MerchantID ::= DirectoryString { ub-MerchantID }
173
174 Nonce ::= OCTET STRING (SIZE(20))
175
176 PAN ::= NumericString (SIZE(1..19))
177
178 PANData ::= SEQUENCE {
179 pan PAN,
180 cardExpiry CardExpiry,
181 panSecret OCTET STRING (SIZE(20)),
182 exNonce Nonce
183 }
184
185 PaySysID ::= IA5String
186
187 RRPID ::= OCTET STRING(SIZE(20)) -- Request response pair identification
188
189 SWIdent ::= DirectoryString { ub-SWIdent } -- Software identification
190
191 Thumbs ::= SEQUENCE {
192 digestAlgorithm DAlgorithmIdentifier --(sha1)--,
193 certThumbs [0] Digests OPTIONAL,
194 crlThumbs [1] Digests OPTIONAL,
195 brandCRLIdThumbs [2] Digests OPTIONAL
196 }
197
198 TransIDs ::= SEQUENCE {
199 localID-C LocalID,
200 localID-M [0] LocalID OPTIONAL,
201 xID XID,
202 pReqDate Date,
203 paySysID [1] PaySysID OPTIONAL,
204 language Language -- Cardholder requested session language
205 }
206
207 URL ::= IA5String -- Universal Resource Locator
208
209 XID ::= OCTET STRING (SIZE(20))
210
211 -- Upper bounds of DirectoryString{} types
212
213 ub-BrandID INTEGER ::= 40
214 ub-acqCardText INTEGER ::= 128
215 ub-acqCardPhone INTEGER ::= 50
216 ub-MerchantID INTEGER ::= 30
217 ub-SWIdent INTEGER ::= 256
218
219
220 END