TBD54566975 / web5-go

Apache License 2.0
6 stars 6 forks source link

web5-go

Table of Contents

Summary

This repo contains the following packages: package description
crypto Key Generation, signing, verification, and a Key Manager abstraction
dids DID creation and resolution.
jwk implements a subset of the JSON Web Key spec
jws JWS (JSON Web Signature) signing and verification
jwt JWT (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:

command description
just test runs all tests
just lint runs 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