react-native-quick-crypto
Version:
A fast implementation of Node's `crypto` module written in C/C++ JSI
66 lines (61 loc) • 1.86 kB
JavaScript
import { Buffer } from '@craftzdog/react-native-buffer';
import * as pbkdf2 from './pbkdf2';
import * as random from './random';
import { createCipher, createCipheriv, createDecipher, createDecipheriv, publicEncrypt, publicDecrypt, privateDecrypt, generateKeyPair, generateKeyPairSync } from './Cipher';
import { generateKey, generateKeySync } from './keygen';
import { createSign, createVerify } from './sig';
import { createHmac } from './Hmac';
import { createHash } from './Hash';
import { constants } from './constants';
import { subtle } from './subtle';
import { getCiphers, getHashes } from './Utils';
import webcrypto from './webcrypto';
import { createPrivateKey, createPublicKey, createSecretKey } from './keys';
/**
* Loosely matches Node.js {crypto} with some unimplemented functionality
*/
const QuickCrypto = {
createHmac,
Hmac: createHmac,
Hash: createHash,
createHash,
createCipher,
createCipheriv,
createDecipher,
createDecipheriv,
createPublicKey,
createPrivateKey,
createSecretKey,
publicEncrypt,
publicDecrypt,
privateDecrypt,
generateKey,
generateKeyPair,
generateKeyPairSync,
generateKeySync,
createSign,
createVerify,
subtle,
constants,
...pbkdf2,
...random,
getCiphers,
getHashes,
webcrypto
};
/**
* Optional. Patch global.crypto with quickcrypto and global.Buffer with react-native-buffer.
*/
export const install = () => {
// @ts-expect-error copyBytesFrom and poolSizets are missing from react-native-buffer
global.Buffer = Buffer;
// @ts-expect-error subtle isn't fully implemented and Cryptokey is missing
global.crypto = QuickCrypto;
};
export default QuickCrypto;
// Additional exports for CommonJS compatibility
module.exports = QuickCrypto;
module.exports.default = QuickCrypto;
module.exports.install = install;
//# sourceMappingURL=index.js.map
;