asn1

Reference for ASN.1 notation, BER (Basic Encoding Rules), and DER (Distinguished Encoding Rules). Use when decoding/encoding binary data, debugging ASN.1 structures, or understanding PKCS standards.

8 stars

Best use case

asn1 is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Reference for ASN.1 notation, BER (Basic Encoding Rules), and DER (Distinguished Encoding Rules). Use when decoding/encoding binary data, debugging ASN.1 structures, or understanding PKCS standards.

Teams using asn1 should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/asn1/SKILL.md --create-dirs "https://raw.githubusercontent.com/way-platform/tachograph-go/main/.agents/skills/asn1/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/asn1/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How asn1 Compares

Feature / Agentasn1Standard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Reference for ASN.1 notation, BER (Basic Encoding Rules), and DER (Distinguished Encoding Rules). Use when decoding/encoding binary data, debugging ASN.1 structures, or understanding PKCS standards.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# ASN.1, BER, and DER

This skill provides reference material for Abstract Syntax Notation One (ASN.1) and its encoding rules (BER/DER).

## Quick Reference

### Universal Tags

| Tag (Hex) | Type |
| :--- | :--- |
| `01` | BOOLEAN |
| `02` | INTEGER |
| `03` | BIT STRING |
| `04` | OCTET STRING |
| `05` | NULL |
| `06` | OBJECT IDENTIFIER |
| `10` | SEQUENCE / SEQUENCE OF |
| `11` | SET / SET OF |
| `13` | PrintableString |
| `14` | T61String |
| `16` | IA5String |
| `17` | UTCTime |

### Identifier Octet (First Byte)

Bits 8-7: Class
- `00`: Universal
- `01`: Application
- `10`: Context-specific
- `11`: Private

Bit 6: PC (Primitive/Constructed)
- `0`: Primitive (Value is directly in contents)
- `1`: Constructed (Contents are nested TLV elements)

Bits 5-1: Tag Number (if < 31)

## Detailed Guide

For a comprehensive guide on notation, encoding rules, and specific type handling, read the bundled reference:

`references/guide.md`

### Contents of the Guide:
1.  **Introduction**: Overview of OSI, ASN.1, BER, DER.
2.  **ASN.1 Notation**: Simple types, structured types, tagging.
3.  **BER**: Primitive vs. Constructed, Definite vs. Indefinite length.
4.  **DER**: subset of BER for unique encoding (Canonical).
5.  **Type-Specific Encodings**: Detailed breakdown of how to encode INTEGER, BIT STRING, SEQUENCE, etc.
6.  **Example**: Walkthrough of an X.500 Name encoding.

## Common Operations

### Deciphering a Tag
If you encounter byte `0x30`:
- Binary: `0011 0000`
- Class: `00` (Universal)
- P/C: `1` (Constructed)
- Tag: `10000` (16 -> SEQUENCE)

If you encounter byte `0xA0`:
- Binary: `1010 0000`
- Class: `10` (Context-specific)
- P/C: `1` (Constructed)
- Tag: `00000` (0 -> [0])

### Variable Lengths
- **Short Form**: `0x00` - `0x7F` (0-127 bytes).
- **Long Form**: Bit 8 is 1. Bits 7-1 = number of length bytes following.
  - Example: `0x81 0x80` -> Length is in next 1 byte (`0x81`), value is `0x80` (128).
  - Example: `0x82 0x01 0x00` -> Length is in next 2 bytes (`0x82`), value is `0x0100` (256).

Related Skills

way-magefile

8
from way-platform/tachograph-go

Build tool for Go projects. Use when the user wants to create, edit, or understand Way-specific Magefiles, build targets, or automate Go project tasks.

way-go-style

8
from way-platform/tachograph-go

Guide for writing idiomatic, effective, and standard Go code. Use this skill when writing, refactoring, or reviewing Go code to ensure adherence to established conventions and best practices.

tachograph

8
from way-platform/tachograph-go

specialized knowledge for parsing/marshalling EU tachograph files. Use when needing to understand the .DDD/.V1B file format, TLV/TV protocols, ASN.1 mappings, or EU regulation compliance.

skill-creator

8
from way-platform/tachograph-go

Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.

protobuf

8
from way-platform/tachograph-go

Use when working with Protocol Buffer (.proto) files, buf.yaml, buf.gen.yaml, or buf.lock. Covers proto design, buf CLI, gRPC/Connect services, protovalidate constraints, schema evolution, and troubleshooting lint/breaking errors.

claude-md-improver

8
from way-platform/tachograph-go

Audit and improve CLAUDE.md files in repositories. Use when user asks to check, audit, update, improve, or fix CLAUDE.md files. Scans for all CLAUDE.md files, evaluates quality against templates, outputs quality report, then makes targeted updates. Also use when the user mentions "CLAUDE.md maintenance" or "project memory optimization".

workspace-surface-audit

144923
from affaan-m/everything-claude-code

Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows. Use when the user wants help setting up Claude Code or understanding what capabilities are actually available in their environment.

DevelopmentClaude

ui-demo

144923
from affaan-m/everything-claude-code

Record polished UI demo videos using Playwright. Use when the user asks to create a demo, walkthrough, screen recording, or tutorial video of a web application. Produces WebM videos with visible cursor, natural pacing, and professional feel.

Developer ToolsClaude

token-budget-advisor

144923
from affaan-m/everything-claude-code

Offers the user an informed choice about how much response depth to consume before answering. Use this skill when the user explicitly wants to control response length, depth, or token budget. TRIGGER when: "token budget", "token count", "token usage", "token limit", "response length", "answer depth", "short version", "brief answer", "detailed answer", "exhaustive answer", "respuesta corta vs larga", "cuántos tokens", "ahorrar tokens", "responde al 50%", "dame la versión corta", "quiero controlar cuánto usas", or clear variants where the user is explicitly asking to control answer size or depth. DO NOT TRIGGER when: user has already specified a level in the current session (maintain it), the request is clearly a one-word answer, or "token" refers to auth/session/payment tokens rather than response size.

Productivity & Content CreationClaude

skill-comply

144923
from affaan-m/everything-claude-code

Visualize whether skills, rules, and agent definitions are actually followed — auto-generates scenarios at 3 prompt strictness levels, runs agents, classifies behavioral sequences, and reports compliance rates with full tool call timelines

DevelopmentClaude

santa-method

144923
from affaan-m/everything-claude-code

Multi-agent adversarial verification with convergence loop. Two independent review agents must both pass before output ships.

Quality AssuranceClaude

safety-guard

144923
from affaan-m/everything-claude-code

Use this skill to prevent destructive operations when working on production systems or running agents autonomously.

DevelopmentClaude