Upload via GUI (7543 Dateien)
This commit is contained in:
+45
@@ -0,0 +1,45 @@
|
||||
# `@peculiar/asn1-schema`
|
||||
|
||||
[](https://github.com/PeculiarVentures/asn1-schema/blob/master/packages/schema/LICENSE)
|
||||
[](https://badge.fury.io/js/%40peculiar%2Fasn1-schema)
|
||||
|
||||
[](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/)
|
||||
Reference in New Issue
Block a user