1
1
mirror of https://github.com/wader/fq.git synced 2024-12-23 13:22:58 +03:00

Pull latest from wader

This commit is contained in:
Xentripetal 2022-02-07 17:35:33 -06:00
commit 5b11385ea4
424 changed files with 12501 additions and 2706 deletions

38
.github/ISSUE_TEMPLATE/issue.md vendored Normal file
View File

@ -0,0 +1,38 @@
---
name: Problem
about: Problem with tool or format
---
<!--
Please answer these questions if possible before submitting your issue. Thanks!
-->
### What version are you using (`fq -v`)?
<pre>
$ fq -v
</pre>
### How was fq installed?
<!--
Please describe how/from what source fq was installed, for example using
FreeBSD ports, Alpine experimental repository or manually built from source
-->
### Can you reproduce the problem using the latest release or master branch?
### What did you do?
<!--
Please provide command line arguments, jq script, command output etc.
If possible please attach or share link to affected example files.
To get more information about what is going on you can try to force a format and
ask for verbose output using "fq -d <format> dv file"
-->
### What result did you expect?
### What did you see instead?

View File

@ -7,7 +7,7 @@ on:
pull_request:
env:
GOLANGCILINT_VERSION: 1.43.0
GOLANGCILINT_VERSION: 1.44.0
jobs:
lint:

View File

@ -30,8 +30,16 @@ linters-settings:
- rela
- equalisation
- synchronisation
exhaustive:
default-signifies-exhaustive: true
gosec:
excludes:
# allow md5
- G401
- G501
issues:
exclude-rules:
- path: dev/.*\.go
linters:
# ignore main re-declared errors
- typecheck

View File

@ -34,6 +34,8 @@ archives:
format_overrides:
- goos: windows
format: zip
- goos: darwin
format: zip
replacements:
darwin: macos
@ -47,12 +49,13 @@ changelog:
- "^Merge"
brews:
- tap:
- skip_upload: auto
tap:
owner: wader
name: homebrew-tap
folder: Formula
homepage: https://github.com/wader/fq
description: jq for binaries
description: jq for binary formats
license: MIT
test: |
system "#{bin}/fq -v"

View File

@ -17,10 +17,6 @@ testgo: PKGS=$(shell find . -name "*_test.go" | xargs -n 1 dirname | sort | uniq
testgo:
go test ${GO_TEST_RACE_FLAGS} ${VERBOSE} ${COVER} ${PKGS}
.PHONY: testgov
testgov: export VERBOSE=-v
testgov: testgo
.PHONY: testjq
testjq: fq
@pkg/interp/testjq.sh ./fq pkg/interp/*_test.jq
@ -29,10 +25,6 @@ testjq: fq
testcli: fq
@pkg/cli/test.sh ./fq pkg/cli/test.exp
.PHONY: actual
actual: export WRITE_ACTUAL=1
actual: testgo
.PHONY: cover
cover: COVER=-cover -coverpkg=./... -coverprofile=cover.out
cover: test
@ -40,12 +32,15 @@ cover: test
cat cover.out.html | grep '<option value="file' | sed -E 's/.*>(.*) \((.*)%\)<.*/\2 \1/' | sort -rn
.PHONY: doc
doc: fq doc/file.mp3 doc/file.mp4 doc/formats.svg doc/demo.svg
doc: doc/formats.svg doc/demo.svg
doc: doc/display_json.svg
doc: doc/display_decode_value.svg
doc: doc/display_decode_value_d.svg
doc: doc/display_decode_value_dv.svg
@doc/mdsh.sh ./fq *.md doc/*.md
.PHONY: doc/demo.svg
doc/demo.svg: fq
(cd doc ; ./demo.sh ../fq) | go run github.com/wader/ansisvg@master > doc/demo.svg
doc/%.svg: doc/%.sh fq
(cd doc ; ../$< ../fq) | go run github.com/wader/ansisvg@master > $@
.PHONY: doc/formats.svg
doc/formats.svg: fq
@ -65,7 +60,7 @@ gogenerate:
.PHONY: lint
lint:
# bump: make-golangci-lint /golangci-lint@v([\d.]+)/ git:https://github.com/golangci/golangci-lint.git|^1
go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.43.0 run
go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.44.0 run
.PHONY: depgraph.svg
depgraph.svg:
@ -85,7 +80,7 @@ memprof: prof
cpuprof: prof
go tool pprof -http :5555 fq.prof fq.cpu.prof
.PHONY: update-gomodreplace
.PHONY: update-gomod
update-gomod:
GOPROXY=direct go get -d github.com/wader/readline@fq
GOPROXY=direct go get -d github.com/wader/gojq@fq
@ -96,7 +91,7 @@ update-gomod:
.PHONY: fuzz
fuzz:
# in other terminal: tail -f /tmp/repanic
REPANIC_LOG=/tmp/repanic gotip test -tags fuzz -v -fuzz=Fuzz ./format/
REPANIC_LOG=/tmp/repanic gotip test -tags fuzz -v -run Fuzz -fuzz=Fuzz ./format/
# usage: make release VERSION=0.0.1
# tag forked dependeces for history and to make then stay around
@ -114,7 +109,7 @@ release:
@echo
@echo "sed 's/version = "\\\(.*\\\)"/version = \"${VERSION}\"/' fq.go > fq.go.new && mv fq.go.new fq.go"
@echo git add fq.go
@echo git commit -m "fq: Update version to ${VERSION}"
@echo git commit -m \"fq: Update version to ${VERSION}\"
@echo git push wader master
@echo
@echo "# make sure head master commit CI was successful"

163
README.md
View File

@ -18,91 +18,17 @@ That also means that there is a great opportunity to help out!
### Goals
- Make binary formats accessible and queryable.
- Make binaries accessible, queryable and sliceable.
- Nested formats and bit-oriented decoding.
- Quick and comfortable CLI tool.
- Bits and bytes transformations.
### Hopes
- Make it useful enough that people want to help improve it.
- Inspire people to create similar tools.
## Usage
Basic usage is `fq . file`.
For more details see [usage.md](doc/usage.md)
## Install
Download [release](https://github.com/wader/fq/releases) for your
platform, unarchive it and move the executable to `PATH` etc.
### Homebrew
```sh
# install latest release
brew install wader/tap/fq
```
### Arch Linux
`fq` can be installed from the [community repository](https://archlinux.org/packages/community/x86_64/fq/) using [pacman](https://wiki.archlinux.org/title/Pacman):
```sh
pacman -S fq
```
You can also build and install the development (VCS) package using an [AUR helper](https://wiki.archlinux.org/index.php/AUR_helpers):
```sh
paru -S fq-git
```
### Nix
```sh
nix-shell -p fq
```
### FreeBSD
Use the [fq](https://cgit.freebsd.org/ports/tree/misc/fq) port.
### Alpine
Currently in edge testing but should work fine in stable also.
```
apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing fq
```
### Build from source
Make sure you have go 1.17 or later installed.
To install directly from git repository do:
```sh
# build and install latest release
go install github.com/wader/fq@latest
# or build and install latest master
go install github.com/wader/fq@master
# copy binary to $PATH if needed
cp "$(go env GOPATH)/bin/fq" /usr/local/bin
```
To build and run tests from source directory:
```sh
make test fq
# copy binary to $PATH if needed
cp fq /usr/local/bin
# it's also possible to use go run
go run fq.go
```
## Supported formats
### Supported formats
[./formats_list.jq]: sh-start
@ -111,6 +37,7 @@ adts,
adts_frame,
apev2,
ar,
asn1_ber,
av1_ccr,
av1_frame,
av1_obu,
@ -194,6 +121,88 @@ zip
For details see [formats.md](doc/formats.md)
## Usage
Basic usage is `fq . file`.
For more details see [usage.md](doc/usage.md)
## Install
Use one of the methods listed below or download [release](https://github.com/wader/fq/releases)
for your platform. Unarchive it and move the executable to `PATH` etc.
On macOS if don't install using a method below you might have to manually allow the binary to run.
This can be done by trying to run the binary, ignore the warning and then go into security preference
and allow it. Or you can run this command:
```sh
xattr -d com.apple.quarantine fq && spctl --add fq
```
### Homebrew
```sh
# install latest release
brew install wader/tap/fq
```
### Arch Linux
`fq` can be installed from the [community repository](https://archlinux.org/packages/community/x86_64/fq/) using [pacman](https://wiki.archlinux.org/title/Pacman):
```sh
pacman -S fq
```
You can also build and install the development (VCS) package using an [AUR helper](https://wiki.archlinux.org/index.php/AUR_helpers):
```sh
paru -S fq-git
```
### Nix
```sh
nix-shell -p fq
```
### FreeBSD
Use the [fq](https://cgit.freebsd.org/ports/tree/misc/fq) port.
### Alpine
Currently in edge testing but should work fine in stable also.
```
apk add -X http://dl-cdn.alpinelinux.org/alpine/edge/testing fq
```
### Build from source
Make sure you have go 1.17 or later installed.
To install directly from git repository do:
```sh
# build and install latest release
go install github.com/wader/fq@latest
# or build and install latest master
go install github.com/wader/fq@master
# copy binary to $PATH if needed
cp "$(go env GOPATH)/bin/fq" /usr/local/bin
```
To run and run tests from source directory:
```sh
# run all tests and build binary
make test fq
# it's also possible to use go run
go run fq.go
```
## TODO and ideas
See [TODO.md](doc/TODO.md)

32
dev/fuzzbytes.go Normal file
View File

@ -0,0 +1,32 @@
// tool to convert go fuzz input files to bytes
// Usage: cat format/testdata/fuzz/FuzzFormats/144bde49b40c90fd05d302ec90b6ddb2b6d6aea553bad520a8b954797e40fe72 | go run dev/fuzzbytes.go | go run fq.go
package main
import (
"bytes"
"io/ioutil"
"os"
"strconv"
)
func main() {
bs, err := ioutil.ReadAll(os.Stdin)
if err != nil {
panic(err)
}
// Input looks like this:
// go test fuzz v1
// []byte("...")
prefix := []byte("[]byte(")
start := bytes.Index(bs, prefix) + len(prefix)
end := len(bs) - 2
s, err := strconv.Unquote(string(bs[start:end]))
if err != nil {
panic(err)
}
if _, err := os.Stdout.Write([]byte(s)); err != nil {
panic(err)
}
}

View File

@ -34,11 +34,11 @@ Flags can be struct with bit-fields.
### Development tips
I ususally use `-d <format>` and `v` while developing, that way you will get a decode tree
even if it fails. `v` gives verbose output and also includes stacktrace.
I ususally use `-d <format>` and `dv` while developing, that way you will get a decode tree
even if it fails. `dv` gives verbose output and also includes stacktrace.
```sh
go run fq.go -d <format> v file
go run fq.go -d <format> dv file
```
If the format is inside some other format it can be handy to first extract the bits and run
@ -46,7 +46,7 @@ the decode directly. For example if working a `aac_frame` decoder issue:
```sh
fq '.tracks[0].samples[1234] | tobytes' file.mp4 > aac_frame_1234
fq -d aac_frame v aac_frame_1234
fq -d aac_frame dv aac_frame_1234
```
Sometimes nested decoding fails then maybe a good way is to change the parent decoder to
@ -58,7 +58,7 @@ make things more comfortable. Also using vscode/delve for debugging should work
launch `args` are setup etc.
```
watchexec "go run fq.go -d aac_frame v aac_frame"
watchexec "go run fq.go -d aac_frame dv aac_frame"
```
Some different ways to run tests:
@ -70,7 +70,7 @@ go test ./...
# run all tests for one format
go test -run TestFQTests/mp4 ./format/
# write all actual outputs
make actual
WRITE_ACTUAL=1 go test ./...
# write actual output for specific tests
WRITE_ACTUAL=1 go run -run ...
# color diff
@ -150,11 +150,7 @@ aheadreadseeker.Reader does readahead caching
^
| (io.ReadSeeker interface)
|
bitio.Reader (implements bitio.Bit* interfaces)
^
| (bitio.Bit* interfaces)
|
bitio.Buffer convenience wrapper to read bytes from bit reader, create section readers etc
bitio.IOBitReader (implements bitio.Bit* interfaces)
SectionBitReader
MultiBitReader
```

10
doc/display_decode_value.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
FQ="$1"
s() {
echo "\$ $1"
sh -c "${1/fq/$FQ -o unicode=true -C}"
}
s "fq 'first(grep_by(.type == \"elst\"))' file.mp4"

View File

@ -0,0 +1,380 @@
<svg viewBox="0 0 880 160" width="880" height="160" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
rect { shape-rendering: crispEdges; }
text {
dominant-baseline: text-before-edge;
white-space: pre;
font: 14px monospace;
fill: #bbbbbb;
}
.u { text-decoration: underline; }
</style>
<rect width="100%" height="100%" x="0" y="0" style="fill: #000000"/>
<text x="0" y="0">$</text>
<text x="16" y="0">f</text>
<text x="24" y="0">q</text>
<text x="40" y="0">&#39;</text>
<text x="48" y="0">f</text>
<text x="56" y="0">i</text>
<text x="64" y="0">r</text>
<text x="72" y="0">s</text>
<text x="80" y="0">t</text>
<text x="88" y="0">(</text>
<text x="96" y="0">g</text>
<text x="104" y="0">r</text>
<text x="112" y="0">e</text>
<text x="120" y="0">p</text>
<text x="128" y="0">_</text>
<text x="136" y="0">b</text>
<text x="144" y="0">y</text>
<text x="152" y="0">(</text>
<text x="160" y="0">.</text>
<text x="168" y="0">t</text>
<text x="176" y="0">y</text>
<text x="184" y="0">p</text>
<text x="192" y="0">e</text>
<text x="208" y="0">=</text>
<text x="216" y="0">=</text>
<text x="232" y="0">&#34;</text>
<text x="240" y="0">e</text>
<text x="248" y="0">l</text>
<text x="256" y="0">s</text>
<text x="264" y="0">t</text>
<text x="272" y="0">&#34;</text>
<text x="280" y="0">)</text>
<text x="288" y="0">)</text>
<text x="296" y="0">&#39;</text>
<text x="312" y="0">f</text>
<text x="320" y="0">i</text>
<text x="328" y="0">l</text>
<text x="336" y="0">e</text>
<text x="344" y="0">.</text>
<text x="352" y="0">m</text>
<text x="360" y="0">p</text>
<text x="368" y="0">4</text>
<text x="40" y="16"></text>
<text x="48" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="56" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="64" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="72" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="80" y="16" style="fill: #bbbb00" class="u">1</text>
<text x="88" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="96" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="104" y="16" style="fill: #bbbb00" class="u">2</text>
<text x="112" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="120" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="128" y="16" style="fill: #bbbb00" class="u">3</text>
<text x="136" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="144" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="152" y="16" style="fill: #bbbb00" class="u">4</text>
<text x="160" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="168" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="176" y="16" style="fill: #bbbb00" class="u">5</text>
<text x="184" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="192" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="200" y="16" style="fill: #bbbb00" class="u">6</text>
<text x="208" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="216" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="224" y="16" style="fill: #bbbb00" class="u">7</text>
<text x="232" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="240" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="248" y="16" style="fill: #bbbb00" class="u">8</text>
<text x="256" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="264" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="272" y="16" style="fill: #bbbb00" class="u">9</text>
<text x="280" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="288" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="296" y="16" style="fill: #bbbb00" class="u">a</text>
<text x="304" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="312" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="320" y="16" style="fill: #bbbb00" class="u">b</text>
<text x="328" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="336" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="344" y="16" style="fill: #bbbb00" class="u">c</text>
<text x="352" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="360" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="368" y="16" style="fill: #bbbb00" class="u">d</text>
<text x="376" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="384" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="392" y="16" style="fill: #bbbb00" class="u">e</text>
<text x="400" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="408" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="416" y="16" style="fill: #bbbb00" class="u">f</text>
<text x="424" y="16"></text>
<text x="432" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="440" y="16" style="fill: #bbbb00" class="u">1</text>
<text x="448" y="16" style="fill: #bbbb00" class="u">2</text>
<text x="456" y="16" style="fill: #bbbb00" class="u">3</text>
<text x="464" y="16" style="fill: #bbbb00" class="u">4</text>
<text x="472" y="16" style="fill: #bbbb00" class="u">5</text>
<text x="480" y="16" style="fill: #bbbb00" class="u">6</text>
<text x="488" y="16" style="fill: #bbbb00" class="u">7</text>
<text x="496" y="16" style="fill: #bbbb00" class="u">8</text>
<text x="504" y="16" style="fill: #bbbb00" class="u">9</text>
<text x="512" y="16" style="fill: #bbbb00" class="u">a</text>
<text x="520" y="16" style="fill: #bbbb00" class="u">b</text>
<text x="528" y="16" style="fill: #bbbb00" class="u">c</text>
<text x="536" y="16" style="fill: #bbbb00" class="u">d</text>
<text x="544" y="16" style="fill: #bbbb00" class="u">e</text>
<text x="552" y="16" style="fill: #bbbb00" class="u">f</text>
<text x="560" y="16"></text>
<text x="568" y="16">.</text>
<text x="576" y="16" style="fill: #5555ff">b</text>
<text x="584" y="16" style="fill: #5555ff">o</text>
<text x="592" y="16" style="fill: #5555ff">x</text>
<text x="600" y="16" style="fill: #5555ff">e</text>
<text x="608" y="16" style="fill: #5555ff">s</text>
<text x="616" y="16">[</text>
<text x="624" y="16" style="fill: #00bbbb">3</text>
<text x="632" y="16">]</text>
<text x="640" y="16">.</text>
<text x="648" y="16" style="fill: #5555ff">b</text>
<text x="656" y="16" style="fill: #5555ff">o</text>
<text x="664" y="16" style="fill: #5555ff">x</text>
<text x="672" y="16" style="fill: #5555ff">e</text>
<text x="680" y="16" style="fill: #5555ff">s</text>
<text x="688" y="16">[</text>
<text x="696" y="16" style="fill: #00bbbb">1</text>
<text x="704" y="16">]</text>
<text x="712" y="16">.</text>
<text x="720" y="16" style="fill: #5555ff">b</text>
<text x="728" y="16" style="fill: #5555ff">o</text>
<text x="736" y="16" style="fill: #5555ff">x</text>
<text x="744" y="16" style="fill: #5555ff">e</text>
<text x="752" y="16" style="fill: #5555ff">s</text>
<text x="760" y="16">[</text>
<text x="768" y="16" style="fill: #00bbbb">1</text>
<text x="776" y="16">]</text>
<text x="784" y="16">.</text>
<text x="792" y="16" style="fill: #5555ff">b</text>
<text x="800" y="16" style="fill: #5555ff">o</text>
<text x="808" y="16" style="fill: #5555ff">x</text>
<text x="816" y="16" style="fill: #5555ff">e</text>
<text x="824" y="16" style="fill: #5555ff">s</text>
<text x="832" y="16">[</text>
<text x="840" y="16" style="fill: #00bbbb">0</text>
<text x="848" y="16">]</text>
<text x="856" y="16">{</text>
<text x="864" y="16">}</text>
<text x="872" y="16">:</text>
<text x="0" y="32" style="fill: #bbbb00">0</text>
<text x="8" y="32" style="fill: #bbbb00">x</text>
<text x="16" y="32" style="fill: #bbbb00">d</text>
<text x="24" y="32" style="fill: #bbbb00">6</text>
<text x="32" y="32" style="fill: #bbbb00">0</text>
<text x="40" y="32"></text>
<text x="168" y="32" style="fill: #555555">0</text>
<text x="176" y="32" style="fill: #555555">0</text>
<text x="192" y="32" style="fill: #555555">0</text>
<text x="200" y="32" style="fill: #555555">0</text>
<text x="216" y="32" style="fill: #555555">0</text>
<text x="224" y="32" style="fill: #555555">0</text>
<text x="240" y="32" style="fill: #ffffff">1</text>
<text x="248" y="32" style="fill: #ffffff">c</text>
<text x="424" y="32"></text>
<text x="472" y="32" style="fill: #555555">.</text>
<text x="480" y="32" style="fill: #555555">.</text>
<text x="488" y="32" style="fill: #555555">.</text>
<text x="496" y="32" style="fill: #ffffff">.</text>
<text x="560" y="32"></text>
<text x="584" y="32" style="fill: #5555ff">s</text>
<text x="592" y="32" style="fill: #5555ff">i</text>
<text x="600" y="32" style="fill: #5555ff">z</text>
<text x="608" y="32" style="fill: #5555ff">e</text>
<text x="616" y="32">:</text>
<text x="632" y="32" style="fill: #00bbbb">2</text>
<text x="640" y="32" style="fill: #00bbbb">8</text>
<text x="0" y="48" style="fill: #bbbb00">0</text>
<text x="8" y="48" style="fill: #bbbb00">x</text>
<text x="16" y="48" style="fill: #bbbb00">d</text>
<text x="24" y="48" style="fill: #bbbb00">6</text>
<text x="32" y="48" style="fill: #bbbb00">0</text>
<text x="40" y="48"></text>
<text x="264" y="48">6</text>
<text x="272" y="48">5</text>
<text x="288" y="48">6</text>
<text x="296" y="48">c</text>
<text x="312" y="48">7</text>
<text x="320" y="48">3</text>
<text x="336" y="48">7</text>
<text x="344" y="48">4</text>
<text x="424" y="48"></text>
<text x="504" y="48">e</text>
<text x="512" y="48">l</text>
<text x="520" y="48">s</text>
<text x="528" y="48">t</text>
<text x="560" y="48"></text>
<text x="584" y="48" style="fill: #5555ff">t</text>
<text x="592" y="48" style="fill: #5555ff">y</text>
<text x="600" y="48" style="fill: #5555ff">p</text>
<text x="608" y="48" style="fill: #5555ff">e</text>
<text x="616" y="48">:</text>
<text x="632" y="48" style="fill: #00bb00">&#34;</text>
<text x="640" y="48" style="fill: #00bb00">e</text>
<text x="648" y="48" style="fill: #00bb00">l</text>
<text x="656" y="48" style="fill: #00bb00">s</text>
<text x="664" y="48" style="fill: #00bb00">t</text>
<text x="672" y="48" style="fill: #00bb00">&#34;</text>
<text x="688" y="48">(</text>
<text x="696" y="48">A</text>
<text x="704" y="48">n</text>
<text x="720" y="48">e</text>
<text x="728" y="48">d</text>
<text x="736" y="48">i</text>
<text x="744" y="48">t</text>
<text x="760" y="48">l</text>
<text x="768" y="48">i</text>
<text x="776" y="48">s</text>
<text x="784" y="48">t</text>
<text x="792" y="48">)</text>
<text x="0" y="64" style="fill: #bbbb00">0</text>
<text x="8" y="64" style="fill: #bbbb00">x</text>
<text x="16" y="64" style="fill: #bbbb00">d</text>
<text x="24" y="64" style="fill: #bbbb00">6</text>
<text x="32" y="64" style="fill: #bbbb00">0</text>
<text x="40" y="64"></text>
<text x="360" y="64" style="fill: #555555">0</text>
<text x="368" y="64" style="fill: #555555">0</text>
<text x="424" y="64"></text>
<text x="536" y="64" style="fill: #555555">.</text>
<text x="560" y="64"></text>
<text x="584" y="64" style="fill: #5555ff">v</text>
<text x="592" y="64" style="fill: #5555ff">e</text>
<text x="600" y="64" style="fill: #5555ff">r</text>
<text x="608" y="64" style="fill: #5555ff">s</text>
<text x="616" y="64" style="fill: #5555ff">i</text>
<text x="624" y="64" style="fill: #5555ff">o</text>
<text x="632" y="64" style="fill: #5555ff">n</text>
<text x="640" y="64">:</text>
<text x="656" y="64" style="fill: #00bbbb">0</text>
<text x="0" y="80" style="fill: #bbbb00">0</text>
<text x="8" y="80" style="fill: #bbbb00">x</text>
<text x="16" y="80" style="fill: #bbbb00">d</text>
<text x="24" y="80" style="fill: #bbbb00">6</text>
<text x="32" y="80" style="fill: #bbbb00">0</text>
<text x="40" y="80"></text>
<text x="384" y="80" style="fill: #555555">0</text>
<text x="392" y="80" style="fill: #555555">0</text>
<text x="408" y="80" style="fill: #555555">0</text>
<text x="416" y="80" style="fill: #555555">0</text>
<text x="424" y="80"></text>
<text x="544" y="80" style="fill: #555555">.</text>
<text x="552" y="80" style="fill: #555555">.</text>
<text x="560" y="80"></text>
<text x="584" y="80" style="fill: #5555ff">f</text>
<text x="592" y="80" style="fill: #5555ff">l</text>
<text x="600" y="80" style="fill: #5555ff">a</text>
<text x="608" y="80" style="fill: #5555ff">g</text>
<text x="616" y="80" style="fill: #5555ff">s</text>
<text x="624" y="80">:</text>
<text x="640" y="80" style="fill: #00bbbb">0</text>
<text x="0" y="96" style="fill: #bbbb00">0</text>
<text x="8" y="96" style="fill: #bbbb00">x</text>
<text x="16" y="96" style="fill: #bbbb00">d</text>
<text x="24" y="96" style="fill: #bbbb00">7</text>
<text x="32" y="96" style="fill: #bbbb00">0</text>
<text x="40" y="96"></text>
<text x="48" y="96" style="fill: #555555">0</text>
<text x="56" y="96" style="fill: #555555">0</text>
<text x="424" y="96"></text>
<text x="432" y="96" style="fill: #555555">.</text>
<text x="560" y="96"></text>
<text x="0" y="112" style="fill: #bbbb00">0</text>
<text x="8" y="112" style="fill: #bbbb00">x</text>
<text x="16" y="112" style="fill: #bbbb00">d</text>
<text x="24" y="112" style="fill: #bbbb00">7</text>
<text x="32" y="112" style="fill: #bbbb00">0</text>
<text x="40" y="112"></text>
<text x="72" y="112" style="fill: #555555">0</text>
<text x="80" y="112" style="fill: #555555">0</text>
<text x="96" y="112" style="fill: #555555">0</text>
<text x="104" y="112" style="fill: #555555">0</text>
<text x="120" y="112" style="fill: #555555">0</text>
<text x="128" y="112" style="fill: #555555">0</text>
<text x="144" y="112" style="fill: #ffffff">0</text>
<text x="152" y="112" style="fill: #ffffff">1</text>
<text x="424" y="112"></text>
<text x="440" y="112" style="fill: #555555">.</text>
<text x="448" y="112" style="fill: #555555">.</text>
<text x="456" y="112" style="fill: #555555">.</text>
<text x="464" y="112" style="fill: #ffffff">.</text>
<text x="560" y="112"></text>
<text x="584" y="112" style="fill: #5555ff">e</text>
<text x="592" y="112" style="fill: #5555ff">n</text>
<text x="600" y="112" style="fill: #5555ff">t</text>
<text x="608" y="112" style="fill: #5555ff">r</text>
<text x="616" y="112" style="fill: #5555ff">y</text>
<text x="624" y="112" style="fill: #5555ff">_</text>
<text x="632" y="112" style="fill: #5555ff">c</text>
<text x="640" y="112" style="fill: #5555ff">o</text>
<text x="648" y="112" style="fill: #5555ff">u</text>
<text x="656" y="112" style="fill: #5555ff">n</text>
<text x="664" y="112" style="fill: #5555ff">t</text>
<text x="672" y="112">:</text>
<text x="688" y="112" style="fill: #00bbbb">1</text>
<text x="0" y="128" style="fill: #bbbb00">0</text>
<text x="8" y="128" style="fill: #bbbb00">x</text>
<text x="16" y="128" style="fill: #bbbb00">d</text>
<text x="24" y="128" style="fill: #bbbb00">7</text>
<text x="32" y="128" style="fill: #bbbb00">0</text>
<text x="40" y="128"></text>
<text x="168" y="128" style="fill: #555555">0</text>
<text x="176" y="128" style="fill: #555555">0</text>
<text x="192" y="128" style="fill: #555555">0</text>
<text x="200" y="128" style="fill: #555555">0</text>
<text x="216" y="128" style="fill: #555555">0</text>
<text x="224" y="128" style="fill: #555555">0</text>
<text x="240" y="128">2</text>
<text x="248" y="128">8</text>
<text x="264" y="128" style="fill: #555555">0</text>
<text x="272" y="128" style="fill: #555555">0</text>
<text x="288" y="128" style="fill: #555555">0</text>
<text x="296" y="128" style="fill: #555555">0</text>
<text x="312" y="128" style="fill: #555555">0</text>
<text x="320" y="128" style="fill: #555555">0</text>
<text x="336" y="128" style="fill: #555555">0</text>
<text x="344" y="128" style="fill: #555555">0</text>
<text x="360" y="128" style="fill: #555555">0</text>
<text x="368" y="128" style="fill: #555555">0</text>
<text x="384" y="128" style="fill: #ffffff">0</text>
<text x="392" y="128" style="fill: #ffffff">1</text>
<text x="408" y="128" style="fill: #555555">0</text>
<text x="416" y="128" style="fill: #555555">0</text>
<text x="424" y="128"></text>
<text x="472" y="128" style="fill: #555555">.</text>
<text x="480" y="128" style="fill: #555555">.</text>
<text x="488" y="128" style="fill: #555555">.</text>
<text x="496" y="128">(</text>
<text x="504" y="128" style="fill: #555555">.</text>
<text x="512" y="128" style="fill: #555555">.</text>
<text x="520" y="128" style="fill: #555555">.</text>
<text x="528" y="128" style="fill: #555555">.</text>
<text x="536" y="128" style="fill: #555555">.</text>
<text x="544" y="128" style="fill: #ffffff">.</text>
<text x="552" y="128" style="fill: #555555">.</text>
<text x="560" y="128"></text>
<text x="584" y="128" style="fill: #5555ff">e</text>
<text x="592" y="128" style="fill: #5555ff">n</text>
<text x="600" y="128" style="fill: #5555ff">t</text>
<text x="608" y="128" style="fill: #5555ff">r</text>
<text x="616" y="128" style="fill: #5555ff">i</text>
<text x="624" y="128" style="fill: #5555ff">e</text>
<text x="632" y="128" style="fill: #5555ff">s</text>
<text x="640" y="128">[</text>
<text x="648" y="128" style="fill: #00bbbb">0</text>
<text x="656" y="128">:</text>
<text x="664" y="128" style="fill: #00bbbb">1</text>
<text x="672" y="128">]</text>
<text x="680" y="128">:</text>
<text x="0" y="144" style="fill: #bbbb00">0</text>
<text x="8" y="144" style="fill: #bbbb00">x</text>
<text x="16" y="144" style="fill: #bbbb00">d</text>
<text x="24" y="144" style="fill: #bbbb00">8</text>
<text x="32" y="144" style="fill: #bbbb00">0</text>
<text x="40" y="144"></text>
<text x="48" y="144" style="fill: #555555">0</text>
<text x="56" y="144" style="fill: #555555">0</text>
<text x="424" y="144"></text>
<text x="432" y="144" style="fill: #555555">.</text>
<text x="560" y="144"></text>
</svg>

After

Width:  |  Height:  |  Size: 19 KiB

10
doc/display_decode_value_d.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
FQ="$1"
s() {
echo "\$ $1"
sh -c "${1/fq/$FQ -o unicode=true -C}"
}
s "fq 'first(grep_by(.type == \"elst\")) | d' file.mp4"

View File

@ -0,0 +1,453 @@
<svg viewBox="0 0 880 224" width="880" height="224" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
rect { shape-rendering: crispEdges; }
text {
dominant-baseline: text-before-edge;
white-space: pre;
font: 14px monospace;
fill: #bbbbbb;
}
.u { text-decoration: underline; }
</style>
<rect width="100%" height="100%" x="0" y="0" style="fill: #000000"/>
<text x="0" y="0">$</text>
<text x="16" y="0">f</text>
<text x="24" y="0">q</text>
<text x="40" y="0">&#39;</text>
<text x="48" y="0">f</text>
<text x="56" y="0">i</text>
<text x="64" y="0">r</text>
<text x="72" y="0">s</text>
<text x="80" y="0">t</text>
<text x="88" y="0">(</text>
<text x="96" y="0">g</text>
<text x="104" y="0">r</text>
<text x="112" y="0">e</text>
<text x="120" y="0">p</text>
<text x="128" y="0">_</text>
<text x="136" y="0">b</text>
<text x="144" y="0">y</text>
<text x="152" y="0">(</text>
<text x="160" y="0">.</text>
<text x="168" y="0">t</text>
<text x="176" y="0">y</text>
<text x="184" y="0">p</text>
<text x="192" y="0">e</text>
<text x="208" y="0">=</text>
<text x="216" y="0">=</text>
<text x="232" y="0">&#34;</text>
<text x="240" y="0">e</text>
<text x="248" y="0">l</text>
<text x="256" y="0">s</text>
<text x="264" y="0">t</text>
<text x="272" y="0">&#34;</text>
<text x="280" y="0">)</text>
<text x="288" y="0">)</text>
<text x="304" y="0">|</text>
<text x="320" y="0">d</text>
<text x="328" y="0">&#39;</text>
<text x="344" y="0">f</text>
<text x="352" y="0">i</text>
<text x="360" y="0">l</text>
<text x="368" y="0">e</text>
<text x="376" y="0">.</text>
<text x="384" y="0">m</text>
<text x="392" y="0">p</text>
<text x="400" y="0">4</text>
<text x="40" y="16"></text>
<text x="48" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="56" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="64" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="72" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="80" y="16" style="fill: #bbbb00" class="u">1</text>
<text x="88" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="96" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="104" y="16" style="fill: #bbbb00" class="u">2</text>
<text x="112" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="120" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="128" y="16" style="fill: #bbbb00" class="u">3</text>
<text x="136" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="144" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="152" y="16" style="fill: #bbbb00" class="u">4</text>
<text x="160" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="168" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="176" y="16" style="fill: #bbbb00" class="u">5</text>
<text x="184" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="192" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="200" y="16" style="fill: #bbbb00" class="u">6</text>
<text x="208" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="216" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="224" y="16" style="fill: #bbbb00" class="u">7</text>
<text x="232" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="240" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="248" y="16" style="fill: #bbbb00" class="u">8</text>
<text x="256" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="264" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="272" y="16" style="fill: #bbbb00" class="u">9</text>
<text x="280" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="288" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="296" y="16" style="fill: #bbbb00" class="u">a</text>
<text x="304" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="312" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="320" y="16" style="fill: #bbbb00" class="u">b</text>
<text x="328" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="336" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="344" y="16" style="fill: #bbbb00" class="u">c</text>
<text x="352" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="360" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="368" y="16" style="fill: #bbbb00" class="u">d</text>
<text x="376" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="384" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="392" y="16" style="fill: #bbbb00" class="u">e</text>
<text x="400" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="408" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="416" y="16" style="fill: #bbbb00" class="u">f</text>
<text x="424" y="16"></text>
<text x="432" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="440" y="16" style="fill: #bbbb00" class="u">1</text>
<text x="448" y="16" style="fill: #bbbb00" class="u">2</text>
<text x="456" y="16" style="fill: #bbbb00" class="u">3</text>
<text x="464" y="16" style="fill: #bbbb00" class="u">4</text>
<text x="472" y="16" style="fill: #bbbb00" class="u">5</text>
<text x="480" y="16" style="fill: #bbbb00" class="u">6</text>
<text x="488" y="16" style="fill: #bbbb00" class="u">7</text>
<text x="496" y="16" style="fill: #bbbb00" class="u">8</text>
<text x="504" y="16" style="fill: #bbbb00" class="u">9</text>
<text x="512" y="16" style="fill: #bbbb00" class="u">a</text>
<text x="520" y="16" style="fill: #bbbb00" class="u">b</text>
<text x="528" y="16" style="fill: #bbbb00" class="u">c</text>
<text x="536" y="16" style="fill: #bbbb00" class="u">d</text>
<text x="544" y="16" style="fill: #bbbb00" class="u">e</text>
<text x="552" y="16" style="fill: #bbbb00" class="u">f</text>
<text x="560" y="16"></text>
<text x="568" y="16">.</text>
<text x="576" y="16" style="fill: #5555ff">b</text>
<text x="584" y="16" style="fill: #5555ff">o</text>
<text x="592" y="16" style="fill: #5555ff">x</text>
<text x="600" y="16" style="fill: #5555ff">e</text>
<text x="608" y="16" style="fill: #5555ff">s</text>
<text x="616" y="16">[</text>
<text x="624" y="16" style="fill: #00bbbb">3</text>
<text x="632" y="16">]</text>
<text x="640" y="16">.</text>
<text x="648" y="16" style="fill: #5555ff">b</text>
<text x="656" y="16" style="fill: #5555ff">o</text>
<text x="664" y="16" style="fill: #5555ff">x</text>
<text x="672" y="16" style="fill: #5555ff">e</text>
<text x="680" y="16" style="fill: #5555ff">s</text>
<text x="688" y="16">[</text>
<text x="696" y="16" style="fill: #00bbbb">1</text>
<text x="704" y="16">]</text>
<text x="712" y="16">.</text>
<text x="720" y="16" style="fill: #5555ff">b</text>
<text x="728" y="16" style="fill: #5555ff">o</text>
<text x="736" y="16" style="fill: #5555ff">x</text>
<text x="744" y="16" style="fill: #5555ff">e</text>
<text x="752" y="16" style="fill: #5555ff">s</text>
<text x="760" y="16">[</text>
<text x="768" y="16" style="fill: #00bbbb">1</text>
<text x="776" y="16">]</text>
<text x="784" y="16">.</text>
<text x="792" y="16" style="fill: #5555ff">b</text>
<text x="800" y="16" style="fill: #5555ff">o</text>
<text x="808" y="16" style="fill: #5555ff">x</text>
<text x="816" y="16" style="fill: #5555ff">e</text>
<text x="824" y="16" style="fill: #5555ff">s</text>
<text x="832" y="16">[</text>
<text x="840" y="16" style="fill: #00bbbb">0</text>
<text x="848" y="16">]</text>
<text x="856" y="16">{</text>
<text x="864" y="16">}</text>
<text x="872" y="16">:</text>
<text x="0" y="32" style="fill: #bbbb00">0</text>
<text x="8" y="32" style="fill: #bbbb00">x</text>
<text x="16" y="32" style="fill: #bbbb00">d</text>
<text x="24" y="32" style="fill: #bbbb00">6</text>
<text x="32" y="32" style="fill: #bbbb00">0</text>
<text x="40" y="32"></text>
<text x="168" y="32" style="fill: #555555">0</text>
<text x="176" y="32" style="fill: #555555">0</text>
<text x="192" y="32" style="fill: #555555">0</text>
<text x="200" y="32" style="fill: #555555">0</text>
<text x="216" y="32" style="fill: #555555">0</text>
<text x="224" y="32" style="fill: #555555">0</text>
<text x="240" y="32" style="fill: #ffffff">1</text>
<text x="248" y="32" style="fill: #ffffff">c</text>
<text x="424" y="32"></text>
<text x="472" y="32" style="fill: #555555">.</text>
<text x="480" y="32" style="fill: #555555">.</text>
<text x="488" y="32" style="fill: #555555">.</text>
<text x="496" y="32" style="fill: #ffffff">.</text>
<text x="560" y="32"></text>
<text x="584" y="32" style="fill: #5555ff">s</text>
<text x="592" y="32" style="fill: #5555ff">i</text>
<text x="600" y="32" style="fill: #5555ff">z</text>
<text x="608" y="32" style="fill: #5555ff">e</text>
<text x="616" y="32">:</text>
<text x="632" y="32" style="fill: #00bbbb">2</text>
<text x="640" y="32" style="fill: #00bbbb">8</text>
<text x="0" y="48" style="fill: #bbbb00">0</text>
<text x="8" y="48" style="fill: #bbbb00">x</text>
<text x="16" y="48" style="fill: #bbbb00">d</text>
<text x="24" y="48" style="fill: #bbbb00">6</text>
<text x="32" y="48" style="fill: #bbbb00">0</text>
<text x="40" y="48"></text>
<text x="264" y="48">6</text>
<text x="272" y="48">5</text>
<text x="288" y="48">6</text>
<text x="296" y="48">c</text>
<text x="312" y="48">7</text>
<text x="320" y="48">3</text>
<text x="336" y="48">7</text>
<text x="344" y="48">4</text>
<text x="424" y="48"></text>
<text x="504" y="48">e</text>
<text x="512" y="48">l</text>
<text x="520" y="48">s</text>
<text x="528" y="48">t</text>
<text x="560" y="48"></text>
<text x="584" y="48" style="fill: #5555ff">t</text>
<text x="592" y="48" style="fill: #5555ff">y</text>
<text x="600" y="48" style="fill: #5555ff">p</text>
<text x="608" y="48" style="fill: #5555ff">e</text>
<text x="616" y="48">:</text>
<text x="632" y="48" style="fill: #00bb00">&#34;</text>
<text x="640" y="48" style="fill: #00bb00">e</text>
<text x="648" y="48" style="fill: #00bb00">l</text>
<text x="656" y="48" style="fill: #00bb00">s</text>
<text x="664" y="48" style="fill: #00bb00">t</text>
<text x="672" y="48" style="fill: #00bb00">&#34;</text>
<text x="688" y="48">(</text>
<text x="696" y="48">A</text>
<text x="704" y="48">n</text>
<text x="720" y="48">e</text>
<text x="728" y="48">d</text>
<text x="736" y="48">i</text>
<text x="744" y="48">t</text>
<text x="760" y="48">l</text>
<text x="768" y="48">i</text>
<text x="776" y="48">s</text>
<text x="784" y="48">t</text>
<text x="792" y="48">)</text>
<text x="0" y="64" style="fill: #bbbb00">0</text>
<text x="8" y="64" style="fill: #bbbb00">x</text>
<text x="16" y="64" style="fill: #bbbb00">d</text>
<text x="24" y="64" style="fill: #bbbb00">6</text>
<text x="32" y="64" style="fill: #bbbb00">0</text>
<text x="40" y="64"></text>
<text x="360" y="64" style="fill: #555555">0</text>
<text x="368" y="64" style="fill: #555555">0</text>
<text x="424" y="64"></text>
<text x="536" y="64" style="fill: #555555">.</text>
<text x="560" y="64"></text>
<text x="584" y="64" style="fill: #5555ff">v</text>
<text x="592" y="64" style="fill: #5555ff">e</text>
<text x="600" y="64" style="fill: #5555ff">r</text>
<text x="608" y="64" style="fill: #5555ff">s</text>
<text x="616" y="64" style="fill: #5555ff">i</text>
<text x="624" y="64" style="fill: #5555ff">o</text>
<text x="632" y="64" style="fill: #5555ff">n</text>
<text x="640" y="64">:</text>
<text x="656" y="64" style="fill: #00bbbb">0</text>
<text x="0" y="80" style="fill: #bbbb00">0</text>
<text x="8" y="80" style="fill: #bbbb00">x</text>
<text x="16" y="80" style="fill: #bbbb00">d</text>
<text x="24" y="80" style="fill: #bbbb00">6</text>
<text x="32" y="80" style="fill: #bbbb00">0</text>
<text x="40" y="80"></text>
<text x="384" y="80" style="fill: #555555">0</text>
<text x="392" y="80" style="fill: #555555">0</text>
<text x="408" y="80" style="fill: #555555">0</text>
<text x="416" y="80" style="fill: #555555">0</text>
<text x="424" y="80"></text>
<text x="544" y="80" style="fill: #555555">.</text>
<text x="552" y="80" style="fill: #555555">.</text>
<text x="560" y="80"></text>
<text x="584" y="80" style="fill: #5555ff">f</text>
<text x="592" y="80" style="fill: #5555ff">l</text>
<text x="600" y="80" style="fill: #5555ff">a</text>
<text x="608" y="80" style="fill: #5555ff">g</text>
<text x="616" y="80" style="fill: #5555ff">s</text>
<text x="624" y="80">:</text>
<text x="640" y="80" style="fill: #00bbbb">0</text>
<text x="0" y="96" style="fill: #bbbb00">0</text>
<text x="8" y="96" style="fill: #bbbb00">x</text>
<text x="16" y="96" style="fill: #bbbb00">d</text>
<text x="24" y="96" style="fill: #bbbb00">7</text>
<text x="32" y="96" style="fill: #bbbb00">0</text>
<text x="40" y="96"></text>
<text x="48" y="96" style="fill: #555555">0</text>
<text x="56" y="96" style="fill: #555555">0</text>
<text x="424" y="96"></text>
<text x="432" y="96" style="fill: #555555">.</text>
<text x="560" y="96"></text>
<text x="0" y="112" style="fill: #bbbb00">0</text>
<text x="8" y="112" style="fill: #bbbb00">x</text>
<text x="16" y="112" style="fill: #bbbb00">d</text>
<text x="24" y="112" style="fill: #bbbb00">7</text>
<text x="32" y="112" style="fill: #bbbb00">0</text>
<text x="40" y="112"></text>
<text x="72" y="112" style="fill: #555555">0</text>
<text x="80" y="112" style="fill: #555555">0</text>
<text x="96" y="112" style="fill: #555555">0</text>
<text x="104" y="112" style="fill: #555555">0</text>
<text x="120" y="112" style="fill: #555555">0</text>
<text x="128" y="112" style="fill: #555555">0</text>
<text x="144" y="112" style="fill: #ffffff">0</text>
<text x="152" y="112" style="fill: #ffffff">1</text>
<text x="424" y="112"></text>
<text x="440" y="112" style="fill: #555555">.</text>
<text x="448" y="112" style="fill: #555555">.</text>
<text x="456" y="112" style="fill: #555555">.</text>
<text x="464" y="112" style="fill: #ffffff">.</text>
<text x="560" y="112"></text>
<text x="584" y="112" style="fill: #5555ff">e</text>
<text x="592" y="112" style="fill: #5555ff">n</text>
<text x="600" y="112" style="fill: #5555ff">t</text>
<text x="608" y="112" style="fill: #5555ff">r</text>
<text x="616" y="112" style="fill: #5555ff">y</text>
<text x="624" y="112" style="fill: #5555ff">_</text>
<text x="632" y="112" style="fill: #5555ff">c</text>
<text x="640" y="112" style="fill: #5555ff">o</text>
<text x="648" y="112" style="fill: #5555ff">u</text>
<text x="656" y="112" style="fill: #5555ff">n</text>
<text x="664" y="112" style="fill: #5555ff">t</text>
<text x="672" y="112">:</text>
<text x="688" y="112" style="fill: #00bbbb">1</text>
<text x="40" y="128"></text>
<text x="424" y="128"></text>
<text x="560" y="128"></text>
<text x="584" y="128" style="fill: #5555ff">e</text>
<text x="592" y="128" style="fill: #5555ff">n</text>
<text x="600" y="128" style="fill: #5555ff">t</text>
<text x="608" y="128" style="fill: #5555ff">r</text>
<text x="616" y="128" style="fill: #5555ff">i</text>
<text x="624" y="128" style="fill: #5555ff">e</text>
<text x="632" y="128" style="fill: #5555ff">s</text>
<text x="640" y="128">[</text>
<text x="648" y="128" style="fill: #00bbbb">0</text>
<text x="656" y="128">:</text>
<text x="664" y="128" style="fill: #00bbbb">1</text>
<text x="672" y="128">]</text>
<text x="680" y="128">:</text>
<text x="40" y="144"></text>
<text x="424" y="144"></text>
<text x="560" y="144"></text>
<text x="600" y="144">[</text>
<text x="608" y="144" style="fill: #00bbbb">0</text>
<text x="616" y="144">]</text>
<text x="624" y="144">{</text>
<text x="632" y="144">}</text>
<text x="640" y="144">:</text>
<text x="0" y="160" style="fill: #bbbb00">0</text>
<text x="8" y="160" style="fill: #bbbb00">x</text>
<text x="16" y="160" style="fill: #bbbb00">d</text>
<text x="24" y="160" style="fill: #bbbb00">7</text>
<text x="32" y="160" style="fill: #bbbb00">0</text>
<text x="40" y="160"></text>
<text x="168" y="160" style="fill: #555555">0</text>
<text x="176" y="160" style="fill: #555555">0</text>
<text x="192" y="160" style="fill: #555555">0</text>
<text x="200" y="160" style="fill: #555555">0</text>
<text x="216" y="160" style="fill: #555555">0</text>
<text x="224" y="160" style="fill: #555555">0</text>
<text x="240" y="160">2</text>
<text x="248" y="160">8</text>
<text x="424" y="160"></text>
<text x="472" y="160" style="fill: #555555">.</text>
<text x="480" y="160" style="fill: #555555">.</text>
<text x="488" y="160" style="fill: #555555">.</text>
<text x="496" y="160">(</text>
<text x="560" y="160"></text>
<text x="616" y="160" style="fill: #5555ff">s</text>
<text x="624" y="160" style="fill: #5555ff">e</text>
<text x="632" y="160" style="fill: #5555ff">g</text>
<text x="640" y="160" style="fill: #5555ff">m</text>
<text x="648" y="160" style="fill: #5555ff">e</text>
<text x="656" y="160" style="fill: #5555ff">n</text>
<text x="664" y="160" style="fill: #5555ff">t</text>
<text x="672" y="160" style="fill: #5555ff">_</text>
<text x="680" y="160" style="fill: #5555ff">d</text>
<text x="688" y="160" style="fill: #5555ff">u</text>
<text x="696" y="160" style="fill: #5555ff">r</text>
<text x="704" y="160" style="fill: #5555ff">a</text>
<text x="712" y="160" style="fill: #5555ff">t</text>
<text x="720" y="160" style="fill: #5555ff">i</text>
<text x="728" y="160" style="fill: #5555ff">o</text>
<text x="736" y="160" style="fill: #5555ff">n</text>
<text x="744" y="160">:</text>
<text x="760" y="160" style="fill: #00bbbb">4</text>
<text x="768" y="160" style="fill: #00bbbb">0</text>
<text x="0" y="176" style="fill: #bbbb00">0</text>
<text x="8" y="176" style="fill: #bbbb00">x</text>
<text x="16" y="176" style="fill: #bbbb00">d</text>
<text x="24" y="176" style="fill: #bbbb00">7</text>
<text x="32" y="176" style="fill: #bbbb00">0</text>
<text x="40" y="176"></text>
<text x="264" y="176" style="fill: #555555">0</text>
<text x="272" y="176" style="fill: #555555">0</text>
<text x="288" y="176" style="fill: #555555">0</text>
<text x="296" y="176" style="fill: #555555">0</text>
<text x="312" y="176" style="fill: #555555">0</text>
<text x="320" y="176" style="fill: #555555">0</text>
<text x="336" y="176" style="fill: #555555">0</text>
<text x="344" y="176" style="fill: #555555">0</text>
<text x="424" y="176"></text>
<text x="504" y="176" style="fill: #555555">.</text>
<text x="512" y="176" style="fill: #555555">.</text>
<text x="520" y="176" style="fill: #555555">.</text>
<text x="528" y="176" style="fill: #555555">.</text>
<text x="560" y="176"></text>
<text x="616" y="176" style="fill: #5555ff">m</text>
<text x="624" y="176" style="fill: #5555ff">e</text>
<text x="632" y="176" style="fill: #5555ff">d</text>
<text x="640" y="176" style="fill: #5555ff">i</text>
<text x="648" y="176" style="fill: #5555ff">a</text>
<text x="656" y="176" style="fill: #5555ff">_</text>
<text x="664" y="176" style="fill: #5555ff">t</text>
<text x="672" y="176" style="fill: #5555ff">i</text>
<text x="680" y="176" style="fill: #5555ff">m</text>
<text x="688" y="176" style="fill: #5555ff">e</text>
<text x="696" y="176">:</text>
<text x="712" y="176" style="fill: #00bbbb">0</text>
<text x="0" y="192" style="fill: #bbbb00">0</text>
<text x="8" y="192" style="fill: #bbbb00">x</text>
<text x="16" y="192" style="fill: #bbbb00">d</text>
<text x="24" y="192" style="fill: #bbbb00">7</text>
<text x="32" y="192" style="fill: #bbbb00">0</text>
<text x="40" y="192"></text>
<text x="360" y="192" style="fill: #555555">0</text>
<text x="368" y="192" style="fill: #555555">0</text>
<text x="384" y="192" style="fill: #ffffff">0</text>
<text x="392" y="192" style="fill: #ffffff">1</text>
<text x="408" y="192" style="fill: #555555">0</text>
<text x="416" y="192" style="fill: #555555">0</text>
<text x="424" y="192"></text>
<text x="536" y="192" style="fill: #555555">.</text>
<text x="544" y="192" style="fill: #ffffff">.</text>
<text x="552" y="192" style="fill: #555555">.</text>
<text x="560" y="192"></text>
<text x="616" y="192" style="fill: #5555ff">m</text>
<text x="624" y="192" style="fill: #5555ff">e</text>
<text x="632" y="192" style="fill: #5555ff">d</text>
<text x="640" y="192" style="fill: #5555ff">i</text>
<text x="648" y="192" style="fill: #5555ff">a</text>
<text x="656" y="192" style="fill: #5555ff">_</text>
<text x="664" y="192" style="fill: #5555ff">r</text>
<text x="672" y="192" style="fill: #5555ff">a</text>
<text x="680" y="192" style="fill: #5555ff">t</text>
<text x="688" y="192" style="fill: #5555ff">e</text>
<text x="696" y="192">:</text>
<text x="712" y="192" style="fill: #00bbbb">1</text>
<text x="0" y="208" style="fill: #bbbb00">0</text>
<text x="8" y="208" style="fill: #bbbb00">x</text>
<text x="16" y="208" style="fill: #bbbb00">d</text>
<text x="24" y="208" style="fill: #bbbb00">8</text>
<text x="32" y="208" style="fill: #bbbb00">0</text>
<text x="40" y="208"></text>
<text x="48" y="208" style="fill: #555555">0</text>
<text x="56" y="208" style="fill: #555555">0</text>
<text x="424" y="208"></text>
<text x="432" y="208" style="fill: #555555">.</text>
<text x="560" y="208"></text>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

10
doc/display_decode_value_dv.sh Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
FQ="$1"
s() {
echo "\$ $1"
sh -c "${1/fq/$FQ -o unicode=true -C}"
}
s "fq 'first(grep_by(.type == \"elst\")) | dv' file.mp4"

View File

@ -0,0 +1,641 @@
<svg viewBox="0 0 1064 224" width="1064" height="224" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
rect { shape-rendering: crispEdges; }
text {
dominant-baseline: text-before-edge;
white-space: pre;
font: 14px monospace;
fill: #bbbbbb;
}
.u { text-decoration: underline; }
</style>
<rect width="100%" height="100%" x="0" y="0" style="fill: #000000"/>
<text x="0" y="0">$</text>
<text x="16" y="0">f</text>
<text x="24" y="0">q</text>
<text x="40" y="0">&#39;</text>
<text x="48" y="0">f</text>
<text x="56" y="0">i</text>
<text x="64" y="0">r</text>
<text x="72" y="0">s</text>
<text x="80" y="0">t</text>
<text x="88" y="0">(</text>
<text x="96" y="0">g</text>
<text x="104" y="0">r</text>
<text x="112" y="0">e</text>
<text x="120" y="0">p</text>
<text x="128" y="0">_</text>
<text x="136" y="0">b</text>
<text x="144" y="0">y</text>
<text x="152" y="0">(</text>
<text x="160" y="0">.</text>
<text x="168" y="0">t</text>
<text x="176" y="0">y</text>
<text x="184" y="0">p</text>
<text x="192" y="0">e</text>
<text x="208" y="0">=</text>
<text x="216" y="0">=</text>
<text x="232" y="0">&#34;</text>
<text x="240" y="0">e</text>
<text x="248" y="0">l</text>
<text x="256" y="0">s</text>
<text x="264" y="0">t</text>
<text x="272" y="0">&#34;</text>
<text x="280" y="0">)</text>
<text x="288" y="0">)</text>
<text x="304" y="0">|</text>
<text x="320" y="0">d</text>
<text x="328" y="0">v</text>
<text x="336" y="0">&#39;</text>
<text x="352" y="0">f</text>
<text x="360" y="0">i</text>
<text x="368" y="0">l</text>
<text x="376" y="0">e</text>
<text x="384" y="0">.</text>
<text x="392" y="0">m</text>
<text x="400" y="0">p</text>
<text x="408" y="0">4</text>
<text x="40" y="16"></text>
<text x="48" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="56" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="64" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="72" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="80" y="16" style="fill: #bbbb00" class="u">1</text>
<text x="88" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="96" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="104" y="16" style="fill: #bbbb00" class="u">2</text>
<text x="112" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="120" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="128" y="16" style="fill: #bbbb00" class="u">3</text>
<text x="136" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="144" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="152" y="16" style="fill: #bbbb00" class="u">4</text>
<text x="160" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="168" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="176" y="16" style="fill: #bbbb00" class="u">5</text>
<text x="184" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="192" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="200" y="16" style="fill: #bbbb00" class="u">6</text>
<text x="208" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="216" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="224" y="16" style="fill: #bbbb00" class="u">7</text>
<text x="232" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="240" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="248" y="16" style="fill: #bbbb00" class="u">8</text>
<text x="256" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="264" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="272" y="16" style="fill: #bbbb00" class="u">9</text>
<text x="280" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="288" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="296" y="16" style="fill: #bbbb00" class="u">a</text>
<text x="304" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="312" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="320" y="16" style="fill: #bbbb00" class="u">b</text>
<text x="328" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="336" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="344" y="16" style="fill: #bbbb00" class="u">c</text>
<text x="352" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="360" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="368" y="16" style="fill: #bbbb00" class="u">d</text>
<text x="376" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="384" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="392" y="16" style="fill: #bbbb00" class="u">e</text>
<text x="400" y="16" style="fill: #bbbb00" class="u"> </text>
<text x="408" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="416" y="16" style="fill: #bbbb00" class="u">f</text>
<text x="424" y="16"></text>
<text x="432" y="16" style="fill: #bbbb00" class="u">0</text>
<text x="440" y="16" style="fill: #bbbb00" class="u">1</text>
<text x="448" y="16" style="fill: #bbbb00" class="u">2</text>
<text x="456" y="16" style="fill: #bbbb00" class="u">3</text>
<text x="464" y="16" style="fill: #bbbb00" class="u">4</text>
<text x="472" y="16" style="fill: #bbbb00" class="u">5</text>
<text x="480" y="16" style="fill: #bbbb00" class="u">6</text>
<text x="488" y="16" style="fill: #bbbb00" class="u">7</text>
<text x="496" y="16" style="fill: #bbbb00" class="u">8</text>
<text x="504" y="16" style="fill: #bbbb00" class="u">9</text>
<text x="512" y="16" style="fill: #bbbb00" class="u">a</text>
<text x="520" y="16" style="fill: #bbbb00" class="u">b</text>
<text x="528" y="16" style="fill: #bbbb00" class="u">c</text>
<text x="536" y="16" style="fill: #bbbb00" class="u">d</text>
<text x="544" y="16" style="fill: #bbbb00" class="u">e</text>
<text x="552" y="16" style="fill: #bbbb00" class="u">f</text>
<text x="560" y="16"></text>
<text x="568" y="16">.</text>
<text x="576" y="16" style="fill: #5555ff">b</text>
<text x="584" y="16" style="fill: #5555ff">o</text>
<text x="592" y="16" style="fill: #5555ff">x</text>
<text x="600" y="16" style="fill: #5555ff">e</text>
<text x="608" y="16" style="fill: #5555ff">s</text>
<text x="616" y="16">[</text>
<text x="624" y="16" style="fill: #00bbbb">3</text>
<text x="632" y="16">]</text>
<text x="640" y="16">.</text>
<text x="648" y="16" style="fill: #5555ff">b</text>
<text x="656" y="16" style="fill: #5555ff">o</text>
<text x="664" y="16" style="fill: #5555ff">x</text>
<text x="672" y="16" style="fill: #5555ff">e</text>
<text x="680" y="16" style="fill: #5555ff">s</text>
<text x="688" y="16">[</text>
<text x="696" y="16" style="fill: #00bbbb">1</text>
<text x="704" y="16">]</text>
<text x="712" y="16">.</text>
<text x="720" y="16" style="fill: #5555ff">b</text>
<text x="728" y="16" style="fill: #5555ff">o</text>
<text x="736" y="16" style="fill: #5555ff">x</text>
<text x="744" y="16" style="fill: #5555ff">e</text>
<text x="752" y="16" style="fill: #5555ff">s</text>
<text x="760" y="16">[</text>
<text x="768" y="16" style="fill: #00bbbb">1</text>
<text x="776" y="16">]</text>
<text x="784" y="16">.</text>
<text x="792" y="16" style="fill: #5555ff">b</text>
<text x="800" y="16" style="fill: #5555ff">o</text>
<text x="808" y="16" style="fill: #5555ff">x</text>
<text x="816" y="16" style="fill: #5555ff">e</text>
<text x="824" y="16" style="fill: #5555ff">s</text>
<text x="832" y="16">[</text>
<text x="840" y="16" style="fill: #00bbbb">0</text>
<text x="848" y="16">]</text>
<text x="856" y="16">{</text>
<text x="864" y="16">}</text>
<text x="872" y="16">:</text>
<text x="888" y="16">b</text>
<text x="896" y="16">o</text>
<text x="904" y="16">x</text>
<text x="920" y="16">0</text>
<text x="928" y="16">x</text>
<text x="936" y="16">d</text>
<text x="944" y="16">6</text>
<text x="952" y="16">5</text>
<text x="960" y="16">-</text>
<text x="968" y="16">0</text>
<text x="976" y="16">x</text>
<text x="984" y="16">d</text>
<text x="992" y="16">8</text>
<text x="1000" y="16">0</text>
<text x="1008" y="16">.</text>
<text x="1016" y="16">7</text>
<text x="1032" y="16">(</text>
<text x="1040" y="16">2</text>
<text x="1048" y="16">8</text>
<text x="1056" y="16">)</text>
<text x="0" y="32" style="fill: #bbbb00">0</text>
<text x="8" y="32" style="fill: #bbbb00">x</text>
<text x="16" y="32" style="fill: #bbbb00">d</text>
<text x="24" y="32" style="fill: #bbbb00">6</text>
<text x="32" y="32" style="fill: #bbbb00">0</text>
<text x="40" y="32"></text>
<text x="168" y="32" style="fill: #555555">0</text>
<text x="176" y="32" style="fill: #555555">0</text>
<text x="192" y="32" style="fill: #555555">0</text>
<text x="200" y="32" style="fill: #555555">0</text>
<text x="216" y="32" style="fill: #555555">0</text>
<text x="224" y="32" style="fill: #555555">0</text>
<text x="240" y="32" style="fill: #ffffff">1</text>
<text x="248" y="32" style="fill: #ffffff">c</text>
<text x="424" y="32"></text>
<text x="472" y="32" style="fill: #555555">.</text>
<text x="480" y="32" style="fill: #555555">.</text>
<text x="488" y="32" style="fill: #555555">.</text>
<text x="496" y="32" style="fill: #ffffff">.</text>
<text x="560" y="32"></text>
<text x="584" y="32" style="fill: #5555ff">s</text>
<text x="592" y="32" style="fill: #5555ff">i</text>
<text x="600" y="32" style="fill: #5555ff">z</text>
<text x="608" y="32" style="fill: #5555ff">e</text>
<text x="616" y="32">:</text>
<text x="632" y="32" style="fill: #00bbbb">2</text>
<text x="640" y="32" style="fill: #00bbbb">8</text>
<text x="656" y="32">0</text>
<text x="664" y="32">x</text>
<text x="672" y="32">d</text>
<text x="680" y="32">6</text>
<text x="688" y="32">5</text>
<text x="696" y="32">-</text>
<text x="704" y="32">0</text>
<text x="712" y="32">x</text>
<text x="720" y="32">d</text>
<text x="728" y="32">6</text>
<text x="736" y="32">8</text>
<text x="744" y="32">.</text>
<text x="752" y="32">7</text>
<text x="768" y="32">(</text>
<text x="776" y="32">4</text>
<text x="784" y="32">)</text>
<text x="0" y="48" style="fill: #bbbb00">0</text>
<text x="8" y="48" style="fill: #bbbb00">x</text>
<text x="16" y="48" style="fill: #bbbb00">d</text>
<text x="24" y="48" style="fill: #bbbb00">6</text>
<text x="32" y="48" style="fill: #bbbb00">0</text>
<text x="40" y="48"></text>
<text x="264" y="48">6</text>
<text x="272" y="48">5</text>
<text x="288" y="48">6</text>
<text x="296" y="48">c</text>
<text x="312" y="48">7</text>
<text x="320" y="48">3</text>
<text x="336" y="48">7</text>
<text x="344" y="48">4</text>
<text x="424" y="48"></text>
<text x="504" y="48">e</text>
<text x="512" y="48">l</text>
<text x="520" y="48">s</text>
<text x="528" y="48">t</text>
<text x="560" y="48"></text>
<text x="584" y="48" style="fill: #5555ff">t</text>
<text x="592" y="48" style="fill: #5555ff">y</text>
<text x="600" y="48" style="fill: #5555ff">p</text>
<text x="608" y="48" style="fill: #5555ff">e</text>
<text x="616" y="48">:</text>
<text x="632" y="48" style="fill: #00bb00">&#34;</text>
<text x="640" y="48" style="fill: #00bb00">e</text>
<text x="648" y="48" style="fill: #00bb00">l</text>
<text x="656" y="48" style="fill: #00bb00">s</text>
<text x="664" y="48" style="fill: #00bb00">t</text>
<text x="672" y="48" style="fill: #00bb00">&#34;</text>
<text x="688" y="48">(</text>
<text x="696" y="48">A</text>
<text x="704" y="48">n</text>
<text x="720" y="48">e</text>
<text x="728" y="48">d</text>
<text x="736" y="48">i</text>
<text x="744" y="48">t</text>
<text x="760" y="48">l</text>
<text x="768" y="48">i</text>
<text x="776" y="48">s</text>
<text x="784" y="48">t</text>
<text x="792" y="48">)</text>
<text x="808" y="48">0</text>
<text x="816" y="48">x</text>
<text x="824" y="48">d</text>
<text x="832" y="48">6</text>
<text x="840" y="48">9</text>
<text x="848" y="48">-</text>
<text x="856" y="48">0</text>
<text x="864" y="48">x</text>
<text x="872" y="48">d</text>
<text x="880" y="48">6</text>
<text x="888" y="48">c</text>
<text x="896" y="48">.</text>
<text x="904" y="48">7</text>
<text x="920" y="48">(</text>
<text x="928" y="48">4</text>
<text x="936" y="48">)</text>
<text x="0" y="64" style="fill: #bbbb00">0</text>
<text x="8" y="64" style="fill: #bbbb00">x</text>
<text x="16" y="64" style="fill: #bbbb00">d</text>
<text x="24" y="64" style="fill: #bbbb00">6</text>
<text x="32" y="64" style="fill: #bbbb00">0</text>
<text x="40" y="64"></text>
<text x="360" y="64" style="fill: #555555">0</text>
<text x="368" y="64" style="fill: #555555">0</text>
<text x="424" y="64"></text>
<text x="536" y="64" style="fill: #555555">.</text>
<text x="560" y="64"></text>
<text x="584" y="64" style="fill: #5555ff">v</text>
<text x="592" y="64" style="fill: #5555ff">e</text>
<text x="600" y="64" style="fill: #5555ff">r</text>
<text x="608" y="64" style="fill: #5555ff">s</text>
<text x="616" y="64" style="fill: #5555ff">i</text>
<text x="624" y="64" style="fill: #5555ff">o</text>
<text x="632" y="64" style="fill: #5555ff">n</text>
<text x="640" y="64">:</text>
<text x="656" y="64" style="fill: #00bbbb">0</text>
<text x="672" y="64">0</text>
<text x="680" y="64">x</text>
<text x="688" y="64">d</text>
<text x="696" y="64">6</text>
<text x="704" y="64">d</text>
<text x="712" y="64">-</text>
<text x="720" y="64">0</text>
<text x="728" y="64">x</text>
<text x="736" y="64">d</text>
<text x="744" y="64">6</text>
<text x="752" y="64">d</text>
<text x="760" y="64">.</text>
<text x="768" y="64">7</text>
<text x="784" y="64">(</text>
<text x="792" y="64">1</text>
<text x="800" y="64">)</text>
<text x="0" y="80" style="fill: #bbbb00">0</text>
<text x="8" y="80" style="fill: #bbbb00">x</text>
<text x="16" y="80" style="fill: #bbbb00">d</text>
<text x="24" y="80" style="fill: #bbbb00">6</text>
<text x="32" y="80" style="fill: #bbbb00">0</text>
<text x="40" y="80"></text>
<text x="384" y="80" style="fill: #555555">0</text>
<text x="392" y="80" style="fill: #555555">0</text>
<text x="408" y="80" style="fill: #555555">0</text>
<text x="416" y="80" style="fill: #555555">0</text>
<text x="424" y="80"></text>
<text x="544" y="80" style="fill: #555555">.</text>
<text x="552" y="80" style="fill: #555555">.</text>
<text x="560" y="80"></text>
<text x="584" y="80" style="fill: #5555ff">f</text>
<text x="592" y="80" style="fill: #5555ff">l</text>
<text x="600" y="80" style="fill: #5555ff">a</text>
<text x="608" y="80" style="fill: #5555ff">g</text>
<text x="616" y="80" style="fill: #5555ff">s</text>
<text x="624" y="80">:</text>
<text x="640" y="80" style="fill: #00bbbb">0</text>
<text x="656" y="80">0</text>
<text x="664" y="80">x</text>
<text x="672" y="80">d</text>
<text x="680" y="80">6</text>
<text x="688" y="80">e</text>
<text x="696" y="80">-</text>
<text x="704" y="80">0</text>
<text x="712" y="80">x</text>
<text x="720" y="80">d</text>
<text x="728" y="80">7</text>
<text x="736" y="80">0</text>
<text x="744" y="80">.</text>
<text x="752" y="80">7</text>
<text x="768" y="80">(</text>
<text x="776" y="80">3</text>
<text x="784" y="80">)</text>
<text x="0" y="96" style="fill: #bbbb00">0</text>
<text x="8" y="96" style="fill: #bbbb00">x</text>
<text x="16" y="96" style="fill: #bbbb00">d</text>
<text x="24" y="96" style="fill: #bbbb00">7</text>
<text x="32" y="96" style="fill: #bbbb00">0</text>
<text x="40" y="96"></text>
<text x="48" y="96" style="fill: #555555">0</text>
<text x="56" y="96" style="fill: #555555">0</text>
<text x="424" y="96"></text>
<text x="432" y="96" style="fill: #555555">.</text>
<text x="560" y="96"></text>
<text x="0" y="112" style="fill: #bbbb00">0</text>
<text x="8" y="112" style="fill: #bbbb00">x</text>
<text x="16" y="112" style="fill: #bbbb00">d</text>
<text x="24" y="112" style="fill: #bbbb00">7</text>
<text x="32" y="112" style="fill: #bbbb00">0</text>
<text x="40" y="112"></text>
<text x="72" y="112" style="fill: #555555">0</text>
<text x="80" y="112" style="fill: #555555">0</text>
<text x="96" y="112" style="fill: #555555">0</text>
<text x="104" y="112" style="fill: #555555">0</text>
<text x="120" y="112" style="fill: #555555">0</text>
<text x="128" y="112" style="fill: #555555">0</text>
<text x="144" y="112" style="fill: #ffffff">0</text>
<text x="152" y="112" style="fill: #ffffff">1</text>
<text x="424" y="112"></text>
<text x="440" y="112" style="fill: #555555">.</text>
<text x="448" y="112" style="fill: #555555">.</text>
<text x="456" y="112" style="fill: #555555">.</text>
<text x="464" y="112" style="fill: #ffffff">.</text>
<text x="560" y="112"></text>
<text x="584" y="112" style="fill: #5555ff">e</text>
<text x="592" y="112" style="fill: #5555ff">n</text>
<text x="600" y="112" style="fill: #5555ff">t</text>
<text x="608" y="112" style="fill: #5555ff">r</text>
<text x="616" y="112" style="fill: #5555ff">y</text>
<text x="624" y="112" style="fill: #5555ff">_</text>
<text x="632" y="112" style="fill: #5555ff">c</text>
<text x="640" y="112" style="fill: #5555ff">o</text>
<text x="648" y="112" style="fill: #5555ff">u</text>
<text x="656" y="112" style="fill: #5555ff">n</text>
<text x="664" y="112" style="fill: #5555ff">t</text>
<text x="672" y="112">:</text>
<text x="688" y="112" style="fill: #00bbbb">1</text>
<text x="704" y="112">0</text>
<text x="712" y="112">x</text>
<text x="720" y="112">d</text>
<text x="728" y="112">7</text>
<text x="736" y="112">1</text>
<text x="744" y="112">-</text>
<text x="752" y="112">0</text>
<text x="760" y="112">x</text>
<text x="768" y="112">d</text>
<text x="776" y="112">7</text>
<text x="784" y="112">4</text>
<text x="792" y="112">.</text>
<text x="800" y="112">7</text>
<text x="816" y="112">(</text>
<text x="824" y="112">4</text>
<text x="832" y="112">)</text>
<text x="40" y="128"></text>
<text x="424" y="128"></text>
<text x="560" y="128"></text>
<text x="584" y="128" style="fill: #5555ff">e</text>
<text x="592" y="128" style="fill: #5555ff">n</text>
<text x="600" y="128" style="fill: #5555ff">t</text>
<text x="608" y="128" style="fill: #5555ff">r</text>
<text x="616" y="128" style="fill: #5555ff">i</text>
<text x="624" y="128" style="fill: #5555ff">e</text>
<text x="632" y="128" style="fill: #5555ff">s</text>
<text x="640" y="128">[</text>
<text x="648" y="128" style="fill: #00bbbb">0</text>
<text x="656" y="128">:</text>
<text x="664" y="128" style="fill: #00bbbb">1</text>
<text x="672" y="128">]</text>
<text x="680" y="128">:</text>
<text x="696" y="128">0</text>
<text x="704" y="128">x</text>
<text x="712" y="128">d</text>
<text x="720" y="128">7</text>
<text x="728" y="128">5</text>
<text x="736" y="128">-</text>
<text x="744" y="128">0</text>
<text x="752" y="128">x</text>
<text x="760" y="128">d</text>
<text x="768" y="128">8</text>
<text x="776" y="128">0</text>
<text x="784" y="128">.</text>
<text x="792" y="128">7</text>
<text x="808" y="128">(</text>
<text x="816" y="128">1</text>
<text x="824" y="128">2</text>
<text x="832" y="128">)</text>
<text x="40" y="144"></text>
<text x="424" y="144"></text>
<text x="560" y="144"></text>
<text x="600" y="144">[</text>
<text x="608" y="144" style="fill: #00bbbb">0</text>
<text x="616" y="144">]</text>
<text x="624" y="144">{</text>
<text x="632" y="144">}</text>
<text x="640" y="144">:</text>
<text x="656" y="144">e</text>
<text x="664" y="144">n</text>
<text x="672" y="144">t</text>
<text x="680" y="144">r</text>
<text x="688" y="144">y</text>
<text x="704" y="144">0</text>
<text x="712" y="144">x</text>
<text x="720" y="144">d</text>
<text x="728" y="144">7</text>
<text x="736" y="144">5</text>
<text x="744" y="144">-</text>
<text x="752" y="144">0</text>
<text x="760" y="144">x</text>
<text x="768" y="144">d</text>
<text x="776" y="144">8</text>
<text x="784" y="144">0</text>
<text x="792" y="144">.</text>
<text x="800" y="144">7</text>
<text x="816" y="144">(</text>
<text x="824" y="144">1</text>
<text x="832" y="144">2</text>
<text x="840" y="144">)</text>
<text x="0" y="160" style="fill: #bbbb00">0</text>
<text x="8" y="160" style="fill: #bbbb00">x</text>
<text x="16" y="160" style="fill: #bbbb00">d</text>
<text x="24" y="160" style="fill: #bbbb00">7</text>
<text x="32" y="160" style="fill: #bbbb00">0</text>
<text x="40" y="160"></text>
<text x="168" y="160" style="fill: #555555">0</text>
<text x="176" y="160" style="fill: #555555">0</text>
<text x="192" y="160" style="fill: #555555">0</text>
<text x="200" y="160" style="fill: #555555">0</text>
<text x="216" y="160" style="fill: #555555">0</text>
<text x="224" y="160" style="fill: #555555">0</text>
<text x="240" y="160">2</text>
<text x="248" y="160">8</text>
<text x="424" y="160"></text>
<text x="472" y="160" style="fill: #555555">.</text>
<text x="480" y="160" style="fill: #555555">.</text>
<text x="488" y="160" style="fill: #555555">.</text>
<text x="496" y="160">(</text>
<text x="560" y="160"></text>
<text x="616" y="160" style="fill: #5555ff">s</text>
<text x="624" y="160" style="fill: #5555ff">e</text>
<text x="632" y="160" style="fill: #5555ff">g</text>
<text x="640" y="160" style="fill: #5555ff">m</text>
<text x="648" y="160" style="fill: #5555ff">e</text>
<text x="656" y="160" style="fill: #5555ff">n</text>
<text x="664" y="160" style="fill: #5555ff">t</text>
<text x="672" y="160" style="fill: #5555ff">_</text>
<text x="680" y="160" style="fill: #5555ff">d</text>
<text x="688" y="160" style="fill: #5555ff">u</text>
<text x="696" y="160" style="fill: #5555ff">r</text>
<text x="704" y="160" style="fill: #5555ff">a</text>
<text x="712" y="160" style="fill: #5555ff">t</text>
<text x="720" y="160" style="fill: #5555ff">i</text>
<text x="728" y="160" style="fill: #5555ff">o</text>
<text x="736" y="160" style="fill: #5555ff">n</text>
<text x="744" y="160">:</text>
<text x="760" y="160" style="fill: #00bbbb">4</text>
<text x="768" y="160" style="fill: #00bbbb">0</text>
<text x="784" y="160">0</text>
<text x="792" y="160">x</text>
<text x="800" y="160">d</text>
<text x="808" y="160">7</text>
<text x="816" y="160">5</text>
<text x="824" y="160">-</text>
<text x="832" y="160">0</text>
<text x="840" y="160">x</text>
<text x="848" y="160">d</text>
<text x="856" y="160">7</text>
<text x="864" y="160">8</text>
<text x="872" y="160">.</text>
<text x="880" y="160">7</text>
<text x="896" y="160">(</text>
<text x="904" y="160">4</text>
<text x="912" y="160">)</text>
<text x="0" y="176" style="fill: #bbbb00">0</text>
<text x="8" y="176" style="fill: #bbbb00">x</text>
<text x="16" y="176" style="fill: #bbbb00">d</text>
<text x="24" y="176" style="fill: #bbbb00">7</text>
<text x="32" y="176" style="fill: #bbbb00">0</text>
<text x="40" y="176"></text>
<text x="264" y="176" style="fill: #555555">0</text>
<text x="272" y="176" style="fill: #555555">0</text>
<text x="288" y="176" style="fill: #555555">0</text>
<text x="296" y="176" style="fill: #555555">0</text>
<text x="312" y="176" style="fill: #555555">0</text>
<text x="320" y="176" style="fill: #555555">0</text>
<text x="336" y="176" style="fill: #555555">0</text>
<text x="344" y="176" style="fill: #555555">0</text>
<text x="424" y="176"></text>
<text x="504" y="176" style="fill: #555555">.</text>
<text x="512" y="176" style="fill: #555555">.</text>
<text x="520" y="176" style="fill: #555555">.</text>
<text x="528" y="176" style="fill: #555555">.</text>
<text x="560" y="176"></text>
<text x="616" y="176" style="fill: #5555ff">m</text>
<text x="624" y="176" style="fill: #5555ff">e</text>
<text x="632" y="176" style="fill: #5555ff">d</text>
<text x="640" y="176" style="fill: #5555ff">i</text>
<text x="648" y="176" style="fill: #5555ff">a</text>
<text x="656" y="176" style="fill: #5555ff">_</text>
<text x="664" y="176" style="fill: #5555ff">t</text>
<text x="672" y="176" style="fill: #5555ff">i</text>
<text x="680" y="176" style="fill: #5555ff">m</text>
<text x="688" y="176" style="fill: #5555ff">e</text>
<text x="696" y="176">:</text>
<text x="712" y="176" style="fill: #00bbbb">0</text>
<text x="728" y="176">0</text>
<text x="736" y="176">x</text>
<text x="744" y="176">d</text>
<text x="752" y="176">7</text>
<text x="760" y="176">9</text>
<text x="768" y="176">-</text>
<text x="776" y="176">0</text>
<text x="784" y="176">x</text>
<text x="792" y="176">d</text>
<text x="800" y="176">7</text>
<text x="808" y="176">c</text>
<text x="816" y="176">.</text>
<text x="824" y="176">7</text>
<text x="840" y="176">(</text>
<text x="848" y="176">4</text>
<text x="856" y="176">)</text>
<text x="0" y="192" style="fill: #bbbb00">0</text>
<text x="8" y="192" style="fill: #bbbb00">x</text>
<text x="16" y="192" style="fill: #bbbb00">d</text>
<text x="24" y="192" style="fill: #bbbb00">7</text>
<text x="32" y="192" style="fill: #bbbb00">0</text>
<text x="40" y="192"></text>
<text x="360" y="192" style="fill: #555555">0</text>
<text x="368" y="192" style="fill: #555555">0</text>
<text x="384" y="192" style="fill: #ffffff">0</text>
<text x="392" y="192" style="fill: #ffffff">1</text>
<text x="408" y="192" style="fill: #555555">0</text>
<text x="416" y="192" style="fill: #555555">0</text>
<text x="424" y="192"></text>
<text x="536" y="192" style="fill: #555555">.</text>
<text x="544" y="192" style="fill: #ffffff">.</text>
<text x="552" y="192" style="fill: #555555">.</text>
<text x="560" y="192"></text>
<text x="616" y="192" style="fill: #5555ff">m</text>
<text x="624" y="192" style="fill: #5555ff">e</text>
<text x="632" y="192" style="fill: #5555ff">d</text>
<text x="640" y="192" style="fill: #5555ff">i</text>
<text x="648" y="192" style="fill: #5555ff">a</text>
<text x="656" y="192" style="fill: #5555ff">_</text>
<text x="664" y="192" style="fill: #5555ff">r</text>
<text x="672" y="192" style="fill: #5555ff">a</text>
<text x="680" y="192" style="fill: #5555ff">t</text>
<text x="688" y="192" style="fill: #5555ff">e</text>
<text x="696" y="192">:</text>
<text x="712" y="192" style="fill: #00bbbb">1</text>
<text x="728" y="192">0</text>
<text x="736" y="192">x</text>
<text x="744" y="192">d</text>
<text x="752" y="192">7</text>
<text x="760" y="192">d</text>
<text x="768" y="192">-</text>
<text x="776" y="192">0</text>
<text x="784" y="192">x</text>
<text x="792" y="192">d</text>
<text x="800" y="192">8</text>
<text x="808" y="192">0</text>
<text x="816" y="192">.</text>
<text x="824" y="192">7</text>
<text x="840" y="192">(</text>
<text x="848" y="192">4</text>
<text x="856" y="192">)</text>
<text x="0" y="208" style="fill: #bbbb00">0</text>
<text x="8" y="208" style="fill: #bbbb00">x</text>
<text x="16" y="208" style="fill: #bbbb00">d</text>
<text x="24" y="208" style="fill: #bbbb00">8</text>
<text x="32" y="208" style="fill: #bbbb00">0</text>
<text x="40" y="208"></text>
<text x="48" y="208" style="fill: #555555">0</text>
<text x="56" y="208" style="fill: #555555">0</text>
<text x="424" y="208"></text>
<text x="432" y="208" style="fill: #555555">.</text>
<text x="560" y="208"></text>
</svg>

After

Width:  |  Height:  |  Size: 29 KiB

12
doc/display_json.sh Executable file
View File

@ -0,0 +1,12 @@
#!/bin/bash
FQ="$1"
s() {
echo "\$ $1"
sh -c "${1/fq/$FQ -o unicode=true -C}"
}
s "fq -n '\"hello\"'"
echo
s "fq -n '\"hello\" | d'"

57
doc/display_json.svg Normal file
View File

@ -0,0 +1,57 @@
<svg viewBox="0 0 168 80" width="168" height="80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<style>
rect { shape-rendering: crispEdges; }
text {
dominant-baseline: text-before-edge;
white-space: pre;
font: 14px monospace;
fill: #bbbbbb;
}
.u { text-decoration: underline; }
</style>
<rect width="100%" height="100%" x="0" y="0" style="fill: #000000"/>
<text x="0" y="0">$</text>
<text x="16" y="0">f</text>
<text x="24" y="0">q</text>
<text x="40" y="0">-</text>
<text x="48" y="0">n</text>
<text x="64" y="0">&#39;</text>
<text x="72" y="0">&#34;</text>
<text x="80" y="0">h</text>
<text x="88" y="0">e</text>
<text x="96" y="0">l</text>
<text x="104" y="0">l</text>
<text x="112" y="0">o</text>
<text x="120" y="0">&#34;</text>
<text x="128" y="0">&#39;</text>
<text x="0" y="16" style="fill: #00bb00">&#34;</text>
<text x="8" y="16" style="fill: #00bb00">h</text>
<text x="16" y="16" style="fill: #00bb00">e</text>
<text x="24" y="16" style="fill: #00bb00">l</text>
<text x="32" y="16" style="fill: #00bb00">l</text>
<text x="40" y="16" style="fill: #00bb00">o</text>
<text x="48" y="16" style="fill: #00bb00">&#34;</text>
<text x="0" y="48">$</text>
<text x="16" y="48">f</text>
<text x="24" y="48">q</text>
<text x="40" y="48">-</text>
<text x="48" y="48">n</text>
<text x="64" y="48">&#39;</text>
<text x="72" y="48">&#34;</text>
<text x="80" y="48">h</text>
<text x="88" y="48">e</text>
<text x="96" y="48">l</text>
<text x="104" y="48">l</text>
<text x="112" y="48">o</text>
<text x="120" y="48">&#34;</text>
<text x="136" y="48">|</text>
<text x="152" y="48">d</text>
<text x="160" y="48">&#39;</text>
<text x="0" y="64" style="fill: #00bb00">&#34;</text>
<text x="8" y="64" style="fill: #00bb00">h</text>
<text x="16" y="64" style="fill: #00bb00">e</text>
<text x="24" y="64" style="fill: #00bb00">l</text>
<text x="32" y="64" style="fill: #00bb00">l</text>
<text x="40" y="64" style="fill: #00bb00">o</text>
<text x="48" y="64" style="fill: #00bb00">&#34;</text>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -1,98 +1,224 @@
## Supported formats
[./formats_table.jq]: sh-start
[./formats_table.sh]: sh-start
|Name |Description |Dependencies|
|- |- |-|
|`aac_frame` |Advanced&nbsp;Audio&nbsp;Coding&nbsp;frame |<sub></sub>|
|`adts` |Audio&nbsp;Data&nbsp;Transport&nbsp;Stream |<sub>`adts_frame`</sub>|
|`adts_frame` |Audio&nbsp;Data&nbsp;Transport&nbsp;Stream&nbsp;frame |<sub>`aac_frame`</sub>|
|`apev2` |APEv2&nbsp;metadata&nbsp;tag |<sub>`image`</sub>|
|`ar` |Unix&nbsp;archive |<sub>`probe`</sub>|
|`av1_ccr` |AV1&nbsp;Codec&nbsp;Configuration&nbsp;Record |<sub></sub>|
|`av1_frame` |AV1&nbsp;frame |<sub>`av1_obu`</sub>|
|`av1_obu` |AV1&nbsp;Open&nbsp;Bitstream&nbsp;Unit |<sub></sub>|
|`avc_annexb` |H.264/AVC&nbsp;Annex&nbsp;B |<sub>`avc_nalu`</sub>|
|`avc_au` |H.264/AVC&nbsp;Access&nbsp;Unit |<sub>`avc_nalu`</sub>|
|`avc_dcr` |H.264/AVC&nbsp;Decoder&nbsp;Configuration&nbsp;Record |<sub>`avc_nalu`</sub>|
|`avc_nalu` |H.264/AVC&nbsp;Network&nbsp;Access&nbsp;Layer&nbsp;Unit |<sub>`avc_sps` `avc_pps` `avc_sei`</sub>|
|`avc_pps` |H.264/AVC&nbsp;Picture&nbsp;Parameter&nbsp;Set |<sub></sub>|
|`avc_sei` |H.264/AVC&nbsp;Supplemental&nbsp;Enhancement&nbsp;Information |<sub></sub>|
|`avc_sps` |H.264/AVC&nbsp;Sequence&nbsp;Parameter&nbsp;Set |<sub></sub>|
|`avro_ocf` |Avro&nbsp;object&nbsp;container&nbsp;file |<sub></sub>|
|`bencode` |BitTorrent&nbsp;bencoding |<sub></sub>|
|`bsd_loopback_frame` |BSD&nbsp;loopback&nbsp;frame |<sub>`ipv4_packet`</sub>|
|`bson` |Binary&nbsp;JSON |<sub></sub>|
|`bzip2` |bzip2&nbsp;compression |<sub>`probe`</sub>|
|`cbor` |Concise&nbsp;Binary&nbsp;Object&nbsp;Representation |<sub></sub>|
|`dns` |DNS&nbsp;packet |<sub></sub>|
|`dns_tcp` |DNS&nbsp;packet&nbsp;(TCP) |<sub></sub>|
|`elf` |Executable&nbsp;and&nbsp;Linkable&nbsp;Format |<sub></sub>|
|`ether8023_frame` |Ethernet&nbsp;802.3&nbsp;frame |<sub>`ipv4_packet`</sub>|
|`exif` |Exchangeable&nbsp;Image&nbsp;File&nbsp;Format |<sub></sub>|
|`flac` |Free&nbsp;Lossless&nbsp;Audio&nbsp;Codec&nbsp;file |<sub>`flac_metadatablocks` `flac_frame`</sub>|
|`flac_frame` |FLAC&nbsp;frame |<sub></sub>|
|`flac_metadatablock` |FLAC&nbsp;metadatablock |<sub>`flac_streaminfo` `flac_picture` `vorbis_comment`</sub>|
|`flac_metadatablocks` |FLAC&nbsp;metadatablocks |<sub>`flac_metadatablock`</sub>|
|`flac_picture` |FLAC&nbsp;metadatablock&nbsp;picture |<sub>`image`</sub>|
|`flac_streaminfo` |FLAC&nbsp;streaminfo |<sub></sub>|
|`gif` |Graphics&nbsp;Interchange&nbsp;Format |<sub></sub>|
|`gzip` |gzip&nbsp;compression |<sub>`probe`</sub>|
|`hevc_annexb` |H.265/HEVC&nbsp;Annex&nbsp;B |<sub>`hevc_nalu`</sub>|
|`hevc_au` |H.265/HEVC&nbsp;Access&nbsp;Unit |<sub>`hevc_nalu`</sub>|
|`hevc_dcr` |H.265/HEVC&nbsp;Decoder&nbsp;Configuration&nbsp;Record |<sub>`hevc_nalu`</sub>|
|`hevc_nalu` |H.265/HEVC&nbsp;Network&nbsp;Access&nbsp;Layer&nbsp;Unit |<sub></sub>|
|`icc_profile` |International&nbsp;Color&nbsp;Consortium&nbsp;profile |<sub></sub>|
|`icmp` |Internet&nbsp;Control&nbsp;Message&nbsp;Protocol |<sub></sub>|
|`id3v1` |ID3v1&nbsp;metadata |<sub></sub>|
|`id3v11` |ID3v1.1&nbsp;metadata |<sub></sub>|
|`id3v2` |ID3v2&nbsp;metadata |<sub>`image`</sub>|
|`ipv4_packet` |Internet&nbsp;protocol&nbsp;v4&nbsp;packet |<sub>`udp_datagram` `tcp_segment` `icmp`</sub>|
|`jpeg` |Joint&nbsp;Photographic&nbsp;Experts&nbsp;Group&nbsp;file |<sub>`exif` `icc_profile`</sub>|
|`json` |JSON |<sub></sub>|
|`matroska` |Matroska&nbsp;file |<sub>`aac_frame` `av1_ccr` `av1_frame` `avc_au` `avc_dcr` `flac_frame` `flac_metadatablocks` `hevc_au` `hevc_dcr` `image` `mp3_frame` `mpeg_asc` `mpeg_pes_packet` `mpeg_spu` `opus_packet` `vorbis_packet` `vp8_frame` `vp9_cfm` `vp9_frame`</sub>|
|`mp3` |MP3&nbsp;file |<sub>`id3v2` `id3v1` `id3v11` `apev2` `mp3_frame`</sub>|
|`mp3_frame` |MPEG&nbsp;audio&nbsp;layer&nbsp;3&nbsp;frame |<sub>`xing`</sub>|
|`mp4` |MPEG-4&nbsp;file&nbsp;and&nbsp;similar |<sub>`aac_frame` `av1_ccr` `av1_frame` `flac_frame` `flac_metadatablocks` `id3v2` `image` `jpeg` `mp3_frame` `avc_au` `avc_dcr` `mpeg_es` `hevc_au` `hevc_dcr` `mpeg_pes_packet` `opus_packet` `protobuf_widevine` `pssh_playready` `vorbis_packet` `vp9_frame` `vpx_ccr`</sub>|
|`mpeg_asc` |MPEG-4&nbsp;Audio&nbsp;Specific&nbsp;Config |<sub></sub>|
|`mpeg_es` |MPEG&nbsp;Elementary&nbsp;Stream |<sub>`mpeg_asc` `vorbis_packet`</sub>|
|`mpeg_pes` |MPEG&nbsp;Packetized&nbsp;elementary&nbsp;stream |<sub>`mpeg_pes_packet` `mpeg_spu`</sub>|
|`mpeg_pes_packet` |MPEG&nbsp;Packetized&nbsp;elementary&nbsp;stream&nbsp;packet |<sub></sub>|
|`mpeg_spu` |Sub&nbsp;Picture&nbsp;Unit&nbsp;(DVD&nbsp;subtitle) |<sub></sub>|
|`mpeg_ts` |MPEG&nbsp;Transport&nbsp;Stream |<sub></sub>|
|`msgpack` |MessagePack |<sub></sub>|
|`ogg` |OGG&nbsp;file |<sub>`ogg_page` `vorbis_packet` `opus_packet` `flac_metadatablock` `flac_frame`</sub>|
|`ogg_page` |OGG&nbsp;page |<sub></sub>|
|`opus_packet` |Opus&nbsp;packet |<sub>`vorbis_comment`</sub>|
|`pcap` |PCAP&nbsp;packet&nbsp;capture |<sub>`link_frame` `tcp_stream` `ipv4_packet`</sub>|
|`pcapng` |PCAPNG&nbsp;packet&nbsp;capture |<sub>`link_frame` `tcp_stream` `ipv4_packet`</sub>|
|`png` |Portable&nbsp;Network&nbsp;Graphics&nbsp;file |<sub>`icc_profile` `exif`</sub>|
|`protobuf` |Protobuf |<sub></sub>|
|`protobuf_widevine` |Widevine&nbsp;protobuf |<sub>`protobuf`</sub>|
|`pssh_playready` |PlayReady&nbsp;PSSH |<sub></sub>|
|`raw` |Raw&nbsp;bits |<sub></sub>|
|`sll2_packet` |Linux&nbsp;cooked&nbsp;capture&nbsp;encapsulation&nbsp;v2 |<sub>`ether8023_frame`</sub>|
|`sll_packet` |Linux&nbsp;cooked&nbsp;capture&nbsp;encapsulation |<sub>`ether8023_frame`</sub>|
|`tar` |Tar&nbsp;archive |<sub>`probe`</sub>|
|`tcp_segment` |Transmission&nbsp;control&nbsp;protocol&nbsp;segment |<sub></sub>|
|`tiff` |Tag&nbsp;Image&nbsp;File&nbsp;Format |<sub>`icc_profile`</sub>|
|`udp_datagram` |User&nbsp;datagram&nbsp;protocol |<sub>`udp_payload`</sub>|
|`vorbis_comment` |Vorbis&nbsp;comment |<sub>`flac_picture`</sub>|
|`vorbis_packet` |Vorbis&nbsp;packet |<sub>`vorbis_comment`</sub>|
|`vp8_frame` |VP8&nbsp;frame |<sub></sub>|
|`vp9_cfm` |VP9&nbsp;Codec&nbsp;Feature&nbsp;Metadata |<sub></sub>|
|`vp9_frame` |VP9&nbsp;frame |<sub></sub>|
|`vpx_ccr` |VPX&nbsp;Codec&nbsp;Configuration&nbsp;Record |<sub></sub>|
|`wav` |WAV&nbsp;file |<sub>`id3v2` `id3v1` `id3v11`</sub>|
|`webp` |WebP&nbsp;image |<sub>`vp8_frame`</sub>|
|`xing` |Xing&nbsp;header |<sub></sub>|
|`zip` |ZIP&nbsp;archive |<sub>`probe`</sub>|
|`image` |Group |<sub>`gif` `jpeg` `mp4` `png` `tiff` `webp`</sub>|
|`link_frame` |Group |<sub>`bsd_loopback_frame` `ether8023_frame` `sll2_packet` `sll_packet`</sub>|
|`probe` |Group |<sub>`adts` `ar` `avro_ocf` `bzip2` `elf` `flac` `gif` `gzip` `jpeg` `json` `matroska` `mp3` `mp4` `mpeg_ts` `ogg` `pcap` `pcapng` `png` `tar` `tiff` `wav` `webp` `zip`</sub>|
|`tcp_stream` |Group |<sub>`dns`</sub>|
|`udp_payload` |Group |<sub>`dns`</sub>|
|Name |Description |Dependencies|
|- |- |-|
|`aac_frame` |Advanced&nbsp;Audio&nbsp;Coding&nbsp;frame |<sub></sub>|
|`adts` |Audio&nbsp;Data&nbsp;Transport&nbsp;Stream |<sub>`adts_frame`</sub>|
|`adts_frame` |Audio&nbsp;Data&nbsp;Transport&nbsp;Stream&nbsp;frame |<sub>`aac_frame`</sub>|
|`apev2` |APEv2&nbsp;metadata&nbsp;tag |<sub>`image`</sub>|
|`ar` |Unix&nbsp;archive |<sub>`probe`</sub>|
|[`asn1_ber`](#asn1_ber) |ASN1&nbsp;Basic&nbsp;Encoding&nbsp;Rules&nbsp;(also&nbsp;CER&nbsp;and&nbsp;DER) |<sub></sub>|
|`av1_ccr` |AV1&nbsp;Codec&nbsp;Configuration&nbsp;Record |<sub></sub>|
|`av1_frame` |AV1&nbsp;frame |<sub>`av1_obu`</sub>|
|`av1_obu` |AV1&nbsp;Open&nbsp;Bitstream&nbsp;Unit |<sub></sub>|
|`avc_annexb` |H.264/AVC&nbsp;Annex&nbsp;B |<sub>`avc_nalu`</sub>|
|`avc_au` |H.264/AVC&nbsp;Access&nbsp;Unit |<sub>`avc_nalu`</sub>|
|`avc_dcr` |H.264/AVC&nbsp;Decoder&nbsp;Configuration&nbsp;Record |<sub>`avc_nalu`</sub>|
|`avc_nalu` |H.264/AVC&nbsp;Network&nbsp;Access&nbsp;Layer&nbsp;Unit |<sub>`avc_sps` `avc_pps` `avc_sei`</sub>|
|`avc_pps` |H.264/AVC&nbsp;Picture&nbsp;Parameter&nbsp;Set |<sub></sub>|
|`avc_sei` |H.264/AVC&nbsp;Supplemental&nbsp;Enhancement&nbsp;Information |<sub></sub>|
|`avc_sps` |H.264/AVC&nbsp;Sequence&nbsp;Parameter&nbsp;Set |<sub></sub>|
|`avro_ocf` |Avro&nbsp;object&nbsp;container&nbsp;file |<sub></sub>|
|`bencode` |BitTorrent&nbsp;bencoding |<sub></sub>|
|`bsd_loopback_frame` |BSD&nbsp;loopback&nbsp;frame |<sub>`ipv4_packet`</sub>|
|[`bson`](#bson) |Binary&nbsp;JSON |<sub></sub>|
|`bzip2` |bzip2&nbsp;compression |<sub>`probe`</sub>|
|[`cbor`](#cbor) |Concise&nbsp;Binary&nbsp;Object&nbsp;Representation |<sub></sub>|
|`dns` |DNS&nbsp;packet |<sub></sub>|
|`dns_tcp` |DNS&nbsp;packet&nbsp;(TCP) |<sub></sub>|
|`elf` |Executable&nbsp;and&nbsp;Linkable&nbsp;Format |<sub></sub>|
|`ether8023_frame` |Ethernet&nbsp;802.3&nbsp;frame |<sub>`ipv4_packet`</sub>|
|`exif` |Exchangeable&nbsp;Image&nbsp;File&nbsp;Format |<sub></sub>|
|`flac` |Free&nbsp;Lossless&nbsp;Audio&nbsp;Codec&nbsp;file |<sub>`flac_metadatablocks` `flac_frame`</sub>|
|`flac_frame` |FLAC&nbsp;frame |<sub></sub>|
|`flac_metadatablock` |FLAC&nbsp;metadatablock |<sub>`flac_streaminfo` `flac_picture` `vorbis_comment`</sub>|
|`flac_metadatablocks` |FLAC&nbsp;metadatablocks |<sub>`flac_metadatablock`</sub>|
|`flac_picture` |FLAC&nbsp;metadatablock&nbsp;picture |<sub>`image`</sub>|
|`flac_streaminfo` |FLAC&nbsp;streaminfo |<sub></sub>|
|`gif` |Graphics&nbsp;Interchange&nbsp;Format |<sub></sub>|
|`gzip` |gzip&nbsp;compression |<sub>`probe`</sub>|
|`hevc_annexb` |H.265/HEVC&nbsp;Annex&nbsp;B |<sub>`hevc_nalu`</sub>|
|`hevc_au` |H.265/HEVC&nbsp;Access&nbsp;Unit |<sub>`hevc_nalu`</sub>|
|`hevc_dcr` |H.265/HEVC&nbsp;Decoder&nbsp;Configuration&nbsp;Record |<sub>`hevc_nalu`</sub>|
|`hevc_nalu` |H.265/HEVC&nbsp;Network&nbsp;Access&nbsp;Layer&nbsp;Unit |<sub></sub>|
|`icc_profile` |International&nbsp;Color&nbsp;Consortium&nbsp;profile |<sub></sub>|
|`icmp` |Internet&nbsp;Control&nbsp;Message&nbsp;Protocol |<sub></sub>|
|`id3v1` |ID3v1&nbsp;metadata |<sub></sub>|
|`id3v11` |ID3v1.1&nbsp;metadata |<sub></sub>|
|`id3v2` |ID3v2&nbsp;metadata |<sub>`image`</sub>|
|`ipv4_packet` |Internet&nbsp;protocol&nbsp;v4&nbsp;packet |<sub>`udp_datagram` `tcp_segment` `icmp`</sub>|
|`jpeg` |Joint&nbsp;Photographic&nbsp;Experts&nbsp;Group&nbsp;file |<sub>`exif` `icc_profile`</sub>|
|`json` |JSON |<sub></sub>|
|[`matroska`](#matroska) |Matroska&nbsp;file |<sub>`aac_frame` `av1_ccr` `av1_frame` `avc_au` `avc_dcr` `flac_frame` `flac_metadatablocks` `hevc_au` `hevc_dcr` `image` `mp3_frame` `mpeg_asc` `mpeg_pes_packet` `mpeg_spu` `opus_packet` `vorbis_packet` `vp8_frame` `vp9_cfm` `vp9_frame`</sub>|
|`mp3` |MP3&nbsp;file |<sub>`id3v2` `id3v1` `id3v11` `apev2` `mp3_frame`</sub>|
|`mp3_frame` |MPEG&nbsp;audio&nbsp;layer&nbsp;3&nbsp;frame |<sub>`xing`</sub>|
|[`mp4`](#mp4) |MPEG-4&nbsp;file&nbsp;and&nbsp;similar |<sub>`aac_frame` `av1_ccr` `av1_frame` `flac_frame` `flac_metadatablocks` `id3v2` `image` `jpeg` `mp3_frame` `avc_au` `avc_dcr` `mpeg_es` `hevc_au` `hevc_dcr` `mpeg_pes_packet` `opus_packet` `protobuf_widevine` `pssh_playready` `vorbis_packet` `vp9_frame` `vpx_ccr`</sub>|
|`mpeg_asc` |MPEG-4&nbsp;Audio&nbsp;Specific&nbsp;Config |<sub></sub>|
|`mpeg_es` |MPEG&nbsp;Elementary&nbsp;Stream |<sub>`mpeg_asc` `vorbis_packet`</sub>|
|`mpeg_pes` |MPEG&nbsp;Packetized&nbsp;elementary&nbsp;stream |<sub>`mpeg_pes_packet` `mpeg_spu`</sub>|
|`mpeg_pes_packet` |MPEG&nbsp;Packetized&nbsp;elementary&nbsp;stream&nbsp;packet |<sub></sub>|
|`mpeg_spu` |Sub&nbsp;Picture&nbsp;Unit&nbsp;(DVD&nbsp;subtitle) |<sub></sub>|
|`mpeg_ts` |MPEG&nbsp;Transport&nbsp;Stream |<sub></sub>|
|[`msgpack`](#msgpack) |MessagePack |<sub></sub>|
|`ogg` |OGG&nbsp;file |<sub>`ogg_page` `vorbis_packet` `opus_packet` `flac_metadatablock` `flac_frame`</sub>|
|`ogg_page` |OGG&nbsp;page |<sub></sub>|
|`opus_packet` |Opus&nbsp;packet |<sub>`vorbis_comment`</sub>|
|`pcap` |PCAP&nbsp;packet&nbsp;capture |<sub>`link_frame` `tcp_stream` `ipv4_packet`</sub>|
|`pcapng` |PCAPNG&nbsp;packet&nbsp;capture |<sub>`link_frame` `tcp_stream` `ipv4_packet`</sub>|
|`png` |Portable&nbsp;Network&nbsp;Graphics&nbsp;file |<sub>`icc_profile` `exif`</sub>|
|[`protobuf`](#protobuf) |Protobuf |<sub></sub>|
|`protobuf_widevine` |Widevine&nbsp;protobuf |<sub>`protobuf`</sub>|
|`pssh_playready` |PlayReady&nbsp;PSSH |<sub></sub>|
|`raw` |Raw&nbsp;bits |<sub></sub>|
|`sll2_packet` |Linux&nbsp;cooked&nbsp;capture&nbsp;encapsulation&nbsp;v2 |<sub>`ether8023_frame`</sub>|
|`sll_packet` |Linux&nbsp;cooked&nbsp;capture&nbsp;encapsulation |<sub>`ether8023_frame`</sub>|
|`tar` |Tar&nbsp;archive |<sub>`probe`</sub>|
|`tcp_segment` |Transmission&nbsp;control&nbsp;protocol&nbsp;segment |<sub></sub>|
|`tiff` |Tag&nbsp;Image&nbsp;File&nbsp;Format |<sub>`icc_profile`</sub>|
|`udp_datagram` |User&nbsp;datagram&nbsp;protocol |<sub>`udp_payload`</sub>|
|`vorbis_comment` |Vorbis&nbsp;comment |<sub>`flac_picture`</sub>|
|`vorbis_packet` |Vorbis&nbsp;packet |<sub>`vorbis_comment`</sub>|
|`vp8_frame` |VP8&nbsp;frame |<sub></sub>|
|`vp9_cfm` |VP9&nbsp;Codec&nbsp;Feature&nbsp;Metadata |<sub></sub>|
|`vp9_frame` |VP9&nbsp;frame |<sub></sub>|
|`vpx_ccr` |VPX&nbsp;Codec&nbsp;Configuration&nbsp;Record |<sub></sub>|
|`wav` |WAV&nbsp;file |<sub>`id3v2` `id3v1` `id3v11`</sub>|
|`webp` |WebP&nbsp;image |<sub>`vp8_frame`</sub>|
|`xing` |Xing&nbsp;header |<sub></sub>|
|`zip` |ZIP&nbsp;archive |<sub>`probe`</sub>|
|`image` |Group |<sub>`gif` `jpeg` `mp4` `png` `tiff` `webp`</sub>|
|`link_frame` |Group |<sub>`bsd_loopback_frame` `ether8023_frame` `sll2_packet` `sll_packet`</sub>|
|`probe` |Group |<sub>`adts` `ar` `avro_ocf` `bzip2` `elf` `flac` `gif` `gzip` `jpeg` `json` `matroska` `mp3` `mp4` `mpeg_ts` `ogg` `pcap` `pcapng` `png` `tar` `tiff` `wav` `webp` `zip`</sub>|
|`tcp_stream` |Group |<sub>`dns`</sub>|
|`udp_payload` |Group |<sub>`dns`</sub>|
[#]: sh-end
## Format options
Currently the only option is `force` and is used to ignore some format assertion errors. It can be used as a decode option or as a CLI `-o` option:
```
fq -d mp4 -o force=true file.mp4
fq -d raw 'mp4({force: true})' file.mp4
```
## Format functions
[./formats_collect.sh]: sh-start
### asn1_ber
Can also decode CER and BER but with no extra validation. Currently does not support specifying a schema.
Supports `torepr` but without schema support it's not that useful:
```
fq -d asn1_ber torepr file.ber
```
There is also `frompem` and `topem` to help working with PEM format:
```
fq -d raw 'frompem | asn1_ber | d' cert.pem
```
If the schema is known and not that complicated it can be reproduced:
```
fq -d asn1_ber 'torepr as $r | ["version", "modulus", "private_exponent", "private_exponen", "prime1", "prime2", "exponent1", "exponent2", "coefficient"] | with_entries({key: .value, value: $r[.key]})' pkcs1.der
```
### becode
Supports `torepr`:
```
fq -d bencode torepr file.torrent
```
### bson
Supports `torepr`:
```
fq -d bson torepr file.bson
```
### cbor
Supports `torepr`:
```
fq -d cbor torepr file.cbor
fq -d cbor 'torepr.field' file.cbor
fq -d cbor 'torepr | .field' file.cbor
fq -d cbor 'torepr | grep("abc")' file.cbor
```
### matroska
Supports `matroska_path`:
```
$ fq 'matroska_path(".Segment.Tracks[0]")' file.mkv
│00 01 02 03 04 05 06 07 08 09│0123456789│.elements[1].elements[3]{}:
0x122│ 16 54 ae 6b │ .T.k │ id: "Tracks" (0x1654ae6b) (A Top-Level Element of information with many tracks described.)
│ │ │ type: "master" (7)
0x122│ 4d bf │ M. │ size: 3519
0x122│ bf│ .│ elements[0:3]:
0x12c│84 cf 8b db a0 ae 01 00 00 00│..........│
0x136│00 00 00 78 d7 81 01 73 c5 88│...x...s..│
* │until 0xee9.7 (3519) │ │
```
```
$ fq 'first(grep_by(.id == "Tracks")) | matroska_path' test.mkv
".Segment.Tracks"
```
### mp4
Supports `mp4_path`:
```
$ fq 'mp4_path(".moov.trak[1]")' file.mp4
│00 01 02 03 04 05 06 07 08 09│0123456789│.boxes[3].boxes[1]{}:
0x4f6│ 00 00 02│ ...│ size: 573
0x500│3d │= │
0x500│ 74 72 61 6b │ trak │ type: "trak" (Container for an individual track or stream)
0x500│ 00 00 00 5c 74│ ...\t│ boxes[0:3]:
0x50a│6b 68 64 00 00 00 03 00 00 00│khd.......│
0x514│00 00 00 00 00 00 00 00 01 00│..........│
* │until 0x739.7 (565) │ │
```
```
$ fq 'first(grep_by(.type == "trak")) | mp4_path' file.mp4
".moov.trak"
```
### msgpack
Supports `torepr`:
```
fq -d msgpack torepr file.msgpack
```
### protobuf
`protobuf` decoder can be used to decode sub messages:
```
fq -d protobuf '.fields[6].wire_value | protobuf | d'
```
[#]: sh-end
## Dependency graph
![alt text](formats.svg "Format diagram")

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 113 KiB

9
doc/formats_collect.sh Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
for i in $(cd "$REPODIR" && ls -1 format/*/*.md | sort -t / -k 3); do
FORMAT=$(echo "$i" | sed 's#format/.*/\(.*\).md#\1#')
echo "### $FORMAT"
echo
cat "$REPODIR/$i"
echo
done

View File

@ -1,5 +1,8 @@
#!/usr/bin/env fq -rnf
def color:
md5 | [.[range(3)]] | map(band(.; 0x7f)+60 | radix16 | "0"[length:]+.) | join("");
def _formats_dot:
def _record($title; $fields):
[ "<"
@ -12,18 +15,19 @@ def _formats_dot:
( "# ... | dot -Tsvg -o formats.svg"
, "digraph formats {"
, " rankdir=TB"
, " node [shape=\"none\" style=\"\"]"
, " node [penwidth=2 shape=\"none\" style=\"\"]"
, " edge [penwidth=2]"
, ( .[]
| . as $f
| .dependencies
| flatten?
| .[]
| " \"\($f.name)\":\(.):e -> \(.):n"
| " \"\($f.name)\":\(.):e -> \(.):n [color=\"#\($f.name | color)\"]"
)
, ( .[]
| .name as $name
| .groups[]?
| " \(.) -> \"\($name)\":\($name):n"
| " \(.) -> \"\($name)\":\($name):n [color=\"#\(. | color)\"]"
)
, ( to_entries[]
| " \(.key) [color=\"paleturquoise\", label=\(_record(.key; (.value.dependencies // [])))]"

View File

@ -3,47 +3,57 @@
def code: "`\(.)`";
def nbsp: gsub(" "; "&nbsp;");
[ {
name: "Name",
desc: "Description",
uses: "Dependencies"
},
{
name: "-",
desc: "-",
uses: "-"
},
( formats
| to_entries[]
| {
name: ((.key | code) + " "),
desc: ((.value.description | nbsp) + " "),
uses: "<sub>\((((.value.dependencies | flatten | map(code)) | join(" "))? // ""))</sub>"
}
),
( [ formats
| to_entries[]
| . as $e
| select(.value.groups)
| .value.groups[] | {key: ., value: $e.key}
def format_table:
( ($doc_formats | split(" ")) as $doc_formats
| [ {
name: "Name",
desc: "Description",
uses: "Dependencies"
},
{
name: "-",
desc: "-",
uses: "-"
},
( formats
| to_entries[]
| {
name:
( ( .key as $format
| if ($doc_formats | indices($format)) != [] then "[\($format | code)](#\($format))"
else $format | code
end
)
+ " "
),
desc: ((.value.description | nbsp) + " "),
uses: "<sub>\((((.value.dependencies | flatten | map(code)) | join(" "))? // ""))</sub>"
}
),
( [ formats
| to_entries[]
| . as $e
| select(.value.groups)
| .value.groups[] | {key: ., value: $e.key}
]
| reduce .[] as $e ({}; .[$e.key] += [$e.value])
| to_entries[]
| {
name: ((.key | code) + " "),
desc: "Group",
uses: "<sub>\(((.value | map(code)) | join(" ")))</sub>"
}
)
]
| reduce .[] as $e ({}; .[$e.key] += [$e.value])
| to_entries[]
| {
name: ((.key | code) + " "),
desc: "Group",
uses: "<sub>\(((.value | map(code)) | join(" ")))</sub>"
}
)
]
| table(
[.name, .desc, .uses];
[ ""
, (.[0] | . as $rc | $rc.string | rpad(" "; $rc.maxwidth))
, (.[1] | . as $rc | $rc.string | rpad(" "; $rc.maxwidth))
, .[2].string
, ""
] | join("|")
)
| table(
[.name, .desc, .uses];
[ ""
, (.[0] | . as $rc | $rc.string | rpad(" "; $rc.maxwidth))
, (.[1] | . as $rc | $rc.string | rpad(" "; $rc.maxwidth))
, .[2].string
, ""
] | join("|")
)
);
format_table

4
doc/formats_table.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
# what formats has a .md file
DOC_FORMATS=$(echo $(ls -1 $REPODIR/format/*/*.md | sed "s#$REPODIR/format/.*/\(.*\).md#\1#"))
./formats_table.jq --arg doc_formats "$DOC_FORMATS"

View File

@ -5,6 +5,7 @@ FQ="$1"
shift
REPODIR=$(pwd)
export REPODIR
TEMPDIR=$(mktemp -d)
cp -a doc/* "${TEMPDIR}"
cp "$FQ" "${TEMPDIR}/fq"

View File

@ -1,66 +1,128 @@
## Basic usage
fq tries to behave the same way as jq as much as possible, so you can do:
```sh
fq . file
fq < file
file | fq
cat file | fq
fq . < file
fq . *.png *.mp3
fq '.frames[0]' file.mp3
fq '.frames[0]' *.mp3
```
Common usages:
### Common usages
```sh
# recursively display decode tree but truncate long arrays
fq d file
# same as
fq display file
# display all or more bytes for each value
# display all bytes for each value
fq 'd({display_bytes: 0})' file
# display 200 bytes for each value
fq 'd({display_bytes: 200})' file
# recursively display decode tree
fq f file
fq full file
# recursively display decode tree without truncating
fq da file
# recursively verbosely display decode tree
fq v file
fq verbose file
# recursively and verbosely display decode tree
fq dv file
# JSON for whole file
# JSON repersenation for whole file
fq tovalue file
# recursively look for decode value roots for a format
fq '.. | select(format=="jpeg")' file
# can also use grep_by
fq 'grep_by(format=="jpeg")' file
# recursively look for first decode value root for a format
fq 'first(.. | select(format=="jpeg"))' file
fq 'first(grep_by(format=="jpeg"))' file
# recursively look for objects fullfilling condition
fq '.. | select(.type=="trak")?' file
fq 'grep_by(.type=="trak")' file
# grep whole tree
fq 'grep("^prefix")' file
fq 'grep(123)' file
fq 'grep_by(. >= 100 and . =< 100)' file
# decode file as mp4 and return a result even if there are some errors
fq -d mp4 file.mp4
# decode file as mp4 and also ignore validity assertions
fq -o force=true -d mp4 file.mp4
```
### Display output
`display` or `d` is the main function for displying values and is also the function that will be used if no other output function is explicitly used. If its input is a decode value it will output a dump and tree structure or otherwise it will output as JSON.
Below demonstrates some usages:
First and second example does the same thing, inputs `"hello"` to `display`.
![fq demo](display_json.svg)
In the next few examples we select out the first "edit list" box in an mp4 file, it's a list of which part of media track to be included during playback, and displays it in various ways.
Default if not explicitly used `display` will only show the root level:
![fq demo](display_decode_value.svg)
First row shows ruler with byte offset into the line and JSON path for the value.
The columns are:
- Start address for the line. For example we see that `type` starts at `0xd60`+`0x09`.
- Hex repersenation of input bits for value. Will show the whole byte even if the value only partially uses bits from it.
- ASCII representation of input bits for value. Will show the whole byte even if the value only partially uses bits from it.
- Tree structure of decoded value, symbolic value and description.
Notation:
- `{}` value is an object that might have nested values.
- `[start:end]` value is an array with index starting at `start` and ending at `end` (exclusive).
With `display` or `d` it will recursively show the whole tree:
![fq demo](display_decode_value_d.svg)
Same but verbose `dv`:
![fq demo](display_decode_value_dv.svg)
In verbose mode bit ranges and array element names as shown.
Bit range uses `bytes.bits` notation. For example `type` start at byte `0xd69` bit `0` (left out if zero) and ends at `0xd6c` bit `7` (inclusive) and have byte size of `4`.
There are also some other `display` aliases:
- `da` same as `display({array_truncate: 0})` which will not truncate long arrays.
- `dd` same as `display({array_truncate: 0, display_bytes: 0})` which will not truncate long ranges.
- `dv` same as `display({array_truncate: 0, verbose: true})`
- `ddv` same as `display({array_truncate: 0, display_bytes: 0 verbose: true})` which will not truncate long and also display verbosely.
## Interactive REPL
The interactive [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop)
has auto completion and nested REPL support:
```
```sh
# start REPL with null input
$ fq -i
null>
# same as
$ fq -ni
null>
# in the REPL you will see a prompt indicating current input and you can type jq expression to evaluate.
# start REPL with one file as input
$ fq -i . doc/file.mp3
mp3>
```
In the REPL you will see a prompt indicating current input and you can type jq expression to evaluate.
```
$ fq -i . doc/file.mp3
# basic arithmetics and jq expressions
mp3> 1+1
@ -180,63 +242,103 @@ $ fq -rn '[inputs | [input_filename, first(.chunks[] | select(.type=="IHDR") | .
$ fq '.. | select(scalars and in_bytes_range(0x123))' file
```
## The jq language
fq is based on the [jq language](https://stedolan.github.io/jq/) and for basic usage its syntax
is similar to how object and array access looks in JavaScript or JSON path, `.food[10]` etc.
To get the most out of fq it's recommended to learn more about jq, here are some good starting points:
- [jq manual](https://stedolan.github.io/jq/manual/)
- jq wiki pages
[jq Language Description](https://github.com/stedolan/jq/wiki/jq-Language-Description),
[jq wiki page Cookbook](https://github.com/stedolan/jq/wiki/Cookbook),
[FAQ](https://github.com/stedolan/jq/wiki/FAQ) and
[Pitfalls](https://github.com/stedolan/jq/wiki/How-to:-Avoid-Pitfalls)
The most common beginner gotcha is probably jq's use of `;` and `,`. jq uses `;` as argument separator
and `,` as output separator.
To call a function `f` with two arguments use `f(1; 2)`. If you do `f(1, 2)` you pass a single
argument `1, 2` (a lambda expression that output `1` and then output `2`) to `f`.
## Support formats
See [formats](formats.md)
## Arguments
## The jq language
TODO: examples, stdin/stdout
fq is based on the [jq language](https://stedolan.github.io/jq/) and for basic usage its syntax
is similar to how object and array access looks in JavaScript or JSON path, `.food[10]` etc. but
it can do much more and is a very expressive language.
<pre sh>
$ fq -h 
fq - jq for binary formats
Tool, language and decoders for inspecting binary data.
For more information see https://github.com/wader/fq
To get the most out of fq it's recommended to learn more about jq, here are some good starting points:
Usage: fq [OPTIONS] [--] [EXPR] [FILE...]
- [jq manual](https://stedolan.github.io/jq/manual/)
- [Peter Koppstein's A Stream oriented Introduction to jq](https://github.com/pkoppstein/jq/wiki/A-Stream-oriented-Introduction-to-jq)
- [jq wiki: Language Description](https://github.com/stedolan/jq/wiki/jq-Language-Description)
- [jq wiki: page Cookbook](https://github.com/stedolan/jq/wiki/Cookbook)
- [jq wiki: Pitfalls](https://github.com/stedolan/jq/wiki/How-to:-Avoid-Pitfalls)
- [FAQ](https://github.com/stedolan/jq/wiki/FAQ)
--arg NAME VALUE Set variable $NAME to string VALUE
--argjson NAME JSON Set variable $NAME to JSON
--color-output,-C Force color output
--compact-output,-c Compact output
--decode,-d NAME Decode format (probe)
--decode-file NAME PATH Set variable $NAME to decode of file
--formats Show supported formats
--from-file,-f PATH Read EXPR from file
--help,-h Show help
--include-path,-L PATH Include search path
--join-output,-j No newline between outputs
--monochrome-output,-M Force monochrome output
--null-input,-n Null input (use input/0 and inputs/0 to read input)
--null-output,-0 Null byte between outputs
--option,-o KEY=VALUE Set option, eg: color=true (use options/0 to see all options)
--raw-file NAME PATH Set variable $NAME to string content of file
--raw-input,-R Read raw input strings (don't decode)
--raw-output,-r Raw string output (without quotes)
--repl,-i Interactive REPL
--slurp,-s Read (slurp) all inputs into an array
--version,-v Show version
</pre>
Common beginner gotcha are:
- jq's use of `;` and `,`. jq uses `;` as argument separator
and `,` as output separator. To call a function `f` with two arguments use `f(1; 2)`. If you do `f(1, 2)` you pass a
single argument `1, 2` (a lambda expression that output `1` and then output `2`) to `f`.
- Expressions can return or "output" zero or more values. This is how loops, foreach etc is
achieved.
- Expressions have one implicit input and output value. This how pipelines like `1 | . * 2` work.
## Functions
- All standard library functions from jq
- Adds a few new general functions:
- `print`, `println`, `printerr`, `printerrln` prints to stdout and stderr.
- `streaks`, `streaks_by(f)` like `group` but groups streaks based on condition.
- `count`, `count_by(f)` like `group` but counts groups lengths.
- `debug(f)` like `debug` but uses arg to produce debug message. `{a: 123} | debug({a}) | ...`.
- `path_to_expr` from `["key", 1]` to `".key[1]"`.
- `expr_to_path` from `".key[1]"` to `["key", 1]`.
- `diff($a; $b)` produce diff object between two values.
- `delta`, `delta_by(f)`, array with difference between all consecutive pairs.
- `chunk(f)`, split array or string into even chunks
- Bitwise functions `band`, `bor`, `bxor`, `bsl`, `bsr` and `bnot`. Works the same as jq math functions,
unary uses input and if more than one argument all as arguments ignoring the input. Ex: `1 | bnot` `bsl(1; 3)`
- Adds some decode value specific functions:
- `root` tree root for value
- `buffer_root` root value of buffer for value
- `format_root` root value of format for value
- `parent` parent value
- `parents` output parents of value
- `topath` path of value. Use `path_to_expr` to get a string representation.
- `tovalue`, `tovalue($opts)` symbolic value if available otherwise actual value
- `toactual` actual value (decoded etc)
- `tosym` symbolic value (mapped etc)
- `todescription` description of value
- `torepr` convert decode value into what it reptresents. For example convert msgpack decode value
into a value representing its JSON representation.
- All regexp functions work with buffers as input and pattern argument with these differences
from the string versions:
- All offset and length will be in bytes.
- For `capture` the `.string` value is a buffer.
- If pattern is a buffer it will be matched literally and not as a regexp.
- If pattern is a buffer or flags include "b" each input byte will be read as separate code points
- `scan_toend($v)`, `scan_toend($v; $flags)` works the same as `scan` but output buffer are from start of match to
end of buffer.
instead of possibly multi-byte UTF-8 codepoints. This allows to match raw bytes. Ex: `match("\u00ff"; "b")`
will match the byte `0xff` and not the UTF-8 encoded codepoint for 255, `match("[^\u00ff]"; "b")` will match
all non-`0xff` bytes.
- `grep` functions take 1 or 2 arguments. First is a scalar to match, where a string is
treated as a regexp. A buffer scalar will be matches exact bytes. Second argument are regexp
flags with addition that "b" will treat each byte in the input buffer as a code point, this
makes it possible to match exact bytes.
- `grep($v)`, `grep($v; $flags)` recursively match value and buffer
- `vgrep($v)`, `vgrep($v; $flags)` recursively match value
- `bgrep($v)`, `bgrep($v; $flags)` recursively match buffer
- `fgrep($v)`, `fgrep($v; $flags)` recursively match field name
- `grep_by(f)` recursively match using a filter. Ex: `grep_by(. > 180 and . < 200)`, `first(grep_by(format == "id3v2"))`.
- Buffers:
- `tobits` - Transform input into a bits buffer not preserving source range, will start at zero.
- `tobitsrange` - Transform input into a bits buffer preserving source range if possible.
- `tobytes` - Transform input into a bytes buffer not preserving source range, will start at zero.
- `tobytesrange` - Transform input into a byte buffer preserving source range if possible.
- `buffer[start:end]`, `buffer[:end]`, `buffer[start:]` - Create a sub buffer from start to end in buffer units preserving source range.
- `open` open file for reading
- All decode function takes a optional option argument. The only option currently is `force` to ignore decoder asserts.
For example to decode as mp3 and ignore assets do `mp3({force: true})` or `decode("mp3"; {force: true})`, from command line
you currently have to do `fq -d raw 'mp3({force: true})' file`.
- `decode`, `decode($format)`, `decode($format; $opts)` decode format
- `probe`, `probe($opts)` probe and decode format
- `mp3`, `mp3($opts)`, ..., `<name>`, `<name>($opts)` same as `decode(<name>)($opts)`, `decode($format; $opts)` decode as format
- Display shows hexdump/ASCII/tree for decode values and JSON for other values.
- `d`/`d($opts)` display value and truncate long arrays and buffers
- `da`/`da($opts)` display value and don't truncate arrays
- `dd`/`dd($opts)` display value and don't truncate arrays or buffers
- `dv`/`dv($opts)` verbosely display value and don't truncate arrays but truncate buffers
- `ddv`/`ddv($opts)` verbosely display value and don't truncate arrays or buffers
- `p`/`preview` show preview of field tree
- `hd`/`hexdump` hexdump value
- `repl` nested REPL, must be last in a pipeline. `1 | repl`, can "slurp" outputs `1, 2, 3 | repl`.
## Color and unicode output
@ -271,74 +373,6 @@ notable is support for arbitrary-precision integers.
- There can be keys hidden from `keys` and `[]`.
- Some values are readonly and can't be updated.
## Functions
- All standard library functions from jq
- Adds a few new general functions:
- `print/0`, `println/0`, `printerr/0`, `printerrln` prints to stdout and stderr.
- `streaks/0`, `streaks_by/1` like `group` but groups streaks based on condition.
- `count/0`, `count_by/1` like `group` but counts groups lengths.
- `debug/1` like `debug/0` but uses arg to produce debug message. `{a: 123} | debug({a}) | ...`.
- `path_to_expr/0` from `["key", 1]` to `".key[1]"`.
- `expr_to_path/0` from `".key[1]"` to `["key", 1]`.
- `diff/2` produce diff object between two values.
- `delta/0`, `delta_by/1`, array with difference between all consecutive pairs.
- `chunk/1`, split array or string into even chunks
- Bitwise functions `band`, `bor`, `bxor`, `bsl`, `bsr` and `bnot`. Works the same as jq math functions,
unary uses input and if more than one argument all as arguments ignoring the input. Ex: `1 | bnot` `bsl(1; 3)`
- Adds some decode value specific functions:
- `root/0` tree root for value
- `buffer_root/0` root value of buffer for value
- `format_root/0` root value of format for value
- `parent/0` parent value
- `parents/0` output parents of value
- `topath/0` path of value. Use `path_to_expr` to get a string representation.
- `tovalue/0`, `tovalue/1` symbolic value if available otherwise actual value
- `toactual/0` actual value (decoded etc)
- `tosym/0` symbolic value (mapped etc)
- `todescription/0` description of value
- `torepr/0` convert decode value into what it reptresents. For example convert msgpack decode value
into a value representing its JSON representation.
- All regexp functions work with buffers as input and pattern argument with these differences
from the string versions:
- All offset and length will be in bytes.
- For `capture` the `.string` value is a buffer.
- If pattern is a buffer it will be matched literally and not as a regexp.
- If pattern is a buffer or flags include "b" each input byte will be read as separate code points
- `scan_toend/1`, `scan_toend/2` works the same as `scan` but output buffer are from start of match to
end of buffer.
instead of possibly multi-byte UTF-8 codepoints. This allows to match raw bytes. Ex: `match("\u00ff"; "b")`
will match the byte `0xff` and not the UTF-8 encoded codepoint for 255, `match("[^\u00ff]"; "b")` will match
all non-`0xff` bytes.
- `grep` functions take 1 or 2 arguments. First is a scalar to match, where a string is
treated as a regexp. A buffer scalar will be matches exact bytes. Second argument are regexp
flags with addition that "b" will treat each byte in the input buffer as a code point, this
makes it possible to match exact bytes.
- `grep/1`, `grep/2` recursively match value and buffer
- `vgrep/1`, `vgrep/2` recursively match value
- `bgrep/1`, `bgrep/2` recursively match buffer
- `fgrep/1`, `fgrep/2` recursively match field name
- Buffers:
- `tobits/0` - Transform input into a bits buffer not preserving source range, will start at zero.
- `tobitsrange/0` - Transform input into a bits buffer preserving source range if possible.
- `tobytes/0` - Transform input into a bytes buffer not preserving source range, will start at zero.
- `tobytesrange/0` - Transform input into a byte buffer preserving source range if possible.
- `buffer[start:end]`, `buffer[:end]`, `buffer[start:]` - Create a sub buffer from start to end in buffer units preserving source range.
- `open` open file for reading
- All decode function takes a optional option argument. The only option currently is `force` to ignore decoder asserts.
For example to decode as mp3 and ignore assets do `mp3({force: true})` or `decode("mp3"; {force: true})`, from command line
you currently have to do `fq -d raw 'mp3({force: true})' file`.
- `decode/0`, `decode/1`, `decode/2` decode format
- `probe/0`, `probe/1` probe and decode format
- `mp3/0`, `mp3/1`, ..., `<name>/0`, `<name>/1` same as `decode(<name>)/1`, `decode(<name>; <opts>)/2` decode as format
- Display shows hexdump/ASCII/tree for decode values and JSON for other values.
- `d/0`/`display/0` display value and truncate long arrays
- `f/0`/`full/0` display value and don't truncate arrays
- `v/0`/`verbose/0` display value verbosely and don't truncate array
- `p/0`/`preview/0` show preview of field tree
- `hd/0`/`hexdump/0` hexdump value
- `repl/0` nested REPL, must be last in a pipeline. `1 | repl`, can "slurp" multiple outputs `1, 2, 3 | repl`.
## Decoded values
When you decode something you will get a decode value. A decode values work like

View File

@ -5,6 +5,7 @@ package all
import (
_ "github.com/wader/fq/format/ape"
_ "github.com/wader/fq/format/ar"
_ "github.com/wader/fq/format/asn1"
_ "github.com/wader/fq/format/av1"
_ "github.com/wader/fq/format/avro"
_ "github.com/wader/fq/format/bencode"

View File

@ -56,7 +56,7 @@ func apev2Decode(d *decode.D, in interface{}) interface{} {
d.FieldUTF8("key", int(keyLen))
d.FieldU8("key_terminator")
if binaryItem {
d.LenFn(int64(itemSize)*8, func(d *decode.D) {
d.FramedFn(int64(itemSize)*8, func(d *decode.D) {
d.FieldUTF8Null("filename")
// assume image if binary
dv, _, _ := d.TryFieldFormat("value", imageFormat, nil)

View File

@ -1,7 +1,7 @@
# ffmpeg -f lavfi -i sine -ac 2 -t 10ms -f mp3 test.mp3
# mp3gain test.mp3
# fq '.footers[0] | tobytes' test.mp3 > apev2
$ fq -d apev2 verbose /apev2
$ fq -d apev2 dv /apev2
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: /apev2 (apev2) 0x0-0xad.7 (174)
| | | header{}: 0x0-0x1f.7 (32)
0x00|41 50 45 54 41 47 45 58 |APETAGEX | preamble: "APETAGEX" (valid) 0x0-0x7.7 (8)

View File

@ -1,9 +1,6 @@
package ar
import (
"strconv"
"strings"
"github.com/wader/fq/format"
"github.com/wader/fq/format/registry"
"github.com/wader/fq/pkg/decode"
@ -27,29 +24,14 @@ func init() {
func decodeAr(d *decode.D, in interface{}) interface{} {
d.FieldUTF8("signature", 8, d.AssertStr("!<arch>\n"))
d.FieldArray("files", func(d *decode.D) {
// TODO: extract? share with tar?
mapStrToSymU := func(base int) scalar.Mapper {
return scalar.Fn(func(s scalar.S) (scalar.S, error) {
ts := strings.Trim(s.ActualStr(), " ")
if ts != "" {
n, err := strconv.ParseUint(ts, base, 64)
if err != nil {
return s, err
}
s.Sym = n
}
return s, nil
})
}
for !d.End() {
d.FieldStruct("file", func(d *decode.D) {
d.FieldUTF8("identifier", 16, scalar.TrimSpace)
d.FieldUTF8("modification_timestamp", 12, scalar.TrimSpace, mapStrToSymU(10))
d.FieldUTF8("owner_id", 6, scalar.TrimSpace, mapStrToSymU(10))
d.FieldUTF8("group_id", 6, scalar.TrimSpace, mapStrToSymU(10))
d.FieldUTF8("file_mode", 8, scalar.TrimSpace, mapStrToSymU(8)) // Octal
sizeS := d.FieldScalarUTF8("file_size", 10, scalar.TrimSpace, mapStrToSymU(10))
d.FieldUTF8("modification_timestamp", 12, scalar.TrimSpace, scalar.StrUintToSym(10))
d.FieldUTF8("owner_id", 6, scalar.TrimSpace, scalar.StrUintToSym(10))
d.FieldUTF8("group_id", 6, scalar.TrimSpace, scalar.StrUintToSym(10))
d.FieldUTF8("file_mode", 8, scalar.TrimSpace, scalar.StrUintToSym(8)) // Octal
sizeS := d.FieldScalarUTF8("file_size", 10, scalar.TrimSpace, scalar.StrUintToSym(10))
if sizeS.Sym == nil {
d.Fatalf("could not decode file_size")
}

420
format/asn1/asn1_ber.go Normal file
View File

@ -0,0 +1,420 @@
package asn1
// T-REC-X.690-200811 (BER, DER, CER)
// https://www.itu.int/ITU-T/studygroups/com10/languages/X.690_1297.pdf
// https://cdn.standards.iteh.ai/samples/12285/039296509e8b40f3b25ba025de60365d/ISO-6093-1985.pdf
// https://en.wikipedia.org/wiki/X.690
// https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/
// https://luca.ntop.org/Teaching/Appunti/asn1.html
// https://lapo.it/asn1js/
// TODO: schema
// TODO: der/cer via mode?
// TODO: better torepr
// TODO: utc time
// TODO: validate CER DER
// TODO: bigrat?
import (
"embed"
"math"
"strconv"
"strings"
"github.com/wader/fq/format"
"github.com/wader/fq/format/registry"
"github.com/wader/fq/pkg/bitio"
"github.com/wader/fq/pkg/decode"
"github.com/wader/fq/pkg/scalar"
)
//go:embed *.jq
var asn1FS embed.FS
func init() {
registry.MustRegister(decode.Format{
Name: format.ASN1_BER,
Description: "ASN1 Basic Encoding Rules (also CER and DER)",
DecodeFn: decodeASN1BER,
Files: asn1FS,
ToRepr: "_asn1_ber_torepr",
})
}
const (
classUniversal = 0b00
classApplication = 0b01
classContext = 0b10
classPrivate = 0b11
)
var tagClassMap = scalar.UToSymStr{
classUniversal: "universal",
classApplication: "application",
classContext: "context",
classPrivate: "private",
}
const (
formPrimitive = 0
formConstructed = 1
)
var constructedPrimitiveMap = scalar.UToSymStr{
formConstructed: "constructed",
formPrimitive: "primitive",
}
const (
universalTypeEndOfContent = 0x00
universalTypeBoolean = 0x01
universalTypeInteger = 0x02
universalTypeBitString = 0x03
universalTypeOctetString = 0x04
universalTypeNull = 0x05
universalTypeObjectIdentifier = 0x06
universalTypeObjectDescriptor = 0x07 // not encoded, just documentation?
universalTypeExternal = 0x08
universalTypeReal = 0x09
universalTypeEnumerated = 0x0a
universalTypeEmbedded = 0x0b
universalTypeUTF8string = 0x0c
universalTypeSequence = 0x10
universalTypeSet = 0x11
universalTypeNumericString = 0x12
universalTypePrintableString = 0x13
universalTypeTeletexString = 0x14
universalTypeVideotexString = 0x15
universalTypeIA5String = 0x16
universalTypeUTCTime = 0x17
universalTypeGeneralizedtime = 0x18
universalTypeGraphicString = 0x19 // not encoded?
universalTypeVisibleString = 0x1a
universalTypeGeneralString = 0x1b
universalTypeUniversalString = 0x1c // not encoded?
)
var universalTypeMap = scalar.UToSymStr{
universalTypeEndOfContent: "end_of_content",
universalTypeBoolean: "boolean",
universalTypeInteger: "integer",
universalTypeBitString: "bit_string",
universalTypeOctetString: "octet_string",
universalTypeNull: "null",
universalTypeObjectIdentifier: "object_identifier",
universalTypeObjectDescriptor: "object_descriptor",
universalTypeExternal: "external",
universalTypeReal: "real",
universalTypeEnumerated: "enumerated",
universalTypeEmbedded: "embedded",
universalTypeUTF8string: "utf8_string",
universalTypeSequence: "sequence",
universalTypeSet: "set",
universalTypeNumericString: "numeric_string",
universalTypePrintableString: "printable_string",
universalTypeTeletexString: "teletex_string",
universalTypeVideotexString: "videotex_string",
universalTypeIA5String: "ia5_string",
universalTypeUTCTime: "utc_time",
universalTypeGeneralizedtime: "generalized_time",
universalTypeGraphicString: "graphic_string",
universalTypeVisibleString: "visible_string",
universalTypeGeneralString: "general_string",
universalTypeUniversalString: "universal_string",
}
const (
lengthIndefinite = 0
lengthEndMarker = 0x00_00
)
const (
decimalPlusInfinity = 0b00_00_00
decimalMinusInfinity = 0b00_00_01
decimalNan = 0b00_00_10
decimalMinusZero = 0b00_00_11
)
var lengthMap = scalar.UToSymStr{
0: "indefinite",
}
func decodeLength(d *decode.D) uint64 {
n := d.U8()
if n&0b1000_0000 != 0 {
n = n & 0b0111_1111
if n == 0 {
return lengthIndefinite
}
if n == 127 {
d.Errorf("length 127 reserved")
}
// TODO: bigint
return d.U(int(n) * 8)
}
return n & 0b0111_1111
}
// TODO: bigint?
func decodeTagNumber(d *decode.D) uint64 {
v := d.U5()
moreBytes := v == 0b11111
for moreBytes {
moreBytes = d.Bool()
v = v<<7 | d.U7()
}
return v
}
func decodeASN1BERValue(d *decode.D, bib *bitio.Buffer, sb *strings.Builder, parentForm uint64, parentTag uint64) {
class := d.FieldU2("class", tagClassMap)
form := d.FieldU1("form", constructedPrimitiveMap)
// TODO: verify
// TODO: constructed types verify
_ = parentTag
_ = parentForm
var tag uint64
switch class {
case classUniversal:
tag = d.FieldUFn("tag", decodeTagNumber, universalTypeMap, scalar.Hex)
default:
tag = d.FieldUFn("tag", decodeTagNumber)
}
length := d.FieldUFn("length", decodeLength, lengthMap)
var l int64
switch length {
case lengthIndefinite:
// null has zero length byte
if !(class == classUniversal && tag == universalTypeNull) && form == formPrimitive {
d.Fatalf("primitive with indefinite length")
}
l = d.BitsLeft()
default:
l = int64(length) * 8
}
d.LimitedFn(l, func(d *decode.D) {
switch {
case form == formConstructed || tag == universalTypeSequence || tag == universalTypeSet:
d.FieldArray("constructed", func(d *decode.D) {
for !d.End() {
if length == lengthIndefinite && d.PeekBits(16) == lengthEndMarker {
break
}
if form == formConstructed && bib == nil && sb == nil {
switch tag {
case universalTypeBitString:
bib = &bitio.Buffer{}
case universalTypeOctetString:
bib = &bitio.Buffer{}
case universalTypeUTF8string,
universalTypeNumericString,
universalTypePrintableString,
universalTypeTeletexString,
universalTypeVideotexString,
universalTypeIA5String,
universalTypeUTCTime,
universalTypeVisibleString, // not encoded?
universalTypeGeneralString: // not encoded?
sb = &strings.Builder{}
}
}
d.FieldStruct("object", func(d *decode.D) { decodeASN1BERValue(d, bib, sb, form, tag) })
}
})
if length == lengthIndefinite {
d.FieldU16("end_marker")
}
if form == formConstructed {
switch tag {
case universalTypeBitString:
if bib != nil {
buf, bufLen := bib.Bits()
d.FieldRootBitBuf("value", bitio.NewBitReader(buf, bufLen))
}
case universalTypeOctetString:
if bib != nil {
buf, bufLen := bib.Bits()
d.FieldRootBitBuf("value", bitio.NewBitReader(buf, bufLen))
}
case universalTypeUTF8string,
universalTypeNumericString,
universalTypePrintableString,
universalTypeTeletexString,
universalTypeVideotexString,
universalTypeIA5String,
universalTypeUTCTime,
universalTypeVisibleString, // not encoded?
universalTypeGeneralString: // not encoded?
if sb != nil {
d.FieldValueStr("value", sb.String())
}
}
}
case class == classUniversal && tag == universalTypeEndOfContent:
// nop
case class == classUniversal && tag == universalTypeBoolean:
d.FieldU8("value", scalar.URangeToScalar{
{Range: [2]uint64{0, 0}, S: scalar.S{Sym: false}},
{Range: [2]uint64{0x01, 0xff1}, S: scalar.S{Sym: true}},
})
case class == classUniversal && tag == universalTypeInteger:
if length > 8 {
d.FieldSBigInt("value", int(length)*8)
} else {
d.FieldS("value", int(length)*8)
}
case class == classUniversal && tag == universalTypeBitString:
unusedBitsCount := d.FieldU8("unused_bits_count")
if unusedBitsCount > 7 {
d.Fatalf("unusedBitsCount %d > 7", unusedBitsCount)
}
br := d.FieldRawLen("value", int64(length-1)*8-int64(unusedBitsCount))
if bib != nil {
// TODO: helper?
if _, err := bitio.Copy(bib, br); err != nil {
d.IOPanic(err, "bitio.Copy")
}
}
if unusedBitsCount > 0 {
d.FieldRawLen("unused_bits", int64(unusedBitsCount))
}
case class == classUniversal && tag == universalTypeOctetString:
br := d.FieldRawLen("value", int64(length)*8)
if bib != nil {
// TODO: helper?
if _, err := bitio.Copy(bib, br); err != nil {
d.IOPanic(err, "bitio.Copy")
}
}
case class == classUniversal && tag == universalTypeNull:
d.FieldValueNil("value")
case class == classUniversal && tag == universalTypeObjectIdentifier:
d.FieldArray("value", func(d *decode.D) {
// first byte is = oid0*40 + oid1
d.FieldUFn("oid", func(d *decode.D) uint64 { return d.U8() / 40 })
d.SeekRel(-8)
d.FieldUFn("oid", func(d *decode.D) uint64 { return d.U8() % 40 })
for !d.End() {
d.FieldUFn("oid", func(d *decode.D) uint64 {
more := true
var n uint64
for more {
b := d.U8()
n = n<<7 | b&0b0111_1111
more = b&0b1000_0000 != 0
}
return n
})
}
})
case class == classUniversal && tag == universalTypeObjectDescriptor: // not encoded, just documentation?
// nop
case class == classUniversal && tag == universalTypeExternal:
d.FieldRawLen("value", int64(length)*8)
case class == classUniversal && tag == universalTypeReal:
switch {
case length == 0:
d.FieldValueU("value", 0)
default:
switch d.FieldBool("binary_encoding") {
case true:
s := d.FieldScalarBool("sign", scalar.BoolToSymS{
true: -1,
false: 1,
}).SymS()
base := d.FieldScalarU2("base", scalar.UToSymU{
0b00: 2,
0b01: 8,
0b10: 16,
0b11: 0,
}).SymU()
scale := d.FieldU2("scale")
format := d.FieldU2("format")
var exp int64
switch format {
case 0b00:
exp = d.FieldS8("exp")
case 0b01:
exp = d.FieldS16("exp")
case 0b10:
exp = d.FieldS24("exp")
default:
n := d.FieldU8("exp_bytes")
// TODO: bigint?
exp = d.FieldS("exp", int(n)*8)
}
n := d.FieldU("n", int(d.BitsLeft()))
m := float64(s) * float64(n) * math.Pow(float64(base), float64(exp)) * float64(int(1)<<scale)
d.FieldValueFloat("value", m)
case false:
switch d.FieldBool("decimal_encoding") {
case true:
n := d.FieldU6("special", scalar.UToSymStr{
decimalPlusInfinity: "plus_infinity",
decimalMinusInfinity: "minus_infinity",
decimalNan: "nan",
decimalMinusZero: "minus_zero",
})
switch n {
case decimalPlusInfinity:
d.FieldValueFloat("value", math.Inf(1))
case decimalMinusInfinity:
d.FieldValueFloat("value", math.Inf(-1))
case decimalNan:
d.FieldValueFloat("value", math.NaN())
case decimalMinusZero:
d.FieldValueFloat("value", -0)
}
case false:
d.FieldU6("representation", scalar.UToSymStr{
0b00_00_01: "nr1",
0b00_00_10: "nr2",
0b00_00_11: "nr3",
})
d.FieldFFn("value", func(d *decode.D) float64 {
// TODO: can ParseFloat do all ISO-6093 nr?
n, _ := strconv.ParseFloat(d.UTF8(int(d.BitsLeft()/8)), 64)
return n
})
}
}
}
case class == classUniversal && tag == universalTypeUTF8string,
class == classUniversal && tag == universalTypeNumericString,
class == classUniversal && tag == universalTypePrintableString,
class == classUniversal && tag == universalTypeTeletexString,
class == classUniversal && tag == universalTypeVideotexString,
class == classUniversal && tag == universalTypeIA5String,
class == classUniversal && tag == universalTypeUTCTime,
class == classUniversal && tag == universalTypeVisibleString, // not encoded?
class == classUniversal && tag == universalTypeGeneralString: // not encoded?
// TODO: restrict?
s := d.FieldUTF8("value", int(length))
if sb != nil {
sb.WriteString(s)
}
case class == classUniversal && tag == universalTypeGeneralizedtime:
d.FieldRawLen("value", int64(length)*8)
default:
d.FieldRawLen("value", l)
}
})
}
func decodeASN1BER(d *decode.D, in interface{}) interface{} {
decodeASN1BERValue(d, nil, nil, formConstructed, universalTypeSequence)
return nil
}

10
format/asn1/asn1_ber.jq Normal file
View File

@ -0,0 +1,10 @@
def _asn1_ber_torepr:
def _f:
if .class == "universal" then
if .tag | . == "sequence" or . == "set" then
.constructed | map(_f)
else .value | tovalue
end
else .constructed | map(_f)
end;
_f;

19
format/asn1/asn1_ber.md Normal file
View File

@ -0,0 +1,19 @@
Can also decode CER and BER but with no extra validation. Currently does not support specifying a schema.
Supports `torepr` but without schema support it's not that useful:
```
fq -d asn1_ber torepr file.ber
```
There is also `frompem` and `topem` to help working with PEM format:
```
fq -d raw 'frompem | asn1_ber | d' cert.pem
```
If the schema is known and not that complicated it can be reproduced:
```
fq -d asn1_ber 'torepr as $r | ["version", "modulus", "private_exponent", "private_exponen", "prime1", "prime2", "exponent1", "exponent2", "coefficient"] | with_entries({key: .value, value: $r[.key]})' pkcs1.der
```

13
format/asn1/testdata/README.md vendored Normal file
View File

@ -0,0 +1,13 @@
tc* files from http://www.strozhevsky.com/free_docs/TEST_SUITE.zip
Files were created using:
for i in tc*.ber; do echo "\$ fq -d asn1_ber v $i" > $i.fqtest ; done
rename 's/transformed_//' transformed_tc*
laymans_guide_examples.json extracted from https://luca.ntop.org/Teaching/Appunti/asn1.html
From https://lapo.it/asn1js/ released under ISC license:
sig-p256-der.p7m
sig-p256-ber.p7m
sig-rsa1024-sha1.p7s
letsencrypt-x3.cer
ed25519.cer

13
format/asn1/testdata/ed25519.cer vendored Normal file
View File

@ -0,0 +1,13 @@
X.509 certificate based on Daniel J. Bernsteins Curve25519 (as per RFC 8410).
$ openssl req -x509 -newkey ed25519 -keyout test.key -out test.cer -days 3652 -subj '/C=IT/L=Milano/CN=Test ed25519'
-----BEGIN CERTIFICATE-----
MIIBfzCCATGgAwIBAgIUfI5kSdcO2S0+LkpdL3b2VUJG10YwBQYDK2VwMDUxCzAJ
BgNVBAYTAklUMQ8wDQYDVQQHDAZNaWxhbm8xFTATBgNVBAMMDFRlc3QgZWQyNTUx
OTAeFw0yMDA5MDIxMzI1MjZaFw0zMDA5MDIxMzI1MjZaMDUxCzAJBgNVBAYTAklU
MQ8wDQYDVQQHDAZNaWxhbm8xFTATBgNVBAMMDFRlc3QgZWQyNTUxOTAqMAUGAytl
cAMhADupL/3LF2beQKKS95PeMPgKI6gxIV3QB9hjJC7/aCGFo1MwUTAdBgNVHQ4E
FgQUa6W9z536I1l4EmQXrh5y2JqASugwHwYDVR0jBBgwFoAUa6W9z536I1l4EmQX
rh5y2JqASugwDwYDVR0TAQH/BAUwAwEB/zAFBgMrZXADQQBvc3e+KJZaMzbX5TT9
kPP9QH8fAvkAV/IWDxZrBL9lhLaY0tDSv0zWbw624uidBKPgmVD5wm3ec60dNVeF
ZYYG
-----END CERTIFICATE-----

396
format/asn1/testdata/ed25519.cer.fqtest vendored Normal file
View File

@ -0,0 +1,396 @@
$ fq -d raw 'frompem | asn1_ber | dv' ed25519.cer
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x182.7 (387)
0x000|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x000|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x000|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x000| 82 01 7f | ... | length: 383 0x1-0x3.7 (3)
| | | constructed[0:3]: 0x4-0x182.7 (383)
| | | [0]{}: object 0x4-0x138.7 (309)
0x000| 30 | 0 | class: "universal" (0) 0x4-0x4.1 (0.2)
0x000| 30 | 0 | form: "constructed" (1) 0x4.2-0x4.2 (0.1)
0x000| 30 | 0 | tag: "sequence" (0x10) 0x4.3-0x4.7 (0.5)
0x000| 82 01 31 | ..1 | length: 305 0x5-0x7.7 (3)
| | | constructed[0:8]: 0x8-0x138.7 (305)
| | | [0]{}: object 0x8-0xc.7 (5)
0x000| a0 | . | class: "context" (2) 0x8-0x8.1 (0.2)
0x000| a0 | . | form: "constructed" (1) 0x8.2-0x8.2 (0.1)
0x000| a0 | . | tag: 0 0x8.3-0x8.7 (0.5)
0x000| 03 | . | length: 3 0x9-0x9.7 (1)
| | | constructed[0:1]: 0xa-0xc.7 (3)
| | | [0]{}: object 0xa-0xc.7 (3)
0x000| 02 | . | class: "universal" (0) 0xa-0xa.1 (0.2)
0x000| 02 | . | form: "primitive" (0) 0xa.2-0xa.2 (0.1)
0x000| 02 | . | tag: "integer" (0x2) 0xa.3-0xa.7 (0.5)
0x000| 01 | . | length: 1 0xb-0xb.7 (1)
0x000| 02 | . | value: 2 0xc-0xc.7 (1)
| | | [1]{}: object 0xd-0x22.7 (22)
0x000| 02 | . | class: "universal" (0) 0xd-0xd.1 (0.2)
0x000| 02 | . | form: "primitive" (0) 0xd.2-0xd.2 (0.1)
0x000| 02 | . | tag: "integer" (0x2) 0xd.3-0xd.7 (0.5)
0x000| 14 | . | length: 20 0xe-0xe.7 (1)
0x000| 7c| || value: 711090297755414526861352146244170174161660335942 0xf-0x22.7 (20)
0x010|8e 64 49 d7 0e d9 2d 3e 2e 4a 5d 2f 76 f6 55 42|.dI...->.J]/v.UB|
0x020|46 d7 46 |F.F |
| | | [2]{}: object 0x23-0x29.7 (7)
0x020| 30 | 0 | class: "universal" (0) 0x23-0x23.1 (0.2)
0x020| 30 | 0 | form: "constructed" (1) 0x23.2-0x23.2 (0.1)
0x020| 30 | 0 | tag: "sequence" (0x10) 0x23.3-0x23.7 (0.5)
0x020| 05 | . | length: 5 0x24-0x24.7 (1)
| | | constructed[0:1]: 0x25-0x29.7 (5)
| | | [0]{}: object 0x25-0x29.7 (5)
0x020| 06 | . | class: "universal" (0) 0x25-0x25.1 (0.2)
0x020| 06 | . | form: "primitive" (0) 0x25.2-0x25.2 (0.1)
0x020| 06 | . | tag: "object_identifier" (0x6) 0x25.3-0x25.7 (0.5)
0x020| 03 | . | length: 3 0x26-0x26.7 (1)
| | | value[0:4]: 0x27-0x29.7 (3)
0x020| 2b | + | [0]: 1 oid 0x27-0x27.7 (1)
0x020| 2b | + | [1]: 3 oid 0x27-0x27.7 (1)
0x020| 65 | e | [2]: 101 oid 0x28-0x28.7 (1)
0x020| 70 | p | [3]: 112 oid 0x29-0x29.7 (1)
| | | [3]{}: object 0x2a-0x60.7 (55)
0x020| 30 | 0 | class: "universal" (0) 0x2a-0x2a.1 (0.2)
0x020| 30 | 0 | form: "constructed" (1) 0x2a.2-0x2a.2 (0.1)
0x020| 30 | 0 | tag: "sequence" (0x10) 0x2a.3-0x2a.7 (0.5)
0x020| 35 | 5 | length: 53 0x2b-0x2b.7 (1)
| | | constructed[0:3]: 0x2c-0x60.7 (53)
| | | [0]{}: object 0x2c-0x38.7 (13)
0x020| 31 | 1 | class: "universal" (0) 0x2c-0x2c.1 (0.2)
0x020| 31 | 1 | form: "constructed" (1) 0x2c.2-0x2c.2 (0.1)
0x020| 31 | 1 | tag: "set" (0x11) 0x2c.3-0x2c.7 (0.5)
0x020| 0b | . | length: 11 0x2d-0x2d.7 (1)
| | | constructed[0:1]: 0x2e-0x38.7 (11)
| | | [0]{}: object 0x2e-0x38.7 (11)
0x020| 30 | 0 | class: "universal" (0) 0x2e-0x2e.1 (0.2)
0x020| 30 | 0 | form: "constructed" (1) 0x2e.2-0x2e.2 (0.1)
0x020| 30 | 0 | tag: "sequence" (0x10) 0x2e.3-0x2e.7 (0.5)
0x020| 09| .| length: 9 0x2f-0x2f.7 (1)
| | | constructed[0:2]: 0x30-0x38.7 (9)
| | | [0]{}: object 0x30-0x34.7 (5)
0x030|06 |. | class: "universal" (0) 0x30-0x30.1 (0.2)
0x030|06 |. | form: "primitive" (0) 0x30.2-0x30.2 (0.1)
0x030|06 |. | tag: "object_identifier" (0x6) 0x30.3-0x30.7 (0.5)
0x030| 03 | . | length: 3 0x31-0x31.7 (1)
| | | value[0:4]: 0x32-0x34.7 (3)
0x030| 55 | U | [0]: 2 oid 0x32-0x32.7 (1)
0x030| 55 | U | [1]: 5 oid 0x32-0x32.7 (1)
0x030| 04 | . | [2]: 4 oid 0x33-0x33.7 (1)
0x030| 06 | . | [3]: 6 oid 0x34-0x34.7 (1)
| | | [1]{}: object 0x35-0x38.7 (4)
0x030| 13 | . | class: "universal" (0) 0x35-0x35.1 (0.2)
0x030| 13 | . | form: "primitive" (0) 0x35.2-0x35.2 (0.1)
0x030| 13 | . | tag: "printable_string" (0x13) 0x35.3-0x35.7 (0.5)
0x030| 02 | . | length: 2 0x36-0x36.7 (1)
0x030| 49 54 | IT | value: "IT" 0x37-0x38.7 (2)
| | | [1]{}: object 0x39-0x49.7 (17)
0x030| 31 | 1 | class: "universal" (0) 0x39-0x39.1 (0.2)
0x030| 31 | 1 | form: "constructed" (1) 0x39.2-0x39.2 (0.1)
0x030| 31 | 1 | tag: "set" (0x11) 0x39.3-0x39.7 (0.5)
0x030| 0f | . | length: 15 0x3a-0x3a.7 (1)
| | | constructed[0:1]: 0x3b-0x49.7 (15)
| | | [0]{}: object 0x3b-0x49.7 (15)
0x030| 30 | 0 | class: "universal" (0) 0x3b-0x3b.1 (0.2)
0x030| 30 | 0 | form: "constructed" (1) 0x3b.2-0x3b.2 (0.1)
0x030| 30 | 0 | tag: "sequence" (0x10) 0x3b.3-0x3b.7 (0.5)
0x030| 0d | . | length: 13 0x3c-0x3c.7 (1)
| | | constructed[0:2]: 0x3d-0x49.7 (13)
| | | [0]{}: object 0x3d-0x41.7 (5)
0x030| 06 | . | class: "universal" (0) 0x3d-0x3d.1 (0.2)
0x030| 06 | . | form: "primitive" (0) 0x3d.2-0x3d.2 (0.1)
0x030| 06 | . | tag: "object_identifier" (0x6) 0x3d.3-0x3d.7 (0.5)
0x030| 03 | . | length: 3 0x3e-0x3e.7 (1)
| | | value[0:4]: 0x3f-0x41.7 (3)
0x030| 55| U| [0]: 2 oid 0x3f-0x3f.7 (1)
0x030| 55| U| [1]: 5 oid 0x3f-0x3f.7 (1)
0x040|04 |. | [2]: 4 oid 0x40-0x40.7 (1)
0x040| 07 | . | [3]: 7 oid 0x41-0x41.7 (1)
| | | [1]{}: object 0x42-0x49.7 (8)
0x040| 0c | . | class: "universal" (0) 0x42-0x42.1 (0.2)
0x040| 0c | . | form: "primitive" (0) 0x42.2-0x42.2 (0.1)
0x040| 0c | . | tag: "utf8_string" (0xc) 0x42.3-0x42.7 (0.5)
0x040| 06 | . | length: 6 0x43-0x43.7 (1)
0x040| 4d 69 6c 61 6e 6f | Milano | value: "Milano" 0x44-0x49.7 (6)
| | | [2]{}: object 0x4a-0x60.7 (23)
0x040| 31 | 1 | class: "universal" (0) 0x4a-0x4a.1 (0.2)
0x040| 31 | 1 | form: "constructed" (1) 0x4a.2-0x4a.2 (0.1)
0x040| 31 | 1 | tag: "set" (0x11) 0x4a.3-0x4a.7 (0.5)
0x040| 15 | . | length: 21 0x4b-0x4b.7 (1)
| | | constructed[0:1]: 0x4c-0x60.7 (21)
| | | [0]{}: object 0x4c-0x60.7 (21)
0x040| 30 | 0 | class: "universal" (0) 0x4c-0x4c.1 (0.2)
0x040| 30 | 0 | form: "constructed" (1) 0x4c.2-0x4c.2 (0.1)
0x040| 30 | 0 | tag: "sequence" (0x10) 0x4c.3-0x4c.7 (0.5)
0x040| 13 | . | length: 19 0x4d-0x4d.7 (1)
| | | constructed[0:2]: 0x4e-0x60.7 (19)
| | | [0]{}: object 0x4e-0x52.7 (5)
0x040| 06 | . | class: "universal" (0) 0x4e-0x4e.1 (0.2)
0x040| 06 | . | form: "primitive" (0) 0x4e.2-0x4e.2 (0.1)
0x040| 06 | . | tag: "object_identifier" (0x6) 0x4e.3-0x4e.7 (0.5)
0x040| 03| .| length: 3 0x4f-0x4f.7 (1)
| | | value[0:4]: 0x50-0x52.7 (3)
0x050|55 |U | [0]: 2 oid 0x50-0x50.7 (1)
0x050|55 |U | [1]: 5 oid 0x50-0x50.7 (1)
0x050| 04 | . | [2]: 4 oid 0x51-0x51.7 (1)
0x050| 03 | . | [3]: 3 oid 0x52-0x52.7 (1)
| | | [1]{}: object 0x53-0x60.7 (14)
0x050| 0c | . | class: "universal" (0) 0x53-0x53.1 (0.2)
0x050| 0c | . | form: "primitive" (0) 0x53.2-0x53.2 (0.1)
0x050| 0c | . | tag: "utf8_string" (0xc) 0x53.3-0x53.7 (0.5)
0x050| 0c | . | length: 12 0x54-0x54.7 (1)
0x050| 54 65 73 74 20 65 64 32 35 35 31| Test ed2551| value: "Test ed25519" 0x55-0x60.7 (12)
0x060|39 |9 |
| | | [4]{}: object 0x61-0x80.7 (32)
0x060| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2)
0x060| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1)
0x060| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5)
0x060| 1e | . | length: 30 0x62-0x62.7 (1)
| | | constructed[0:2]: 0x63-0x80.7 (30)
| | | [0]{}: object 0x63-0x71.7 (15)
0x060| 17 | . | class: "universal" (0) 0x63-0x63.1 (0.2)
0x060| 17 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1)
0x060| 17 | . | tag: "utc_time" (0x17) 0x63.3-0x63.7 (0.5)
0x060| 0d | . | length: 13 0x64-0x64.7 (1)
0x060| 32 30 30 39 30 32 31 33 32 35 32| 20090213252| value: "200902132526Z" 0x65-0x71.7 (13)
0x070|36 5a |6Z |
| | | [1]{}: object 0x72-0x80.7 (15)
0x070| 17 | . | class: "universal" (0) 0x72-0x72.1 (0.2)
0x070| 17 | . | form: "primitive" (0) 0x72.2-0x72.2 (0.1)
0x070| 17 | . | tag: "utc_time" (0x17) 0x72.3-0x72.7 (0.5)
0x070| 0d | . | length: 13 0x73-0x73.7 (1)
0x070| 33 30 30 39 30 32 31 33 32 35 32 36| 300902132526| value: "300902132526Z" 0x74-0x80.7 (13)
0x080|5a |Z |
| | | [5]{}: object 0x81-0xb7.7 (55)
0x080| 30 | 0 | class: "universal" (0) 0x81-0x81.1 (0.2)
0x080| 30 | 0 | form: "constructed" (1) 0x81.2-0x81.2 (0.1)
0x080| 30 | 0 | tag: "sequence" (0x10) 0x81.3-0x81.7 (0.5)
0x080| 35 | 5 | length: 53 0x82-0x82.7 (1)
| | | constructed[0:3]: 0x83-0xb7.7 (53)
| | | [0]{}: object 0x83-0x8f.7 (13)
0x080| 31 | 1 | class: "universal" (0) 0x83-0x83.1 (0.2)
0x080| 31 | 1 | form: "constructed" (1) 0x83.2-0x83.2 (0.1)
0x080| 31 | 1 | tag: "set" (0x11) 0x83.3-0x83.7 (0.5)
0x080| 0b | . | length: 11 0x84-0x84.7 (1)
| | | constructed[0:1]: 0x85-0x8f.7 (11)
| | | [0]{}: object 0x85-0x8f.7 (11)
0x080| 30 | 0 | class: "universal" (0) 0x85-0x85.1 (0.2)
0x080| 30 | 0 | form: "constructed" (1) 0x85.2-0x85.2 (0.1)
0x080| 30 | 0 | tag: "sequence" (0x10) 0x85.3-0x85.7 (0.5)
0x080| 09 | . | length: 9 0x86-0x86.7 (1)
| | | constructed[0:2]: 0x87-0x8f.7 (9)
| | | [0]{}: object 0x87-0x8b.7 (5)
0x080| 06 | . | class: "universal" (0) 0x87-0x87.1 (0.2)
0x080| 06 | . | form: "primitive" (0) 0x87.2-0x87.2 (0.1)
0x080| 06 | . | tag: "object_identifier" (0x6) 0x87.3-0x87.7 (0.5)
0x080| 03 | . | length: 3 0x88-0x88.7 (1)
| | | value[0:4]: 0x89-0x8b.7 (3)
0x080| 55 | U | [0]: 2 oid 0x89-0x89.7 (1)
0x080| 55 | U | [1]: 5 oid 0x89-0x89.7 (1)
0x080| 04 | . | [2]: 4 oid 0x8a-0x8a.7 (1)
0x080| 06 | . | [3]: 6 oid 0x8b-0x8b.7 (1)
| | | [1]{}: object 0x8c-0x8f.7 (4)
0x080| 13 | . | class: "universal" (0) 0x8c-0x8c.1 (0.2)
0x080| 13 | . | form: "primitive" (0) 0x8c.2-0x8c.2 (0.1)
0x080| 13 | . | tag: "printable_string" (0x13) 0x8c.3-0x8c.7 (0.5)
0x080| 02 | . | length: 2 0x8d-0x8d.7 (1)
0x080| 49 54| IT| value: "IT" 0x8e-0x8f.7 (2)
| | | [1]{}: object 0x90-0xa0.7 (17)
0x090|31 |1 | class: "universal" (0) 0x90-0x90.1 (0.2)
0x090|31 |1 | form: "constructed" (1) 0x90.2-0x90.2 (0.1)
0x090|31 |1 | tag: "set" (0x11) 0x90.3-0x90.7 (0.5)
0x090| 0f | . | length: 15 0x91-0x91.7 (1)
| | | constructed[0:1]: 0x92-0xa0.7 (15)
| | | [0]{}: object 0x92-0xa0.7 (15)
0x090| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2)
0x090| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1)
0x090| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5)
0x090| 0d | . | length: 13 0x93-0x93.7 (1)
| | | constructed[0:2]: 0x94-0xa0.7 (13)
| | | [0]{}: object 0x94-0x98.7 (5)
0x090| 06 | . | class: "universal" (0) 0x94-0x94.1 (0.2)
0x090| 06 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1)
0x090| 06 | . | tag: "object_identifier" (0x6) 0x94.3-0x94.7 (0.5)
0x090| 03 | . | length: 3 0x95-0x95.7 (1)
| | | value[0:4]: 0x96-0x98.7 (3)
0x090| 55 | U | [0]: 2 oid 0x96-0x96.7 (1)
0x090| 55 | U | [1]: 5 oid 0x96-0x96.7 (1)
0x090| 04 | . | [2]: 4 oid 0x97-0x97.7 (1)
0x090| 07 | . | [3]: 7 oid 0x98-0x98.7 (1)
| | | [1]{}: object 0x99-0xa0.7 (8)
0x090| 0c | . | class: "universal" (0) 0x99-0x99.1 (0.2)
0x090| 0c | . | form: "primitive" (0) 0x99.2-0x99.2 (0.1)
0x090| 0c | . | tag: "utf8_string" (0xc) 0x99.3-0x99.7 (0.5)
0x090| 06 | . | length: 6 0x9a-0x9a.7 (1)
0x090| 4d 69 6c 61 6e| Milan| value: "Milano" 0x9b-0xa0.7 (6)
0x0a0|6f |o |
| | | [2]{}: object 0xa1-0xb7.7 (23)
0x0a0| 31 | 1 | class: "universal" (0) 0xa1-0xa1.1 (0.2)
0x0a0| 31 | 1 | form: "constructed" (1) 0xa1.2-0xa1.2 (0.1)
0x0a0| 31 | 1 | tag: "set" (0x11) 0xa1.3-0xa1.7 (0.5)
0x0a0| 15 | . | length: 21 0xa2-0xa2.7 (1)
| | | constructed[0:1]: 0xa3-0xb7.7 (21)
| | | [0]{}: object 0xa3-0xb7.7 (21)
0x0a0| 30 | 0 | class: "universal" (0) 0xa3-0xa3.1 (0.2)
0x0a0| 30 | 0 | form: "constructed" (1) 0xa3.2-0xa3.2 (0.1)
0x0a0| 30 | 0 | tag: "sequence" (0x10) 0xa3.3-0xa3.7 (0.5)
0x0a0| 13 | . | length: 19 0xa4-0xa4.7 (1)
| | | constructed[0:2]: 0xa5-0xb7.7 (19)
| | | [0]{}: object 0xa5-0xa9.7 (5)
0x0a0| 06 | . | class: "universal" (0) 0xa5-0xa5.1 (0.2)
0x0a0| 06 | . | form: "primitive" (0) 0xa5.2-0xa5.2 (0.1)
0x0a0| 06 | . | tag: "object_identifier" (0x6) 0xa5.3-0xa5.7 (0.5)
0x0a0| 03 | . | length: 3 0xa6-0xa6.7 (1)
| | | value[0:4]: 0xa7-0xa9.7 (3)
0x0a0| 55 | U | [0]: 2 oid 0xa7-0xa7.7 (1)
0x0a0| 55 | U | [1]: 5 oid 0xa7-0xa7.7 (1)
0x0a0| 04 | . | [2]: 4 oid 0xa8-0xa8.7 (1)
0x0a0| 03 | . | [3]: 3 oid 0xa9-0xa9.7 (1)
| | | [1]{}: object 0xaa-0xb7.7 (14)
0x0a0| 0c | . | class: "universal" (0) 0xaa-0xaa.1 (0.2)
0x0a0| 0c | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1)
0x0a0| 0c | . | tag: "utf8_string" (0xc) 0xaa.3-0xaa.7 (0.5)
0x0a0| 0c | . | length: 12 0xab-0xab.7 (1)
0x0a0| 54 65 73 74| Test| value: "Test ed25519" 0xac-0xb7.7 (12)
0x0b0|20 65 64 32 35 35 31 39 | ed25519 |
| | | [6]{}: object 0xb8-0xe3.7 (44)
0x0b0| 30 | 0 | class: "universal" (0) 0xb8-0xb8.1 (0.2)
0x0b0| 30 | 0 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1)
0x0b0| 30 | 0 | tag: "sequence" (0x10) 0xb8.3-0xb8.7 (0.5)
0x0b0| 2a | * | length: 42 0xb9-0xb9.7 (1)
| | | constructed[0:2]: 0xba-0xe3.7 (42)
| | | [0]{}: object 0xba-0xc0.7 (7)
0x0b0| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2)
0x0b0| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1)
0x0b0| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5)
0x0b0| 05 | . | length: 5 0xbb-0xbb.7 (1)
| | | constructed[0:1]: 0xbc-0xc0.7 (5)
| | | [0]{}: object 0xbc-0xc0.7 (5)
0x0b0| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2)
0x0b0| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1)
0x0b0| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5)
0x0b0| 03 | . | length: 3 0xbd-0xbd.7 (1)
| | | value[0:4]: 0xbe-0xc0.7 (3)
0x0b0| 2b | + | [0]: 1 oid 0xbe-0xbe.7 (1)
0x0b0| 2b | + | [1]: 3 oid 0xbe-0xbe.7 (1)
0x0b0| 65| e| [2]: 101 oid 0xbf-0xbf.7 (1)
0x0c0|70 |p | [3]: 112 oid 0xc0-0xc0.7 (1)
| | | [1]{}: object 0xc1-0xe3.7 (35)
0x0c0| 03 | . | class: "universal" (0) 0xc1-0xc1.1 (0.2)
0x0c0| 03 | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1)
0x0c0| 03 | . | tag: "bit_string" (0x3) 0xc1.3-0xc1.7 (0.5)
0x0c0| 21 | ! | length: 33 0xc2-0xc2.7 (1)
0x0c0| 00 | . | unused_bits_count: 0 0xc3-0xc3.7 (1)
0x0c0| 3b a9 2f fd cb 17 66 de 40 a2 92 f7| ;./...f.@...| value: raw bits 0xc4-0xe3.7 (32)
0x0d0|93 de 30 f8 0a 23 a8 31 21 5d d0 07 d8 63 24 2e|..0..#.1!]...c$.|
0x0e0|ff 68 21 85 |.h!. |
| | | [7]{}: object 0xe4-0x138.7 (85)
0x0e0| a3 | . | class: "context" (2) 0xe4-0xe4.1 (0.2)
0x0e0| a3 | . | form: "constructed" (1) 0xe4.2-0xe4.2 (0.1)
0x0e0| a3 | . | tag: 3 0xe4.3-0xe4.7 (0.5)
0x0e0| 53 | S | length: 83 0xe5-0xe5.7 (1)
| | | constructed[0:1]: 0xe6-0x138.7 (83)
| | | [0]{}: object 0xe6-0x138.7 (83)
0x0e0| 30 | 0 | class: "universal" (0) 0xe6-0xe6.1 (0.2)
0x0e0| 30 | 0 | form: "constructed" (1) 0xe6.2-0xe6.2 (0.1)
0x0e0| 30 | 0 | tag: "sequence" (0x10) 0xe6.3-0xe6.7 (0.5)
0x0e0| 51 | Q | length: 81 0xe7-0xe7.7 (1)
| | | constructed[0:3]: 0xe8-0x138.7 (81)
| | | [0]{}: object 0xe8-0x106.7 (31)
0x0e0| 30 | 0 | class: "universal" (0) 0xe8-0xe8.1 (0.2)
0x0e0| 30 | 0 | form: "constructed" (1) 0xe8.2-0xe8.2 (0.1)
0x0e0| 30 | 0 | tag: "sequence" (0x10) 0xe8.3-0xe8.7 (0.5)
0x0e0| 1d | . | length: 29 0xe9-0xe9.7 (1)
| | | constructed[0:2]: 0xea-0x106.7 (29)
| | | [0]{}: object 0xea-0xee.7 (5)
0x0e0| 06 | . | class: "universal" (0) 0xea-0xea.1 (0.2)
0x0e0| 06 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1)
0x0e0| 06 | . | tag: "object_identifier" (0x6) 0xea.3-0xea.7 (0.5)
0x0e0| 03 | . | length: 3 0xeb-0xeb.7 (1)
| | | value[0:4]: 0xec-0xee.7 (3)
0x0e0| 55 | U | [0]: 2 oid 0xec-0xec.7 (1)
0x0e0| 55 | U | [1]: 5 oid 0xec-0xec.7 (1)
0x0e0| 1d | . | [2]: 29 oid 0xed-0xed.7 (1)
0x0e0| 0e | . | [3]: 14 oid 0xee-0xee.7 (1)
| | | [1]{}: object 0xef-0x106.7 (24)
0x0e0| 04| .| class: "universal" (0) 0xef-0xef.1 (0.2)
0x0e0| 04| .| form: "primitive" (0) 0xef.2-0xef.2 (0.1)
0x0e0| 04| .| tag: "octet_string" (0x4) 0xef.3-0xef.7 (0.5)
0x0f0|16 |. | length: 22 0xf0-0xf0.7 (1)
0x0f0| 04 14 6b a5 bd cf 9d fa 23 59 78 12 64 17 ae| ..k.....#Yx.d..| value: raw bits 0xf1-0x106.7 (22)
0x100|1e 72 d8 9a 80 4a e8 |.r...J. |
| | | [1]{}: object 0x107-0x127.7 (33)
0x100| 30 | 0 | class: "universal" (0) 0x107-0x107.1 (0.2)
0x100| 30 | 0 | form: "constructed" (1) 0x107.2-0x107.2 (0.1)
0x100| 30 | 0 | tag: "sequence" (0x10) 0x107.3-0x107.7 (0.5)
0x100| 1f | . | length: 31 0x108-0x108.7 (1)
| | | constructed[0:2]: 0x109-0x127.7 (31)
| | | [0]{}: object 0x109-0x10d.7 (5)
0x100| 06 | . | class: "universal" (0) 0x109-0x109.1 (0.2)
0x100| 06 | . | form: "primitive" (0) 0x109.2-0x109.2 (0.1)
0x100| 06 | . | tag: "object_identifier" (0x6) 0x109.3-0x109.7 (0.5)
0x100| 03 | . | length: 3 0x10a-0x10a.7 (1)
| | | value[0:4]: 0x10b-0x10d.7 (3)
0x100| 55 | U | [0]: 2 oid 0x10b-0x10b.7 (1)
0x100| 55 | U | [1]: 5 oid 0x10b-0x10b.7 (1)
0x100| 1d | . | [2]: 29 oid 0x10c-0x10c.7 (1)
0x100| 23 | # | [3]: 35 oid 0x10d-0x10d.7 (1)
| | | [1]{}: object 0x10e-0x127.7 (26)
0x100| 04 | . | class: "universal" (0) 0x10e-0x10e.1 (0.2)
0x100| 04 | . | form: "primitive" (0) 0x10e.2-0x10e.2 (0.1)
0x100| 04 | . | tag: "octet_string" (0x4) 0x10e.3-0x10e.7 (0.5)
0x100| 18| .| length: 24 0x10f-0x10f.7 (1)
0x110|30 16 80 14 6b a5 bd cf 9d fa 23 59 78 12 64 17|0...k.....#Yx.d.| value: raw bits 0x110-0x127.7 (24)
0x120|ae 1e 72 d8 9a 80 4a e8 |..r...J. |
| | | [2]{}: object 0x128-0x138.7 (17)
0x120| 30 | 0 | class: "universal" (0) 0x128-0x128.1 (0.2)
0x120| 30 | 0 | form: "constructed" (1) 0x128.2-0x128.2 (0.1)
0x120| 30 | 0 | tag: "sequence" (0x10) 0x128.3-0x128.7 (0.5)
0x120| 0f | . | length: 15 0x129-0x129.7 (1)
| | | constructed[0:3]: 0x12a-0x138.7 (15)
| | | [0]{}: object 0x12a-0x12e.7 (5)
0x120| 06 | . | class: "universal" (0) 0x12a-0x12a.1 (0.2)
0x120| 06 | . | form: "primitive" (0) 0x12a.2-0x12a.2 (0.1)
0x120| 06 | . | tag: "object_identifier" (0x6) 0x12a.3-0x12a.7 (0.5)
0x120| 03 | . | length: 3 0x12b-0x12b.7 (1)
| | | value[0:4]: 0x12c-0x12e.7 (3)
0x120| 55 | U | [0]: 2 oid 0x12c-0x12c.7 (1)
0x120| 55 | U | [1]: 5 oid 0x12c-0x12c.7 (1)
0x120| 1d | . | [2]: 29 oid 0x12d-0x12d.7 (1)
0x120| 13 | . | [3]: 19 oid 0x12e-0x12e.7 (1)
| | | [1]{}: object 0x12f-0x131.7 (3)
0x120| 01| .| class: "universal" (0) 0x12f-0x12f.1 (0.2)
0x120| 01| .| form: "primitive" (0) 0x12f.2-0x12f.2 (0.1)
0x120| 01| .| tag: "boolean" (0x1) 0x12f.3-0x12f.7 (0.5)
0x130|01 |. | length: 1 0x130-0x130.7 (1)
0x130| ff | . | value: true (255) 0x131-0x131.7 (1)
| | | [2]{}: object 0x132-0x138.7 (7)
0x130| 04 | . | class: "universal" (0) 0x132-0x132.1 (0.2)
0x130| 04 | . | form: "primitive" (0) 0x132.2-0x132.2 (0.1)
0x130| 04 | . | tag: "octet_string" (0x4) 0x132.3-0x132.7 (0.5)
0x130| 05 | . | length: 5 0x133-0x133.7 (1)
0x130| 30 03 01 01 ff | 0.... | value: raw bits 0x134-0x138.7 (5)
0x00|04 14 6b a5 bd cf 9d fa 23 59 78 12 64 17 ae 1e|..k.....#Yx.d...| value: raw bits 0x0-0x32.7 (51)
* |until 0x32.7 (end) (51) | |
| | | [1]{}: object 0x139-0x13f.7 (7)
0x130| 30 | 0 | class: "universal" (0) 0x139-0x139.1 (0.2)
0x130| 30 | 0 | form: "constructed" (1) 0x139.2-0x139.2 (0.1)
0x130| 30 | 0 | tag: "sequence" (0x10) 0x139.3-0x139.7 (0.5)
0x130| 05 | . | length: 5 0x13a-0x13a.7 (1)
| | | constructed[0:1]: 0x13b-0x13f.7 (5)
| | | [0]{}: object 0x13b-0x13f.7 (5)
0x130| 06 | . | class: "universal" (0) 0x13b-0x13b.1 (0.2)
0x130| 06 | . | form: "primitive" (0) 0x13b.2-0x13b.2 (0.1)
0x130| 06 | . | tag: "object_identifier" (0x6) 0x13b.3-0x13b.7 (0.5)
0x130| 03 | . | length: 3 0x13c-0x13c.7 (1)
| | | value[0:4]: 0x13d-0x13f.7 (3)
0x130| 2b | + | [0]: 1 oid 0x13d-0x13d.7 (1)
0x130| 2b | + | [1]: 3 oid 0x13d-0x13d.7 (1)
0x130| 65 | e | [2]: 101 oid 0x13e-0x13e.7 (1)
0x130| 70| p| [3]: 112 oid 0x13f-0x13f.7 (1)
| | | [2]{}: object 0x140-0x182.7 (67)
0x140|03 |. | class: "universal" (0) 0x140-0x140.1 (0.2)
0x140|03 |. | form: "primitive" (0) 0x140.2-0x140.2 (0.1)
0x140|03 |. | tag: "bit_string" (0x3) 0x140.3-0x140.7 (0.5)
0x140| 41 | A | length: 65 0x141-0x141.7 (1)
0x140| 00 | . | unused_bits_count: 0 0x142-0x142.7 (1)
0x140| 6f 73 77 be 28 96 5a 33 36 d7 e5 34 fd| osw.(.Z36..4.| value: raw bits 0x143-0x182.7 (64)
0x150|90 f3 fd 40 7f 1f 02 f9 00 57 f2 16 0f 16 6b 04|...@.....W....k.|
* |until 0x182.7 (end) (64) | |

View File

@ -0,0 +1,551 @@
$ fq '.[] | . as $t | .hex | gsub("[^0-9a-f]";"") | hex | $t, (asn1_ber | dv)' laymans_guide_examples.json
{
"decoded": "011011100101110111",
"hex": "03 04 06 6e 5d c0"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x5.7 (6)
0x0|03 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|03 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|03 |. | tag: "bit_string" (0x3) 0x0.3-0x0.7 (0.5)
0x0| 04 | . | length: 4 0x1-0x1.7 (1)
0x0| 06 | . | unused_bits_count: 6 0x2-0x2.7 (1)
0x0| 6e 5d c0| | n].| | value: raw bits 0x3-0x5.1 (2.2)
0x0| c0| | .| | unused_bits: raw bits 0x5.2-0x5.7 (0.6)
{
"decoded": "011011100101110111",
"hex": "03 04 06 6e 5d e0"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x5.7 (6)
0x0|03 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|03 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|03 |. | tag: "bit_string" (0x3) 0x0.3-0x0.7 (0.5)
0x0| 04 | . | length: 4 0x1-0x1.7 (1)
0x0| 06 | . | unused_bits_count: 6 0x2-0x2.7 (1)
0x0| 6e 5d e0| | n].| | value: raw bits 0x3-0x5.1 (2.2)
0x0| e0| | .| | unused_bits: raw bits 0x5.2-0x5.7 (0.6)
{
"decoded": "011011100101110111",
"hex": "03 81 04 06 6e 5d c0"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x6.7 (7)
0x0|03 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|03 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|03 |. | tag: "bit_string" (0x3) 0x0.3-0x0.7 (0.5)
0x0| 81 04 | .. | length: 4 0x1-0x2.7 (2)
0x0| 06 | . | unused_bits_count: 6 0x3-0x3.7 (1)
0x0| 6e 5d c0| | n].| | value: raw bits 0x4-0x6.1 (2.2)
0x0| c0| | .| | unused_bits: raw bits 0x6.2-0x6.7 (0.6)
{
"decoded": "011011100101110111",
"hex": "23 09 | 03 03 00 6e 5d | 03 02 06 c0"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xa.7 (11)
0x00|23 |# | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|23 |# | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|23 |# | tag: "bit_string" (0x3) 0x0.3-0x0.7 (0.5)
0x00| 09 | . | length: 9 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0xa.7 (9)
| | | [0]{}: object 0x2-0x6.7 (5)
0x00| 03 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 03 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 03 | . | tag: "bit_string" (0x3) 0x2.3-0x2.7 (0.5)
0x00| 03 | . | length: 3 0x3-0x3.7 (1)
0x00| 00 | . | unused_bits_count: 0 0x4-0x4.7 (1)
0x00| 6e 5d | n] | value: raw bits 0x5-0x6.7 (2)
| | | [1]{}: object 0x7-0xa.7 (4)
0x00| 03 | . | class: "universal" (0) 0x7-0x7.1 (0.2)
0x00| 03 | . | form: "primitive" (0) 0x7.2-0x7.2 (0.1)
0x00| 03 | . | tag: "bit_string" (0x3) 0x7.3-0x7.7 (0.5)
0x00| 02 | . | length: 2 0x8-0x8.7 (1)
0x00| 06 | . | unused_bits_count: 6 0x9-0x9.7 (1)
0x00| c0| | .| | value: raw bits 0xa-0xa.1 (0.2)
0x00| c0| | .| | unused_bits: raw bits 0xa.2-0xa.7 (0.6)
0x0|6e 5d c0| |n].| | value: raw bits 0x0-0x2.1 (2.2)
{
"decoded": "test1@rsa.com",
"hex": "16 0d 74 65 73 74 31 40 72 73 61 2e 63 6f 6d"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xe.7 (15)
0x0|16 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|16 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|16 |. | tag: "ia5_string" (0x16) 0x0.3-0x0.7 (0.5)
0x0| 0d | . | length: 13 0x1-0x1.7 (1)
0x0| 74 65 73 74 31 40 72 73 61 2e 63 6f 6d| | test1@rsa.com|| value: "test1@rsa.com" 0x2-0xe.7 (13)
{
"decoded": "test1@rsa.com",
"hex": "16 81 0d | 74 65 73 74 31 40 72 73 61 2e 63 6f 6d"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xf.7 (16)
0x00|16 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|16 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|16 |. | tag: "ia5_string" (0x16) 0x0.3-0x0.7 (0.5)
0x00| 81 0d | .. | length: 13 0x1-0x2.7 (2)
0x00| 74 65 73 74 31 40 72 73 61 2e 63 6f 6d| test1@rsa.com| value: "test1@rsa.com" 0x3-0xf.7 (13)
{
"decoded": "test1@rsa.com",
"hex": "36 13 | 16 05 74 65 73 74 31 | 16 01 40 | 16 07 72 73 61 2e 63 6f 6d"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x14.7 (21)
0x00|36 |6 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|36 |6 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|36 |6 | tag: "ia5_string" (0x16) 0x0.3-0x0.7 (0.5)
0x00| 13 | . | length: 19 0x1-0x1.7 (1)
| | | constructed[0:3]: 0x2-0x14.7 (19)
| | | [0]{}: object 0x2-0x8.7 (7)
0x00| 16 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 16 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 16 | . | tag: "ia5_string" (0x16) 0x2.3-0x2.7 (0.5)
0x00| 05 | . | length: 5 0x3-0x3.7 (1)
0x00| 74 65 73 74 31 | test1 | value: "test1" 0x4-0x8.7 (5)
| | | [1]{}: object 0x9-0xb.7 (3)
0x00| 16 | . | class: "universal" (0) 0x9-0x9.1 (0.2)
0x00| 16 | . | form: "primitive" (0) 0x9.2-0x9.2 (0.1)
0x00| 16 | . | tag: "ia5_string" (0x16) 0x9.3-0x9.7 (0.5)
0x00| 01 | . | length: 1 0xa-0xa.7 (1)
0x00| 40 | @ | value: "@" 0xb-0xb.7 (1)
| | | [2]{}: object 0xc-0x14.7 (9)
0x00| 16 | . | class: "universal" (0) 0xc-0xc.1 (0.2)
0x00| 16 | . | form: "primitive" (0) 0xc.2-0xc.2 (0.1)
0x00| 16 | . | tag: "ia5_string" (0x16) 0xc.3-0xc.7 (0.5)
0x00| 07 | . | length: 7 0xd-0xd.7 (1)
0x00| 72 73| rs| value: "rsa.com" 0xe-0x14.7 (7)
0x10|61 2e 63 6f 6d| |a.com| |
| | | value: "test1@rsa.com" 0x15-NA (0)
{
"decoded": 0,
"hex": "02 01 00"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x2.7 (3)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 01 | . | length: 1 0x1-0x1.7 (1)
0x0| 00| | .| | value: 0 0x2-0x2.7 (1)
{
"decoded": 127,
"hex": "02 01 7f"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x2.7 (3)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 01 | . | length: 1 0x1-0x1.7 (1)
0x0| 7f| | .| | value: 127 0x2-0x2.7 (1)
{
"decoded": 128,
"hex": "02 02 00 80"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x3.7 (4)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 02 | . | length: 2 0x1-0x1.7 (1)
0x0| 00 80| | ..| | value: 128 0x2-0x3.7 (2)
{
"decoded": 256,
"hex": "02 02 01 00"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x3.7 (4)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 02 | . | length: 2 0x1-0x1.7 (1)
0x0| 01 00| | ..| | value: 256 0x2-0x3.7 (2)
{
"decoded": -128,
"hex": "02 01 80"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x2.7 (3)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 01 | . | length: 1 0x1-0x1.7 (1)
0x0| 80| | .| | value: -128 0x2-0x2.7 (1)
{
"decoded": -129,
"hex": "02 02 ff 7f"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x3.7 (4)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 02 | . | length: 2 0x1-0x1.7 (1)
0x0| ff 7f| | ..| | value: -129 0x2-0x3.7 (2)
{
"decoded": "01 23 45 67 89 ab cd ef",
"hex": "04 08 01 23 45 67 89 ab cd ef"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x9.7 (10)
0x0|04 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|04 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|04 |. | tag: "octet_string" (0x4) 0x0.3-0x0.7 (0.5)
0x0| 08 | . | length: 8 0x1-0x1.7 (1)
0x0| 01 23 45 67 89 ab cd ef| | .#Eg....| | value: raw bits 0x2-0x9.7 (8)
{
"decoded": "01 23 45 67 89 ab cd ef",
"hex": "04 81 08 01 23 45 67 89 ab cd ef"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xa.7 (11)
0x0|04 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|04 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|04 |. | tag: "octet_string" (0x4) 0x0.3-0x0.7 (0.5)
0x0| 81 08 | .. | length: 8 0x1-0x2.7 (2)
0x0| 01 23 45 67 89 ab cd ef| | .#Eg....| | value: raw bits 0x3-0xa.7 (8)
{
"decoded": "01 23 45 67 89 ab cd ef",
"hex": "24 0c | 04 04 01 23 45 67 | 04 04 89 ab cd ef"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xd.7 (14)
0x00|24 |$ | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|24 |$ | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|24 |$ | tag: "octet_string" (0x4) 0x0.3-0x0.7 (0.5)
0x00| 0c | . | length: 12 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0xd.7 (12)
| | | [0]{}: object 0x2-0x7.7 (6)
0x00| 04 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 04 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 04 | . | tag: "octet_string" (0x4) 0x2.3-0x2.7 (0.5)
0x00| 04 | . | length: 4 0x3-0x3.7 (1)
0x00| 01 23 45 67 | .#Eg | value: raw bits 0x4-0x7.7 (4)
| | | [1]{}: object 0x8-0xd.7 (6)
0x00| 04 | . | class: "universal" (0) 0x8-0x8.1 (0.2)
0x00| 04 | . | form: "primitive" (0) 0x8.2-0x8.2 (0.1)
0x00| 04 | . | tag: "octet_string" (0x4) 0x8.3-0x8.7 (0.5)
0x00| 04 | . | length: 4 0x9-0x9.7 (1)
0x00| 89 ab cd ef| | ....| | value: raw bits 0xa-0xd.7 (4)
0x0|01 23 45 67 89 ab cd ef| |.#Eg....| | value: raw bits 0x0-0x7.7 (8)
{
"decoded": "Test User 1",
"hex": "13 0b 54 65 73 74 20 55 73 65 72 20 31"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xc.7 (13)
0x0|13 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|13 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|13 |. | tag: "printable_string" (0x13) 0x0.3-0x0.7 (0.5)
0x0| 0b | . | length: 11 0x1-0x1.7 (1)
0x0| 54 65 73 74 20 55 73 65 72 20 31| | Test User 1| | value: "Test User 1" 0x2-0xc.7 (11)
{
"decoded": "Test User 1",
"hex": "13 81 0b | 54 65 73 74 20 55 73 65 72 20 31"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xd.7 (14)
0x0|13 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|13 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|13 |. | tag: "printable_string" (0x13) 0x0.3-0x0.7 (0.5)
0x0| 81 0b | .. | length: 11 0x1-0x2.7 (2)
0x0| 54 65 73 74 20 55 73 65 72 20 31| | Test User 1| | value: "Test User 1" 0x3-0xd.7 (11)
{
"decoded": "Test User 1",
"hex": "33 0f | 13 05 54 65 73 74 20 | 13 06 55 73 65 72 20 31"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x10.7 (17)
0x00|33 |3 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|33 |3 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|33 |3 | tag: "printable_string" (0x13) 0x0.3-0x0.7 (0.5)
0x00| 0f | . | length: 15 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0x10.7 (15)
| | | [0]{}: object 0x2-0x8.7 (7)
0x00| 13 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 13 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 13 | . | tag: "printable_string" (0x13) 0x2.3-0x2.7 (0.5)
0x00| 05 | . | length: 5 0x3-0x3.7 (1)
0x00| 54 65 73 74 20 | Test | value: "Test " 0x4-0x8.7 (5)
| | | [1]{}: object 0x9-0x10.7 (8)
0x00| 13 | . | class: "universal" (0) 0x9-0x9.1 (0.2)
0x00| 13 | . | form: "primitive" (0) 0x9.2-0x9.2 (0.1)
0x00| 13 | . | tag: "printable_string" (0x13) 0x9.3-0x9.7 (0.5)
0x00| 06 | . | length: 6 0xa-0xa.7 (1)
0x00| 55 73 65 72 20| User | value: "User 1" 0xb-0x10.7 (6)
0x10|31| |1| |
| | | value: "Test User 1" 0x11-NA (0)
{
"decoded": "cl'es publiques",
"hex": "14 0f | 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65 73"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x10.7 (17)
0x00|14 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|14 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|14 |. | tag: "teletex_string" (0x14) 0x0.3-0x0.7 (0.5)
0x00| 0f | . | length: 15 0x1-0x1.7 (1)
0x00| 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65| cl.es publique| value: "cl<63>es publiques" 0x2-0x10.7 (15)
0x10|73| |s| |
{
"decoded": "cl'es publiques",
"hex": "14 81 0f | 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65 73"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x11.7 (18)
0x00|14 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|14 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|14 |. | tag: "teletex_string" (0x14) 0x0.3-0x0.7 (0.5)
0x00| 81 0f | .. | length: 15 0x1-0x2.7 (2)
0x00| 63 6c c2 65 73 20 70 75 62 6c 69 71 75| cl.es publiqu| value: "cl<63>es publiques" 0x3-0x11.7 (15)
0x10|65 73| |es| |
{
"decoded": "cl'es publiques",
"hex": "34 15 | 14 05 63 6c c2 65 73 | 14 01 20 | 14 09 70 75 62 6c 69 71 75 65 73"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x16.7 (23)
0x00|34 |4 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|34 |4 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|34 |4 | tag: "teletex_string" (0x14) 0x0.3-0x0.7 (0.5)
0x00| 15 | . | length: 21 0x1-0x1.7 (1)
| | | constructed[0:3]: 0x2-0x16.7 (21)
| | | [0]{}: object 0x2-0x8.7 (7)
0x00| 14 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 14 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 14 | . | tag: "teletex_string" (0x14) 0x2.3-0x2.7 (0.5)
0x00| 05 | . | length: 5 0x3-0x3.7 (1)
0x00| 63 6c c2 65 73 | cl.es | value: "cl<63>es" 0x4-0x8.7 (5)
| | | [1]{}: object 0x9-0xb.7 (3)
0x00| 14 | . | class: "universal" (0) 0x9-0x9.1 (0.2)
0x00| 14 | . | form: "primitive" (0) 0x9.2-0x9.2 (0.1)
0x00| 14 | . | tag: "teletex_string" (0x14) 0x9.3-0x9.7 (0.5)
0x00| 01 | . | length: 1 0xa-0xa.7 (1)
0x00| 20 | | value: " " 0xb-0xb.7 (1)
| | | [2]{}: object 0xc-0x16.7 (11)
0x00| 14 | . | class: "universal" (0) 0xc-0xc.1 (0.2)
0x00| 14 | . | form: "primitive" (0) 0xc.2-0xc.2 (0.1)
0x00| 14 | . | tag: "teletex_string" (0x14) 0xc.3-0xc.7 (0.5)
0x00| 09 | . | length: 9 0xd-0xd.7 (1)
0x00| 70 75| pu| value: "publiques" 0xe-0x16.7 (9)
0x10|62 6c 69 71 75 65 73| |bliques| |
| | | value: "cl<63>es publiques" 0x17-NA (0)
{
"decoded": "910506164540-0700",
"hex": "17 0d 39 31 30 35 30 36 32 33 34 35 34 30 5a"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xe.7 (15)
0x0|17 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|17 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|17 |. | tag: "utc_time" (0x17) 0x0.3-0x0.7 (0.5)
0x0| 0d | . | length: 13 0x1-0x1.7 (1)
0x0| 39 31 30 35 30 36 32 33 34 35 34 30 5a| | 910506234540Z|| value: "910506234540Z" 0x2-0xe.7 (13)
{
"decoded": "910506234540Z",
"hex": "17 11 39 31 30 35 30 36 31 36 34 35 34 30 2d 30 37 30 30"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x12.7 (19)
0x00|17 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|17 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|17 |. | tag: "utc_time" (0x17) 0x0.3-0x0.7 (0.5)
0x00| 11 | . | length: 17 0x1-0x1.7 (1)
0x00| 39 31 30 35 30 36 31 36 34 35 34 30 2d 30| 910506164540-0| value: "910506164540-0700" 0x2-0x12.7 (17)
0x10|37 30 30| |700| |
{
"decoded": "countryName",
"hex": "06 03 55 04 06"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x4.7 (5)
0x0|06 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|06 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|06 |. | tag: "object_identifier" (0x6) 0x0.3-0x0.7 (0.5)
0x0| 03 | . | length: 3 0x1-0x1.7 (1)
| | | value[0:4]: 0x2-0x4.7 (3)
0x0| 55 | U | [0]: 2 oid 0x2-0x2.7 (1)
0x0| 55 | U | [1]: 5 oid 0x2-0x2.7 (1)
0x0| 04 | . | [2]: 4 oid 0x3-0x3.7 (1)
0x0| 06| | .| | [3]: 6 oid 0x4-0x4.7 (1)
{
"decoded": "organizationName",
"hex": "06 03 55 04 0a"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x4.7 (5)
0x0|06 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|06 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|06 |. | tag: "object_identifier" (0x6) 0x0.3-0x0.7 (0.5)
0x0| 03 | . | length: 3 0x1-0x1.7 (1)
| | | value[0:4]: 0x2-0x4.7 (3)
0x0| 55 | U | [0]: 2 oid 0x2-0x2.7 (1)
0x0| 55 | U | [1]: 5 oid 0x2-0x2.7 (1)
0x0| 04 | . | [2]: 4 oid 0x3-0x3.7 (1)
0x0| 0a| | .| | [3]: 10 oid 0x4-0x4.7 (1)
{
"decoded": "commonName",
"hex": "06 03 55 04 03"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x4.7 (5)
0x0|06 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|06 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|06 |. | tag: "object_identifier" (0x6) 0x0.3-0x0.7 (0.5)
0x0| 03 | . | length: 3 0x1-0x1.7 (1)
| | | value[0:4]: 0x2-0x4.7 (3)
0x0| 55 | U | [0]: 2 oid 0x2-0x2.7 (1)
0x0| 55 | U | [1]: 5 oid 0x2-0x2.7 (1)
0x0| 04 | . | [2]: 4 oid 0x3-0x3.7 (1)
0x0| 03| | .| | [3]: 3 oid 0x4-0x4.7 (1)
{
"decoded": "US",
"hex": "13 02 55 53"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x3.7 (4)
0x0|13 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|13 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|13 |. | tag: "printable_string" (0x13) 0x0.3-0x0.7 (0.5)
0x0| 02 | . | length: 2 0x1-0x1.7 (1)
0x0| 55 53| | US| | value: "US" 0x2-0x3.7 (2)
{
"decoded": "Example Organization",
"hex": "13 14 | 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x15.7 (22)
0x00|13 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|13 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|13 |. | tag: "printable_string" (0x13) 0x0.3-0x0.7 (0.5)
0x00| 14 | . | length: 20 0x1-0x1.7 (1)
0x00| 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69| Example Organi| value: "Example Organization" 0x2-0x15.7 (20)
0x10|7a 61 74 69 6f 6e| |zation| |
{
"decoded": "Test User 1",
"hex": "13 0b | 54 65 73 74 20 55 73 65 72 20 31"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xc.7 (13)
0x0|13 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|13 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|13 |. | tag: "printable_string" (0x13) 0x0.3-0x0.7 (0.5)
0x0| 0b | . | length: 11 0x1-0x1.7 (1)
0x0| 54 65 73 74 20 55 73 65 72 20 31| | Test User 1| | value: "Test User 1" 0x2-0xc.7 (11)
{
"decoded": "US",
"hex": "30 09 | 06 03 55 04 06 | 13 02 55 53"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xa.7 (11)
0x0|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x0|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x0| 09 | . | length: 9 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0xa.7 (9)
| | | [0]{}: object 0x2-0x6.7 (5)
0x0| 06 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x0| 06 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x0| 06 | . | tag: "object_identifier" (0x6) 0x2.3-0x2.7 (0.5)
0x0| 03 | . | length: 3 0x3-0x3.7 (1)
| | | value[0:4]: 0x4-0x6.7 (3)
0x0| 55 | U | [0]: 2 oid 0x4-0x4.7 (1)
0x0| 55 | U | [1]: 5 oid 0x4-0x4.7 (1)
0x0| 04 | . | [2]: 4 oid 0x5-0x5.7 (1)
0x0| 06 | . | [3]: 6 oid 0x6-0x6.7 (1)
| | | [1]{}: object 0x7-0xa.7 (4)
0x0| 13 | . | class: "universal" (0) 0x7-0x7.1 (0.2)
0x0| 13 | . | form: "primitive" (0) 0x7.2-0x7.2 (0.1)
0x0| 13 | . | tag: "printable_string" (0x13) 0x7.3-0x7.7 (0.5)
0x0| 02 | . | length: 2 0x8-0x8.7 (1)
0x0| 55 53| | US| | value: "US" 0x9-0xa.7 (2)
{
"decoded": "organizationName = Example Organization",
"hex": "30 1b | 06 03 55 04 0a | 13 14 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x1c.7 (29)
0x00|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x00| 1b | . | length: 27 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0x1c.7 (27)
| | | [0]{}: object 0x2-0x6.7 (5)
0x00| 06 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 06 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 06 | . | tag: "object_identifier" (0x6) 0x2.3-0x2.7 (0.5)
0x00| 03 | . | length: 3 0x3-0x3.7 (1)
| | | value[0:4]: 0x4-0x6.7 (3)
0x00| 55 | U | [0]: 2 oid 0x4-0x4.7 (1)
0x00| 55 | U | [1]: 5 oid 0x4-0x4.7 (1)
0x00| 04 | . | [2]: 4 oid 0x5-0x5.7 (1)
0x00| 0a | . | [3]: 10 oid 0x6-0x6.7 (1)
| | | [1]{}: object 0x7-0x1c.7 (22)
0x00| 13 | . | class: "universal" (0) 0x7-0x7.1 (0.2)
0x00| 13 | . | form: "primitive" (0) 0x7.2-0x7.2 (0.1)
0x00| 13 | . | tag: "printable_string" (0x13) 0x7.3-0x7.7 (0.5)
0x00| 14 | . | length: 20 0x8-0x8.7 (1)
0x00| 45 78 61 6d 70 6c 65| Example| value: "Example Organization" 0x9-0x1c.7 (20)
0x10|20 4f 72 67 61 6e 69 7a 61 74 69 6f 6e| | Organization| |
{
"decoded": "commonName = Test User 1",
"hex": "30 12 | 06 03 55 04 0b | 13 0b 54 65 73 74 20 55 73 65 72 20 31"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x13.7 (20)
0x00|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x00| 12 | . | length: 18 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0x13.7 (18)
| | | [0]{}: object 0x2-0x6.7 (5)
0x00| 06 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 06 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00| 06 | . | tag: "object_identifier" (0x6) 0x2.3-0x2.7 (0.5)
0x00| 03 | . | length: 3 0x3-0x3.7 (1)
| | | value[0:4]: 0x4-0x6.7 (3)
0x00| 55 | U | [0]: 2 oid 0x4-0x4.7 (1)
0x00| 55 | U | [1]: 5 oid 0x4-0x4.7 (1)
0x00| 04 | . | [2]: 4 oid 0x5-0x5.7 (1)
0x00| 0b | . | [3]: 11 oid 0x6-0x6.7 (1)
| | | [1]{}: object 0x7-0x13.7 (13)
0x00| 13 | . | class: "universal" (0) 0x7-0x7.1 (0.2)
0x00| 13 | . | form: "primitive" (0) 0x7.2-0x7.2 (0.1)
0x00| 13 | . | tag: "printable_string" (0x13) 0x7.3-0x7.7 (0.5)
0x00| 0b | . | length: 11 0x8-0x8.7 (1)
0x00| 54 65 73 74 20 55 73| Test Us| value: "Test User 1" 0x9-0x13.7 (11)
0x10|65 72 20 31| |er 1| |
{
"decoded": "",
"hex": "31 0b | 30 09 | 06 03 55 04 06 | 13 02 55 53"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0xc.7 (13)
0x0|31 |1 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|31 |1 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x0|31 |1 | tag: "set" (0x11) 0x0.3-0x0.7 (0.5)
0x0| 0b | . | length: 11 0x1-0x1.7 (1)
| | | constructed[0:1]: 0x2-0xc.7 (11)
| | | [0]{}: object 0x2-0xc.7 (11)
0x0| 30 | 0 | class: "universal" (0) 0x2-0x2.1 (0.2)
0x0| 30 | 0 | form: "constructed" (1) 0x2.2-0x2.2 (0.1)
0x0| 30 | 0 | tag: "sequence" (0x10) 0x2.3-0x2.7 (0.5)
0x0| 09 | . | length: 9 0x3-0x3.7 (1)
| | | constructed[0:2]: 0x4-0xc.7 (9)
| | | [0]{}: object 0x4-0x8.7 (5)
0x0| 06 | . | class: "universal" (0) 0x4-0x4.1 (0.2)
0x0| 06 | . | form: "primitive" (0) 0x4.2-0x4.2 (0.1)
0x0| 06 | . | tag: "object_identifier" (0x6) 0x4.3-0x4.7 (0.5)
0x0| 03 | . | length: 3 0x5-0x5.7 (1)
| | | value[0:4]: 0x6-0x8.7 (3)
0x0| 55 | U | [0]: 2 oid 0x6-0x6.7 (1)
0x0| 55 | U | [1]: 5 oid 0x6-0x6.7 (1)
0x0| 04 | . | [2]: 4 oid 0x7-0x7.7 (1)
0x0| 06 | . | [3]: 6 oid 0x8-0x8.7 (1)
| | | [1]{}: object 0x9-0xc.7 (4)
0x0| 13 | . | class: "universal" (0) 0x9-0x9.1 (0.2)
0x0| 13 | . | form: "primitive" (0) 0x9.2-0x9.2 (0.1)
0x0| 13 | . | tag: "printable_string" (0x13) 0x9.3-0x9.7 (0.5)
0x0| 02 | . | length: 2 0xa-0xa.7 (1)
0x0| 55 53| | US| | value: "US" 0xb-0xc.7 (2)
{
"decoded": "",
"hex": "31 1d | 30 1b | 06 03 55 04 0a | 13 14 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e"
}
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x1e.7 (31)
0x00|31 |1 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|31 |1 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00|31 |1 | tag: "set" (0x11) 0x0.3-0x0.7 (0.5)
0x00| 1d | . | length: 29 0x1-0x1.7 (1)
| | | constructed[0:1]: 0x2-0x1e.7 (29)
| | | [0]{}: object 0x2-0x1e.7 (29)
0x00| 30 | 0 | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00| 30 | 0 | form: "constructed" (1) 0x2.2-0x2.2 (0.1)
0x00| 30 | 0 | tag: "sequence" (0x10) 0x2.3-0x2.7 (0.5)
0x00| 1b | . | length: 27 0x3-0x3.7 (1)
| | | constructed[0:2]: 0x4-0x1e.7 (27)
| | | [0]{}: object 0x4-0x8.7 (5)
0x00| 06 | . | class: "universal" (0) 0x4-0x4.1 (0.2)
0x00| 06 | . | form: "primitive" (0) 0x4.2-0x4.2 (0.1)
0x00| 06 | . | tag: "object_identifier" (0x6) 0x4.3-0x4.7 (0.5)
0x00| 03 | . | length: 3 0x5-0x5.7 (1)
| | | value[0:4]: 0x6-0x8.7 (3)
0x00| 55 | U | [0]: 2 oid 0x6-0x6.7 (1)
0x00| 55 | U | [1]: 5 oid 0x6-0x6.7 (1)
0x00| 04 | . | [2]: 4 oid 0x7-0x7.7 (1)
0x00| 0a | . | [3]: 10 oid 0x8-0x8.7 (1)
| | | [1]{}: object 0x9-0x1e.7 (22)
0x00| 13 | . | class: "universal" (0) 0x9-0x9.1 (0.2)
0x00| 13 | . | form: "primitive" (0) 0x9.2-0x9.2 (0.1)
0x00| 13 | . | tag: "printable_string" (0x13) 0x9.3-0x9.7 (0.5)
0x00| 14 | . | length: 20 0xa-0xa.7 (1)
0x00| 45 78 61 6d 70| Examp| value: "Example Organization" 0xb-0x1e.7 (20)
0x10|6c 65 20 4f 72 67 61 6e 69 7a 61 74 69 6f 6e| |le Organization||

View File

@ -0,0 +1,37 @@
[
{"hex": "03 04 06 6e 5d c0", "decoded": "011011100101110111"},
{"hex": "03 04 06 6e 5d e0", "decoded": "011011100101110111"},
{"hex": "03 81 04 06 6e 5d c0", "decoded": "011011100101110111"},
{"hex": "23 09 | 03 03 00 6e 5d | 03 02 06 c0", "decoded": "011011100101110111"},
{"hex": "16 0d 74 65 73 74 31 40 72 73 61 2e 63 6f 6d", "decoded": "test1@rsa.com"},
{"hex": "16 81 0d | 74 65 73 74 31 40 72 73 61 2e 63 6f 6d", "decoded": "test1@rsa.com"},
{"hex": "36 13 | 16 05 74 65 73 74 31 | 16 01 40 | 16 07 72 73 61 2e 63 6f 6d", "decoded": "test1@rsa.com"},
{"hex": "02 01 00", "decoded": 0},
{"hex": "02 01 7f", "decoded": 127},
{"hex": "02 02 00 80", "decoded": 128},
{"hex": "02 02 01 00", "decoded": 256},
{"hex": "02 01 80", "decoded": -128},
{"hex": "02 02 ff 7f", "decoded": -129},
{"hex": "04 08 01 23 45 67 89 ab cd ef", "decoded": "01 23 45 67 89 ab cd ef"},
{"hex": "04 81 08 01 23 45 67 89 ab cd ef", "decoded": "01 23 45 67 89 ab cd ef"},
{"hex": "24 0c | 04 04 01 23 45 67 | 04 04 89 ab cd ef", "decoded": "01 23 45 67 89 ab cd ef"},
{"hex": "13 0b 54 65 73 74 20 55 73 65 72 20 31", "decoded": "Test User 1"},
{"hex": "13 81 0b | 54 65 73 74 20 55 73 65 72 20 31", "decoded": "Test User 1"},
{"hex": "33 0f | 13 05 54 65 73 74 20 | 13 06 55 73 65 72 20 31", "decoded": "Test User 1"},
{"hex": "14 0f | 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65 73", "decoded": "cl'es publiques"},
{"hex": "14 81 0f | 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65 73", "decoded": "cl'es publiques"},
{"hex": "34 15 | 14 05 63 6c c2 65 73 | 14 01 20 | 14 09 70 75 62 6c 69 71 75 65 73", "decoded": "cl'es publiques"},
{"hex": "17 0d 39 31 30 35 30 36 32 33 34 35 34 30 5a", "decoded": "910506164540-0700"},
{"hex": "17 11 39 31 30 35 30 36 31 36 34 35 34 30 2d 30 37 30 30", "decoded": "910506234540Z"},
{"hex": "06 03 55 04 06", "decoded": "countryName"},
{"hex": "06 03 55 04 0a", "decoded": "organizationName"},
{"hex": "06 03 55 04 03", "decoded": "commonName"},
{"hex": "13 02 55 53", "decoded": "US"},
{"hex": "13 14 | 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e", "decoded": "Example Organization"},
{"hex": "13 0b | 54 65 73 74 20 55 73 65 72 20 31", "decoded": "Test User 1"},
{"hex": "30 09 | 06 03 55 04 06 | 13 02 55 53", "decoded": "US"},
{"hex": "30 1b | 06 03 55 04 0a | 13 14 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e", "decoded": "organizationName = Example Organization"},
{"hex": "30 12 | 06 03 55 04 0b | 13 0b 54 65 73 74 20 55 73 65 72 20 31", "decoded": "commonName = Test User 1"},
{"hex": "31 0b | 30 09 | 06 03 55 04 06 | 13 02 55 53", "decoded": ""},
{"hex": "31 1d | 30 1b | 06 03 55 04 0a | 13 14 45 78 61 6d 70 6c 65 20 4f 72 67 61 6e 69 7a 61 | 74 69 6f 6e", "decoded": ""}
]

29
format/asn1/testdata/letsencrypt-x3.cer vendored Normal file
View File

@ -0,0 +1,29 @@
This is a real-world X.509 certificate, specifically a root CA.
https://letsencrypt.org/certificates/
-----BEGIN CERTIFICATE-----
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
-----END CERTIFICATE-----

View File

@ -0,0 +1,500 @@
$ fq -d raw 'frompem | asn1_ber | dv' letsencrypt-x3.cer
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x495.7 (1174)
0x0000|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0000|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x0000|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x0000| 82 04 92 | ... | length: 1170 0x1-0x3.7 (3)
| | | constructed[0:3]: 0x4-0x495.7 (1170)
| | | [0]{}: object 0x4-0x381.7 (894)
0x0000| 30 | 0 | class: "universal" (0) 0x4-0x4.1 (0.2)
0x0000| 30 | 0 | form: "constructed" (1) 0x4.2-0x4.2 (0.1)
0x0000| 30 | 0 | tag: "sequence" (0x10) 0x4.3-0x4.7 (0.5)
0x0000| 82 03 7a | ..z | length: 890 0x5-0x7.7 (3)
| | | constructed[0:8]: 0x8-0x381.7 (890)
| | | [0]{}: object 0x8-0xc.7 (5)
0x0000| a0 | . | class: "context" (2) 0x8-0x8.1 (0.2)
0x0000| a0 | . | form: "constructed" (1) 0x8.2-0x8.2 (0.1)
0x0000| a0 | . | tag: 0 0x8.3-0x8.7 (0.5)
0x0000| 03 | . | length: 3 0x9-0x9.7 (1)
| | | constructed[0:1]: 0xa-0xc.7 (3)
| | | [0]{}: object 0xa-0xc.7 (3)
0x0000| 02 | . | class: "universal" (0) 0xa-0xa.1 (0.2)
0x0000| 02 | . | form: "primitive" (0) 0xa.2-0xa.2 (0.1)
0x0000| 02 | . | tag: "integer" (0x2) 0xa.3-0xa.7 (0.5)
0x0000| 01 | . | length: 1 0xb-0xb.7 (1)
0x0000| 02 | . | value: 2 0xc-0xc.7 (1)
| | | [1]{}: object 0xd-0x1e.7 (18)
0x0000| 02 | . | class: "universal" (0) 0xd-0xd.1 (0.2)
0x0000| 02 | . | form: "primitive" (0) 0xd.2-0xd.2 (0.1)
0x0000| 02 | . | tag: "integer" (0x2) 0xd.3-0xd.7 (0.5)
0x0000| 10 | . | length: 16 0xe-0xe.7 (1)
0x0000| 0a| .| value: 13298795840390663119752826058995181320 0xf-0x1e.7 (16)
0x0010|01 41 42 00 00 01 53 85 73 6a 0b 85 ec a7 08 |.AB...S.sj..... |
| | | [2]{}: object 0x1f-0x2d.7 (15)
0x0010| 30| 0| class: "universal" (0) 0x1f-0x1f.1 (0.2)
0x0010| 30| 0| form: "constructed" (1) 0x1f.2-0x1f.2 (0.1)
0x0010| 30| 0| tag: "sequence" (0x10) 0x1f.3-0x1f.7 (0.5)
0x0020|0d |. | length: 13 0x20-0x20.7 (1)
| | | constructed[0:2]: 0x21-0x2d.7 (13)
| | | [0]{}: object 0x21-0x2b.7 (11)
0x0020| 06 | . | class: "universal" (0) 0x21-0x21.1 (0.2)
0x0020| 06 | . | form: "primitive" (0) 0x21.2-0x21.2 (0.1)
0x0020| 06 | . | tag: "object_identifier" (0x6) 0x21.3-0x21.7 (0.5)
0x0020| 09 | . | length: 9 0x22-0x22.7 (1)
| | | value[0:7]: 0x23-0x2b.7 (9)
0x0020| 2a | * | [0]: 1 oid 0x23-0x23.7 (1)
0x0020| 2a | * | [1]: 2 oid 0x23-0x23.7 (1)
0x0020| 86 48 | .H | [2]: 840 oid 0x24-0x25.7 (2)
0x0020| 86 f7 0d | ... | [3]: 113549 oid 0x26-0x28.7 (3)
0x0020| 01 | . | [4]: 1 oid 0x29-0x29.7 (1)
0x0020| 01 | . | [5]: 1 oid 0x2a-0x2a.7 (1)
0x0020| 0b | . | [6]: 11 oid 0x2b-0x2b.7 (1)
| | | [1]{}: object 0x2c-0x2d.7 (2)
0x0020| 05 | . | class: "universal" (0) 0x2c-0x2c.1 (0.2)
0x0020| 05 | . | form: "primitive" (0) 0x2c.2-0x2c.2 (0.1)
0x0020| 05 | . | tag: "null" (0x5) 0x2c.3-0x2c.7 (0.5)
0x0020| 00 | . | length: "indefinite" (0) 0x2d-0x2d.7 (1)
| | | value: null 0x2e-NA (0)
| | | [3]{}: object 0x2e-0x6e.7 (65)
0x0020| 30 | 0 | class: "universal" (0) 0x2e-0x2e.1 (0.2)
0x0020| 30 | 0 | form: "constructed" (1) 0x2e.2-0x2e.2 (0.1)
0x0020| 30 | 0 | tag: "sequence" (0x10) 0x2e.3-0x2e.7 (0.5)
0x0020| 3f| ?| length: 63 0x2f-0x2f.7 (1)
| | | constructed[0:2]: 0x30-0x6e.7 (63)
| | | [0]{}: object 0x30-0x55.7 (38)
0x0030|31 |1 | class: "universal" (0) 0x30-0x30.1 (0.2)
0x0030|31 |1 | form: "constructed" (1) 0x30.2-0x30.2 (0.1)
0x0030|31 |1 | tag: "set" (0x11) 0x30.3-0x30.7 (0.5)
0x0030| 24 | $ | length: 36 0x31-0x31.7 (1)
| | | constructed[0:1]: 0x32-0x55.7 (36)
| | | [0]{}: object 0x32-0x55.7 (36)
0x0030| 30 | 0 | class: "universal" (0) 0x32-0x32.1 (0.2)
0x0030| 30 | 0 | form: "constructed" (1) 0x32.2-0x32.2 (0.1)
0x0030| 30 | 0 | tag: "sequence" (0x10) 0x32.3-0x32.7 (0.5)
0x0030| 22 | " | length: 34 0x33-0x33.7 (1)
| | | constructed[0:2]: 0x34-0x55.7 (34)
| | | [0]{}: object 0x34-0x38.7 (5)
0x0030| 06 | . | class: "universal" (0) 0x34-0x34.1 (0.2)
0x0030| 06 | . | form: "primitive" (0) 0x34.2-0x34.2 (0.1)
0x0030| 06 | . | tag: "object_identifier" (0x6) 0x34.3-0x34.7 (0.5)
0x0030| 03 | . | length: 3 0x35-0x35.7 (1)
| | | value[0:4]: 0x36-0x38.7 (3)
0x0030| 55 | U | [0]: 2 oid 0x36-0x36.7 (1)
0x0030| 55 | U | [1]: 5 oid 0x36-0x36.7 (1)
0x0030| 04 | . | [2]: 4 oid 0x37-0x37.7 (1)
0x0030| 0a | . | [3]: 10 oid 0x38-0x38.7 (1)
| | | [1]{}: object 0x39-0x55.7 (29)
0x0030| 13 | . | class: "universal" (0) 0x39-0x39.1 (0.2)
0x0030| 13 | . | form: "primitive" (0) 0x39.2-0x39.2 (0.1)
0x0030| 13 | . | tag: "printable_string" (0x13) 0x39.3-0x39.7 (0.5)
0x0030| 1b | . | length: 27 0x3a-0x3a.7 (1)
0x0030| 44 69 67 69 74| Digit| value: "Digital Signature Trust Co." 0x3b-0x55.7 (27)
0x0040|61 6c 20 53 69 67 6e 61 74 75 72 65 20 54 72 75|al Signature Tru|
0x0050|73 74 20 43 6f 2e |st Co. |
| | | [1]{}: object 0x56-0x6e.7 (25)
0x0050| 31 | 1 | class: "universal" (0) 0x56-0x56.1 (0.2)
0x0050| 31 | 1 | form: "constructed" (1) 0x56.2-0x56.2 (0.1)
0x0050| 31 | 1 | tag: "set" (0x11) 0x56.3-0x56.7 (0.5)
0x0050| 17 | . | length: 23 0x57-0x57.7 (1)
| | | constructed[0:1]: 0x58-0x6e.7 (23)
| | | [0]{}: object 0x58-0x6e.7 (23)
0x0050| 30 | 0 | class: "universal" (0) 0x58-0x58.1 (0.2)
0x0050| 30 | 0 | form: "constructed" (1) 0x58.2-0x58.2 (0.1)
0x0050| 30 | 0 | tag: "sequence" (0x10) 0x58.3-0x58.7 (0.5)
0x0050| 15 | . | length: 21 0x59-0x59.7 (1)
| | | constructed[0:2]: 0x5a-0x6e.7 (21)
| | | [0]{}: object 0x5a-0x5e.7 (5)
0x0050| 06 | . | class: "universal" (0) 0x5a-0x5a.1 (0.2)
0x0050| 06 | . | form: "primitive" (0) 0x5a.2-0x5a.2 (0.1)
0x0050| 06 | . | tag: "object_identifier" (0x6) 0x5a.3-0x5a.7 (0.5)
0x0050| 03 | . | length: 3 0x5b-0x5b.7 (1)
| | | value[0:4]: 0x5c-0x5e.7 (3)
0x0050| 55 | U | [0]: 2 oid 0x5c-0x5c.7 (1)
0x0050| 55 | U | [1]: 5 oid 0x5c-0x5c.7 (1)
0x0050| 04 | . | [2]: 4 oid 0x5d-0x5d.7 (1)
0x0050| 03 | . | [3]: 3 oid 0x5e-0x5e.7 (1)
| | | [1]{}: object 0x5f-0x6e.7 (16)
0x0050| 13| .| class: "universal" (0) 0x5f-0x5f.1 (0.2)
0x0050| 13| .| form: "primitive" (0) 0x5f.2-0x5f.2 (0.1)
0x0050| 13| .| tag: "printable_string" (0x13) 0x5f.3-0x5f.7 (0.5)
0x0060|0e |. | length: 14 0x60-0x60.7 (1)
0x0060| 44 53 54 20 52 6f 6f 74 20 43 41 20 58 33 | DST Root CA X3 | value: "DST Root CA X3" 0x61-0x6e.7 (14)
| | | [4]{}: object 0x6f-0x8e.7 (32)
0x0060| 30| 0| class: "universal" (0) 0x6f-0x6f.1 (0.2)
0x0060| 30| 0| form: "constructed" (1) 0x6f.2-0x6f.2 (0.1)
0x0060| 30| 0| tag: "sequence" (0x10) 0x6f.3-0x6f.7 (0.5)
0x0070|1e |. | length: 30 0x70-0x70.7 (1)
| | | constructed[0:2]: 0x71-0x8e.7 (30)
| | | [0]{}: object 0x71-0x7f.7 (15)
0x0070| 17 | . | class: "universal" (0) 0x71-0x71.1 (0.2)
0x0070| 17 | . | form: "primitive" (0) 0x71.2-0x71.2 (0.1)
0x0070| 17 | . | tag: "utc_time" (0x17) 0x71.3-0x71.7 (0.5)
0x0070| 0d | . | length: 13 0x72-0x72.7 (1)
0x0070| 31 36 30 33 31 37 31 36 34 30 34 36 5a| 160317164046Z| value: "160317164046Z" 0x73-0x7f.7 (13)
| | | [1]{}: object 0x80-0x8e.7 (15)
0x0080|17 |. | class: "universal" (0) 0x80-0x80.1 (0.2)
0x0080|17 |. | form: "primitive" (0) 0x80.2-0x80.2 (0.1)
0x0080|17 |. | tag: "utc_time" (0x17) 0x80.3-0x80.7 (0.5)
0x0080| 0d | . | length: 13 0x81-0x81.7 (1)
0x0080| 32 31 30 33 31 37 31 36 34 30 34 36 5a | 210317164046Z | value: "210317164046Z" 0x82-0x8e.7 (13)
| | | [5]{}: object 0x8f-0xda.7 (76)
0x0080| 30| 0| class: "universal" (0) 0x8f-0x8f.1 (0.2)
0x0080| 30| 0| form: "constructed" (1) 0x8f.2-0x8f.2 (0.1)
0x0080| 30| 0| tag: "sequence" (0x10) 0x8f.3-0x8f.7 (0.5)
0x0090|4a |J | length: 74 0x90-0x90.7 (1)
| | | constructed[0:3]: 0x91-0xda.7 (74)
| | | [0]{}: object 0x91-0x9d.7 (13)
0x0090| 31 | 1 | class: "universal" (0) 0x91-0x91.1 (0.2)
0x0090| 31 | 1 | form: "constructed" (1) 0x91.2-0x91.2 (0.1)
0x0090| 31 | 1 | tag: "set" (0x11) 0x91.3-0x91.7 (0.5)
0x0090| 0b | . | length: 11 0x92-0x92.7 (1)
| | | constructed[0:1]: 0x93-0x9d.7 (11)
| | | [0]{}: object 0x93-0x9d.7 (11)
0x0090| 30 | 0 | class: "universal" (0) 0x93-0x93.1 (0.2)
0x0090| 30 | 0 | form: "constructed" (1) 0x93.2-0x93.2 (0.1)
0x0090| 30 | 0 | tag: "sequence" (0x10) 0x93.3-0x93.7 (0.5)
0x0090| 09 | . | length: 9 0x94-0x94.7 (1)
| | | constructed[0:2]: 0x95-0x9d.7 (9)
| | | [0]{}: object 0x95-0x99.7 (5)
0x0090| 06 | . | class: "universal" (0) 0x95-0x95.1 (0.2)
0x0090| 06 | . | form: "primitive" (0) 0x95.2-0x95.2 (0.1)
0x0090| 06 | . | tag: "object_identifier" (0x6) 0x95.3-0x95.7 (0.5)
0x0090| 03 | . | length: 3 0x96-0x96.7 (1)
| | | value[0:4]: 0x97-0x99.7 (3)
0x0090| 55 | U | [0]: 2 oid 0x97-0x97.7 (1)
0x0090| 55 | U | [1]: 5 oid 0x97-0x97.7 (1)
0x0090| 04 | . | [2]: 4 oid 0x98-0x98.7 (1)
0x0090| 06 | . | [3]: 6 oid 0x99-0x99.7 (1)
| | | [1]{}: object 0x9a-0x9d.7 (4)
0x0090| 13 | . | class: "universal" (0) 0x9a-0x9a.1 (0.2)
0x0090| 13 | . | form: "primitive" (0) 0x9a.2-0x9a.2 (0.1)
0x0090| 13 | . | tag: "printable_string" (0x13) 0x9a.3-0x9a.7 (0.5)
0x0090| 02 | . | length: 2 0x9b-0x9b.7 (1)
0x0090| 55 53 | US | value: "US" 0x9c-0x9d.7 (2)
| | | [1]{}: object 0x9e-0xb5.7 (24)
0x0090| 31 | 1 | class: "universal" (0) 0x9e-0x9e.1 (0.2)
0x0090| 31 | 1 | form: "constructed" (1) 0x9e.2-0x9e.2 (0.1)
0x0090| 31 | 1 | tag: "set" (0x11) 0x9e.3-0x9e.7 (0.5)
0x0090| 16| .| length: 22 0x9f-0x9f.7 (1)
| | | constructed[0:1]: 0xa0-0xb5.7 (22)
| | | [0]{}: object 0xa0-0xb5.7 (22)
0x00a0|30 |0 | class: "universal" (0) 0xa0-0xa0.1 (0.2)
0x00a0|30 |0 | form: "constructed" (1) 0xa0.2-0xa0.2 (0.1)
0x00a0|30 |0 | tag: "sequence" (0x10) 0xa0.3-0xa0.7 (0.5)
0x00a0| 14 | . | length: 20 0xa1-0xa1.7 (1)
| | | constructed[0:2]: 0xa2-0xb5.7 (20)
| | | [0]{}: object 0xa2-0xa6.7 (5)
0x00a0| 06 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2)
0x00a0| 06 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1)
0x00a0| 06 | . | tag: "object_identifier" (0x6) 0xa2.3-0xa2.7 (0.5)
0x00a0| 03 | . | length: 3 0xa3-0xa3.7 (1)
| | | value[0:4]: 0xa4-0xa6.7 (3)
0x00a0| 55 | U | [0]: 2 oid 0xa4-0xa4.7 (1)
0x00a0| 55 | U | [1]: 5 oid 0xa4-0xa4.7 (1)
0x00a0| 04 | . | [2]: 4 oid 0xa5-0xa5.7 (1)
0x00a0| 0a | . | [3]: 10 oid 0xa6-0xa6.7 (1)
| | | [1]{}: object 0xa7-0xb5.7 (15)
0x00a0| 13 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2)
0x00a0| 13 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1)
0x00a0| 13 | . | tag: "printable_string" (0x13) 0xa7.3-0xa7.7 (0.5)
0x00a0| 0d | . | length: 13 0xa8-0xa8.7 (1)
0x00a0| 4c 65 74 27 73 20 45| Let's E| value: "Let's Encrypt" 0xa9-0xb5.7 (13)
0x00b0|6e 63 72 79 70 74 |ncrypt |
| | | [2]{}: object 0xb6-0xda.7 (37)
0x00b0| 31 | 1 | class: "universal" (0) 0xb6-0xb6.1 (0.2)
0x00b0| 31 | 1 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1)
0x00b0| 31 | 1 | tag: "set" (0x11) 0xb6.3-0xb6.7 (0.5)
0x00b0| 23 | # | length: 35 0xb7-0xb7.7 (1)
| | | constructed[0:1]: 0xb8-0xda.7 (35)
| | | [0]{}: object 0xb8-0xda.7 (35)
0x00b0| 30 | 0 | class: "universal" (0) 0xb8-0xb8.1 (0.2)
0x00b0| 30 | 0 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1)
0x00b0| 30 | 0 | tag: "sequence" (0x10) 0xb8.3-0xb8.7 (0.5)
0x00b0| 21 | ! | length: 33 0xb9-0xb9.7 (1)
| | | constructed[0:2]: 0xba-0xda.7 (33)
| | | [0]{}: object 0xba-0xbe.7 (5)
0x00b0| 06 | . | class: "universal" (0) 0xba-0xba.1 (0.2)
0x00b0| 06 | . | form: "primitive" (0) 0xba.2-0xba.2 (0.1)
0x00b0| 06 | . | tag: "object_identifier" (0x6) 0xba.3-0xba.7 (0.5)
0x00b0| 03 | . | length: 3 0xbb-0xbb.7 (1)
| | | value[0:4]: 0xbc-0xbe.7 (3)
0x00b0| 55 | U | [0]: 2 oid 0xbc-0xbc.7 (1)
0x00b0| 55 | U | [1]: 5 oid 0xbc-0xbc.7 (1)
0x00b0| 04 | . | [2]: 4 oid 0xbd-0xbd.7 (1)
0x00b0| 03 | . | [3]: 3 oid 0xbe-0xbe.7 (1)
| | | [1]{}: object 0xbf-0xda.7 (28)
0x00b0| 13| .| class: "universal" (0) 0xbf-0xbf.1 (0.2)
0x00b0| 13| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1)
0x00b0| 13| .| tag: "printable_string" (0x13) 0xbf.3-0xbf.7 (0.5)
0x00c0|1a |. | length: 26 0xc0-0xc0.7 (1)
0x00c0| 4c 65 74 27 73 20 45 6e 63 72 79 70 74 20 41| Let's Encrypt A| value: "Let's Encrypt Authority X3" 0xc1-0xda.7 (26)
0x00d0|75 74 68 6f 72 69 74 79 20 58 33 |uthority X3 |
| | | [6]{}: object 0xdb-0x200.7 (294)
0x00d0| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2)
0x00d0| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1)
0x00d0| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5)
0x00d0| 82 01 22 | .." | length: 290 0xdc-0xde.7 (3)
| | | constructed[0:2]: 0xdf-0x200.7 (290)
| | | [0]{}: object 0xdf-0xed.7 (15)
0x00d0| 30| 0| class: "universal" (0) 0xdf-0xdf.1 (0.2)
0x00d0| 30| 0| form: "constructed" (1) 0xdf.2-0xdf.2 (0.1)
0x00d0| 30| 0| tag: "sequence" (0x10) 0xdf.3-0xdf.7 (0.5)
0x00e0|0d |. | length: 13 0xe0-0xe0.7 (1)
| | | constructed[0:2]: 0xe1-0xed.7 (13)
| | | [0]{}: object 0xe1-0xeb.7 (11)
0x00e0| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2)
0x00e0| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1)
0x00e0| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5)
0x00e0| 09 | . | length: 9 0xe2-0xe2.7 (1)
| | | value[0:7]: 0xe3-0xeb.7 (9)
0x00e0| 2a | * | [0]: 1 oid 0xe3-0xe3.7 (1)
0x00e0| 2a | * | [1]: 2 oid 0xe3-0xe3.7 (1)
0x00e0| 86 48 | .H | [2]: 840 oid 0xe4-0xe5.7 (2)
0x00e0| 86 f7 0d | ... | [3]: 113549 oid 0xe6-0xe8.7 (3)
0x00e0| 01 | . | [4]: 1 oid 0xe9-0xe9.7 (1)
0x00e0| 01 | . | [5]: 1 oid 0xea-0xea.7 (1)
0x00e0| 01 | . | [6]: 1 oid 0xeb-0xeb.7 (1)
| | | [1]{}: object 0xec-0xed.7 (2)
0x00e0| 05 | . | class: "universal" (0) 0xec-0xec.1 (0.2)
0x00e0| 05 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1)
0x00e0| 05 | . | tag: "null" (0x5) 0xec.3-0xec.7 (0.5)
0x00e0| 00 | . | length: "indefinite" (0) 0xed-0xed.7 (1)
| | | value: null 0xee-NA (0)
| | | [1]{}: object 0xee-0x200.7 (275)
0x00e0| 03 | . | class: "universal" (0) 0xee-0xee.1 (0.2)
0x00e0| 03 | . | form: "primitive" (0) 0xee.2-0xee.2 (0.1)
0x00e0| 03 | . | tag: "bit_string" (0x3) 0xee.3-0xee.7 (0.5)
0x00e0| 82| .| length: 271 0xef-0xf1.7 (3)
0x00f0|01 0f |.. |
0x00f0| 00 | . | unused_bits_count: 0 0xf2-0xf2.7 (1)
0x00f0| 30 82 01 0a 02 82 01 01 00 9c d3 0c f0| 0............| value: raw bits 0xf3-0x200.7 (270)
0x0100|5a e5 2e 47 b7 72 5d 37 83 b3 68 63 30 ea d7 35|Z..G.r]7..hc0..5|
* |until 0x200.7 (270) | |
| | | [7]{}: object 0x201-0x381.7 (385)
0x0200| a3 | . | class: "context" (2) 0x201-0x201.1 (0.2)
0x0200| a3 | . | form: "constructed" (1) 0x201.2-0x201.2 (0.1)
0x0200| a3 | . | tag: 3 0x201.3-0x201.7 (0.5)
0x0200| 82 01 7d | ..} | length: 381 0x202-0x204.7 (3)
| | | constructed[0:1]: 0x205-0x381.7 (381)
| | | [0]{}: object 0x205-0x381.7 (381)
0x0200| 30 | 0 | class: "universal" (0) 0x205-0x205.1 (0.2)
0x0200| 30 | 0 | form: "constructed" (1) 0x205.2-0x205.2 (0.1)
0x0200| 30 | 0 | tag: "sequence" (0x10) 0x205.3-0x205.7 (0.5)
0x0200| 82 01 79 | ..y | length: 377 0x206-0x208.7 (3)
| | | constructed[0:7]: 0x209-0x381.7 (377)
| | | [0]{}: object 0x209-0x21c.7 (20)
0x0200| 30 | 0 | class: "universal" (0) 0x209-0x209.1 (0.2)
0x0200| 30 | 0 | form: "constructed" (1) 0x209.2-0x209.2 (0.1)
0x0200| 30 | 0 | tag: "sequence" (0x10) 0x209.3-0x209.7 (0.5)
0x0200| 12 | . | length: 18 0x20a-0x20a.7 (1)
| | | constructed[0:3]: 0x20b-0x21c.7 (18)
| | | [0]{}: object 0x20b-0x20f.7 (5)
0x0200| 06 | . | class: "universal" (0) 0x20b-0x20b.1 (0.2)
0x0200| 06 | . | form: "primitive" (0) 0x20b.2-0x20b.2 (0.1)
0x0200| 06 | . | tag: "object_identifier" (0x6) 0x20b.3-0x20b.7 (0.5)
0x0200| 03 | . | length: 3 0x20c-0x20c.7 (1)
| | | value[0:4]: 0x20d-0x20f.7 (3)
0x0200| 55 | U | [0]: 2 oid 0x20d-0x20d.7 (1)
0x0200| 55 | U | [1]: 5 oid 0x20d-0x20d.7 (1)
0x0200| 1d | . | [2]: 29 oid 0x20e-0x20e.7 (1)
0x0200| 13| .| [3]: 19 oid 0x20f-0x20f.7 (1)
| | | [1]{}: object 0x210-0x212.7 (3)
0x0210|01 |. | class: "universal" (0) 0x210-0x210.1 (0.2)
0x0210|01 |. | form: "primitive" (0) 0x210.2-0x210.2 (0.1)
0x0210|01 |. | tag: "boolean" (0x1) 0x210.3-0x210.7 (0.5)
0x0210| 01 | . | length: 1 0x211-0x211.7 (1)
0x0210| ff | . | value: true (255) 0x212-0x212.7 (1)
| | | [2]{}: object 0x213-0x21c.7 (10)
0x0210| 04 | . | class: "universal" (0) 0x213-0x213.1 (0.2)
0x0210| 04 | . | form: "primitive" (0) 0x213.2-0x213.2 (0.1)
0x0210| 04 | . | tag: "octet_string" (0x4) 0x213.3-0x213.7 (0.5)
0x0210| 08 | . | length: 8 0x214-0x214.7 (1)
0x0210| 30 06 01 01 ff 02 01 00 | 0....... | value: raw bits 0x215-0x21c.7 (8)
| | | [1]{}: object 0x21d-0x22c.7 (16)
0x0210| 30 | 0 | class: "universal" (0) 0x21d-0x21d.1 (0.2)
0x0210| 30 | 0 | form: "constructed" (1) 0x21d.2-0x21d.2 (0.1)
0x0210| 30 | 0 | tag: "sequence" (0x10) 0x21d.3-0x21d.7 (0.5)
0x0210| 0e | . | length: 14 0x21e-0x21e.7 (1)
| | | constructed[0:3]: 0x21f-0x22c.7 (14)
| | | [0]{}: object 0x21f-0x223.7 (5)
0x0210| 06| .| class: "universal" (0) 0x21f-0x21f.1 (0.2)
0x0210| 06| .| form: "primitive" (0) 0x21f.2-0x21f.2 (0.1)
0x0210| 06| .| tag: "object_identifier" (0x6) 0x21f.3-0x21f.7 (0.5)
0x0220|03 |. | length: 3 0x220-0x220.7 (1)
| | | value[0:4]: 0x221-0x223.7 (3)
0x0220| 55 | U | [0]: 2 oid 0x221-0x221.7 (1)
0x0220| 55 | U | [1]: 5 oid 0x221-0x221.7 (1)
0x0220| 1d | . | [2]: 29 oid 0x222-0x222.7 (1)
0x0220| 0f | . | [3]: 15 oid 0x223-0x223.7 (1)
| | | [1]{}: object 0x224-0x226.7 (3)
0x0220| 01 | . | class: "universal" (0) 0x224-0x224.1 (0.2)
0x0220| 01 | . | form: "primitive" (0) 0x224.2-0x224.2 (0.1)
0x0220| 01 | . | tag: "boolean" (0x1) 0x224.3-0x224.7 (0.5)
0x0220| 01 | . | length: 1 0x225-0x225.7 (1)
0x0220| ff | . | value: true (255) 0x226-0x226.7 (1)
| | | [2]{}: object 0x227-0x22c.7 (6)
0x0220| 04 | . | class: "universal" (0) 0x227-0x227.1 (0.2)
0x0220| 04 | . | form: "primitive" (0) 0x227.2-0x227.2 (0.1)
0x0220| 04 | . | tag: "octet_string" (0x4) 0x227.3-0x227.7 (0.5)
0x0220| 04 | . | length: 4 0x228-0x228.7 (1)
0x0220| 03 02 01 86 | .... | value: raw bits 0x229-0x22c.7 (4)
| | | [2]{}: object 0x22d-0x2ad.7 (129)
0x0220| 30 | 0 | class: "universal" (0) 0x22d-0x22d.1 (0.2)
0x0220| 30 | 0 | form: "constructed" (1) 0x22d.2-0x22d.2 (0.1)
0x0220| 30 | 0 | tag: "sequence" (0x10) 0x22d.3-0x22d.7 (0.5)
0x0220| 7f | . | length: 127 0x22e-0x22e.7 (1)
| | | constructed[0:2]: 0x22f-0x2ad.7 (127)
| | | [0]{}: object 0x22f-0x238.7 (10)
0x0220| 06| .| class: "universal" (0) 0x22f-0x22f.1 (0.2)
0x0220| 06| .| form: "primitive" (0) 0x22f.2-0x22f.2 (0.1)
0x0220| 06| .| tag: "object_identifier" (0x6) 0x22f.3-0x22f.7 (0.5)
0x0230|08 |. | length: 8 0x230-0x230.7 (1)
| | | value[0:9]: 0x231-0x238.7 (8)
0x0230| 2b | + | [0]: 1 oid 0x231-0x231.7 (1)
0x0230| 2b | + | [1]: 3 oid 0x231-0x231.7 (1)
0x0230| 06 | . | [2]: 6 oid 0x232-0x232.7 (1)
0x0230| 01 | . | [3]: 1 oid 0x233-0x233.7 (1)
0x0230| 05 | . | [4]: 5 oid 0x234-0x234.7 (1)
0x0230| 05 | . | [5]: 5 oid 0x235-0x235.7 (1)
0x0230| 07 | . | [6]: 7 oid 0x236-0x236.7 (1)
0x0230| 01 | . | [7]: 1 oid 0x237-0x237.7 (1)
0x0230| 01 | . | [8]: 1 oid 0x238-0x238.7 (1)
| | | [1]{}: object 0x239-0x2ad.7 (117)
0x0230| 04 | . | class: "universal" (0) 0x239-0x239.1 (0.2)
0x0230| 04 | . | form: "primitive" (0) 0x239.2-0x239.2 (0.1)
0x0230| 04 | . | tag: "octet_string" (0x4) 0x239.3-0x239.7 (0.5)
0x0230| 73 | s | length: 115 0x23a-0x23a.7 (1)
0x0230| 30 71 30 32 06| 0q02.| value: raw bits 0x23b-0x2ad.7 (115)
0x0240|08 2b 06 01 05 05 07 30 01 86 26 68 74 74 70 3a|.+.....0..&http:|
* |until 0x2ad.7 (115) | |
| | | [3]{}: object 0x2ae-0x2ce.7 (33)
0x02a0| 30 | 0 | class: "universal" (0) 0x2ae-0x2ae.1 (0.2)
0x02a0| 30 | 0 | form: "constructed" (1) 0x2ae.2-0x2ae.2 (0.1)
0x02a0| 30 | 0 | tag: "sequence" (0x10) 0x2ae.3-0x2ae.7 (0.5)
0x02a0| 1f| .| length: 31 0x2af-0x2af.7 (1)
| | | constructed[0:2]: 0x2b0-0x2ce.7 (31)
| | | [0]{}: object 0x2b0-0x2b4.7 (5)
0x02b0|06 |. | class: "universal" (0) 0x2b0-0x2b0.1 (0.2)
0x02b0|06 |. | form: "primitive" (0) 0x2b0.2-0x2b0.2 (0.1)
0x02b0|06 |. | tag: "object_identifier" (0x6) 0x2b0.3-0x2b0.7 (0.5)
0x02b0| 03 | . | length: 3 0x2b1-0x2b1.7 (1)
| | | value[0:4]: 0x2b2-0x2b4.7 (3)
0x02b0| 55 | U | [0]: 2 oid 0x2b2-0x2b2.7 (1)
0x02b0| 55 | U | [1]: 5 oid 0x2b2-0x2b2.7 (1)
0x02b0| 1d | . | [2]: 29 oid 0x2b3-0x2b3.7 (1)
0x02b0| 23 | # | [3]: 35 oid 0x2b4-0x2b4.7 (1)
| | | [1]{}: object 0x2b5-0x2ce.7 (26)
0x02b0| 04 | . | class: "universal" (0) 0x2b5-0x2b5.1 (0.2)
0x02b0| 04 | . | form: "primitive" (0) 0x2b5.2-0x2b5.2 (0.1)
0x02b0| 04 | . | tag: "octet_string" (0x4) 0x2b5.3-0x2b5.7 (0.5)
0x02b0| 18 | . | length: 24 0x2b6-0x2b6.7 (1)
0x02b0| 30 16 80 14 c4 a7 b1 a4 7b| 0.......{| value: raw bits 0x2b7-0x2ce.7 (24)
0x02c0|2c 71 fa db e1 4b 90 75 ff c4 15 60 85 89 10 |,q...K.u...`... |
| | | [4]{}: object 0x2cf-0x324.7 (86)
0x02c0| 30| 0| class: "universal" (0) 0x2cf-0x2cf.1 (0.2)
0x02c0| 30| 0| form: "constructed" (1) 0x2cf.2-0x2cf.2 (0.1)
0x02c0| 30| 0| tag: "sequence" (0x10) 0x2cf.3-0x2cf.7 (0.5)
0x02d0|54 |T | length: 84 0x2d0-0x2d0.7 (1)
| | | constructed[0:2]: 0x2d1-0x324.7 (84)
| | | [0]{}: object 0x2d1-0x2d5.7 (5)
0x02d0| 06 | . | class: "universal" (0) 0x2d1-0x2d1.1 (0.2)
0x02d0| 06 | . | form: "primitive" (0) 0x2d1.2-0x2d1.2 (0.1)
0x02d0| 06 | . | tag: "object_identifier" (0x6) 0x2d1.3-0x2d1.7 (0.5)
0x02d0| 03 | . | length: 3 0x2d2-0x2d2.7 (1)
| | | value[0:4]: 0x2d3-0x2d5.7 (3)
0x02d0| 55 | U | [0]: 2 oid 0x2d3-0x2d3.7 (1)
0x02d0| 55 | U | [1]: 5 oid 0x2d3-0x2d3.7 (1)
0x02d0| 1d | . | [2]: 29 oid 0x2d4-0x2d4.7 (1)
0x02d0| 20 | | [3]: 32 oid 0x2d5-0x2d5.7 (1)
| | | [1]{}: object 0x2d6-0x324.7 (79)
0x02d0| 04 | . | class: "universal" (0) 0x2d6-0x2d6.1 (0.2)
0x02d0| 04 | . | form: "primitive" (0) 0x2d6.2-0x2d6.2 (0.1)
0x02d0| 04 | . | tag: "octet_string" (0x4) 0x2d6.3-0x2d6.7 (0.5)
0x02d0| 4d | M | length: 77 0x2d7-0x2d7.7 (1)
0x02d0| 30 4b 30 08 06 06 67 81| 0K0...g.| value: raw bits 0x2d8-0x324.7 (77)
0x02e0|0c 01 02 01 30 3f 06 0b 2b 06 01 04 01 82 df 13|....0?..+.......|
* |until 0x324.7 (77) | |
| | | [5]{}: object 0x325-0x362.7 (62)
0x0320| 30 | 0 | class: "universal" (0) 0x325-0x325.1 (0.2)
0x0320| 30 | 0 | form: "constructed" (1) 0x325.2-0x325.2 (0.1)
0x0320| 30 | 0 | tag: "sequence" (0x10) 0x325.3-0x325.7 (0.5)
0x0320| 3c | < | length: 60 0x326-0x326.7 (1)
| | | constructed[0:2]: 0x327-0x362.7 (60)
| | | [0]{}: object 0x327-0x32b.7 (5)
0x0320| 06 | . | class: "universal" (0) 0x327-0x327.1 (0.2)
0x0320| 06 | . | form: "primitive" (0) 0x327.2-0x327.2 (0.1)
0x0320| 06 | . | tag: "object_identifier" (0x6) 0x327.3-0x327.7 (0.5)
0x0320| 03 | . | length: 3 0x328-0x328.7 (1)
| | | value[0:4]: 0x329-0x32b.7 (3)
0x0320| 55 | U | [0]: 2 oid 0x329-0x329.7 (1)
0x0320| 55 | U | [1]: 5 oid 0x329-0x329.7 (1)
0x0320| 1d | . | [2]: 29 oid 0x32a-0x32a.7 (1)
0x0320| 1f | . | [3]: 31 oid 0x32b-0x32b.7 (1)
| | | [1]{}: object 0x32c-0x362.7 (55)
0x0320| 04 | . | class: "universal" (0) 0x32c-0x32c.1 (0.2)
0x0320| 04 | . | form: "primitive" (0) 0x32c.2-0x32c.2 (0.1)
0x0320| 04 | . | tag: "octet_string" (0x4) 0x32c.3-0x32c.7 (0.5)
0x0320| 35 | 5 | length: 53 0x32d-0x32d.7 (1)
0x0320| 30 33| 03| value: raw bits 0x32e-0x362.7 (53)
0x0330|30 31 a0 2f a0 2d 86 2b 68 74 74 70 3a 2f 2f 63|01./.-.+http://c|
* |until 0x362.7 (53) | |
| | | [6]{}: object 0x363-0x381.7 (31)
0x0360| 30 | 0 | class: "universal" (0) 0x363-0x363.1 (0.2)
0x0360| 30 | 0 | form: "constructed" (1) 0x363.2-0x363.2 (0.1)
0x0360| 30 | 0 | tag: "sequence" (0x10) 0x363.3-0x363.7 (0.5)
0x0360| 1d | . | length: 29 0x364-0x364.7 (1)
| | | constructed[0:2]: 0x365-0x381.7 (29)
| | | [0]{}: object 0x365-0x369.7 (5)
0x0360| 06 | . | class: "universal" (0) 0x365-0x365.1 (0.2)
0x0360| 06 | . | form: "primitive" (0) 0x365.2-0x365.2 (0.1)
0x0360| 06 | . | tag: "object_identifier" (0x6) 0x365.3-0x365.7 (0.5)
0x0360| 03 | . | length: 3 0x366-0x366.7 (1)
| | | value[0:4]: 0x367-0x369.7 (3)
0x0360| 55 | U | [0]: 2 oid 0x367-0x367.7 (1)
0x0360| 55 | U | [1]: 5 oid 0x367-0x367.7 (1)
0x0360| 1d | . | [2]: 29 oid 0x368-0x368.7 (1)
0x0360| 0e | . | [3]: 14 oid 0x369-0x369.7 (1)
| | | [1]{}: object 0x36a-0x381.7 (24)
0x0360| 04 | . | class: "universal" (0) 0x36a-0x36a.1 (0.2)
0x0360| 04 | . | form: "primitive" (0) 0x36a.2-0x36a.2 (0.1)
0x0360| 04 | . | tag: "octet_string" (0x4) 0x36a.3-0x36a.7 (0.5)
0x0360| 16 | . | length: 22 0x36b-0x36b.7 (1)
0x0360| 04 14 a8 4a| ...J| value: raw bits 0x36c-0x381.7 (22)
0x0370|6a 63 04 7d dd ba e6 d1 39 b7 a6 45 65 ef f3 a8|jc.}....9..Ee...|
0x0380|ec a1 |.. |
0x000|30 06 01 01 ff 02 01 00 03 02 01 86 30 71 30 32|0...........0q02| value: raw bits 0x0-0x12e.7 (303)
* |until 0x12e.7 (end) (303) | |
| | | [1]{}: object 0x382-0x390.7 (15)
0x0380| 30 | 0 | class: "universal" (0) 0x382-0x382.1 (0.2)
0x0380| 30 | 0 | form: "constructed" (1) 0x382.2-0x382.2 (0.1)
0x0380| 30 | 0 | tag: "sequence" (0x10) 0x382.3-0x382.7 (0.5)
0x0380| 0d | . | length: 13 0x383-0x383.7 (1)
| | | constructed[0:2]: 0x384-0x390.7 (13)
| | | [0]{}: object 0x384-0x38e.7 (11)
0x0380| 06 | . | class: "universal" (0) 0x384-0x384.1 (0.2)
0x0380| 06 | . | form: "primitive" (0) 0x384.2-0x384.2 (0.1)
0x0380| 06 | . | tag: "object_identifier" (0x6) 0x384.3-0x384.7 (0.5)
0x0380| 09 | . | length: 9 0x385-0x385.7 (1)
| | | value[0:7]: 0x386-0x38e.7 (9)
0x0380| 2a | * | [0]: 1 oid 0x386-0x386.7 (1)
0x0380| 2a | * | [1]: 2 oid 0x386-0x386.7 (1)
0x0380| 86 48 | .H | [2]: 840 oid 0x387-0x388.7 (2)
0x0380| 86 f7 0d | ... | [3]: 113549 oid 0x389-0x38b.7 (3)
0x0380| 01 | . | [4]: 1 oid 0x38c-0x38c.7 (1)
0x0380| 01 | . | [5]: 1 oid 0x38d-0x38d.7 (1)
0x0380| 0b | . | [6]: 11 oid 0x38e-0x38e.7 (1)
| | | [1]{}: object 0x38f-0x390.7 (2)
0x0380| 05| .| class: "universal" (0) 0x38f-0x38f.1 (0.2)
0x0380| 05| .| form: "primitive" (0) 0x38f.2-0x38f.2 (0.1)
0x0380| 05| .| tag: "null" (0x5) 0x38f.3-0x38f.7 (0.5)
0x0390|00 |. | length: "indefinite" (0) 0x390-0x390.7 (1)
| | | value: null 0x391-NA (0)
| | | [2]{}: object 0x391-0x495.7 (261)
0x0390| 03 | . | class: "universal" (0) 0x391-0x391.1 (0.2)
0x0390| 03 | . | form: "primitive" (0) 0x391.2-0x391.2 (0.1)
0x0390| 03 | . | tag: "bit_string" (0x3) 0x391.3-0x391.7 (0.5)
0x0390| 82 01 01 | ... | length: 257 0x392-0x394.7 (3)
0x0390| 00 | . | unused_bits_count: 0 0x395-0x395.7 (1)
0x0390| dd 33 d7 11 f3 63 58 38 dd 18| .3...cX8..| value: raw bits 0x396-0x495.7 (256)
0x03a0|15 fb 09 55 be 76 56 b9 70 48 a5 69 47 27 7b c2|...U.vV.pH.iG'{.|
* |until 0x495.7 (end) (256) | |

BIN
format/asn1/testdata/openssl.rsa.key.der vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,74 @@
$ fq -d asn1_ber dv openssl.rsa.key.der
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: openssl.rsa.key.der (asn1_ber) 0x0-0x260.7 (609)
0x000|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x000|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x000|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x000| 82 02 5d | ..] | length: 605 0x1-0x3.7 (3)
| | | constructed[0:9]: 0x4-0x260.7 (605)
| | | [0]{}: object 0x4-0x6.7 (3)
0x000| 02 | . | class: "universal" (0) 0x4-0x4.1 (0.2)
0x000| 02 | . | form: "primitive" (0) 0x4.2-0x4.2 (0.1)
0x000| 02 | . | tag: "integer" (0x2) 0x4.3-0x4.7 (0.5)
0x000| 01 | . | length: 1 0x5-0x5.7 (1)
0x000| 00 | . | value: 0 0x6-0x6.7 (1)
| | | [1]{}: object 0x7-0x8a.7 (132)
0x000| 02 | . | class: "universal" (0) 0x7-0x7.1 (0.2)
0x000| 02 | . | form: "primitive" (0) 0x7.2-0x7.2 (0.1)
0x000| 02 | . | tag: "integer" (0x2) 0x7.3-0x7.7 (0.5)
0x000| 81 81 | .. | length: 129 0x8-0x9.7 (2)
0x000| 00 c8 9c ae f3 cf| ......| value: 140874568468322848849180080295716055473391012329133676844091970322504607002396348602109669476646264833477712206064675084499111472430777124510906866167819796189175395315010168014638998198401874878669002908243106997519079413079140242074725120590298671209684697146044155303080323202401088254507821347042989436183 0xa-0x8a.7 (129)
0x010|59 56 6e 6c fd e5 95 4e 0f 2d 05 89 31 f5 ab 8d|YVnl...N.-..1...|
* |until 0x8a.7 (129) | |
| | | [2]{}: object 0x8b-0x8f.7 (5)
0x080| 02 | . | class: "universal" (0) 0x8b-0x8b.1 (0.2)
0x080| 02 | . | form: "primitive" (0) 0x8b.2-0x8b.2 (0.1)
0x080| 02 | . | tag: "integer" (0x2) 0x8b.3-0x8b.7 (0.5)
0x080| 03 | . | length: 3 0x8c-0x8c.7 (1)
0x080| 01 00 01| ...| value: 65537 0x8d-0x8f.7 (3)
| | | [3]{}: object 0x90-0x113.7 (132)
0x090|02 |. | class: "universal" (0) 0x90-0x90.1 (0.2)
0x090|02 |. | form: "primitive" (0) 0x90.2-0x90.2 (0.1)
0x090|02 |. | tag: "integer" (0x2) 0x90.3-0x90.7 (0.5)
0x090| 81 81 | .. | length: 129 0x91-0x92.7 (2)
0x090| 00 ad ec 39 39 a3 40 7e d0 89 a9 ad 8b| ...99.@~.....| value: 122132707191863643833448491725925734163711041679001438133079292152281409900699692309301115405405915365496386043367604695837015970224024515318990895554010464789522511375622928126213405612602768277179789406664987051391584527300257344464000027271751491024923146711928786025340329143022436281624616672535582585025 0x93-0x113.7 (129)
0x0a0|3d fb a6 3a b0 71 21 de 33 86 59 38 9d 4e 59 62|=..:.q!.3.Y8.NYb|
* |until 0x113.7 (129) | |
| | | [4]{}: object 0x114-0x156.7 (67)
0x110| 02 | . | class: "universal" (0) 0x114-0x114.1 (0.2)
0x110| 02 | . | form: "primitive" (0) 0x114.2-0x114.2 (0.1)
0x110| 02 | . | tag: "integer" (0x2) 0x114.3-0x114.7 (0.5)
0x110| 41 | A | length: 65 0x115-0x115.7 (1)
0x110| 00 e6 af 83 cc 5c 2c 71 b2 ac| .....\,q..| value: 12081985475751749236571794066071043662466425762985809175048795658965864740983561571225287405335719328583420338385382007277303022316888740387757118441481617 0x116-0x156.7 (65)
0x120|06 ee 0c 9d 88 ec 02 3d 9b 98 dd f4 09 3d 0c dc|.......=.....=..|
* |until 0x156.7 (65) | |
| | | [5]{}: object 0x157-0x199.7 (67)
0x150| 02 | . | class: "universal" (0) 0x157-0x157.1 (0.2)
0x150| 02 | . | form: "primitive" (0) 0x157.2-0x157.2 (0.1)
0x150| 02 | . | tag: "integer" (0x2) 0x157.3-0x157.7 (0.5)
0x150| 41 | A | length: 65 0x158-0x158.7 (1)
0x150| 00 de a0 55 68 3f f3| ...Uh?.| value: 11659885600016212463693053528634923638428971532746105950386770337354432587762435552258721021790076923957260154767602393593066715506087355090619950869263399 0x159-0x199.7 (65)
0x160|b1 fe a6 e7 6f a8 6e 7d a8 62 3d fe a3 ef 19 ea|....o.n}.b=.....|
* |until 0x199.7 (65) | |
| | | [6]{}: object 0x19a-0x1db.7 (66)
0x190| 02 | . | class: "universal" (0) 0x19a-0x19a.1 (0.2)
0x190| 02 | . | form: "primitive" (0) 0x19a.2-0x19a.2 (0.1)
0x190| 02 | . | tag: "integer" (0x2) 0x19a.3-0x19a.7 (0.5)
0x190| 40 | @ | length: 64 0x19b-0x19b.7 (1)
0x190| 35 43 79 4f| 5CyO| value: 2789639504693157597201647738037856976981582230579691844863792604352830695035830961072082167592964354183504227542420320339962911541559125677823835638746049 0x19c-0x1db.7 (64)
0x1a0|0a 49 48 c7 54 69 15 35 dc 79 ec e4 67 8d 31 b2|.IH.Ti.5.y..g.1.|
* |until 0x1db.7 (64) | |
| | | [7]{}: object 0x1dc-0x21d.7 (66)
0x1d0| 02 | . | class: "universal" (0) 0x1dc-0x1dc.1 (0.2)
0x1d0| 02 | . | form: "primitive" (0) 0x1dc.2-0x1dc.2 (0.1)
0x1d0| 02 | . | tag: "integer" (0x2) 0x1dc.3-0x1dc.7 (0.5)
0x1d0| 40 | @ | length: 64 0x1dd-0x1dd.7 (1)
0x1d0| 4b c1| K.| value: 3967638261836238371497303610816598746671414531513052303272584422438335614075866689822874673954262561319115289248398629469139277392942217463050117099278927 0x1de-0x21d.7 (64)
0x1e0|69 6e b1 1c 5e fc 55 95 39 94 aa 0c 8e 68 e7 c9|in..^.U.9....h..|
* |until 0x21d.7 (64) | |
| | | [8]{}: object 0x21e-0x260.7 (67)
0x210| 02 | . | class: "universal" (0) 0x21e-0x21e.1 (0.2)
0x210| 02 | . | form: "primitive" (0) 0x21e.2-0x21e.2 (0.1)
0x210| 02 | . | tag: "integer" (0x2) 0x21e.3-0x21e.7 (0.5)
0x210| 41| A| length: 65 0x21f-0x21f.7 (1)
0x220|00 b2 1c 76 7a bc d3 9f c7 24 f0 1e de 9c 33 07|...vz....$....3.| value: 9328439569788175995398063780840446593404475344027436154565657980938183918994797944613750235675880941897457018303545042575095777738810628775577987827595418 0x220-0x260.7 (65)
* |until 0x260.7 (end) (65) | |

233
format/asn1/testdata/sig-p256-ber.p7m vendored Normal file
View File

@ -0,0 +1,233 @@
This is a PKCS#7/CMS attached digital signature.
It is signed using ecdsaWithSHA256 over NIST curve P-256.
It contains 10034 bytes of data in a constructed BER OCTET STRING, in 1000 byte chunks.
-----BEGIN PKCS7-----
MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0B
BwGggCSABIID6EluaXppbyBjb250ZW51dG8uCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEEggPoQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQSC
A+hBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBBIID6EFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEEggPoQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQSCA+hBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBBIID6EFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEEggPoQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQSCA+hBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBBIID6EFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEEIkFBQUFBQUFBQUFBQUFBQUFBQQpGaW5lIGNvbnRlbnV0
by4AAAAAAACggDCCAW4wggEUoAMCAQICEHOxx/3deIyIkyCp0XuJoeAwCgYIKoZI
zj0EAwIwDzENMAsGA1UEAwwEVGVzdDAeFw0xODA3MTYxNTE3MDBaFw0xOTA3MTYx
NTE3MDBaMA8xDTALBgNVBAMMBFRlc3QwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNC
AATrbIaVzrUdDj6payN4bRMzfGAeUx2vbtdADsmVqB5UpZcE9+lk6mFONMMV8Mfd
HMIrtU+kIeN3TKwYbvkKqFKFo1IwUDAOBgNVHQ8BAf8EBAMCBPAwHQYDVR0OBBYE
FGYNLdBLRe0zyKL5cUmFcsIIV7W+MB8GA1UdIwQYMBaAFGYNLdBLRe0zyKL5cUmF
csIIV7W+MAoGCCqGSM49BAMCA0gAMEUCIQCtFrZzgrRCt4a+2k1d6koKNkBVMHNP
QUvcH+W3VyGdJwIgI9eyft3ADE5ZUOYb1kCY76qlMy2dexTDe1ECpHf66X4AADGC
AYowggGGAgEBMCMwDzENMAsGA1UEAwwEVGVzdAIQc7HH/d14jIiTIKnRe4mh4DAN
BglghkgBZQMEAgEFAKCB9zAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG
SIb3DQEJBTEPFw0xODA3MTYxNTE3MDFaMCoGCSqGSIb3DQEJNDEdMBswDQYJYIZI
AWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIEIHJMUbvnbaBa+yDL
6OsDfNrhr9cTEl0twT1VLan0QtJNMGAGCyqGSIb3DQEJEAIvMVEwTzBNMEsEIF5A
LYEW0KWtjD68a+15KzrU4fL/PAv0FDQzhfnLy7yzMCcwE6QRMA8xDTALBgNVBAMM
BFRlc3QCEHOxx/3deIyIkyCp0XuJoeAwCgYIKoZIzj0EAwIERzBFAiBU+itM+1PZ
77m5G8pCq4R7zQKe7OK/1vVjoTpf1mhg1wIhANyu8NdrnbnEID1copBIRB8tOm6H
5tIcUY4bEZXEeK9cAAAAAAAA
-----END PKCS7-----

View File

@ -0,0 +1,931 @@
$ fq -d raw 'frompem | asn1_ber | dv' sig-p256-ber.p7m
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x2aa1.7 (10914)
0x00000|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00000|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x00000|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x00000| 80 | . | length: "indefinite" (0) 0x1-0x1.7 (1)
| | | constructed[0:2]: 0x2-0x2a9f.7 (10910)
| | | [0]{}: object 0x2-0xc.7 (11)
0x00000| 06 | . | class: "universal" (0) 0x2-0x2.1 (0.2)
0x00000| 06 | . | form: "primitive" (0) 0x2.2-0x2.2 (0.1)
0x00000| 06 | . | tag: "object_identifier" (0x6) 0x2.3-0x2.7 (0.5)
0x00000| 09 | . | length: 9 0x3-0x3.7 (1)
| | | value[0:7]: 0x4-0xc.7 (9)
0x00000| 2a | * | [0]: 1 oid 0x4-0x4.7 (1)
0x00000| 2a | * | [1]: 2 oid 0x4-0x4.7 (1)
0x00000| 86 48 | .H | [2]: 840 oid 0x5-0x6.7 (2)
0x00000| 86 f7 0d | ... | [3]: 113549 oid 0x7-0x9.7 (3)
0x00000| 01 | . | [4]: 1 oid 0xa-0xa.7 (1)
0x00000| 07 | . | [5]: 7 oid 0xb-0xb.7 (1)
0x00000| 02 | . | [6]: 2 oid 0xc-0xc.7 (1)
| | | [1]{}: object 0xd-0x2a9f.7 (10899)
0x00000| a0 | . | class: "context" (2) 0xd-0xd.1 (0.2)
0x00000| a0 | . | form: "constructed" (1) 0xd.2-0xd.2 (0.1)
0x00000| a0 | . | tag: 0 0xd.3-0xd.7 (0.5)
0x00000| 80 | . | length: "indefinite" (0) 0xe-0xe.7 (1)
| | | constructed[0:1]: 0xf-0x2a9d.7 (10895)
| | | [0]{}: object 0xf-0x2a9d.7 (10895)
0x00000| 30| 0| class: "universal" (0) 0xf-0xf.1 (0.2)
0x00000| 30| 0| form: "constructed" (1) 0xf.2-0xf.2 (0.1)
0x00000| 30| 0| tag: "sequence" (0x10) 0xf.3-0xf.7 (0.5)
0x00010|80 |. | length: "indefinite" (0) 0x10-0x10.7 (1)
| | | constructed[0:5]: 0x11-0x2a9b.7 (10891)
| | | [0]{}: object 0x11-0x13.7 (3)
0x00010| 02 | . | class: "universal" (0) 0x11-0x11.1 (0.2)
0x00010| 02 | . | form: "primitive" (0) 0x11.2-0x11.2 (0.1)
0x00010| 02 | . | tag: "integer" (0x2) 0x11.3-0x11.7 (0.5)
0x00010| 01 | . | length: 1 0x12-0x12.7 (1)
0x00010| 01 | . | value: 1 0x13-0x13.7 (1)
| | | [1]{}: object 0x14-0x24.7 (17)
0x00010| 31 | 1 | class: "universal" (0) 0x14-0x14.1 (0.2)
0x00010| 31 | 1 | form: "constructed" (1) 0x14.2-0x14.2 (0.1)
0x00010| 31 | 1 | tag: "set" (0x11) 0x14.3-0x14.7 (0.5)
0x00010| 0f | . | length: 15 0x15-0x15.7 (1)
| | | constructed[0:1]: 0x16-0x24.7 (15)
| | | [0]{}: object 0x16-0x24.7 (15)
0x00010| 30 | 0 | class: "universal" (0) 0x16-0x16.1 (0.2)
0x00010| 30 | 0 | form: "constructed" (1) 0x16.2-0x16.2 (0.1)
0x00010| 30 | 0 | tag: "sequence" (0x10) 0x16.3-0x16.7 (0.5)
0x00010| 0d | . | length: 13 0x17-0x17.7 (1)
| | | constructed[0:2]: 0x18-0x24.7 (13)
| | | [0]{}: object 0x18-0x22.7 (11)
0x00010| 06 | . | class: "universal" (0) 0x18-0x18.1 (0.2)
0x00010| 06 | . | form: "primitive" (0) 0x18.2-0x18.2 (0.1)
0x00010| 06 | . | tag: "object_identifier" (0x6) 0x18.3-0x18.7 (0.5)
0x00010| 09 | . | length: 9 0x19-0x19.7 (1)
| | | value[0:9]: 0x1a-0x22.7 (9)
0x00010| 60 | ` | [0]: 2 oid 0x1a-0x1a.7 (1)
0x00010| 60 | ` | [1]: 16 oid 0x1a-0x1a.7 (1)
0x00010| 86 48 | .H | [2]: 840 oid 0x1b-0x1c.7 (2)
0x00010| 01 | . | [3]: 1 oid 0x1d-0x1d.7 (1)
0x00010| 65 | e | [4]: 101 oid 0x1e-0x1e.7 (1)
0x00010| 03| .| [5]: 3 oid 0x1f-0x1f.7 (1)
0x00020|04 |. | [6]: 4 oid 0x20-0x20.7 (1)
0x00020| 02 | . | [7]: 2 oid 0x21-0x21.7 (1)
0x00020| 01 | . | [8]: 1 oid 0x22-0x22.7 (1)
| | | [1]{}: object 0x23-0x24.7 (2)
0x00020| 05 | . | class: "universal" (0) 0x23-0x23.1 (0.2)
0x00020| 05 | . | form: "primitive" (0) 0x23.2-0x23.2 (0.1)
0x00020| 05 | . | tag: "null" (0x5) 0x23.3-0x23.7 (0.5)
0x00020| 00 | . | length: "indefinite" (0) 0x24-0x24.7 (1)
| | | value: null 0x25-NA (0)
| | | [2]{}: object 0x25-0x2797.7 (10099)
0x00020| 30 | 0 | class: "universal" (0) 0x25-0x25.1 (0.2)
0x00020| 30 | 0 | form: "constructed" (1) 0x25.2-0x25.2 (0.1)
0x00020| 30 | 0 | tag: "sequence" (0x10) 0x25.3-0x25.7 (0.5)
0x00020| 80 | . | length: "indefinite" (0) 0x26-0x26.7 (1)
| | | constructed[0:2]: 0x27-0x2795.7 (10095)
| | | [0]{}: object 0x27-0x31.7 (11)
0x00020| 06 | . | class: "universal" (0) 0x27-0x27.1 (0.2)
0x00020| 06 | . | form: "primitive" (0) 0x27.2-0x27.2 (0.1)
0x00020| 06 | . | tag: "object_identifier" (0x6) 0x27.3-0x27.7 (0.5)
0x00020| 09 | . | length: 9 0x28-0x28.7 (1)
| | | value[0:7]: 0x29-0x31.7 (9)
0x00020| 2a | * | [0]: 1 oid 0x29-0x29.7 (1)
0x00020| 2a | * | [1]: 2 oid 0x29-0x29.7 (1)
0x00020| 86 48 | .H | [2]: 840 oid 0x2a-0x2b.7 (2)
0x00020| 86 f7 0d | ... | [3]: 113549 oid 0x2c-0x2e.7 (3)
0x00020| 01| .| [4]: 1 oid 0x2f-0x2f.7 (1)
0x00030|07 |. | [5]: 7 oid 0x30-0x30.7 (1)
0x00030| 01 | . | [6]: 1 oid 0x31-0x31.7 (1)
| | | [1]{}: object 0x32-0x2795.7 (10084)
0x00030| a0 | . | class: "context" (2) 0x32-0x32.1 (0.2)
0x00030| a0 | . | form: "constructed" (1) 0x32.2-0x32.2 (0.1)
0x00030| a0 | . | tag: 0 0x32.3-0x32.7 (0.5)
0x00030| 80 | . | length: "indefinite" (0) 0x33-0x33.7 (1)
| | | constructed[0:1]: 0x34-0x2793.7 (10080)
| | | [0]{}: object 0x34-0x2793.7 (10080)
0x00030| 24 | $ | class: "universal" (0) 0x34-0x34.1 (0.2)
0x00030| 24 | $ | form: "constructed" (1) 0x34.2-0x34.2 (0.1)
0x00030| 24 | $ | tag: "octet_string" (0x4) 0x34.3-0x34.7 (0.5)
0x00030| 80 | . | length: "indefinite" (0) 0x35-0x35.7 (1)
| | | constructed[0:11]: 0x36-0x2791.7 (10076)
| | | [0]{}: object 0x36-0x421.7 (1004)
0x00030| 04 | . | class: "universal" (0) 0x36-0x36.1 (0.2)
0x00030| 04 | . | form: "primitive" (0) 0x36.2-0x36.2 (0.1)
0x00030| 04 | . | tag: "octet_string" (0x4) 0x36.3-0x36.7 (0.5)
0x00030| 82 03 e8 | ... | length: 1000 0x37-0x39.7 (3)
0x00030| 49 6e 69 7a 69 6f| Inizio| value: raw bits 0x3a-0x421.7 (1000)
0x00040|20 63 6f 6e 74 65 6e 75 74 6f 2e 0a 41 41 41 41| contenuto..AAAA|
* |until 0x421.7 (1000) | |
| | | [1]{}: object 0x422-0x80d.7 (1004)
0x00420| 04 | . | class: "universal" (0) 0x422-0x422.1 (0.2)
0x00420| 04 | . | form: "primitive" (0) 0x422.2-0x422.2 (0.1)
0x00420| 04 | . | tag: "octet_string" (0x4) 0x422.3-0x422.7 (0.5)
0x00420| 82 03 e8 | ... | length: 1000 0x423-0x425.7 (3)
0x00420| 41 41 41 41 41 41 41 41 41 41| AAAAAAAAAA| value: raw bits 0x426-0x80d.7 (1000)
0x00430|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x80d.7 (1000) | |
| | | [2]{}: object 0x80e-0xbf9.7 (1004)
0x00800| 04 | . | class: "universal" (0) 0x80e-0x80e.1 (0.2)
0x00800| 04 | . | form: "primitive" (0) 0x80e.2-0x80e.2 (0.1)
0x00800| 04 | . | tag: "octet_string" (0x4) 0x80e.3-0x80e.7 (0.5)
0x00800| 82| .| length: 1000 0x80f-0x811.7 (3)
0x00810|03 e8 |.. |
0x00810| 41 41 41 41 41 41 41 41 41 41 41 41 41 41| AAAAAAAAAAAAAA| value: raw bits 0x812-0xbf9.7 (1000)
0x00820|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0xbf9.7 (1000) | |
| | | [3]{}: object 0xbfa-0xfe5.7 (1004)
0x00bf0| 04 | . | class: "universal" (0) 0xbfa-0xbfa.1 (0.2)
0x00bf0| 04 | . | form: "primitive" (0) 0xbfa.2-0xbfa.2 (0.1)
0x00bf0| 04 | . | tag: "octet_string" (0x4) 0xbfa.3-0xbfa.7 (0.5)
0x00bf0| 82 03 e8 | ... | length: 1000 0xbfb-0xbfd.7 (3)
0x00bf0| 41 41| AA| value: raw bits 0xbfe-0xfe5.7 (1000)
0x00c00|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0xfe5.7 (1000) | |
| | | [4]{}: object 0xfe6-0x13d1.7 (1004)
0x00fe0| 04 | . | class: "universal" (0) 0xfe6-0xfe6.1 (0.2)
0x00fe0| 04 | . | form: "primitive" (0) 0xfe6.2-0xfe6.2 (0.1)
0x00fe0| 04 | . | tag: "octet_string" (0x4) 0xfe6.3-0xfe6.7 (0.5)
0x00fe0| 82 03 e8 | ... | length: 1000 0xfe7-0xfe9.7 (3)
0x00fe0| 41 41 41 41 41 41| AAAAAA| value: raw bits 0xfea-0x13d1.7 (1000)
0x00ff0|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x13d1.7 (1000) | |
| | | [5]{}: object 0x13d2-0x17bd.7 (1004)
0x013d0| 04 | . | class: "universal" (0) 0x13d2-0x13d2.1 (0.2)
0x013d0| 04 | . | form: "primitive" (0) 0x13d2.2-0x13d2.2 (0.1)
0x013d0| 04 | . | tag: "octet_string" (0x4) 0x13d2.3-0x13d2.7 (0.5)
0x013d0| 82 03 e8 | ... | length: 1000 0x13d3-0x13d5.7 (3)
0x013d0| 41 41 41 41 41 41 41 41 41 41| AAAAAAAAAA| value: raw bits 0x13d6-0x17bd.7 (1000)
0x013e0|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x17bd.7 (1000) | |
| | | [6]{}: object 0x17be-0x1ba9.7 (1004)
0x017b0| 04 | . | class: "universal" (0) 0x17be-0x17be.1 (0.2)
0x017b0| 04 | . | form: "primitive" (0) 0x17be.2-0x17be.2 (0.1)
0x017b0| 04 | . | tag: "octet_string" (0x4) 0x17be.3-0x17be.7 (0.5)
0x017b0| 82| .| length: 1000 0x17bf-0x17c1.7 (3)
0x017c0|03 e8 |.. |
0x017c0| 41 41 41 41 41 41 41 41 41 41 41 41 41 41| AAAAAAAAAAAAAA| value: raw bits 0x17c2-0x1ba9.7 (1000)
0x017d0|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x1ba9.7 (1000) | |
| | | [7]{}: object 0x1baa-0x1f95.7 (1004)
0x01ba0| 04 | . | class: "universal" (0) 0x1baa-0x1baa.1 (0.2)
0x01ba0| 04 | . | form: "primitive" (0) 0x1baa.2-0x1baa.2 (0.1)
0x01ba0| 04 | . | tag: "octet_string" (0x4) 0x1baa.3-0x1baa.7 (0.5)
0x01ba0| 82 03 e8 | ... | length: 1000 0x1bab-0x1bad.7 (3)
0x01ba0| 41 41| AA| value: raw bits 0x1bae-0x1f95.7 (1000)
0x01bb0|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x1f95.7 (1000) | |
| | | [8]{}: object 0x1f96-0x2381.7 (1004)
0x01f90| 04 | . | class: "universal" (0) 0x1f96-0x1f96.1 (0.2)
0x01f90| 04 | . | form: "primitive" (0) 0x1f96.2-0x1f96.2 (0.1)
0x01f90| 04 | . | tag: "octet_string" (0x4) 0x1f96.3-0x1f96.7 (0.5)
0x01f90| 82 03 e8 | ... | length: 1000 0x1f97-0x1f99.7 (3)
0x01f90| 41 41 41 41 41 41| AAAAAA| value: raw bits 0x1f9a-0x2381.7 (1000)
0x01fa0|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x2381.7 (1000) | |
| | | [9]{}: object 0x2382-0x276d.7 (1004)
0x02380| 04 | . | class: "universal" (0) 0x2382-0x2382.1 (0.2)
0x02380| 04 | . | form: "primitive" (0) 0x2382.2-0x2382.2 (0.1)
0x02380| 04 | . | tag: "octet_string" (0x4) 0x2382.3-0x2382.7 (0.5)
0x02380| 82 03 e8 | ... | length: 1000 0x2383-0x2385.7 (3)
0x02380| 41 41 41 41 41 41 41 41 41 41| AAAAAAAAAA| value: raw bits 0x2386-0x276d.7 (1000)
0x02390|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA|
* |until 0x276d.7 (1000) | |
| | | [10]{}: object 0x276e-0x2791.7 (36)
0x02760| 04 | . | class: "universal" (0) 0x276e-0x276e.1 (0.2)
0x02760| 04 | . | form: "primitive" (0) 0x276e.2-0x276e.2 (0.1)
0x02760| 04 | . | tag: "octet_string" (0x4) 0x276e.3-0x276e.7 (0.5)
0x02760| 22| "| length: 34 0x276f-0x276f.7 (1)
0x02770|41 41 41 41 41 41 41 41 41 41 41 41 41 41 41 41|AAAAAAAAAAAAAAAA| value: raw bits 0x2770-0x2791.7 (34)
* |until 0x2791.7 (34) | |
0x02790| 00 00 | .. | end_marker: 0 0x2792-0x2793.7 (2)
0x0000|49 6e 69 7a 69 6f 20 63 6f 6e 74 65 6e 75 74 6f|Inizio contenuto| value: raw bits 0x0-0x2731.7 (10034)
* |until 0x2731.7 (end) (10034) | |
0x02790| 00 00 | .. | end_marker: 0 0x2794-0x2795.7 (2)
0x02790| 00 00 | .. | end_marker: 0 0x2796-0x2797.7 (2)
| | | [3]{}: object 0x2798-0x290d.7 (374)
0x02790| a0 | . | class: "context" (2) 0x2798-0x2798.1 (0.2)
0x02790| a0 | . | form: "constructed" (1) 0x2798.2-0x2798.2 (0.1)
0x02790| a0 | . | tag: 0 0x2798.3-0x2798.7 (0.5)
0x02790| 80 | . | length: "indefinite" (0) 0x2799-0x2799.7 (1)
| | | constructed[0:1]: 0x279a-0x290b.7 (370)
| | | [0]{}: object 0x279a-0x290b.7 (370)
0x02790| 30 | 0 | class: "universal" (0) 0x279a-0x279a.1 (0.2)
0x02790| 30 | 0 | form: "constructed" (1) 0x279a.2-0x279a.2 (0.1)
0x02790| 30 | 0 | tag: "sequence" (0x10) 0x279a.3-0x279a.7 (0.5)
0x02790| 82 01 6e | ..n | length: 366 0x279b-0x279d.7 (3)
| | | constructed[0:3]: 0x279e-0x290b.7 (366)
| | | [0]{}: object 0x279e-0x28b5.7 (280)
0x02790| 30 | 0 | class: "universal" (0) 0x279e-0x279e.1 (0.2)
0x02790| 30 | 0 | form: "constructed" (1) 0x279e.2-0x279e.2 (0.1)
0x02790| 30 | 0 | tag: "sequence" (0x10) 0x279e.3-0x279e.7 (0.5)
0x02790| 82| .| length: 276 0x279f-0x27a1.7 (3)
0x027a0|01 14 |.. |
| | | constructed[0:8]: 0x27a2-0x28b5.7 (276)
| | | [0]{}: object 0x27a2-0x27a6.7 (5)
0x027a0| a0 | . | class: "context" (2) 0x27a2-0x27a2.1 (0.2)
0x027a0| a0 | . | form: "constructed" (1) 0x27a2.2-0x27a2.2 (0.1)
0x027a0| a0 | . | tag: 0 0x27a2.3-0x27a2.7 (0.5)
0x027a0| 03 | . | length: 3 0x27a3-0x27a3.7 (1)
| | | constructed[0:1]: 0x27a4-0x27a6.7 (3)
| | | [0]{}: object 0x27a4-0x27a6.7 (3)
0x027a0| 02 | . | class: "universal" (0) 0x27a4-0x27a4.1 (0.2)
0x027a0| 02 | . | form: "primitive" (0) 0x27a4.2-0x27a4.2 (0.1)
0x027a0| 02 | . | tag: "integer" (0x2) 0x27a4.3-0x27a4.7 (0.5)
0x027a0| 01 | . | length: 1 0x27a5-0x27a5.7 (1)
0x027a0| 02 | . | value: 2 0x27a6-0x27a6.7 (1)
| | | [1]{}: object 0x27a7-0x27b8.7 (18)
0x027a0| 02 | . | class: "universal" (0) 0x27a7-0x27a7.1 (0.2)
0x027a0| 02 | . | form: "primitive" (0) 0x27a7.2-0x27a7.2 (0.1)
0x027a0| 02 | . | tag: "integer" (0x2) 0x27a7.3-0x27a7.7 (0.5)
0x027a0| 10 | . | length: 16 0x27a8-0x27a8.7 (1)
0x027a0| 73 b1 c7 fd dd 78 8c| s....x.| value: 153784312372004154585016958156123251168 0x27a9-0x27b8.7 (16)
0x027b0|88 93 20 a9 d1 7b 89 a1 e0 |.. ..{... |
| | | [2]{}: object 0x27b9-0x27c4.7 (12)
0x027b0| 30 | 0 | class: "universal" (0) 0x27b9-0x27b9.1 (0.2)
0x027b0| 30 | 0 | form: "constructed" (1) 0x27b9.2-0x27b9.2 (0.1)
0x027b0| 30 | 0 | tag: "sequence" (0x10) 0x27b9.3-0x27b9.7 (0.5)
0x027b0| 0a | . | length: 10 0x27ba-0x27ba.7 (1)
| | | constructed[0:1]: 0x27bb-0x27c4.7 (10)
| | | [0]{}: object 0x27bb-0x27c4.7 (10)
0x027b0| 06 | . | class: "universal" (0) 0x27bb-0x27bb.1 (0.2)
0x027b0| 06 | . | form: "primitive" (0) 0x27bb.2-0x27bb.2 (0.1)
0x027b0| 06 | . | tag: "object_identifier" (0x6) 0x27bb.3-0x27bb.7 (0.5)
0x027b0| 08 | . | length: 8 0x27bc-0x27bc.7 (1)
| | | value[0:7]: 0x27bd-0x27c4.7 (8)
0x027b0| 2a | * | [0]: 1 oid 0x27bd-0x27bd.7 (1)
0x027b0| 2a | * | [1]: 2 oid 0x27bd-0x27bd.7 (1)
0x027b0| 86 48| .H| [2]: 840 oid 0x27be-0x27bf.7 (2)
0x027c0|ce 3d |.= | [3]: 10045 oid 0x27c0-0x27c1.7 (2)
0x027c0| 04 | . | [4]: 4 oid 0x27c2-0x27c2.7 (1)
0x027c0| 03 | . | [5]: 3 oid 0x27c3-0x27c3.7 (1)
0x027c0| 02 | . | [6]: 2 oid 0x27c4-0x27c4.7 (1)
| | | [3]{}: object 0x27c5-0x27d5.7 (17)
0x027c0| 30 | 0 | class: "universal" (0) 0x27c5-0x27c5.1 (0.2)
0x027c0| 30 | 0 | form: "constructed" (1) 0x27c5.2-0x27c5.2 (0.1)
0x027c0| 30 | 0 | tag: "sequence" (0x10) 0x27c5.3-0x27c5.7 (0.5)
0x027c0| 0f | . | length: 15 0x27c6-0x27c6.7 (1)
| | | constructed[0:1]: 0x27c7-0x27d5.7 (15)
| | | [0]{}: object 0x27c7-0x27d5.7 (15)
0x027c0| 31 | 1 | class: "universal" (0) 0x27c7-0x27c7.1 (0.2)
0x027c0| 31 | 1 | form: "constructed" (1) 0x27c7.2-0x27c7.2 (0.1)
0x027c0| 31 | 1 | tag: "set" (0x11) 0x27c7.3-0x27c7.7 (0.5)
0x027c0| 0d | . | length: 13 0x27c8-0x27c8.7 (1)
| | | constructed[0:1]: 0x27c9-0x27d5.7 (13)
| | | [0]{}: object 0x27c9-0x27d5.7 (13)
0x027c0| 30 | 0 | class: "universal" (0) 0x27c9-0x27c9.1 (0.2)
0x027c0| 30 | 0 | form: "constructed" (1) 0x27c9.2-0x27c9.2 (0.1)
0x027c0| 30 | 0 | tag: "sequence" (0x10) 0x27c9.3-0x27c9.7 (0.5)
0x027c0| 0b | . | length: 11 0x27ca-0x27ca.7 (1)
| | | constructed[0:2]: 0x27cb-0x27d5.7 (11)
| | | [0]{}: object 0x27cb-0x27cf.7 (5)
0x027c0| 06 | . | class: "universal" (0) 0x27cb-0x27cb.1 (0.2)
0x027c0| 06 | . | form: "primitive" (0) 0x27cb.2-0x27cb.2 (0.1)
0x027c0| 06 | . | tag: "object_identifier" (0x6) 0x27cb.3-0x27cb.7 (0.5)
0x027c0| 03 | . | length: 3 0x27cc-0x27cc.7 (1)
| | | value[0:4]: 0x27cd-0x27cf.7 (3)
0x027c0| 55 | U | [0]: 2 oid 0x27cd-0x27cd.7 (1)
0x027c0| 55 | U | [1]: 5 oid 0x27cd-0x27cd.7 (1)
0x027c0| 04 | . | [2]: 4 oid 0x27ce-0x27ce.7 (1)
0x027c0| 03| .| [3]: 3 oid 0x27cf-0x27cf.7 (1)
| | | [1]{}: object 0x27d0-0x27d5.7 (6)
0x027d0|0c |. | class: "universal" (0) 0x27d0-0x27d0.1 (0.2)
0x027d0|0c |. | form: "primitive" (0) 0x27d0.2-0x27d0.2 (0.1)
0x027d0|0c |. | tag: "utf8_string" (0xc) 0x27d0.3-0x27d0.7 (0.5)
0x027d0| 04 | . | length: 4 0x27d1-0x27d1.7 (1)
0x027d0| 54 65 73 74 | Test | value: "Test" 0x27d2-0x27d5.7 (4)
| | | [4]{}: object 0x27d6-0x27f5.7 (32)
0x027d0| 30 | 0 | class: "universal" (0) 0x27d6-0x27d6.1 (0.2)
0x027d0| 30 | 0 | form: "constructed" (1) 0x27d6.2-0x27d6.2 (0.1)
0x027d0| 30 | 0 | tag: "sequence" (0x10) 0x27d6.3-0x27d6.7 (0.5)
0x027d0| 1e | . | length: 30 0x27d7-0x27d7.7 (1)
| | | constructed[0:2]: 0x27d8-0x27f5.7 (30)
| | | [0]{}: object 0x27d8-0x27e6.7 (15)
0x027d0| 17 | . | class: "universal" (0) 0x27d8-0x27d8.1 (0.2)
0x027d0| 17 | . | form: "primitive" (0) 0x27d8.2-0x27d8.2 (0.1)
0x027d0| 17 | . | tag: "utc_time" (0x17) 0x27d8.3-0x27d8.7 (0.5)
0x027d0| 0d | . | length: 13 0x27d9-0x27d9.7 (1)
0x027d0| 31 38 30 37 31 36| 180716| value: "180716151700Z" 0x27da-0x27e6.7 (13)
0x027e0|31 35 31 37 30 30 5a |151700Z |
| | | [1]{}: object 0x27e7-0x27f5.7 (15)
0x027e0| 17 | . | class: "universal" (0) 0x27e7-0x27e7.1 (0.2)
0x027e0| 17 | . | form: "primitive" (0) 0x27e7.2-0x27e7.2 (0.1)
0x027e0| 17 | . | tag: "utc_time" (0x17) 0x27e7.3-0x27e7.7 (0.5)
0x027e0| 0d | . | length: 13 0x27e8-0x27e8.7 (1)
0x027e0| 31 39 30 37 31 36 31| 1907161| value: "190716151700Z" 0x27e9-0x27f5.7 (13)
0x027f0|35 31 37 30 30 5a |51700Z |
| | | [5]{}: object 0x27f6-0x2806.7 (17)
0x027f0| 30 | 0 | class: "universal" (0) 0x27f6-0x27f6.1 (0.2)
0x027f0| 30 | 0 | form: "constructed" (1) 0x27f6.2-0x27f6.2 (0.1)
0x027f0| 30 | 0 | tag: "sequence" (0x10) 0x27f6.3-0x27f6.7 (0.5)
0x027f0| 0f | . | length: 15 0x27f7-0x27f7.7 (1)
| | | constructed[0:1]: 0x27f8-0x2806.7 (15)
| | | [0]{}: object 0x27f8-0x2806.7 (15)
0x027f0| 31 | 1 | class: "universal" (0) 0x27f8-0x27f8.1 (0.2)
0x027f0| 31 | 1 | form: "constructed" (1) 0x27f8.2-0x27f8.2 (0.1)
0x027f0| 31 | 1 | tag: "set" (0x11) 0x27f8.3-0x27f8.7 (0.5)
0x027f0| 0d | . | length: 13 0x27f9-0x27f9.7 (1)
| | | constructed[0:1]: 0x27fa-0x2806.7 (13)
| | | [0]{}: object 0x27fa-0x2806.7 (13)
0x027f0| 30 | 0 | class: "universal" (0) 0x27fa-0x27fa.1 (0.2)
0x027f0| 30 | 0 | form: "constructed" (1) 0x27fa.2-0x27fa.2 (0.1)
0x027f0| 30 | 0 | tag: "sequence" (0x10) 0x27fa.3-0x27fa.7 (0.5)
0x027f0| 0b | . | length: 11 0x27fb-0x27fb.7 (1)
| | | constructed[0:2]: 0x27fc-0x2806.7 (11)
| | | [0]{}: object 0x27fc-0x2800.7 (5)
0x027f0| 06 | . | class: "universal" (0) 0x27fc-0x27fc.1 (0.2)
0x027f0| 06 | . | form: "primitive" (0) 0x27fc.2-0x27fc.2 (0.1)
0x027f0| 06 | . | tag: "object_identifier" (0x6) 0x27fc.3-0x27fc.7 (0.5)
0x027f0| 03 | . | length: 3 0x27fd-0x27fd.7 (1)
| | | value[0:4]: 0x27fe-0x2800.7 (3)
0x027f0| 55 | U | [0]: 2 oid 0x27fe-0x27fe.7 (1)
0x027f0| 55 | U | [1]: 5 oid 0x27fe-0x27fe.7 (1)
0x027f0| 04| .| [2]: 4 oid 0x27ff-0x27ff.7 (1)
0x02800|03 |. | [3]: 3 oid 0x2800-0x2800.7 (1)
| | | [1]{}: object 0x2801-0x2806.7 (6)
0x02800| 0c | . | class: "universal" (0) 0x2801-0x2801.1 (0.2)
0x02800| 0c | . | form: "primitive" (0) 0x2801.2-0x2801.2 (0.1)
0x02800| 0c | . | tag: "utf8_string" (0xc) 0x2801.3-0x2801.7 (0.5)
0x02800| 04 | . | length: 4 0x2802-0x2802.7 (1)
0x02800| 54 65 73 74 | Test | value: "Test" 0x2803-0x2806.7 (4)
| | | [6]{}: object 0x2807-0x2861.7 (91)
0x02800| 30 | 0 | class: "universal" (0) 0x2807-0x2807.1 (0.2)
0x02800| 30 | 0 | form: "constructed" (1) 0x2807.2-0x2807.2 (0.1)
0x02800| 30 | 0 | tag: "sequence" (0x10) 0x2807.3-0x2807.7 (0.5)
0x02800| 59 | Y | length: 89 0x2808-0x2808.7 (1)
| | | constructed[0:2]: 0x2809-0x2861.7 (89)
| | | [0]{}: object 0x2809-0x281d.7 (21)
0x02800| 30 | 0 | class: "universal" (0) 0x2809-0x2809.1 (0.2)
0x02800| 30 | 0 | form: "constructed" (1) 0x2809.2-0x2809.2 (0.1)
0x02800| 30 | 0 | tag: "sequence" (0x10) 0x2809.3-0x2809.7 (0.5)
0x02800| 13 | . | length: 19 0x280a-0x280a.7 (1)
| | | constructed[0:2]: 0x280b-0x281d.7 (19)
| | | [0]{}: object 0x280b-0x2813.7 (9)
0x02800| 06 | . | class: "universal" (0) 0x280b-0x280b.1 (0.2)
0x02800| 06 | . | form: "primitive" (0) 0x280b.2-0x280b.2 (0.1)
0x02800| 06 | . | tag: "object_identifier" (0x6) 0x280b.3-0x280b.7 (0.5)
0x02800| 07 | . | length: 7 0x280c-0x280c.7 (1)
| | | value[0:6]: 0x280d-0x2813.7 (7)
0x02800| 2a | * | [0]: 1 oid 0x280d-0x280d.7 (1)
0x02800| 2a | * | [1]: 2 oid 0x280d-0x280d.7 (1)
0x02800| 86 48| .H| [2]: 840 oid 0x280e-0x280f.7 (2)
0x02810|ce 3d |.= | [3]: 10045 oid 0x2810-0x2811.7 (2)
0x02810| 02 | . | [4]: 2 oid 0x2812-0x2812.7 (1)
0x02810| 01 | . | [5]: 1 oid 0x2813-0x2813.7 (1)
| | | [1]{}: object 0x2814-0x281d.7 (10)
0x02810| 06 | . | class: "universal" (0) 0x2814-0x2814.1 (0.2)
0x02810| 06 | . | form: "primitive" (0) 0x2814.2-0x2814.2 (0.1)
0x02810| 06 | . | tag: "object_identifier" (0x6) 0x2814.3-0x2814.7 (0.5)
0x02810| 08 | . | length: 8 0x2815-0x2815.7 (1)
| | | value[0:7]: 0x2816-0x281d.7 (8)
0x02810| 2a | * | [0]: 1 oid 0x2816-0x2816.7 (1)
0x02810| 2a | * | [1]: 2 oid 0x2816-0x2816.7 (1)
0x02810| 86 48 | .H | [2]: 840 oid 0x2817-0x2818.7 (2)
0x02810| ce 3d | .= | [3]: 10045 oid 0x2819-0x281a.7 (2)
0x02810| 03 | . | [4]: 3 oid 0x281b-0x281b.7 (1)
0x02810| 01 | . | [5]: 1 oid 0x281c-0x281c.7 (1)
0x02810| 07 | . | [6]: 7 oid 0x281d-0x281d.7 (1)
| | | [1]{}: object 0x281e-0x2861.7 (68)
0x02810| 03 | . | class: "universal" (0) 0x281e-0x281e.1 (0.2)
0x02810| 03 | . | form: "primitive" (0) 0x281e.2-0x281e.2 (0.1)
0x02810| 03 | . | tag: "bit_string" (0x3) 0x281e.3-0x281e.7 (0.5)
0x02810| 42| B| length: 66 0x281f-0x281f.7 (1)
0x02820|00 |. | unused_bits_count: 0 0x2820-0x2820.7 (1)
0x02820| 04 eb 6c 86 95 ce b5 1d 0e 3e a9 6b 23 78 6d| ..l......>.k#xm| value: raw bits 0x2821-0x2861.7 (65)
0x02830|13 33 7c 60 1e 53 1d af 6e d7 40 0e c9 95 a8 1e|.3|`.S..n.@.....|
* |until 0x2861.7 (65) | |
| | | [7]{}: object 0x2862-0x28b5.7 (84)
0x02860| a3 | . | class: "context" (2) 0x2862-0x2862.1 (0.2)
0x02860| a3 | . | form: "constructed" (1) 0x2862.2-0x2862.2 (0.1)
0x02860| a3 | . | tag: 3 0x2862.3-0x2862.7 (0.5)
0x02860| 52 | R | length: 82 0x2863-0x2863.7 (1)
| | | constructed[0:1]: 0x2864-0x28b5.7 (82)
| | | [0]{}: object 0x2864-0x28b5.7 (82)
0x02860| 30 | 0 | class: "universal" (0) 0x2864-0x2864.1 (0.2)
0x02860| 30 | 0 | form: "constructed" (1) 0x2864.2-0x2864.2 (0.1)
0x02860| 30 | 0 | tag: "sequence" (0x10) 0x2864.3-0x2864.7 (0.5)
0x02860| 50 | P | length: 80 0x2865-0x2865.7 (1)
| | | constructed[0:3]: 0x2866-0x28b5.7 (80)
| | | [0]{}: object 0x2866-0x2875.7 (16)
0x02860| 30 | 0 | class: "universal" (0) 0x2866-0x2866.1 (0.2)
0x02860| 30 | 0 | form: "constructed" (1) 0x2866.2-0x2866.2 (0.1)
0x02860| 30 | 0 | tag: "sequence" (0x10) 0x2866.3-0x2866.7 (0.5)
0x02860| 0e | . | length: 14 0x2867-0x2867.7 (1)
| | | constructed[0:3]: 0x2868-0x2875.7 (14)
| | | [0]{}: object 0x2868-0x286c.7 (5)
0x02860| 06 | . | class: "universal" (0) 0x2868-0x2868.1 (0.2)
0x02860| 06 | . | form: "primitive" (0) 0x2868.2-0x2868.2 (0.1)
0x02860| 06 | . | tag: "object_identifier" (0x6) 0x2868.3-0x2868.7 (0.5)
0x02860| 03 | . | length: 3 0x2869-0x2869.7 (1)
| | | value[0:4]: 0x286a-0x286c.7 (3)
0x02860| 55 | U | [0]: 2 oid 0x286a-0x286a.7 (1)
0x02860| 55 | U | [1]: 5 oid 0x286a-0x286a.7 (1)
0x02860| 1d | . | [2]: 29 oid 0x286b-0x286b.7 (1)
0x02860| 0f | . | [3]: 15 oid 0x286c-0x286c.7 (1)
| | | [1]{}: object 0x286d-0x286f.7 (3)
0x02860| 01 | . | class: "universal" (0) 0x286d-0x286d.1 (0.2)
0x02860| 01 | . | form: "primitive" (0) 0x286d.2-0x286d.2 (0.1)
0x02860| 01 | . | tag: "boolean" (0x1) 0x286d.3-0x286d.7 (0.5)
0x02860| 01 | . | length: 1 0x286e-0x286e.7 (1)
0x02860| ff| .| value: true (255) 0x286f-0x286f.7 (1)
| | | [2]{}: object 0x2870-0x2875.7 (6)
0x02870|04 |. | class: "universal" (0) 0x2870-0x2870.1 (0.2)
0x02870|04 |. | form: "primitive" (0) 0x2870.2-0x2870.2 (0.1)
0x02870|04 |. | tag: "octet_string" (0x4) 0x2870.3-0x2870.7 (0.5)
0x02870| 04 | . | length: 4 0x2871-0x2871.7 (1)
0x02870| 03 02 04 f0 | .... | value: raw bits 0x2872-0x2875.7 (4)
| | | [1]{}: object 0x2876-0x2894.7 (31)
0x02870| 30 | 0 | class: "universal" (0) 0x2876-0x2876.1 (0.2)
0x02870| 30 | 0 | form: "constructed" (1) 0x2876.2-0x2876.2 (0.1)
0x02870| 30 | 0 | tag: "sequence" (0x10) 0x2876.3-0x2876.7 (0.5)
0x02870| 1d | . | length: 29 0x2877-0x2877.7 (1)
| | | constructed[0:2]: 0x2878-0x2894.7 (29)
| | | [0]{}: object 0x2878-0x287c.7 (5)
0x02870| 06 | . | class: "universal" (0) 0x2878-0x2878.1 (0.2)
0x02870| 06 | . | form: "primitive" (0) 0x2878.2-0x2878.2 (0.1)
0x02870| 06 | . | tag: "object_identifier" (0x6) 0x2878.3-0x2878.7 (0.5)
0x02870| 03 | . | length: 3 0x2879-0x2879.7 (1)
| | | value[0:4]: 0x287a-0x287c.7 (3)
0x02870| 55 | U | [0]: 2 oid 0x287a-0x287a.7 (1)
0x02870| 55 | U | [1]: 5 oid 0x287a-0x287a.7 (1)
0x02870| 1d | . | [2]: 29 oid 0x287b-0x287b.7 (1)
0x02870| 0e | . | [3]: 14 oid 0x287c-0x287c.7 (1)
| | | [1]{}: object 0x287d-0x2894.7 (24)
0x02870| 04 | . | class: "universal" (0) 0x287d-0x287d.1 (0.2)
0x02870| 04 | . | form: "primitive" (0) 0x287d.2-0x287d.2 (0.1)
0x02870| 04 | . | tag: "octet_string" (0x4) 0x287d.3-0x287d.7 (0.5)
0x02870| 16 | . | length: 22 0x287e-0x287e.7 (1)
0x02870| 04| .| value: raw bits 0x287f-0x2894.7 (22)
0x02880|14 66 0d 2d d0 4b 45 ed 33 c8 a2 f9 71 49 85 72|.f.-.KE.3...qI.r|
0x02890|c2 08 57 b5 be |..W.. |
| | | [2]{}: object 0x2895-0x28b5.7 (33)
0x02890| 30 | 0 | class: "universal" (0) 0x2895-0x2895.1 (0.2)
0x02890| 30 | 0 | form: "constructed" (1) 0x2895.2-0x2895.2 (0.1)
0x02890| 30 | 0 | tag: "sequence" (0x10) 0x2895.3-0x2895.7 (0.5)
0x02890| 1f | . | length: 31 0x2896-0x2896.7 (1)
| | | constructed[0:2]: 0x2897-0x28b5.7 (31)
| | | [0]{}: object 0x2897-0x289b.7 (5)
0x02890| 06 | . | class: "universal" (0) 0x2897-0x2897.1 (0.2)
0x02890| 06 | . | form: "primitive" (0) 0x2897.2-0x2897.2 (0.1)
0x02890| 06 | . | tag: "object_identifier" (0x6) 0x2897.3-0x2897.7 (0.5)
0x02890| 03 | . | length: 3 0x2898-0x2898.7 (1)
| | | value[0:4]: 0x2899-0x289b.7 (3)
0x02890| 55 | U | [0]: 2 oid 0x2899-0x2899.7 (1)
0x02890| 55 | U | [1]: 5 oid 0x2899-0x2899.7 (1)
0x02890| 1d | . | [2]: 29 oid 0x289a-0x289a.7 (1)
0x02890| 23 | # | [3]: 35 oid 0x289b-0x289b.7 (1)
| | | [1]{}: object 0x289c-0x28b5.7 (26)
0x02890| 04 | . | class: "universal" (0) 0x289c-0x289c.1 (0.2)
0x02890| 04 | . | form: "primitive" (0) 0x289c.2-0x289c.2 (0.1)
0x02890| 04 | . | tag: "octet_string" (0x4) 0x289c.3-0x289c.7 (0.5)
0x02890| 18 | . | length: 24 0x289d-0x289d.7 (1)
0x02890| 30 16| 0.| value: raw bits 0x289e-0x28b5.7 (24)
0x028a0|80 14 66 0d 2d d0 4b 45 ed 33 c8 a2 f9 71 49 85|..f.-.KE.3...qI.|
0x028b0|72 c2 08 57 b5 be |r..W.. |
0x0000|03 02 04 f0 04 14 66 0d 2d d0 4b 45 ed 33 c8 a2|......f.-.KE.3..| value: raw bits 0x0-0x31.7 (50)
* |until 0x31.7 (end) (50) | |
| | | [1]{}: object 0x28b6-0x28c1.7 (12)
0x028b0| 30 | 0 | class: "universal" (0) 0x28b6-0x28b6.1 (0.2)
0x028b0| 30 | 0 | form: "constructed" (1) 0x28b6.2-0x28b6.2 (0.1)
0x028b0| 30 | 0 | tag: "sequence" (0x10) 0x28b6.3-0x28b6.7 (0.5)
0x028b0| 0a | . | length: 10 0x28b7-0x28b7.7 (1)
| | | constructed[0:1]: 0x28b8-0x28c1.7 (10)
| | | [0]{}: object 0x28b8-0x28c1.7 (10)
0x028b0| 06 | . | class: "universal" (0) 0x28b8-0x28b8.1 (0.2)
0x028b0| 06 | . | form: "primitive" (0) 0x28b8.2-0x28b8.2 (0.1)
0x028b0| 06 | . | tag: "object_identifier" (0x6) 0x28b8.3-0x28b8.7 (0.5)
0x028b0| 08 | . | length: 8 0x28b9-0x28b9.7 (1)
| | | value[0:7]: 0x28ba-0x28c1.7 (8)
0x028b0| 2a | * | [0]: 1 oid 0x28ba-0x28ba.7 (1)
0x028b0| 2a | * | [1]: 2 oid 0x28ba-0x28ba.7 (1)
0x028b0| 86 48 | .H | [2]: 840 oid 0x28bb-0x28bc.7 (2)
0x028b0| ce 3d | .= | [3]: 10045 oid 0x28bd-0x28be.7 (2)
0x028b0| 04| .| [4]: 4 oid 0x28bf-0x28bf.7 (1)
0x028c0|03 |. | [5]: 3 oid 0x28c0-0x28c0.7 (1)
0x028c0| 02 | . | [6]: 2 oid 0x28c1-0x28c1.7 (1)
| | | [2]{}: object 0x28c2-0x290b.7 (74)
0x028c0| 03 | . | class: "universal" (0) 0x28c2-0x28c2.1 (0.2)
0x028c0| 03 | . | form: "primitive" (0) 0x28c2.2-0x28c2.2 (0.1)
0x028c0| 03 | . | tag: "bit_string" (0x3) 0x28c2.3-0x28c2.7 (0.5)
0x028c0| 48 | H | length: 72 0x28c3-0x28c3.7 (1)
0x028c0| 00 | . | unused_bits_count: 0 0x28c4-0x28c4.7 (1)
0x028c0| 30 45 02 21 00 ad 16 b6 73 82 b4| 0E.!....s..| value: raw bits 0x28c5-0x290b.7 (71)
0x028d0|42 b7 86 be da 4d 5d ea 4a 0a 36 40 55 30 73 4f|B....M].J.6@U0sO|
* |until 0x290b.7 (71) | |
0x02900| 00 00 | .. | end_marker: 0 0x290c-0x290d.7 (2)
| | | [4]{}: object 0x290e-0x2a9b.7 (398)
0x02900| 31 | 1 | class: "universal" (0) 0x290e-0x290e.1 (0.2)
0x02900| 31 | 1 | form: "constructed" (1) 0x290e.2-0x290e.2 (0.1)
0x02900| 31 | 1 | tag: "set" (0x11) 0x290e.3-0x290e.7 (0.5)
0x02900| 82| .| length: 394 0x290f-0x2911.7 (3)
0x02910|01 8a |.. |
| | | constructed[0:1]: 0x2912-0x2a9b.7 (394)
| | | [0]{}: object 0x2912-0x2a9b.7 (394)
0x02910| 30 | 0 | class: "universal" (0) 0x2912-0x2912.1 (0.2)
0x02910| 30 | 0 | form: "constructed" (1) 0x2912.2-0x2912.2 (0.1)
0x02910| 30 | 0 | tag: "sequence" (0x10) 0x2912.3-0x2912.7 (0.5)
0x02910| 82 01 86 | ... | length: 390 0x2913-0x2915.7 (3)
| | | constructed[0:6]: 0x2916-0x2a9b.7 (390)
| | | [0]{}: object 0x2916-0x2918.7 (3)
0x02910| 02 | . | class: "universal" (0) 0x2916-0x2916.1 (0.2)
0x02910| 02 | . | form: "primitive" (0) 0x2916.2-0x2916.2 (0.1)
0x02910| 02 | . | tag: "integer" (0x2) 0x2916.3-0x2916.7 (0.5)
0x02910| 01 | . | length: 1 0x2917-0x2917.7 (1)
0x02910| 01 | . | value: 1 0x2918-0x2918.7 (1)
| | | [1]{}: object 0x2919-0x293d.7 (37)
0x02910| 30 | 0 | class: "universal" (0) 0x2919-0x2919.1 (0.2)
0x02910| 30 | 0 | form: "constructed" (1) 0x2919.2-0x2919.2 (0.1)
0x02910| 30 | 0 | tag: "sequence" (0x10) 0x2919.3-0x2919.7 (0.5)
0x02910| 23 | # | length: 35 0x291a-0x291a.7 (1)
| | | constructed[0:2]: 0x291b-0x293d.7 (35)
| | | [0]{}: object 0x291b-0x292b.7 (17)
0x02910| 30 | 0 | class: "universal" (0) 0x291b-0x291b.1 (0.2)
0x02910| 30 | 0 | form: "constructed" (1) 0x291b.2-0x291b.2 (0.1)
0x02910| 30 | 0 | tag: "sequence" (0x10) 0x291b.3-0x291b.7 (0.5)
0x02910| 0f | . | length: 15 0x291c-0x291c.7 (1)
| | | constructed[0:1]: 0x291d-0x292b.7 (15)
| | | [0]{}: object 0x291d-0x292b.7 (15)
0x02910| 31 | 1 | class: "universal" (0) 0x291d-0x291d.1 (0.2)
0x02910| 31 | 1 | form: "constructed" (1) 0x291d.2-0x291d.2 (0.1)
0x02910| 31 | 1 | tag: "set" (0x11) 0x291d.3-0x291d.7 (0.5)
0x02910| 0d | . | length: 13 0x291e-0x291e.7 (1)
| | | constructed[0:1]: 0x291f-0x292b.7 (13)
| | | [0]{}: object 0x291f-0x292b.7 (13)
0x02910| 30| 0| class: "universal" (0) 0x291f-0x291f.1 (0.2)
0x02910| 30| 0| form: "constructed" (1) 0x291f.2-0x291f.2 (0.1)
0x02910| 30| 0| tag: "sequence" (0x10) 0x291f.3-0x291f.7 (0.5)
0x02920|0b |. | length: 11 0x2920-0x2920.7 (1)
| | | constructed[0:2]: 0x2921-0x292b.7 (11)
| | | [0]{}: object 0x2921-0x2925.7 (5)
0x02920| 06 | . | class: "universal" (0) 0x2921-0x2921.1 (0.2)
0x02920| 06 | . | form: "primitive" (0) 0x2921.2-0x2921.2 (0.1)
0x02920| 06 | . | tag: "object_identifier" (0x6) 0x2921.3-0x2921.7 (0.5)
0x02920| 03 | . | length: 3 0x2922-0x2922.7 (1)
| | | value[0:4]: 0x2923-0x2925.7 (3)
0x02920| 55 | U | [0]: 2 oid 0x2923-0x2923.7 (1)
0x02920| 55 | U | [1]: 5 oid 0x2923-0x2923.7 (1)
0x02920| 04 | . | [2]: 4 oid 0x2924-0x2924.7 (1)
0x02920| 03 | . | [3]: 3 oid 0x2925-0x2925.7 (1)
| | | [1]{}: object 0x2926-0x292b.7 (6)
0x02920| 0c | . | class: "universal" (0) 0x2926-0x2926.1 (0.2)
0x02920| 0c | . | form: "primitive" (0) 0x2926.2-0x2926.2 (0.1)
0x02920| 0c | . | tag: "utf8_string" (0xc) 0x2926.3-0x2926.7 (0.5)
0x02920| 04 | . | length: 4 0x2927-0x2927.7 (1)
0x02920| 54 65 73 74 | Test | value: "Test" 0x2928-0x292b.7 (4)
| | | [1]{}: object 0x292c-0x293d.7 (18)
0x02920| 02 | . | class: "universal" (0) 0x292c-0x292c.1 (0.2)
0x02920| 02 | . | form: "primitive" (0) 0x292c.2-0x292c.2 (0.1)
0x02920| 02 | . | tag: "integer" (0x2) 0x292c.3-0x292c.7 (0.5)
0x02920| 10 | . | length: 16 0x292d-0x292d.7 (1)
0x02920| 73 b1| s.| value: 153784312372004154585016958156123251168 0x292e-0x293d.7 (16)
0x02930|c7 fd dd 78 8c 88 93 20 a9 d1 7b 89 a1 e0 |...x... ..{... |
| | | [2]{}: object 0x293e-0x294c.7 (15)
0x02930| 30 | 0 | class: "universal" (0) 0x293e-0x293e.1 (0.2)
0x02930| 30 | 0 | form: "constructed" (1) 0x293e.2-0x293e.2 (0.1)
0x02930| 30 | 0 | tag: "sequence" (0x10) 0x293e.3-0x293e.7 (0.5)
0x02930| 0d| .| length: 13 0x293f-0x293f.7 (1)
| | | constructed[0:2]: 0x2940-0x294c.7 (13)
| | | [0]{}: object 0x2940-0x294a.7 (11)
0x02940|06 |. | class: "universal" (0) 0x2940-0x2940.1 (0.2)
0x02940|06 |. | form: "primitive" (0) 0x2940.2-0x2940.2 (0.1)
0x02940|06 |. | tag: "object_identifier" (0x6) 0x2940.3-0x2940.7 (0.5)
0x02940| 09 | . | length: 9 0x2941-0x2941.7 (1)
| | | value[0:9]: 0x2942-0x294a.7 (9)
0x02940| 60 | ` | [0]: 2 oid 0x2942-0x2942.7 (1)
0x02940| 60 | ` | [1]: 16 oid 0x2942-0x2942.7 (1)
0x02940| 86 48 | .H | [2]: 840 oid 0x2943-0x2944.7 (2)
0x02940| 01 | . | [3]: 1 oid 0x2945-0x2945.7 (1)
0x02940| 65 | e | [4]: 101 oid 0x2946-0x2946.7 (1)
0x02940| 03 | . | [5]: 3 oid 0x2947-0x2947.7 (1)
0x02940| 04 | . | [6]: 4 oid 0x2948-0x2948.7 (1)
0x02940| 02 | . | [7]: 2 oid 0x2949-0x2949.7 (1)
0x02940| 01 | . | [8]: 1 oid 0x294a-0x294a.7 (1)
| | | [1]{}: object 0x294b-0x294c.7 (2)
0x02940| 05 | . | class: "universal" (0) 0x294b-0x294b.1 (0.2)
0x02940| 05 | . | form: "primitive" (0) 0x294b.2-0x294b.2 (0.1)
0x02940| 05 | . | tag: "null" (0x5) 0x294b.3-0x294b.7 (0.5)
0x02940| 00 | . | length: "indefinite" (0) 0x294c-0x294c.7 (1)
| | | value: null 0x294d-NA (0)
| | | [3]{}: object 0x294d-0x2a46.7 (250)
0x02940| a0 | . | class: "context" (2) 0x294d-0x294d.1 (0.2)
0x02940| a0 | . | form: "constructed" (1) 0x294d.2-0x294d.2 (0.1)
0x02940| a0 | . | tag: 0 0x294d.3-0x294d.7 (0.5)
0x02940| 81 f7| ..| length: 247 0x294e-0x294f.7 (2)
| | | constructed[0:5]: 0x2950-0x2a46.7 (247)
| | | [0]{}: object 0x2950-0x2969.7 (26)
0x02950|30 |0 | class: "universal" (0) 0x2950-0x2950.1 (0.2)
0x02950|30 |0 | form: "constructed" (1) 0x2950.2-0x2950.2 (0.1)
0x02950|30 |0 | tag: "sequence" (0x10) 0x2950.3-0x2950.7 (0.5)
0x02950| 18 | . | length: 24 0x2951-0x2951.7 (1)
| | | constructed[0:2]: 0x2952-0x2969.7 (24)
| | | [0]{}: object 0x2952-0x295c.7 (11)
0x02950| 06 | . | class: "universal" (0) 0x2952-0x2952.1 (0.2)
0x02950| 06 | . | form: "primitive" (0) 0x2952.2-0x2952.2 (0.1)
0x02950| 06 | . | tag: "object_identifier" (0x6) 0x2952.3-0x2952.7 (0.5)
0x02950| 09 | . | length: 9 0x2953-0x2953.7 (1)
| | | value[0:7]: 0x2954-0x295c.7 (9)
0x02950| 2a | * | [0]: 1 oid 0x2954-0x2954.7 (1)
0x02950| 2a | * | [1]: 2 oid 0x2954-0x2954.7 (1)
0x02950| 86 48 | .H | [2]: 840 oid 0x2955-0x2956.7 (2)
0x02950| 86 f7 0d | ... | [3]: 113549 oid 0x2957-0x2959.7 (3)
0x02950| 01 | . | [4]: 1 oid 0x295a-0x295a.7 (1)
0x02950| 09 | . | [5]: 9 oid 0x295b-0x295b.7 (1)
0x02950| 03 | . | [6]: 3 oid 0x295c-0x295c.7 (1)
| | | [1]{}: object 0x295d-0x2969.7 (13)
0x02950| 31 | 1 | class: "universal" (0) 0x295d-0x295d.1 (0.2)
0x02950| 31 | 1 | form: "constructed" (1) 0x295d.2-0x295d.2 (0.1)
0x02950| 31 | 1 | tag: "set" (0x11) 0x295d.3-0x295d.7 (0.5)
0x02950| 0b | . | length: 11 0x295e-0x295e.7 (1)
| | | constructed[0:1]: 0x295f-0x2969.7 (11)
| | | [0]{}: object 0x295f-0x2969.7 (11)
0x02950| 06| .| class: "universal" (0) 0x295f-0x295f.1 (0.2)
0x02950| 06| .| form: "primitive" (0) 0x295f.2-0x295f.2 (0.1)
0x02950| 06| .| tag: "object_identifier" (0x6) 0x295f.3-0x295f.7 (0.5)
0x02960|09 |. | length: 9 0x2960-0x2960.7 (1)
| | | value[0:7]: 0x2961-0x2969.7 (9)
0x02960| 2a | * | [0]: 1 oid 0x2961-0x2961.7 (1)
0x02960| 2a | * | [1]: 2 oid 0x2961-0x2961.7 (1)
0x02960| 86 48 | .H | [2]: 840 oid 0x2962-0x2963.7 (2)
0x02960| 86 f7 0d | ... | [3]: 113549 oid 0x2964-0x2966.7 (3)
0x02960| 01 | . | [4]: 1 oid 0x2967-0x2967.7 (1)
0x02960| 07 | . | [5]: 7 oid 0x2968-0x2968.7 (1)
0x02960| 01 | . | [6]: 1 oid 0x2969-0x2969.7 (1)
| | | [1]{}: object 0x296a-0x2987.7 (30)
0x02960| 30 | 0 | class: "universal" (0) 0x296a-0x296a.1 (0.2)
0x02960| 30 | 0 | form: "constructed" (1) 0x296a.2-0x296a.2 (0.1)
0x02960| 30 | 0 | tag: "sequence" (0x10) 0x296a.3-0x296a.7 (0.5)
0x02960| 1c | . | length: 28 0x296b-0x296b.7 (1)
| | | constructed[0:2]: 0x296c-0x2987.7 (28)
| | | [0]{}: object 0x296c-0x2976.7 (11)
0x02960| 06 | . | class: "universal" (0) 0x296c-0x296c.1 (0.2)
0x02960| 06 | . | form: "primitive" (0) 0x296c.2-0x296c.2 (0.1)
0x02960| 06 | . | tag: "object_identifier" (0x6) 0x296c.3-0x296c.7 (0.5)
0x02960| 09 | . | length: 9 0x296d-0x296d.7 (1)
| | | value[0:7]: 0x296e-0x2976.7 (9)
0x02960| 2a | * | [0]: 1 oid 0x296e-0x296e.7 (1)
0x02960| 2a | * | [1]: 2 oid 0x296e-0x296e.7 (1)
0x02960| 86| .| [2]: 840 oid 0x296f-0x2970.7 (2)
0x02970|48 |H |
0x02970| 86 f7 0d | ... | [3]: 113549 oid 0x2971-0x2973.7 (3)
0x02970| 01 | . | [4]: 1 oid 0x2974-0x2974.7 (1)
0x02970| 09 | . | [5]: 9 oid 0x2975-0x2975.7 (1)
0x02970| 05 | . | [6]: 5 oid 0x2976-0x2976.7 (1)
| | | [1]{}: object 0x2977-0x2987.7 (17)
0x02970| 31 | 1 | class: "universal" (0) 0x2977-0x2977.1 (0.2)
0x02970| 31 | 1 | form: "constructed" (1) 0x2977.2-0x2977.2 (0.1)
0x02970| 31 | 1 | tag: "set" (0x11) 0x2977.3-0x2977.7 (0.5)
0x02970| 0f | . | length: 15 0x2978-0x2978.7 (1)
| | | constructed[0:1]: 0x2979-0x2987.7 (15)
| | | [0]{}: object 0x2979-0x2987.7 (15)
0x02970| 17 | . | class: "universal" (0) 0x2979-0x2979.1 (0.2)
0x02970| 17 | . | form: "primitive" (0) 0x2979.2-0x2979.2 (0.1)
0x02970| 17 | . | tag: "utc_time" (0x17) 0x2979.3-0x2979.7 (0.5)
0x02970| 0d | . | length: 13 0x297a-0x297a.7 (1)
0x02970| 31 38 30 37 31| 18071| value: "180716151701Z" 0x297b-0x2987.7 (13)
0x02980|36 31 35 31 37 30 31 5a |6151701Z |
| | | [2]{}: object 0x2988-0x29b3.7 (44)
0x02980| 30 | 0 | class: "universal" (0) 0x2988-0x2988.1 (0.2)
0x02980| 30 | 0 | form: "constructed" (1) 0x2988.2-0x2988.2 (0.1)
0x02980| 30 | 0 | tag: "sequence" (0x10) 0x2988.3-0x2988.7 (0.5)
0x02980| 2a | * | length: 42 0x2989-0x2989.7 (1)
| | | constructed[0:2]: 0x298a-0x29b3.7 (42)
| | | [0]{}: object 0x298a-0x2994.7 (11)
0x02980| 06 | . | class: "universal" (0) 0x298a-0x298a.1 (0.2)
0x02980| 06 | . | form: "primitive" (0) 0x298a.2-0x298a.2 (0.1)
0x02980| 06 | . | tag: "object_identifier" (0x6) 0x298a.3-0x298a.7 (0.5)
0x02980| 09 | . | length: 9 0x298b-0x298b.7 (1)
| | | value[0:7]: 0x298c-0x2994.7 (9)
0x02980| 2a | * | [0]: 1 oid 0x298c-0x298c.7 (1)
0x02980| 2a | * | [1]: 2 oid 0x298c-0x298c.7 (1)
0x02980| 86 48 | .H | [2]: 840 oid 0x298d-0x298e.7 (2)
0x02980| 86| .| [3]: 113549 oid 0x298f-0x2991.7 (3)
0x02990|f7 0d |.. |
0x02990| 01 | . | [4]: 1 oid 0x2992-0x2992.7 (1)
0x02990| 09 | . | [5]: 9 oid 0x2993-0x2993.7 (1)
0x02990| 34 | 4 | [6]: 52 oid 0x2994-0x2994.7 (1)
| | | [1]{}: object 0x2995-0x29b3.7 (31)
0x02990| 31 | 1 | class: "universal" (0) 0x2995-0x2995.1 (0.2)
0x02990| 31 | 1 | form: "constructed" (1) 0x2995.2-0x2995.2 (0.1)
0x02990| 31 | 1 | tag: "set" (0x11) 0x2995.3-0x2995.7 (0.5)
0x02990| 1d | . | length: 29 0x2996-0x2996.7 (1)
| | | constructed[0:1]: 0x2997-0x29b3.7 (29)
| | | [0]{}: object 0x2997-0x29b3.7 (29)
0x02990| 30 | 0 | class: "universal" (0) 0x2997-0x2997.1 (0.2)
0x02990| 30 | 0 | form: "constructed" (1) 0x2997.2-0x2997.2 (0.1)
0x02990| 30 | 0 | tag: "sequence" (0x10) 0x2997.3-0x2997.7 (0.5)
0x02990| 1b | . | length: 27 0x2998-0x2998.7 (1)
| | | constructed[0:2]: 0x2999-0x29b3.7 (27)
| | | [0]{}: object 0x2999-0x29a7.7 (15)
0x02990| 30 | 0 | class: "universal" (0) 0x2999-0x2999.1 (0.2)
0x02990| 30 | 0 | form: "constructed" (1) 0x2999.2-0x2999.2 (0.1)
0x02990| 30 | 0 | tag: "sequence" (0x10) 0x2999.3-0x2999.7 (0.5)
0x02990| 0d | . | length: 13 0x299a-0x299a.7 (1)
| | | constructed[0:2]: 0x299b-0x29a7.7 (13)
| | | [0]{}: object 0x299b-0x29a5.7 (11)
0x02990| 06 | . | class: "universal" (0) 0x299b-0x299b.1 (0.2)
0x02990| 06 | . | form: "primitive" (0) 0x299b.2-0x299b.2 (0.1)
0x02990| 06 | . | tag: "object_identifier" (0x6) 0x299b.3-0x299b.7 (0.5)
0x02990| 09 | . | length: 9 0x299c-0x299c.7 (1)
| | | value[0:9]: 0x299d-0x29a5.7 (9)
0x02990| 60 | ` | [0]: 2 oid 0x299d-0x299d.7 (1)
0x02990| 60 | ` | [1]: 16 oid 0x299d-0x299d.7 (1)
0x02990| 86 48| .H| [2]: 840 oid 0x299e-0x299f.7 (2)
0x029a0|01 |. | [3]: 1 oid 0x29a0-0x29a0.7 (1)
0x029a0| 65 | e | [4]: 101 oid 0x29a1-0x29a1.7 (1)
0x029a0| 03 | . | [5]: 3 oid 0x29a2-0x29a2.7 (1)
0x029a0| 04 | . | [6]: 4 oid 0x29a3-0x29a3.7 (1)
0x029a0| 02 | . | [7]: 2 oid 0x29a4-0x29a4.7 (1)
0x029a0| 01 | . | [8]: 1 oid 0x29a5-0x29a5.7 (1)
| | | [1]{}: object 0x29a6-0x29a7.7 (2)
0x029a0| 05 | . | class: "universal" (0) 0x29a6-0x29a6.1 (0.2)
0x029a0| 05 | . | form: "primitive" (0) 0x29a6.2-0x29a6.2 (0.1)
0x029a0| 05 | . | tag: "null" (0x5) 0x29a6.3-0x29a6.7 (0.5)
0x029a0| 00 | . | length: "indefinite" (0) 0x29a7-0x29a7.7 (1)
| | | value: null 0x29a8-NA (0)
| | | [1]{}: object 0x29a8-0x29b3.7 (12)
0x029a0| a1 | . | class: "context" (2) 0x29a8-0x29a8.1 (0.2)
0x029a0| a1 | . | form: "constructed" (1) 0x29a8.2-0x29a8.2 (0.1)
0x029a0| a1 | . | tag: 1 0x29a8.3-0x29a8.7 (0.5)
0x029a0| 0a | . | length: 10 0x29a9-0x29a9.7 (1)
| | | constructed[0:1]: 0x29aa-0x29b3.7 (10)
| | | [0]{}: object 0x29aa-0x29b3.7 (10)
0x029a0| 06 | . | class: "universal" (0) 0x29aa-0x29aa.1 (0.2)
0x029a0| 06 | . | form: "primitive" (0) 0x29aa.2-0x29aa.2 (0.1)
0x029a0| 06 | . | tag: "object_identifier" (0x6) 0x29aa.3-0x29aa.7 (0.5)
0x029a0| 08 | . | length: 8 0x29ab-0x29ab.7 (1)
| | | value[0:7]: 0x29ac-0x29b3.7 (8)
0x029a0| 2a | * | [0]: 1 oid 0x29ac-0x29ac.7 (1)
0x029a0| 2a | * | [1]: 2 oid 0x29ac-0x29ac.7 (1)
0x029a0| 86 48 | .H | [2]: 840 oid 0x29ad-0x29ae.7 (2)
0x029a0| ce| .| [3]: 10045 oid 0x29af-0x29b0.7 (2)
0x029b0|3d |= |
0x029b0| 04 | . | [4]: 4 oid 0x29b1-0x29b1.7 (1)
0x029b0| 03 | . | [5]: 3 oid 0x29b2-0x29b2.7 (1)
0x029b0| 02 | . | [6]: 2 oid 0x29b3-0x29b3.7 (1)
| | | [3]{}: object 0x29b4-0x29e4.7 (49)
0x029b0| 30 | 0 | class: "universal" (0) 0x29b4-0x29b4.1 (0.2)
0x029b0| 30 | 0 | form: "constructed" (1) 0x29b4.2-0x29b4.2 (0.1)
0x029b0| 30 | 0 | tag: "sequence" (0x10) 0x29b4.3-0x29b4.7 (0.5)
0x029b0| 2f | / | length: 47 0x29b5-0x29b5.7 (1)
| | | constructed[0:2]: 0x29b6-0x29e4.7 (47)
| | | [0]{}: object 0x29b6-0x29c0.7 (11)
0x029b0| 06 | . | class: "universal" (0) 0x29b6-0x29b6.1 (0.2)
0x029b0| 06 | . | form: "primitive" (0) 0x29b6.2-0x29b6.2 (0.1)
0x029b0| 06 | . | tag: "object_identifier" (0x6) 0x29b6.3-0x29b6.7 (0.5)
0x029b0| 09 | . | length: 9 0x29b7-0x29b7.7 (1)
| | | value[0:7]: 0x29b8-0x29c0.7 (9)
0x029b0| 2a | * | [0]: 1 oid 0x29b8-0x29b8.7 (1)
0x029b0| 2a | * | [1]: 2 oid 0x29b8-0x29b8.7 (1)
0x029b0| 86 48 | .H | [2]: 840 oid 0x29b9-0x29ba.7 (2)
0x029b0| 86 f7 0d | ... | [3]: 113549 oid 0x29bb-0x29bd.7 (3)
0x029b0| 01 | . | [4]: 1 oid 0x29be-0x29be.7 (1)
0x029b0| 09| .| [5]: 9 oid 0x29bf-0x29bf.7 (1)
0x029c0|04 |. | [6]: 4 oid 0x29c0-0x29c0.7 (1)
| | | [1]{}: object 0x29c1-0x29e4.7 (36)
0x029c0| 31 | 1 | class: "universal" (0) 0x29c1-0x29c1.1 (0.2)
0x029c0| 31 | 1 | form: "constructed" (1) 0x29c1.2-0x29c1.2 (0.1)
0x029c0| 31 | 1 | tag: "set" (0x11) 0x29c1.3-0x29c1.7 (0.5)
0x029c0| 22 | " | length: 34 0x29c2-0x29c2.7 (1)
| | | constructed[0:1]: 0x29c3-0x29e4.7 (34)
| | | [0]{}: object 0x29c3-0x29e4.7 (34)
0x029c0| 04 | . | class: "universal" (0) 0x29c3-0x29c3.1 (0.2)
0x029c0| 04 | . | form: "primitive" (0) 0x29c3.2-0x29c3.2 (0.1)
0x029c0| 04 | . | tag: "octet_string" (0x4) 0x29c3.3-0x29c3.7 (0.5)
0x029c0| 20 | | length: 32 0x29c4-0x29c4.7 (1)
0x029c0| 72 4c 51 bb e7 6d a0 5a fb 20 cb| rLQ..m.Z. .| value: raw bits 0x29c5-0x29e4.7 (32)
0x029d0|e8 eb 03 7c da e1 af d7 13 12 5d 2d c1 3d 55 2d|...|......]-.=U-|
0x029e0|a9 f4 42 d2 4d |..B.M |
| | | [4]{}: object 0x29e5-0x2a46.7 (98)
0x029e0| 30 | 0 | class: "universal" (0) 0x29e5-0x29e5.1 (0.2)
0x029e0| 30 | 0 | form: "constructed" (1) 0x29e5.2-0x29e5.2 (0.1)
0x029e0| 30 | 0 | tag: "sequence" (0x10) 0x29e5.3-0x29e5.7 (0.5)
0x029e0| 60 | ` | length: 96 0x29e6-0x29e6.7 (1)
| | | constructed[0:2]: 0x29e7-0x2a46.7 (96)
| | | [0]{}: object 0x29e7-0x29f3.7 (13)
0x029e0| 06 | . | class: "universal" (0) 0x29e7-0x29e7.1 (0.2)
0x029e0| 06 | . | form: "primitive" (0) 0x29e7.2-0x29e7.2 (0.1)
0x029e0| 06 | . | tag: "object_identifier" (0x6) 0x29e7.3-0x29e7.7 (0.5)
0x029e0| 0b | . | length: 11 0x29e8-0x29e8.7 (1)
| | | value[0:9]: 0x29e9-0x29f3.7 (11)
0x029e0| 2a | * | [0]: 1 oid 0x29e9-0x29e9.7 (1)
0x029e0| 2a | * | [1]: 2 oid 0x29e9-0x29e9.7 (1)
0x029e0| 86 48 | .H | [2]: 840 oid 0x29ea-0x29eb.7 (2)
0x029e0| 86 f7 0d | ... | [3]: 113549 oid 0x29ec-0x29ee.7 (3)
0x029e0| 01| .| [4]: 1 oid 0x29ef-0x29ef.7 (1)
0x029f0|09 |. | [5]: 9 oid 0x29f0-0x29f0.7 (1)
0x029f0| 10 | . | [6]: 16 oid 0x29f1-0x29f1.7 (1)
0x029f0| 02 | . | [7]: 2 oid 0x29f2-0x29f2.7 (1)
0x029f0| 2f | / | [8]: 47 oid 0x29f3-0x29f3.7 (1)
| | | [1]{}: object 0x29f4-0x2a46.7 (83)
0x029f0| 31 | 1 | class: "universal" (0) 0x29f4-0x29f4.1 (0.2)
0x029f0| 31 | 1 | form: "constructed" (1) 0x29f4.2-0x29f4.2 (0.1)
0x029f0| 31 | 1 | tag: "set" (0x11) 0x29f4.3-0x29f4.7 (0.5)
0x029f0| 51 | Q | length: 81 0x29f5-0x29f5.7 (1)
| | | constructed[0:1]: 0x29f6-0x2a46.7 (81)
| | | [0]{}: object 0x29f6-0x2a46.7 (81)
0x029f0| 30 | 0 | class: "universal" (0) 0x29f6-0x29f6.1 (0.2)
0x029f0| 30 | 0 | form: "constructed" (1) 0x29f6.2-0x29f6.2 (0.1)
0x029f0| 30 | 0 | tag: "sequence" (0x10) 0x29f6.3-0x29f6.7 (0.5)
0x029f0| 4f | O | length: 79 0x29f7-0x29f7.7 (1)
| | | constructed[0:1]: 0x29f8-0x2a46.7 (79)
| | | [0]{}: object 0x29f8-0x2a46.7 (79)
0x029f0| 30 | 0 | class: "universal" (0) 0x29f8-0x29f8.1 (0.2)
0x029f0| 30 | 0 | form: "constructed" (1) 0x29f8.2-0x29f8.2 (0.1)
0x029f0| 30 | 0 | tag: "sequence" (0x10) 0x29f8.3-0x29f8.7 (0.5)
0x029f0| 4d | M | length: 77 0x29f9-0x29f9.7 (1)
| | | constructed[0:1]: 0x29fa-0x2a46.7 (77)
| | | [0]{}: object 0x29fa-0x2a46.7 (77)
0x029f0| 30 | 0 | class: "universal" (0) 0x29fa-0x29fa.1 (0.2)
0x029f0| 30 | 0 | form: "constructed" (1) 0x29fa.2-0x29fa.2 (0.1)
0x029f0| 30 | 0 | tag: "sequence" (0x10) 0x29fa.3-0x29fa.7 (0.5)
0x029f0| 4b | K | length: 75 0x29fb-0x29fb.7 (1)
| | | constructed[0:2]: 0x29fc-0x2a46.7 (75)
| | | [0]{}: object 0x29fc-0x2a1d.7 (34)
0x029f0| 04 | . | class: "universal" (0) 0x29fc-0x29fc.1 (0.2)
0x029f0| 04 | . | form: "primitive" (0) 0x29fc.2-0x29fc.2 (0.1)
0x029f0| 04 | . | tag: "octet_string" (0x4) 0x29fc.3-0x29fc.7 (0.5)
0x029f0| 20 | | length: 32 0x29fd-0x29fd.7 (1)
0x029f0| 5e 40| ^@| value: raw bits 0x29fe-0x2a1d.7 (32)
0x02a00|2d 81 16 d0 a5 ad 8c 3e bc 6b ed 79 2b 3a d4 e1|-......>.k.y+:..|
0x02a10|f2 ff 3c 0b f4 14 34 33 85 f9 cb cb bc b3 |..<...43...... |
| | | [1]{}: object 0x2a1e-0x2a46.7 (41)
0x02a10| 30 | 0 | class: "universal" (0) 0x2a1e-0x2a1e.1 (0.2)
0x02a10| 30 | 0 | form: "constructed" (1) 0x2a1e.2-0x2a1e.2 (0.1)
0x02a10| 30 | 0 | tag: "sequence" (0x10) 0x2a1e.3-0x2a1e.7 (0.5)
0x02a10| 27| '| length: 39 0x2a1f-0x2a1f.7 (1)
| | | constructed[0:2]: 0x2a20-0x2a46.7 (39)
| | | [0]{}: object 0x2a20-0x2a34.7 (21)
0x02a20|30 |0 | class: "universal" (0) 0x2a20-0x2a20.1 (0.2)
0x02a20|30 |0 | form: "constructed" (1) 0x2a20.2-0x2a20.2 (0.1)
0x02a20|30 |0 | tag: "sequence" (0x10) 0x2a20.3-0x2a20.7 (0.5)
0x02a20| 13 | . | length: 19 0x2a21-0x2a21.7 (1)
| | | constructed[0:1]: 0x2a22-0x2a34.7 (19)
| | | [0]{}: object 0x2a22-0x2a34.7 (19)
0x02a20| a4 | . | class: "context" (2) 0x2a22-0x2a22.1 (0.2)
0x02a20| a4 | . | form: "constructed" (1) 0x2a22.2-0x2a22.2 (0.1)
0x02a20| a4 | . | tag: 4 0x2a22.3-0x2a22.7 (0.5)
0x02a20| 11 | . | length: 17 0x2a23-0x2a23.7 (1)
| | | constructed[0:1]: 0x2a24-0x2a34.7 (17)
| | | [0]{}: object 0x2a24-0x2a34.7 (17)
0x02a20| 30 | 0 | class: "universal" (0) 0x2a24-0x2a24.1 (0.2)
0x02a20| 30 | 0 | form: "constructed" (1) 0x2a24.2-0x2a24.2 (0.1)
0x02a20| 30 | 0 | tag: "sequence" (0x10) 0x2a24.3-0x2a24.7 (0.5)
0x02a20| 0f | . | length: 15 0x2a25-0x2a25.7 (1)
| | | constructed[0:1]: 0x2a26-0x2a34.7 (15)
| | | [0]{}: object 0x2a26-0x2a34.7 (15)
0x02a20| 31 | 1 | class: "universal" (0) 0x2a26-0x2a26.1 (0.2)
0x02a20| 31 | 1 | form: "constructed" (1) 0x2a26.2-0x2a26.2 (0.1)
0x02a20| 31 | 1 | tag: "set" (0x11) 0x2a26.3-0x2a26.7 (0.5)
0x02a20| 0d | . | length: 13 0x2a27-0x2a27.7 (1)
| | | constructed[0:1]: 0x2a28-0x2a34.7 (13)
| | | [0]{}: object 0x2a28-0x2a34.7 (13)
0x02a20| 30 | 0 | class: "universal" (0) 0x2a28-0x2a28.1 (0.2)
0x02a20| 30 | 0 | form: "constructed" (1) 0x2a28.2-0x2a28.2 (0.1)
0x02a20| 30 | 0 | tag: "sequence" (0x10) 0x2a28.3-0x2a28.7 (0.5)
0x02a20| 0b | . | length: 11 0x2a29-0x2a29.7 (1)
| | | constructed[0:2]: 0x2a2a-0x2a34.7 (11)
| | | [0]{}: object 0x2a2a-0x2a2e.7 (5)
0x02a20| 06 | . | class: "universal" (0) 0x2a2a-0x2a2a.1 (0.2)
0x02a20| 06 | . | form: "primitive" (0) 0x2a2a.2-0x2a2a.2 (0.1)
0x02a20| 06 | . | tag: "object_identifier" (0x6) 0x2a2a.3-0x2a2a.7 (0.5)
0x02a20| 03 | . | length: 3 0x2a2b-0x2a2b.7 (1)
| | | value[0:4]: 0x2a2c-0x2a2e.7 (3)
0x02a20| 55 | U | [0]: 2 oid 0x2a2c-0x2a2c.7 (1)
0x02a20| 55 | U | [1]: 5 oid 0x2a2c-0x2a2c.7 (1)
0x02a20| 04 | . | [2]: 4 oid 0x2a2d-0x2a2d.7 (1)
0x02a20| 03 | . | [3]: 3 oid 0x2a2e-0x2a2e.7 (1)
| | | [1]{}: object 0x2a2f-0x2a34.7 (6)
0x02a20| 0c| .| class: "universal" (0) 0x2a2f-0x2a2f.1 (0.2)
0x02a20| 0c| .| form: "primitive" (0) 0x2a2f.2-0x2a2f.2 (0.1)
0x02a20| 0c| .| tag: "utf8_string" (0xc) 0x2a2f.3-0x2a2f.7 (0.5)
0x02a30|04 |. | length: 4 0x2a30-0x2a30.7 (1)
0x02a30| 54 65 73 74 | Test | value: "Test" 0x2a31-0x2a34.7 (4)
| | | value: raw bits 0x0-NA (0)
| | | [1]{}: object 0x2a35-0x2a46.7 (18)
0x02a30| 02 | . | class: "universal" (0) 0x2a35-0x2a35.1 (0.2)
0x02a30| 02 | . | form: "primitive" (0) 0x2a35.2-0x2a35.2 (0.1)
0x02a30| 02 | . | tag: "integer" (0x2) 0x2a35.3-0x2a35.7 (0.5)
0x02a30| 10 | . | length: 16 0x2a36-0x2a36.7 (1)
0x02a30| 73 b1 c7 fd dd 78 8c 88 93| s....x...| value: 153784312372004154585016958156123251168 0x2a37-0x2a46.7 (16)
0x02a40|20 a9 d1 7b 89 a1 e0 | ..{... |
| | | [4]{}: object 0x2a47-0x2a52.7 (12)
0x02a40| 30 | 0 | class: "universal" (0) 0x2a47-0x2a47.1 (0.2)
0x02a40| 30 | 0 | form: "constructed" (1) 0x2a47.2-0x2a47.2 (0.1)
0x02a40| 30 | 0 | tag: "sequence" (0x10) 0x2a47.3-0x2a47.7 (0.5)
0x02a40| 0a | . | length: 10 0x2a48-0x2a48.7 (1)
| | | constructed[0:1]: 0x2a49-0x2a52.7 (10)
| | | [0]{}: object 0x2a49-0x2a52.7 (10)
0x02a40| 06 | . | class: "universal" (0) 0x2a49-0x2a49.1 (0.2)
0x02a40| 06 | . | form: "primitive" (0) 0x2a49.2-0x2a49.2 (0.1)
0x02a40| 06 | . | tag: "object_identifier" (0x6) 0x2a49.3-0x2a49.7 (0.5)
0x02a40| 08 | . | length: 8 0x2a4a-0x2a4a.7 (1)
| | | value[0:7]: 0x2a4b-0x2a52.7 (8)
0x02a40| 2a | * | [0]: 1 oid 0x2a4b-0x2a4b.7 (1)
0x02a40| 2a | * | [1]: 2 oid 0x2a4b-0x2a4b.7 (1)
0x02a40| 86 48 | .H | [2]: 840 oid 0x2a4c-0x2a4d.7 (2)
0x02a40| ce 3d| .=| [3]: 10045 oid 0x2a4e-0x2a4f.7 (2)
0x02a50|04 |. | [4]: 4 oid 0x2a50-0x2a50.7 (1)
0x02a50| 03 | . | [5]: 3 oid 0x2a51-0x2a51.7 (1)
0x02a50| 02 | . | [6]: 2 oid 0x2a52-0x2a52.7 (1)
| | | [5]{}: object 0x2a53-0x2a9b.7 (73)
0x02a50| 04 | . | class: "universal" (0) 0x2a53-0x2a53.1 (0.2)
0x02a50| 04 | . | form: "primitive" (0) 0x2a53.2-0x2a53.2 (0.1)
0x02a50| 04 | . | tag: "octet_string" (0x4) 0x2a53.3-0x2a53.7 (0.5)
0x02a50| 47 | G | length: 71 0x2a54-0x2a54.7 (1)
0x02a50| 30 45 02 20 54 fa 2b 4c fb 53 d9| 0E. T.+L.S.| value: raw bits 0x2a55-0x2a9b.7 (71)
0x02a60|ef b9 b9 1b ca 42 ab 84 7b cd 02 9e ec e2 bf d6|.....B..{.......|
* |until 0x2a9b.7 (71) | |
0x02a90| 00 00 | .. | end_marker: 0 0x2a9c-0x2a9d.7 (2)
0x02a90| 00 00| ..| end_marker: 0 0x2a9e-0x2a9f.7 (2)
0x02aa0|00 00| |..| | end_marker: 0 0x2aa0-0x2aa1.7 (2)

232
format/asn1/testdata/sig-p256-der.p7m vendored Normal file
View File

@ -0,0 +1,232 @@
This is a PKCS#7/CMS attached digital signature.
It is signed using ecdsaWithSHA256 over NIST curve P-256.
It contains 10034 bytes of data in a single DER OCTET STRING.
-----BEGIN PKCS7-----
MIIqdAYJKoZIhvcNAQcCoIIqZTCCKmECAQExDzANBglghkgBZQMEAgEFADCCJ0UG
CSqGSIb3DQEHAaCCJzYEgicySW5pemlvIGNvbnRlbnV0by4KQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpGaW5lIGNvbnRlbnV0by6gggFyMIIBbjCCARSgAwIBAgIQYFzS1SZ1s5Kl
qpsCsmpVZjAKBggqhkjOPQQDAjAPMQ0wCwYDVQQDDARUZXN0MB4XDTE4MDcxNjE0
NTYzNVoXDTE5MDcxNjE0NTYzNVowDzENMAsGA1UEAwwEVGVzdDBZMBMGByqGSM49
AgEGCCqGSM49AwEHA0IABCRMtswcaSH/Sdi+Jj4LfNBaKGVahGyCXsrm7OaaaiHE
5PIgJMDp9OR0nJihrfJfkN5u+UgrZxiDpw60t6ufBkOjUjBQMA4GA1UdDwEB/wQE
AwIE8DAdBgNVHQ4EFgQUw8CE33sEDbA4r1GM45f27CDWJuYwHwYDVR0jBBgwFoAU
w8CE33sEDbA4r1GM45f27CDWJuYwCgYIKoZIzj0EAwIDSAAwRQIhAN5gHlc9r7Wb
xVHVjj57ntoGEt0BEoBaIhe3NHWbiEQXAiBnw/3mB4DUHB16O5ApHz05xNwvIG3M
ui+YLAa2fAmyMjGCAYowggGGAgEBMCMwDzENMAsGA1UEAwwEVGVzdAIQYFzS1SZ1
s5KlqpsCsmpVZjANBglghkgBZQMEAgEFAKCB9zAYBgkqhkiG9w0BCQMxCwYJKoZI
hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xODA3MTYxNDU2MzVaMCoGCSqGSIb3DQEJ
NDEdMBswDQYJYIZIAWUDBAIBBQChCgYIKoZIzj0EAwIwLwYJKoZIhvcNAQkEMSIE
IHJMUbvnbaBa+yDL6OsDfNrhr9cTEl0twT1VLan0QtJNMGAGCyqGSIb3DQEJEAIv
MVEwTzBNMEsEILq8CENMWCZzAeAGhh0n7KElZw55J5ckjnalcXpb+ZPCMCcwE6QR
MA8xDTALBgNVBAMMBFRlc3QCEGBc0tUmdbOSpaqbArJqVWYwCgYIKoZIzj0EAwIE
RzBFAiEA8QQwLqu0KOzI5xzi449svthIqOmitdXaGZM+SFyDzHECIAy7QKC3ubLg
SJIGIvsob9FGlfJM9lC9qkC4hfhMNLu5
-----END PKCS7-----

View File

@ -0,0 +1,834 @@
$ fq -d raw 'frompem | asn1_ber | dv' sig-p256-der.p7m
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x2a77.7 (10872)
0x0000|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0000|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x0000|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x0000| 82 2a 74 | .*t | length: 10868 0x1-0x3.7 (3)
| | | constructed[0:2]: 0x4-0x2a77.7 (10868)
| | | [0]{}: object 0x4-0xe.7 (11)
0x0000| 06 | . | class: "universal" (0) 0x4-0x4.1 (0.2)
0x0000| 06 | . | form: "primitive" (0) 0x4.2-0x4.2 (0.1)
0x0000| 06 | . | tag: "object_identifier" (0x6) 0x4.3-0x4.7 (0.5)
0x0000| 09 | . | length: 9 0x5-0x5.7 (1)
| | | value[0:7]: 0x6-0xe.7 (9)
0x0000| 2a | * | [0]: 1 oid 0x6-0x6.7 (1)
0x0000| 2a | * | [1]: 2 oid 0x6-0x6.7 (1)
0x0000| 86 48 | .H | [2]: 840 oid 0x7-0x8.7 (2)
0x0000| 86 f7 0d | ... | [3]: 113549 oid 0x9-0xb.7 (3)
0x0000| 01 | . | [4]: 1 oid 0xc-0xc.7 (1)
0x0000| 07 | . | [5]: 7 oid 0xd-0xd.7 (1)
0x0000| 02 | . | [6]: 2 oid 0xe-0xe.7 (1)
| | | [1]{}: object 0xf-0x2a77.7 (10857)
0x0000| a0| .| class: "context" (2) 0xf-0xf.1 (0.2)
0x0000| a0| .| form: "constructed" (1) 0xf.2-0xf.2 (0.1)
0x0000| a0| .| tag: 0 0xf.3-0xf.7 (0.5)
0x0010|82 2a 65 |.*e | length: 10853 0x10-0x12.7 (3)
| | | constructed[0:1]: 0x13-0x2a77.7 (10853)
| | | [0]{}: object 0x13-0x2a77.7 (10853)
0x0010| 30 | 0 | class: "universal" (0) 0x13-0x13.1 (0.2)
0x0010| 30 | 0 | form: "constructed" (1) 0x13.2-0x13.2 (0.1)
0x0010| 30 | 0 | tag: "sequence" (0x10) 0x13.3-0x13.7 (0.5)
0x0010| 82 2a 61 | .*a | length: 10849 0x14-0x16.7 (3)
| | | constructed[0:5]: 0x17-0x2a77.7 (10849)
| | | [0]{}: object 0x17-0x19.7 (3)
0x0010| 02 | . | class: "universal" (0) 0x17-0x17.1 (0.2)
0x0010| 02 | . | form: "primitive" (0) 0x17.2-0x17.2 (0.1)
0x0010| 02 | . | tag: "integer" (0x2) 0x17.3-0x17.7 (0.5)
0x0010| 01 | . | length: 1 0x18-0x18.7 (1)
0x0010| 01 | . | value: 1 0x19-0x19.7 (1)
| | | [1]{}: object 0x1a-0x2a.7 (17)
0x0010| 31 | 1 | class: "universal" (0) 0x1a-0x1a.1 (0.2)
0x0010| 31 | 1 | form: "constructed" (1) 0x1a.2-0x1a.2 (0.1)
0x0010| 31 | 1 | tag: "set" (0x11) 0x1a.3-0x1a.7 (0.5)
0x0010| 0f | . | length: 15 0x1b-0x1b.7 (1)
| | | constructed[0:1]: 0x1c-0x2a.7 (15)
| | | [0]{}: object 0x1c-0x2a.7 (15)
0x0010| 30 | 0 | class: "universal" (0) 0x1c-0x1c.1 (0.2)
0x0010| 30 | 0 | form: "constructed" (1) 0x1c.2-0x1c.2 (0.1)
0x0010| 30 | 0 | tag: "sequence" (0x10) 0x1c.3-0x1c.7 (0.5)
0x0010| 0d | . | length: 13 0x1d-0x1d.7 (1)
| | | constructed[0:2]: 0x1e-0x2a.7 (13)
| | | [0]{}: object 0x1e-0x28.7 (11)
0x0010| 06 | . | class: "universal" (0) 0x1e-0x1e.1 (0.2)
0x0010| 06 | . | form: "primitive" (0) 0x1e.2-0x1e.2 (0.1)
0x0010| 06 | . | tag: "object_identifier" (0x6) 0x1e.3-0x1e.7 (0.5)
0x0010| 09| .| length: 9 0x1f-0x1f.7 (1)
| | | value[0:9]: 0x20-0x28.7 (9)
0x0020|60 |` | [0]: 2 oid 0x20-0x20.7 (1)
0x0020|60 |` | [1]: 16 oid 0x20-0x20.7 (1)
0x0020| 86 48 | .H | [2]: 840 oid 0x21-0x22.7 (2)
0x0020| 01 | . | [3]: 1 oid 0x23-0x23.7 (1)
0x0020| 65 | e | [4]: 101 oid 0x24-0x24.7 (1)
0x0020| 03 | . | [5]: 3 oid 0x25-0x25.7 (1)
0x0020| 04 | . | [6]: 4 oid 0x26-0x26.7 (1)
0x0020| 02 | . | [7]: 2 oid 0x27-0x27.7 (1)
0x0020| 01 | . | [8]: 1 oid 0x28-0x28.7 (1)
| | | [1]{}: object 0x29-0x2a.7 (2)
0x0020| 05 | . | class: "universal" (0) 0x29-0x29.1 (0.2)
0x0020| 05 | . | form: "primitive" (0) 0x29.2-0x29.2 (0.1)
0x0020| 05 | . | tag: "null" (0x5) 0x29.3-0x29.7 (0.5)
0x0020| 00 | . | length: "indefinite" (0) 0x2a-0x2a.7 (1)
| | | value: null 0x2b-NA (0)
| | | [2]{}: object 0x2b-0x2773.7 (10057)
0x0020| 30 | 0 | class: "universal" (0) 0x2b-0x2b.1 (0.2)
0x0020| 30 | 0 | form: "constructed" (1) 0x2b.2-0x2b.2 (0.1)
0x0020| 30 | 0 | tag: "sequence" (0x10) 0x2b.3-0x2b.7 (0.5)
0x0020| 82 27 45 | .'E | length: 10053 0x2c-0x2e.7 (3)
| | | constructed[0:2]: 0x2f-0x2773.7 (10053)
| | | [0]{}: object 0x2f-0x39.7 (11)
0x0020| 06| .| class: "universal" (0) 0x2f-0x2f.1 (0.2)
0x0020| 06| .| form: "primitive" (0) 0x2f.2-0x2f.2 (0.1)
0x0020| 06| .| tag: "object_identifier" (0x6) 0x2f.3-0x2f.7 (0.5)
0x0030|09 |. | length: 9 0x30-0x30.7 (1)
| | | value[0:7]: 0x31-0x39.7 (9)
0x0030| 2a | * | [0]: 1 oid 0x31-0x31.7 (1)
0x0030| 2a | * | [1]: 2 oid 0x31-0x31.7 (1)
0x0030| 86 48 | .H | [2]: 840 oid 0x32-0x33.7 (2)
0x0030| 86 f7 0d | ... | [3]: 113549 oid 0x34-0x36.7 (3)
0x0030| 01 | . | [4]: 1 oid 0x37-0x37.7 (1)
0x0030| 07 | . | [5]: 7 oid 0x38-0x38.7 (1)
0x0030| 01 | . | [6]: 1 oid 0x39-0x39.7 (1)
| | | [1]{}: object 0x3a-0x2773.7 (10042)
0x0030| a0 | . | class: "context" (2) 0x3a-0x3a.1 (0.2)
0x0030| a0 | . | form: "constructed" (1) 0x3a.2-0x3a.2 (0.1)
0x0030| a0 | . | tag: 0 0x3a.3-0x3a.7 (0.5)
0x0030| 82 27 36 | .'6 | length: 10038 0x3b-0x3d.7 (3)
| | | constructed[0:1]: 0x3e-0x2773.7 (10038)
| | | [0]{}: object 0x3e-0x2773.7 (10038)
0x0030| 04 | . | class: "universal" (0) 0x3e-0x3e.1 (0.2)
0x0030| 04 | . | form: "primitive" (0) 0x3e.2-0x3e.2 (0.1)
0x0030| 04 | . | tag: "octet_string" (0x4) 0x3e.3-0x3e.7 (0.5)
0x0030| 82| .| length: 10034 0x3f-0x41.7 (3)
0x0040|27 32 |'2 |
0x0040| 49 6e 69 7a 69 6f 20 63 6f 6e 74 65 6e 75| Inizio contenu| value: raw bits 0x42-0x2773.7 (10034)
0x0050|74 6f 2e 0a 41 41 41 41 41 41 41 41 41 41 41 41|to..AAAAAAAAAAAA|
* |until 0x2773.7 (10034) | |
| | | [3]{}: object 0x2774-0x28e9.7 (374)
0x2770| a0 | . | class: "context" (2) 0x2774-0x2774.1 (0.2)
0x2770| a0 | . | form: "constructed" (1) 0x2774.2-0x2774.2 (0.1)
0x2770| a0 | . | tag: 0 0x2774.3-0x2774.7 (0.5)
0x2770| 82 01 72 | ..r | length: 370 0x2775-0x2777.7 (3)
| | | constructed[0:1]: 0x2778-0x28e9.7 (370)
| | | [0]{}: object 0x2778-0x28e9.7 (370)
0x2770| 30 | 0 | class: "universal" (0) 0x2778-0x2778.1 (0.2)
0x2770| 30 | 0 | form: "constructed" (1) 0x2778.2-0x2778.2 (0.1)
0x2770| 30 | 0 | tag: "sequence" (0x10) 0x2778.3-0x2778.7 (0.5)
0x2770| 82 01 6e | ..n | length: 366 0x2779-0x277b.7 (3)
| | | constructed[0:3]: 0x277c-0x28e9.7 (366)
| | | [0]{}: object 0x277c-0x2893.7 (280)
0x2770| 30 | 0 | class: "universal" (0) 0x277c-0x277c.1 (0.2)
0x2770| 30 | 0 | form: "constructed" (1) 0x277c.2-0x277c.2 (0.1)
0x2770| 30 | 0 | tag: "sequence" (0x10) 0x277c.3-0x277c.7 (0.5)
0x2770| 82 01 14| ...| length: 276 0x277d-0x277f.7 (3)
| | | constructed[0:8]: 0x2780-0x2893.7 (276)
| | | [0]{}: object 0x2780-0x2784.7 (5)
0x2780|a0 |. | class: "context" (2) 0x2780-0x2780.1 (0.2)
0x2780|a0 |. | form: "constructed" (1) 0x2780.2-0x2780.2 (0.1)
0x2780|a0 |. | tag: 0 0x2780.3-0x2780.7 (0.5)
0x2780| 03 | . | length: 3 0x2781-0x2781.7 (1)
| | | constructed[0:1]: 0x2782-0x2784.7 (3)
| | | [0]{}: object 0x2782-0x2784.7 (3)
0x2780| 02 | . | class: "universal" (0) 0x2782-0x2782.1 (0.2)
0x2780| 02 | . | form: "primitive" (0) 0x2782.2-0x2782.2 (0.1)
0x2780| 02 | . | tag: "integer" (0x2) 0x2782.3-0x2782.7 (0.5)
0x2780| 01 | . | length: 1 0x2783-0x2783.7 (1)
0x2780| 02 | . | value: 2 0x2784-0x2784.7 (1)
| | | [1]{}: object 0x2785-0x2796.7 (18)
0x2780| 02 | . | class: "universal" (0) 0x2785-0x2785.1 (0.2)
0x2780| 02 | . | form: "primitive" (0) 0x2785.2-0x2785.2 (0.1)
0x2780| 02 | . | tag: "integer" (0x2) 0x2785.3-0x2785.7 (0.5)
0x2780| 10 | . | length: 16 0x2786-0x2786.7 (1)
0x2780| 60 5c d2 d5 26 75 b3 92 a5| `\..&u...| value: 128087855099855233032551836648087377254 0x2787-0x2796.7 (16)
0x2790|aa 9b 02 b2 6a 55 66 |....jUf |
| | | [2]{}: object 0x2797-0x27a2.7 (12)
0x2790| 30 | 0 | class: "universal" (0) 0x2797-0x2797.1 (0.2)
0x2790| 30 | 0 | form: "constructed" (1) 0x2797.2-0x2797.2 (0.1)
0x2790| 30 | 0 | tag: "sequence" (0x10) 0x2797.3-0x2797.7 (0.5)
0x2790| 0a | . | length: 10 0x2798-0x2798.7 (1)
| | | constructed[0:1]: 0x2799-0x27a2.7 (10)
| | | [0]{}: object 0x2799-0x27a2.7 (10)
0x2790| 06 | . | class: "universal" (0) 0x2799-0x2799.1 (0.2)
0x2790| 06 | . | form: "primitive" (0) 0x2799.2-0x2799.2 (0.1)
0x2790| 06 | . | tag: "object_identifier" (0x6) 0x2799.3-0x2799.7 (0.5)
0x2790| 08 | . | length: 8 0x279a-0x279a.7 (1)
| | | value[0:7]: 0x279b-0x27a2.7 (8)
0x2790| 2a | * | [0]: 1 oid 0x279b-0x279b.7 (1)
0x2790| 2a | * | [1]: 2 oid 0x279b-0x279b.7 (1)
0x2790| 86 48 | .H | [2]: 840 oid 0x279c-0x279d.7 (2)
0x2790| ce 3d| .=| [3]: 10045 oid 0x279e-0x279f.7 (2)
0x27a0|04 |. | [4]: 4 oid 0x27a0-0x27a0.7 (1)
0x27a0| 03 | . | [5]: 3 oid 0x27a1-0x27a1.7 (1)
0x27a0| 02 | . | [6]: 2 oid 0x27a2-0x27a2.7 (1)
| | | [3]{}: object 0x27a3-0x27b3.7 (17)
0x27a0| 30 | 0 | class: "universal" (0) 0x27a3-0x27a3.1 (0.2)
0x27a0| 30 | 0 | form: "constructed" (1) 0x27a3.2-0x27a3.2 (0.1)
0x27a0| 30 | 0 | tag: "sequence" (0x10) 0x27a3.3-0x27a3.7 (0.5)
0x27a0| 0f | . | length: 15 0x27a4-0x27a4.7 (1)
| | | constructed[0:1]: 0x27a5-0x27b3.7 (15)
| | | [0]{}: object 0x27a5-0x27b3.7 (15)
0x27a0| 31 | 1 | class: "universal" (0) 0x27a5-0x27a5.1 (0.2)
0x27a0| 31 | 1 | form: "constructed" (1) 0x27a5.2-0x27a5.2 (0.1)
0x27a0| 31 | 1 | tag: "set" (0x11) 0x27a5.3-0x27a5.7 (0.5)
0x27a0| 0d | . | length: 13 0x27a6-0x27a6.7 (1)
| | | constructed[0:1]: 0x27a7-0x27b3.7 (13)
| | | [0]{}: object 0x27a7-0x27b3.7 (13)
0x27a0| 30 | 0 | class: "universal" (0) 0x27a7-0x27a7.1 (0.2)
0x27a0| 30 | 0 | form: "constructed" (1) 0x27a7.2-0x27a7.2 (0.1)
0x27a0| 30 | 0 | tag: "sequence" (0x10) 0x27a7.3-0x27a7.7 (0.5)
0x27a0| 0b | . | length: 11 0x27a8-0x27a8.7 (1)
| | | constructed[0:2]: 0x27a9-0x27b3.7 (11)
| | | [0]{}: object 0x27a9-0x27ad.7 (5)
0x27a0| 06 | . | class: "universal" (0) 0x27a9-0x27a9.1 (0.2)
0x27a0| 06 | . | form: "primitive" (0) 0x27a9.2-0x27a9.2 (0.1)
0x27a0| 06 | . | tag: "object_identifier" (0x6) 0x27a9.3-0x27a9.7 (0.5)
0x27a0| 03 | . | length: 3 0x27aa-0x27aa.7 (1)
| | | value[0:4]: 0x27ab-0x27ad.7 (3)
0x27a0| 55 | U | [0]: 2 oid 0x27ab-0x27ab.7 (1)
0x27a0| 55 | U | [1]: 5 oid 0x27ab-0x27ab.7 (1)
0x27a0| 04 | . | [2]: 4 oid 0x27ac-0x27ac.7 (1)
0x27a0| 03 | . | [3]: 3 oid 0x27ad-0x27ad.7 (1)
| | | [1]{}: object 0x27ae-0x27b3.7 (6)
0x27a0| 0c | . | class: "universal" (0) 0x27ae-0x27ae.1 (0.2)
0x27a0| 0c | . | form: "primitive" (0) 0x27ae.2-0x27ae.2 (0.1)
0x27a0| 0c | . | tag: "utf8_string" (0xc) 0x27ae.3-0x27ae.7 (0.5)
0x27a0| 04| .| length: 4 0x27af-0x27af.7 (1)
0x27b0|54 65 73 74 |Test | value: "Test" 0x27b0-0x27b3.7 (4)
| | | [4]{}: object 0x27b4-0x27d3.7 (32)
0x27b0| 30 | 0 | class: "universal" (0) 0x27b4-0x27b4.1 (0.2)
0x27b0| 30 | 0 | form: "constructed" (1) 0x27b4.2-0x27b4.2 (0.1)
0x27b0| 30 | 0 | tag: "sequence" (0x10) 0x27b4.3-0x27b4.7 (0.5)
0x27b0| 1e | . | length: 30 0x27b5-0x27b5.7 (1)
| | | constructed[0:2]: 0x27b6-0x27d3.7 (30)
| | | [0]{}: object 0x27b6-0x27c4.7 (15)
0x27b0| 17 | . | class: "universal" (0) 0x27b6-0x27b6.1 (0.2)
0x27b0| 17 | . | form: "primitive" (0) 0x27b6.2-0x27b6.2 (0.1)
0x27b0| 17 | . | tag: "utc_time" (0x17) 0x27b6.3-0x27b6.7 (0.5)
0x27b0| 0d | . | length: 13 0x27b7-0x27b7.7 (1)
0x27b0| 31 38 30 37 31 36 31 34| 18071614| value: "180716145635Z" 0x27b8-0x27c4.7 (13)
0x27c0|35 36 33 35 5a |5635Z |
| | | [1]{}: object 0x27c5-0x27d3.7 (15)
0x27c0| 17 | . | class: "universal" (0) 0x27c5-0x27c5.1 (0.2)
0x27c0| 17 | . | form: "primitive" (0) 0x27c5.2-0x27c5.2 (0.1)
0x27c0| 17 | . | tag: "utc_time" (0x17) 0x27c5.3-0x27c5.7 (0.5)
0x27c0| 0d | . | length: 13 0x27c6-0x27c6.7 (1)
0x27c0| 31 39 30 37 31 36 31 34 35| 190716145| value: "190716145635Z" 0x27c7-0x27d3.7 (13)
0x27d0|36 33 35 5a |635Z |
| | | [5]{}: object 0x27d4-0x27e4.7 (17)
0x27d0| 30 | 0 | class: "universal" (0) 0x27d4-0x27d4.1 (0.2)
0x27d0| 30 | 0 | form: "constructed" (1) 0x27d4.2-0x27d4.2 (0.1)
0x27d0| 30 | 0 | tag: "sequence" (0x10) 0x27d4.3-0x27d4.7 (0.5)
0x27d0| 0f | . | length: 15 0x27d5-0x27d5.7 (1)
| | | constructed[0:1]: 0x27d6-0x27e4.7 (15)
| | | [0]{}: object 0x27d6-0x27e4.7 (15)
0x27d0| 31 | 1 | class: "universal" (0) 0x27d6-0x27d6.1 (0.2)
0x27d0| 31 | 1 | form: "constructed" (1) 0x27d6.2-0x27d6.2 (0.1)
0x27d0| 31 | 1 | tag: "set" (0x11) 0x27d6.3-0x27d6.7 (0.5)
0x27d0| 0d | . | length: 13 0x27d7-0x27d7.7 (1)
| | | constructed[0:1]: 0x27d8-0x27e4.7 (13)
| | | [0]{}: object 0x27d8-0x27e4.7 (13)
0x27d0| 30 | 0 | class: "universal" (0) 0x27d8-0x27d8.1 (0.2)
0x27d0| 30 | 0 | form: "constructed" (1) 0x27d8.2-0x27d8.2 (0.1)
0x27d0| 30 | 0 | tag: "sequence" (0x10) 0x27d8.3-0x27d8.7 (0.5)
0x27d0| 0b | . | length: 11 0x27d9-0x27d9.7 (1)
| | | constructed[0:2]: 0x27da-0x27e4.7 (11)
| | | [0]{}: object 0x27da-0x27de.7 (5)
0x27d0| 06 | . | class: "universal" (0) 0x27da-0x27da.1 (0.2)
0x27d0| 06 | . | form: "primitive" (0) 0x27da.2-0x27da.2 (0.1)
0x27d0| 06 | . | tag: "object_identifier" (0x6) 0x27da.3-0x27da.7 (0.5)
0x27d0| 03 | . | length: 3 0x27db-0x27db.7 (1)
| | | value[0:4]: 0x27dc-0x27de.7 (3)
0x27d0| 55 | U | [0]: 2 oid 0x27dc-0x27dc.7 (1)
0x27d0| 55 | U | [1]: 5 oid 0x27dc-0x27dc.7 (1)
0x27d0| 04 | . | [2]: 4 oid 0x27dd-0x27dd.7 (1)
0x27d0| 03 | . | [3]: 3 oid 0x27de-0x27de.7 (1)
| | | [1]{}: object 0x27df-0x27e4.7 (6)
0x27d0| 0c| .| class: "universal" (0) 0x27df-0x27df.1 (0.2)
0x27d0| 0c| .| form: "primitive" (0) 0x27df.2-0x27df.2 (0.1)
0x27d0| 0c| .| tag: "utf8_string" (0xc) 0x27df.3-0x27df.7 (0.5)
0x27e0|04 |. | length: 4 0x27e0-0x27e0.7 (1)
0x27e0| 54 65 73 74 | Test | value: "Test" 0x27e1-0x27e4.7 (4)
| | | [6]{}: object 0x27e5-0x283f.7 (91)
0x27e0| 30 | 0 | class: "universal" (0) 0x27e5-0x27e5.1 (0.2)
0x27e0| 30 | 0 | form: "constructed" (1) 0x27e5.2-0x27e5.2 (0.1)
0x27e0| 30 | 0 | tag: "sequence" (0x10) 0x27e5.3-0x27e5.7 (0.5)
0x27e0| 59 | Y | length: 89 0x27e6-0x27e6.7 (1)
| | | constructed[0:2]: 0x27e7-0x283f.7 (89)
| | | [0]{}: object 0x27e7-0x27fb.7 (21)
0x27e0| 30 | 0 | class: "universal" (0) 0x27e7-0x27e7.1 (0.2)
0x27e0| 30 | 0 | form: "constructed" (1) 0x27e7.2-0x27e7.2 (0.1)
0x27e0| 30 | 0 | tag: "sequence" (0x10) 0x27e7.3-0x27e7.7 (0.5)
0x27e0| 13 | . | length: 19 0x27e8-0x27e8.7 (1)
| | | constructed[0:2]: 0x27e9-0x27fb.7 (19)
| | | [0]{}: object 0x27e9-0x27f1.7 (9)
0x27e0| 06 | . | class: "universal" (0) 0x27e9-0x27e9.1 (0.2)
0x27e0| 06 | . | form: "primitive" (0) 0x27e9.2-0x27e9.2 (0.1)
0x27e0| 06 | . | tag: "object_identifier" (0x6) 0x27e9.3-0x27e9.7 (0.5)
0x27e0| 07 | . | length: 7 0x27ea-0x27ea.7 (1)
| | | value[0:6]: 0x27eb-0x27f1.7 (7)
0x27e0| 2a | * | [0]: 1 oid 0x27eb-0x27eb.7 (1)
0x27e0| 2a | * | [1]: 2 oid 0x27eb-0x27eb.7 (1)
0x27e0| 86 48 | .H | [2]: 840 oid 0x27ec-0x27ed.7 (2)
0x27e0| ce 3d| .=| [3]: 10045 oid 0x27ee-0x27ef.7 (2)
0x27f0|02 |. | [4]: 2 oid 0x27f0-0x27f0.7 (1)
0x27f0| 01 | . | [5]: 1 oid 0x27f1-0x27f1.7 (1)
| | | [1]{}: object 0x27f2-0x27fb.7 (10)
0x27f0| 06 | . | class: "universal" (0) 0x27f2-0x27f2.1 (0.2)
0x27f0| 06 | . | form: "primitive" (0) 0x27f2.2-0x27f2.2 (0.1)
0x27f0| 06 | . | tag: "object_identifier" (0x6) 0x27f2.3-0x27f2.7 (0.5)
0x27f0| 08 | . | length: 8 0x27f3-0x27f3.7 (1)
| | | value[0:7]: 0x27f4-0x27fb.7 (8)
0x27f0| 2a | * | [0]: 1 oid 0x27f4-0x27f4.7 (1)
0x27f0| 2a | * | [1]: 2 oid 0x27f4-0x27f4.7 (1)
0x27f0| 86 48 | .H | [2]: 840 oid 0x27f5-0x27f6.7 (2)
0x27f0| ce 3d | .= | [3]: 10045 oid 0x27f7-0x27f8.7 (2)
0x27f0| 03 | . | [4]: 3 oid 0x27f9-0x27f9.7 (1)
0x27f0| 01 | . | [5]: 1 oid 0x27fa-0x27fa.7 (1)
0x27f0| 07 | . | [6]: 7 oid 0x27fb-0x27fb.7 (1)
| | | [1]{}: object 0x27fc-0x283f.7 (68)
0x27f0| 03 | . | class: "universal" (0) 0x27fc-0x27fc.1 (0.2)
0x27f0| 03 | . | form: "primitive" (0) 0x27fc.2-0x27fc.2 (0.1)
0x27f0| 03 | . | tag: "bit_string" (0x3) 0x27fc.3-0x27fc.7 (0.5)
0x27f0| 42 | B | length: 66 0x27fd-0x27fd.7 (1)
0x27f0| 00 | . | unused_bits_count: 0 0x27fe-0x27fe.7 (1)
0x27f0| 04| .| value: raw bits 0x27ff-0x283f.7 (65)
0x2800|24 4c b6 cc 1c 69 21 ff 49 d8 be 26 3e 0b 7c d0|$L...i!.I..&>.|.|
* |until 0x283f.7 (65) | |
| | | [7]{}: object 0x2840-0x2893.7 (84)
0x2840|a3 |. | class: "context" (2) 0x2840-0x2840.1 (0.2)
0x2840|a3 |. | form: "constructed" (1) 0x2840.2-0x2840.2 (0.1)
0x2840|a3 |. | tag: 3 0x2840.3-0x2840.7 (0.5)
0x2840| 52 | R | length: 82 0x2841-0x2841.7 (1)
| | | constructed[0:1]: 0x2842-0x2893.7 (82)
| | | [0]{}: object 0x2842-0x2893.7 (82)
0x2840| 30 | 0 | class: "universal" (0) 0x2842-0x2842.1 (0.2)
0x2840| 30 | 0 | form: "constructed" (1) 0x2842.2-0x2842.2 (0.1)
0x2840| 30 | 0 | tag: "sequence" (0x10) 0x2842.3-0x2842.7 (0.5)
0x2840| 50 | P | length: 80 0x2843-0x2843.7 (1)
| | | constructed[0:3]: 0x2844-0x2893.7 (80)
| | | [0]{}: object 0x2844-0x2853.7 (16)
0x2840| 30 | 0 | class: "universal" (0) 0x2844-0x2844.1 (0.2)
0x2840| 30 | 0 | form: "constructed" (1) 0x2844.2-0x2844.2 (0.1)
0x2840| 30 | 0 | tag: "sequence" (0x10) 0x2844.3-0x2844.7 (0.5)
0x2840| 0e | . | length: 14 0x2845-0x2845.7 (1)
| | | constructed[0:3]: 0x2846-0x2853.7 (14)
| | | [0]{}: object 0x2846-0x284a.7 (5)
0x2840| 06 | . | class: "universal" (0) 0x2846-0x2846.1 (0.2)
0x2840| 06 | . | form: "primitive" (0) 0x2846.2-0x2846.2 (0.1)
0x2840| 06 | . | tag: "object_identifier" (0x6) 0x2846.3-0x2846.7 (0.5)
0x2840| 03 | . | length: 3 0x2847-0x2847.7 (1)
| | | value[0:4]: 0x2848-0x284a.7 (3)
0x2840| 55 | U | [0]: 2 oid 0x2848-0x2848.7 (1)
0x2840| 55 | U | [1]: 5 oid 0x2848-0x2848.7 (1)
0x2840| 1d | . | [2]: 29 oid 0x2849-0x2849.7 (1)
0x2840| 0f | . | [3]: 15 oid 0x284a-0x284a.7 (1)
| | | [1]{}: object 0x284b-0x284d.7 (3)
0x2840| 01 | . | class: "universal" (0) 0x284b-0x284b.1 (0.2)
0x2840| 01 | . | form: "primitive" (0) 0x284b.2-0x284b.2 (0.1)
0x2840| 01 | . | tag: "boolean" (0x1) 0x284b.3-0x284b.7 (0.5)
0x2840| 01 | . | length: 1 0x284c-0x284c.7 (1)
0x2840| ff | . | value: true (255) 0x284d-0x284d.7 (1)
| | | [2]{}: object 0x284e-0x2853.7 (6)
0x2840| 04 | . | class: "universal" (0) 0x284e-0x284e.1 (0.2)
0x2840| 04 | . | form: "primitive" (0) 0x284e.2-0x284e.2 (0.1)
0x2840| 04 | . | tag: "octet_string" (0x4) 0x284e.3-0x284e.7 (0.5)
0x2840| 04| .| length: 4 0x284f-0x284f.7 (1)
0x2850|03 02 04 f0 |.... | value: raw bits 0x2850-0x2853.7 (4)
| | | [1]{}: object 0x2854-0x2872.7 (31)
0x2850| 30 | 0 | class: "universal" (0) 0x2854-0x2854.1 (0.2)
0x2850| 30 | 0 | form: "constructed" (1) 0x2854.2-0x2854.2 (0.1)
0x2850| 30 | 0 | tag: "sequence" (0x10) 0x2854.3-0x2854.7 (0.5)
0x2850| 1d | . | length: 29 0x2855-0x2855.7 (1)
| | | constructed[0:2]: 0x2856-0x2872.7 (29)
| | | [0]{}: object 0x2856-0x285a.7 (5)
0x2850| 06 | . | class: "universal" (0) 0x2856-0x2856.1 (0.2)
0x2850| 06 | . | form: "primitive" (0) 0x2856.2-0x2856.2 (0.1)
0x2850| 06 | . | tag: "object_identifier" (0x6) 0x2856.3-0x2856.7 (0.5)
0x2850| 03 | . | length: 3 0x2857-0x2857.7 (1)
| | | value[0:4]: 0x2858-0x285a.7 (3)
0x2850| 55 | U | [0]: 2 oid 0x2858-0x2858.7 (1)
0x2850| 55 | U | [1]: 5 oid 0x2858-0x2858.7 (1)
0x2850| 1d | . | [2]: 29 oid 0x2859-0x2859.7 (1)
0x2850| 0e | . | [3]: 14 oid 0x285a-0x285a.7 (1)
| | | [1]{}: object 0x285b-0x2872.7 (24)
0x2850| 04 | . | class: "universal" (0) 0x285b-0x285b.1 (0.2)
0x2850| 04 | . | form: "primitive" (0) 0x285b.2-0x285b.2 (0.1)
0x2850| 04 | . | tag: "octet_string" (0x4) 0x285b.3-0x285b.7 (0.5)
0x2850| 16 | . | length: 22 0x285c-0x285c.7 (1)
0x2850| 04 14 c3| ...| value: raw bits 0x285d-0x2872.7 (22)
0x2860|c0 84 df 7b 04 0d b0 38 af 51 8c e3 97 f6 ec 20|...{...8.Q..... |
0x2870|d6 26 e6 |.&. |
| | | [2]{}: object 0x2873-0x2893.7 (33)
0x2870| 30 | 0 | class: "universal" (0) 0x2873-0x2873.1 (0.2)
0x2870| 30 | 0 | form: "constructed" (1) 0x2873.2-0x2873.2 (0.1)
0x2870| 30 | 0 | tag: "sequence" (0x10) 0x2873.3-0x2873.7 (0.5)
0x2870| 1f | . | length: 31 0x2874-0x2874.7 (1)
| | | constructed[0:2]: 0x2875-0x2893.7 (31)
| | | [0]{}: object 0x2875-0x2879.7 (5)
0x2870| 06 | . | class: "universal" (0) 0x2875-0x2875.1 (0.2)
0x2870| 06 | . | form: "primitive" (0) 0x2875.2-0x2875.2 (0.1)
0x2870| 06 | . | tag: "object_identifier" (0x6) 0x2875.3-0x2875.7 (0.5)
0x2870| 03 | . | length: 3 0x2876-0x2876.7 (1)
| | | value[0:4]: 0x2877-0x2879.7 (3)
0x2870| 55 | U | [0]: 2 oid 0x2877-0x2877.7 (1)
0x2870| 55 | U | [1]: 5 oid 0x2877-0x2877.7 (1)
0x2870| 1d | . | [2]: 29 oid 0x2878-0x2878.7 (1)
0x2870| 23 | # | [3]: 35 oid 0x2879-0x2879.7 (1)
| | | [1]{}: object 0x287a-0x2893.7 (26)
0x2870| 04 | . | class: "universal" (0) 0x287a-0x287a.1 (0.2)
0x2870| 04 | . | form: "primitive" (0) 0x287a.2-0x287a.2 (0.1)
0x2870| 04 | . | tag: "octet_string" (0x4) 0x287a.3-0x287a.7 (0.5)
0x2870| 18 | . | length: 24 0x287b-0x287b.7 (1)
0x2870| 30 16 80 14| 0...| value: raw bits 0x287c-0x2893.7 (24)
0x2880|c3 c0 84 df 7b 04 0d b0 38 af 51 8c e3 97 f6 ec|....{...8.Q.....|
0x2890|20 d6 26 e6 | .&. |
0x000|03 02 04 f0 04 14 c3 c0 84 df 7b 04 0d b0 38 af|..........{...8.| value: raw bits 0x0-0x31.7 (50)
* |until 0x31.7 (end) (50) | |
| | | [1]{}: object 0x2894-0x289f.7 (12)
0x2890| 30 | 0 | class: "universal" (0) 0x2894-0x2894.1 (0.2)
0x2890| 30 | 0 | form: "constructed" (1) 0x2894.2-0x2894.2 (0.1)
0x2890| 30 | 0 | tag: "sequence" (0x10) 0x2894.3-0x2894.7 (0.5)
0x2890| 0a | . | length: 10 0x2895-0x2895.7 (1)
| | | constructed[0:1]: 0x2896-0x289f.7 (10)
| | | [0]{}: object 0x2896-0x289f.7 (10)
0x2890| 06 | . | class: "universal" (0) 0x2896-0x2896.1 (0.2)
0x2890| 06 | . | form: "primitive" (0) 0x2896.2-0x2896.2 (0.1)
0x2890| 06 | . | tag: "object_identifier" (0x6) 0x2896.3-0x2896.7 (0.5)
0x2890| 08 | . | length: 8 0x2897-0x2897.7 (1)
| | | value[0:7]: 0x2898-0x289f.7 (8)
0x2890| 2a | * | [0]: 1 oid 0x2898-0x2898.7 (1)
0x2890| 2a | * | [1]: 2 oid 0x2898-0x2898.7 (1)
0x2890| 86 48 | .H | [2]: 840 oid 0x2899-0x289a.7 (2)
0x2890| ce 3d | .= | [3]: 10045 oid 0x289b-0x289c.7 (2)
0x2890| 04 | . | [4]: 4 oid 0x289d-0x289d.7 (1)
0x2890| 03 | . | [5]: 3 oid 0x289e-0x289e.7 (1)
0x2890| 02| .| [6]: 2 oid 0x289f-0x289f.7 (1)
| | | [2]{}: object 0x28a0-0x28e9.7 (74)
0x28a0|03 |. | class: "universal" (0) 0x28a0-0x28a0.1 (0.2)
0x28a0|03 |. | form: "primitive" (0) 0x28a0.2-0x28a0.2 (0.1)
0x28a0|03 |. | tag: "bit_string" (0x3) 0x28a0.3-0x28a0.7 (0.5)
0x28a0| 48 | H | length: 72 0x28a1-0x28a1.7 (1)
0x28a0| 00 | . | unused_bits_count: 0 0x28a2-0x28a2.7 (1)
0x28a0| 30 45 02 21 00 de 60 1e 57 3d af b5 9b| 0E.!..`.W=...| value: raw bits 0x28a3-0x28e9.7 (71)
0x28b0|c5 51 d5 8e 3e 7b 9e da 06 12 dd 01 12 80 5a 22|.Q..>{........Z"|
* |until 0x28e9.7 (71) | |
| | | [4]{}: object 0x28ea-0x2a77.7 (398)
0x28e0| 31 | 1 | class: "universal" (0) 0x28ea-0x28ea.1 (0.2)
0x28e0| 31 | 1 | form: "constructed" (1) 0x28ea.2-0x28ea.2 (0.1)
0x28e0| 31 | 1 | tag: "set" (0x11) 0x28ea.3-0x28ea.7 (0.5)
0x28e0| 82 01 8a | ... | length: 394 0x28eb-0x28ed.7 (3)
| | | constructed[0:1]: 0x28ee-0x2a77.7 (394)
| | | [0]{}: object 0x28ee-0x2a77.7 (394)
0x28e0| 30 | 0 | class: "universal" (0) 0x28ee-0x28ee.1 (0.2)
0x28e0| 30 | 0 | form: "constructed" (1) 0x28ee.2-0x28ee.2 (0.1)
0x28e0| 30 | 0 | tag: "sequence" (0x10) 0x28ee.3-0x28ee.7 (0.5)
0x28e0| 82| .| length: 390 0x28ef-0x28f1.7 (3)
0x28f0|01 86 |.. |
| | | constructed[0:6]: 0x28f2-0x2a77.7 (390)
| | | [0]{}: object 0x28f2-0x28f4.7 (3)
0x28f0| 02 | . | class: "universal" (0) 0x28f2-0x28f2.1 (0.2)
0x28f0| 02 | . | form: "primitive" (0) 0x28f2.2-0x28f2.2 (0.1)
0x28f0| 02 | . | tag: "integer" (0x2) 0x28f2.3-0x28f2.7 (0.5)
0x28f0| 01 | . | length: 1 0x28f3-0x28f3.7 (1)
0x28f0| 01 | . | value: 1 0x28f4-0x28f4.7 (1)
| | | [1]{}: object 0x28f5-0x2919.7 (37)
0x28f0| 30 | 0 | class: "universal" (0) 0x28f5-0x28f5.1 (0.2)
0x28f0| 30 | 0 | form: "constructed" (1) 0x28f5.2-0x28f5.2 (0.1)
0x28f0| 30 | 0 | tag: "sequence" (0x10) 0x28f5.3-0x28f5.7 (0.5)
0x28f0| 23 | # | length: 35 0x28f6-0x28f6.7 (1)
| | | constructed[0:2]: 0x28f7-0x2919.7 (35)
| | | [0]{}: object 0x28f7-0x2907.7 (17)
0x28f0| 30 | 0 | class: "universal" (0) 0x28f7-0x28f7.1 (0.2)
0x28f0| 30 | 0 | form: "constructed" (1) 0x28f7.2-0x28f7.2 (0.1)
0x28f0| 30 | 0 | tag: "sequence" (0x10) 0x28f7.3-0x28f7.7 (0.5)
0x28f0| 0f | . | length: 15 0x28f8-0x28f8.7 (1)
| | | constructed[0:1]: 0x28f9-0x2907.7 (15)
| | | [0]{}: object 0x28f9-0x2907.7 (15)
0x28f0| 31 | 1 | class: "universal" (0) 0x28f9-0x28f9.1 (0.2)
0x28f0| 31 | 1 | form: "constructed" (1) 0x28f9.2-0x28f9.2 (0.1)
0x28f0| 31 | 1 | tag: "set" (0x11) 0x28f9.3-0x28f9.7 (0.5)
0x28f0| 0d | . | length: 13 0x28fa-0x28fa.7 (1)
| | | constructed[0:1]: 0x28fb-0x2907.7 (13)
| | | [0]{}: object 0x28fb-0x2907.7 (13)
0x28f0| 30 | 0 | class: "universal" (0) 0x28fb-0x28fb.1 (0.2)
0x28f0| 30 | 0 | form: "constructed" (1) 0x28fb.2-0x28fb.2 (0.1)
0x28f0| 30 | 0 | tag: "sequence" (0x10) 0x28fb.3-0x28fb.7 (0.5)
0x28f0| 0b | . | length: 11 0x28fc-0x28fc.7 (1)
| | | constructed[0:2]: 0x28fd-0x2907.7 (11)
| | | [0]{}: object 0x28fd-0x2901.7 (5)
0x28f0| 06 | . | class: "universal" (0) 0x28fd-0x28fd.1 (0.2)
0x28f0| 06 | . | form: "primitive" (0) 0x28fd.2-0x28fd.2 (0.1)
0x28f0| 06 | . | tag: "object_identifier" (0x6) 0x28fd.3-0x28fd.7 (0.5)
0x28f0| 03 | . | length: 3 0x28fe-0x28fe.7 (1)
| | | value[0:4]: 0x28ff-0x2901.7 (3)
0x28f0| 55| U| [0]: 2 oid 0x28ff-0x28ff.7 (1)
0x28f0| 55| U| [1]: 5 oid 0x28ff-0x28ff.7 (1)
0x2900|04 |. | [2]: 4 oid 0x2900-0x2900.7 (1)
0x2900| 03 | . | [3]: 3 oid 0x2901-0x2901.7 (1)
| | | [1]{}: object 0x2902-0x2907.7 (6)
0x2900| 0c | . | class: "universal" (0) 0x2902-0x2902.1 (0.2)
0x2900| 0c | . | form: "primitive" (0) 0x2902.2-0x2902.2 (0.1)
0x2900| 0c | . | tag: "utf8_string" (0xc) 0x2902.3-0x2902.7 (0.5)
0x2900| 04 | . | length: 4 0x2903-0x2903.7 (1)
0x2900| 54 65 73 74 | Test | value: "Test" 0x2904-0x2907.7 (4)
| | | [1]{}: object 0x2908-0x2919.7 (18)
0x2900| 02 | . | class: "universal" (0) 0x2908-0x2908.1 (0.2)
0x2900| 02 | . | form: "primitive" (0) 0x2908.2-0x2908.2 (0.1)
0x2900| 02 | . | tag: "integer" (0x2) 0x2908.3-0x2908.7 (0.5)
0x2900| 10 | . | length: 16 0x2909-0x2909.7 (1)
0x2900| 60 5c d2 d5 26 75| `\..&u| value: 128087855099855233032551836648087377254 0x290a-0x2919.7 (16)
0x2910|b3 92 a5 aa 9b 02 b2 6a 55 66 |.......jUf |
| | | [2]{}: object 0x291a-0x2928.7 (15)
0x2910| 30 | 0 | class: "universal" (0) 0x291a-0x291a.1 (0.2)
0x2910| 30 | 0 | form: "constructed" (1) 0x291a.2-0x291a.2 (0.1)
0x2910| 30 | 0 | tag: "sequence" (0x10) 0x291a.3-0x291a.7 (0.5)
0x2910| 0d | . | length: 13 0x291b-0x291b.7 (1)
| | | constructed[0:2]: 0x291c-0x2928.7 (13)
| | | [0]{}: object 0x291c-0x2926.7 (11)
0x2910| 06 | . | class: "universal" (0) 0x291c-0x291c.1 (0.2)
0x2910| 06 | . | form: "primitive" (0) 0x291c.2-0x291c.2 (0.1)
0x2910| 06 | . | tag: "object_identifier" (0x6) 0x291c.3-0x291c.7 (0.5)
0x2910| 09 | . | length: 9 0x291d-0x291d.7 (1)
| | | value[0:9]: 0x291e-0x2926.7 (9)
0x2910| 60 | ` | [0]: 2 oid 0x291e-0x291e.7 (1)
0x2910| 60 | ` | [1]: 16 oid 0x291e-0x291e.7 (1)
0x2910| 86| .| [2]: 840 oid 0x291f-0x2920.7 (2)
0x2920|48 |H |
0x2920| 01 | . | [3]: 1 oid 0x2921-0x2921.7 (1)
0x2920| 65 | e | [4]: 101 oid 0x2922-0x2922.7 (1)
0x2920| 03 | . | [5]: 3 oid 0x2923-0x2923.7 (1)
0x2920| 04 | . | [6]: 4 oid 0x2924-0x2924.7 (1)
0x2920| 02 | . | [7]: 2 oid 0x2925-0x2925.7 (1)
0x2920| 01 | . | [8]: 1 oid 0x2926-0x2926.7 (1)
| | | [1]{}: object 0x2927-0x2928.7 (2)
0x2920| 05 | . | class: "universal" (0) 0x2927-0x2927.1 (0.2)
0x2920| 05 | . | form: "primitive" (0) 0x2927.2-0x2927.2 (0.1)
0x2920| 05 | . | tag: "null" (0x5) 0x2927.3-0x2927.7 (0.5)
0x2920| 00 | . | length: "indefinite" (0) 0x2928-0x2928.7 (1)
| | | value: null 0x2929-NA (0)
| | | [3]{}: object 0x2929-0x2a22.7 (250)
0x2920| a0 | . | class: "context" (2) 0x2929-0x2929.1 (0.2)
0x2920| a0 | . | form: "constructed" (1) 0x2929.2-0x2929.2 (0.1)
0x2920| a0 | . | tag: 0 0x2929.3-0x2929.7 (0.5)
0x2920| 81 f7 | .. | length: 247 0x292a-0x292b.7 (2)
| | | constructed[0:5]: 0x292c-0x2a22.7 (247)
| | | [0]{}: object 0x292c-0x2945.7 (26)
0x2920| 30 | 0 | class: "universal" (0) 0x292c-0x292c.1 (0.2)
0x2920| 30 | 0 | form: "constructed" (1) 0x292c.2-0x292c.2 (0.1)
0x2920| 30 | 0 | tag: "sequence" (0x10) 0x292c.3-0x292c.7 (0.5)
0x2920| 18 | . | length: 24 0x292d-0x292d.7 (1)
| | | constructed[0:2]: 0x292e-0x2945.7 (24)
| | | [0]{}: object 0x292e-0x2938.7 (11)
0x2920| 06 | . | class: "universal" (0) 0x292e-0x292e.1 (0.2)
0x2920| 06 | . | form: "primitive" (0) 0x292e.2-0x292e.2 (0.1)
0x2920| 06 | . | tag: "object_identifier" (0x6) 0x292e.3-0x292e.7 (0.5)
0x2920| 09| .| length: 9 0x292f-0x292f.7 (1)
| | | value[0:7]: 0x2930-0x2938.7 (9)
0x2930|2a |* | [0]: 1 oid 0x2930-0x2930.7 (1)
0x2930|2a |* | [1]: 2 oid 0x2930-0x2930.7 (1)
0x2930| 86 48 | .H | [2]: 840 oid 0x2931-0x2932.7 (2)
0x2930| 86 f7 0d | ... | [3]: 113549 oid 0x2933-0x2935.7 (3)
0x2930| 01 | . | [4]: 1 oid 0x2936-0x2936.7 (1)
0x2930| 09 | . | [5]: 9 oid 0x2937-0x2937.7 (1)
0x2930| 03 | . | [6]: 3 oid 0x2938-0x2938.7 (1)
| | | [1]{}: object 0x2939-0x2945.7 (13)
0x2930| 31 | 1 | class: "universal" (0) 0x2939-0x2939.1 (0.2)
0x2930| 31 | 1 | form: "constructed" (1) 0x2939.2-0x2939.2 (0.1)
0x2930| 31 | 1 | tag: "set" (0x11) 0x2939.3-0x2939.7 (0.5)
0x2930| 0b | . | length: 11 0x293a-0x293a.7 (1)
| | | constructed[0:1]: 0x293b-0x2945.7 (11)
| | | [0]{}: object 0x293b-0x2945.7 (11)
0x2930| 06 | . | class: "universal" (0) 0x293b-0x293b.1 (0.2)
0x2930| 06 | . | form: "primitive" (0) 0x293b.2-0x293b.2 (0.1)
0x2930| 06 | . | tag: "object_identifier" (0x6) 0x293b.3-0x293b.7 (0.5)
0x2930| 09 | . | length: 9 0x293c-0x293c.7 (1)
| | | value[0:7]: 0x293d-0x2945.7 (9)
0x2930| 2a | * | [0]: 1 oid 0x293d-0x293d.7 (1)
0x2930| 2a | * | [1]: 2 oid 0x293d-0x293d.7 (1)
0x2930| 86 48| .H| [2]: 840 oid 0x293e-0x293f.7 (2)
0x2940|86 f7 0d |... | [3]: 113549 oid 0x2940-0x2942.7 (3)
0x2940| 01 | . | [4]: 1 oid 0x2943-0x2943.7 (1)
0x2940| 07 | . | [5]: 7 oid 0x2944-0x2944.7 (1)
0x2940| 01 | . | [6]: 1 oid 0x2945-0x2945.7 (1)
| | | [1]{}: object 0x2946-0x2963.7 (30)
0x2940| 30 | 0 | class: "universal" (0) 0x2946-0x2946.1 (0.2)
0x2940| 30 | 0 | form: "constructed" (1) 0x2946.2-0x2946.2 (0.1)
0x2940| 30 | 0 | tag: "sequence" (0x10) 0x2946.3-0x2946.7 (0.5)
0x2940| 1c | . | length: 28 0x2947-0x2947.7 (1)
| | | constructed[0:2]: 0x2948-0x2963.7 (28)
| | | [0]{}: object 0x2948-0x2952.7 (11)
0x2940| 06 | . | class: "universal" (0) 0x2948-0x2948.1 (0.2)
0x2940| 06 | . | form: "primitive" (0) 0x2948.2-0x2948.2 (0.1)
0x2940| 06 | . | tag: "object_identifier" (0x6) 0x2948.3-0x2948.7 (0.5)
0x2940| 09 | . | length: 9 0x2949-0x2949.7 (1)
| | | value[0:7]: 0x294a-0x2952.7 (9)
0x2940| 2a | * | [0]: 1 oid 0x294a-0x294a.7 (1)
0x2940| 2a | * | [1]: 2 oid 0x294a-0x294a.7 (1)
0x2940| 86 48 | .H | [2]: 840 oid 0x294b-0x294c.7 (2)
0x2940| 86 f7 0d| ...| [3]: 113549 oid 0x294d-0x294f.7 (3)
0x2950|01 |. | [4]: 1 oid 0x2950-0x2950.7 (1)
0x2950| 09 | . | [5]: 9 oid 0x2951-0x2951.7 (1)
0x2950| 05 | . | [6]: 5 oid 0x2952-0x2952.7 (1)
| | | [1]{}: object 0x2953-0x2963.7 (17)
0x2950| 31 | 1 | class: "universal" (0) 0x2953-0x2953.1 (0.2)
0x2950| 31 | 1 | form: "constructed" (1) 0x2953.2-0x2953.2 (0.1)
0x2950| 31 | 1 | tag: "set" (0x11) 0x2953.3-0x2953.7 (0.5)
0x2950| 0f | . | length: 15 0x2954-0x2954.7 (1)
| | | constructed[0:1]: 0x2955-0x2963.7 (15)
| | | [0]{}: object 0x2955-0x2963.7 (15)
0x2950| 17 | . | class: "universal" (0) 0x2955-0x2955.1 (0.2)
0x2950| 17 | . | form: "primitive" (0) 0x2955.2-0x2955.2 (0.1)
0x2950| 17 | . | tag: "utc_time" (0x17) 0x2955.3-0x2955.7 (0.5)
0x2950| 0d | . | length: 13 0x2956-0x2956.7 (1)
0x2950| 31 38 30 37 31 36 31 34 35| 180716145| value: "180716145635Z" 0x2957-0x2963.7 (13)
0x2960|36 33 35 5a |635Z |
| | | [2]{}: object 0x2964-0x298f.7 (44)
0x2960| 30 | 0 | class: "universal" (0) 0x2964-0x2964.1 (0.2)
0x2960| 30 | 0 | form: "constructed" (1) 0x2964.2-0x2964.2 (0.1)
0x2960| 30 | 0 | tag: "sequence" (0x10) 0x2964.3-0x2964.7 (0.5)
0x2960| 2a | * | length: 42 0x2965-0x2965.7 (1)
| | | constructed[0:2]: 0x2966-0x298f.7 (42)
| | | [0]{}: object 0x2966-0x2970.7 (11)
0x2960| 06 | . | class: "universal" (0) 0x2966-0x2966.1 (0.2)
0x2960| 06 | . | form: "primitive" (0) 0x2966.2-0x2966.2 (0.1)
0x2960| 06 | . | tag: "object_identifier" (0x6) 0x2966.3-0x2966.7 (0.5)
0x2960| 09 | . | length: 9 0x2967-0x2967.7 (1)
| | | value[0:7]: 0x2968-0x2970.7 (9)
0x2960| 2a | * | [0]: 1 oid 0x2968-0x2968.7 (1)
0x2960| 2a | * | [1]: 2 oid 0x2968-0x2968.7 (1)
0x2960| 86 48 | .H | [2]: 840 oid 0x2969-0x296a.7 (2)
0x2960| 86 f7 0d | ... | [3]: 113549 oid 0x296b-0x296d.7 (3)
0x2960| 01 | . | [4]: 1 oid 0x296e-0x296e.7 (1)
0x2960| 09| .| [5]: 9 oid 0x296f-0x296f.7 (1)
0x2970|34 |4 | [6]: 52 oid 0x2970-0x2970.7 (1)
| | | [1]{}: object 0x2971-0x298f.7 (31)
0x2970| 31 | 1 | class: "universal" (0) 0x2971-0x2971.1 (0.2)
0x2970| 31 | 1 | form: "constructed" (1) 0x2971.2-0x2971.2 (0.1)
0x2970| 31 | 1 | tag: "set" (0x11) 0x2971.3-0x2971.7 (0.5)
0x2970| 1d | . | length: 29 0x2972-0x2972.7 (1)
| | | constructed[0:1]: 0x2973-0x298f.7 (29)
| | | [0]{}: object 0x2973-0x298f.7 (29)
0x2970| 30 | 0 | class: "universal" (0) 0x2973-0x2973.1 (0.2)
0x2970| 30 | 0 | form: "constructed" (1) 0x2973.2-0x2973.2 (0.1)
0x2970| 30 | 0 | tag: "sequence" (0x10) 0x2973.3-0x2973.7 (0.5)
0x2970| 1b | . | length: 27 0x2974-0x2974.7 (1)
| | | constructed[0:2]: 0x2975-0x298f.7 (27)
| | | [0]{}: object 0x2975-0x2983.7 (15)
0x2970| 30 | 0 | class: "universal" (0) 0x2975-0x2975.1 (0.2)
0x2970| 30 | 0 | form: "constructed" (1) 0x2975.2-0x2975.2 (0.1)
0x2970| 30 | 0 | tag: "sequence" (0x10) 0x2975.3-0x2975.7 (0.5)
0x2970| 0d | . | length: 13 0x2976-0x2976.7 (1)
| | | constructed[0:2]: 0x2977-0x2983.7 (13)
| | | [0]{}: object 0x2977-0x2981.7 (11)
0x2970| 06 | . | class: "universal" (0) 0x2977-0x2977.1 (0.2)
0x2970| 06 | . | form: "primitive" (0) 0x2977.2-0x2977.2 (0.1)
0x2970| 06 | . | tag: "object_identifier" (0x6) 0x2977.3-0x2977.7 (0.5)
0x2970| 09 | . | length: 9 0x2978-0x2978.7 (1)
| | | value[0:9]: 0x2979-0x2981.7 (9)
0x2970| 60 | ` | [0]: 2 oid 0x2979-0x2979.7 (1)
0x2970| 60 | ` | [1]: 16 oid 0x2979-0x2979.7 (1)
0x2970| 86 48 | .H | [2]: 840 oid 0x297a-0x297b.7 (2)
0x2970| 01 | . | [3]: 1 oid 0x297c-0x297c.7 (1)
0x2970| 65 | e | [4]: 101 oid 0x297d-0x297d.7 (1)
0x2970| 03 | . | [5]: 3 oid 0x297e-0x297e.7 (1)
0x2970| 04| .| [6]: 4 oid 0x297f-0x297f.7 (1)
0x2980|02 |. | [7]: 2 oid 0x2980-0x2980.7 (1)
0x2980| 01 | . | [8]: 1 oid 0x2981-0x2981.7 (1)
| | | [1]{}: object 0x2982-0x2983.7 (2)
0x2980| 05 | . | class: "universal" (0) 0x2982-0x2982.1 (0.2)
0x2980| 05 | . | form: "primitive" (0) 0x2982.2-0x2982.2 (0.1)
0x2980| 05 | . | tag: "null" (0x5) 0x2982.3-0x2982.7 (0.5)
0x2980| 00 | . | length: "indefinite" (0) 0x2983-0x2983.7 (1)
| | | value: null 0x2984-NA (0)
| | | [1]{}: object 0x2984-0x298f.7 (12)
0x2980| a1 | . | class: "context" (2) 0x2984-0x2984.1 (0.2)
0x2980| a1 | . | form: "constructed" (1) 0x2984.2-0x2984.2 (0.1)
0x2980| a1 | . | tag: 1 0x2984.3-0x2984.7 (0.5)
0x2980| 0a | . | length: 10 0x2985-0x2985.7 (1)
| | | constructed[0:1]: 0x2986-0x298f.7 (10)
| | | [0]{}: object 0x2986-0x298f.7 (10)
0x2980| 06 | . | class: "universal" (0) 0x2986-0x2986.1 (0.2)
0x2980| 06 | . | form: "primitive" (0) 0x2986.2-0x2986.2 (0.1)
0x2980| 06 | . | tag: "object_identifier" (0x6) 0x2986.3-0x2986.7 (0.5)
0x2980| 08 | . | length: 8 0x2987-0x2987.7 (1)
| | | value[0:7]: 0x2988-0x298f.7 (8)
0x2980| 2a | * | [0]: 1 oid 0x2988-0x2988.7 (1)
0x2980| 2a | * | [1]: 2 oid 0x2988-0x2988.7 (1)
0x2980| 86 48 | .H | [2]: 840 oid 0x2989-0x298a.7 (2)
0x2980| ce 3d | .= | [3]: 10045 oid 0x298b-0x298c.7 (2)
0x2980| 04 | . | [4]: 4 oid 0x298d-0x298d.7 (1)
0x2980| 03 | . | [5]: 3 oid 0x298e-0x298e.7 (1)
0x2980| 02| .| [6]: 2 oid 0x298f-0x298f.7 (1)
| | | [3]{}: object 0x2990-0x29c0.7 (49)
0x2990|30 |0 | class: "universal" (0) 0x2990-0x2990.1 (0.2)
0x2990|30 |0 | form: "constructed" (1) 0x2990.2-0x2990.2 (0.1)
0x2990|30 |0 | tag: "sequence" (0x10) 0x2990.3-0x2990.7 (0.5)
0x2990| 2f | / | length: 47 0x2991-0x2991.7 (1)
| | | constructed[0:2]: 0x2992-0x29c0.7 (47)
| | | [0]{}: object 0x2992-0x299c.7 (11)
0x2990| 06 | . | class: "universal" (0) 0x2992-0x2992.1 (0.2)
0x2990| 06 | . | form: "primitive" (0) 0x2992.2-0x2992.2 (0.1)
0x2990| 06 | . | tag: "object_identifier" (0x6) 0x2992.3-0x2992.7 (0.5)
0x2990| 09 | . | length: 9 0x2993-0x2993.7 (1)
| | | value[0:7]: 0x2994-0x299c.7 (9)
0x2990| 2a | * | [0]: 1 oid 0x2994-0x2994.7 (1)
0x2990| 2a | * | [1]: 2 oid 0x2994-0x2994.7 (1)
0x2990| 86 48 | .H | [2]: 840 oid 0x2995-0x2996.7 (2)
0x2990| 86 f7 0d | ... | [3]: 113549 oid 0x2997-0x2999.7 (3)
0x2990| 01 | . | [4]: 1 oid 0x299a-0x299a.7 (1)
0x2990| 09 | . | [5]: 9 oid 0x299b-0x299b.7 (1)
0x2990| 04 | . | [6]: 4 oid 0x299c-0x299c.7 (1)
| | | [1]{}: object 0x299d-0x29c0.7 (36)
0x2990| 31 | 1 | class: "universal" (0) 0x299d-0x299d.1 (0.2)
0x2990| 31 | 1 | form: "constructed" (1) 0x299d.2-0x299d.2 (0.1)
0x2990| 31 | 1 | tag: "set" (0x11) 0x299d.3-0x299d.7 (0.5)
0x2990| 22 | " | length: 34 0x299e-0x299e.7 (1)
| | | constructed[0:1]: 0x299f-0x29c0.7 (34)
| | | [0]{}: object 0x299f-0x29c0.7 (34)
0x2990| 04| .| class: "universal" (0) 0x299f-0x299f.1 (0.2)
0x2990| 04| .| form: "primitive" (0) 0x299f.2-0x299f.2 (0.1)
0x2990| 04| .| tag: "octet_string" (0x4) 0x299f.3-0x299f.7 (0.5)
0x29a0|20 | | length: 32 0x29a0-0x29a0.7 (1)
0x29a0| 72 4c 51 bb e7 6d a0 5a fb 20 cb e8 eb 03 7c| rLQ..m.Z. ....|| value: raw bits 0x29a1-0x29c0.7 (32)
0x29b0|da e1 af d7 13 12 5d 2d c1 3d 55 2d a9 f4 42 d2|......]-.=U-..B.|
0x29c0|4d |M |
| | | [4]{}: object 0x29c1-0x2a22.7 (98)
0x29c0| 30 | 0 | class: "universal" (0) 0x29c1-0x29c1.1 (0.2)
0x29c0| 30 | 0 | form: "constructed" (1) 0x29c1.2-0x29c1.2 (0.1)
0x29c0| 30 | 0 | tag: "sequence" (0x10) 0x29c1.3-0x29c1.7 (0.5)
0x29c0| 60 | ` | length: 96 0x29c2-0x29c2.7 (1)
| | | constructed[0:2]: 0x29c3-0x2a22.7 (96)
| | | [0]{}: object 0x29c3-0x29cf.7 (13)
0x29c0| 06 | . | class: "universal" (0) 0x29c3-0x29c3.1 (0.2)
0x29c0| 06 | . | form: "primitive" (0) 0x29c3.2-0x29c3.2 (0.1)
0x29c0| 06 | . | tag: "object_identifier" (0x6) 0x29c3.3-0x29c3.7 (0.5)
0x29c0| 0b | . | length: 11 0x29c4-0x29c4.7 (1)
| | | value[0:9]: 0x29c5-0x29cf.7 (11)
0x29c0| 2a | * | [0]: 1 oid 0x29c5-0x29c5.7 (1)
0x29c0| 2a | * | [1]: 2 oid 0x29c5-0x29c5.7 (1)
0x29c0| 86 48 | .H | [2]: 840 oid 0x29c6-0x29c7.7 (2)
0x29c0| 86 f7 0d | ... | [3]: 113549 oid 0x29c8-0x29ca.7 (3)
0x29c0| 01 | . | [4]: 1 oid 0x29cb-0x29cb.7 (1)
0x29c0| 09 | . | [5]: 9 oid 0x29cc-0x29cc.7 (1)
0x29c0| 10 | . | [6]: 16 oid 0x29cd-0x29cd.7 (1)
0x29c0| 02 | . | [7]: 2 oid 0x29ce-0x29ce.7 (1)
0x29c0| 2f| /| [8]: 47 oid 0x29cf-0x29cf.7 (1)
| | | [1]{}: object 0x29d0-0x2a22.7 (83)
0x29d0|31 |1 | class: "universal" (0) 0x29d0-0x29d0.1 (0.2)
0x29d0|31 |1 | form: "constructed" (1) 0x29d0.2-0x29d0.2 (0.1)
0x29d0|31 |1 | tag: "set" (0x11) 0x29d0.3-0x29d0.7 (0.5)
0x29d0| 51 | Q | length: 81 0x29d1-0x29d1.7 (1)
| | | constructed[0:1]: 0x29d2-0x2a22.7 (81)
| | | [0]{}: object 0x29d2-0x2a22.7 (81)
0x29d0| 30 | 0 | class: "universal" (0) 0x29d2-0x29d2.1 (0.2)
0x29d0| 30 | 0 | form: "constructed" (1) 0x29d2.2-0x29d2.2 (0.1)
0x29d0| 30 | 0 | tag: "sequence" (0x10) 0x29d2.3-0x29d2.7 (0.5)
0x29d0| 4f | O | length: 79 0x29d3-0x29d3.7 (1)
| | | constructed[0:1]: 0x29d4-0x2a22.7 (79)
| | | [0]{}: object 0x29d4-0x2a22.7 (79)
0x29d0| 30 | 0 | class: "universal" (0) 0x29d4-0x29d4.1 (0.2)
0x29d0| 30 | 0 | form: "constructed" (1) 0x29d4.2-0x29d4.2 (0.1)
0x29d0| 30 | 0 | tag: "sequence" (0x10) 0x29d4.3-0x29d4.7 (0.5)
0x29d0| 4d | M | length: 77 0x29d5-0x29d5.7 (1)
| | | constructed[0:1]: 0x29d6-0x2a22.7 (77)
| | | [0]{}: object 0x29d6-0x2a22.7 (77)
0x29d0| 30 | 0 | class: "universal" (0) 0x29d6-0x29d6.1 (0.2)
0x29d0| 30 | 0 | form: "constructed" (1) 0x29d6.2-0x29d6.2 (0.1)
0x29d0| 30 | 0 | tag: "sequence" (0x10) 0x29d6.3-0x29d6.7 (0.5)
0x29d0| 4b | K | length: 75 0x29d7-0x29d7.7 (1)
| | | constructed[0:2]: 0x29d8-0x2a22.7 (75)
| | | [0]{}: object 0x29d8-0x29f9.7 (34)
0x29d0| 04 | . | class: "universal" (0) 0x29d8-0x29d8.1 (0.2)
0x29d0| 04 | . | form: "primitive" (0) 0x29d8.2-0x29d8.2 (0.1)
0x29d0| 04 | . | tag: "octet_string" (0x4) 0x29d8.3-0x29d8.7 (0.5)
0x29d0| 20 | | length: 32 0x29d9-0x29d9.7 (1)
0x29d0| ba bc 08 43 4c 58| ...CLX| value: raw bits 0x29da-0x29f9.7 (32)
0x29e0|26 73 01 e0 06 86 1d 27 ec a1 25 67 0e 79 27 97|&s.....'..%g.y'.|
0x29f0|24 8e 76 a5 71 7a 5b f9 93 c2 |$.v.qz[... |
| | | [1]{}: object 0x29fa-0x2a22.7 (41)
0x29f0| 30 | 0 | class: "universal" (0) 0x29fa-0x29fa.1 (0.2)
0x29f0| 30 | 0 | form: "constructed" (1) 0x29fa.2-0x29fa.2 (0.1)
0x29f0| 30 | 0 | tag: "sequence" (0x10) 0x29fa.3-0x29fa.7 (0.5)
0x29f0| 27 | ' | length: 39 0x29fb-0x29fb.7 (1)
| | | constructed[0:2]: 0x29fc-0x2a22.7 (39)
| | | [0]{}: object 0x29fc-0x2a10.7 (21)
0x29f0| 30 | 0 | class: "universal" (0) 0x29fc-0x29fc.1 (0.2)
0x29f0| 30 | 0 | form: "constructed" (1) 0x29fc.2-0x29fc.2 (0.1)
0x29f0| 30 | 0 | tag: "sequence" (0x10) 0x29fc.3-0x29fc.7 (0.5)
0x29f0| 13 | . | length: 19 0x29fd-0x29fd.7 (1)
| | | constructed[0:1]: 0x29fe-0x2a10.7 (19)
| | | [0]{}: object 0x29fe-0x2a10.7 (19)
0x29f0| a4 | . | class: "context" (2) 0x29fe-0x29fe.1 (0.2)
0x29f0| a4 | . | form: "constructed" (1) 0x29fe.2-0x29fe.2 (0.1)
0x29f0| a4 | . | tag: 4 0x29fe.3-0x29fe.7 (0.5)
0x29f0| 11| .| length: 17 0x29ff-0x29ff.7 (1)
| | | constructed[0:1]: 0x2a00-0x2a10.7 (17)
| | | [0]{}: object 0x2a00-0x2a10.7 (17)
0x2a00|30 |0 | class: "universal" (0) 0x2a00-0x2a00.1 (0.2)
0x2a00|30 |0 | form: "constructed" (1) 0x2a00.2-0x2a00.2 (0.1)
0x2a00|30 |0 | tag: "sequence" (0x10) 0x2a00.3-0x2a00.7 (0.5)
0x2a00| 0f | . | length: 15 0x2a01-0x2a01.7 (1)
| | | constructed[0:1]: 0x2a02-0x2a10.7 (15)
| | | [0]{}: object 0x2a02-0x2a10.7 (15)
0x2a00| 31 | 1 | class: "universal" (0) 0x2a02-0x2a02.1 (0.2)
0x2a00| 31 | 1 | form: "constructed" (1) 0x2a02.2-0x2a02.2 (0.1)
0x2a00| 31 | 1 | tag: "set" (0x11) 0x2a02.3-0x2a02.7 (0.5)
0x2a00| 0d | . | length: 13 0x2a03-0x2a03.7 (1)
| | | constructed[0:1]: 0x2a04-0x2a10.7 (13)
| | | [0]{}: object 0x2a04-0x2a10.7 (13)
0x2a00| 30 | 0 | class: "universal" (0) 0x2a04-0x2a04.1 (0.2)
0x2a00| 30 | 0 | form: "constructed" (1) 0x2a04.2-0x2a04.2 (0.1)
0x2a00| 30 | 0 | tag: "sequence" (0x10) 0x2a04.3-0x2a04.7 (0.5)
0x2a00| 0b | . | length: 11 0x2a05-0x2a05.7 (1)
| | | constructed[0:2]: 0x2a06-0x2a10.7 (11)
| | | [0]{}: object 0x2a06-0x2a0a.7 (5)
0x2a00| 06 | . | class: "universal" (0) 0x2a06-0x2a06.1 (0.2)
0x2a00| 06 | . | form: "primitive" (0) 0x2a06.2-0x2a06.2 (0.1)
0x2a00| 06 | . | tag: "object_identifier" (0x6) 0x2a06.3-0x2a06.7 (0.5)
0x2a00| 03 | . | length: 3 0x2a07-0x2a07.7 (1)
| | | value[0:4]: 0x2a08-0x2a0a.7 (3)
0x2a00| 55 | U | [0]: 2 oid 0x2a08-0x2a08.7 (1)
0x2a00| 55 | U | [1]: 5 oid 0x2a08-0x2a08.7 (1)
0x2a00| 04 | . | [2]: 4 oid 0x2a09-0x2a09.7 (1)
0x2a00| 03 | . | [3]: 3 oid 0x2a0a-0x2a0a.7 (1)
| | | [1]{}: object 0x2a0b-0x2a10.7 (6)
0x2a00| 0c | . | class: "universal" (0) 0x2a0b-0x2a0b.1 (0.2)
0x2a00| 0c | . | form: "primitive" (0) 0x2a0b.2-0x2a0b.2 (0.1)
0x2a00| 0c | . | tag: "utf8_string" (0xc) 0x2a0b.3-0x2a0b.7 (0.5)
0x2a00| 04 | . | length: 4 0x2a0c-0x2a0c.7 (1)
0x2a00| 54 65 73| Tes| value: "Test" 0x2a0d-0x2a10.7 (4)
0x2a10|74 |t |
| | | value: raw bits 0x0-NA (0)
| | | [1]{}: object 0x2a11-0x2a22.7 (18)
0x2a10| 02 | . | class: "universal" (0) 0x2a11-0x2a11.1 (0.2)
0x2a10| 02 | . | form: "primitive" (0) 0x2a11.2-0x2a11.2 (0.1)
0x2a10| 02 | . | tag: "integer" (0x2) 0x2a11.3-0x2a11.7 (0.5)
0x2a10| 10 | . | length: 16 0x2a12-0x2a12.7 (1)
0x2a10| 60 5c d2 d5 26 75 b3 92 a5 aa 9b 02 b2| `\..&u.......| value: 128087855099855233032551836648087377254 0x2a13-0x2a22.7 (16)
0x2a20|6a 55 66 |jUf |
| | | [4]{}: object 0x2a23-0x2a2e.7 (12)
0x2a20| 30 | 0 | class: "universal" (0) 0x2a23-0x2a23.1 (0.2)
0x2a20| 30 | 0 | form: "constructed" (1) 0x2a23.2-0x2a23.2 (0.1)
0x2a20| 30 | 0 | tag: "sequence" (0x10) 0x2a23.3-0x2a23.7 (0.5)
0x2a20| 0a | . | length: 10 0x2a24-0x2a24.7 (1)
| | | constructed[0:1]: 0x2a25-0x2a2e.7 (10)
| | | [0]{}: object 0x2a25-0x2a2e.7 (10)
0x2a20| 06 | . | class: "universal" (0) 0x2a25-0x2a25.1 (0.2)
0x2a20| 06 | . | form: "primitive" (0) 0x2a25.2-0x2a25.2 (0.1)
0x2a20| 06 | . | tag: "object_identifier" (0x6) 0x2a25.3-0x2a25.7 (0.5)
0x2a20| 08 | . | length: 8 0x2a26-0x2a26.7 (1)
| | | value[0:7]: 0x2a27-0x2a2e.7 (8)
0x2a20| 2a | * | [0]: 1 oid 0x2a27-0x2a27.7 (1)
0x2a20| 2a | * | [1]: 2 oid 0x2a27-0x2a27.7 (1)
0x2a20| 86 48 | .H | [2]: 840 oid 0x2a28-0x2a29.7 (2)
0x2a20| ce 3d | .= | [3]: 10045 oid 0x2a2a-0x2a2b.7 (2)
0x2a20| 04 | . | [4]: 4 oid 0x2a2c-0x2a2c.7 (1)
0x2a20| 03 | . | [5]: 3 oid 0x2a2d-0x2a2d.7 (1)
0x2a20| 02 | . | [6]: 2 oid 0x2a2e-0x2a2e.7 (1)
| | | [5]{}: object 0x2a2f-0x2a77.7 (73)
0x2a20| 04| .| class: "universal" (0) 0x2a2f-0x2a2f.1 (0.2)
0x2a20| 04| .| form: "primitive" (0) 0x2a2f.2-0x2a2f.2 (0.1)
0x2a20| 04| .| tag: "octet_string" (0x4) 0x2a2f.3-0x2a2f.7 (0.5)
0x2a30|47 |G | length: 71 0x2a30-0x2a30.7 (1)
0x2a30| 30 45 02 21 00 f1 04 30 2e ab b4 28 ec c8 e7| 0E.!...0...(...| value: raw bits 0x2a31-0x2a77.7 (71)
0x2a40|1c e2 e3 8f 6c be d8 48 a8 e9 a2 b5 d5 da 19 93|....l..H........|
* |until 0x2a77.7 (end) (71) | |

View File

@ -0,0 +1,22 @@
This is a PKCS#7/CMS detached digital signature.
It is an old example generated in 2008 and as such uses obsolete cryptography: RSA1024 with SHA1.
-----BEGIN PKCS7-----
MIIDUAYJKoZIhvcNAQcCoIIDQTCCAz0CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCAfMwggHvMIIBWKADAgECAhAvoXazbunwSfREtACZZhlFMA0GCSqGSIb3
DQEBBQUAMAwxCjAIBgNVBAMMAWEwHhcNMDgxMDE1MTUwMzQxWhcNMDkxMDE1MTUw
MzQxWjAMMQowCAYDVQQDDAFhMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJ
Uwlwhu5hR8X01f+vG0mKPRHsVRjpZNxSEmsmFPdDiD9kylE3ertTDf0gRkpIvWfN
J+eymuxoXF0Qgl5gXAVuSrjupGD6J+VapixJiwLXJHokmDihLs3zfGARz08O3qnO
5ofBy0pRxq5isu/bAAcjoByZ1sI/g0iAuotC1UFObwIDAQABo1IwUDAOBgNVHQ8B
Af8EBAMCBPAwHQYDVR0OBBYEFEIGXQB4h+04Z3y/n7Nv94+CqPitMB8GA1UdIwQY
MBaAFEIGXQB4h+04Z3y/n7Nv94+CqPitMA0GCSqGSIb3DQEBBQUAA4GBAE0G7tAi
aacJxvP3fhEj+yP9VDxL0omrRRAEaMXwWaBf/Ggk1T/u+8/CDAdjuGNCiF6ctooK
c8u8KpnZJsGqnpGQ4n6L2KjTtRUDh+hija0eJRBFdirPQe2HAebQGFnmOk6Mn7Ki
QfBIsOzXim/bFqaBSbf06bLTQNwFouSO+jwOMYIBJTCCASECAQEwIDAMMQowCAYD
VQQDDAFhAhAvoXazbunwSfREtACZZhlFMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0B
CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0wODEwMTUxNTAzNDNaMCMG
CSqGSIb3DQEJBDEWBBQAAAAAAAAAAAAAAAAAAAAAAAAAADANBgkqhkiG9w0BAQEF
AASBgHQe0ocjBn+ZVXWbb8CpZ2CxzFKiVrgZxZO2kMBwJoNyZx+jnICHdhfsX4Or
cF5vIYVAZIRz5RxqFmuZELTfZ/K89zaK873DP9V7/ftBGpezWEp9h29AtAzI9lzS
GB9gugiyB5JstXoM1L87KJmT05MeZxg1pvvFhwo1m/QOpcqz
-----END PKCS7-----

View File

@ -0,0 +1,632 @@
$ fq -d raw 'frompem | asn1_ber | dv' sig-rsa1024-sha1.p7s
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: (asn1_ber) 0x0-0x353.7 (852)
0x000|30 |0 | class: "universal" (0) 0x0-0x0.1 (0.2)
0x000|30 |0 | form: "constructed" (1) 0x0.2-0x0.2 (0.1)
0x000|30 |0 | tag: "sequence" (0x10) 0x0.3-0x0.7 (0.5)
0x000| 82 03 50 | ..P | length: 848 0x1-0x3.7 (3)
| | | constructed[0:2]: 0x4-0x353.7 (848)
| | | [0]{}: object 0x4-0xe.7 (11)
0x000| 06 | . | class: "universal" (0) 0x4-0x4.1 (0.2)
0x000| 06 | . | form: "primitive" (0) 0x4.2-0x4.2 (0.1)
0x000| 06 | . | tag: "object_identifier" (0x6) 0x4.3-0x4.7 (0.5)
0x000| 09 | . | length: 9 0x5-0x5.7 (1)
| | | value[0:7]: 0x6-0xe.7 (9)
0x000| 2a | * | [0]: 1 oid 0x6-0x6.7 (1)
0x000| 2a | * | [1]: 2 oid 0x6-0x6.7 (1)
0x000| 86 48 | .H | [2]: 840 oid 0x7-0x8.7 (2)
0x000| 86 f7 0d | ... | [3]: 113549 oid 0x9-0xb.7 (3)
0x000| 01 | . | [4]: 1 oid 0xc-0xc.7 (1)
0x000| 07 | . | [5]: 7 oid 0xd-0xd.7 (1)
0x000| 02 | . | [6]: 2 oid 0xe-0xe.7 (1)
| | | [1]{}: object 0xf-0x353.7 (837)
0x000| a0| .| class: "context" (2) 0xf-0xf.1 (0.2)
0x000| a0| .| form: "constructed" (1) 0xf.2-0xf.2 (0.1)
0x000| a0| .| tag: 0 0xf.3-0xf.7 (0.5)
0x010|82 03 41 |..A | length: 833 0x10-0x12.7 (3)
| | | constructed[0:1]: 0x13-0x353.7 (833)
| | | [0]{}: object 0x13-0x353.7 (833)
0x010| 30 | 0 | class: "universal" (0) 0x13-0x13.1 (0.2)
0x010| 30 | 0 | form: "constructed" (1) 0x13.2-0x13.2 (0.1)
0x010| 30 | 0 | tag: "sequence" (0x10) 0x13.3-0x13.7 (0.5)
0x010| 82 03 3d | ..= | length: 829 0x14-0x16.7 (3)
| | | constructed[0:5]: 0x17-0x353.7 (829)
| | | [0]{}: object 0x17-0x19.7 (3)
0x010| 02 | . | class: "universal" (0) 0x17-0x17.1 (0.2)
0x010| 02 | . | form: "primitive" (0) 0x17.2-0x17.2 (0.1)
0x010| 02 | . | tag: "integer" (0x2) 0x17.3-0x17.7 (0.5)
0x010| 01 | . | length: 1 0x18-0x18.7 (1)
0x010| 01 | . | value: 1 0x19-0x19.7 (1)
| | | [1]{}: object 0x1a-0x26.7 (13)
0x010| 31 | 1 | class: "universal" (0) 0x1a-0x1a.1 (0.2)
0x010| 31 | 1 | form: "constructed" (1) 0x1a.2-0x1a.2 (0.1)
0x010| 31 | 1 | tag: "set" (0x11) 0x1a.3-0x1a.7 (0.5)
0x010| 0b | . | length: 11 0x1b-0x1b.7 (1)
| | | constructed[0:1]: 0x1c-0x26.7 (11)
| | | [0]{}: object 0x1c-0x26.7 (11)
0x010| 30 | 0 | class: "universal" (0) 0x1c-0x1c.1 (0.2)
0x010| 30 | 0 | form: "constructed" (1) 0x1c.2-0x1c.2 (0.1)
0x010| 30 | 0 | tag: "sequence" (0x10) 0x1c.3-0x1c.7 (0.5)
0x010| 09 | . | length: 9 0x1d-0x1d.7 (1)
| | | constructed[0:2]: 0x1e-0x26.7 (9)
| | | [0]{}: object 0x1e-0x24.7 (7)
0x010| 06 | . | class: "universal" (0) 0x1e-0x1e.1 (0.2)
0x010| 06 | . | form: "primitive" (0) 0x1e.2-0x1e.2 (0.1)
0x010| 06 | . | tag: "object_identifier" (0x6) 0x1e.3-0x1e.7 (0.5)
0x010| 05| .| length: 5 0x1f-0x1f.7 (1)
| | | value[0:6]: 0x20-0x24.7 (5)
0x020|2b |+ | [0]: 1 oid 0x20-0x20.7 (1)
0x020|2b |+ | [1]: 3 oid 0x20-0x20.7 (1)
0x020| 0e | . | [2]: 14 oid 0x21-0x21.7 (1)
0x020| 03 | . | [3]: 3 oid 0x22-0x22.7 (1)
0x020| 02 | . | [4]: 2 oid 0x23-0x23.7 (1)
0x020| 1a | . | [5]: 26 oid 0x24-0x24.7 (1)
| | | [1]{}: object 0x25-0x26.7 (2)
0x020| 05 | . | class: "universal" (0) 0x25-0x25.1 (0.2)
0x020| 05 | . | form: "primitive" (0) 0x25.2-0x25.2 (0.1)
0x020| 05 | . | tag: "null" (0x5) 0x25.3-0x25.7 (0.5)
0x020| 00 | . | length: "indefinite" (0) 0x26-0x26.7 (1)
| | | value: null 0x27-NA (0)
| | | [2]{}: object 0x27-0x33.7 (13)
0x020| 30 | 0 | class: "universal" (0) 0x27-0x27.1 (0.2)
0x020| 30 | 0 | form: "constructed" (1) 0x27.2-0x27.2 (0.1)
0x020| 30 | 0 | tag: "sequence" (0x10) 0x27.3-0x27.7 (0.5)
0x020| 0b | . | length: 11 0x28-0x28.7 (1)
| | | constructed[0:1]: 0x29-0x33.7 (11)
| | | [0]{}: object 0x29-0x33.7 (11)
0x020| 06 | . | class: "universal" (0) 0x29-0x29.1 (0.2)
0x020| 06 | . | form: "primitive" (0) 0x29.2-0x29.2 (0.1)
0x020| 06 | . | tag: "object_identifier" (0x6) 0x29.3-0x29.7 (0.5)
0x020| 09 | . | length: 9 0x2a-0x2a.7 (1)
| | | value[0:7]: 0x2b-0x33.7 (9)
0x020| 2a | * | [0]: 1 oid 0x2b-0x2b.7 (1)
0x020| 2a | * | [1]: 2 oid 0x2b-0x2b.7 (1)
0x020| 86 48 | .H | [2]: 840 oid 0x2c-0x2d.7 (2)
0x020| 86 f7| ..| [3]: 113549 oid 0x2e-0x30.7 (3)
0x030|0d |. |
0x030| 01 | . | [4]: 1 oid 0x31-0x31.7 (1)
0x030| 07 | . | [5]: 7 oid 0x32-0x32.7 (1)
0x030| 01 | . | [6]: 1 oid 0x33-0x33.7 (1)
| | | [3]{}: object 0x34-0x22a.7 (503)
0x030| a0 | . | class: "context" (2) 0x34-0x34.1 (0.2)
0x030| a0 | . | form: "constructed" (1) 0x34.2-0x34.2 (0.1)
0x030| a0 | . | tag: 0 0x34.3-0x34.7 (0.5)
0x030| 82 01 f3 | ... | length: 499 0x35-0x37.7 (3)
| | | constructed[0:1]: 0x38-0x22a.7 (499)
| | | [0]{}: object 0x38-0x22a.7 (499)
0x030| 30 | 0 | class: "universal" (0) 0x38-0x38.1 (0.2)
0x030| 30 | 0 | form: "constructed" (1) 0x38.2-0x38.2 (0.1)
0x030| 30 | 0 | tag: "sequence" (0x10) 0x38.3-0x38.7 (0.5)
0x030| 82 01 ef | ... | length: 495 0x39-0x3b.7 (3)
| | | constructed[0:3]: 0x3c-0x22a.7 (495)
| | | [0]{}: object 0x3c-0x197.7 (348)
0x030| 30 | 0 | class: "universal" (0) 0x3c-0x3c.1 (0.2)
0x030| 30 | 0 | form: "constructed" (1) 0x3c.2-0x3c.2 (0.1)
0x030| 30 | 0 | tag: "sequence" (0x10) 0x3c.3-0x3c.7 (0.5)
0x030| 82 01 58| ..X| length: 344 0x3d-0x3f.7 (3)
| | | constructed[0:8]: 0x40-0x197.7 (344)
| | | [0]{}: object 0x40-0x44.7 (5)
0x040|a0 |. | class: "context" (2) 0x40-0x40.1 (0.2)
0x040|a0 |. | form: "constructed" (1) 0x40.2-0x40.2 (0.1)
0x040|a0 |. | tag: 0 0x40.3-0x40.7 (0.5)
0x040| 03 | . | length: 3 0x41-0x41.7 (1)
| | | constructed[0:1]: 0x42-0x44.7 (3)
| | | [0]{}: object 0x42-0x44.7 (3)
0x040| 02 | . | class: "universal" (0) 0x42-0x42.1 (0.2)
0x040| 02 | . | form: "primitive" (0) 0x42.2-0x42.2 (0.1)
0x040| 02 | . | tag: "integer" (0x2) 0x42.3-0x42.7 (0.5)
0x040| 01 | . | length: 1 0x43-0x43.7 (1)
0x040| 02 | . | value: 2 0x44-0x44.7 (1)
| | | [1]{}: object 0x45-0x56.7 (18)
0x040| 02 | . | class: "universal" (0) 0x45-0x45.1 (0.2)
0x040| 02 | . | form: "primitive" (0) 0x45.2-0x45.2 (0.1)
0x040| 02 | . | tag: "integer" (0x2) 0x45.3-0x45.7 (0.5)
0x040| 10 | . | length: 16 0x46-0x46.7 (1)
0x040| 2f a1 76 b3 6e e9 f0 49 f4| /.v.n..I.| value: 63312083136615639753586560173617846597 0x47-0x56.7 (16)
0x050|44 b4 00 99 66 19 45 |D...f.E |
| | | [2]{}: object 0x57-0x65.7 (15)
0x050| 30 | 0 | class: "universal" (0) 0x57-0x57.1 (0.2)
0x050| 30 | 0 | form: "constructed" (1) 0x57.2-0x57.2 (0.1)
0x050| 30 | 0 | tag: "sequence" (0x10) 0x57.3-0x57.7 (0.5)
0x050| 0d | . | length: 13 0x58-0x58.7 (1)
| | | constructed[0:2]: 0x59-0x65.7 (13)
| | | [0]{}: object 0x59-0x63.7 (11)
0x050| 06 | . | class: "universal" (0) 0x59-0x59.1 (0.2)
0x050| 06 | . | form: "primitive" (0) 0x59.2-0x59.2 (0.1)
0x050| 06 | . | tag: "object_identifier" (0x6) 0x59.3-0x59.7 (0.5)
0x050| 09 | . | length: 9 0x5a-0x5a.7 (1)
| | | value[0:7]: 0x5b-0x63.7 (9)
0x050| 2a | * | [0]: 1 oid 0x5b-0x5b.7 (1)
0x050| 2a | * | [1]: 2 oid 0x5b-0x5b.7 (1)
0x050| 86 48 | .H | [2]: 840 oid 0x5c-0x5d.7 (2)
0x050| 86 f7| ..| [3]: 113549 oid 0x5e-0x60.7 (3)
0x060|0d |. |
0x060| 01 | . | [4]: 1 oid 0x61-0x61.7 (1)
0x060| 01 | . | [5]: 1 oid 0x62-0x62.7 (1)
0x060| 05 | . | [6]: 5 oid 0x63-0x63.7 (1)
| | | [1]{}: object 0x64-0x65.7 (2)
0x060| 05 | . | class: "universal" (0) 0x64-0x64.1 (0.2)
0x060| 05 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1)
0x060| 05 | . | tag: "null" (0x5) 0x64.3-0x64.7 (0.5)
0x060| 00 | . | length: "indefinite" (0) 0x65-0x65.7 (1)
| | | value: null 0x66-NA (0)
| | | [3]{}: object 0x66-0x73.7 (14)
0x060| 30 | 0 | class: "universal" (0) 0x66-0x66.1 (0.2)
0x060| 30 | 0 | form: "constructed" (1) 0x66.2-0x66.2 (0.1)
0x060| 30 | 0 | tag: "sequence" (0x10) 0x66.3-0x66.7 (0.5)
0x060| 0c | . | length: 12 0x67-0x67.7 (1)
| | | constructed[0:1]: 0x68-0x73.7 (12)
| | | [0]{}: object 0x68-0x73.7 (12)
0x060| 31 | 1 | class: "universal" (0) 0x68-0x68.1 (0.2)
0x060| 31 | 1 | form: "constructed" (1) 0x68.2-0x68.2 (0.1)
0x060| 31 | 1 | tag: "set" (0x11) 0x68.3-0x68.7 (0.5)
0x060| 0a | . | length: 10 0x69-0x69.7 (1)
| | | constructed[0:1]: 0x6a-0x73.7 (10)
| | | [0]{}: object 0x6a-0x73.7 (10)
0x060| 30 | 0 | class: "universal" (0) 0x6a-0x6a.1 (0.2)
0x060| 30 | 0 | form: "constructed" (1) 0x6a.2-0x6a.2 (0.1)
0x060| 30 | 0 | tag: "sequence" (0x10) 0x6a.3-0x6a.7 (0.5)
0x060| 08 | . | length: 8 0x6b-0x6b.7 (1)
| | | constructed[0:2]: 0x6c-0x73.7 (8)
| | | [0]{}: object 0x6c-0x70.7 (5)
0x060| 06 | . | class: "universal" (0) 0x6c-0x6c.1 (0.2)
0x060| 06 | . | form: "primitive" (0) 0x6c.2-0x6c.2 (0.1)
0x060| 06 | . | tag: "object_identifier" (0x6) 0x6c.3-0x6c.7 (0.5)
0x060| 03 | . | length: 3 0x6d-0x6d.7 (1)
| | | value[0:4]: 0x6e-0x70.7 (3)
0x060| 55 | U | [0]: 2 oid 0x6e-0x6e.7 (1)
0x060| 55 | U | [1]: 5 oid 0x6e-0x6e.7 (1)
0x060| 04| .| [2]: 4 oid 0x6f-0x6f.7 (1)
0x070|03 |. | [3]: 3 oid 0x70-0x70.7 (1)
| | | [1]{}: object 0x71-0x73.7 (3)
0x070| 0c | . | class: "universal" (0) 0x71-0x71.1 (0.2)
0x070| 0c | . | form: "primitive" (0) 0x71.2-0x71.2 (0.1)
0x070| 0c | . | tag: "utf8_string" (0xc) 0x71.3-0x71.7 (0.5)
0x070| 01 | . | length: 1 0x72-0x72.7 (1)
0x070| 61 | a | value: "a" 0x73-0x73.7 (1)
| | | [4]{}: object 0x74-0x93.7 (32)
0x070| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2)
0x070| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1)
0x070| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5)
0x070| 1e | . | length: 30 0x75-0x75.7 (1)
| | | constructed[0:2]: 0x76-0x93.7 (30)
| | | [0]{}: object 0x76-0x84.7 (15)
0x070| 17 | . | class: "universal" (0) 0x76-0x76.1 (0.2)
0x070| 17 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1)
0x070| 17 | . | tag: "utc_time" (0x17) 0x76.3-0x76.7 (0.5)
0x070| 0d | . | length: 13 0x77-0x77.7 (1)
0x070| 30 38 31 30 31 35 31 35| 08101515| value: "081015150341Z" 0x78-0x84.7 (13)
0x080|30 33 34 31 5a |0341Z |
| | | [1]{}: object 0x85-0x93.7 (15)
0x080| 17 | . | class: "universal" (0) 0x85-0x85.1 (0.2)
0x080| 17 | . | form: "primitive" (0) 0x85.2-0x85.2 (0.1)
0x080| 17 | . | tag: "utc_time" (0x17) 0x85.3-0x85.7 (0.5)
0x080| 0d | . | length: 13 0x86-0x86.7 (1)
0x080| 30 39 31 30 31 35 31 35 30| 091015150| value: "091015150341Z" 0x87-0x93.7 (13)
0x090|33 34 31 5a |341Z |
| | | [5]{}: object 0x94-0xa1.7 (14)
0x090| 30 | 0 | class: "universal" (0) 0x94-0x94.1 (0.2)
0x090| 30 | 0 | form: "constructed" (1) 0x94.2-0x94.2 (0.1)
0x090| 30 | 0 | tag: "sequence" (0x10) 0x94.3-0x94.7 (0.5)
0x090| 0c | . | length: 12 0x95-0x95.7 (1)
| | | constructed[0:1]: 0x96-0xa1.7 (12)
| | | [0]{}: object 0x96-0xa1.7 (12)
0x090| 31 | 1 | class: "universal" (0) 0x96-0x96.1 (0.2)
0x090| 31 | 1 | form: "constructed" (1) 0x96.2-0x96.2 (0.1)
0x090| 31 | 1 | tag: "set" (0x11) 0x96.3-0x96.7 (0.5)
0x090| 0a | . | length: 10 0x97-0x97.7 (1)
| | | constructed[0:1]: 0x98-0xa1.7 (10)
| | | [0]{}: object 0x98-0xa1.7 (10)
0x090| 30 | 0 | class: "universal" (0) 0x98-0x98.1 (0.2)
0x090| 30 | 0 | form: "constructed" (1) 0x98.2-0x98.2 (0.1)
0x090| 30 | 0 | tag: "sequence" (0x10) 0x98.3-0x98.7 (0.5)
0x090| 08 | . | length: 8 0x99-0x99.7 (1)
| | | constructed[0:2]: 0x9a-0xa1.7 (8)
| | | [0]{}: object 0x9a-0x9e.7 (5)
0x090| 06 | . | class: "universal" (0) 0x9a-0x9a.1 (0.2)
0x090| 06 | . | form: "primitive" (0) 0x9a.2-0x9a.2 (0.1)
0x090| 06 | . | tag: "object_identifier" (0x6) 0x9a.3-0x9a.7 (0.5)
0x090| 03 | . | length: 3 0x9b-0x9b.7 (1)
| | | value[0:4]: 0x9c-0x9e.7 (3)
0x090| 55 | U | [0]: 2 oid 0x9c-0x9c.7 (1)
0x090| 55 | U | [1]: 5 oid 0x9c-0x9c.7 (1)
0x090| 04 | . | [2]: 4 oid 0x9d-0x9d.7 (1)
0x090| 03 | . | [3]: 3 oid 0x9e-0x9e.7 (1)
| | | [1]{}: object 0x9f-0xa1.7 (3)
0x090| 0c| .| class: "universal" (0) 0x9f-0x9f.1 (0.2)
0x090| 0c| .| form: "primitive" (0) 0x9f.2-0x9f.2 (0.1)
0x090| 0c| .| tag: "utf8_string" (0xc) 0x9f.3-0x9f.7 (0.5)
0x0a0|01 |. | length: 1 0xa0-0xa0.7 (1)
0x0a0| 61 | a | value: "a" 0xa1-0xa1.7 (1)
| | | [6]{}: object 0xa2-0x143.7 (162)
0x0a0| 30 | 0 | class: "universal" (0) 0xa2-0xa2.1 (0.2)
0x0a0| 30 | 0 | form: "constructed" (1) 0xa2.2-0xa2.2 (0.1)
0x0a0| 30 | 0 | tag: "sequence" (0x10) 0xa2.3-0xa2.7 (0.5)
0x0a0| 81 9f | .. | length: 159 0xa3-0xa4.7 (2)
| | | constructed[0:2]: 0xa5-0x143.7 (159)
| | | [0]{}: object 0xa5-0xb3.7 (15)
0x0a0| 30 | 0 | class: "universal" (0) 0xa5-0xa5.1 (0.2)
0x0a0| 30 | 0 | form: "constructed" (1) 0xa5.2-0xa5.2 (0.1)
0x0a0| 30 | 0 | tag: "sequence" (0x10) 0xa5.3-0xa5.7 (0.5)
0x0a0| 0d | . | length: 13 0xa6-0xa6.7 (1)
| | | constructed[0:2]: 0xa7-0xb3.7 (13)
| | | [0]{}: object 0xa7-0xb1.7 (11)
0x0a0| 06 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2)
0x0a0| 06 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1)
0x0a0| 06 | . | tag: "object_identifier" (0x6) 0xa7.3-0xa7.7 (0.5)
0x0a0| 09 | . | length: 9 0xa8-0xa8.7 (1)
| | | value[0:7]: 0xa9-0xb1.7 (9)
0x0a0| 2a | * | [0]: 1 oid 0xa9-0xa9.7 (1)
0x0a0| 2a | * | [1]: 2 oid 0xa9-0xa9.7 (1)
0x0a0| 86 48 | .H | [2]: 840 oid 0xaa-0xab.7 (2)
0x0a0| 86 f7 0d | ... | [3]: 113549 oid 0xac-0xae.7 (3)
0x0a0| 01| .| [4]: 1 oid 0xaf-0xaf.7 (1)
0x0b0|01 |. | [5]: 1 oid 0xb0-0xb0.7 (1)
0x0b0| 01 | . | [6]: 1 oid 0xb1-0xb1.7 (1)
| | | [1]{}: object 0xb2-0xb3.7 (2)
0x0b0| 05 | . | class: "universal" (0) 0xb2-0xb2.1 (0.2)
0x0b0| 05 | . | form: "primitive" (0) 0xb2.2-0xb2.2 (0.1)
0x0b0| 05 | . | tag: "null" (0x5) 0xb2.3-0xb2.7 (0.5)
0x0b0| 00 | . | length: "indefinite" (0) 0xb3-0xb3.7 (1)
| | | value: null 0xb4-NA (0)
| | | [1]{}: object 0xb4-0x143.7 (144)
0x0b0| 03 | . | class: "universal" (0) 0xb4-0xb4.1 (0.2)
0x0b0| 03 | . | form: "primitive" (0) 0xb4.2-0xb4.2 (0.1)
0x0b0| 03 | . | tag: "bit_string" (0x3) 0xb4.3-0xb4.7 (0.5)
0x0b0| 81 8d | .. | length: 141 0xb5-0xb6.7 (2)
0x0b0| 00 | . | unused_bits_count: 0 0xb7-0xb7.7 (1)
0x0b0| 30 81 89 02 81 81 00 89| 0.......| value: raw bits 0xb8-0x143.7 (140)
0x0c0|53 09 70 86 ee 61 47 c5 f4 d5 ff af 1b 49 8a 3d|S.p..aG......I.=|
* |until 0x143.7 (140) | |
| | | [7]{}: object 0x144-0x197.7 (84)
0x140| a3 | . | class: "context" (2) 0x144-0x144.1 (0.2)
0x140| a3 | . | form: "constructed" (1) 0x144.2-0x144.2 (0.1)
0x140| a3 | . | tag: 3 0x144.3-0x144.7 (0.5)
0x140| 52 | R | length: 82 0x145-0x145.7 (1)
| | | constructed[0:1]: 0x146-0x197.7 (82)
| | | [0]{}: object 0x146-0x197.7 (82)
0x140| 30 | 0 | class: "universal" (0) 0x146-0x146.1 (0.2)
0x140| 30 | 0 | form: "constructed" (1) 0x146.2-0x146.2 (0.1)
0x140| 30 | 0 | tag: "sequence" (0x10) 0x146.3-0x146.7 (0.5)
0x140| 50 | P | length: 80 0x147-0x147.7 (1)
| | | constructed[0:3]: 0x148-0x197.7 (80)
| | | [0]{}: object 0x148-0x157.7 (16)
0x140| 30 | 0 | class: "universal" (0) 0x148-0x148.1 (0.2)
0x140| 30 | 0 | form: "constructed" (1) 0x148.2-0x148.2 (0.1)
0x140| 30 | 0 | tag: "sequence" (0x10) 0x148.3-0x148.7 (0.5)
0x140| 0e | . | length: 14 0x149-0x149.7 (1)
| | | constructed[0:3]: 0x14a-0x157.7 (14)
| | | [0]{}: object 0x14a-0x14e.7 (5)
0x140| 06 | . | class: "universal" (0) 0x14a-0x14a.1 (0.2)
0x140| 06 | . | form: "primitive" (0) 0x14a.2-0x14a.2 (0.1)
0x140| 06 | . | tag: "object_identifier" (0x6) 0x14a.3-0x14a.7 (0.5)
0x140| 03 | . | length: 3 0x14b-0x14b.7 (1)
| | | value[0:4]: 0x14c-0x14e.7 (3)
0x140| 55 | U | [0]: 2 oid 0x14c-0x14c.7 (1)
0x140| 55 | U | [1]: 5 oid 0x14c-0x14c.7 (1)
0x140| 1d | . | [2]: 29 oid 0x14d-0x14d.7 (1)
0x140| 0f | . | [3]: 15 oid 0x14e-0x14e.7 (1)
| | | [1]{}: object 0x14f-0x151.7 (3)
0x140| 01| .| class: "universal" (0) 0x14f-0x14f.1 (0.2)
0x140| 01| .| form: "primitive" (0) 0x14f.2-0x14f.2 (0.1)
0x140| 01| .| tag: "boolean" (0x1) 0x14f.3-0x14f.7 (0.5)
0x150|01 |. | length: 1 0x150-0x150.7 (1)
0x150| ff | . | value: true (255) 0x151-0x151.7 (1)
| | | [2]{}: object 0x152-0x157.7 (6)
0x150| 04 | . | class: "universal" (0) 0x152-0x152.1 (0.2)
0x150| 04 | . | form: "primitive" (0) 0x152.2-0x152.2 (0.1)
0x150| 04 | . | tag: "octet_string" (0x4) 0x152.3-0x152.7 (0.5)
0x150| 04 | . | length: 4 0x153-0x153.7 (1)
0x150| 03 02 04 f0 | .... | value: raw bits 0x154-0x157.7 (4)
| | | [1]{}: object 0x158-0x176.7 (31)
0x150| 30 | 0 | class: "universal" (0) 0x158-0x158.1 (0.2)
0x150| 30 | 0 | form: "constructed" (1) 0x158.2-0x158.2 (0.1)
0x150| 30 | 0 | tag: "sequence" (0x10) 0x158.3-0x158.7 (0.5)
0x150| 1d | . | length: 29 0x159-0x159.7 (1)
| | | constructed[0:2]: 0x15a-0x176.7 (29)
| | | [0]{}: object 0x15a-0x15e.7 (5)
0x150| 06 | . | class: "universal" (0) 0x15a-0x15a.1 (0.2)
0x150| 06 | . | form: "primitive" (0) 0x15a.2-0x15a.2 (0.1)
0x150| 06 | . | tag: "object_identifier" (0x6) 0x15a.3-0x15a.7 (0.5)
0x150| 03 | . | length: 3 0x15b-0x15b.7 (1)
| | | value[0:4]: 0x15c-0x15e.7 (3)
0x150| 55 | U | [0]: 2 oid 0x15c-0x15c.7 (1)
0x150| 55 | U | [1]: 5 oid 0x15c-0x15c.7 (1)
0x150| 1d | . | [2]: 29 oid 0x15d-0x15d.7 (1)
0x150| 0e | . | [3]: 14 oid 0x15e-0x15e.7 (1)
| | | [1]{}: object 0x15f-0x176.7 (24)
0x150| 04| .| class: "universal" (0) 0x15f-0x15f.1 (0.2)
0x150| 04| .| form: "primitive" (0) 0x15f.2-0x15f.2 (0.1)
0x150| 04| .| tag: "octet_string" (0x4) 0x15f.3-0x15f.7 (0.5)
0x160|16 |. | length: 22 0x160-0x160.7 (1)
0x160| 04 14 42 06 5d 00 78 87 ed 38 67 7c bf 9f b3| ..B.].x..8g|...| value: raw bits 0x161-0x176.7 (22)
0x170|6f f7 8f 82 a8 f8 ad |o...... |
| | | [2]{}: object 0x177-0x197.7 (33)
0x170| 30 | 0 | class: "universal" (0) 0x177-0x177.1 (0.2)
0x170| 30 | 0 | form: "constructed" (1) 0x177.2-0x177.2 (0.1)
0x170| 30 | 0 | tag: "sequence" (0x10) 0x177.3-0x177.7 (0.5)
0x170| 1f | . | length: 31 0x178-0x178.7 (1)
| | | constructed[0:2]: 0x179-0x197.7 (31)
| | | [0]{}: object 0x179-0x17d.7 (5)
0x170| 06 | . | class: "universal" (0) 0x179-0x179.1 (0.2)
0x170| 06 | . | form: "primitive" (0) 0x179.2-0x179.2 (0.1)
0x170| 06 | . | tag: "object_identifier" (0x6) 0x179.3-0x179.7 (0.5)
0x170| 03 | . | length: 3 0x17a-0x17a.7 (1)
| | | value[0:4]: 0x17b-0x17d.7 (3)
0x170| 55 | U | [0]: 2 oid 0x17b-0x17b.7 (1)
0x170| 55 | U | [1]: 5 oid 0x17b-0x17b.7 (1)
0x170| 1d | . | [2]: 29 oid 0x17c-0x17c.7 (1)
0x170| 23 | # | [3]: 35 oid 0x17d-0x17d.7 (1)
| | | [1]{}: object 0x17e-0x197.7 (26)
0x170| 04 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2)
0x170| 04 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1)
0x170| 04 | . | tag: "octet_string" (0x4) 0x17e.3-0x17e.7 (0.5)
0x170| 18| .| length: 24 0x17f-0x17f.7 (1)
0x180|30 16 80 14 42 06 5d 00 78 87 ed 38 67 7c bf 9f|0...B.].x..8g|..| value: raw bits 0x180-0x197.7 (24)
0x190|b3 6f f7 8f 82 a8 f8 ad |.o...... |
0x00|03 02 04 f0 04 14 42 06 5d 00 78 87 ed 38 67 7c|......B.].x..8g|| value: raw bits 0x0-0x31.7 (50)
* |until 0x31.7 (end) (50) | |
| | | [1]{}: object 0x198-0x1a6.7 (15)
0x190| 30 | 0 | class: "universal" (0) 0x198-0x198.1 (0.2)
0x190| 30 | 0 | form: "constructed" (1) 0x198.2-0x198.2 (0.1)
0x190| 30 | 0 | tag: "sequence" (0x10) 0x198.3-0x198.7 (0.5)
0x190| 0d | . | length: 13 0x199-0x199.7 (1)
| | | constructed[0:2]: 0x19a-0x1a6.7 (13)
| | | [0]{}: object 0x19a-0x1a4.7 (11)
0x190| 06 | . | class: "universal" (0) 0x19a-0x19a.1 (0.2)
0x190| 06 | . | form: "primitive" (0) 0x19a.2-0x19a.2 (0.1)
0x190| 06 | . | tag: "object_identifier" (0x6) 0x19a.3-0x19a.7 (0.5)
0x190| 09 | . | length: 9 0x19b-0x19b.7 (1)
| | | value[0:7]: 0x19c-0x1a4.7 (9)
0x190| 2a | * | [0]: 1 oid 0x19c-0x19c.7 (1)
0x190| 2a | * | [1]: 2 oid 0x19c-0x19c.7 (1)
0x190| 86 48 | .H | [2]: 840 oid 0x19d-0x19e.7 (2)
0x190| 86| .| [3]: 113549 oid 0x19f-0x1a1.7 (3)
0x1a0|f7 0d |.. |
0x1a0| 01 | . | [4]: 1 oid 0x1a2-0x1a2.7 (1)
0x1a0| 01 | . | [5]: 1 oid 0x1a3-0x1a3.7 (1)
0x1a0| 05 | . | [6]: 5 oid 0x1a4-0x1a4.7 (1)
| | | [1]{}: object 0x1a5-0x1a6.7 (2)
0x1a0| 05 | . | class: "universal" (0) 0x1a5-0x1a5.1 (0.2)
0x1a0| 05 | . | form: "primitive" (0) 0x1a5.2-0x1a5.2 (0.1)
0x1a0| 05 | . | tag: "null" (0x5) 0x1a5.3-0x1a5.7 (0.5)
0x1a0| 00 | . | length: "indefinite" (0) 0x1a6-0x1a6.7 (1)
| | | value: null 0x1a7-NA (0)
| | | [2]{}: object 0x1a7-0x22a.7 (132)
0x1a0| 03 | . | class: "universal" (0) 0x1a7-0x1a7.1 (0.2)
0x1a0| 03 | . | form: "primitive" (0) 0x1a7.2-0x1a7.2 (0.1)
0x1a0| 03 | . | tag: "bit_string" (0x3) 0x1a7.3-0x1a7.7 (0.5)
0x1a0| 81 81 | .. | length: 129 0x1a8-0x1a9.7 (2)
0x1a0| 00 | . | unused_bits_count: 0 0x1aa-0x1aa.7 (1)
0x1a0| 4d 06 ee d0 22| M..."| value: raw bits 0x1ab-0x22a.7 (128)
0x1b0|69 a7 09 c6 f3 f7 7e 11 23 fb 23 fd 54 3c 4b d2|i.....~.#.#.T<K.|
* |until 0x22a.7 (128) | |
| | | [4]{}: object 0x22b-0x353.7 (297)
0x220| 31 | 1 | class: "universal" (0) 0x22b-0x22b.1 (0.2)
0x220| 31 | 1 | form: "constructed" (1) 0x22b.2-0x22b.2 (0.1)
0x220| 31 | 1 | tag: "set" (0x11) 0x22b.3-0x22b.7 (0.5)
0x220| 82 01 25 | ..% | length: 293 0x22c-0x22e.7 (3)
| | | constructed[0:1]: 0x22f-0x353.7 (293)
| | | [0]{}: object 0x22f-0x353.7 (293)
0x220| 30| 0| class: "universal" (0) 0x22f-0x22f.1 (0.2)
0x220| 30| 0| form: "constructed" (1) 0x22f.2-0x22f.2 (0.1)
0x220| 30| 0| tag: "sequence" (0x10) 0x22f.3-0x22f.7 (0.5)
0x230|82 01 21 |..! | length: 289 0x230-0x232.7 (3)
| | | constructed[0:6]: 0x233-0x353.7 (289)
| | | [0]{}: object 0x233-0x235.7 (3)
0x230| 02 | . | class: "universal" (0) 0x233-0x233.1 (0.2)
0x230| 02 | . | form: "primitive" (0) 0x233.2-0x233.2 (0.1)
0x230| 02 | . | tag: "integer" (0x2) 0x233.3-0x233.7 (0.5)
0x230| 01 | . | length: 1 0x234-0x234.7 (1)
0x230| 01 | . | value: 1 0x235-0x235.7 (1)
| | | [1]{}: object 0x236-0x257.7 (34)
0x230| 30 | 0 | class: "universal" (0) 0x236-0x236.1 (0.2)
0x230| 30 | 0 | form: "constructed" (1) 0x236.2-0x236.2 (0.1)
0x230| 30 | 0 | tag: "sequence" (0x10) 0x236.3-0x236.7 (0.5)
0x230| 20 | | length: 32 0x237-0x237.7 (1)
| | | constructed[0:2]: 0x238-0x257.7 (32)
| | | [0]{}: object 0x238-0x245.7 (14)
0x230| 30 | 0 | class: "universal" (0) 0x238-0x238.1 (0.2)
0x230| 30 | 0 | form: "constructed" (1) 0x238.2-0x238.2 (0.1)
0x230| 30 | 0 | tag: "sequence" (0x10) 0x238.3-0x238.7 (0.5)
0x230| 0c | . | length: 12 0x239-0x239.7 (1)
| | | constructed[0:1]: 0x23a-0x245.7 (12)
| | | [0]{}: object 0x23a-0x245.7 (12)
0x230| 31 | 1 | class: "universal" (0) 0x23a-0x23a.1 (0.2)
0x230| 31 | 1 | form: "constructed" (1) 0x23a.2-0x23a.2 (0.1)
0x230| 31 | 1 | tag: "set" (0x11) 0x23a.3-0x23a.7 (0.5)
0x230| 0a | . | length: 10 0x23b-0x23b.7 (1)
| | | constructed[0:1]: 0x23c-0x245.7 (10)
| | | [0]{}: object 0x23c-0x245.7 (10)
0x230| 30 | 0 | class: "universal" (0) 0x23c-0x23c.1 (0.2)
0x230| 30 | 0 | form: "constructed" (1) 0x23c.2-0x23c.2 (0.1)
0x230| 30 | 0 | tag: "sequence" (0x10) 0x23c.3-0x23c.7 (0.5)
0x230| 08 | . | length: 8 0x23d-0x23d.7 (1)
| | | constructed[0:2]: 0x23e-0x245.7 (8)
| | | [0]{}: object 0x23e-0x242.7 (5)
0x230| 06 | . | class: "universal" (0) 0x23e-0x23e.1 (0.2)
0x230| 06 | . | form: "primitive" (0) 0x23e.2-0x23e.2 (0.1)
0x230| 06 | . | tag: "object_identifier" (0x6) 0x23e.3-0x23e.7 (0.5)
0x230| 03| .| length: 3 0x23f-0x23f.7 (1)
| | | value[0:4]: 0x240-0x242.7 (3)
0x240|55 |U | [0]: 2 oid 0x240-0x240.7 (1)
0x240|55 |U | [1]: 5 oid 0x240-0x240.7 (1)
0x240| 04 | . | [2]: 4 oid 0x241-0x241.7 (1)
0x240| 03 | . | [3]: 3 oid 0x242-0x242.7 (1)
| | | [1]{}: object 0x243-0x245.7 (3)
0x240| 0c | . | class: "universal" (0) 0x243-0x243.1 (0.2)
0x240| 0c | . | form: "primitive" (0) 0x243.2-0x243.2 (0.1)
0x240| 0c | . | tag: "utf8_string" (0xc) 0x243.3-0x243.7 (0.5)
0x240| 01 | . | length: 1 0x244-0x244.7 (1)
0x240| 61 | a | value: "a" 0x245-0x245.7 (1)
| | | [1]{}: object 0x246-0x257.7 (18)
0x240| 02 | . | class: "universal" (0) 0x246-0x246.1 (0.2)
0x240| 02 | . | form: "primitive" (0) 0x246.2-0x246.2 (0.1)
0x240| 02 | . | tag: "integer" (0x2) 0x246.3-0x246.7 (0.5)
0x240| 10 | . | length: 16 0x247-0x247.7 (1)
0x240| 2f a1 76 b3 6e e9 f0 49| /.v.n..I| value: 63312083136615639753586560173617846597 0x248-0x257.7 (16)
0x250|f4 44 b4 00 99 66 19 45 |.D...f.E |
| | | [2]{}: object 0x258-0x262.7 (11)
0x250| 30 | 0 | class: "universal" (0) 0x258-0x258.1 (0.2)
0x250| 30 | 0 | form: "constructed" (1) 0x258.2-0x258.2 (0.1)
0x250| 30 | 0 | tag: "sequence" (0x10) 0x258.3-0x258.7 (0.5)
0x250| 09 | . | length: 9 0x259-0x259.7 (1)
| | | constructed[0:2]: 0x25a-0x262.7 (9)
| | | [0]{}: object 0x25a-0x260.7 (7)
0x250| 06 | . | class: "universal" (0) 0x25a-0x25a.1 (0.2)
0x250| 06 | . | form: "primitive" (0) 0x25a.2-0x25a.2 (0.1)
0x250| 06 | . | tag: "object_identifier" (0x6) 0x25a.3-0x25a.7 (0.5)
0x250| 05 | . | length: 5 0x25b-0x25b.7 (1)
| | | value[0:6]: 0x25c-0x260.7 (5)
0x250| 2b | + | [0]: 1 oid 0x25c-0x25c.7 (1)
0x250| 2b | + | [1]: 3 oid 0x25c-0x25c.7 (1)
0x250| 0e | . | [2]: 14 oid 0x25d-0x25d.7 (1)
0x250| 03 | . | [3]: 3 oid 0x25e-0x25e.7 (1)
0x250| 02| .| [4]: 2 oid 0x25f-0x25f.7 (1)
0x260|1a |. | [5]: 26 oid 0x260-0x260.7 (1)
| | | [1]{}: object 0x261-0x262.7 (2)
0x260| 05 | . | class: "universal" (0) 0x261-0x261.1 (0.2)
0x260| 05 | . | form: "primitive" (0) 0x261.2-0x261.2 (0.1)
0x260| 05 | . | tag: "null" (0x5) 0x261.3-0x261.7 (0.5)
0x260| 00 | . | length: "indefinite" (0) 0x262-0x262.7 (1)
| | | value: null 0x263-NA (0)
| | | [3]{}: object 0x263-0x2c1.7 (95)
0x260| a0 | . | class: "context" (2) 0x263-0x263.1 (0.2)
0x260| a0 | . | form: "constructed" (1) 0x263.2-0x263.2 (0.1)
0x260| a0 | . | tag: 0 0x263.3-0x263.7 (0.5)
0x260| 5d | ] | length: 93 0x264-0x264.7 (1)
| | | constructed[0:3]: 0x265-0x2c1.7 (93)
| | | [0]{}: object 0x265-0x27e.7 (26)
0x260| 30 | 0 | class: "universal" (0) 0x265-0x265.1 (0.2)
0x260| 30 | 0 | form: "constructed" (1) 0x265.2-0x265.2 (0.1)
0x260| 30 | 0 | tag: "sequence" (0x10) 0x265.3-0x265.7 (0.5)
0x260| 18 | . | length: 24 0x266-0x266.7 (1)
| | | constructed[0:2]: 0x267-0x27e.7 (24)
| | | [0]{}: object 0x267-0x271.7 (11)
0x260| 06 | . | class: "universal" (0) 0x267-0x267.1 (0.2)
0x260| 06 | . | form: "primitive" (0) 0x267.2-0x267.2 (0.1)
0x260| 06 | . | tag: "object_identifier" (0x6) 0x267.3-0x267.7 (0.5)
0x260| 09 | . | length: 9 0x268-0x268.7 (1)
| | | value[0:7]: 0x269-0x271.7 (9)
0x260| 2a | * | [0]: 1 oid 0x269-0x269.7 (1)
0x260| 2a | * | [1]: 2 oid 0x269-0x269.7 (1)
0x260| 86 48 | .H | [2]: 840 oid 0x26a-0x26b.7 (2)
0x260| 86 f7 0d | ... | [3]: 113549 oid 0x26c-0x26e.7 (3)
0x260| 01| .| [4]: 1 oid 0x26f-0x26f.7 (1)
0x270|09 |. | [5]: 9 oid 0x270-0x270.7 (1)
0x270| 03 | . | [6]: 3 oid 0x271-0x271.7 (1)
| | | [1]{}: object 0x272-0x27e.7 (13)
0x270| 31 | 1 | class: "universal" (0) 0x272-0x272.1 (0.2)
0x270| 31 | 1 | form: "constructed" (1) 0x272.2-0x272.2 (0.1)
0x270| 31 | 1 | tag: "set" (0x11) 0x272.3-0x272.7 (0.5)
0x270| 0b | . | length: 11 0x273-0x273.7 (1)
| | | constructed[0:1]: 0x274-0x27e.7 (11)
| | | [0]{}: object 0x274-0x27e.7 (11)
0x270| 06 | . | class: "universal" (0) 0x274-0x274.1 (0.2)
0x270| 06 | . | form: "primitive" (0) 0x274.2-0x274.2 (0.1)
0x270| 06 | . | tag: "object_identifier" (0x6) 0x274.3-0x274.7 (0.5)
0x270| 09 | . | length: 9 0x275-0x275.7 (1)
| | | value[0:7]: 0x276-0x27e.7 (9)
0x270| 2a | * | [0]: 1 oid 0x276-0x276.7 (1)
0x270| 2a | * | [1]: 2 oid 0x276-0x276.7 (1)
0x270| 86 48 | .H | [2]: 840 oid 0x277-0x278.7 (2)
0x270| 86 f7 0d | ... | [3]: 113549 oid 0x279-0x27b.7 (3)
0x270| 01 | . | [4]: 1 oid 0x27c-0x27c.7 (1)
0x270| 07 | . | [5]: 7 oid 0x27d-0x27d.7 (1)
0x270| 01 | . | [6]: 1 oid 0x27e-0x27e.7 (1)
| | | [1]{}: object 0x27f-0x29c.7 (30)
0x270| 30| 0| class: "universal" (0) 0x27f-0x27f.1 (0.2)
0x270| 30| 0| form: "constructed" (1) 0x27f.2-0x27f.2 (0.1)
0x270| 30| 0| tag: "sequence" (0x10) 0x27f.3-0x27f.7 (0.5)
0x280|1c |. | length: 28 0x280-0x280.7 (1)
| | | constructed[0:2]: 0x281-0x29c.7 (28)
| | | [0]{}: object 0x281-0x28b.7 (11)
0x280| 06 | . | class: "universal" (0) 0x281-0x281.1 (0.2)
0x280| 06 | . | form: "primitive" (0) 0x281.2-0x281.2 (0.1)
0x280| 06 | . | tag: "object_identifier" (0x6) 0x281.3-0x281.7 (0.5)
0x280| 09 | . | length: 9 0x282-0x282.7 (1)
| | | value[0:7]: 0x283-0x28b.7 (9)
0x280| 2a | * | [0]: 1 oid 0x283-0x283.7 (1)
0x280| 2a | * | [1]: 2 oid 0x283-0x283.7 (1)
0x280| 86 48 | .H | [2]: 840 oid 0x284-0x285.7 (2)
0x280| 86 f7 0d | ... | [3]: 113549 oid 0x286-0x288.7 (3)
0x280| 01 | . | [4]: 1 oid 0x289-0x289.7 (1)
0x280| 09 | . | [5]: 9 oid 0x28a-0x28a.7 (1)
0x280| 05 | . | [6]: 5 oid 0x28b-0x28b.7 (1)
| | | [1]{}: object 0x28c-0x29c.7 (17)
0x280| 31 | 1 | class: "universal" (0) 0x28c-0x28c.1 (0.2)
0x280| 31 | 1 | form: "constructed" (1) 0x28c.2-0x28c.2 (0.1)
0x280| 31 | 1 | tag: "set" (0x11) 0x28c.3-0x28c.7 (0.5)
0x280| 0f | . | length: 15 0x28d-0x28d.7 (1)
| | | constructed[0:1]: 0x28e-0x29c.7 (15)
| | | [0]{}: object 0x28e-0x29c.7 (15)
0x280| 17 | . | class: "universal" (0) 0x28e-0x28e.1 (0.2)
0x280| 17 | . | form: "primitive" (0) 0x28e.2-0x28e.2 (0.1)
0x280| 17 | . | tag: "utc_time" (0x17) 0x28e.3-0x28e.7 (0.5)
0x280| 0d| .| length: 13 0x28f-0x28f.7 (1)
0x290|30 38 31 30 31 35 31 35 30 33 34 33 5a |081015150343Z | value: "081015150343Z" 0x290-0x29c.7 (13)
| | | [2]{}: object 0x29d-0x2c1.7 (37)
0x290| 30 | 0 | class: "universal" (0) 0x29d-0x29d.1 (0.2)
0x290| 30 | 0 | form: "constructed" (1) 0x29d.2-0x29d.2 (0.1)
0x290| 30 | 0 | tag: "sequence" (0x10) 0x29d.3-0x29d.7 (0.5)
0x290| 23 | # | length: 35 0x29e-0x29e.7 (1)
| | | constructed[0:2]: 0x29f-0x2c1.7 (35)
| | | [0]{}: object 0x29f-0x2a9.7 (11)
0x290| 06| .| class: "universal" (0) 0x29f-0x29f.1 (0.2)
0x290| 06| .| form: "primitive" (0) 0x29f.2-0x29f.2 (0.1)
0x290| 06| .| tag: "object_identifier" (0x6) 0x29f.3-0x29f.7 (0.5)
0x2a0|09 |. | length: 9 0x2a0-0x2a0.7 (1)
| | | value[0:7]: 0x2a1-0x2a9.7 (9)
0x2a0| 2a | * | [0]: 1 oid 0x2a1-0x2a1.7 (1)
0x2a0| 2a | * | [1]: 2 oid 0x2a1-0x2a1.7 (1)
0x2a0| 86 48 | .H | [2]: 840 oid 0x2a2-0x2a3.7 (2)
0x2a0| 86 f7 0d | ... | [3]: 113549 oid 0x2a4-0x2a6.7 (3)
0x2a0| 01 | . | [4]: 1 oid 0x2a7-0x2a7.7 (1)
0x2a0| 09 | . | [5]: 9 oid 0x2a8-0x2a8.7 (1)
0x2a0| 04 | . | [6]: 4 oid 0x2a9-0x2a9.7 (1)
| | | [1]{}: object 0x2aa-0x2c1.7 (24)
0x2a0| 31 | 1 | class: "universal" (0) 0x2aa-0x2aa.1 (0.2)
0x2a0| 31 | 1 | form: "constructed" (1) 0x2aa.2-0x2aa.2 (0.1)
0x2a0| 31 | 1 | tag: "set" (0x11) 0x2aa.3-0x2aa.7 (0.5)
0x2a0| 16 | . | length: 22 0x2ab-0x2ab.7 (1)
| | | constructed[0:1]: 0x2ac-0x2c1.7 (22)
| | | [0]{}: object 0x2ac-0x2c1.7 (22)
0x2a0| 04 | . | class: "universal" (0) 0x2ac-0x2ac.1 (0.2)
0x2a0| 04 | . | form: "primitive" (0) 0x2ac.2-0x2ac.2 (0.1)
0x2a0| 04 | . | tag: "octet_string" (0x4) 0x2ac.3-0x2ac.7 (0.5)
0x2a0| 14 | . | length: 20 0x2ad-0x2ad.7 (1)
0x2a0| 00 00| ..| value: raw bits 0x2ae-0x2c1.7 (20)
0x2b0|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|................|
0x2c0|00 00 |.. |
| | | [4]{}: object 0x2c2-0x2d0.7 (15)
0x2c0| 30 | 0 | class: "universal" (0) 0x2c2-0x2c2.1 (0.2)
0x2c0| 30 | 0 | form: "constructed" (1) 0x2c2.2-0x2c2.2 (0.1)
0x2c0| 30 | 0 | tag: "sequence" (0x10) 0x2c2.3-0x2c2.7 (0.5)
0x2c0| 0d | . | length: 13 0x2c3-0x2c3.7 (1)
| | | constructed[0:2]: 0x2c4-0x2d0.7 (13)
| | | [0]{}: object 0x2c4-0x2ce.7 (11)
0x2c0| 06 | . | class: "universal" (0) 0x2c4-0x2c4.1 (0.2)
0x2c0| 06 | . | form: "primitive" (0) 0x2c4.2-0x2c4.2 (0.1)
0x2c0| 06 | . | tag: "object_identifier" (0x6) 0x2c4.3-0x2c4.7 (0.5)
0x2c0| 09 | . | length: 9 0x2c5-0x2c5.7 (1)
| | | value[0:7]: 0x2c6-0x2ce.7 (9)
0x2c0| 2a | * | [0]: 1 oid 0x2c6-0x2c6.7 (1)
0x2c0| 2a | * | [1]: 2 oid 0x2c6-0x2c6.7 (1)
0x2c0| 86 48 | .H | [2]: 840 oid 0x2c7-0x2c8.7 (2)
0x2c0| 86 f7 0d | ... | [3]: 113549 oid 0x2c9-0x2cb.7 (3)
0x2c0| 01 | . | [4]: 1 oid 0x2cc-0x2cc.7 (1)
0x2c0| 01 | . | [5]: 1 oid 0x2cd-0x2cd.7 (1)
0x2c0| 01 | . | [6]: 1 oid 0x2ce-0x2ce.7 (1)
| | | [1]{}: object 0x2cf-0x2d0.7 (2)
0x2c0| 05| .| class: "universal" (0) 0x2cf-0x2cf.1 (0.2)
0x2c0| 05| .| form: "primitive" (0) 0x2cf.2-0x2cf.2 (0.1)
0x2c0| 05| .| tag: "null" (0x5) 0x2cf.3-0x2cf.7 (0.5)
0x2d0|00 |. | length: "indefinite" (0) 0x2d0-0x2d0.7 (1)
| | | value: null 0x2d1-NA (0)
| | | [5]{}: object 0x2d1-0x353.7 (131)
0x2d0| 04 | . | class: "universal" (0) 0x2d1-0x2d1.1 (0.2)
0x2d0| 04 | . | form: "primitive" (0) 0x2d1.2-0x2d1.2 (0.1)
0x2d0| 04 | . | tag: "octet_string" (0x4) 0x2d1.3-0x2d1.7 (0.5)
0x2d0| 81 80 | .. | length: 128 0x2d2-0x2d3.7 (2)
0x2d0| 74 1e d2 87 23 06 7f 99 55 75 9b 6f| t...#...Uu.o| value: raw bits 0x2d4-0x353.7 (128)
0x2e0|c0 a9 67 60 b1 cc 52 a2 56 b8 19 c5 93 b6 90 c0|..g`..R.V.......|
* |until 0x353.7 (end) (128) | |

1
format/asn1/testdata/tc1.ber vendored Normal file
View File

@ -0,0 +1 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@

7
format/asn1/testdata/tc1.ber.fqtest vendored Normal file
View File

@ -0,0 +1,7 @@
$ fq -d asn1_ber dv tc1.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc1.ber (asn1_ber) 0x0-0xc.7 (13)
0x0|9f |. | class: "context" (2) 0x0-0x0.1 (0.2)
0x0|9f |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|9f ff ff ff ff ff ff ff ff ff 7f |........... | tag: 18446744073709551615 0x0.3-0xa.7 (10.5)
0x0| 01 | . | length: 1 0xb-0xb.7 (1)
0x0| 40| | @| | value: raw bits 0xc-0xc.7 (1)

19
format/asn1/testdata/tc1.xml vendored Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<ASN1_TYPE>
<identification_block>
<warnings>
<warning>Tag too long, represented as hex-coded</warning>
</warnings>
<tag_class>CONTEXT_SPECIFIC</tag_class>
<is_constructed>false</is_constructed>
<value_hex>7F 7F 7F 7F 7F 7F 7F 7F 7F 7F</value_hex>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>1</length>
</length_block>
<value_block>
<value_hex>40</value_hex>
</value_block>
</ASN1_TYPE>

1
format/asn1/testdata/tc10.ber vendored Normal file
View File

@ -0,0 +1 @@
<07><04><><EFBFBD><EFBFBD>

15
format/asn1/testdata/tc10.ber.fqtest vendored Normal file
View File

@ -0,0 +1,15 @@
$ fq -d asn1_ber dv tc10.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc10.ber (asn1_ber) 0x0-0x8.7 (9)
0x0|09 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|09 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|09 |. | tag: "real" (0x9) 0x0.3-0x0.7 (0.5)
0x0| 07 | . | length: 7 0x1-0x1.7 (1)
0x0| 83 | . | binary_encoding: true 0x2-0x2 (0.1)
0x0| 83 | . | sign: 1 (false) 0x2.1-0x2.1 (0.1)
0x0| 83 | . | base: 2 (0) 0x2.2-0x2.3 (0.2)
0x0| 83 | . | scale: 0 0x2.4-0x2.5 (0.2)
0x0| 83 | . | format: 3 0x2.6-0x2.7 (0.2)
0x0| 04 | . | exp_bytes: 4 0x3-0x3.7 (1)
0x0| ff ff ff fb | .... | exp: -5 0x4-0x7.7 (4)
0x0| 05| | .| | n: 5 0x8-0x8.7 (1)
| | | value: 0.15625 0x9-NA (0)

34
format/asn1/testdata/tc10.xml vendored Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0"?>
<REAL>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>7</length>
</length_block>
<value_block>
<information_block>
<is_special_value>false</is_special_value>
<base>2</base>
<scaling_factor>0</scaling_factor>
<is_negative>false</is_negative>
<exponent_format>4</exponent_format>
</information_block>
<exponent_block>
<warnings>
<warning>Needlessly long format</warning>
</warnings>
<is_hex_only>false</is_hex_only>
<value_dec>-5</value_dec>
</exponent_block>
<mantissa_block>
<is_hex_only>false</is_hex_only>
<value_dec>5</value_dec>
</mantissa_block>
<value_dec>0.156250</value_dec>
</value_block>
</REAL>

1
format/asn1/testdata/tc11.ber vendored Normal file
View File

@ -0,0 +1 @@
 015625

10
format/asn1/testdata/tc11.ber.fqtest vendored Normal file
View File

@ -0,0 +1,10 @@
$ fq -d asn1_ber dv tc11.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc11.ber (asn1_ber) 0x0-0xa.7 (11)
0x0|09 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|09 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|09 |. | tag: "real" (0x9) 0x0.3-0x0.7 (0.5)
0x0| 09 | . | length: 9 0x1-0x1.7 (1)
0x0| 11 | . | binary_encoding: false 0x2-0x2 (0.1)
0x0| 11 | . | decimal_encoding: false 0x2.1-0x2.1 (0.1)
0x0| 11 | . | representation: 17 0x2.2-0x2.7 (0.6)
0x0| 20 20 30 31 35 36 32 35| | 015625| | value: 0 0x3-0xa.7 (8)

20
format/asn1/testdata/tc11.xml vendored Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<REAL>
<error>Wrong NR form</error>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>9</length>
</length_block>
<value_block>
<error>Wrong NR form</error>
<information_block>
<error>Wrong NR form</error>
</information_block>
</value_block>
</REAL>

1
format/asn1/testdata/tc12.ber vendored Normal file
View File

@ -0,0 +1 @@
I

9
format/asn1/testdata/tc12.ber.fqtest vendored Normal file
View File

@ -0,0 +1,9 @@
$ fq -d asn1_ber dv tc12.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc12.ber (asn1_ber) 0x0-0x2.7 (3)
0x0|09 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|09 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|09 |. | tag: "real" (0x9) 0x0.3-0x0.7 (0.5)
0x0| 01 | . | length: 1 0x1-0x1.7 (1)
0x0| 49| | I| | binary_encoding: false 0x2-0x2 (0.1)
0x0| 49| | I| | decimal_encoding: true 0x2.1-0x2.1 (0.1)
0x0| 49| | I| | special: 9 0x2.2-0x2.7 (0.6)

20
format/asn1/testdata/tc12.xml vendored Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<REAL>
<error>Unknown special REAL value</error>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>1</length>
</length_block>
<value_block>
<error>Unknown special REAL value</error>
<information_block>
<error>Unknown special REAL value</error>
</information_block>
</value_block>
</REAL>

BIN
format/asn1/testdata/tc13.ber vendored Normal file

Binary file not shown.

8
format/asn1/testdata/tc13.ber.fqtest vendored Normal file
View File

@ -0,0 +1,8 @@
$ fq -d asn1_ber d tc13.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc13.ber (asn1_ber)
| | | error: asn1_ber: BitBufRange: failed at position 0 (read size 12 seek pos 0): outside buffer
0x0|09 |. | class: "universal" (0)
0x0|09 |. | form: "primitive" (0)
0x0|09 |. | tag: "real" (0x9)
0x0| 83 00 00 07 | .... | length: 7
0x0| 83 04 ff ff ff fb| | ......| | unknown0: raw bits

38
format/asn1/testdata/tc13.xml vendored Normal file
View File

@ -0,0 +1,38 @@
<?xml version="1.0"?>
<REAL>
<error>End of input reached before message was fully decoded</error>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<warnings>
<warning>Needlessly long encoded length</warning>
<warning>Unneccesary usage of long length form</warning>
</warnings>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>true</long_form_used>
<length>7</length>
</length_block>
<value_block>
<error>End of input reached before message was fully decoded</error>
<information_block>
<is_special_value>false</is_special_value>
<base>2</base>
<scaling_factor>0</scaling_factor>
<is_negative>false</is_negative>
<exponent_format>4</exponent_format>
</information_block>
<exponent_block>
<warnings>
<warning>Needlessly long format</warning>
</warnings>
<is_hex_only>false</is_hex_only>
<value_dec>-5</value_dec>
</exponent_block>
<mantissa_block>
<error>End of input reached before message was fully decoded</error>
</mantissa_block>
</value_block>
</REAL>

BIN
format/asn1/testdata/tc14.ber vendored Normal file

Binary file not shown.

8
format/asn1/testdata/tc14.ber.fqtest vendored Normal file
View File

@ -0,0 +1,8 @@
$ fq -d asn1_ber d tc14.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc14.ber (asn1_ber)
| | | error: asn1_ber: BitBufRange: failed at position 0 (read size 12 seek pos 0): outside buffer
0x0|09 |. | class: "universal" (0)
0x0|09 |. | form: "primitive" (0)
0x0|09 |. | tag: "real" (0x9)
0x0| 83 00 00 07 | .... | length: 7
0x0| 83 04| | ..| | unknown0: raw bits

31
format/asn1/testdata/tc14.xml vendored Normal file
View File

@ -0,0 +1,31 @@
<?xml version="1.0"?>
<REAL>
<error>End of input reached before message was fully decoded</error>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<warnings>
<warning>Needlessly long encoded length</warning>
<warning>Unneccesary usage of long length form</warning>
</warnings>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>true</long_form_used>
<length>7</length>
</length_block>
<value_block>
<error>End of input reached before message was fully decoded</error>
<information_block>
<is_special_value>false</is_special_value>
<base>2</base>
<scaling_factor>0</scaling_factor>
<is_negative>false</is_negative>
<exponent_format>4</exponent_format>
</information_block>
<exponent_block>
<error>End of input reached before message was fully decoded</error>
</exponent_block>
</value_block>
</REAL>

1
format/asn1/testdata/tc15.ber vendored Normal file
View File

@ -0,0 +1 @@
<0C> <><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

8
format/asn1/testdata/tc15.ber.fqtest vendored Normal file
View File

@ -0,0 +1,8 @@
$ fq -d asn1_ber d tc15.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc15.ber (asn1_ber)
| | | error: asn1_ber: S(exp): failed at position 4 (read size 0 seek pos 0): nBits must be 0-64 (72)
0x0|09 |. | class: "universal" (0)
0x0|09 |. | form: "primitive" (0)
0x0|09 |. | tag: "real" (0x9)
0x0| 0c | . | length: 12
0x0| 83 09 7f ff ff ff ff ff ff ff fb 05| | ............| | unknown0: raw bits

34
format/asn1/testdata/tc15.xml vendored Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0"?>
<REAL>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>12</length>
</length_block>
<value_block>
<information_block>
<is_special_value>false</is_special_value>
<base>2</base>
<scaling_factor>0</scaling_factor>
<is_negative>false</is_negative>
<exponent_format>4</exponent_format>
</information_block>
<exponent_block>
<warnings>
<warning>Too big REAL exponent block for decoding, hex only</warning>
</warnings>
<is_hex_only>true</is_hex_only>
<value_hex>09 7F FF FF FF FF FF FF FF FB</value_hex>
</exponent_block>
<mantissa_block>
<is_hex_only>false</is_hex_only>
<value_dec>5</value_dec>
</mantissa_block>
<value_hex>5 * 2^{09 7F FF FF FF FF FF FF FF FB}</value_hex>
</value_block>
</REAL>

1
format/asn1/testdata/tc16.ber vendored Normal file
View File

@ -0,0 +1 @@
€<>

8
format/asn1/testdata/tc16.ber.fqtest vendored Normal file
View File

@ -0,0 +1,8 @@
$ fq -d asn1_ber d tc16.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc16.ber (asn1_ber)
| | | error: asn1_ber: U(n): failed at position 4 (read size 0 seek pos 0): nBits must be 0-64 (80)
0x0|09 |. | class: "universal" (0)
0x0|09 |. | form: "primitive" (0)
0x0|09 |. | tag: "real" (0x9)
0x0| 0c | . | length: 12
0x0| 80 fb 05 05 05 05 05 05 05 05 05 05| | ............| | unknown0: raw bits

34
format/asn1/testdata/tc16.xml vendored Normal file
View File

@ -0,0 +1,34 @@
<?xml version="1.0"?>
<REAL>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>12</length>
</length_block>
<value_block>
<information_block>
<is_special_value>false</is_special_value>
<base>2</base>
<scaling_factor>0</scaling_factor>
<is_negative>false</is_negative>
<exponent_format>1</exponent_format>
</information_block>
<exponent_block>
<is_hex_only>false</is_hex_only>
<value_dec>-5</value_dec>
</exponent_block>
<mantissa_block>
<warnings>
<warning>Too big REAL mantissa for decoding, hex only</warning>
</warnings>
<is_hex_only>true</is_hex_only>
<value_hex>05 05 05 05 05 05 05 05 05 05</value_hex>
</mantissa_block>
<value_hex>{05 05 05 05 05 05 05 05 05 05} * 2^-5</value_hex>
</value_block>
</REAL>

1
format/asn1/testdata/tc17.ber vendored Normal file
View File

@ -0,0 +1 @@
<14> <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

9
format/asn1/testdata/tc17.ber.fqtest vendored Normal file
View File

@ -0,0 +1,9 @@
$ fq -d asn1_ber d tc17.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc17.ber (asn1_ber)
| | | error: asn1_ber: S(exp): failed at position 4 (read size 0 seek pos 0): nBits must be 0-64 (72)
0x00|09 |. | class: "universal" (0)
0x00|09 |. | form: "primitive" (0)
0x00|09 |. | tag: "real" (0x9)
0x00| 14 | . | length: 20
0x00| af 09 fe ff ff ff ff ff ff ff ff 05 05 05| ..............| unknown0: raw bits
0x10|05 05 05 05 05 05| |......| |

37
format/asn1/testdata/tc17.xml vendored Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<REAL>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>9</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>20</length>
</length_block>
<value_block>
<information_block>
<is_special_value>false</is_special_value>
<base>16</base>
<scaling_factor>3</scaling_factor>
<is_negative>false</is_negative>
<exponent_format>4</exponent_format>
</information_block>
<exponent_block>
<warnings>
<warning>Too big REAL exponent block for decoding, hex only</warning>
</warnings>
<is_hex_only>true</is_hex_only>
<value_hex>09 FE FF FF FF FF FF FF FF FF</value_hex>
</exponent_block>
<mantissa_block>
<warnings>
<warning>Too big REAL mantissa for decoding, hex only</warning>
</warnings>
<is_hex_only>true</is_hex_only>
<value_hex>05 05 05 05 05 05 05 05 05</value_hex>
</mantissa_block>
<value_hex>{05 05 05 05 05 05 05 05 05} * 16^{09 FE FF FF FF FF FF FF FF FF} * 2^3</value_hex>
</value_block>
</REAL>

1
format/asn1/testdata/tc18.ber vendored Normal file
View File

@ -0,0 +1 @@
<03><>

7
format/asn1/testdata/tc18.ber.fqtest vendored Normal file
View File

@ -0,0 +1,7 @@
$ fq -d asn1_ber dv tc18.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc18.ber (asn1_ber) 0x0-0x4.7 (5)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 03 | . | length: 3 0x1-0x1.7 (1)
0x0| ff f0 01| | ...| | value: -4095 0x2-0x4.7 (3)

19
format/asn1/testdata/tc18.xml vendored Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<INTEGER>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>2</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>3</length>
</length_block>
<value_block>
<warnings>
<warning>Needlessly long format</warning>
</warnings>
<value_dec>-4095</value_dec>
</value_block>
</INTEGER>

1
format/asn1/testdata/tc19.ber vendored Normal file
View File

@ -0,0 +1 @@


7
format/asn1/testdata/tc19.ber.fqtest vendored Normal file
View File

@ -0,0 +1,7 @@
$ fq -d asn1_ber d tc19.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc19.ber (asn1_ber)
| | | error: asn1_ber: BitBufRange: failed at position 0 (read size 3 seek pos 0): outside buffer
0x0|02 |. | class: "universal" (0)
0x0|02 |. | form: "primitive" (0)
0x0|02 |. | tag: "integer" (0x2)
0x0| 01| | .| | length: 1

17
format/asn1/testdata/tc19.xml vendored Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<INTEGER>
<error>End of input reached before message was fully decoded</error>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>2</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>1</length>
</length_block>
<value_block>
<error>End of input reached before message was fully decoded</error>
</value_block>
</INTEGER>

1
format/asn1/testdata/tc2.ber vendored Normal file
View File

@ -0,0 +1 @@
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

6
format/asn1/testdata/tc2.ber.fqtest vendored Normal file
View File

@ -0,0 +1,6 @@
$ fq -d asn1_ber d tc2.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc2.ber (asn1_ber)
| | | error: asn1_ber: Bool: failed at position 10 (read size 0 seek pos 0): EOF
0x0|9f |. | class: "context" (2)
0x0|9f |. | form: "primitive" (0)
0x0|9f ff ff ff ff ff ff ff ff ff| |..........| | unknown0: raw bits

7
format/asn1/testdata/tc2.xml vendored Normal file
View File

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<ASN1_TYPE>
<error>End of input reached before message was fully decoded</error>
<identification_block>
<error>End of input reached before message was fully decoded</error>
</identification_block>
</ASN1_TYPE>

BIN
format/asn1/testdata/tc20.ber vendored Normal file

Binary file not shown.

7
format/asn1/testdata/tc20.ber.fqtest vendored Normal file
View File

@ -0,0 +1,7 @@
$ fq -d asn1_ber dv tc20.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc20.ber (asn1_ber) 0x0-0xa.7 (11)
0x0|02 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|02 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|02 |. | tag: "integer" (0x2) 0x0.3-0x0.7 (0.5)
0x0| 09 | . | length: 9 0x1-0x1.7 (1)
0x0| 80 00 01 01 01 01 01 01 01| | .........| | value: -2361182958856022458111 0x2-0xa.7 (9)

19
format/asn1/testdata/tc20.xml vendored Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0"?>
<INTEGER>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>2</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>9</length>
</length_block>
<value_block>
<warnings>
<warning>Too big REAL for decoding, hex only</warning>
</warnings>
<value_hex>80 00 01 01 01 01 01 01 01</value_hex>
</value_block>
</INTEGER>

1
format/asn1/testdata/tc21.ber vendored Normal file
View File

@ -0,0 +1 @@
€€Q€€

11
format/asn1/testdata/tc21.ber.fqtest vendored Normal file
View File

@ -0,0 +1,11 @@
$ fq -d asn1_ber dv tc21.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc21.ber (asn1_ber) 0x0-0x7.7 (8)
0x0|06 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|06 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|06 |. | tag: "object_identifier" (0x6) 0x0.3-0x0.7 (0.5)
0x0| 06 | . | length: 6 0x1-0x1.7 (1)
| | | value[0:4]: 0x2-0x7.7 (6)
0x0| 80 | . | [0]: 3 oid 0x2-0x2.7 (1)
0x0| 80 | . | [1]: 8 oid 0x2-0x2.7 (1)
0x0| 80 51 | .Q | [2]: 81 oid 0x3-0x4.7 (2)
0x0| 80 80 01| | ...| | [3]: 1 oid 0x5-0x7.7 (3)

35
format/asn1/testdata/tc21.xml vendored Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0"?>
<OBJECT_IDENTIFIER>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>6</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>6</length>
</length_block>
<value_block>
<sid_blocks>
<sid_block>
<warnings>
<warning>Needlessly long format of SID encoding</warning>
</warnings>
<is_first_sid>true</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>81</value_dec>
</sid_block>
<sid_block>
<warnings>
<warning>Needlessly long format of SID encoding</warning>
</warnings>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>1</value_dec>
</sid_block>
</sid_blocks>
<is_hex_only>false</is_hex_only>
<value_dec>2.1.1</value_dec>
</value_block>
</OBJECT_IDENTIFIER>

1
format/asn1/testdata/tc22.ber vendored Normal file
View File

@ -0,0 +1 @@
<10><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0F>

14
format/asn1/testdata/tc22.ber.fqtest vendored Normal file
View File

@ -0,0 +1,14 @@
$ fq -d asn1_ber dv tc22.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc22.ber (asn1_ber) 0x0-0x11.7 (18)
0x00|06 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|06 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|06 |. | tag: "object_identifier" (0x6) 0x0.3-0x0.7 (0.5)
0x00| 10 | . | length: 16 0x1-0x1.7 (1)
| | | value[0:7]: 0x2-0x11.7 (16)
0x00| ff | . | [0]: 6 oid 0x2-0x2.7 (1)
0x00| ff | . | [1]: 15 oid 0x2-0x2.7 (1)
0x00| ff ff ff ff ff ff ff ff ff 0f | .......... | [2]: 18446744073709551503 oid 0x3-0xc.7 (10)
0x00| 85 03 | .. | [3]: 643 oid 0xd-0xe.7 (2)
0x00| 02| .| [4]: 2 oid 0xf-0xf.7 (1)
0x10|02 |. | [5]: 2 oid 0x10-0x10.7 (1)
0x10| 03| | .| | [6]: 3 oid 0x11-0x11.7 (1)

47
format/asn1/testdata/tc22.xml vendored Normal file
View File

@ -0,0 +1,47 @@
<?xml version="1.0"?>
<OBJECT_IDENTIFIER>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>6</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>16</length>
</length_block>
<value_block>
<sid_blocks>
<sid_block>
<warnings>
<warning>Too big SID for decoding, hex only</warning>
</warnings>
<is_first_sid>true</is_first_sid>
<is_hex_only>true</is_hex_only>
<value_hex>7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 0F</value_hex>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>643</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>2</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>2</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>3</value_dec>
</sid_block>
</sid_blocks>
<is_hex_only>true</is_hex_only>
<value_dec>2.{{7F 7F 7F 7F 7F 7F 7F 7F 7F 7F 0F} - 80}.643.2.2.3</value_dec>
</value_block>
</OBJECT_IDENTIFIER>

1
format/asn1/testdata/tc23.ber vendored Normal file
View File

@ -0,0 +1 @@
<><7F><EFBFBD><EFBFBD><EFBFBD>

8
format/asn1/testdata/tc23.ber.fqtest vendored Normal file
View File

@ -0,0 +1,8 @@
$ fq -d asn1_ber d tc23.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc23.ber (asn1_ber)
| | | error: asn1_ber: BitBufRange: failed at position 0 (read size 19 seek pos 0): outside buffer
0x0|06 |. | class: "universal" (0)
0x0|06 |. | form: "primitive" (0)
0x0|06 |. | tag: "object_identifier" (0x6)
0x0| 11 | . | length: 17
0x0| 7f ff ff ff ff ff| | ......| | unknown0: raw bits

17
format/asn1/testdata/tc23.xml vendored Normal file
View File

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<OBJECT_IDENTIFIER>
<error>End of input reached before message was fully decoded</error>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>6</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>17</length>
</length_block>
<value_block>
<error>End of input reached before message was fully decoded</error>
</value_block>
</OBJECT_IDENTIFIER>

1
format/asn1/testdata/tc24.ber vendored Normal file
View File

@ -0,0 +1 @@
Î`†HˆŸO …îåJ…ä¿cÛ/

19
format/asn1/testdata/tc24.ber.fqtest vendored Normal file
View File

@ -0,0 +1,19 @@
$ fq -d asn1_ber dv tc24.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc24.ber (asn1_ber) 0x0-0x16.7 (23)
0x00|06 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x00|06 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x00|06 |. | tag: "object_identifier" (0x6) 0x0.3-0x0.7 (0.5)
0x00| 15 | . | length: 21 0x1-0x1.7 (1)
| | | value[0:11]: 0x2-0x16.7 (21)
0x00| ce | . | [0]: 5 oid 0x2-0x2.7 (1)
0x00| ce | . | [1]: 6 oid 0x2-0x2.7 (1)
0x00| 60 | ` | [2]: 96 oid 0x3-0x3.7 (1)
0x00| 86 48 | .H | [3]: 840 oid 0x4-0x5.7 (2)
0x00| 88 9f 4f | ..O | [4]: 135119 oid 0x6-0x8.7 (3)
0x00| 09 | . | [5]: 9 oid 0x9-0x9.7 (1)
0x00| 02 | . | [6]: 2 oid 0xa-0xa.7 (1)
0x00| 85 ee e5 4a | ...J | [7]: 12301002 oid 0xb-0xe.7 (4)
0x00| 85| .| [8]: 12132323 oid 0xf-0x12.7 (4)
0x10|e4 bf 63 |..c |
0x10| 8b db 2f | ../ | [9]: 191919 oid 0x13-0x15.7 (3)
0x10| 02| | .| | [10]: 2 oid 0x16-0x16.7 (1)

64
format/asn1/testdata/tc24.xml vendored Normal file
View File

@ -0,0 +1,64 @@
<?xml version="1.0"?>
<OBJECT_IDENTIFIER>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>6</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>21</length>
</length_block>
<value_block>
<sid_blocks>
<sid_block>
<is_first_sid>true</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>10080</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>840</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>135119</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>9</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>2</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>12301002</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>12132323</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>191919</value_dec>
</sid_block>
<sid_block>
<is_first_sid>false</is_first_sid>
<is_hex_only>false</is_hex_only>
<value_dec>2</value_dec>
</sid_block>
</sid_blocks>
<is_hex_only>false</is_hex_only>
<value_dec>2.10000.840.135119.9.2.12301002.12132323.191919.2</value_dec>
</value_block>
</OBJECT_IDENTIFIER>

BIN
format/asn1/testdata/tc25.ber vendored Normal file

Binary file not shown.

8
format/asn1/testdata/tc25.ber.fqtest vendored Normal file
View File

@ -0,0 +1,8 @@
$ fq -d asn1_ber dv tc25.ber
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.{}: tc25.ber (asn1_ber) 0x0-0x4.7 (5)
0x0|01 |. | class: "universal" (0) 0x0-0x0.1 (0.2)
0x0|01 |. | form: "primitive" (0) 0x0.2-0x0.2 (0.1)
0x0|01 |. | tag: "boolean" (0x1) 0x0.3-0x0.7 (0.5)
0x0| 03 | . | length: 3 0x1-0x1.7 (1)
0x0| 00 | . | value: false (0) 0x2-0x2.7 (1)
0x0| 00 00| | ..| | unknown0: raw bits 0x3-0x4.7 (2)

20
format/asn1/testdata/tc25.xml vendored Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<BOOLEAN>
<identification_block>
<tag_class>UNIVERSAL</tag_class>
<is_constructed>false</is_constructed>
<value_dec>1</value_dec>
</identification_block>
<length_block>
<is_indefinite_form>false</is_indefinite_form>
<long_form_used>false</long_form_used>
<length>3</length>
</length_block>
<value_block>
<warnings>
<warning>Needlessly long format</warning>
<warning>BOOLEAN value encoded in more then 1 octet</warning>
</warnings>
<value_hex>00 00 00</value_hex>
</value_block>
</BOOLEAN>

Some files were not shown because too many files have changed in this diff Show More