22 lines
787 B
JavaScript
22 lines
787 B
JavaScript
import * as asn1js from "asn1js";
|
|
import { isBufferSource, toArrayBuffer, } from "@peculiar/utils/bytes";
|
|
import { AsnParser } from "./parser.js";
|
|
import { AsnSerializer } from "./serializer.js";
|
|
export class AsnConvert {
|
|
static serialize(obj) {
|
|
return AsnSerializer.serialize(obj);
|
|
}
|
|
static parse(data, target, options) {
|
|
return AsnParser.parse(data, target, options);
|
|
}
|
|
static toString(data, options) {
|
|
const buf = isBufferSource(data)
|
|
? toArrayBuffer(data)
|
|
: AsnConvert.serialize(data);
|
|
const asn = asn1js.fromBER(buf, options?.berOptions);
|
|
if (asn.offset === -1) {
|
|
throw new Error(`Cannot decode ASN.1 data. ${asn.result.error}`);
|
|
}
|
|
return asn.result.toString();
|
|
}
|
|
}
|