Comments (5)
ANY
was removed from the standard 1994 according to http://erlang.org/documentation/doc-5.2/lib/asn1-1.4/doc/html/asn1_ug.html#ANY. It's recommended to use an information object class instead. Information object classes are not yet part of asn1tools, and it's quite a lot of work to implement support for them.
I recommend using an OCTET STRING
instead of ANY
, and decode the OCTET STRING
after decoding the outer structure (the inverse for encoding). An OCTET STRING
is a sequence of bytes. OCTET STRING
is supported by all codecs I believe.
from asn1tools.
No immediate plans, but I can have a look at it tonight. Hopefully it's easy to implement and, if so, I can have an implementation completed fairly soon.
from asn1tools.
Thank you for your quick response. I'm looking at the sources myself, and I also initially thought so too, but now I have doubts.
However, it is not the code-base of asn1tools that I have doubts about, it is the functioning of ANY
that raises questions.
For instance, in other ASN.1 libraries that I’ve been using, namely asn1c and jASN1, the data that goes into the field of type ANY, gets first DER
encoded and then the field contains the bytes that represent the DER
encoding of that data. This happens regardless of the final encoding of the parent PDU.
My schema is the following. (The actual type definition of the value
field is given in the parent PDU that holds a SEQUENCE OF Rating
. So the receiver knows how to parse the values.)
Rating ::= SEQUENCE {
source Entity,
target Entity,
service Service,
date BinaryTime,
value ANY
}
In those libraries, the value
field is first DER
encoded and then filled with the bytes obtained from the encoding. This happens regardless of what the Rating
will eventually be encoded. So you can get unusual combinations. DER with PER, DER with XER, etc.
While I’m not sure what the standard says, I find it unusual, particularly in cases when the encoding is textual, for instance XER
or JER
. In those cases one may get a XML or a JSON that contains non-printable characters.
Intuitively, I’d say that the encoding of the type ANY
has to match the encoding of its parent.
from asn1tools.
I added ANY
and ANY DEFINED BY
to the list of known limitations. They will likely not be implemented as they were removed from the standard 1994.
from asn1tools.
Thank you for your comments. I think the best approach for my case is to simply use the OCTET STRING
as you suggest.
from asn1tools.
Related Issues (20)
- Generate C source: Unsupported type 'BIT STRING' HOT 3
- Unsupported type 'BIT STRING' error in generate C source uper HOT 3
- python asn1tools BitString uper encoded wrong value HOT 1
- Objects set members are not parsed at all HOT 2
- ASN1Tools Fails to Compile 3GPP Release 16 ASN.1 HOT 3
- Expected enumeration index 0, 1 or 2, but got 3
- Generated C OER decoder fails to decode fixed-length sequences with lengths of more than 255
- Decode successfully ignores extra bytes HOT 2
- encode_message() fails to validate ASN.1 BIT STRING SIZE constraints
- how to parse the "CONTAING SEQUENCE" msg immediately HOT 1
- Compile nrppa using PER fail
- How to view encoded values
- Test failures with pyparsing 3.1.1 HOT 4
- oer c code generation fails when addition contains a sequence with enums (type error) HOT 2
- decoding erros HOT 9
- SEQUENCE OF has no maximum length HOT 1
- parser claims "syntax error" for `SEQUENCE (SIZE (32)) OF OCTET STRING (SIZE (6))` with `DEFAULT` HOT 4
- How to encode a complex json object ?
- ParseError when compile the ASN1 schema file
- OpenType does not exist for xer
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from asn1tools.