Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
136e4a2
Fix flow in README.md.
msporny Apr 25, 2026
24889d8
Add initial booting version of hmbd.
msporny Apr 25, 2026
5d75c1d
Fix lint issues with code.
msporny Apr 25, 2026
7117a13
Add cloudbuild.yaml and Dockerfile build configurations.
msporny Apr 25, 2026
386cc13
Add basic framework for tests.
msporny Apr 25, 2026
7faa6d1
Add initial implementation of blind signing using ecdsa.
msporny Apr 26, 2026
a63a640
Add support for ecdsa-rdfc.
msporny Apr 26, 2026
938aacc
Fix copyright notices.
msporny Apr 26, 2026
5f141cc
Update README.md with usage details.
msporny Apr 26, 2026
860066b
Fix race condition to check if KMS keystore exists.
msporny Apr 26, 2026
1d30211
Fix incorrect digestMultibase values in README.md.
msporny Apr 26, 2026
1962b3e
Fix creation of keystore with meterId.
msporny Apr 26, 2026
e5f477a
Add support for mldsa44-jcs-2024 cryptosuite.
msporny May 25, 2026
4ffa4c8
Add tests for mldsa44-jcs-2024.
msporny May 25, 2026
c3038ef
Fix kms-module-core override until new package is released.
msporny May 25, 2026
ec67eb1
Add support for mldsa-44-rdfc-2024.
msporny May 25, 2026
1a51784
Add tests for mldsa44-rdfc-2024.
msporny May 25, 2026
d259209
Update tests to use proper c14n algorithms.
msporny May 25, 2026
0dd6376
Update README.md to show ML-DSA examples.
msporny May 25, 2026
24ad08d
Update config name for ECDSA key identifier.
msporny May 25, 2026
84b546e
Change #public-key fragment identifiers to #vm instead.
msporny May 25, 2026
9c2d0d3
Fix comment wrap issue.
msporny Jun 6, 2026
5531bda
Update to latest released cryptosuites and KMS module.
msporny Jun 6, 2026
2408997
Release v0.9.0.
msporny Jun 9, 2026
e8150e0
Remove packaging.yaml.
msporny Jun 9, 2026
18bb861
Migrate to computed configs for witness config.
msporny Jun 11, 2026
a18c461
Release v0.9.1.
msporny Jun 11, 2026
76b005e
Fix unnecessary configuration settings.
msporny Jun 12, 2026
380c1fc
Remove calls to WebKMS, do all signing locally for now.
msporny Jun 14, 2026
fd22347
Simplify witnessing HTTP URL path.
msporny Jun 14, 2026
75baf2f
Simplify code base to be more maintainable.
msporny Jun 14, 2026
f037b5c
Remove https-agent, which is no longer needed.
msporny Jun 14, 2026
79e4848
Move location of secrets config in hmbd config.
msporny Jun 14, 2026
d328cb0
Silently ignore missing secrets.js.
msporny Jun 14, 2026
ebbd1c3
Simplify Dockerfile build process.
msporny Jun 14, 2026
c5a4060
Remove localId reference from README.md.
msporny Jun 14, 2026
a47d621
Add LICENSE.md.
msporny Jun 14, 2026
9458429
Initialize secrets if they are not already initialized.
msporny Jun 14, 2026
843565c
Add package-lock.json for OSV scanner.
msporny Jun 14, 2026
4f7e23f
Release v0.9.2.
msporny Jun 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
module.exports = {
root: true,
env: {
node: true
},
extends: [
'digitalbazaar',
'digitalbazaar/jsdoc',
'digitalbazaar/module'
],
ignorePatterns: ['node_modules/']
};
54 changes: 0 additions & 54 deletions .github/workflows/packaging.yaml

This file was deleted.

114 changes: 114 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Signing keys - must not be committed; generate with: npm run generate-signing-keys
configs/secrets.js

# VSCode
.vscode

# Editor files
*~
*.sw[nop]
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# hmbd Changelog

## 0.9.2 - 2026-06-14

### Fixed
- Simplify key management by loading from secrets manager.

## 0.9.1 - 2026-06-11

