-- ASN module extracted from ITU-T X.519 (10/2016)
IDMProtocolSpecification {joint-iso-itu-t ds(5) module(1) iDMProtocolSpecification(30) 8}
DEFINITIONS ::=
BEGIN
-- EXPORTS All
-- The types and values defined in this module are exported for use in the other ASN.1
-- modules contained within these Directory Specifications, and for the use of other
-- applications which will use them to access Directory services. Other applications may
-- use them for their own purposes, but this will not constrain extensions and
-- modifications needed to maintain or improve the Directory service.
IMPORTS
-- from Rec. ITU-T X.501 | ISO/IEC 9594-2
certificateExtensions, commonProtocolSpecification, directoryAbstractService,
directoryIDMProtocols, enhancedSecurity
FROM UsefulDefinitions {joint-iso-itu-t ds(5) module(1) usefulDefinitions(0) 8}
-- from Rec. ITU-T X.509 | ISO/IEC 9594-8
GeneralName
FROM CertificateExtensions certificateExtensions
-- from Rec. ITU-T X.511 | ISO/IEC 9594-3
SecurityProblem, ServiceProblem, Versions
FROM DirectoryAbstractService directoryAbstractService
-- from Rec. ITU-T X.519 | ISO/IEC 9594-5
OPERATION
FROM CommonProtocolSpecification commonProtocolSpecification;
-- IDM protocol
IDM-PDU{IDM-PROTOCOL:protocol} ::= CHOICE {
bind [0] IdmBind{{protocol}},
bindResult [1] IdmBindResult{{protocol}},
bindError [2] IdmBindError{{protocol}},
request [3] Request{{protocol.&Operations}},
result [4] IdmResult{{protocol.&Operations}},
error [5] Error{{protocol.&Operations}},
reject [6] IdmReject,
unbind [7] Unbind,
abort [8] Abort,
startTLS [9] StartTLS,
tLSResponse [10] TLSResponse,
... }
IdmBind{IDM-PROTOCOL:Protocols} ::= SEQUENCE {
protocolID IDM-PROTOCOL.&id({Protocols}),
callingAETitle [0] GeneralName OPTIONAL,
calledAETitle [1] GeneralName OPTIONAL,
argument [2] IDM-PROTOCOL.&bind-operation.&ArgumentType
({Protocols}{@protocolID}),
... }
IdmBindResult{IDM-PROTOCOL:Protocols} ::= SEQUENCE {
protocolID IDM-PROTOCOL.&id({Protocols}),
respondingAETitle [0] GeneralName OPTIONAL,
result [1] IDM-PROTOCOL.&bind-operation.&ResultType
({Protocols}{@protocolID}),
... }
IdmBindError{IDM-PROTOCOL:Protocols} ::= SEQUENCE {
protocolID IDM-PROTOCOL.&id({Protocols}),
--errcode IDM-PROTOCOL.&bind-operation.&Errors.&errorCode OPTIONAL
respondingAETitle [0] GeneralName OPTIONAL,
aETitleError ENUMERATED {
callingAETitleNotAccepted (0),
calledAETitleNotRecognized (1),
...} OPTIONAL,
error [1] IDM-PROTOCOL.&bind-operation.&Errors.&ParameterType
({Protocols}{@protocolID}),
... }
Request{OPERATION:Operations} ::= SEQUENCE {
invokeID INTEGER,
opcode OPERATION.&operationCode({Operations}),
argument OPERATION.&ArgumentType({Operations}{@opcode}),
... }
IdmResult{OPERATION:Operations} ::= SEQUENCE {
invokeID INTEGER,
opcode OPERATION.&operationCode({Operations}),
result OPERATION.&ResultType({Operations}{@opcode}),
... }
Error{OPERATION:Operations} ::= SEQUENCE {
invokeID INTEGER,
errcode OPERATION.&Errors.&errorCode({Operations}),
error OPERATION.&Errors.&ParameterType({Operations}{@errcode}),
... }
IdmReject ::= SEQUENCE {
invokeID INTEGER,
reason ENUMERATED {
mistypedPDU (0),
duplicateInvokeIDRequest (1),
unsupportedOperationRequest (2),
unknownOperationRequest (3),
mistypedArgumentRequest (4),
resourceLimitationRequest (5),
unknownInvokeIDResult (6),
mistypedResultRequest (7),
unknownInvokeIDError (8),
unknownError (9),
mistypedParameterError (10),
unsupportedIdmVersion (11),
unsuitableIdmVersion (12),
invalidIdmVersion (13),
...},
... }
Unbind ::= NULL
Abort ::= ENUMERATED {
mistypedPDU (0),
unboundRequest (1),
invalidPDU (2),
resourceLimitation (3),
connectionFailed (4),
invalidProtocol (5),
reasonNotSpecified (6),
...}
StartTLS ::= NULL
TLSResponse ::= ENUMERATED {
success (0),
operationsError (1),
protocolError (2),
unavailable (3),
...}
-- IDM-protocol information object class
IDM-PROTOCOL ::= CLASS {
&bind-operation OPERATION,
&Operations OPERATION,
&id OBJECT IDENTIFIER UNIQUE }
WITH SYNTAX {
BIND-OPERATION &bind-operation
OPERATIONS &Operations
ID &id }
END -- IDMProtocolSpecification