Skip to main content
Home
This package has been archived, and as such it is read-only.

@nyoon/hash@0.1.0

latest
It is unknown whether this package works with Cloudflare Workers, Node.js, Deno, Bun, Browsers
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
It is unknown whether this package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score
82%
Published
3 months ago (0.1.0)

SHA-256 and SHA-512 (RFC 6234), HMAC-SHA256 (RFC 2104), and HKDF-SHA256 (RFC 5869).

Examples

Hashing

import { assertEquals } from "@std/assert";

const data = crypto.getRandomValues(new Uint8Array(100));
assertEquals(
  sha256(data),
  new Uint8Array(await crypto.subtle.digest("SHA-256", data)),
);
assertEquals(
  sha512(data),
  new Uint8Array(await crypto.subtle.digest("SHA-512", data)),
);

Signing

import { assertEquals } from "@std/assert";

const key = crypto.getRandomValues(new Uint8Array(32));
const data = crypto.getRandomValues(new Uint8Array(100));
assertEquals(
  hmac(key, data),
  await crypto.subtle.sign(
    "HMAC",
    await crypto.subtle.importKey(
      "raw",
      key,
      { name: "HMAC", hash: "SHA-256" },
      false,
      ["sign"],
    ),
    data,
  ).then(($) => new Uint8Array($)),
);

Key derivation

import { assertEquals } from "@std/assert";

const key = crypto.getRandomValues(new Uint8Array(32));
assertEquals(
  hkdf(key),
  await crypto.subtle.deriveBits(
    {
      name: "HKDF",
      hash: "SHA-256",
      info: new Uint8Array(),
      salt: new Uint8Array(),
    },
    await crypto.subtle.importKey("raw", key, "HKDF", false, ["deriveBits"]),
    256,
  ).then(($) => new Uint8Array($)),
);

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@nyoon/hash

Import symbol

import * as hash from "@nyoon/hash";
or

Import directly with a jsr specifier

import * as hash from "jsr:@nyoon/hash";

Add Package

pnpm i jsr:@nyoon/hash
or (using pnpm 10.8 or older)
pnpm dlx jsr add @nyoon/hash

Import symbol

import * as hash from "@nyoon/hash";

Add Package

yarn add jsr:@nyoon/hash
or (using Yarn 4.8 or older)
yarn dlx jsr add @nyoon/hash

Import symbol

import * as hash from "@nyoon/hash";

Add Package

vlt install jsr:@nyoon/hash

Import symbol

import * as hash from "@nyoon/hash";

Add Package

npx jsr add @nyoon/hash

Import symbol

import * as hash from "@nyoon/hash";

Add Package

bunx jsr add @nyoon/hash

Import symbol

import * as hash from "@nyoon/hash";