Home

Awesome

web5-go <!-- omit in toc -->

Table of Contents <!-- omit in toc -->

Summary

This repo contains the following packages:

packagedescription
cryptoKey Generation, signing, verification, and a Key Manager abstraction
didsDID creation and resolution.
jwkimplements a subset of the JSON Web Key spec
jwsJWS (JSON Web Signature) signing and verification
jwtJWT (JSON Web Token) parsing, signing, and verification

[!IMPORTANT] Check the README in each directory for more details

crypto

Supported Digital Signature Algorithms:

dids

Supported DID Methods:

jws

JWS signing and verification using DIDs

jwt

JWT signing and verification using DIDs

Development

Prerequisites

We use a submodule for test vectors that make sure we follow the appropriate spec. Running tests will fail without it. To set up the submodule, clone using:

git clone --recurse-submodules git@github.com:TBD54566975/web5-go.git

If you've already cloned, add submodules:

git submodule update --init

hermit

This repo uses hermit to manage all environment dependencies (e.g. just, go).

[!IMPORTANT] run . ./bin/activate-hermit everytime you enter this directory if you don't have hermit shell hooks configured

Git hooks

Before contributing, set up the pre-commit hook by running:

cp .githooks/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

Helpful Commands

This repo uses just as a command runner. Below is a table of helpful just commands:

commanddescription
just testruns all tests
just lintruns linter

web5 CLI

web5 -h

See cmd/web5/README.md for more information.

Contributing

Each package's README contains in-depth information about the package's structure and suggestions on how add features specific to that package