Inji
GitHubCommunityWhat's NewChatBot
  • Inji
    • Try It Out
      • Using Mock Data
    • Use case
    • Resources
    • Roadmap
      • Roadmap 2025
      • Roadmap 2024
    • Supported Integrations
      • MOSIP
    • Project Governance
    • Contribution
      • Code Contribution
      • Code of Conduct
    • GenderMag
    • License
    • Setup
      • Infrastructure Requirements
      • Deploy
  • Inji Wallet
    • Inji Mobile
      • Overview
        • Features
      • Develop
        • Architecture
        • Technical Stack
        • Components
        • Integration Guides
          • Face Match
          • Secure Keystore
          • Tuvali
            • Permissions & Requirements
            • Tuvali API Documentation
          • BLE Verifier
          • PixelPass
          • Telemetry
          • VCI-Client
          • OpenID4VP
        • Specifications
          • Face SDK Specifications
        • Backend Services
          • Mimoto
          • eSignet
          • Inji Certify
        • Customizations
          • Workflow customization
          • UI customization
          • Locale customization
          • Configuration
          • Credential Providers
      • Test
        • Try It Out
          • Inji Mobile - Collab Guide
        • Workflow
        • End User Guide
      • Setup
        • Local Setup
      • Releases
        • Version 0.16.0
          • Test Report
        • Version 0.15.1
          • Test Report
        • Version 0.15.0
          • Test Report
        • Version 0.14.1
          • Test Report
        • Version 0.14.0
          • Test Report
        • Version 0.13.1
          • Test Report
        • Version 0.13.0
          • Test Report
        • Version 0.12.0
          • Test Report
        • Version 0.11.0-Inji
          • Test Report
        • Version 0.11.0
        • Version DP2
          • Test Report
        • Version 0.10.0
          • Test Report
        • Version DP1
        • Version 0.9.1
          • Test Report
        • Version 0.9.0
          • Test Report
    • Inji Web
      • Overview
        • Features
      • Develop
        • Architecture
        • Technology Stack
        • Backend services
          • Mimoto - BFF
          • eSignet - Authentication Layer
          • Configurations
        • Customizations
          • UI Customizations
          • Locale Customizations
          • Credential Providers
          • Customize VC PDF Template
        • Supported Browsers
      • Test
        • Try It Out
          • Inji Web - Collab Guide
        • Workflow
        • End User Guide
      • Setup
        • Local setup
      • Releases
        • Version 0.12.0
          • Test Report
        • Version v0.11.1
          • Test Report
        • Version 0.11.0
          • Test Report
        • Version 0.10.0
          • Test Report
        • Version 0.9.0
          • Test Report
        • Version 0.8.1
        • Version 0.8.0
          • Test Report
  • INJI CERTIFY
    • Overview
      • Features
    • Develop
      • Technology Stack
      • Components
      • Tested Operating Systems
    • Test
      • Functional Overview
      • Workflow
    • Setup
      • Local Setup
    • Releases
      • Version 0.11.0
        • Test Report
      • Version 0.10.2
        • Test Report
      • Version 0.10.1
        • Test Report
      • Version 0.9.1
        • Test Report
      • Version 0.9.0
        • Test Report
      • Version 0.8.1
      • Version 0.8.0
    • FAQ
      • FAQ
  • INJI VERIFY
    • Overview
      • Features
    • Develop
      • Technology Stack
      • Components
      • Supported Browsers
      • Customization
        • UI Customizations
        • Locale Customizations
      • Integration Guides
        • OpenID4VP-VP Verification Integration Guide
    • Test
      • Try It Out
        • Inji Verify - Collab Guide
      • Workflow
      • End User Guide
      • Functional Overview
    • Setup
      • Local Setup
      • Generate QR Code
    • Releases
      • Version 0.12.0
        • Test Report
      • Version 0.11.1
        • Test Report
      • Version 0.11.0
        • Test Report
      • Version 0.10.0
        • Test Report
      • Version 0.9.0
        • Test Report
      • Version 0.8.1
      • Version 0.8.0
        • Test Report
  • FAQ
Powered by GitBook

Copyright © 2021 MOSIP. This work is licensed under a Creative Commons Attribution (CC-BY-4.0) International License unless otherwise noted.

On this page
  • 1. Tuvali - Sharing via BLE SDK
  • 2. Face Match SDK
  • 3. Secure Keystore SDK
  • 4. PixelPass SDK
  • 5. VCI-client SDK
  • 6. OpenID4VP - Online Sharing SDK
  • 7. Telemetry SDK

Was this helpful?

Export as PDF
  1. Inji Wallet
  2. Inji Mobile
  3. Develop

Components

Last updated 1 month ago

Was this helpful?

Inji Wallet utilizes multiple libraries to provide a seamless experience.

These libraries are accessible as NPM modules, allowing seamless integration with other mobile wallets.

The libraries are as follows:

  1. Tuvali - Sharing via BLE SDK

  2. Face Match SDK

  3. Secure Keystore SDK

  4. PixelPass SDK

  5. VCI-client SDK

  6. OpenID4VP - Online Sharing SDK

  7. Telemetry SDK(coming soon)

1. Tuvali - Sharing via BLE SDK

  • The transfer of downloaded Verifiable Credential from the Wallet to Verifier is facilitated by a React Native library named Tuvali.

  • Tuvali enables offline VC transfer between mobile devices via Bluetooth Low Energy (BLE). The below table represents the supported roles for Android and iOS devices.

Wallet
Verifier
VC transfer support

Android

Android

Yes

iOS

Android

