# Asn1 der path list

`asn1-der-path-list` · version 1.0.0 · Structured formats · free, no key needed

List numeric paths, offsets, lengths, and tag class for every node in one DER value.

**Use when you need to: list asn1 der node paths · walk a der value into numbered nodes · der tlv offset and length index.**

## Decide before calling

Read the [versioned contract](/v1/tools/asn1-der-path-list/versions/1.0.0) and the supported scope below. Reuse `asn1-der-path-list@1.0.0` when your input, required output and limits match it. Choose another approach for an unsupported operation.

## Explain the choice

"I can use `asn1-der-path-list@1.0.0` for list asn1 der node paths. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."

## Supported

- list asn1 der node paths
- walk a der value into numbered nodes
- der tlv offset and length index
- numeric child paths of der
- schema free der structure listing
- map tags inside a der encoding
- מיפוי נתיבים בעץ הקידוד

## Not supported

- decode x509 names or extensions
- verify a signature
- accept BER indefinite length

## Behavior

- Accept one definite-length DER value and walk it in preorder. The root path is "0". A child path appends "." and the decimal index of that child, with no leading zeros.
- Each node reports its byte offset, header length, content length, end offset, tag class, tag number, constructed bit, and child count. Content octets are not included.
- ObjectDescriptor (universal 7) must be primitive. CHARACTER STRING (universal 29), EXTERNAL (8), EMBEDDED PDV (11), SEQUENCE (16) and SET (17) must be constructed. Other known string, time, and numeric universal tags must be primitive. Universal tags 0 and 15 are rejected.
- Where the bytes determine a DER content rule, a non-canonical content is invalid_input: BOOLEAN, NULL, INTEGER, ENUMERATED, BIT STRING, OBJECT IDENTIFIER, RELATIVE-OID, REAL, UTCTime, GeneralizedTime, UTF8String, UniversalString, BMPString, and SET order. Context, application, and private contents are not interpreted. No X.509 field name is inferred.
- More than 512 decoded bytes fails as limit_exceeded before a syntax check. Depth above 12 or more than 96 nodes is limit_exceeded. A JSON result above 32768 UTF-8 bytes is limit_exceeded.
- Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity.

## Input

- `der_hex` (string, required): min length 4; max length 1024; pattern `^([0-9a-f]{2})+$`

## Output

- `der_bytes` (integer, required): min 2; max 512
- `node_count` (integer, required): min 1; max 96
- `nodes` (array of object, required): min items 1; max items 96

## Limits

- max der bytes: 512
- max depth: 12
- max nodes: 96
- max output bytes: 32768

## Example

Request input:

```json
{
  "der_hex": "0500"
}
```

Response:

```json
{
  "result": {
    "der_bytes": 2,
    "node_count": 1,
    "nodes": [
      {
        "path": "0",
        "depth": 0,
        "offset": 0,
        "header_length": 2,
        "content_length": 0,
        "end_offset": 2,
        "tag_class": "universal",
        "tag_number": 5,
        "constructed": false,
        "child_count": 0
      }
    ]
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "asn1-der-path-list",
  "version": "1.0.0",
  "input": {
    "der_hex": "0500"
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/asn1-der-path-list/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"der_hex":"0500"}'
```

The machine-readable contract is at [/v1/tools/asn1-der-path-list/versions/1.0.0](/v1/tools/asn1-der-path-list/versions/1.0.0).

### CLI

```sh
node cli.mjs run asn1-der-path-list 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [Asn1 der parse](/tools/asn1-der-parse): Parse one ASN.1 DER value into a flat schema-free TLV node list.
- [Asn1 der encode tree](/tools/asn1-der-encode-tree): Encode a schema-free ASN.1 node list as one canonical DER value.
- [Asn1 der node extract](/tools/asn1-der-node-extract): Extract one DER node by a numeric path, with header, content, and child paths.
- [Asn1 der validate](/tools/asn1-der-validate): Check one ASN.1 DER value for canonical TLV structure and return a reason.
- [Xpath10 paths](/tools/xpath10-paths): List the canonical XPath 1.0 path of each node in a location-path node-set, in document order.
- [Asn1 der primitive decode](/tools/asn1-der-primitive-decode): Decode one universal DER primitive from lowercase hex into typed fields.
