one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 3.13 kB
Source Map (JSON)
{"version":3,"file":"web.js","names":[],"sources":["esm/platform/crypto/web.js"],"sourcesContent":["function subtle(verb) {\n const found = globalThis.crypto?.subtle;\n if (!found) {\n throw new Error(`${verb} needs a browser with WebCrypto or a native build that includes one`);\n }\n return found;\n}\nconst webDigestSource = async (algorithm, buffer, offset, length) => {\n if (algorithm === \"MD5\") {\n throw new Error(\"Crypto.digest: MD5 needs an iOS or Android build\");\n }\n return subtle(\"Crypto.digest\").digest(algorithm, new Uint8Array(buffer, offset, length));\n};\nasync function importKey(raw) {\n return subtle(\"Crypto.aesEncrypt\").importKey(\"raw\", raw, \"AES-GCM\", false, [\n \"encrypt\",\n \"decrypt\"\n ]);\n}\nconst webAesEngine = {\n async seal(key, iv, plaintext, additionalData, tagLength) {\n const sealed = await subtle(\"Crypto.aesEncrypt\").encrypt(\n {\n name: \"AES-GCM\",\n iv,\n tagLength: tagLength * 8,\n ...additionalData ? { additionalData } : {}\n },\n await importKey(key),\n plaintext\n );\n return new Uint8Array(sealed);\n },\n async open(key, iv, ciphertextWithTag, additionalData, tagLength) {\n try {\n const opened = await subtle(\"Crypto.aesDecrypt\").decrypt(\n {\n name: \"AES-GCM\",\n iv,\n tagLength: tagLength * 8,\n ...additionalData ? { additionalData } : {}\n },\n await importKey(key),\n ciphertextWithTag\n );\n return new Uint8Array(opened);\n } catch {\n throw new Error(\"Crypto.aesDecrypt: authentication failed\");\n }\n },\n random(bytes) {\n const getRandomValues = globalThis.crypto?.getRandomValues;\n if (typeof getRandomValues !== \"function\") {\n throw new Error(\"secure random: web crypto is unavailable in this browser.\");\n }\n getRandomValues.call(globalThis.crypto, bytes);\n }\n};\nexport {\n webAesEngine,\n webDigestSource\n};\n//# sourceMappingURL=web.js.map\n"],"mappings":";AAAA,SAAS,OAAO,MAAM;CACpB,MAAM,QAAQ,WAAW,QAAQ;CACjC,IAAI,CAAC,OAAO;EACV,MAAM,IAAI,MAAM,GAAG,KAAK,oEAAoE;CAC9F;CACA,OAAO;AACT;AACA,MAAM,kBAAkB,OAAO,WAAW,QAAQ,QAAQ,WAAW;CACnE,IAAI,cAAc,OAAO;EACvB,MAAM,IAAI,MAAM,kDAAkD;CACpE;CACA,OAAO,OAAO,eAAe,CAAC,CAAC,OAAO,WAAW,IAAI,WAAW,QAAQ,QAAQ,MAAM,CAAC;AACzF;AACA,eAAe,UAAU,KAAK;CAC5B,OAAO,OAAO,mBAAmB,CAAC,CAAC,UAAU,OAAO,KAAK,WAAW,OAAO,CACzE,WACA,SACF,CAAC;AACH;AACA,MAAM,eAAe;CACnB,MAAM,KAAK,KAAK,IAAI,WAAW,gBAAgB,WAAW;EACxD,MAAM,SAAS,MAAM,OAAO,mBAAmB,CAAC,CAAC,QAC/C;GACE,MAAM;GACN;GACA,WAAW,YAAY;GACvB,GAAG,iBAAiB,EAAE,eAAe,IAAI,CAAC;EAC5C,GACA,MAAM,UAAU,GAAG,GACnB,SACF;EACA,OAAO,IAAI,WAAW,MAAM;CAC9B;CACA,MAAM,KAAK,KAAK,IAAI,mBAAmB,gBAAgB,WAAW;EAChE,IAAI;GACF,MAAM,SAAS,MAAM,OAAO,mBAAmB,CAAC,CAAC,QAC/C;IACE,MAAM;IACN;IACA,WAAW,YAAY;IACvB,GAAG,iBAAiB,EAAE,eAAe,IAAI,CAAC;GAC5C,GACA,MAAM,UAAU,GAAG,GACnB,iBACF;GACA,OAAO,IAAI,WAAW,MAAM;EAC9B,QAAQ;GACN,MAAM,IAAI,MAAM,0CAA0C;EAC5D;CACF;CACA,OAAO,OAAO;EACZ,MAAM,kBAAkB,WAAW,QAAQ;EAC3C,IAAI,OAAO,oBAAoB,YAAY;GACzC,MAAM,IAAI,MAAM,2DAA2D;EAC7E;EACA,gBAAgB,KAAK,WAAW,QAAQ,KAAK;CAC/C;AACF"}