Hi,

I'm having difficulty resolving some ASN1. I'm inclined to think that it is
invalid and I'd welcome another opinion that might give me a hint about
what I don't understand.

X519 "IDMProtocolSpecification {joint-iso-itu-t ds(5) module (1) 
iDMProtocolSpecification (30) 4}"
defines:

IDM-PDU {IDM-PROTOCOL:protocol}  ::=  CHOICE {
    bind            [0] Bind{ {protocol} },   
    bindResult      [1] BindResult{ {protocol} },
    bindError       [2] BindError{ {protocol} }, 
    request         [3] Request{ {protocol.&Operations} },
    result          [4] Result{ {protocol.&Operations} },
    error           [5] Error{ {protocol.&Operations} }, 
    reject          [6] Reject,                         
    unbind          [7] Unbind,    
    abort           [8] Abort }

I parse this as a ParameterizedObjectClass called IDM-PDU with a ParameterList
containing a DummyReference protocol and Governor IDM-PROTOCOL.

And then in "DirectoryIDMProtocols {joint-iso-itu-t ds(5) module(1) 
directoryIDMProtocols(31) 4}"
X519 goes on to define:

DAP-IDM-PDUs  ::=  IDM-PDU (dap-ip)
dap-ip IDM-PROTOCOL ::= {
    BIND-OPERATION  directoryBind
    OPERATIONS      { read | compare | abandon | list | search | addEntry | 
removeEntry | modifyEntry | modifyDN }
    ID              id-idm-dap }

The thing I don't understand is how IDM-PDU can be used here with a Constraint,
but without the parameter that it's definition requires. To me Constraints
affect the values the Type takes, but aren't used to define the Type itself
like the IDM-PDU defined above.

My understanding of X682 is that adding a Constraint to a Type creates a unique
subtype, but requires that the Type be resolved first and if a ReferencedType
is defined with a ParameterList, a consistent set of parameters must be
passed.

Either I have a bug in my parser (due to my misunderstanding) or the definition
should read:

DAP-IDM-PDUs  ::=  IDM-PDU {dap-ip}

so that the dap-ip Object is passed in a ParameterList, not a Constraint.

-- 
John Birrell

Reply via email to