react-native-quick-crypto
Version:
A fast implementation of Node's `crypto` module written in C/C++ JSI
338 lines (329 loc) • 11 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {
install: true,
Buffer: true,
Certificate: true,
X509Certificate: true,
getCurves: true,
constants: true,
subtle: true,
isCryptoKeyPair: true
};
Object.defineProperty(exports, "Buffer", {
enumerable: true,
get: function () {
return _reactNativeBuffer.Buffer;
}
});
Object.defineProperty(exports, "Certificate", {
enumerable: true,
get: function () {
return _certificate.Certificate;
}
});
Object.defineProperty(exports, "X509Certificate", {
enumerable: true,
get: function () {
return _x509certificate.X509Certificate;
}
});
Object.defineProperty(exports, "constants", {
enumerable: true,
get: function () {
return _constants.constants;
}
});
exports.default = void 0;
Object.defineProperty(exports, "getCurves", {
enumerable: true,
get: function () {
return _ec.getCurves;
}
});
exports.install = void 0;
Object.defineProperty(exports, "isCryptoKeyPair", {
enumerable: true,
get: function () {
return subtle.isCryptoKeyPair;
}
});
Object.defineProperty(exports, "subtle", {
enumerable: true,
get: function () {
return subtle.subtle;
}
});
var _reactNativeBuffer = require("@craftzdog/react-native-buffer");
var _reactNativeQuickBase = require("react-native-quick-base64");
var argon2Module = _interopRequireWildcard(require("./argon2"));
Object.keys(argon2Module).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === argon2Module[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return argon2Module[key];
}
});
});
var keys = _interopRequireWildcard(require("./keys"));
Object.keys(keys).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === keys[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return keys[key];
}
});
});
var blake3 = _interopRequireWildcard(require("./blake3"));
Object.keys(blake3).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === blake3[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return blake3[key];
}
});
});
var cipher = _interopRequireWildcard(require("./cipher"));
Object.keys(cipher).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === cipher[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return cipher[key];
}
});
});
var ed = _interopRequireWildcard(require("./ed"));
Object.keys(ed).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === ed[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return ed[key];
}
});
});
var _hash = require("./hash");
Object.keys(_hash).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _hash[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _hash[key];
}
});
});
var _hmac = require("./hmac");
Object.keys(_hmac).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _hmac[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _hmac[key];
}
});
});
var hkdf = _interopRequireWildcard(require("./hkdf"));
Object.keys(hkdf).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === hkdf[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return hkdf[key];
}
});
});
var pbkdf2 = _interopRequireWildcard(require("./pbkdf2"));
Object.keys(pbkdf2).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === pbkdf2[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return pbkdf2[key];
}
});
});
var prime = _interopRequireWildcard(require("./prime"));
Object.keys(prime).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === prime[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return prime[key];
}
});
});
var scrypt = _interopRequireWildcard(require("./scrypt"));
Object.keys(scrypt).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === scrypt[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return scrypt[key];
}
});
});
var random = _interopRequireWildcard(require("./random"));
Object.keys(random).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === random[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return random[key];
}
});
});
var ecdh = _interopRequireWildcard(require("./ecdh"));
Object.keys(ecdh).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === ecdh[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return ecdh[key];
}
});
});
var dh = _interopRequireWildcard(require("./diffie-hellman"));
Object.keys(dh).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === dh[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return dh[key];
}
});
});
var mlkem = _interopRequireWildcard(require("./mlkem"));
Object.keys(mlkem).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === mlkem[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return mlkem[key];
}
});
});
var _certificate = require("./certificate");
var _x509certificate = require("./x509certificate");
var _ec = require("./ec");
var _constants = require("./constants");
var utils = _interopRequireWildcard(require("./utils"));
Object.keys(utils).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === utils[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return utils[key];
}
});
});
var subtle = _interopRequireWildcard(require("./subtle"));
Object.keys(subtle).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === subtle[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return subtle[key];
}
});
});
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
// polyfill imports
// API imports
// utils import
/**
* Loosely matches Node.js {crypto} with some unimplemented functionality.
* See `docs/implementation-coverage.md` for status.
*/
const QuickCrypto = {
...argon2Module,
...keys,
...blake3,
...cipher,
...ed,
..._hash.hashExports,
..._hmac.hmacExports,
...hkdf,
...pbkdf2,
...prime,
...scrypt,
...random,
...ecdh,
...dh,
...mlkem,
...utils,
...subtle,
Certificate: _certificate.Certificate,
X509Certificate: _x509certificate.X509Certificate,
getCurves: _ec.getCurves,
constants: _constants.constants,
Buffer: _reactNativeBuffer.Buffer
};
/**
* Optional. Patch global.crypto with react-native-quick-crypto and
* global.Buffer with react-native-buffer.
*/
const install = () => {
// @ts-expect-error copyBytesFrom and poolSizets are missing from react-native-buffer
global.Buffer = _reactNativeBuffer.Buffer;
// @ts-expect-error subtle isn't fully implemented and Cryptokey is missing
global.crypto = QuickCrypto;
// react-native-quick-base64 v3 no longer installs these globals on import.
global.base64ToArrayBuffer = (s, removeLinebreaks) => (0, _reactNativeQuickBase.toByteArray)(s, removeLinebreaks).buffer;
global.base64FromArrayBuffer = (b, urlSafe) => (0, _reactNativeQuickBase.fromByteArray)(new Uint8Array(b), urlSafe);
};
// random, cipher, hash use nextTick
exports.install = install;
if (global.process == null) {
// @ts-expect-error - process is not defined
global.process = {};
}
if (global.process.nextTick == null) {
global.process.nextTick = setImmediate;
}
// exports
var _default = exports.default = QuickCrypto;
// Additional exports for CommonJS compatibility
module.exports = QuickCrypto;
module.exports.default = QuickCrypto;
module.exports.install = install;
//# sourceMappingURL=index.js.map