| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | import { createHash } from "./crypto.js";import { getBytes, hexlify } from "../utils/index.js";import type { BytesLike } from "../utils/index.js";const _sha256 = function(data: Uint8Array): Uint8Array {    return createHash("sha256").update(data).digest();}const _sha512 = function(data: Uint8Array): Uint8Array {    return createHash("sha512").update(data).digest();}let __sha256: (data: Uint8Array) => BytesLike = _sha256;let __sha512: (data: Uint8Array) => BytesLike = _sha512;let locked256 = false, locked512 = false;/** *  Compute the cryptographic SHA2-256 hash of %%data%%. * *  @_docloc: api/crypto:Hash Functions *  @returns DataHexstring * *  @example: *    sha256("0x") *    //_result: * *    sha256("0x1337") *    //_result: * *    sha256(new Uint8Array([ 0x13, 0x37 ])) *    //_result: * */export function sha256(_data: BytesLike): string {    const data = getBytes(_data, "data");    return hexlify(__sha256(data));}sha256._ = _sha256;sha256.lock = function(): void { locked256 = true; }sha256.register = function(func: (data: Uint8Array) => BytesLike): void {    if (locked256) { throw new Error("sha256 is locked"); }    __sha256 = func;}Object.freeze(sha256);/** *  Compute the cryptographic SHA2-512 hash of %%data%%. * *  @_docloc: api/crypto:Hash Functions *  @returns DataHexstring * *  @example: *    sha512("0x") *    //_result: * *    sha512("0x1337") *    //_result: * *    sha512(new Uint8Array([ 0x13, 0x37 ])) *    //_result: */export function sha512(_data: BytesLike): string {    const data = getBytes(_data, "data");    return hexlify(__sha512(data));}sha512._ = _sha512;sha512.lock = function(): void { locked512 = true; }sha512.register = function(func: (data: Uint8Array) => BytesLike): void {    if (locked512) { throw new Error("sha512 is locked"); }    __sha512 = func;}Object.freeze(sha256);
 |