{"version":3,"file":"public.cjs","sources":["../../../../../src/mods/keys/rsa/public.ts"],"sourcesContent":["import { DERCursor, DERTriplet, Integer, Sequence } from \"@hazae41/asn1\";\nimport { OIDs } from \"mods/oids/oids.js\";\n\nexport interface RsaPublicKeyJSON {\n  readonly publicExponent: string,\n  readonly modulus: string\n}\n\nexport class RsaPublicKey {\n\n  static oid = OIDs.keys.rsaEncryption\n\n  constructor(\n    readonly publicExponent: Integer,\n    readonly modulus: Integer\n  ) { }\n\n  toDER(): DERTriplet {\n    return Sequence.DER.create(undefined, [\n      this.publicExponent,\n      this.modulus\n    ] as const).toDER()\n  }\n\n  toJSON(): RsaPublicKeyJSON {\n    const publicExponent = this.publicExponent.value.toString(16)\n    const modulus = this.modulus.value.toString(16)\n\n    return { publicExponent, modulus }\n  }\n\n  static fromJSON(json: RsaPublicKeyJSON) {\n    const publicExponent = Integer.create(undefined, BigInt(\"0x\" + json.publicExponent))\n    const modulus = Integer.create(undefined, BigInt(\"0x\" + json.modulus))\n\n    return new this(publicExponent, modulus)\n  }\n\n  static resolveOrThrow(parent: DERCursor) {\n    const cursor = parent.subAsOrThrow(Sequence.DER)\n    const publicExponent = cursor.readAsOrThrow(Integer.DER)\n    const modulus = cursor.readAsOrThrow(Integer.DER)\n\n    return new RsaPublicKey(publicExponent, modulus)\n  }\n\n}"],"names":["OIDs","Sequence","Integer"],"mappings":";;;;;MAQa,YAAY,CAAA;AAKZ,IAAA,cAAA;AACA,IAAA,OAAA;IAJX,OAAO,GAAG,GAAGA,SAAI,CAAC,IAAI,CAAC,aAAa;IAEpC,WAAA,CACW,cAAuB,EACvB,OAAgB,EAAA;QADhB,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,OAAO,GAAP,OAAO;IACd;IAEJ,KAAK,GAAA;AACH,QAAA,OAAOC,aAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc;AACnB,YAAA,IAAI,CAAC;SACG,CAAC,CAAC,KAAK,EAAE;IACrB;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAE/C,QAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE;IACpC;IAEA,OAAO,QAAQ,CAAC,IAAsB,EAAA;AACpC,QAAA,MAAM,cAAc,GAAGC,YAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;AACpF,QAAA,MAAM,OAAO,GAAGA,YAAO,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAEtE,QAAA,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC1C;IAEA,OAAO,cAAc,CAAC,MAAiB,EAAA;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAACD,aAAQ,CAAC,GAAG,CAAC;QAChD,MAAM,cAAc,GAAG,MAAM,CAAC,aAAa,CAACC,YAAO,CAAC,GAAG,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAACA,YAAO,CAAC,GAAG,CAAC;AAEjD,QAAA,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC;IAClD;;;;;"}