Aura Auth
API Reference@aura-stack/jose

Key Derivation

Key derivation implementation using the jose library.

deriveKey(secret, salt, info, len)

Create a Key derivation which implements HKDF

Signature

import type { SecretInput } from "@aura-stack/jose"

function deriveKey(
  secret: SecretInput,
  salt: BinaryLike,
  info: string,
  length: number
): {
  key: ArrayBuffer
  deriveKey: Buffer<ArrayBuffer>
}

Parameters

ParameterTypeDescription
secretSecretInputSecret key for HKDF key derivation
saltBinaryLikeThe salt value
infostringAdditional information value
lengthnumberThe length of the key to generate

Returns

ReturnTypeDescription
keyArrayBufferThe derived key as ArrayBuffer
deriveKeyBuffer<ArrayBuffer>The derived key as Buffer type

Example

import { deriveKey } from "@aura-stack/jose/hkdf"

const secret = "secret-key"
const salt = "salt"

const sessionKey = deriveKey(secret, salt, "session key", 32)
const databaseKey = deriveKey(secret, salt, "database key", 64)

createDeriveKey(secret, salt, info, len)

Creates a key derivation function that includes verification for the key length. It implements the deriveKey function.

Signature

import type { SecretInput } from "@aura-stack/jose"

function createDeriveKey(
  secret: SecretInput,
  salt?: BinaryLike
  info?: string,
  len?: number
): {
  key: ArrayBuffer
  deriveKey: Buffer<ArrayBuffer>
}

Parameters

ParameterTypeDescription
secretSecretInputSecret key for HKDF key derivation
saltBinaryLikeThe salt value
infostringAdditional information value
lengthnumberThe length of the key to generate

Returns

ReturnTypeDescription
keyArrayBufferThe derived key as ArrayBuffer
deriveKeyBuffer<ArrayBuffer>The derived key as Buffer type

Example

import { createDeriveKey } from "@aura-stack/jose/hkdf"

const secret = "secret-key"
const salt = "salt"

const sessionKey = createDeriveKey(secret, salt, "session key", 32)
const databaseKey = createDeriveKey(secret, salt, "database key", 64)

On this page