asn1-ts
Version:
ASN.1 encoding and decoding, including BER, CER, and DER.
93 lines (92 loc) • 3.6 kB
JavaScript
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);
}
}