Skip to content

Commit

Permalink
fix: Claim hash
Browse files Browse the repository at this point in the history
  • Loading branch information
simonas-notcat committed Mar 6, 2020
1 parent d764531 commit d00b9c6
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 12 deletions.
6 changes: 3 additions & 3 deletions packages/daf-core/src/entities/claim.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import {
BaseEntity,
ManyToOne,
JoinTable,
PrimaryGeneratedColumn,
PrimaryColumn,
OneToMany,
ManyToMany,
BeforeInsert,
Expand All @@ -14,8 +14,8 @@ import { Credential } from './credential'

@Entity()
export class Claim extends BaseEntity {
@PrimaryGeneratedColumn()
id: string
@PrimaryColumn()
hash: string

@ManyToOne(
type => Identity,
Expand Down
5 changes: 3 additions & 2 deletions packages/daf-core/src/entities/credential.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ export class Credential extends BaseEntity {
const value = this.credentialSubject[type]
const isObj = typeof value === 'function' || (typeof value === 'object' && !!value)
const claim = new Claim()
claim.hash = blake2bHex(this.raw + type)
claim.type = type
claim.value = value
claim.isObj = isObj
Expand Down Expand Up @@ -87,7 +88,7 @@ export class Credential extends BaseEntity {
type => Claim,
claim => claim.credential,
{
cascade: true,
cascade: ['insert'],
},
)
claims: Claim[]
Expand All @@ -100,7 +101,7 @@ export class Credential extends BaseEntity {

@ManyToMany(
type => Message,
message => message.presentations,
message => message.credentials,
)
messages: Message[]
}
11 changes: 4 additions & 7 deletions packages/daf-w3c/src/message-validator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export class MessageValidator extends AbstractMessageValidator {
const credentials: Credential[] = []
for (const jwt of data.vp.verifiableCredential) {
const verified = await verifyCredential(jwt, core.didResolver)
credentials.push(this.createCredential(verified.payload, message, jwt))
credentials.push(this.createCredential(verified.payload, jwt))
}

message.type = MessageTypes.vp
Expand All @@ -47,7 +47,7 @@ export class MessageValidator extends AbstractMessageValidator {
}

message.createdAt = this.timestampToDate(message.data.nbf || message.data.iat)
message.presentations = [this.createPresentation(data, message, message.raw, credentials)]
message.presentations = [this.createPresentation(data, message.raw, credentials)]
message.credentials = credentials

return message
Expand All @@ -70,15 +70,15 @@ export class MessageValidator extends AbstractMessageValidator {
}

message.createdAt = this.timestampToDate(message.data.nbf || message.data.iat)
message.credentials = [this.createCredential(message.data, message, message.raw)]
message.credentials = [this.createCredential(message.data, message.raw)]
return message
} catch (e) {}
}

return super.validate(message, core)
}

private createCredential(payload: VerifiableCredentialPayload, message: Message, jwt: string): Credential {
private createCredential(payload: VerifiableCredentialPayload, jwt: string): Credential {
const vc = new Credential()

vc.issuer = new Identity()
Expand All @@ -104,14 +104,12 @@ export class MessageValidator extends AbstractMessageValidator {

vc.context = payload.vc['@context']
vc.type = payload.vc.type
vc.messages = [message]

return vc
}

private createPresentation(
payload: PresentationPayload,
message: Message,
jwt: string,
credentials: Credential[],
): Presentation {
Expand Down Expand Up @@ -141,7 +139,6 @@ export class MessageValidator extends AbstractMessageValidator {
vp.type = payload.vp.type

vp.credentials = credentials
vp.messages = [message]

return vp
}
Expand Down

0 comments on commit d00b9c6

Please sign in to comment.