JWT

Posted on October 2, 2021
Tags: javascript

1 Hash

const text =
  "An obscure body in the S-K System, your majesty. The inhabitants refer to it as the planet Earth.";

async function digestMessage(message) {
  const encoder = new TextEncoder();
  const data = encoder.encode(message);
  const hash = await crypto.subtle.digest("SHA-256", data);
  return hash;
}

digestMessage(text).then((digestBuffer) =>
  console.log(digestBuffer.byteLength),
);

2 HMAC vs Hash

3 HS256

let key = await window.crypto.subtle.generateKey(
  {
    name: "HMAC",
    hash: { name: "SHA-256" },
  },
  true,
  ["sign", "verify"],
);

4 RS256

5 Algorithms

Algorithm sign()verify() encrypt()decrypt() digest() deriveBits()deriveKey() generateKey() wrapKey()unwrapKey() exportKey() importKey()
RSASSA PKCS1 v1.5*
RSA PSS*
RSA OAEP*
ECDSA*
ECDH*
Ed255191
X255191
NODE ED255192
AES CTR
AES CBC
AES GCM
AES KW
HMAC
SHA 1
SHA 256
SHA 384
SHA 512
MD53
HKDF
PBKDF2