TODO merge with idhub? DID & VC/VP library for use in the Trustchain project.
This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Daniel Armengod c25038aff3 Fixed relative paths after refactoring schemas into submodule 2024-02-01 22:12:50 +01:00
idhub_ssikit Añadido tests para la revocación de certificados 2024-02-01 21:35:31 +01:00
schemas@e033da1e8a Made schemas a submodule 2024-02-01 21:42:58 +01:00
.gitignore Added verify_presentation bindings 2023-11-27 07:26:02 +01:00
.gitmodules Fixed last commit 2024-02-01 21:45:36 +01:00
README.md Añadido el paquete didkit compilado con nuestros cambios y desduplicado los tipos de credencial. 2023-12-12 16:57:37 +01:00
didkit-0.3.2-cp311-cp311-manylinux_2_34_x86_64.whl Up-to-date con la ultima version de schemas y contexts 2024-01-25 11:02:41 +01:00
main.py Fixed relative paths after refactoring schemas into submodule 2024-02-01 22:12:50 +01:00
requirements.txt Añadido el paquete didkit compilado con nuestros cambios y desduplicado los tipos de credencial. 2023-12-12 16:57:37 +01:00
sample_usage Initial commit, added three sample VC templates and basic code showing how to generate VCs 2023-10-24 10:19:55 +02:00

README.md

Helper routines to manage DIDs/VC/VPs

This module is a wrapper around the functions exported by SpruceID's DIDKit framework.

Verifiable Credential issuance

Verifiable Credential templates are stored as Jinja2 (TBD) templates in /vc_templates folder. Please examine each template to see what data must be passed to it in order to render.

The data passed to the template must at a minimum include:

  • issuer_did
  • subject_did
  • vc_id

For example, in order to render /schemas/member-credential.json:

from jinja2 import Environment, FileSystemLoader, select_autoescape
import idhub_ssikit

env = Environment(
    loader=FileSystemLoader("vc_templates"),
    autoescape=select_autoescape()
)
unsigned_vc_template = env.get_template("member-credential.json")

issuer_user = request.user
jwk_issuer = didkit.generate_ed25519_key()
jwk_subject = didkit.generate_ed25519_key()

did_issuer = didkit.key_to_did("key", jwk_issuer)
did_subject = didkit.key_to_did("key", jwk_subject)

data = {
    "vc_id": "http://pangea.org/credentials/3731",
    "issuer_did": did_issuer,
    "subject_did": "did:web:[...]",
    "issuance_date": "2020-08-19T21:41:50Z",
    "subject_is_member_of": "Pangea"
}
signed_credential = idhub_ssikit.render_and_sign_credential(
    unsigned_vc_template,
    issuer_did_controller_key,
    data
)