@peculiar/asn1-schema
Version:
Decorators for ASN.1 schemas building
23 lines (22 loc) • 756 B
JavaScript
import * as asn1js from "asn1js";
import { BufferSourceConverter } from "pvtsutils";
import { AsnParser } from "./parser";
import { AsnSerializer } from "./serializer";
export class AsnConvert {
static serialize(obj) {
return AsnSerializer.serialize(obj);
}
static parse(data, target) {
return AsnParser.parse(data, target);
}
static toString(data) {
const buf = BufferSourceConverter.isBufferSource(data)
? BufferSourceConverter.toArrayBuffer(data)
: AsnConvert.serialize(data);
const asn = asn1js.fromBER(buf);
if (asn.offset === -1) {
throw new Error(`Cannot decode ASN.1 data. ${asn.result.error}`);
}
return asn.result.toString();
}
}