Common ways of storing structured data are TLV formats: Tag, Length, Value.

While ASN.1 is the dominant (and arguably best) TLV format, there are many variations, especially in the field of cryptography and smart cards.

Accessing TLV structures can be done with full mapping into classes; this has its uses, but often you have no guarantee the data will fully match your expectations. What happens to optional fields, how are newer version with new tags handled?

A more flexible approach is to use the Iterator design pattern to access those parts of a TLV structure that are actually needed and understood by the respective software component.

This library aims to cover all existing binary TLV formats, starting with ASN.1 and its derivatives.


Current version

TLVIterator's pom.xml

Previous versions



Maven artifact description of TLVIterator:


The Java version of this library is provided as a download, consisting of a JAR archive and the associated POM file. Installion into the local maven repositories is then done with:

mvn install:install-file -Dfile=<path-to-JAR>

For versions of maven before 2.5, download the POM file as well, and add it with:

mvn install:install-file -Dfile=<path-to-JAR> -DpomFile=<path-to-pomfile>


Currently, this library is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.

This means in simplified words:

You may

  • copy and redistribute the material in any medium or format
  • use it in commercial projects free of charge
  • distribute it with your product.

You have to

  • give appropriate credit
  • provide a link to the license.

You may not

  • change the library and distribute the changed result
  • Local changes are OK, but distributing them is not.

If there are changes you'd like to see in this library, send your suggestions, bug reports etc. (no source code, patented or copyrighted material) to tlviterator at metabit dot org.

Creative Commons Licence
TLViterator by metabit is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International License.

In the future, this library/software component may be released under one of the more widespread licenses like APL as well.