v1.14.0 30-Jun-2023 -------------------- - add support for decimal REAL decoding, thanks to bibmaster and karim - fix Windows run scripts for newer Java versions v1.13.0 30-Jul-2021 -------------------- - added support for EXTENSIBILITY APPLIED when decoding sequences: accessing and setting extension bytes is possible using "-e" flag when compiling ASN1 files, thanks for testing to Calum MacLean - fixed decoding empty ANY value, thanks to Steffen Conrad - fixed decoding ANY containing element with indefinite length, thanks to Armin Lunkeit for pointing to the problem - add support for decoding constructed OCTET STRINGs v1.12.0 20-Jun-2020 -------------------- - renamed jASN1 to ASN1bean - Added full support for indefinite length decoding. The compiler's -il flag to enable indefinite length decoding was removed because it is now always enabled. - added support for white space in compiler's path parameters - added support for ASN1 modules that start with a digit - multiple minor clean ups in generated code v1.11.3 14-Mar-2020 -------------------- - switched from Java 7 to Java 8 - Improved parsing of scientific number like 7.0E-2 and single value constraint for octet strings like OCTET STRING (SIZE( 1)) ('55'H) - certain self reference like A ::= A; now cause an error message - minor fix in run script to allow for spaces in parent directories v1.11.2 06-Jun-2019 -------------------- - added compile support for various forms of INTEGER and REAL value constraints - significant performance improvements to ReverseByteArrayOutputStream.write(byte[]) and BerLength.encodeLength Thanks to the European Space Agency for these contributions. v1.11.1 03-May-2019 -------------------- - removed use of JAXB function to make jASN1 compatible with Java 11 - insertion of jASN1 version in generated class headers can now be disabled with -dv flag - added support for information object classes defined in external modules - fixed name clash issue if a sequence, set or choice has an element with the same name as the sequence, set or choice - fixed several minor inefficiencies such as unnecessary autoboxing v1.11.0 15-Mar-2019 -------------------- - changed license to Apache 2.0 license - changed package names from org.openmuc.* to com.beanit.* - run scripts are now found in the bin/ folder v1.10.0 26-Jun-2018 ------------------- - by default compiler now creates classes that implement the general BerType interface which contains the encode and decode functions, behavior can be disabled with compilers -di flag - made asCalendar() and asDate() methods of BerGeneralizedTime class public - open types in information object classes may now be OPTIONAL - fixed support of ellipsis ('...') in the beginning of sequences v1.9.0 13-Dec-2017 ------------------ - encode functions now take general OutputStream interface as parameter instead of BerByteArrayOutputStream so that alternative reverse output streams could be developed and used. thanks to önder sezgin - renamed BerByteArrayOutputStream to ReverseByteArrayOutputStream - the BerBitString value can now be set and retrieved as array of booleans v1.8.2 28-Aug-2017 ------------------ - fixed decoding certain subIDs of object identifiers, thanks to Calum MacLean v1.8.1 19-Jul-2017 ------------------ - changed license to Mozilla Public License (MPL) v2.0 - improved BerGeneralizedTime.java thanks to Andrea Lo Pumo - fixed decoding VisibleStrings to use readFully so that no exception is thrown while if read return less bytes, thanks to Jonathan Huthmann and Andrea Lo Pumo v1.8.0 20-Apr-2017 ------------------ - generated classes only import types imported by its module, not all available modules. This prevents name clashes. - added support for parametrized types - ANY types are now decoded and encoded differently so that their contents can be easily decoded by another type. - removed support for ANY_NODECODE - improved behaviour of compiler interface: * package folders no longer need to be part of the base directory specified. * files are separated by white space instead of ',' - added support for Information Object Classes - added support for ENUMERATED lists without value and INTEGERS with both a value list and a constraint - OID values are now parsed and stored in special class OidValues.java - correctly fixed name clash of generated classes from the following structure SEQUENCE { test SEQUENCE OF Test } - packages, fields and methods that clash with reserved Java key words are renamed (thanks to Telespazio Vega) - added support for EMBEDDED PDV type (thanks to Telespanzio Vega) - toString() methods of CHOICE, SEQUENCE/SET and SEQUENCE/SET OF use indentation to format returned string. - added support for TIME, TIME-OF-DAY, DATE, DATE-TIME, DURATION types - added asCalendar() and asDate() functions to BerUtcTime and BerGeneralizedTime thanks to Andrea Lo Pumo v1.7.1 05-Feb-2017 ------------------ - removed dependency on javax.xml.bind.DatatypeConverter so it works on Android again. Thanks to Karsten Ohme - fixed coding ENUMERATED bug, introduced in release 1.7.0, thanks to David Jelenc - fixed two more bugs when encoding and decoding REALs, thanks to htw saar v1.7.0 27-Jan-2017 ------------------ - fixed bug that the tag default of one module would override that of another module. - added support for explicitly tagged SEQUENCE, SET, SEQUENCE/SET OF, CHOICE and ANY - JAXB syntax mode of jasn-compiler is now default. Old syntax can be enabled using the legacy (-l) flag. - numerous minor improvements to jasn1-compiler to create more comprehensible Java classes. - BerInteger is now based on BigInteger instead of long. Thus it can code integer values larger than 8 bytes. - fixed name clash when a sequence element of type SEQUENCE OF has the same name as the SEQUENCE OF type, e.g. SEQUENCE { test SEQUENCE OF Test } - fixed BerReal bug when mantissa is larger than Integer.MAX - added encode and decode functions to all generated classes that take only a stream as parameter v1.6.0 03-Oct-2016 ------------------ - added support for automatic tagging - added support for empty SEQUENCEs - hyphens in type names are now removed instead of replaced by underscore, the next letter after the hyphen is capitalized. - when compiling one can enable the JAXB mode which generates classes that are more similar to those generated by the JAXB compiler - added support for untagged ANY fields - subclasses of SEQUENCE OF CHOICE .. and SEQUENCE OF SEQUENCE .. are now named "CHOICE" and "SEQUENCE" respectively. - extension marker "..." can now be parsed, but is ignored for now - multi-line comments using /* */ can now be parsed - parser can now handle sequence/set/choice elements with no identifier - fixed coding of explicitly tagged choices whithin choices - added support for UTCTime - fixed support for SEQUENCE OFs of tagged types such as SEQUENCE OF [3] INTEGER v1.5.0 10-Dec-2015 ------------------ - version of jasn1 compiler is inserted in generated class header comment - added toString() method to all types - a correct EOFException is now thrown when an unexpected end of input stream is reached while decoding. - removed some unnecessary checks while decoding sequences. - made encoding sequences, sets and choices more efficient by encoding the identfier directly. - made jasn-compiler significantly faster by removing unnecessary conversion to XML structure. - removed logger and command line parsing dependencies of the jasn1-compiler. New features thanks to funding by the European Space Agency & Telespazio VEGA: - added support for parsing explicit and implicit retagging such as MyType2 :== [2] MyType1 - added support for parsing inter-dependent ASN.1 modules from several files - added support for implicitly tagged choices whithin choices by forcing the tag to be explicit - added support for parsing size constraints such as (SIZE(n..m)) - added support for parsing constraints of the form "(FROM (ALL EXCEPT " "))" v1.4 28-Jul-2014 ---------------- - renamed jasn1-ber project to jasn1 - fixed bug in constructor of BerBitString v1.3 14-May-2014 ---------------- - fixed decoding of CHOICEs within SETs - made decoding SETs more efficient - minor fixes to build file to work with Gradle v1.11 - fixed decoding large BerIntegers (thanks to Helge Parzyjegla, University of Rostock) v1.2.1 27-Jan-2014 ------------------ - removed final from BerByteArrayOutputStream v1.2 10-Jan-2014 ---------------- - ANY elements are now encoded/decoded. - in some cases it could be favorable not to encode/decode elements of type any because it would involve big array copying. Therefor the compiler supports. The alternative element type called ANY_NODECODE which can be used inside the ASN.1 file in order to generate Java code that will not decod nor encode elements of these types. - clarified licenses of dependencies. - jasn1-compiler is now GPLv3 in order to compatible with Apache 2.0 of BinaryNotes. - jasn1-ber continues to be LGPLv2.1 or later - libs are now in the central maven repository v1.1.4 03-Jul-2013 ------------------ - generated classes are declared final for better performance - BerByteArrayOutputstream can be reset using reset() for reuse v1.1.3 23-Aug-2012 ------------------ - allow decoding of empty object identifiers v1.1.2 14-Mai-2012 ------------------ - improved efficiency in BerVisibleString - modified BerBitString so it can be empty when decoded v1.1.1 20-Feb-2012 ------------------ - fix in BerIdentifier.decodeAndCheck(), thanks to Mr.Bostijancic from TU-Wien v1.1.0 14-Feb-2012 ------------------ - the default tagging can now be changed to implicit using the following kind of statement: SAMPLE DEFINITIONS IMPLICIT TAGS ::= ... - the character '-' is now replaced by the '_' character in the name of Java classes - support for indefinit length when decoding (not for encoding), has to explicitely enabled using the -il option - SEQUENCE elements of type CHOICE that have not explicit tag are now supported by jASN1 - CHOICEs can now have sub CHOICES without tags. Only a warning is printed that this could one CHOICE could be integrated into another for better performance v1.0.7 06-Feb-2012 ------------------ - minor changes to gradle build file - bug fix in decoding empty OctetString v1.0.6 01-Feb-2012 ------------------ - added a Windows batch file to execute jasn1-compiler in Windows v1.0.5 30-Jan-2012 ------------------ - fixed another bug in decoding of negative numbers v1.0.4 27-Jan-2012 ------------------ - fixed bug in decoding of negative integers in BerInteger v1.0.3 19-Jan-2012 ------------------ - modified BerByteArrayOutputStream so its buffer and index are public and added two new constructors v1.0.2 17-Jan-2012 ------------------ - added BerBitString(byte[]) constructor v1.0.1 13-Jan-2012 ------------------ - fixed bug in coding of several byte length field 1.0.0 06-Dec-2011 ----------------- - added getByteBuffer() function for BerByteArrayOutputStream so arrays don't always have to be copied - add code byte array and encodeAndSave function to all structures for better encoding performance when encoding the same structure several times - numerous bug fixes - all basic types are now supported 0.9.0 21-Nov-2011 ----------------- - first version