@hazae41/kdbx
Version:
Rust-like KeePass (KDBX 4) file format for TypeScript
1 lines • 2.6 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../../../src/mods/kdbx/hmac/index.ts"],"sourcesContent":["import { Opaque, Writable } from \"@hazae41/binary\"\nimport { Cursor } from \"@hazae41/cursor\"\n\nexport class PreHmacKey {\n\n constructor(\n readonly index: bigint,\n readonly major: Opaque<64>,\n ) { }\n\n sizeOrThrow() {\n return 8 + this.major.bytes.length\n }\n\n writeOrThrow(cursor: Cursor) {\n cursor.writeUint64OrThrow(this.index, true)\n cursor.writeOrThrow(this.major.bytes)\n }\n\n async digestOrThrow() {\n const bytes = Writable.writeToBytesOrThrow(this)\n\n const digest = new Uint8Array(await crypto.subtle.digest(\"SHA-512\", bytes))\n\n const key = await crypto.subtle.importKey(\"raw\", digest, { name: \"HMAC\", hash: \"SHA-256\" }, true, [\"sign\", \"verify\"])\n\n return new HmacKey(key)\n }\n\n}\n\nexport class HmacKey {\n\n constructor(\n readonly key: CryptoKey\n ) { }\n\n async signOrThrow(data: Uint8Array) {\n return new Uint8Array(await crypto.subtle.sign(\"HMAC\", this.key, data))\n }\n\n async verifyOrThrow(data: Uint8Array, signature: Uint8Array) {\n const result = await crypto.subtle.verify(\"HMAC\", this.key, signature, data)\n\n if (result !== true)\n throw new Error()\n\n return\n }\n\n}"],"names":["Writable"],"mappings":";;;;MAGa,UAAU,CAAA;AAGV,IAAA,KAAA;AACA,IAAA,KAAA;IAFX,WAAA,CACW,KAAa,EACb,KAAiB,EAAA;QADjB,IAAA,CAAA,KAAK,GAAL,KAAK;QACL,IAAA,CAAA,KAAK,GAAL,KAAK;IACZ;IAEJ,WAAW,GAAA;QACT,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;IACpC;AAEA,IAAA,YAAY,CAAC,MAAc,EAAA;QACzB,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IACvC;AAEA,IAAA,MAAM,aAAa,GAAA;QACjB,MAAM,KAAK,GAAGA,eAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC;AAEhD,QAAA,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAE3E,QAAA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAErH,QAAA,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC;IACzB;AAED;MAEY,OAAO,CAAA;AAGP,IAAA,GAAA;AADX,IAAA,WAAA,CACW,GAAc,EAAA;QAAd,IAAA,CAAA,GAAG,GAAH,GAAG;IACV;IAEJ,MAAM,WAAW,CAAC,IAAgB,EAAA;AAChC,QAAA,OAAO,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACzE;AAEA,IAAA,MAAM,aAAa,CAAC,IAAgB,EAAE,SAAqB,EAAA;AACzD,QAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC;QAE5E,IAAI,MAAM,KAAK,IAAI;YACjB,MAAM,IAAI,KAAK,EAAE;QAEnB;IACF;AAED;;;;;"}