@hazae41/kdbx
Version:
Rust-like KeePass (KDBX 4) file format for TypeScript
1 lines • 6.75 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../../../../../src/mods/kdbx/headers/inner/cipher/index.ts"],"sourcesContent":["import { ChaCha20Poly1305 } from \"@hazae41/chacha20poly1305\"\nimport { Cursor } from \"@hazae41/cursor\"\n\nexport type Cipher =\n | typeof Cipher.ArcFourVariant\n | typeof Cipher.Salsa20\n | typeof Cipher.ChaCha20\n\nexport namespace Cipher {\n\n export class ArcFourVariant {\n constructor() { }\n }\n\n export namespace ArcFourVariant {\n\n export const type = 0x01\n\n export function cloneOrThrow() {\n return ArcFourVariant\n }\n\n export function sizeOrThrow() {\n return 4\n }\n\n export function writeOrThrow(cursor: Cursor) {\n cursor.writeUint32OrThrow(type, true)\n }\n\n export async function initOrThrow(seed: Uint8Array): Promise<never> {\n throw new Error(\"ArcFourVariant is not implemented yet\")\n }\n\n }\n\n export class Salsa20 {\n constructor(\n readonly key: Uint8Array,\n readonly nonce: Uint8Array,\n ) { }\n }\n\n export namespace Salsa20 {\n\n export const type = 0x02\n\n export function cloneOrThrow() {\n return Salsa20\n }\n\n export function sizeOrThrow() {\n return 4\n }\n\n export function writeOrThrow(cursor: Cursor) {\n cursor.writeUint32OrThrow(type, true)\n }\n\n export async function initOrThrow(seed: Uint8Array): Promise<never> {\n throw new Error(\"Salsa20 is not implemented yet\")\n }\n\n }\n\n export class ChaCha20 {\n\n constructor(\n readonly cipher: ChaCha20Poly1305.Abstract.ChaCha20Cipher,\n ) { }\n\n [Symbol.dispose]() {\n this.cipher[Symbol.dispose]()\n }\n\n applyOrThrow(data: Uint8Array) {\n const { Memory } = ChaCha20Poly1305.get().getOrThrow()\n\n const memory = Memory.importOrThrow(data)\n\n this.cipher.applyOrThrow(memory)\n\n return memory\n }\n\n }\n\n export namespace ChaCha20 {\n\n export const type = 0x03\n\n export function cloneOrThrow() {\n return ChaCha20\n }\n\n export function sizeOrThrow() {\n return 4\n }\n\n export function writeOrThrow(cursor: Cursor) {\n cursor.writeUint32OrThrow(type, true)\n }\n\n export async function initOrThrow(seed: Uint8Array): Promise<ChaCha20> {\n const { Memory, ChaCha20Cipher } = ChaCha20Poly1305.get().getOrThrow()\n\n const hashed = new Uint8Array(await crypto.subtle.digest(\"SHA-512\", seed))\n const cursor = new Cursor(hashed)\n\n using key = Memory.importOrThrow(cursor.readOrThrow(32))\n using nonce = Memory.importOrThrow(cursor.readOrThrow(12))\n\n const cipher = ChaCha20Cipher.importOrThrow(key, nonce)\n\n return new ChaCha20(cipher)\n }\n\n }\n\n}\n\nexport namespace Cipher {\n\n export function readOrThrow(cursor: Cursor) {\n const value = cursor.readUint32OrThrow(true)\n\n if (value === Cipher.ArcFourVariant.type)\n return Cipher.ArcFourVariant\n if (value === Cipher.Salsa20.type)\n return Cipher.Salsa20\n if (value === Cipher.ChaCha20.type)\n return Cipher.ChaCha20\n\n throw new Error()\n }\n\n}"],"names":["Cipher","ChaCha20Poly1305","cursor","Cursor","__addDisposableResource"],"mappings":"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"}