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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
|
-- ACSE definition from
-- http://www.itu.int/ITU-T/asn1/database/itu-t/x/x227bis/1998/ACSE-1.html
-- and modified to pass through asn2wrs
--
--
-- Module ACSE-1 (X.227bis:09/1998)
ACSE-1 {joint-iso-itu-t association-control(2) modules(0) acse1(1) version1(1)}
-- ACSE-1 refers to ACSE version 1
DEFINITIONS ::=
BEGIN
IMPORTS
Name, RelativeDistinguishedName
FROM InformationFramework {joint-iso-itu-t ds(5) module(1)
informationFramework(1) 3};
-- The data types Name and RelativeDistinguishedName are imported from
-- ITU-T Rec. X.501 | ISO/IEC 9594-2.
-- Workaround for bug in asn2wrs in the .cnf file
-- to handle the lack of support for tagged assignments.
-- remove that workaround once asn2wrs learns how to handle
-- tagged assignments.
EXTERNALt ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
{
direct-reference OBJECT IDENTIFIER OPTIONAL,
indirect-reference INTEGER OPTIONAL,
data-value-descriptor ObjectDescriptor OPTIONAL,
encoding CHOICE
{single-ASN1-type [0] ANY,
octet-aligned [1] IMPLICIT OCTET STRING,
arbitrary [2] IMPLICIT BIT STRING}
}
-- object identifier assignments
acse-as-id OBJECT IDENTIFIER ::=
{joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
version1(1)}
-- may be used to reference the abstract syntax of the ACSE APDUs.
aCSE-id OBJECT IDENTIFIER ::=
{joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)}
-- may be used to identify the Association Control ASE.
-- top level CHOICE
ACSE-apdu ::= CHOICE {
--asn2wrs bug
-- aarq AARQ-apdu,
aarq [APPLICATION 0] IMPLICIT AARQ-apdu,
--asn2wrs bug
-- aare AARE-apdu,
aare [APPLICATION 1] IMPLICIT AARE-apdu,
--asn2wrs bug
-- rlrq RLRQ-apdu,
rlrq [APPLICATION 2] IMPLICIT RLRQ-apdu,
--asn2wrs bug
-- rlre RLRE-apdu,
rlre [APPLICATION 3] IMPLICIT RLRE-apdu,
--asn2wrs bug
-- abrt ABRT-apdu,
abrt [APPLICATION 4] IMPLICIT ABRT-apdu,
...,
-- Extensions for higher level association FU
--asn2wrs bug
-- adt A-DT-apdu,
adt [APPLICATION 5] IMPLICIT A-DT-apdu,
--asn2wrs bug
-- acrq ACRQ-apdu,
acrq [APPLICATION 6] IMPLICIT ACRQ-apdu,
--asn2wrs bug
-- acrp ACRP-apdu
acrp [APPLICATION 7] IMPLICIT ACRP-apdu
}
AARQ-apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
protocol-version
[0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
aSO-context-name [1] ASO-context-name,
called-AP-title [2] AP-title OPTIONAL,
called-AE-qualifier [3] AE-qualifier OPTIONAL,
called-AP-invocation-identifier [4] AP-invocation-identifier OPTIONAL,
called-AE-invocation-identifier [5] AE-invocation-identifier OPTIONAL,
calling-AP-title [6] AP-title OPTIONAL,
calling-AE-qualifier [7] AE-qualifier OPTIONAL,
calling-AP-invocation-identifier [8] AP-invocation-identifier OPTIONAL,
calling-AE-invocation-identifier [9] AE-invocation-identifier OPTIONAL,
-- The following field shall not be present if only the Kernel is used.
sender-acse-requirements [10] IMPLICIT ACSE-requirements OPTIONAL,
-- The following field shall only be present if the Authentication functional unit is selected.
mechanism-name [11] IMPLICIT Mechanism-name OPTIONAL,
-- The following field shall only be present if the Authentication functional unit is selected.
calling-authentication-value [12] EXPLICIT Authentication-value OPTIONAL,
aSO-context-name-list
[13] IMPLICIT ASO-context-name-list OPTIONAL,
-- The above field shall only be present if the Application Context Negotiation functional unit is selected.
implementation-information [29] IMPLICIT Implementation-data OPTIONAL,
...,
-- Extensions for higher level association FU
p-context-definition-list [14] Syntactic-context-list OPTIONAL,
called-asoi-tag [15] IMPLICIT ASOI-tag OPTIONAL,
calling-asoi-tag [16] IMPLICIT ASOI-tag OPTIONAL,
-- End of extensions for higher level association FU
-- ...,
user-information [30] IMPLICIT Association-data OPTIONAL
}
AARE-apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
protocol-version
[0] IMPLICIT BIT STRING {version1(0)} DEFAULT {version1},
aSO-context-name [1] ASO-context-name,
result [2] Associate-result,
result-source-diagnostic [3] Associate-source-diagnostic,
responding-AP-title [4] AP-title OPTIONAL,
responding-AE-qualifier [5] AE-qualifier OPTIONAL,
responding-AP-invocation-identifier [6] AP-invocation-identifier OPTIONAL,
responding-AE-invocation-identifier [7] AE-invocation-identifier OPTIONAL,
-- The following field shall not be present if only the Kernel is used.
responder-acse-requirements [8] IMPLICIT ACSE-requirements OPTIONAL,
-- The following field shall only be present if the Authentication functional unit is selected.
mechanism-name [9] IMPLICIT Mechanism-name OPTIONAL,
-- This following field shall only be present if the Authentication functional unit is selected.
responding-authentication-value
[10] EXPLICIT Authentication-value OPTIONAL,
aSO-context-name-list
[11] IMPLICIT ASO-context-name-list OPTIONAL,
-- The above field shall only be present if the Application Context Negotiation functional unit is selected.
implementation-information
[29] IMPLICIT Implementation-data OPTIONAL,
...,
-- Extensions for higher level association FU
p-context-result-list
[12] IMPLICIT P-context-result-list OPTIONAL,
called-asoi-tag [13] IMPLICIT ASOI-tag OPTIONAL,
calling-asoi-tag [14] IMPLICIT ASOI-tag OPTIONAL,
-- End of extensions for higher level association FU
-- ...,
user-information [30] IMPLICIT Association-data OPTIONAL
}
RLRQ-apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
reason [0] IMPLICIT Release-request-reason OPTIONAL,
...,
-- Extensions for higher level association FU
aso-qualifier [13] ASO-qualifier OPTIONAL,
asoi-identifier [14] IMPLICIT ASOI-identifier OPTIONAL,
-- End of extensions for higher level association FU
-- ...,
user-information [30] IMPLICIT Association-data OPTIONAL
}
RLRE-apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
reason [0] IMPLICIT Release-response-reason OPTIONAL,
...,
-- Extensions for higher level association FU
aso-qualifier [13] ASO-qualifier OPTIONAL,
asoi-identifier [14] IMPLICIT ASOI-identifier OPTIONAL,
-- End of extensions for higher level association FU
-- ...,
user-information [30] IMPLICIT Association-data OPTIONAL
}
ABRT-apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
abort-source [0] IMPLICIT ABRT-source,
abort-diagnostic [1] IMPLICIT ABRT-diagnostic OPTIONAL,
-- This field shall not be present if only the Kernel is used.
...,
-- Extensions for higher level association FU
aso-qualifier [13] ASO-qualifier OPTIONAL,
asoi-identifier [14] IMPLICIT ASOI-identifier OPTIONAL,
-- End of extensions for higher level association FU
-- ...,
user-information [30] IMPLICIT Association-data OPTIONAL
}
A-DT-apdu ::= [APPLICATION 5] IMPLICIT SEQUENCE {
aso-qualifier [0] ASO-qualifier OPTIONAL,
asoi-identifier [1] IMPLICIT ASOI-identifier OPTIONAL,
...,
-- ...,
a-user-data [30] User-Data
}
ACRQ-apdu ::= [APPLICATION 6] IMPLICIT SEQUENCE {
aso-qualifier [0] ASO-qualifier OPTIONAL,
asoi-identifier [1] IMPLICIT ASOI-identifier OPTIONAL,
aSO-context-name [3] IMPLICIT ASO-context-name OPTIONAL,
aSO-context-name-list [4] IMPLICIT ASO-context-name-list OPTIONAL,
p-context-definition-list [5] Syntactic-context-list OPTIONAL,
...,
-- ...,
user-information [30] IMPLICIT User-information OPTIONAL
}
ACRP-apdu ::= [APPLICATION 7] IMPLICIT SEQUENCE {
aso-qualifier [0] ASO-qualifier OPTIONAL,
asoi-identifier [1] IMPLICIT ASOI-identifier OPTIONAL,
-- originally defined as ASO-context-name-list, but this has to be wrong
-- aSO-context-name [3] IMPLICIT ASO-context-name-list OPTIONAL,
aSO-context-name [3] IMPLICIT ASO-context-name OPTIONAL,
p-context-result-list [4] IMPLICIT P-context-result-list OPTIONAL,
...,
-- ...,
user-information [30] IMPLICIT User-information OPTIONAL
}
ABRT-diagnostic ::= ENUMERATED {
no-reason-given(1), protocol-error(2),
authentication-mechanism-name-not-recognized(3),
authentication-mechanism-name-required(4), authentication-failure(5),
authentication-required(6), ...
}
ABRT-source ::= INTEGER {service-user(0), service-provider(1)
}(0..1, ...)
ACSE-requirements ::= BIT STRING {
authentication(0), aSO-context-negotiation(1), higher-level-association(2),
nested-association(3)}
Application-context-name ::= ASO-context-name
ASO-context-name ::= OBJECT IDENTIFIER
-- Application-entity title productions follow (not in alphabetical order).
AP-title ::= CHOICE {
ap-title-form1 AP-title-form1,
ap-title-form2 AP-title-form2,
...,
ap-title-form3 AP-title-form3
}
AE-qualifier ::= ASO-qualifier
ASO-qualifier ::= CHOICE {
aso-qualifier-form1 ASO-qualifier-form1,
aso-qualifier-form2 ASO-qualifier-form2,
...,
aso-qualifier-form3 ASO-qualifier-form3,
-- an alternative used by some systems from the days when ASO-qualifier
-- was an ANY
aso-qualifier-form-any-octets ASO-qualifier-form-octets
}
-- When both AP-title and AE-qualifier data values are present in an AARQ or AARE APDU, both must
-- have the same form to allow the construction of an AE-title as discussed in itu-t Rec. X.665 |
-- ISO/IEC 9834-6
AP-title-form1 ::=
Name
-- The value assigned to AP-title-form1 is The Directory Name of an application-process title.
ASO-qualifier-form1 ::=
RelativeDistinguishedName
-- The value assigned to AE-qualifier-form1 is the relative distinguished name of a particular
-- application-entity of the application-process identified by AP-title-form1.
AP-title-form2 ::= OBJECT IDENTIFIER
ASO-qualifier-form2 ::= INTEGER
AP-title-form3 ::= PrintableString
ASO-qualifier-form3 ::= PrintableString
ASO-qualifier-form-octets ::= OCTET STRING
AE-title ::= CHOICE {
ae-title-form1 AE-title-form1,
ae-title-form2 AE-title-form2,
...
}
-- As defined in ITU-T Rec. X.650 | ISO/IEC 7498-3, an application-entity title is composed of an application process
-- title and an application-entity qualifier. The ACSE protocol provides for the transfer of an application-entity title
-- value by the transfer of its component values. However, the following data type is provided for International
-- Standards that reference a single syntactic structure for AE titles.
AE-title-form1 ::=
Name
-- For access to The Directory (see ITU-T Rec. X.500 series | ISO/IEC 9594), an AE title has AE-title-form1. This value
-- can be constructed from AP-title-form1 and AE-qualifier-form1 values contained in an AARQ or AARE APDU.
-- A discussion of forming an AE-title-form1 from AP-title-form1 and AE-qualifier form1 may be found in itu-t
-- Rec X.665 | ISO/IEC 9834-6.
AE-title-form2 ::= OBJECT IDENTIFIER
-- A discussion of forming an AE-title-form2 from AP-title-form2 and AE-qualifier-form2 may be found in
-- itu-t Rec. X.665 | ISO/IEC 9834-6.
AE-invocation-identifier ::= INTEGER
AP-invocation-identifier ::= INTEGER
ASOI-identifier ::= INTEGER(1..128, ...)
ASOI-tag ::=
SEQUENCE SIZE (0..7, ...) OF
SEQUENCE {qualifier [0] ASO-qualifier OPTIONAL,
identifier [1] ASOI-identifier OPTIONAL}
-- End of Application-entity title productions
ASO-context-name-list ::= SEQUENCE OF ASO-context-name
Syntactic-context-list ::= CHOICE {
context-list [0] Context-list,
default-contact-list [1] Default-Context-List
}
Context-list ::=
SEQUENCE OF
SEQUENCE {pci Presentation-context-identifier,
abstract-syntax Abstract-syntax-name,
-- bug in asn2wrs
-- transfer-syntaxes SEQUENCE OF Transfer-syntax-name}
transfer-syntaxes SEQUENCE OF TransferSyntaxName}
Default-Context-List ::=
SEQUENCE OF
SEQUENCE {abstract-syntax-name [0] IMPLICIT Abstract-syntax-name OPTIONAL,
-- bug in asn2wrs
-- transfer-syntax-name [1] IMPLICIT Transfer-syntax-name
transfer-syntax-name [1] IMPLICIT TransferSyntaxName
}
Abstract-syntax-name ::= OBJECT IDENTIFIER
P-context-result-list ::=
SEQUENCE OF
SEQUENCE {result [0] IMPLICIT Result,
concrete-syntax-name [1] IMPLICIT Concrete-syntax-name OPTIONAL,
provider-reason
[2] IMPLICIT INTEGER {reason-not-specified(0),
abstract-syntax-not-supported(1),
proposed-transfer-syntaxes-not-supported(2),
local-limit-on-DCS-exceeded(3)} OPTIONAL
}
Result ::= INTEGER {acceptance(0), user-rejection(1), provider-rejection(2)}
--bug in asn2wrs
--Concrete-syntax-name ::= Transfer-syntax-name
Concrete-syntax-name ::= TransferSyntaxName
--bug in asn2wrs
--Transfer-syntax-name ::= OBJECT IDENTIFIER
TransferSyntaxName ::= OBJECT IDENTIFIER
Associate-result ::= INTEGER {
accepted(0), rejected-permanent(1), rejected-transient(2)}(0..2, ...)
Associate-source-diagnostic ::= CHOICE {
service-user
[1] INTEGER {null(0), no-reason-given(1),
application-context-name-not-supported(2),
calling-AP-title-not-recognized(3),
calling-AP-invocation-identifier-not-recognized(4),
calling-AE-qualifier-not-recognized(5),
calling-AE-invocation-identifier-not-recognized(6),
called-AP-title-not-recognized(7),
called-AP-invocation-identifier-not-recognized(8),
called-AE-qualifier-not-recognized(9),
called-AE-invocation-identifier-not-recognized(10),
authentication-mechanism-name-not-recognized(11),
authentication-mechanism-name-required(12),
authentication-failure(13), authentication-required(14)}
(0..14, ...),
service-provider
[2] INTEGER {null(0), no-reason-given(1), no-common-acse-version(2)}
(0..2, ...)
}
User-information ::= Association-data
Association-data ::= SEQUENCE OF EXTERNALt
Simply-encoded-data ::= OCTET STRING
User-Data ::= CHOICE {
user-information User-information,
simply-encoded-data Simply-encoded-data,
fully-encoded-data [0] PDV-list
}
-- see ITU-T Rec. X.226 | ISO/IEC 8823-1.
PDV-list ::= SEQUENCE {
--bug in asn2wrs
-- transfer-syntax-name Transfer-syntax-name OPTIONAL,
transfer-syntax-name TransferSyntaxName OPTIONAL,
presentation-context-identifier Presentation-context-identifier,
presentation-data-values
CHOICE {simple-ASN1-type
[0] ANY
(CONSTRAINED BY {
-- Type corresponding to presentation context identifier
}),
octet-aligned [1] IMPLICIT OCTET STRING,
arbitrary [2] IMPLICIT BIT STRING}
-- see ITU-T Rec. X.226 | ISO/IEC 8823-1.
}
Presentation-context-identifier ::= INTEGER
Authentication-value-other ::= SEQUENCE {
other-mechanism-name OBJECT IDENTIFIER,
other-mechanism-value ANY
}
Authentication-value ::= CHOICE {
charstring [0] IMPLICIT GraphicString,
bitstring [1] IMPLICIT BIT STRING,
external [2] IMPLICIT EXTERNALt,
other
[3] IMPLICIT Authentication-value-other
}
-- The abstract syntax of (calling/responding) authentication-value is determined by the authentication mechanism used
-- during association establishment. The authentication mechanism is either explicitly denoted by the &id field (of type
-- OBJECT IDENTIFIER) for a mechanism belonging to the class MECHANISM-NAME, or it is known implicitly by
-- prior agreement between the communicating partners. If the "other" component is chosen, then the
-- "mechanism-name" component must be present in accordance with ITU-T Rec. X.680 | ISO/IEC 8824-1. If the value
-- "mechanism-name" occurs in the AARQ-apdu or the AARE-apdu, then that value must be the same as the value for
-- "other-mechanism-name".
Implementation-data ::= GraphicString
Mechanism-name ::= OBJECT IDENTIFIER
Release-request-reason ::= INTEGER {normal(0), urgent(1), user-defined(30)
}
Release-response-reason ::= INTEGER {
normal(0), not-finished(1), user-defined(30)}
END
-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
|