UNPKG

asn1-ts

Version:

ASN.1 encoding and decoding, including BER, CER, and DER.

93 lines (92 loc) 3.6 kB
import ASN1Element from "./asn1.mjs"; import * as errors from "./errors.mjs"; import { ASN1Construction } from "./values.mjs"; import encodeInteger from "./codecs/x690/encoders/encodeInteger.mjs"; import decodeInteger from "./codecs/x690/decoders/decodeInteger.mjs"; import encodeObjectIdentifier from "./codecs/x690/encoders/encodeObjectIdentifier.mjs"; import decodeObjectIdentifier from "./codecs/x690/decoders/decodeObjectIdentifier.mjs"; import encodeRelativeObjectIdentifier from "./codecs/x690/encoders/encodeRelativeObjectIdentifier.mjs"; import decodeRelativeObjectIdentifier from "./codecs/x690/decoders/decodeRelativeObjectIdentifier.mjs"; import encodeTime from "./codecs/x690/encoders/encodeTime.mjs"; import decodeTime from "./codecs/x690/decoders/decodeTime.mjs"; import encodeDate from "./codecs/x690/encoders/encodeDate.mjs"; import decodeDate from "./codecs/x690/decoders/decodeDate.mjs"; import encodeTimeOfDay from "./codecs/x690/encoders/encodeTimeOfDay.mjs"; import decodeTimeOfDay from "./codecs/x690/decoders/decodeTimeOfDay.mjs"; import encodeDateTime from "./codecs/x690/encoders/encodeDateTime.mjs"; import decodeDateTime from "./codecs/x690/decoders/decodeDateTime.mjs"; import encodeOIDIRI from "./codecs/x690/encoders/encodeOIDIRI.mjs"; import decodeOIDIRI from "./codecs/x690/decoders/decodeOIDIRI.mjs"; import encodeRelativeOIDIRI from "./codecs/x690/encoders/encodeRelativeOIDIRI.mjs"; import decodeRelativeOIDIRI from "./codecs/x690/decoders/decodeRelativeOIDIRI.mjs"; export default class X690Element extends ASN1Element { set integer(value) { this.value = encodeInteger(value); } get integer() { if (this.construction !== ASN1Construction.primitive) { throw new errors.ASN1ConstructionError("INTEGER cannot be constructed.", this); } return decodeInteger(this.value); } set objectIdentifier(value) { this.value = encodeObjectIdentifier(value); } get objectIdentifier() { if (this.construction !== ASN1Construction.primitive) { throw new errors.ASN1ConstructionError("OBJECT IDENTIFIER cannot be constructed.", this); } return decodeObjectIdentifier(this.value); } set enumerated(value) { this.integer = value; } get enumerated() { return Number(this.integer); } set relativeObjectIdentifier(value) { this.value = encodeRelativeObjectIdentifier(value); } get relativeObjectIdentifier() { if (this.construction !== ASN1Construction.primitive) { throw new errors.ASN1ConstructionError("Relative OID cannot be constructed.", this); } return decodeRelativeObjectIdentifier(this.value); } set time(value) { this.value = encodeTime(value); } get time() { return decodeTime(this.value); } set date(value) { this.value = encodeDate(value); } get date() { return decodeDate(this.value); } set timeOfDay(value) { this.value = encodeTimeOfDay(value); } get timeOfDay() { return decodeTimeOfDay(this.value); } set dateTime(value) { this.value = encodeDateTime(value); } get dateTime() { return decodeDateTime(this.value); } set oidIRI(value) { this.value = encodeOIDIRI(value); } get oidIRI() { return decodeOIDIRI(this.value); } set relativeOIDIRI(value) { this.value = encodeRelativeOIDIRI(value); } get relativeOIDIRI() { return decodeRelativeOIDIRI(this.value); } }