"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AsnConvert = void 0; const tslib_1 = require("tslib"); const asn1js = tslib_1.__importStar(require("asn1js")); const bytes_1 = require("@peculiar/utils/bytes"); const parser_1 = require("./parser"); const serializer_1 = require("./serializer"); class AsnConvert { static serialize(obj) { return serializer_1.AsnSerializer.serialize(obj); } static parse(data, target) { return parser_1.AsnParser.parse(data, target); } static toString(data) { const buf = (0, bytes_1.isBufferSource)(data) ? (0, bytes_1.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(); } } exports.AsnConvert = AsnConvert;