Releases: flexca/eNot
Releases · flexca/eNot
v1.0.0
enot-core
Version 1.0.0 is released and available on Maven Central.
<dependency>
<groupId>io.github.flexca</groupId>
<artifactId>enot-core</artifactId>
<version>1.0.0</version>
</dependency>ASN.1 DER encoding
- JSON and YAML template support for describing binary structures
- Parameterised placeholder syntax (
${name}) with runtime value substitution optionalelement flag — silently skips elements whose value is absent from the params map- Nested element bodies — the encoded output of one element can be the body of another
- Scope-aware placeholder resolution: loop scope, group scope, and
global.prefix for top-level access
Structural tags
sequence— DER SEQUENCE, ordered collection of child elementsset— DER SET, unordered collection
Primitive tags
object_identifier— dotted-decimal OID; supportsallowed_valuesvalidationboolean— DER BOOLEAN (true→0xFF,false→0x00)integer— DER INTEGER, supports int / long / BigInteger valuesoctet_string— DER OCTET STRING; supportsmin_length/max_lengthconstraintsbit_string— DER BIT STRING; supportsapply_paddingfor named-bit-list typesnull— DER NULL (05 00), no body required
String tags — all support min_length, max_length, and allowed_values constraints
utf8_string— full Unicode (UTF-8)printable_string— PrintableString character setia5_string— 7-bit ASCII (IA5)visible_string— printable ASCII (VisibleString)bmp_string— UCS-2 / BMP plane (U+0000–U+FFFF)
Time tags
generalized_time— DER GeneralizedTime (required for dates ≥ 2050 per RFC 5280)utc_time— DER UTCTime (required for dates before 2050 per RFC 5280)
Context-tagging
tagged_object— wraps body in a context-specific[n]tag; supportsimplicitandexplicittagging
System elements
group— pushes a named sub-object scopeloop— iterates over a list parameter, encoding the body element once per entrycondition— conditionally includes a child element based on a boolean expressionreference— resolves a named template from the registry and encodes it inlinehex_to_bin— decodes a hex string into raw bytesbin_to_hex— encodes raw bytes as a hex stringsha1— computes the SHA-1 digest of the body bytesbit_map— assembles a bitmask from a list of named boolean flags
Extensibility
EnotRegistry/EnotRegistry.Builder— registry for type specifications and named templatesTypeSpecificationSPI — register custom element types without modifying the libraryAsn1TypeSpecification— bundles all 16 ASN.1 tags; register once to enable allSystemTypeSpecification— bundles all 8 system elements; register once to enable all
enot-ber-tlv
Version 1.0.0 is released and available on Maven Central.
<dependency>
<groupId>io.github.flexca</groupId>
<artifactId>enot-ber-tlv</artifactId>
<version>1.0.0</version>
</dependency>- Pluggable BER-TLV encoding support
enot-web-tool
Version 1.0.0 Docker image is available on Docker Hub.
docker pull flexca/enot-web-tool:1.0.0
docker run -p 8080:8080 flexca/enot-web-tool:1.0.0Open http://localhost:8080 in your browser.
- Browser-based serialization playground
- Side-by-side Template and Params editors with YAML / JSON format switching
- Example Params button — auto-generates a params skeleton from the current template
- Base64-encoded output display
- Inline error panel for template and serialization errors
- Runnable via Docker or as a standalone JAR