Skip to content

Latest commit

 

History

History
86 lines (63 loc) · 2.18 KB

verifiable-credentials.md

File metadata and controls

86 lines (63 loc) · 2.18 KB

Status License

Verifiable Credentials

classDiagram

class Controller {
    <<Abstract>>
    + IRI id
    + List~IRI~ alsoKnownAs
    + List~VerificationMethod~ authentication
    + List~VerificationMethod~ assertionMethod
}


class Issuer~Controller~ {
    <<Service>>
    issue(Credential credential, PrivateKey privateKey) * VerifiableCredential
}


class Holder~Controller~ {
    <<Service>>
    present(Presentation presentation, PrivateKey privateKey) * VerifiablePresentation
}

class Verifier~Controller~ {
    <<Service>>
    verify(VerifiableCredential verifiableCredential, PublicKey publicKey) * Boolean
    verify(VerifiablePresentation verifiablePresentation, PublicKey publicKey) * Boolean
}



class Credential {
    <<Abstract>>
    + Context @context
    + IRI id
    + List~String~ type
    + Controller issuer
    + String issuanceDate
    + Object credentialSubject
    sign(PrivateKey privateKey)
}


class VerifiableCredential {
    <<Interface>>
    verify()
}

class Presentation {
    <<Abstract>>
    + Context @context
    + IRI id
    + List~String~ type
    + Controller holder
    + List~VerifiableCredential~ verifiableCredential
    sign(PrivateKey privateKey)
}

class VerifiablePresentation {
    <<Interface>>
    verify()
}



Controller .. Verifier
Controller .. Holder
Controller .. Issuer

Issuer "1" ..> "many" Credential : issues
Holder "1" ..> "many" Presentation : presents
Verifier "1" ..> "many" VerifiablePresentation : verifies

Holder "1" ..> "many" VerifiableCredential     : holds

VerifiablePresentation "1" ..o  "many" VerifiableCredential : contains

Credential ..|> VerifiableCredential : 
Presentation ..|> VerifiablePresentation : 
Loading

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.