UNPKG

one

Version:

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

70 lines (68 loc) • 2.61 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 digest_api_exports = {}; __export(digest_api_exports, { DIGEST_ALGORITHMS: () => DIGEST_ALGORITHMS, assertDigestAlgorithm: () => assertDigestAlgorithm, createDigestApi: () => createDigestApi }); module.exports = __toCommonJS(digest_api_exports); var import_bytes = require("./bytes.native.js"); var import_digest = require("./digest.native.js"); var DIGEST_ALGORITHMS = [ "MD5", "SHA-1", "SHA-256", "SHA-384", "SHA-512" ]; function assertDigestAlgorithm(algorithm, verb) { if (!DIGEST_ALGORITHMS.includes(algorithm)) { throw new Error(`${verb}: unknown algorithm ${JSON.stringify(algorithm)}. Expected one of: ${DIGEST_ALGORITHMS.join(", ")}`); } } function createDigestApi(source) { async function digest(algorithm, data) { assertDigestAlgorithm(algorithm, "Crypto.digest"); var { buffer, offset, length } = (0, import_digest.bufferSourceRange)(data, "Crypto.digest"); return source(algorithm, buffer, offset, length); } async function digestString(algorithm, data) { var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; var _ref; assertDigestAlgorithm(algorithm, "Crypto.digestString"); if (typeof data !== "string") { throw new TypeError("Crypto.digestString: data must be a string"); } var encoding = (_ref = options === null || options === void 0 ? void 0 : options.encoding) !== null && _ref !== void 0 ? _ref : "hex"; if (encoding !== "hex" && encoding !== "base64") { throw new Error(`Crypto.digestString: encoding must be 'hex' or 'base64'`); } var bytes = (0, import_bytes.utf8Encode)(data); var hashed = new Uint8Array(await source(algorithm, bytes.buffer, 0, bytes.length)); return encoding === "base64" ? (0, import_bytes.bytesToBase64)(hashed) : (0, import_bytes.bytesToHex)(hashed); } return { digest, digestString }; }