Upload via GUI (7543 Dateien)

This commit is contained in:
2026-10-22 07:01:11 +00:00
parent 8c7b2ddf47
commit 8d29040b57
50 changed files with 2925 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
# `@peculiar/asn1-schema`
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/PeculiarVentures/asn1-schema/blob/master/packages/schema/LICENSE)
[![npm version](https://badge.fury.io/js/%40peculiar%2Fasn1-schema.svg)](https://badge.fury.io/js/%40peculiar%2Fasn1-schema)
[![NPM](https://nodei.co/npm/@peculiar/asn1-schema.png)](https://nodei.co/npm/@peculiar/asn1-schema/)
Decorators and helper APIs for declaring ASN.1 schemas in TypeScript.
This is the core package used by the schema modules in this repository. It lets you describe DER structures with decorators and convert them with `AsnConvert`, `AsnParser`, and `AsnSerializer`.
## Installation
```bash
npm install @peculiar/asn1-schema
```
## Overview
Abstract Syntax Notation One (ASN.1) is widely used across X.509, PKCS, CMS, OCSP, and related standards. This package keeps those mappings declarative and type-friendly by attaching schema metadata directly to classes.
## TypeScript Example
```ts
import { AsnConvert, AsnProp, AsnPropTypes, AsnType, AsnTypeTypes } from "@peculiar/asn1-schema";
@AsnType({ type: AsnTypeTypes.Sequence })
class BasicConstraints {
@AsnProp({ type: AsnPropTypes.Boolean, defaultValue: false })
public cA = false;
}
const basicConstraints = new BasicConstraints();
basicConstraints.cA = true;
const encoded = AsnConvert.serialize(basicConstraints);
const decoded = AsnConvert.parse(encoded, BasicConstraints);
console.log(decoded.cA);
```
## Related Links
- [Decorators overview](https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841)
- [ASN.1 playground](http://lapo.it/asn1js/)