Yes

Android

iOS

No

iOS

iOS

No

  • Tuvali is actively developed and maintained by MOSIP.

  • It does not support iOS for initiating the BLE exchanges, hence preventing two iOS devices from transferring VC.

Note:

2. Face Match SDK

This SDK internally employs a tflite model, which must be created by the integrating party. The model, trained using resident faces, is stored on the MOSIP file server. Inji Wallet currently utilizes the face matcher SDK (soon to be replaced by the NPM module) for offline face authentication.

The SDK is employed in two scenarios:

During Offline VC Sharing: Residents can perform selfie authentication before sharing the VC with the relying party. The app opens the camera, allowing residents to take a selfie, which is then validated against the VC image to verify the resident's presence. During Online Login: Residents can scan the QR code from the relying party portal and opt to log in using Inji Wallet for services. In this process, residents undergo selfie authentication against the VC to confirm their presence.

3. Secure Keystore SDK

The secure-keystore library is designed for creating and storing key pairs in the hardware keystore of devices. The library supports encryption, decryption, HMAC calculation, and signing with aliases created during key pair generation.

This library is available for both Android and iOS platforms:

Inji Wallet integrates with the secure-keystore library to ensure secure key management. To optimize the key size during credential download requests, Inji Wallet uses RSA-2048, ECR1, ECK1, ED25519 keys.

Note:

  • Compatible with devices that support a hardware keystore.

4. PixelPass SDK

The PixelPass library offers a powerful solution for creating and decoding QR codes for Verifiable Credentials (VCs). It is designed to optimize the size of the data encoded within a QR code, making it easier to store and share credential information. The library achieves this by utilizing advanced compression and encoding techniques, ensuring smaller QR codes that maintain the integrity and security of the data.

PixelPass uses zlib compression with a level 9 setting, which significantly reduces the data size before encoding. It then applies base45 encoding to further compress the data into a QR code-friendly format. Additionally, the library can decode any QR code data previously encoded using its own compression and encoding algorithms, ensuring seamless interoperability.

Note:

  • Refer to the PixelPass repository

5. VCI-client SDK

VCI-Client library carries out the credential request from the consumer application (mobile wallet or web) and redirects the issuance/issuer. The library creates a request with the credential format, jwtproof of the wallet, issuer metadata and the access token received for authorization and provides VC as the response back to the consumer application for storage.

Note:

  • Refer to the VCI-Client repository

6. OpenID4VP - Online Sharing SDK

This OpenID4VP library enables consumer applications (mobile wallet) to share users Verifiable Credentials with Verifiers who request them online. It adheres to the OpenID4VP specification which outlines the standards for requesting and presenting Verifiable Credentials.

This library follows the below steps to share the Verifiable Presentation with the Requested Verifier:

  1. Receives the Verifier's Authorization Request sent by the consumer application (mobile wallet).

  2. Authenticates the Verifier using the received client_id and validates the whole Request to check if the required details are present or not and then returns the Authorization Request to the consumer application if all the validations are successful.

  3. Receives the list of Verifiable Credentials from the consumer application which are selected by the consumer application end-user based on the credentials requested as part of Verifier Authorization request.

  4. Constructs the vp_token without proof section and sends it back to the consumer application for generating Json Web Signature (JWS).

  5. Receives the generated signature along with the other details and generates vp_token with proof section & presentation_submission.

  6. Sends a POST request with generated vp_token and presentation_submission to the received Verifier's response_uri endpoint.

Note:

  • Refer to the inji-openid4vp repository

  • Currently, the vp_token uses the Ed25519Signature2020 type for digital signatures.

7. Telemetry SDK

Note: The publication of this project is currently a work in progress and has not been released yet. Stay tuned for further announcements!

To learn more about Tuvali's implementation, refer .

For information on Tuvali's permissions and requirements, refer .

To understand Tuvali and Inji Wallet integration, along with API documentation, refer.

Maven snapshots are available

The face matcher SDK internally implements native functionalities for Android and iOS, utilizing and to identify faces.

Upon the initial launch of Inji Wallet, the model is downloaded in the background and stored in the cache. Refer to check the API specifications for the face matcher model.

For Android: Refer to the .

For iOS: Refer to the .

To check all the APIs supported by this module, refer .

To understand the library and access API documentation, refer .

Maven snapshots are available .

Additionally, for a JSON data, the library employs CBOR encoding and decoding to minimize the size even further. When a JSON Mapper similar to is provided, PixelPass maps the data, applies CBOR encoding/decoding, and compresses the data, achieving maximum size reduction. Developed and maintained by MOSIP, PixelPass is continually updated to provide reliable and efficient QR code generation and decoding capabilities.

To understand about the installation and the API documentation, refer .

For a hands-on experience of Generate a VC, Generate QR Code for the VC and Verify the same using Inji Verify, please click .

To check the NPM module, click.

Maven snapshots are available

To understand about the installation and the API documentation, refer .

Maven snapshots are available

To understand about the installation and the API documentation, refer .

Maven snapshots are available

The module is derived from the module. It is responsible for generating events that can provide valuable analytics.

To know more about each of these, refer .

Kotlin Implementation
Swift Implementation
here
here
here
here
Tensorflow
Google ML Kit
here
secure-keystore Kotlin library
secure-keystore-iOS Swift library
here
here
here
Claim 169
Kotlin Implementation
JS Implementation
Swift Implementation
here
here
here
here
Kotlin Implementation
Swift Implementation
here
here
Kotlin Repository
Swift Repository
here
here
telemetry
sunbird telemetry
Integration Guides