Skip to content

Commit

Permalink
fix(did): verify public claim
Browse files Browse the repository at this point in the history
  • Loading branch information
JGiter committed Dec 10, 2021
1 parent 9dadda9 commit f0df566
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/modules/claims/claims.service.ts
Expand Up @@ -367,7 +367,7 @@ export class ClaimsService {
sub = this._signerService.did;
}

if (!(await this._didRegistry.verifyPublicClaim(token, iss))) {
if ((await this._didRegistry.verifyPublicClaim(token, iss)) !== iss) {
throw new Error("Incorrect signature");
}

Expand Down
13 changes: 5 additions & 8 deletions src/modules/didRegistry/didRegistry.service.ts
@@ -1,7 +1,7 @@
import { Wallet, providers } from "ethers";
import { AxiosError } from "axios";
import { KeyType } from "@ew-did-registry/keys";
import { JWT, JwtPayload } from "@ew-did-registry/jwt";
import { JWT } from "@ew-did-registry/jwt";
import { ProxyOperator } from "@ew-did-registry/proxyidentity";
import { addressOf, EwSigner, Operator } from "@ew-did-registry/did-ethr-resolver";
import {
Expand All @@ -15,7 +15,7 @@ import {
import { DIDDocumentFull, IDIDDocumentFull } from "@ew-did-registry/did-document";
import { DidStore } from "@ew-did-registry/did-ipfs-store";
import { Methods } from "@ew-did-registry/did";
import { ClaimsIssuer, ClaimsUser, IPublicClaim } from "@ew-did-registry/claims";
import { ClaimsIssuer, ClaimsUser, IPublicClaim, ProofVerifier } from "@ew-did-registry/claims";
import { SignerService } from "../signer/signer.service";
import { ERROR_MESSAGES } from "../../errors";
import { CacheClient } from "../cacheClient/cacheClient.service";
Expand Down Expand Up @@ -141,12 +141,9 @@ export class DidRegistry {
*
*/
async verifyPublicClaim(token: string, iss: string) {
const { sub } = this._jwt.decode(token) as Required<JwtPayload>;
const [holderDoc, issuerDoc] = await Promise.all([
this._cacheClient.getDidDocument(sub, true),
this._cacheClient.getDidDocument(iss, true),
]);
return this._userClaims.verify(token, { holderDoc, issuerDoc });
const issuerDoc = await this._cacheClient.getDidDocument(iss, true);
const verifier = new ProofVerifier(issuerDoc);
return verifier.verifyAssertionProof(token);
}

/**
Expand Down

0 comments on commit f0df566

Please sign in to comment.