OID value: 2.23.42.6.0
OID description:
SetMessage
{ joint-iso-itu-t(2) internationalRA(23) set(42) module(6) 0 }
DEFINITIONS IMPLICIT TAGS ::= BEGIN
--
-- This module defines types for use in the SET protocol certificate and
-- payment flow messages.
--
-- EXPORTS All;
IMPORTS
ALGORITHM-IDENTIFIER, AlgorithmIdentifier {}, Name, SETString {}
FROM SetAttribute
SIGNED {}
FROM SetCertificate
EXTENSION, Extensions, ub-cityName, ub-postalCode, ub-stateProvince
FROM SetCertificateExtensions
CardCInitReq, CardCInitRes, CertInqReq, CertInqRes, CertReq, CertRes,
Me-AqCInitReq, Me-AqCInitRes, RegFormReq, RegFormRes
FROM SetCertMsgs
AuthReq, AuthRes, AuthRevReq, AuthRevRes, BatchAdminReq,
BatchAdminRes, CapReq, CapRes, CapRevReq, CapRevRes, CredReq,
CredRes, CredRevReq, CredRevRes, InqReq, InqRes, PCertReq,
PCertRes, PInitReq, PInitRes, PReq, PRes
FROM SetPayMsgs
CA, ContentEncryptionAlgorithms, Digest, DigestAlgorithms, Digests, EE, S {}
FROM SetPKCS7Plus
ub-phone
FROM SetMarketData;
MessageWrapper ::= SEQUENCE {
messageHeader MessageHeader,
message [0] EXPLICIT MESSAGE.&Type (Message),
mwExtensions [1] MsgExtensions {{MWExtensionsIOS}} OPTIONAL
}
-- An information object set is defined for each extensible PDU
--
-- Note: each of these information object sets uses the extension
-- marker (...) to allow vendors to add supported extensions to
-- their local copy of the ASN.1. Extensions added by vendors
-- should appear after the extension marker.
MWExtensionsIOS EXTENSION ::= { ... }
MessageHeader ::= SEQUENCE {
version INTEGER { setVer1(1) } (setVer1),
revision INTEGER (0) DEFAULT 0, -- This is version 1.0
date Date,
messageIDs [0] MessageIDs OPTIONAL,
rrpid [1] RRPID OPTIONAL,
swIdent SWIdent
}
MessageIDs ::= SEQUENCE {
lid-C [0] LocalID OPTIONAL,
lid-M [1] LocalID OPTIONAL,
xID [2] XID OPTIONAL
}
MESSAGE ::= TYPE-IDENTIFIER -- ISO/IEC 8824-2:1995(E), Annex A
Message ::= CHOICE {
purchaseInitRequest [ 0] EXPLICIT PInitReq,
purchaseInitResponse [ 1] EXPLICIT PInitRes,
purchaseRequest [ 2] EXPLICIT PReq,
purchaseResponse [ 3] EXPLICIT PRes,
inquiryRequest [ 4] EXPLICIT InqReq,
inquiryResponse [ 5] EXPLICIT InqRes,
authorizationRequest [ 6] EXPLICIT AuthReq,
authorizationResponse [ 7] EXPLICIT AuthRes,
authReversalRequest [ 8] EXPLICIT AuthRevReq,
authReversalResponse [ 9] EXPLICIT AuthRevRes,
captureRequest [10] EXPLICIT CapReq,
captureResponse [11] EXPLICIT CapRes,
captureReversalRequest [12] EXPLICIT CapRevReq,
captureReversalResponse [13] EXPLICIT CapRevRes,
creditRequest [14] EXPLICIT CredReq,
creditResponse [15] EXPLICIT CredRes,
creditReversalRequest [16] EXPLICIT CredRevReq,
creditReversalResponse [17] EXPLICIT CredRevRes,
pCertificateRequest [18] EXPLICIT PCertReq,
pCertificateResponse [19] EXPLICIT PCertRes,
batchAdministrationRequest [20] EXPLICIT BatchAdminReq,
batchAdministrationResponse [21] EXPLICIT BatchAdminRes,
cardholderCInitRequest [22] EXPLICIT CardCInitReq,
cardholderCInitResponse [23] EXPLICIT CardCInitRes,
meAqCInitRequest [24] EXPLICIT Me-AqCInitReq,
meAqCInitResponse [25] EXPLICIT Me-AqCInitRes,
registrationFormRequest [26] EXPLICIT RegFormReq,
registrationFormResponse [27] EXPLICIT RegFormRes,
certificateRequest [28] EXPLICIT CertReq,
certificateResponse [29] EXPLICIT CertRes,
certificateInquiryRequest [30] EXPLICIT CertInqReq,
certificateInquiryResponse [31] EXPLICIT CertInqRes,
error [999] EXPLICIT Error
}
-- Note: the parameter InfoObjectSet in the following definitions
-- allows a distinct information object set to be specified for
-- each PDU that can be extended thus permitting the organization
-- defining the extension to indicate where it intends for the
-- extension to appear.
MsgExtensions {EXTENSION:InfoObjectSet} ::=
SEQUENCE OF MsgExtension {{InfoObjectSet}}
MsgExtension {EXTENSION:InfoObjectSet} ::= SEQUENCE {
extnID EXTENSION.&id({InfoObjectSet}),
critical EXTENSION.&critical({InfoObjectSet}{@extnID})
DEFAULT FALSE,
extnValue [0] EXPLICIT EXTENSION.&ExtenType ({InfoObjectSet}{@extnID})
}
Error ::= CHOICE {
signedError [0] EXPLICIT SignedError,
unsignedError [1] EXPLICIT ErrorTBS
}
SignedError ::= S {EE, ErrorTBS}
ErrorTBS ::= SEQUENCE {
errorCode ErrorCode,
errorNonce Nonce,
errorOID [0] OBJECT IDENTIFIER OPTIONAL,
errorThumb [1] EXPLICIT CertThumb OPTIONAL,
errorMsg [2] EXPLICIT ErrorMsg
}
ErrorMsg ::= CHOICE { -- Either the
messageHeader [0] EXPLICIT MessageHeader, -- MessageHeader or a
badWrapper [1] OCTET STRING (SIZE(1..20000)) -- copy of the message
}
ErrorCode ::= ENUMERATED {
unspecifiedFailure (1),
messageNotSupported (2),
decodingFailure (3),
invalidCertificate (4),
expiredCertificate (5),
revokedCertificate (6),
missingCertificate (7),
signatureFailure (8),
badMessageHeader (9),
wrapperMsgMismatch (10),
versionTooOld (11),
versionTooNew (12),
unrecognizedExtension (13),
messageTooBig (14),
signatureRequired (15),
messageTooOld (16),
messageTooNew (17),
thumbsMismatch (18),
unknownRRPID (19),
unknownXID (20),
unknownLID (21),
challengeMismatch (22)
}
-- Brand CRL Identifiers
BrandCRLIdentifier ::= SIGNED {
EncodedBrandCRLID
} ( CONSTRAINED BY { -- Verify Or Sign UnsignedBrandCRLIdentifier -- } )
EncodedBrandCRLID ::= TYPE-IDENTIFIER.&Type (UnsignedBrandCRLIdentifier)
UnsignedBrandCRLIdentifier ::= SEQUENCE {
version INTEGER { bVer1(0) } (bVer1),
sequenceNum INTEGER (0..MAX),
brandID BrandID,
notBefore GeneralizedTime,
notAfter GeneralizedTime,
crlIdentifierSeq [0] CRLIdentifierSeq OPTIONAL,
bCRLExtensions [1] Extensions OPTIONAL
}
-- Notification to Brand CA that a CRL has been updated
CRLNotification ::= S{CA, CRLNotificationTBS}
CRLNotificationTBS ::= SEQUENCE {
date Date, -- Date of notification
crlThumbprint Digest
}
CRLNotificationRes ::= S{CA, CRLNotificationResTBS}
CRLNotificationResTBS ::= SEQUENCE {
date Date, -- Copied from CRLNotification
crlThumbprint Digest
}
-- Distribution of BrandCRLIdentifier to CAs and payment gateways
BCIDistribution ::= S{CA, BCIDistributionTBS}
BCIDistributionTBS ::= SEQUENCE {
date Date,
bci [0] BrandCRLIdentifier
}
BrandID ::= SETString { ub-BrandID }
CRLIdentifierSeq ::= SEQUENCE OF CRLIdentifier
CRLIdentifier ::= SEQUENCE {
issuerName Name, -- CRL issuer Distinguished Name
crlNumber INTEGER (0..MAX) -- cRLNumber extension sequence number
}
-- Common definitions
BackKeyData ::= SEQUENCE {
backAlgID ALGORITHM-IDENTIFIER.&id({ContentEncryptionAlgorithms}),
backKey BackKey
}
BackKey ::= OCTET STRING (SIZE(1..24)) -- Secret
BIN ::= NumericString (SIZE(6)) -- Bank identification number
CardExpiry ::= NumericString (SIZE(6)) -- YYYYMM expiration date of card
CertThumb ::= SEQUENCE {
digestAlgorithm AlgorithmIdentifier {{DigestAlgorithms}},
thumbprint Digest
}
Challenge ::= OCTET STRING (SIZE(20)) -- Signature freshness challenge
CountryCode ::= INTEGER (1..999) -- ISO-3166 country code
Currency ::= INTEGER (1..999) -- ISO-4217 currency code
Date ::= GeneralizedTime
DateTime ::= SEQUENCE {
date Date,
timeInd BOOLEAN DEFAULT FALSE
}
Distance ::= SEQUENCE {
scale DistanceScale,
dist INTEGER (0..MAX)
}
DistanceScale ::= ENUMERATED {
miles (0),
kilometers (1)
}
Language ::= VisibleString (SIZE(1..ub-RFC1766-language))
LocalID ::= OCTET STRING (SIZE(1..20))
Location ::= SEQUENCE {
countryCode CountryCode,
city [0] EXPLICIT SETString { ub-cityName } OPTIONAL,
stateProvince [1] EXPLICIT SETString { ub-stateProvince } OPTIONAL,
postalCode [2] EXPLICIT SETString { ub-postalCode } OPTIONAL,
locationID [3] EXPLICIT SETString { ub-locationID } OPTIONAL
}
MerchantID ::= SETString { ub-MerchantID }
Nonce ::= OCTET STRING (SIZE(20))
PAN ::= NumericString (SIZE(1..19))
PANData ::= SEQUENCE {
pan PAN,
cardExpiry CardExpiry,
panSecret Secret,
exNonce Nonce
}
PANData0 ::= SEQUENCE {
pan PAN,
cardExpiry CardExpiry,
cardSecret Secret,
exNonce Nonce
}
PANToken ::= SEQUENCE {
pan PAN,
cardExpiry CardExpiry,
exNonce Nonce
}
PaySysID ::= VisibleString (SIZE(1..ub-paySysID))
Phone ::= SETString { ub-phone }
RRPID ::= OCTET STRING(SIZE(20)) -- Request response pair identification
Secret ::= OCTET STRING (SIZE(20))
SWIdent ::= VisibleString (SIZE(1..ub-SWIdent)) -- Software identification
Thumbs ::= SEQUENCE {
digestAlgorithm AlgorithmIdentifier {{DigestAlgorithms}},
certThumbs [0] EXPLICIT Digests OPTIONAL,
crlThumbs [1] EXPLICIT Digests OPTIONAL,
brandCRLIdThumbs [2] EXPLICIT Digests OPTIONAL
}
TransIDs ::= SEQUENCE {
lid-C LocalID,
lid-M [0] LocalID OPTIONAL,
xid XID,
pReqDate Date,
paySysID [1] PaySysID OPTIONAL,
language Language -- Cardholder requested session language
}
URL ::= VisibleString (SIZE(1..ub-URL)) -- Universal Resource Locator
XID ::= OCTET STRING (SIZE(20))
-- Upper bounds of SETString{} types
ub-BrandID INTEGER ::= 40
ub-MerchantID INTEGER ::= 30
ub-SWIdent INTEGER ::= 256
ub-acqBusinessID INTEGER ::= 32
ub-locationID INTEGER ::= 10
ub-paySysID INTEGER ::= 64
ub-RFC1766-language INTEGER ::= 35
ub-URL INTEGER ::= 512
END