pyvckit/README_es.md

2.9 KiB

PyVckit

PyVckit es una librería para:

  • firmar credenciales verificables
  • verificar credenciales verificables
  • generar presentaciones verificables
  • verificar presentaciones verificables

Esta libreria esta fuertemente inspirada en didkit de SpruceId y pretende mantener compatibilidad con ella.

Por ahora la criptografía soportada es solo EdDSA con una firma Ed25519Signature2018.

Instalación

Por ahora la instalación es desde el repositorio:

  python -m venv env
  source env/bin/activate
  git clone https://gitea.pangea.org/ereuse/pyvckit.git
  cd pyvckit
  pip install -r requirements.txt

Cli

El modo de uso bajo la linea de comandos seria el siguiente:

generar un par de claves:

  python did.py -n keys > keypair.json

generar un identificador did:

  python did.py -n did -k keypair.json

generar una credencial firmada de ejemplo:

Se genera un ejemplo de credencial que es el que aparece en la plantilla credential_tmpl del fichero templates.py

  python sign_vc.py -k keypair.json > credential_signed.json

verificar una credencial firmada:

  python verify_vc.py credential_signed.json

generar una presentación verificable:

  python sign_vp.py -k keypair.json -c credential_signed.json > presentation_signed.json

verificat una presentación verificable:

  python verify_vp.py presentation_signed.json

Uso como librería

En los test podras encontrar ejemplos de uso. Ahora explicare los casos habituales

generar un par de claves:

    from pyvckit.did import generate_keys
    key = generate_keys()

generar un identificador did:

    from pyvckit.did import generate_keys, generate_did
    key = generate_keys()
    did = generate_did(key)

generar una credencial firmada:

Suponiendo que credential es una credencial válida. credential es una variable de tipo string

    from pyvckit.did import generate_keys, generate_did, get_signing_key
    from pyvckit.sign_vc import sign

    key = generate_keys()
    did = generate_did(key)
    signing_key = get_signing_key(key)
    vc = sign(credential, signing_key, did)

verificar una credencial firmada:

Suponiendo que vc es una credencial verificable correctamente firmada

    import json
    from pyvckit.verify import verify_vc

    verified = verify_vc(json.dumps(vc))

generar una presentación verificable:

    from pyvckit.did import generate_keys, generate_did, get_signing_key
    from pyvckit.sign_vp import sign_vp

    holder_key = generate_keys()
    holder_did = generate_did(holder_key)
    holder_signing_key = get_signing_key(holder_key)
    vp = sign_vp(holder_signing_key, holder_did, vc_string)

verificat una presentación verificable:

    from pyvckit.verify_vp import verify_vp
    verified = verify_vp(json.dumps(vp))