mirror of
https://github.com/mii443/did-web-on-gh-pages.git
synced 2025-12-03 19:18:25 +00:00
demo with did-jwt
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
|
keys/*.json
|
||||||
### https://raw.github.com/github/gitignore/218a941be92679ce67d0484547e3e142b2f5f6f0/Node.gitignore
|
### https://raw.github.com/github/gitignore/218a941be92679ce67d0484547e3e142b2f5f6f0/Node.gitignore
|
||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
@@ -128,6 +129,7 @@ dist
|
|||||||
# Icon must end with two \r
|
# Icon must end with two \r
|
||||||
Icon
|
Icon
|
||||||
|
|
||||||
|
|
||||||
# Thumbnails
|
# Thumbnails
|
||||||
._*
|
._*
|
||||||
|
|
||||||
|
|||||||
31
README.md
Normal file
31
README.md
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# did:web on github pages
|
||||||
|
## Usage
|
||||||
|
### Generate and Publish your DID Document
|
||||||
|
1. Fork and Clone this repository
|
||||||
|
2. Setup your config file (`./src/config.json`)
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"DOMAIN": <YOUR-GITHUB-PAGES-DOMAIN>,
|
||||||
|
"GH_PROJECT": "did-web-on-gh-pages"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Generate DID Document
|
||||||
|
```
|
||||||
|
npm install
|
||||||
|
npm run generate
|
||||||
|
```
|
||||||
|
4. Publish your github pages with DID Document
|
||||||
|
- commit and push the generated DID Document.
|
||||||
|
```
|
||||||
|
git add ./docs/did.json
|
||||||
|
git commit -m "generate did document"
|
||||||
|
git push
|
||||||
|
```
|
||||||
|
- Setup github pages on GitHub so that publishes `docs` directory of main branch in this repository.
|
||||||
|
- https://docs.github.com/ja/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site
|
||||||
|
- Check Your Github Pages are deployed.
|
||||||
|
5. Resolve generated DID:web in Universal Resolver
|
||||||
|
- https://dev.uniresolver.io/
|
||||||
|
|
||||||
|
### DEMO: generate jwt and verify with `did-jwt`
|
||||||
@@ -4,9 +4,14 @@
|
|||||||
"verificationMethod": [
|
"verificationMethod": [
|
||||||
{
|
{
|
||||||
"id": "did:web:chike.xyz:did-web-on-gh-pages#key1",
|
"id": "did:web:chike.xyz:did-web-on-gh-pages#key1",
|
||||||
"type": "Ed25519VerificationKey2018",
|
"type": "EcdsaSecp256k1VerificationKey2019",
|
||||||
"controller": "did:web:chike.xyz:did-web-on-gh-pages",
|
"controller": "did:web:chike.xyz:did-web-on-gh-pages",
|
||||||
"publicKeyBase58": "2BXDYEWZrfwpDTVh78GFYFmLxp1b6yQ316eDxMDh1aq4p"
|
"publicKeyJwk": {
|
||||||
|
"kty": "EC",
|
||||||
|
"x": "HzeyP9LSQubPdZeXIAtQA3KNmKiUVwazHwl-pywU5YA",
|
||||||
|
"y": "M-ph3R3BIyAmx1RgSJVRdWGZkJLqqhfTvEAAoIOpQ_U",
|
||||||
|
"crv": "secp256k1"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"authentication": [
|
"authentication": [
|
||||||
|
|||||||
0
keys/.gitkeep
Normal file
0
keys/.gitkeep
Normal file
556
package-lock.json
generated
556
package-lock.json
generated
@@ -9,14 +9,163 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bs58": "^5.0.0",
|
"did-jwt": "^6.0.0",
|
||||||
"secp256k1": "^4.0.3"
|
"jose": "^4.6.0",
|
||||||
|
"web-did-resolver": "^2.0.14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/base-x": {
|
"node_modules/@stablelib/aead": {
|
||||||
"version": "4.0.0",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
|
||||||
"integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
|
"integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg=="
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/binary": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/int": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/bytes": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/chacha": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/chacha20poly1305": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/aead": "^1.0.1",
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/chacha": "^1.0.1",
|
||||||
|
"@stablelib/constant-time": "^1.0.1",
|
||||||
|
"@stablelib/poly1305": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/constant-time": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/ed25519": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/random": "^1.0.1",
|
||||||
|
"@stablelib/sha512": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/hash": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/int": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/keyagreement": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/bytes": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/poly1305": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/constant-time": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/random": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/sha256": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/hash": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/sha512": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/hash": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/wipe": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/x25519": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/keyagreement": "^1.0.1",
|
||||||
|
"@stablelib/random": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/xchacha20": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/chacha": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@stablelib/xchacha20poly1305": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/aead": "^1.0.1",
|
||||||
|
"@stablelib/chacha20poly1305": "^1.0.1",
|
||||||
|
"@stablelib/constant-time": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1",
|
||||||
|
"@stablelib/xchacha20": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/bech32": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
|
||||||
},
|
},
|
||||||
"node_modules/bn.js": {
|
"node_modules/bn.js": {
|
||||||
"version": "4.12.0",
|
"version": "4.12.0",
|
||||||
@@ -28,14 +177,43 @@
|
|||||||
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
||||||
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
||||||
},
|
},
|
||||||
"node_modules/bs58": {
|
"node_modules/canonicalize": {
|
||||||
"version": "5.0.0",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
|
||||||
"integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
|
"integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
|
||||||
|
},
|
||||||
|
"node_modules/cross-fetch": {
|
||||||
|
"version": "3.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
|
||||||
|
"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base-x": "^4.0.0"
|
"node-fetch": "2.6.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/did-jwt": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-ZtpKcE/vD2CkVRiRbr/43qTYItCkV1QEIG5inMwEnuMzmf+otUhX/xkLMOsQPLmRN8nqTJo58bGXRCsKf5L2rw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@stablelib/ed25519": "^1.0.2",
|
||||||
|
"@stablelib/random": "^1.0.1",
|
||||||
|
"@stablelib/sha256": "^1.0.1",
|
||||||
|
"@stablelib/x25519": "^1.0.2",
|
||||||
|
"@stablelib/xchacha20poly1305": "^1.0.1",
|
||||||
|
"bech32": "^2.0.0",
|
||||||
|
"canonicalize": "^1.0.8",
|
||||||
|
"did-resolver": "^3.1.5",
|
||||||
|
"elliptic": "^6.5.4",
|
||||||
|
"js-sha3": "^0.8.0",
|
||||||
|
"multiformats": "^9.6.4",
|
||||||
|
"uint8arrays": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/did-resolver": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-8YiTRitfGt9hJYDIzjc254gXgJptO4zq6Q2BMZMNqkbCf9EFkV6BD4QIh5BUF4YjBglBgJY+duQRzO3UZAlZsw=="
|
||||||
|
},
|
||||||
"node_modules/elliptic": {
|
"node_modules/elliptic": {
|
||||||
"version": "6.5.4",
|
"version": "6.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
|
||||||
@@ -74,6 +252,19 @@
|
|||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/jose": {
|
||||||
|
"version": "4.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jose/-/jose-4.6.0.tgz",
|
||||||
|
"integrity": "sha512-0hNAkhMBNi4soKSAX4zYOFV+aqJlEz/4j4fregvasJzEVtjDChvWqRjPvHwLqr5hx28Ayr6bsOs1Kuj87V0O8w==",
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/panva"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/js-sha3": {
|
||||||
|
"version": "0.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
|
||||||
|
"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
|
||||||
|
},
|
||||||
"node_modules/minimalistic-assert": {
|
"node_modules/minimalistic-assert": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||||
@@ -84,41 +275,220 @@
|
|||||||
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
|
||||||
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
||||||
},
|
},
|
||||||
"node_modules/node-addon-api": {
|
"node_modules/multiformats": {
|
||||||
"version": "2.0.2",
|
"version": "9.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz",
|
||||||
"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
|
"integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg=="
|
||||||
},
|
},
|
||||||
"node_modules/node-gyp-build": {
|
"node_modules/node-fetch": {
|
||||||
"version": "4.4.0",
|
"version": "2.6.7",
|
||||||
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||||
"integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==",
|
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||||
"bin": {
|
|
||||||
"node-gyp-build": "bin.js",
|
|
||||||
"node-gyp-build-optional": "optional.js",
|
|
||||||
"node-gyp-build-test": "build-test.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/secp256k1": {
|
|
||||||
"version": "4.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
|
|
||||||
"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"elliptic": "^6.5.4",
|
"whatwg-url": "^5.0.0"
|
||||||
"node-addon-api": "^2.0.0",
|
|
||||||
"node-gyp-build": "^4.2.0"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.0.0"
|
"node": "4.x || >=6.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"encoding": "^0.1.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"encoding": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/tr46": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||||
|
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||||
|
},
|
||||||
|
"node_modules/uint8arrays": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==",
|
||||||
|
"dependencies": {
|
||||||
|
"multiformats": "^9.4.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/web-did-resolver": {
|
||||||
|
"version": "2.0.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.14.tgz",
|
||||||
|
"integrity": "sha512-jKF708NEebihZ2Nhj/MLS4+9LoYUhv0/65F/9GSgoNTSYQaNTRNjbZdEGsbahT8YVKCcLEP1luzG2mj5UP6uDA==",
|
||||||
|
"dependencies": {
|
||||||
|
"cross-fetch": "^3.1.2",
|
||||||
|
"did-resolver": "^3.1.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/webidl-conversions": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||||
|
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||||
|
},
|
||||||
|
"node_modules/whatwg-url": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||||
|
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||||
|
"dependencies": {
|
||||||
|
"tr46": "~0.0.3",
|
||||||
|
"webidl-conversions": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"base-x": {
|
"@stablelib/aead": {
|
||||||
"version": "4.0.0",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
|
||||||
"integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw=="
|
"integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg=="
|
||||||
|
},
|
||||||
|
"@stablelib/binary": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/int": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/bytes": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ=="
|
||||||
|
},
|
||||||
|
"@stablelib/chacha": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/chacha20poly1305": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/aead": "^1.0.1",
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/chacha": "^1.0.1",
|
||||||
|
"@stablelib/constant-time": "^1.0.1",
|
||||||
|
"@stablelib/poly1305": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/constant-time": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg=="
|
||||||
|
},
|
||||||
|
"@stablelib/ed25519": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/ed25519/-/ed25519-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-FtnvUwvKbp6l1dNcg4CswMAVFVu/nzLK3oC7/PRtjYyHbWsIkD8j+5cjXHmwcCpdCpRCaTGACkEhhMQ1RcdSOQ==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/random": "^1.0.1",
|
||||||
|
"@stablelib/sha512": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/hash": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg=="
|
||||||
|
},
|
||||||
|
"@stablelib/int": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w=="
|
||||||
|
},
|
||||||
|
"@stablelib/keyagreement": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/bytes": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/poly1305": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/constant-time": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/random": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/sha256": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/hash": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/sha512": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/sha512/-/sha512-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/hash": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/wipe": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg=="
|
||||||
|
},
|
||||||
|
"@stablelib/x25519": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.2.tgz",
|
||||||
|
"integrity": "sha512-wTR0t0Bp1HABLFRbYaE3vFLuco2QbAg6QvxBnzi5j9qjhYezWHW7OiCZyaWbt25UkSaoolUUT4Il0nS/2vcbSw==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/keyagreement": "^1.0.1",
|
||||||
|
"@stablelib/random": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/xchacha20": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/xchacha20/-/xchacha20-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-1YkiZnFF4veUwBVhDnDYwo6EHeKzQK4FnLiO7ezCl/zu64uG0bCCAUROJaBkaLH+5BEsO3W7BTXTguMbSLlWSw==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/binary": "^1.0.1",
|
||||||
|
"@stablelib/chacha": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@stablelib/xchacha20poly1305": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@stablelib/xchacha20poly1305/-/xchacha20poly1305-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-B1Abj0sMJ8h3HNmGnJ7vHBrAvxuNka6cJJoZ1ILN7iuacXp7sUYcgOVEOTLWj+rtQMpspY9tXSCRLPmN1mQNWg==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/aead": "^1.0.1",
|
||||||
|
"@stablelib/chacha20poly1305": "^1.0.1",
|
||||||
|
"@stablelib/constant-time": "^1.0.1",
|
||||||
|
"@stablelib/wipe": "^1.0.1",
|
||||||
|
"@stablelib/xchacha20": "^1.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bech32": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg=="
|
||||||
},
|
},
|
||||||
"bn.js": {
|
"bn.js": {
|
||||||
"version": "4.12.0",
|
"version": "4.12.0",
|
||||||
@@ -130,14 +500,43 @@
|
|||||||
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
|
||||||
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
|
||||||
},
|
},
|
||||||
"bs58": {
|
"canonicalize": {
|
||||||
"version": "5.0.0",
|
"version": "1.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
|
||||||
"integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
|
"integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
|
||||||
|
},
|
||||||
|
"cross-fetch": {
|
||||||
|
"version": "3.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
|
||||||
|
"integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"base-x": "^4.0.0"
|
"node-fetch": "2.6.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"did-jwt": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-ZtpKcE/vD2CkVRiRbr/43qTYItCkV1QEIG5inMwEnuMzmf+otUhX/xkLMOsQPLmRN8nqTJo58bGXRCsKf5L2rw==",
|
||||||
|
"requires": {
|
||||||
|
"@stablelib/ed25519": "^1.0.2",
|
||||||
|
"@stablelib/random": "^1.0.1",
|
||||||
|
"@stablelib/sha256": "^1.0.1",
|
||||||
|
"@stablelib/x25519": "^1.0.2",
|
||||||
|
"@stablelib/xchacha20poly1305": "^1.0.1",
|
||||||
|
"bech32": "^2.0.0",
|
||||||
|
"canonicalize": "^1.0.8",
|
||||||
|
"did-resolver": "^3.1.5",
|
||||||
|
"elliptic": "^6.5.4",
|
||||||
|
"js-sha3": "^0.8.0",
|
||||||
|
"multiformats": "^9.6.4",
|
||||||
|
"uint8arrays": "^3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"did-resolver": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-8YiTRitfGt9hJYDIzjc254gXgJptO4zq6Q2BMZMNqkbCf9EFkV6BD4QIh5BUF4YjBglBgJY+duQRzO3UZAlZsw=="
|
||||||
|
},
|
||||||
"elliptic": {
|
"elliptic": {
|
||||||
"version": "6.5.4",
|
"version": "6.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
|
||||||
@@ -176,6 +575,16 @@
|
|||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
||||||
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
||||||
},
|
},
|
||||||
|
"jose": {
|
||||||
|
"version": "4.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jose/-/jose-4.6.0.tgz",
|
||||||
|
"integrity": "sha512-0hNAkhMBNi4soKSAX4zYOFV+aqJlEz/4j4fregvasJzEVtjDChvWqRjPvHwLqr5hx28Ayr6bsOs1Kuj87V0O8w=="
|
||||||
|
},
|
||||||
|
"js-sha3": {
|
||||||
|
"version": "0.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
|
||||||
|
"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
|
||||||
|
},
|
||||||
"minimalistic-assert": {
|
"minimalistic-assert": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||||
@@ -186,24 +595,53 @@
|
|||||||
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
|
||||||
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
|
||||||
},
|
},
|
||||||
"node-addon-api": {
|
"multiformats": {
|
||||||
"version": "2.0.2",
|
"version": "9.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.6.4.tgz",
|
||||||
"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
|
"integrity": "sha512-fCCB6XMrr6CqJiHNjfFNGT0v//dxOBMrOMqUIzpPc/mmITweLEyhvMpY9bF+jZ9z3vaMAau5E8B68DW77QMXkg=="
|
||||||
},
|
},
|
||||||
"node-gyp-build": {
|
"node-fetch": {
|
||||||
"version": "4.4.0",
|
"version": "2.6.7",
|
||||||
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
||||||
"integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ=="
|
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
||||||
},
|
|
||||||
"secp256k1": {
|
|
||||||
"version": "4.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz",
|
|
||||||
"integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==",
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"elliptic": "^6.5.4",
|
"whatwg-url": "^5.0.0"
|
||||||
"node-addon-api": "^2.0.0",
|
}
|
||||||
"node-gyp-build": "^4.2.0"
|
},
|
||||||
|
"tr46": {
|
||||||
|
"version": "0.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
||||||
|
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
||||||
|
},
|
||||||
|
"uint8arrays": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==",
|
||||||
|
"requires": {
|
||||||
|
"multiformats": "^9.4.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"web-did-resolver": {
|
||||||
|
"version": "2.0.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/web-did-resolver/-/web-did-resolver-2.0.14.tgz",
|
||||||
|
"integrity": "sha512-jKF708NEebihZ2Nhj/MLS4+9LoYUhv0/65F/9GSgoNTSYQaNTRNjbZdEGsbahT8YVKCcLEP1luzG2mj5UP6uDA==",
|
||||||
|
"requires": {
|
||||||
|
"cross-fetch": "^3.1.2",
|
||||||
|
"did-resolver": "^3.1.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"webidl-conversions": {
|
||||||
|
"version": "3.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
||||||
|
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
||||||
|
},
|
||||||
|
"whatwg-url": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
||||||
|
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
||||||
|
"requires": {
|
||||||
|
"tr46": "~0.0.3",
|
||||||
|
"webidl-conversions": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"generate": "node src/index.js",
|
"generate": "node src/generate.js",
|
||||||
|
"demo": "node src/demo.js",
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -18,7 +19,8 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/chike0905/did-web-on-gh-pages#readme",
|
"homepage": "https://github.com/chike0905/did-web-on-gh-pages#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bs58": "^5.0.0",
|
"did-jwt": "^6.0.0",
|
||||||
"secp256k1": "^4.0.3"
|
"jose": "^4.6.0",
|
||||||
|
"web-did-resolver": "^2.0.14"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
4
src/config.json
Normal file
4
src/config.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"DOMAIN": "chike.xyz",
|
||||||
|
"GH_PROJECT": "did-web-on-gh-pages"
|
||||||
|
}
|
||||||
41
src/demo.js
Normal file
41
src/demo.js
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
const jose = require('jose');
|
||||||
|
const crypto = require('crypto');
|
||||||
|
|
||||||
|
const CONFIG = require('./config.json');
|
||||||
|
const DID = `did:web:${CONFIG.DOMAIN}:${CONFIG.GH_PROJECT}`;
|
||||||
|
const JWK = require('../keys/jwk.json');
|
||||||
|
|
||||||
|
|
||||||
|
const didJWT = require('did-jwt');
|
||||||
|
const Resolver = require('did-resolver');
|
||||||
|
const getResolver = require('web-did-resolver').getResolver;
|
||||||
|
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
console.log('=== Import JWK ===');
|
||||||
|
const privateKey = await jose.importJWK(JWK, 'ES256K');
|
||||||
|
|
||||||
|
console.log('=== Sign with JWK ===');
|
||||||
|
const jwt = new jose.SignJWT({ 'claim': 'this is Example Claim' })
|
||||||
|
.setProtectedHeader({ alg: 'ES256K' })
|
||||||
|
.setIssuedAt()
|
||||||
|
.setIssuer(DID)
|
||||||
|
.setAudience('urn:example:audience')
|
||||||
|
const signed = await jwt.sign(privateKey);
|
||||||
|
console.log(`Signed JWT: ${signed}`);
|
||||||
|
|
||||||
|
console.log('=== Verify JWK with did-jwt ===');
|
||||||
|
const webResolver = getResolver();
|
||||||
|
const didResolver = new Resolver.Resolver({
|
||||||
|
...webResolver
|
||||||
|
});
|
||||||
|
let verificationResponse = await didJWT.verifyJWT(signed, {
|
||||||
|
resolver: didResolver,
|
||||||
|
audience: 'urn:example:audience'
|
||||||
|
}).catch((e) => {
|
||||||
|
console.error(e);
|
||||||
|
})
|
||||||
|
console.log(verificationResponse)
|
||||||
|
}
|
||||||
|
|
||||||
|
main();
|
||||||
58
src/generate.js
Normal file
58
src/generate.js
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
const jose = require('jose');
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
// Setting
|
||||||
|
const CONFIG = require('./config.json');
|
||||||
|
|
||||||
|
|
||||||
|
// Templates
|
||||||
|
const DID = `did:web:${CONFIG.DOMAIN}:${CONFIG.GH_PROJECT}`;
|
||||||
|
const DID_DOCUMENT_FRAME = {
|
||||||
|
"@context": "https://www.w3.org/ns/did/v1",
|
||||||
|
"id": '',
|
||||||
|
"verificationMethod": [],
|
||||||
|
"authentication": [],
|
||||||
|
"assertionMethod": [],
|
||||||
|
}
|
||||||
|
|
||||||
|
const main = async () => {
|
||||||
|
// generate KeyPair
|
||||||
|
const { publicKey, privateKey } = await jose.generateKeyPair('ES256K', { crv: 'secp256k1' });
|
||||||
|
const publicKeyJWK = await jose.exportJWK(publicKey);
|
||||||
|
const privateKeyJWK = await jose.exportJWK(privateKey);
|
||||||
|
|
||||||
|
const key = {
|
||||||
|
"id": `${DID}#key1`,
|
||||||
|
"type": "EcdsaSecp256k1VerificationKey2019",
|
||||||
|
"controller": `${DID}`,
|
||||||
|
"publicKeyJwk": publicKeyJWK
|
||||||
|
}
|
||||||
|
const didDocument = DID_DOCUMENT_FRAME;
|
||||||
|
didDocument.id = key.controller;
|
||||||
|
didDocument.verificationMethod = [key];
|
||||||
|
didDocument.authentication = [key.id];
|
||||||
|
didDocument.assertionMethod = [key.id];
|
||||||
|
|
||||||
|
console.log('=== GENERATED DID DOCUMENT (./docs/did.json) ===');
|
||||||
|
console.log(JSON.stringify(didDocument, null, 2));
|
||||||
|
fs.writeFileSync('./docs/did.json', JSON.stringify(didDocument, null, 2));
|
||||||
|
|
||||||
|
console.log('=== GENERATED PRIVATEKEY JWK (./keys/jwk.json) ===');
|
||||||
|
console.log(JSON.stringify(privateKeyJWK, null, 2));
|
||||||
|
fs.writeFileSync('./keys/jwk.json', JSON.stringify(privateKeyJWK, null, 2));
|
||||||
|
console.log('NOTE: DO NOT SHARE THE JWK\n');
|
||||||
|
|
||||||
|
console.log(`=== NEXT STEP ===
|
||||||
|
1. commit and push the generated DID Document.
|
||||||
|
git add ./docs/did.json
|
||||||
|
git commit -m "generate did document"
|
||||||
|
git push
|
||||||
|
2. Setup github pages on GitHub so that publishes 'docs' directory of main branch in this repository.
|
||||||
|
https://docs.github.com/ja/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site
|
||||||
|
3. Check Your Github Pages are deployed.
|
||||||
|
4. Resolve generated DID:web in Universal Resolver
|
||||||
|
Generated DID: ${DID}
|
||||||
|
`)
|
||||||
|
};
|
||||||
|
|
||||||
|
main();
|
||||||
48
src/index.js
48
src/index.js
@@ -1,48 +0,0 @@
|
|||||||
const { randomBytes } = require('crypto');
|
|
||||||
const secp256k1 = require('secp256k1');
|
|
||||||
const bs58 = require('bs58');
|
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
// Setting
|
|
||||||
const DOMAIN = 'chike.xyz';
|
|
||||||
const GH_PROJECT = 'did-web-on-gh-pages';
|
|
||||||
|
|
||||||
|
|
||||||
// Templates
|
|
||||||
const DID = `did:web:${DOMAIN}:${GH_PROJECT}`;
|
|
||||||
const DID_DOCUMENT_FRAME = {
|
|
||||||
"@context": "https://www.w3.org/ns/did/v1",
|
|
||||||
"id": '',
|
|
||||||
"verificationMethod": [],
|
|
||||||
"authentication": [],
|
|
||||||
"assertionMethod": [],
|
|
||||||
}
|
|
||||||
|
|
||||||
const main = async () => {
|
|
||||||
// generate privKey
|
|
||||||
let privKey
|
|
||||||
do {
|
|
||||||
privKey = randomBytes(32)
|
|
||||||
} while (!secp256k1.privateKeyVerify(privKey));
|
|
||||||
|
|
||||||
// get the public key in a compressed format
|
|
||||||
const pubKey = secp256k1.publicKeyCreate(privKey);
|
|
||||||
|
|
||||||
const key = {
|
|
||||||
"id": `${DID}#key1`,
|
|
||||||
"type": "Ed25519VerificationKey2018",
|
|
||||||
"controller": `${DID}`,
|
|
||||||
"publicKeyBase58": bs58.encode(pubKey)
|
|
||||||
}
|
|
||||||
const didDocument = DID_DOCUMENT_FRAME;
|
|
||||||
didDocument.id = key.controller;
|
|
||||||
didDocument.verificationMethod = [key];
|
|
||||||
didDocument.authentication = [key.id];
|
|
||||||
didDocument.assertionMethod = [key.id];
|
|
||||||
|
|
||||||
console.log('===GENERATED DID DOCUMENT===');
|
|
||||||
console.log(JSON.stringify(didDocument, null, 2));
|
|
||||||
fs.writeFileSync('./docs/did.json', JSON.stringify(didDocument, null, 2));
|
|
||||||
};
|
|
||||||
|
|
||||||
main();
|
|
||||||
Reference in New Issue
Block a user