convert.js 756 B

1234567891011121314151617181920
  1. import * as asn1js from "asn1js";
  2. import { isBufferSource, toArrayBuffer } from "@peculiar/utils";
  3. import { AsnParser } from "./parser.js";
  4. import { AsnSerializer } from "./serializer.js";
  5. export class AsnConvert {
  6. static serialize(obj) {
  7. return AsnSerializer.serialize(obj);
  8. }
  9. static parse(data, target, options) {
  10. return AsnParser.parse(data, target, options);
  11. }
  12. static toString(data, options) {
  13. const buf = isBufferSource(data) ? toArrayBuffer(data) : AsnConvert.serialize(data);
  14. const asn = asn1js.fromBER(buf, options?.berOptions);
  15. if (asn.offset === -1) {
  16. throw new Error(`Cannot decode ASN.1 data. ${asn.result.error}`);
  17. }
  18. return asn.result.toString();
  19. }
  20. }