SetMessage

[ Changed 7th November 1996 ]


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.


Defined but not used:


   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
            

Please e-mail any comments to webmaster