Skip to content

smartSenseSolutions/gaia-x-signer-tool

Repository files navigation

Gaia-X-Signer-Tool by smartSense

The Gaia-X-Signer-Tool by smartSense is a powerful application designed to facilitate seamless onboarding into the Gaia-X ecosystem. This tool empowers users to interact with the Gaia-X framework through a variety of essential use cases.

Use Cases

The Gaia-X-Signer-Tool covers the following vital use cases:

  1. Create Web Decentralized Identifiers (DID): Generate decentralized identifiers for web domains, enabling easy integration with the Gaia-X ecosystem.

  2. Verify Web Decentralized Identifiers (DID): Verify the authenticity of web-based decentralized identifiers, ensuring robust data security.

  3. Create Legal Participants on Gaia-X: Streamline the process of registering legal participants within the Gaia-X network.

  4. Create Service Offers on Gaia-X: Effortlessly create and manage service offerings as integral components of the Gaia-X ecosystem.

  5. Create Resources on Gaia-X: Simplify the creation and management of resources within the dynamic Gaia-X environment.

  6. Create Label Levels on Gaia-X: Generate label levels to enhance categorization and organization within the Gaia-X ecosystem.

  7. Verify Self-Description and Gaia-X Compliance: Verify the credibility of self-descriptions within Gaia-X and assess Gaia-X Compliance Credentials.

Getting Started

To run the Gaia-X-Signer-Tool application, follow these steps:

  1. Make sure you have Node.js version 18.17.0 installed.

  2. Copy the example environment file and configure your environment settings:

cp env-example .env
  1. Install the required dependencies:
npm ci
  1. Launch the development server:
npm run dev
  1. Access Swagger Documentation
http://localhost:8000/docs/

Tools and Technologies

  1. NodeJS
  2. ExpressJS
  3. Swagger Doc

Flow

Create a Web DID

Create Web DID Flow

Verify a Web DID

  • User need to provide web did, verification method and private key for verify
  • System will resolve did.json from provided did
  • System will find provided verification method in did.json
  • System will sign sample text with private key
  • After that system will verify sample text hash with verification method
  • System will share result of verification

Verify Web DID Flow

Sign VC and Compliance to Gaia-X

  • User will request vcs with issuer, verification method and private key
  • System will fetch all depended vcs
  • System will sign vcs
  • System will also verify signature with verification method
  • System will req for compliance credentials with all vcs
  • Compliance service will response with compliance credential
  • System will return self-description vcs and compliance credential to user
  • User will have to host this self-description vcs and compliance credential at credential subject id url which is mentioned in requested vc.

onBoardToGaiax

Verify a Self Description and Compliance Credential

  • User will request with vc url and policies
  • System will validate vc type with allowed types (gx:LegalParticipant,gx:ServiceOffering,gx:VirtualDataResource,gx:PhysicalResource,gx:VirtualSoftwareResource)
  • System will validate policy with allowed policies (integrityCheck,issuerSignature,complianceSignature,complianceCheck,complianceExpired)
  • After that system will check each policy individually
  • System will share result of verification verify-signature

Service Offering VC and Compliance

  • User will request Signer Tool Private Key, and service offering data to create service offering.
  • Signer tool will,
    1. Validate the request
    2. Resolve LP link and fetch data
    3. Fetch Did document and Extract X5U URL
    4. Decode PrivateKey and Self sign service offering unsigned json
    5. Validates dependsOn & aggregationOf vc type with allowed types(gx:ServiceOffering,gx:VirtualDataResource,gx:PhysicalResource) and prepares Service offering VP
  • Request compliance service for compliance with VP(verifiable presentation) of service offering
  • Once the compliance is done, System will respond User with Self Signed Service offering VP & Compliance credential for the service offering.
  • User will have to host this self-description vcs and compliance credential at credential subject id url which is mentioned in requested vc.

create-label-level

Label Level VC and Compliance

  • User will request SignerTool with Private Key and Label Level data
  • Signer Tool will,
    1. Validate the request
    2. Fetch Did document and Extract X5U URL
    3. Calculate Label Level and prepares Label level unsigned JSON
    4. Decode PrivateKey and Self sign Label level unsigned JSON (unsigned → signed)
  • Then signer tool will request Compliance service for compliance once the support is there.
  • Once the compliance is done, SignerTool will respond User with Label Level VC & Compliance Data.
  • At present SignerTool will return self signed VC create-label-level

Get Trust Index

  • Signer tool will calculate Trust Index Using Veracity and Transparency.
  • The formula for calculating trust index is
   trust_index = mean(veracity, transparency)
  • Veracity will be calculated by the sum of length of keychain of holder,
  • The formula for calculating veracity is,
    veracity = sum(len(keychain)
  • Transparency will be calculated using the number of optional and mandatory fields present in the service offering credential subject,
  • The formula for calculating transparency is,
    transparency = count(properties) / count(mandatoryproperties)
  • Using the value of veracity and transparency, we'll calculate trust index.

Known issue or improvement

  1. Resource Compliance support pending
  2. Label-level Compliance support pending

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages