Skip to content

Commit dc0dd64

Browse files
author
Joel Thorstensson
authored
fix(dids): Verify eip55 formatted CACAOs correctly (#184)
* fix(dids): Verify eip55 formatted CACAOs correctly * fix lint
1 parent 24c7cc4 commit dc0dd64

2 files changed

Lines changed: 12 additions & 2 deletions

File tree

packages/dids/src/did.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,14 @@ function isResolver(resolver: Resolver | ResolverRegistry): resolver is Resolver
113113
return 'registry' in resolver && 'cache' in resolver
114114
}
115115

116+
function issuerEquals(dida: string, didb: string): boolean {
117+
if (dida === didb) return true
118+
if (dida.startsWith('did:pkh:eip155:1:')) {
119+
return dida.toLowerCase() === didb.toLowerCase()
120+
}
121+
return false
122+
}
123+
116124
/**
117125
* Interact with DIDs.
118126
*/
@@ -368,7 +376,8 @@ export class DID {
368376
const signerDid = didResolutionResult.didDocument?.id
369377
if (
370378
options.issuer &&
371-
options.issuer === options.capability?.p.iss &&
379+
options.capability &&
380+
issuerEquals(options.issuer, options.capability?.p.iss) &&
372381
signerDid === options.capability.p.aud
373382
) {
374383
if (!options.verifiers) throw new Error('Registered verifiers needed for CACAO')

packages/dids/test/provider-behavior.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,10 @@ describe('`createDagJWS method`', () => {
375375
expect(did.hasCapability).toBe(true)
376376

377377
// Valid capability
378+
// Ceramic always uses lower case DID PKH for eip155
378379
await expect(
379380
did.verifyJWS(res.jws, {
380-
issuer: `did:pkh:eip155:1:${wallet.address}`,
381+
issuer: `did:pkh:eip155:1:${wallet.address.toLowerCase()}`,
381382
capability: cacao,
382383
atTime: new Date('2021-10-30T16:25:24.000Z'),
383384
}),

0 commit comments

Comments
 (0)