OSS Nokalva Home Page
>
Resources
>
ASN1.IO
> ASN.1/Rust Web Compiler (beta)
×
The following license will be emailed to you
×
ASN.1/Rust Web - Codec Variants
Features
Full Codec with Validation
Compact Codec
ASN.1 Features Support
Complete
Few Restrictions
i
No support for CHARACTER STRING, EMBEDDED-PDV, EXTERNAL, INSTANCE OF, and the TIME type and its subtypes.
Detailed errors
✓
i
Multiple errors, including the position of the field. E.g. Error 80002: The end of the encoding was encountered inside the content; check the content (INTEGER type 'I') of field 'cc' (OCTET STRING type 'OI') of PDU (SEQUENCE type 'CC-INT')
✗
i
Single error with an error code and a short description. E.g. Error 401: The input value is invalid and cannot be encoded
Binary Encoding Rules
all
all
Text Encoding Rules
JER (JSON)
✗
CHOICE type with untagged alternatives
✓
✗
SEQUENCE/SET with a complex DEFAULT
✓
✗
i
Such DEFAULTs are not ignored, the user must take responsibility to ensure that no values matching the defaults will be presented to the Encode function of the canonical encoding rules, otherwise this may result in non-canonical encodings.
Recursive type definition in schemas
✓
✓
Automatic encoding/decoding of OCTET STRING and BIT STRING with a contents constraint
✓
✓
Automatic decoding constrained open types
✓
✓
i
Limited to only one referenced component of the same SEQUENCE or SET type and the reference is INTEGER or OBJECT IDENTIFIER.
Validation of an ASN.1 value
✓
✗
Copying, comparison of ASN.1 values
✓
✗
Get PDU id by type name
✓
✗
Buy
Sign Up for FREE
•
questionnaire
One minute
ASN.1 Schema:
Enter manually
Upload .asn file
3GPP 5G_RRC v16.4.1 [NR-RRC-Definitions.DL-DCCH-Message]
3GPP E1AP v16.5.0 [E1AP-PDU-Descriptions.E1AP-PDU]
3GPP F1AP v16.4.1 [F1AP-PDU-Descriptions.F1AP-PDU]
3GPP LCSAP v16.2.0 [LCS-AP-PDU-Descriptions.LCS-AP-PDU]
3GPP LPPA v16.1.0 [LPPA-PDU-Descriptions.LPPA-PDU]
3GPP M2AP v16.1.0 [M2AP-PDU-Descriptions.M2AP-PDU]
3GPP M3AP v16.0.0 [M3AP-PDU-Descriptions.M3AP-PDU]
3GPP NGAP v16.5.0 [NGAP-PDU-Descriptions.NGAP-PDU]
3GPP S1AP v16.5.0 [S1AP-PDU-Descriptions.S1AP-PDU]
3GPP SBCAP v16.0.0 [SBC-AP-PDU-Descriptions.SBC-AP-PDU]
3GPP SLmAP v16.0.0 [SLMAP-PDU-Descriptions.SLMAP-PDU]
3GPP X2AP v16.5.0 [X2AP-PDU-Descriptions.X2AP-PDU]
3GPP XNAP v16.5.0 [XnAP-PDU-Descriptions.XnAP-PDU]
3GPP XWAP v16.0.0 [XwAP-PDU-Descriptions.XwAP-PDU]
CDR TS 32 298 16.10.0 [GPRSChargingDataTypes.GPRSRecord]
ECMA CSTA v3.0 [Header.ROSHeader]
ETSI CAM v1.4.1 [CAM-PDU-Descriptions.CAM]
ETSI DENM v2.1.1 [DENM-PDU-Description.DENM]
IEEE 802.16m v16.1 [WirelessMAN-Advanced-Air-Interface.MAC-Control-Message]
ITU-T H245 v10.0 [MULTIMEDIA-SYSTEM-CONTROL.MultimediaSystemControlMessage]
World-Schema DEFINITIONS EXPLICIT TAGS ::= BEGIN Rocket ::= SEQUENCE { name [10] UTF8String (SIZE(1..16)), message [11] UTF8String DEFAULT "Hello World" , fuel [12] ENUMERATED {solid, liquid, gas, hybrid}, speed [13] CHOICE { mph [20] INTEGER, kmph [21] INTEGER } OPTIONAL, payload [14] SEQUENCE OF UTF8String } myRocket Rocket ::= { name "Enterprise", fuel solid, payload {"holodeck", "phasers"} } END
General options
Codec choice:
Codec with Validation (coming soon)
Compact Codec
ⓘ
Allow encoding of complex DEFAULTs
Ignore complex DEFAULTs (for types other than NULL, BOOLEAN, ENUMERATED, INTEGER and BIT STRING) during encoding. Warning: for canonical ER, it might produce non-conformant encodings, as complex DEFAULT values will still be encoded.
Always decode the Open Types
Decode Open Types even when their IDs are nested at a different level. Otherwise Open Types can be decoded in a separate step.
Encoding rule:
BER
DER
PER Unaligned
Canonical PER Unaligned
PER Aligned
Canonical PER Aligned
OER
Canonical OER
Text and binary formats, where OER is faster, PER is smaller, JER is human readable, etc.
Code generation
Codec name:
Syntax: alphanumeric, starts with a letter, up to 16 chars long
The name is incorporated in public generated names.
Generate sample
Type or Value name for the sample:
Syntax: ModuleName.TypeName
Generate functions:
Encode and Decode
Encode only (coming soon)
Decode only (coming soon)
Generate codec for PDU(s):
Syntax: ModuleName.TypeName
List of space-delimited type names (TypeName or ModuleName.TypeName or *.TypeName), to be included in the generated code, along with all their dependencies. By default, all the types defined in the schema are included.
Data binding
BigIntegers
Generates a BigInteger to accommodate unconstrained integers (instead of 64-bit values).
BigReals
Generates a BigReal for REAL (instead of "double").
BigOIDs
Generates unconstrained OID arcs (instead of 64-bit values).
Advanced options
Code footprint reduction
Exclude types:
Syntax: ModuleName.TypeName
List of space-delimited type names (TypeName or ModuleName.TypeName or *.TypeName) for optional components of a SEQUENCE or alternatives of a CHOICE that are not expected to be present in a message and can be excluded from the generated code.
Output