| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import * as asn1js from "asn1js";
- import { OctetString } from "./types/index";
- import { asnNodeToLegacyType } from "./legacy-adapter";
- export const AsnAnyConverter = {
- fromASN: (value) => value instanceof asn1js.Null ? null : value.valueBeforeDecodeView,
- toASN: (value) => {
- if (value === null) {
- return new asn1js.Null();
- }
- const schema = asn1js.fromBER(value);
- if (schema.result.error) {
- throw new Error(schema.result.error);
- }
- return schema.result;
- },
- };
- export const AsnIntegerConverter = {
- fromASN: (value) => value.valueBlock.valueHexView.byteLength >= 4
- ? value.valueBlock.toString()
- : value.valueBlock.valueDec,
- toASN: (value) => new asn1js.Integer({ value: +value }),
- };
- export const AsnEnumeratedConverter = {
- fromASN: (value) => value.valueBlock.valueDec,
- toASN: (value) => new asn1js.Enumerated({ value }),
- };
- export const AsnIntegerArrayBufferConverter = {
- fromASN: (value) => value.valueBlock.valueHexView,
- toASN: (value) => new asn1js.Integer({ valueHex: value }),
- };
- export const AsnIntegerBigIntConverter = {
- fromASN: (value) => value.toBigInt(),
- toASN: (value) => asn1js.Integer.fromBigInt(value),
- };
- export const AsnBitStringConverter = {
- fromASN: (value) => value.valueBlock.valueHexView,
- toASN: (value) => new asn1js.BitString({ valueHex: value }),
- };
- export const AsnObjectIdentifierConverter = {
- fromASN: (value) => value.valueBlock.toString(),
- toASN: (value) => new asn1js.ObjectIdentifier({ value }),
- };
- export const AsnBooleanConverter = {
- fromASN: (value) => value.valueBlock.value,
- toASN: (value) => new asn1js.Boolean({ value }),
- };
- export const AsnOctetStringConverter = {
- fromASN: (value) => value.valueBlock.valueHexView,
- toASN: (value) => new asn1js.OctetString({ valueHex: value }),
- };
- export const AsnConstructedOctetStringConverter = {
- fromASN: (value) => new OctetString(value.getValue()),
- toASN: (value) => {
- const asnNode = value.toASN();
- return asnNodeToLegacyType(asnNode);
- },
- };
- function createStringConverter(Asn1Type) {
- return {
- fromASN: (value) => value.valueBlock.value,
- toASN: (value) => new Asn1Type({ value }),
- };
- }
- export const AsnUtf8StringConverter = createStringConverter(asn1js.Utf8String);
- export const AsnBmpStringConverter = createStringConverter(asn1js.BmpString);
- export const AsnUniversalStringConverter = createStringConverter(asn1js.UniversalString);
- export const AsnNumericStringConverter = createStringConverter(asn1js.NumericString);
- export const AsnPrintableStringConverter = createStringConverter(asn1js.PrintableString);
- export const AsnTeletexStringConverter = createStringConverter(asn1js.TeletexString);
- export const AsnVideotexStringConverter = createStringConverter(asn1js.VideotexString);
- export const AsnIA5StringConverter = createStringConverter(asn1js.IA5String);
- export const AsnGraphicStringConverter = createStringConverter(asn1js.GraphicString);
- export const AsnVisibleStringConverter = createStringConverter(asn1js.VisibleString);
- export const AsnGeneralStringConverter = createStringConverter(asn1js.GeneralString);
- export const AsnCharacterStringConverter = createStringConverter(asn1js.CharacterString);
- export const AsnUTCTimeConverter = {
- fromASN: (value) => value.toDate(),
- toASN: (value) => new asn1js.UTCTime({ valueDate: value }),
- };
- export const AsnGeneralizedTimeConverter = {
- fromASN: (value) => value.toDate(),
- toASN: (value) => new asn1js.GeneralizedTime({ valueDate: value }),
- };
- export const AsnNullConverter = {
- fromASN: () => null,
- toASN: () => {
- return new asn1js.Null();
- },
- };
|