### Fixed
- Use computed configs for witness configuration.

## 0.9.0 - 2026-06-09

### Added
- Initial release, see individual commits for history.
20 changes: 20 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
FROM node:24-alpine AS base
RUN mkdir -p /home/node/app && chown -R node:node /home/node/app
WORKDIR /home/node/app

FROM base AS build-setup
RUN apk add --no-cache git bash

FROM build-setup AS build
ARG NODE_AUTH_TOKEN
USER node
COPY --chown=node:node . .
RUN mv dev.js index.js
RUN npm i --omit=optional --omit=dev
RUN rm -rf test bin test.js test.config.js

FROM base AS release
COPY --from=build --chown=node:node /home/node/app ./
EXPOSE 10443
ENV NODE_ENV=production
CMD [ "node", "index"]
115 changes: 115 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
Bedrock Non-Commercial License v1.0
===================================

Copyright (c) 2011-2016 Digital Bazaar, Inc.
All rights reserved.

Summary
=======

This license allows the licensee to use Bedrock and its software modules
for non-commercial purposes such as self-study, research, personal
projects, or for evaluation purposes. If the licensee uses Bedrock
directly or indirectly to generate revenue, or to provide products or
services to more than 500 people (users), the licensee must immediately
obtain a non-profit or commercial license.

Examples
========

These are examples of cases that are allowed by this license:

* The licensee is an individual that creates Bedrock-dependent software for
personal use only.
* The licensee is an individual or group of students/researchers that uses
Bedrock to experiment with an idea for a non-commercial project.
* The licensee is a startup company that prototypes a Bedrock-dependent
product before they have cash flow and will be testing the prototype
software with less than 500 users. The service will not generate revenue
of any kind.
* The licensee is a for-profit organization that creates a product or
service that is used by less than 500 users and is built with or
integrates with Bedrock. The service must be exclusively provided for free
and no parent, subsidiary, agent, or affiliate organization may profit
from its use.

These cases require a non-profit or commercial license:

* The licensee is a non-profit that receives funding to create and/or run a
Bedrock-dependent service.
* The licensee is a startup company with Bedrock-dependent software that is
funded by another organization.
* The licensee is a startup company that is going into production with
Bedrock-dependent software.
* The licensee has more than 500 users using a Bedrock-dependent service
either directly or indirectly.
* The licensee is a medium to large organization that builds or integrates a
commercial product or service with Bedrock.

THE LICENSE
===========

This section and all subsequent sections of this document constitute the
agreement between the licensee and Digital Bazaar, Inc.

DEFINITIONS
===========

* Product - The Bedrock software and any modules associated with Bedrock
where Digital Bazaar, Inc. owns the copyright.

CONDITIONS
==========

Redistribution and use in source and binary forms, with or without
modification, are permitted for NON-COMMERCIAL PURPOSES as long as the
following conditions are met:

1. Any use of the Product must not generate revenue for the licensee or
any parent, subsidiary, agent, or affiliate of the licensee. Use of
Product includes, but is not limited to, interacting with any of the
licensee's Product-dependent products or services over a network.

2. The aggregate number of individual people (users) of the licensee's
products or services that use Product must be less than 500.

3. Redistributions of source code must retain the above copyright notice
intact, this list of conditions and the following disclaimer.

4. Redistributions in binary form must reproduce the above copyright
notice, this license and the following disclaimer in the documentation and
on a web page available via interactive use and/or other materials
provided with the distribution.

5. Neither the name of the copyright holder, the names of its
contributors, nor any trademarks held by the copyright holder may be used
to endorse or promote products or services built using the Product without
specific prior written permission.

6. Any modifications are clearly outlined in release documentation and are
specifically mentioned as not being a part of an official Product release.
No additional restrictions to this license may be made when distributing
modifications.

7. For the avoidance of doubt, this license prohibits sublicensing of the
Product.

8. Any breach of this license by licensee must be resolved within 30 days.
Failure to do so results in the termination of this license.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

To obtain a non-profit or commercial license for Product, please contact
Digital Bazaar, Inc. at the following email address:

Digital Bazaar <support@digitalbazaar.com>
Loading
Loading