Rajul,

Okay, thanks. So I think you're answer to my first question is, yes. :-)

Also, given X:

X ::= SEQUENCE {
        a INTEGER, -- stuff...
        b BOOLEAN
}

I believe that Z1:

Z1 ::= SEQUENCE {
        y TYPE-IDENTIFIER.&Type (X)
}

encodes in PER exactly like Z2:

Z2 ::= SEQUENCE {
        y OCTET STRING  -- contains X
}

True?

Paul Long
ipDialog, Inc.

> -----Original Message-----
> From: Rajul Gupta [mailto:[EMAIL PROTECTED]]
> Sent: Monday, June 24, 2002 4:13 PM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]
> Subject: Re: [ASN.1] TYPE-IDENTIFIER.&Type
>
>
> Hi Paul,
>
> (X) is a type constraints here, and it says that "y" MUST be of type "X"
> only. Syntactically, this is equivalent to
>
> Z ::= SEQUENCE {
>        y       X
> }
>
> However, this kind of syntax (your syntax) is useful in case of PER. PER
> always doesn't have length encoded, but while encoding open
> types, PER puts
> a length wrapper also. So if you are using PER, then at the decoding side
> you can easily find out the length of encoded open type value, without
> knowing it's type.
>
> Usually this type of construct is useful for security fields. Using length
> wrapper you can easily find out the length of security data and leave this
> data unwrapped and unprocessed in your application, and pass it to other
> application or function, where this security data is used.
>
> I hope this answer could be helpful for you.
>
> Rajul
>
> > I've put it off too long. Now it's time for me learn this ".&" stuff. Is
> y,
> > below, encoded in PER as an open type that contains an encoding of X? Is
> > that all there is to it?
> > Also, what syntactical role does the "(X)" play? Is
> > this a constraint and otherwise y could be encoded as an open
> type of any
> > type?
> > X ::= SEQUENCE {
> > a INTEGER, -- stuff...
> > b BOOLEAN
> > }
> >
> > Z ::= SEQUENCE {
> > y TYPE-IDENTIFIER.&Type (X)
> > }
> >
> > Paul Long
> > ipDialog, Inc.
> >
> >
> >
>
>

Reply via email to