UNPKG

@hazae41/glacier

Version:

Yet another React data (re)fetching library

1 lines 3.13 kB
{"version":3,"file":"gcm.mjs","sources":["../../../../../../../src/mods/coders/crypto/aes/gcm.ts"],"sourcesContent":["import { Base64 } from \"@hazae41/base64\";\nimport { Bytes } from \"@hazae41/bytes\";\nimport { AsyncBicoder } from \"mods/coders/coder.js\";\n\nexport class AesGcmBicoder implements AsyncBicoder<string, string> {\n\n constructor(\n readonly key: CryptoKey\n ) { }\n\n async encryptOrThrow(plain: Uint8Array, iv: Uint8Array): Promise<Uint8Array> {\n return new Uint8Array(await crypto.subtle.encrypt({ name: \"AES-GCM\", iv }, this.key, plain))\n }\n\n async encodeOrThrow(input: string): Promise<string> {\n const ivBytes = Bytes.random(12)\n const ivBase64 = Base64.get().getOrThrow().encodePaddedOrThrow(ivBytes)\n\n const plainBytes = Bytes.fromUtf8(input)\n\n const cipherBytes = await this.encryptOrThrow(plainBytes, ivBytes)\n const cipherBase64 = Base64.get().getOrThrow().encodePaddedOrThrow(cipherBytes)\n\n return `${ivBase64}.${cipherBase64}`\n }\n\n async decryptOrThrow(cipher: Uint8Array, iv: Uint8Array): Promise<Uint8Array> {\n return new Uint8Array(await crypto.subtle.decrypt({ name: \"AES-GCM\", iv }, this.key, cipher))\n }\n\n async decodeOrThrow(output: string): Promise<string> {\n const [ivBase64, cipherBase64] = output.split(\".\")\n\n using ivMemory = Base64.get().getOrThrow().decodePaddedOrThrow(ivBase64)\n using cipherMemory = Base64.get().getOrThrow().decodePaddedOrThrow(cipherBase64)\n\n const plainBytes = await this.decryptOrThrow(cipherMemory.bytes, ivMemory.bytes)\n\n return Bytes.toUtf8(plainBytes)\n }\n\n}"],"names":[],"mappings":";;;;MAIa,aAAa,CAAA;AAGb,IAAA,GAAA,CAAA;AADX,IAAA,WAAA,CACW,GAAc,EAAA;QAAd,IAAG,CAAA,GAAA,GAAH,GAAG,CAAW;KACpB;AAEL,IAAA,MAAM,cAAc,CAAC,KAAiB,EAAE,EAAc,EAAA;QACpD,OAAO,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;KAC7F;IAED,MAAM,aAAa,CAAC,KAAa,EAAA;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAChC,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAEvE,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAExC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAClE,QAAA,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAA;AAE/E,QAAA,OAAO,CAAG,EAAA,QAAQ,CAAI,CAAA,EAAA,YAAY,EAAE,CAAA;KACrC;AAED,IAAA,MAAM,cAAc,CAAC,MAAkB,EAAE,EAAc,EAAA;QACrD,OAAO,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;KAC9F;IAED,MAAM,aAAa,CAAC,MAAc,EAAA;;;AAChC,YAAA,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAElD,YAAA,MAAM,QAAQ,GAAA,uBAAA,CAAA,KAAA,EAAG,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAA,CAAA;AACxE,YAAA,MAAM,YAAY,GAAA,uBAAA,CAAA,KAAA,EAAG,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAA,CAAA;AAEhF,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEhF,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;;;;;;;;;AAChC,KAAA;AAEF;;;;"}