@energyweb/vc-verification
TypeScript icon, indicating that this package has built-in type declarations

2.1.0 • Public • Published

Energy Web Foundation Logo

VC Verification

Description

This package provides implementation for verification of Verifiable Credential and RoleEIP191JWT. The verification can be done for issuer or revoker authority, credential proof and revocation verificaiton. @energyweb/vc-verification is a typescript module.

{vc-verification} is a component of the Energy Web Decentralized Operating System

Usage

Issuer Verification

The IssuerVerification class can be used to verify issuers either with an RoleEIP191Jwt or a Verifiable Credential. The IssuerVerification verifies issuers authority, respective credential and revocation status.

import {
  CredentialResolver,
  IssuerResolver,
  RevokerResolver,
  VCIssuerVerification,
  ClaimIssuerVerification,
  EthersProviderIssuerResolver,
  EthersProviderRevokerResolver,
  IpfsCredentialResolver,
  RevocationVerification,
} from '@energyweb/vc-verification';
import { DidStore } from '@ew-did-registry/did-ipfs-store';
import { Resolver } from '@ew-did-registry/did-ethr-resolver';
import { DomainReader } from '@energyweb/credential-governance';
import { providers } from 'ethers';
import { RegistrySettings } from '@ew-did-registry/did-resolver-interface';
import { verifyCredential } from 'didkit-wasm-node';

(async () => {
  let provider: providers.provider;
  let issuerResolver: IssuerResolver = new EthersProviderIssuerResolver(
    DomainReader
  );
  let revokerResolver: RevokerResolver = new EthersProviderRevokerResolver(
    DomainReader
  );
  let credentialresolver: CredentialResolver = new IpfsCredentialResolver(
    DIDStore,
    Resolver
  );
  const revocationVerification = new RevocationVerification(
    revokerResolver,
    issuerResolver,
    credentialResolver,
    provider,
    registrySettings,
    verifyCredential
  );
  const issuerVerification = new IssuerVerification(
    issuerResolver,
    credentialResolver,
    provider,
    registrySettings,
    revocationVerification,
    verifyCredential
  );
  let issuer : 'did:ethr:ewc:0x1....';
  const role = 'role';
  issuerVerification.verifyIssuer(issuer, role);
})();

Revocation Verification

The RevocationVerification class can be used to verify statusList2021Credential and revoker's authority.

import {
  CredentialResolver,
  RevokerResolver,
  IssuerResolver,
  RevocationVerification,
  EthersProviderRevokerResolver,
  EthersProviderIssuerResolver,
  IpfsCredentialResolver,
} from '@energyweb/vc-verification';
import {
  StatusList2021Credential,
} from '@ew-did-registry/credentials-interface';
import { DidStore } from '@ew-did-registry/did-ipfs-store';
import { Resolver } from '@ew-did-registry/did-ethr-resolver';
import { DomainReader } from '@energyweb/credential-governance';
import { providers } from 'ethers';
import { RegistrySettings } from '@ew-did-registry/did-resolver-interface';
import { verifyCredential } from 'didkit-wasm-node';

(async () => {
  let provider: providers.provider;
  let issuerResolver: IssuerResolver = new EthersProviderIssuerResolver(
    DomainReader
  );
  let revokerResolver: RevokerResolver = new EthersProviderRevokerResolver(
    DomainReader
  );
  let credentialresolver: CredentialResolver = new IpfsCredentialResolver(
    DIDStore,
    Resolver
  );
  const revocationVerification = new RevocationVerification(
    revokerResolver,
    issuerResolver,
    credentialResolver,
    provider,
    registrySettings,
    verifyCredential
  );
  let credential : StatusList2021Credential;
  const role = 'role';
  revocationVerification.verifyStatusList(credential, role);
})();

Installation

This is a Node.js module available through the npm registry.

Requirements

Before installing, download and install Node.js. Node.js 16.10.0 or higher is required.

Installation is done using the following commands:

$ npm install

Build

$ npm run build

Run

$ npm run start

Testing

Unit Tests

$ npm run test-rpc

Package Sidebar

Install

npm i @energyweb/vc-verification

Weekly Downloads

79

Version

2.1.0

License

GPL-3.0-or-later

Unpacked Size

2.93 MB

Total Files

27

Last publish

Collaborators

  • kyleiankian
  • energywebdev
  • aznagy
  • bagaric
  • pkosin
  • drgorb
  • kroy
  • manihagh