aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/asn1_SUITE_data/rfcs/SeseAPDUs.asn1
blob: 2917122e94178ae8071a4a643924b8a5c9df93e6 (plain) (blame)
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