Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Redesign digestMultibase handling to enable transparent request signing

Open
#5 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
javascript

Research direction

Start by reading lib/http.js at the linked line and trace how digestMultibase enters request signing. Determine the design needed to sign it without decoding or imposing a hash algorithm, then verify that identical witness requests can be reused and that the resulting request and proof remain verifiable across Data Integrity suites.

Written by the indexing model from the issue text.

Description

Problem Statement

Using the decoded digestMultibase directly as the second parameter in digest to sign (proof || digestMultibase) introduces tight coupling and strict expectations on the underlying value, such as requiring a specific SHA-256 multihash.

https://github.com/digitalbazaar/hmbd/blob/6c1320489e61766f0122e9eb6ba58187fe513479/lib/http.js#L91

This approach introduces the following limitations:

  • The witness service cannot remain truly oblivious, as it requires extra metadata and client-side knowledge to properly construct the hash.
  • A client cannot reuse an identical witness request.
  • Verification is problematic; while Data Integrity (DI) suites accept signed documents (the witness request and proof), they might not expose the internal mechanisms required to modify the value to sign.
Proposed Solution

Sign the request transparently without decoding the digestMultibase value.

Expected Benefits
  • Eliminates specific hashing algorithm expectations from the witness service.
  • Enables the reuse of identical witness requests by the client.
  • Increases interoperability, allowing the witness service to be used across diverse systems.
Dominant language
JavaScript
Stars
4
Forks
1
PR merge metrics
No merged PRs in 30d

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from digitalbazaar/hmbd

All issues in digitalbazaar/hmbd

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.