UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

88 lines (86 loc) • 3.4 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var index_native_exports = {}; __export(index_native_exports, { AESEncryptionKey: () => AESEncryptionKey, AESSealedData: () => AESSealedData, Crypto: () => Crypto, installCrypto: () => installCrypto }); module.exports = __toCommonJS(index_native_exports); var import_aes = require("./aes.native.js"); var import_digest = require("./digest.native.js"); var import_digest_api = require("./digest-api.native.js"); var import_react_native_nitro_modules = require("react-native-nitro-modules"); var import_random = require("./random.native.js"); var hybrid; function native() { return hybrid !== null && hybrid !== void 0 ? hybrid : hybrid = import_react_native_nitro_modules.NitroModules.createHybridObject("OneCrypto"); } var nativeSource = { fill(bytes) { native().fillRandomBytes(bytes.buffer, bytes.byteOffset, bytes.byteLength); }, randomUUID: function randomUUID() { return native().randomUUID(); } }; function required() { if (!import_react_native_nitro_modules.NitroModules.hasHybridObject("OneCrypto")) { throw new Error("Crypto needs a native build that includes one"); } return native(); } var aesEngine = { async seal(key, iv, plaintext, additionalData, tagLength) { var sealed = await required().aesEncrypt(key.buffer, iv.buffer, plaintext.buffer, additionalData === null || additionalData === void 0 ? void 0 : additionalData.buffer, tagLength); return new Uint8Array(sealed); }, async open(key, iv, ciphertextWithTag, additionalData, tagLength) { var opened = await required().aesDecrypt(key.buffer, iv.buffer, ciphertextWithTag.buffer, additionalData === null || additionalData === void 0 ? void 0 : additionalData.buffer, tagLength); return new Uint8Array(opened); }, random(bytes) { required().fillRandomBytes(bytes.buffer, bytes.byteOffset, bytes.byteLength); } }; var aes = (0, import_aes.createAesApi)(aesEngine); var digestApi = (0, import_digest_api.createDigestApi)(function(algorithm, buffer, offset, length) { return required().digest(algorithm, buffer, offset, length); }); var AESEncryptionKey = aes.AESEncryptionKey; var AESSealedData = aes.AESSealedData; var Crypto = Object.freeze({ digest: digestApi.digest, digestString: digestApi.digestString, aesEncrypt: aes.aesEncrypt, aesDecrypt: aes.aesDecrypt }); function installCrypto() { if (!import_react_native_nitro_modules.NitroModules.hasHybridObject("OneCrypto")) { return; } (0, import_random.installCryptoPolyfill)(nativeSource); (0, import_digest.installDigestPolyfill)(function(algorithm, buffer, offset, length) { return native().digest(algorithm, buffer, offset, length); }); }