convert.js 756 B

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