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.
ssikit_trustchain/README.md

45 lines
1.3 KiB
Markdown
Raw Normal View History

2023-11-10 05:45:12 +00:00
# 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.
2023-11-10 05:45:12 +00:00
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`:
```python
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)
2023-11-10 05:45:12 +00:00
data = {
"vc_id": "http://pangea.org/credentials/3731",
"issuer_did": did_issuer,
2023-11-10 05:45:12 +00:00
"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
)
```