legacy-converters.js 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.AsnNullConverter = exports.AsnGeneralizedTimeConverter = exports.AsnUTCTimeConverter = exports.AsnCharacterStringConverter = exports.AsnGeneralStringConverter = exports.AsnVisibleStringConverter = exports.AsnGraphicStringConverter = exports.AsnIA5StringConverter = exports.AsnVideotexStringConverter = exports.AsnTeletexStringConverter = exports.AsnPrintableStringConverter = exports.AsnNumericStringConverter = exports.AsnUniversalStringConverter = exports.AsnBmpStringConverter = exports.AsnUtf8StringConverter = exports.AsnConstructedOctetStringConverter = exports.AsnOctetStringConverter = exports.AsnBooleanConverter = exports.AsnObjectIdentifierConverter = exports.AsnBitStringConverter = exports.AsnIntegerBigIntConverter = exports.AsnIntegerArrayBufferConverter = exports.AsnEnumeratedConverter = exports.AsnIntegerConverter = exports.AsnAnyConverter = void 0;
  4. const asn1js = require("asn1js");
  5. const index_1 = require("./types/index");
  6. const legacy_adapter_1 = require("./legacy-adapter");
  7. exports.AsnAnyConverter = {
  8. fromASN: (value) => value instanceof asn1js.Null ? null : value.valueBeforeDecodeView,
  9. toASN: (value) => {
  10. if (value === null) {
  11. return new asn1js.Null();
  12. }
  13. const schema = asn1js.fromBER(value);
  14. if (schema.result.error) {
  15. throw new Error(schema.result.error);
  16. }
  17. return schema.result;
  18. },
  19. };
  20. exports.AsnIntegerConverter = {
  21. fromASN: (value) => value.valueBlock.valueHexView.byteLength >= 4
  22. ? value.valueBlock.toString()
  23. : value.valueBlock.valueDec,
  24. toASN: (value) => new asn1js.Integer({ value: +value }),
  25. };
  26. exports.AsnEnumeratedConverter = {
  27. fromASN: (value) => value.valueBlock.valueDec,
  28. toASN: (value) => new asn1js.Enumerated({ value }),
  29. };
  30. exports.AsnIntegerArrayBufferConverter = {
  31. fromASN: (value) => value.valueBlock.valueHexView,
  32. toASN: (value) => new asn1js.Integer({ valueHex: value }),
  33. };
  34. exports.AsnIntegerBigIntConverter = {
  35. fromASN: (value) => value.toBigInt(),
  36. toASN: (value) => asn1js.Integer.fromBigInt(value),
  37. };
  38. exports.AsnBitStringConverter = {
  39. fromASN: (value) => value.valueBlock.valueHexView,
  40. toASN: (value) => new asn1js.BitString({ valueHex: value }),
  41. };
  42. exports.AsnObjectIdentifierConverter = {
  43. fromASN: (value) => value.valueBlock.toString(),
  44. toASN: (value) => new asn1js.ObjectIdentifier({ value }),
  45. };
  46. exports.AsnBooleanConverter = {
  47. fromASN: (value) => value.valueBlock.value,
  48. toASN: (value) => new asn1js.Boolean({ value }),
  49. };
  50. exports.AsnOctetStringConverter = {
  51. fromASN: (value) => value.valueBlock.valueHexView,
  52. toASN: (value) => new asn1js.OctetString({ valueHex: value }),
  53. };
  54. exports.AsnConstructedOctetStringConverter = {
  55. fromASN: (value) => new index_1.OctetString(value.getValue()),
  56. toASN: (value) => {
  57. const asnNode = value.toASN();
  58. return (0, legacy_adapter_1.asnNodeToLegacyType)(asnNode);
  59. },
  60. };
  61. function createStringConverter(Asn1Type) {
  62. return {
  63. fromASN: (value) => value.valueBlock.value,
  64. toASN: (value) => new Asn1Type({ value }),
  65. };
  66. }
  67. exports.AsnUtf8StringConverter = createStringConverter(asn1js.Utf8String);
  68. exports.AsnBmpStringConverter = createStringConverter(asn1js.BmpString);
  69. exports.AsnUniversalStringConverter = createStringConverter(asn1js.UniversalString);
  70. exports.AsnNumericStringConverter = createStringConverter(asn1js.NumericString);
  71. exports.AsnPrintableStringConverter = createStringConverter(asn1js.PrintableString);
  72. exports.AsnTeletexStringConverter = createStringConverter(asn1js.TeletexString);
  73. exports.AsnVideotexStringConverter = createStringConverter(asn1js.VideotexString);
  74. exports.AsnIA5StringConverter = createStringConverter(asn1js.IA5String);
  75. exports.AsnGraphicStringConverter = createStringConverter(asn1js.GraphicString);
  76. exports.AsnVisibleStringConverter = createStringConverter(asn1js.VisibleString);
  77. exports.AsnGeneralStringConverter = createStringConverter(asn1js.GeneralString);
  78. exports.AsnCharacterStringConverter = createStringConverter(asn1js.CharacterString);
  79. exports.AsnUTCTimeConverter = {
  80. fromASN: (value) => value.toDate(),
  81. toASN: (value) => new asn1js.UTCTime({ valueDate: value }),
  82. };
  83. exports.AsnGeneralizedTimeConverter = {
  84. fromASN: (value) => value.toDate(),
  85. toASN: (value) => new asn1js.GeneralizedTime({ valueDate: value }),
  86. };
  87. exports.AsnNullConverter = {
  88. fromASN: () => null,
  89. toASN: () => {
  90. return new asn1js.Null();
  91. },
  92. };