* [INJIMOB-1629] add an api to fetch the trusted verifiers list for vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add screens for showing vcs matching openId4vp authorization request and selecting VCs Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add states in scan machine to show loader screen when vp sharing is started Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] send events to parent machine from openId4vp machine to update UI when performing vp sharing Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] change the position of check box in vc container in vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add styles to send vp screen elements to match wireframe and add context variable to store vp sharing purpose Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] show error screen if no credential in wallet matches with authorization request Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] show confirmation pop up when user decline the consent for sharing vp Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] show error screen if the verifier authentication is failed after scanning vp sharing qr code Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] move error and overlay details assigning logic to send vp screen controller Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add translations for vp sharing flow texts in all languages Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] make changes in card skeleton component to show vc card loader in vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] fix issues with reject button in sharing vp screen Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add support for sharing vp with out selfie from kebab menu Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add support for sharing vp with selfie from kebab menu Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add missing translations for error and overlay screen texts of vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add logic in scan screen to show error screens in vp sharing from kebab menu flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add logic to filter the VCs based on the type of the VC in vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812]: generate proof for vp token and send vp Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1629] show generic error message if any error occured while validating vp qr code Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add logic to allow user retry vp sharing 3 times if any technical error occurred Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] add react method in native module to send the generated vp response metadata and make changes to show any errors occured after sharing vp Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-1629] show success screen if vp is shared successfully to the verifier Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812]: refactor proof generation and integrate remote openid4vp package Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-812]: refactor proof generation and integrate remote openid4vp package Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-812] make changes in the code to fetch the VCs properly if scope is present in the authorization code Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] fix the logic of checking if order field value in issuer wellknown is null and empty or not Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] move qr login and openid4vp red id's to scan actions Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] remove unnecessary logs Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] rename openid4vp actions to make them more meaningful and remove unnecessary events in send vp screen controller Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] show error screen if none of the selected VC has image but user chosen share with selfie option Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] add guard logic for checking if any of the selected VC has image or not Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812]: update package resolved with openid4vp library Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-812] fix the logic of retry button in technical error screen and perform the vp sharing again when user click on retry button Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] show specific error screen if required info is missing in qr code Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812]: refactor native module and wrapper with updated library name Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1709]: Integrate VC verifier aar for Vc verification of Mosip VC (#1624) * [INJIMOB-1709]: integrate VC verifier aar for Vc verification of Mosip VC Signed-off-by: Alka Prasad <prasadalka1998@gmail.com> * [INJIMOB-1709]: Handling Response from Vc Verifier Library Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-1709]: Removed mavenLocal from build.gradle Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-1709]: Updated build.gradle Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-1709]: Removed Certify from isMosipVC Condition. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> * [INJIMOB-1709]: Adding isAndroid check and verifying using digital bazaar for iOs. Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> --------- Signed-off-by: Alka Prasad <prasadalka1998@gmail.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> Co-authored-by: Alka Prasad <prasadalka1998@gmail.com> * [INJIMOB-1629] rename openId4VP to openID4VP in all files and address pr comments Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] fetch trusted verifiers list from mimoto end point Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] rename openId4VP to openID4VP in all files Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] make trusted verifier api call cache preferred Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] rename openId4VP to openID4VP in all places Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812]: refactor and update openid4vp swift library Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-812] remove code related to scope in openid4vp flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] remove code related to type in openid4vp actions Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] rename response_uri to response_uris in openid4vp native wrappers Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] rename typegen file in openid4vp machine Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] change target state of checkFaceAuthConsent to getTrustedVerifiersList Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812]: update openid4vp swift package Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-2097]: bump up app version to 0.15.0 (#1631) Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> Co-authored-by: adityankannan-tw <adityan410pm@gmail.com> * [INJIMOB-1884] remove SetupKeySelectionScreen (#1632) Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com> * [INJIMOB-812] change the conditional logic for checking if downloading error is generic or not in issuer guards and selectors Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] fetch the trusted verifiers list properly from api response Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] send the list of selected vcs images to face scanner machine only if face is available Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] fix home button navigation issue in error screen of vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] move openid4vp machine to showError state if there is any occurred in vp sharing flow and reset error when user navigates to home screen Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] fix some flows in vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> * [INJIMOB-812] fix the logic for showing the error screen as part of scan screen in vp sharing flow Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> --------- Signed-off-by: PuBHARGAVI <46226958+PuBHARGAVI@users.noreply.github.com> Signed-off-by: adityankannan-tw <adityan410pm@gmail.com> Signed-off-by: Alka Prasad <prasadalka1998@gmail.com> Signed-off-by: BalachandarG <balachandar.g@thoughtworks.com> Signed-off-by: Abhishek Paul <paul.apaul.abhishek.ap@gmail.com> Co-authored-by: adityankannan-tw <adityan410pm@gmail.com> Co-authored-by: balachandarg-tw <115633327+balachandarg-tw@users.noreply.github.com> Co-authored-by: Alka Prasad <prasadalka1998@gmail.com> Co-authored-by: adityankannan-tw <109274996+adityankannan-tw@users.noreply.github.com> Co-authored-by: abhip2565 <74866247+abhip2565@users.noreply.github.com>
Inji
Inji Mobile Wallet is a mobile application specifically created to streamline all types of identification and credentials into one digital wallet. It offers a secure, trustworthy, and dependable mobile Verifiable Credentials wallet designed to fulfil the following functions
- Download and store Verifiable Credentials
- Conduct offline face authentication
- Share Verifiable Credentials
- Enable users to log in to online portals
for more details refer here
Setup PreRequisites
Be sure to have the following build tools installed before proceeding:
- React Native 0.71.8
- Hermes Engine enabled
- Expo 49.0.16
- node v16.19.0
- npm 8.19.3
Android
- Java 11
- Gradle 7.5.1
- Android SDK
- minSdkVersion = 23
- compileSdkVersion = 33
- targetSdkVersion = 33
- ndkVersion = 21.4.7075529
- kotlinVersion = 1.9.0
iOS
- XCode = >15
- Minimum Deployment Target = 13.0
- cocoapods > 1.12
- Ruby >= 2.6.10
Configuring the Environment
Create a .env.local file using .env as your template in your root directory :
# Mimoto Server
MIMOTO_HOST = https://api.collab.mosip.net/
# ESignet Server
ESIGNET_HOST = https://esignet.collab.mosip.net/
# Telemetry Server
OBSRV_HOST = https://dataset-api.obsrv.mosip.net
Telemetry Dashboard = https://druid.obsrv.mosip.net/unified-console.html#workbench
for more information on the backend services refer here.
Building & Running for Android
Generate keystore
# Generate and use Release keystore for Publishing to Play store
keytool \
-genkey -v \
-storetype PKCS12 \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-storepass '<USE-YOUR-RELEASE-PASSWORD-HERE>' \
-keypass '<USE-YOUR-RELEASE-PASSWORD-HERE>' \
-alias androidreleasekey \
-keystore android/app/release.keystore \
-dname "CN=io.mosip.residentapp,OU=,O=,L=,S=,C=US"
Build via Android Studio
The app is available in this repository's frontend/android directory. Open this directory in Android Studio (version
4.1 and above) and the app can be built and run from there.
More info here: Build your app using Android Studio
Build via command line
You need Android SDK CLI to build APK.
# 1. Install dependencies
npm install
# 2. Setup the environment variables for the keystore
# Debug keystore
export DEBUG_KEYSTORE_ALIAS=androiddebugkey
export DEBUG_KEYSTORE_PASSWORD=android
# Release keystore
export RELEASE_KEYSTORE_ALIAS=androidreleasekey
export RELEASE_KEYSTORE_PASSWORD=<USE-YOUR-RELEASE-PASSWORD-HERE>
# https://hostname/mimoto is the Mimoto service url
export BACKEND_SERVICE_URL=https://hostname/v1/mimoto
# Build for MOSIP test
npm run build:android:mosip
More info here: Build your app from the command line
Building & Running for iOS
Build for TestFlight
- Install all dependencies
npm install
npx pod-install
- Open the
ios/directory in XCode - Set the build target to "Any iOS device (arm64)"
- Use an Apple Developer account that can provision builds for release/TestFlight
- Don't forget to bump the version number when creating an archive
- Open the Product menu and from there click Archive
- Once done you can follow the dialog wizard to distribute the app to TestFlight
- Go to your App Store Connect dashboard to manage the newly-uploaded build.
More info here:
- React Native - Publishing to the App Store
- Apple Developer - Distributing Your App for Beta Testing and Releases
Contributions
Please refer here for contributing to Inji
Credits
Credits listed here
Troubleshooting
If you can't get this to work, see the Troubleshooting page. this project runtime can be debugged using Flipper.
Learn More
To learn more about React Native, take a look at the following resources:
- React Native Website - learn more about React Native.
- Getting Started - an overview of React Native and how setup
your
environment. - Learn the Basics - a guided tour of the React Native basics.
- Blog - read the latest official React Native Blog posts.
@facebook/react-native- the Open Source; GitHub repository for
React Native.

