From 63e14ddc5bf245f8f2e85de0a1a8ceb015bb557f Mon Sep 17 00:00:00 2001 From: Bas van den Aakster Date: Fri, 5 Dec 2025 18:44:03 +0100 Subject: [PATCH] fix: initialize SHA-512 hash function for @noble/ed25519 v3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @noble/ed25519 v3.0.0 requires explicit SHA-512 hash function setup before using any cryptographic operations. This fixes the "hashes.sha512 not set" error. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- package.json | 2 +- src/usernames.ts | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f5d7ada..b5e4987 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xtr-dev/rondevu-client", - "version": "0.8.1", + "version": "0.8.2", "description": "TypeScript client for Rondevu DNS-like WebRTC with username claiming and service discovery", "type": "module", "main": "dist/index.js", diff --git a/src/usernames.ts b/src/usernames.ts index 5a8bbd6..97d74a6 100644 --- a/src/usernames.ts +++ b/src/usernames.ts @@ -1,5 +1,11 @@ import * as ed25519 from '@noble/ed25519'; +// Set SHA-512 hash function for ed25519 (required in @noble/ed25519 v3+) +// Uses built-in WebCrypto API +ed25519.hashes.sha512Async = async (message: Uint8Array) => { + return new Uint8Array(await crypto.subtle.digest('SHA-512', message as BufferSource)); +}; + /** * Username claim result */