hscrypt
Version:
Encrypt Javascript bundles (at build time), inject+decrypt them into pages later (in the browser)
22 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.toHexString = exports.fromHexString = exports.SOURCE_PREFIX_ARRAY = exports.SOURCE_PREFIX = exports.NONCE_LENGTH = exports.SALT_LENGTH = exports.DEFAULT_ITERATIONS = exports.DECRYPTION_KEY_LENGTH = exports.HSCRYPT_CONFIG_VAR = void 0;
// Name of a global config object stored on `window`
exports.HSCRYPT_CONFIG_VAR = 'HSCRYPT_CONFIG';
// Cipher params
exports.DECRYPTION_KEY_LENGTH = 32;
exports.DEFAULT_ITERATIONS = 20000;
exports.SALT_LENGTH = 32;
exports.NONCE_LENGTH = 12;
// Prepend this to source before encrypting, verify+remove during decryption, to check whether decryption succeeded
exports.SOURCE_PREFIX = '/* hscrypt */ ';
exports.SOURCE_PREFIX_ARRAY = new TextEncoder().encode(exports.SOURCE_PREFIX);
function fromHexString(hexString) {
return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));
}
exports.fromHexString = fromHexString;
function toHexString(bytes) {
return bytes.reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), '');
}
exports.toHexString = toHexString;
//# sourceMappingURL=utils.js.map