Skip to content

Commit

Permalink
fix(daf-did-jwt): Fix parsing of JWT with missing typ in header
Browse files Browse the repository at this point in the history
`JwtMessageHandler` can parse them but they fail later in the the message handler chain if `typ` is missing.

Also, this fixes #291
  • Loading branch information
mirceanis committed Dec 9, 2020
1 parent 247141f commit 2c58921
Show file tree
Hide file tree
Showing 12 changed files with 47 additions and 19 deletions.
2 changes: 1 addition & 1 deletion packages/daf-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
},
"devDependencies": {
"@types/debug": "^4.1.5",
"did-resolver": "2.1.1",
"did-resolver": "2.1.2",
"typescript": "^4.0.3"
},
"files": [
Expand Down
29 changes: 26 additions & 3 deletions packages/daf-core/plugin.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,21 @@
"type": "object",
"properties": {
"@context": {
"type": "string",
"const": "https://w3id.org/did/v1"
"anyOf": [
{
"type": "string",
"const": "https://w3id.org/did/v1"
},
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"id": {
"type": "string"
Expand All @@ -34,7 +47,17 @@
"authentication": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Authentication"
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/components/schemas/PublicKey"
},
{
"$ref": "#/components/schemas/Authentication"
}
]
}
},
"uportProfile": {},
Expand Down
4 changes: 2 additions & 2 deletions packages/daf-did-jwt/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
"daf-core": "^7.0.0-beta.55",
"daf-message-handler": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-jwt": "4.7.1",
"did-resolver": "2.1.1"
"did-jwt": "4.8.0",
"did-resolver": "2.1.2"
},
"devDependencies": {
"@types/debug": "^4.1.5",
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-did-jwt/src/message-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export class JwtMessageHandler extends AbstractMessageHandler {
const resolver = { resolve: (didUrl: string) => context.agent.resolveDid({ didUrl }) }
const verified = await verifyJWT(message.raw, { resolver, audience })
debug('Message.raw is a valid JWT')
message.addMetaData({ type: decoded.header.typ, value: decoded.header.alg })
message.addMetaData({ type: decoded.header.typ || 'JWT', value: decoded.header.alg })
message.data = verified.payload
} catch (e) {
debug(e.message)
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-libsodium/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"daf-core": "^7.0.0-beta.55",
"daf-key-manager": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-jwt": "4.7.1",
"did-jwt": "4.8.0",
"elliptic": "^6.5.2",
"ethjs-signer": "^0.1.1",
"libsodium-wrappers": "^0.7.6"
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-react-native-libsodium/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
"daf-core": "^7.0.0-beta.55",
"daf-key-manager": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-jwt": "4.7.1",
"did-jwt": "4.8.0",
"elliptic": "^6.5.2",
"ethjs-signer": "^0.1.1"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-resolver-universal/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"cross-fetch": "^3.0.5",
"daf-core": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-resolver": "2.1.1"
"did-resolver": "2.1.2"
},
"devDependencies": {
"@types/debug": "^4.1.5",
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-resolver/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"dependencies": {
"daf-core": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-resolver": "2.1.1",
"did-resolver": "2.1.2",
"ethr-did-resolver": "^3.0.0",
"nacl-did": "^1.0.1",
"web-did-resolver": "^1.3.3"
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-selective-disclosure/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"daf-typeorm": "^7.0.0-beta.55",
"daf-w3c": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-jwt": "4.7.1"
"did-jwt": "4.8.0"
},
"devDependencies": {
"@types/debug": "^4.1.5",
Expand Down
2 changes: 1 addition & 1 deletion packages/daf-w3c/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"daf-resolver": "^7.0.0-beta.55",
"debug": "^4.1.1",
"did-jwt-vc": "^1.0.3",
"did-resolver": "2.1.1"
"did-resolver": "2.1.2"
},
"devDependencies": {
"@types/debug": "^4.1.5",
Expand Down
2 changes: 1 addition & 1 deletion packages/tsconfig.settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"strict": true,
"preserveConstEnums": true,
"sourceMap": true,
"target": "es5",
"target": "es6",
"module": "commonjs",
"moduleResolution": "node",
"esModuleInterop": true,
Expand Down
15 changes: 10 additions & 5 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6014,18 +6014,18 @@ did-jwt-vc@^1.0.3:
dependencies:
did-jwt "^4.4.2"

did-jwt@4.7.1:
version "4.7.1"
resolved "https://registry.yarnpkg.com/did-jwt/-/did-jwt-4.7.1.tgz#f340e4087a29385e08f1e750f88d746d4005ddd1"
integrity sha512-fQnNhQKmbNOiYIPEXxJMrSw5rLAiIsfJ6I9DX28ftsSxBDiMo7MARIzAn2V79/Bf/gI9UxIWrsyxLtuj6hd2kw==
did-jwt@4.8.0:
version "4.8.0"
resolved "https://registry.yarnpkg.com/did-jwt/-/did-jwt-4.8.0.tgz#b5d7727d264be52f5d576c6da38bee2cdc282199"
integrity sha512-7Vwv+E6st0lETniq8ygr3BFv0Af7YOATw31aIiHP3TxIJf79DHLeplI5aHQI36leh7S+cusdWlNxTxTdAPr9/A==
dependencies:
"@babel/runtime" "^7.11.2"
"@stablelib/ed25519" "^1.0.1"
"@stablelib/random" "^1.0.0"
"@stablelib/sha256" "^1.0.0"
"@stablelib/x25519" "^1.0.0"
"@stablelib/xchacha20poly1305" "^1.0.0"
did-resolver "^2.1.1"
did-resolver "^2.1.2"
elliptic "^6.5.3"
js-sha3 "^0.8.0"
uint8arrays "^1.1.0"
Expand Down Expand Up @@ -6072,6 +6072,11 @@ [email protected], did-resolver@^2.1.1:
resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-2.1.1.tgz#43796f8a3e921644e5fb15a8147684ca87019cfd"
integrity sha512-FYLTkNWofjYNDGV1HTQlyVu1OqZiFxR4I8KM+oxGVOkbXva15NfWzbzciqdXUDqOhe6so5aroAdrVip6gSAYSA==

[email protected], did-resolver@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-2.1.2.tgz#f1194fdbc087161809ce545e13c11a596f4a3928"
integrity sha512-n4YGS1CzbX48U/ChLRY3SdgiV5N3B/+yh0ToS5t+Sx4QjhVZN6ZyijUSSYbFGvz+I4qImeSZOdo6RX8JaieN7A==

did-resolver@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/did-resolver/-/did-resolver-1.1.0.tgz#27a63b6f2aa8dee3d622cd8b8b47360661e24f1e"
Expand Down

0 comments on commit 2c58921

Please sign in to comment.