1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
-- Module SeseAPDUs (X.832:04/1995)
SeseAPDUs {joint-iso-itu-t genericULS(20) modules(1) seseAPDUs(6)} DEFINITIONS
AUTOMATIC TAGS ::=
BEGIN
-- EXPORTS ALL
IMPORTS
notation
FROM ObjectIdentifiers {joint-iso-itu-t genericULS(20) modules(1)
objectIdentifiers(0)}
dirAuthenticationTwoWay
FROM GulsSecurityExchanges {joint-iso-itu-t genericULS(20) modules(1)
gulsSecurityExchanges(2)}
SECURITY-EXCHANGE, SE-ERROR
FROM Notation notation;
SESEapdus{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
CHOICE {
se-transfer SETransfer{{ValidSEs}, {InvocationIdSet}},
se-u-abort SEUAbort{{ValidSEs}, {InvocationIdSet}},
se-p-abort SEPAbort{{ValidSEs}, {InvocationIdSet}}
}
SETransfer{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
SEQUENCE {
seIdentifier SECURITY-EXCHANGE.&sE-Identifier({ValidSEs}),
-- This identifies one of the security-
-- exchanges supported by the particular SESE
-- abstract syntax
itemIdentifier
SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs}{@seIdentifier}),
-- This identifies one of the security-
-- exchange-items of the security exchange
-- indicated by "seIdentifier"
seItem
SECURITY-EXCHANGE.&SE-Items.&ItemType
({ValidSEs}{@seIdentifier, @itemIdentifier}),
invocationId
InvocationId(InvocationIdSet)
(CONSTRAINED BY {-- Must be the same as the---- invocationId on an active security exchange--
-- if start flag is not true -- }) DEFAULT noInvocationId,
startFlag BOOLEAN DEFAULT FALSE,
-- This field is set only as the first security-
-- exchange-item of a security-exchange is
-- transferred.
endFlag BOOLEAN DEFAULT FALSE-- This field is set as the last security-exchange-
-- item of a security-exchange is transferred. It is
-- needed to accommodate those mechanisms requiring
-- n exchanges, where n is not known a priori
}
SEUAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
SEQUENCE {
invocationId
InvocationId(InvocationIdSet)
(CONSTRAINED BY {-- Must be the same as the---- invocationId on an active or just-completed--
-- security exchange -- }) DEFAULT noInvocationId,
itemIdentifier
SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
-- This component will only be present
-- when the Abort is generated subsequent
-- to receipt of a SETransfer APDU.
errors SEQUENCE OF SEerror{{ValidSEs}} OPTIONAL
-- needed to handle multiple error codes
}
SEPAbort{SECURITY-EXCHANGE:ValidSEs, InvocationId:InvocationIdSet} ::=
SEQUENCE {
invocationId InvocationId(InvocationIdSet) OPTIONAL,
itemIdentifier
SECURITY-EXCHANGE.&SE-Items.&itemId({ValidSEs.&SE-Items}) OPTIONAL,
-- This component will only be present
-- when the Abort is generated subsequent
-- to receipt of a SETransfer APDU.
problemCode ProblemCode
}
InvocationId ::= CHOICE {present INTEGER,
absent NULL
}
noInvocationId InvocationId ::= absent:NULL
NoInvocationId InvocationId ::= {noInvocationId}
SEerror{SECURITY-EXCHANGE:ValidSEs} ::= SEQUENCE {
errorCode SE-ERROR.&errorCode({Errors{{ValidSEs}}}) OPTIONAL,
errorParameter
SE-ERROR.&ParameterType({Errors{{ValidSEs}}}) OPTIONAL
}
Errors{SECURITY-EXCHANGE:ValidSEs} SE-ERROR ::= {ValidSEs.&SE-Items.&Errors}
ProblemCode ::= CHOICE {
general GeneralProblem,
transfer TransferProblem,
abort AbortProblem
}
GeneralProblem ::= ENUMERATED {invalidAPDU(0)}
TransferProblem ::= ENUMERATED {
duplicateInvocationId(0), unrecognizedSecurityExchange(1), mistypedItem(2),
inappropriateInvocationId(3), alternatingSequenceError(4)}
AbortProblem ::= ENUMERATED {
unrecognizedInvocationId(0), abortUnexpected(1), unrecognizedError(2),
unexpectedError(3), mistypedErrorParameter(4)}
END
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
|