$schema: ../codegen/schema.yaml
name: DataIntegrityProof
uri: "https://w3id.org/security#DataIntegrityProof"
entity: true
description: |
  A proof that can be added to any activity or object, allowing recipients to
  verify the identity of the actor and the integrity of the data.
defaultContext: "https://w3id.org/security/data-integrity/v1"

properties:
- singularName: cryptosuite
  functional: true
  uri: "https://w3id.org/security#cryptosuite"
  description: |
    The cryptographic suite used to create the proof.
  range:
  - "https://w3id.org/security#cryptosuiteString"

- singularName: verificationMethod
  functional: true
  uri: "https://w3id.org/security#verificationMethod"
  description: |
    A key owned by an actor according to [FEP-521a: Representing actor's public
    keys][1].

    [1]: https://w3id.org/fep/521a
  range:
  - "https://w3id.org/security#Multikey"

- singularName: proofPurpose
  functional: true
  uri: "https://w3id.org/security#proofPurpose"
  description: |
    The reason the proof was created.

    - `"assertionMethod"`
    - `"authentication"`
    - `"capabilityInvocation"`
    - `"capabilityDelegation"`
    - `"keyAgreement"`
  range:
  - fedify:proofPurpose

- singularName: proofValue
  functional: true
  uri: "https://w3id.org/security#proofValue"
  description: The proof value.
  range:
  - "https://w3id.org/security#multibase"

- singularName: created
  functional: true
  uri: "http://purl.org/dc/terms/created"
  description: The date and time the proof was created.
  range:
  - "http://www.w3.org/2001/XMLSchema#dateTime"
