mirror of
https://github.com/mosip/inji-wallet.git
synced 2026-01-09 13:38:01 -05:00
* [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>
161 lines
4.5 KiB
TypeScript
161 lines
4.5 KiB
TypeScript
import {Dimensions, Platform} from 'react-native';
|
|
import {
|
|
DEBUG_MODE,
|
|
ESIGNET_HOST,
|
|
MIMOTO_HOST,
|
|
LIVENESS_DETECTION,
|
|
} from 'react-native-dotenv';
|
|
import {Argon2iConfig} from './commonUtil';
|
|
import {VcIdType} from '../machines/VerifiableCredential/VCMetaMachine/vc';
|
|
import {KeyTypes} from './cryptoutil/KeyTypes';
|
|
|
|
export let MIMOTO_BASE_URL = MIMOTO_HOST;
|
|
export let ESIGNET_BASE_URL = ESIGNET_HOST;
|
|
export let DEBUG_MODE_ENABLED = DEBUG_MODE === 'true';
|
|
|
|
export const LIVENESS_CHECK = LIVENESS_DETECTION === 'true';
|
|
export const LIVENESS_THRESHOLD = 0.4;
|
|
|
|
export const changeCrendetialRegistry = (host: string) =>
|
|
(MIMOTO_BASE_URL = host);
|
|
export const changeEsignetUrl = (host: string) => (ESIGNET_BASE_URL = host);
|
|
|
|
export const COMMON_PROPS_KEY: string =
|
|
'CommonPropsKey-' + '6964d04a-9268-11ed-a1eb-0242ac120002';
|
|
|
|
export const MY_VCS_STORE_KEY = 'myVCs';
|
|
|
|
export const RECEIVED_VCS_STORE_KEY = 'receivedVCs';
|
|
|
|
export const MY_LOGIN_STORE_KEY = 'myLogins';
|
|
|
|
export const BACKUP_ENC_KEY = 'backupEncKey';
|
|
|
|
export const BACKUP_ENC_KEY_TYPE = 'backupEncKeyType';
|
|
|
|
export const BACKUP_ENC_TYPE_VAL_PASSWORD = 'password';
|
|
|
|
export const BACKUP_ENC_TYPE_VAL_PHONE = 'phone';
|
|
export const UPLOAD_MAX_RETRY = 2;
|
|
|
|
export let individualId = {id: '', idType: 'UIN' as VcIdType};
|
|
|
|
export const GET_INDIVIDUAL_ID = (currentIndividualId: IndividualId) => {
|
|
individualId = currentIndividualId;
|
|
};
|
|
|
|
export const ACTIVITY_LOG_STORE_KEY = 'activityLog';
|
|
|
|
export const SETTINGS_STORE_KEY = 'settings';
|
|
|
|
export const APP_ID_LENGTH = 12;
|
|
|
|
export const SHOW_FACE_AUTH_CONSENT_SHARE_FLOW = 'showFaceAuthConsentShareFlow';
|
|
|
|
export const SHOW_FACE_AUTH_CONSENT_QR_LOGIN_FLOW =
|
|
'showFaceAuthConsentQrLoginFlow';
|
|
|
|
// Numbers and Upper case Alphabets without confusing characters like 0, 1, 2, I, O, Z
|
|
// prettier-ignore
|
|
export const APP_ID_DICTIONARY = [
|
|
'3', '4', '5', '6', '7', '8', '9',
|
|
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L',
|
|
'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y',
|
|
];
|
|
|
|
export const API_CACHED_STORAGE_KEYS = {
|
|
fetchIssuers: 'CACHE_FETCH_ISSUERS',
|
|
fetchIssuerConfig: (issuerId: string) =>
|
|
`CACHE_FETCH_ISSUER_CONFIG_${issuerId}`,
|
|
fetchIssuerWellknownConfig: (issuerId: string) =>
|
|
`CACHE_FETCH_ISSUER_WELLKNOWN_CONFIG_${issuerId}`,
|
|
fetchTrustedVerifiers: 'CACHE_FETCH_TRUSTED_VERIFIERS',
|
|
};
|
|
|
|
export function isIOS(): boolean {
|
|
return Platform.OS === 'ios';
|
|
}
|
|
export const SUPPORTED_KEY_TYPES = {
|
|
ED25519: KeyTypes.ED25519,
|
|
'ECC K1': KeyTypes.ES256K,
|
|
'ECC R1': KeyTypes.ES256,
|
|
RSA: KeyTypes.RS256,
|
|
};
|
|
|
|
export function isAndroid(): boolean {
|
|
return Platform.OS === 'android';
|
|
}
|
|
|
|
export const ENOENT = 'No such file or directory';
|
|
|
|
export const androidVersion: number = Number(Platform.Version);
|
|
|
|
// Configuration for argon2i hashing algorithm
|
|
export const argon2iConfig: Argon2iConfig = {
|
|
iterations: 5,
|
|
memory: 16 * 1024,
|
|
parallelism: 2,
|
|
hashLength: 20,
|
|
mode: 'argon2i',
|
|
};
|
|
|
|
export const argon2iConfigForUinVid: Argon2iConfig = {
|
|
iterations: 5,
|
|
memory: 16 * 1024,
|
|
parallelism: 2,
|
|
hashLength: 5,
|
|
mode: 'argon2i',
|
|
};
|
|
|
|
export const argon2iConfigForBackupFileName: Argon2iConfig = {
|
|
iterations: 5,
|
|
memory: 16 * 1024,
|
|
parallelism: 2,
|
|
hashLength: 8,
|
|
mode: 'argon2id',
|
|
};
|
|
export const argon2iConfigForPasswordAndPhoneNumber: Argon2iConfig = {
|
|
// TODO: expected iterations for hashing password and phone Number is 600000
|
|
iterations: 500,
|
|
memory: 16 * 1024,
|
|
parallelism: 2,
|
|
hashLength: 30,
|
|
mode: 'argon2id',
|
|
};
|
|
|
|
export const argon2iSalt =
|
|
'1234567891011121314151617181920212223242526272829303132333435363';
|
|
|
|
export type IndividualId = {
|
|
id: string;
|
|
idType: VcIdType;
|
|
};
|
|
|
|
export const TECHNICAL_ERROR = 'Technical error';
|
|
export const NETWORK_REQUEST_FAILED = 'Network request failed';
|
|
export const IOS_SIGNIN_FAILED = 'iCloud not available';
|
|
export const REQUEST_TIMEOUT = 'request timeout';
|
|
export const BIOMETRIC_CANCELLED = 'User has cancelled biometric';
|
|
export const GOOGLE_DRIVE_NAME = 'Google Drive';
|
|
export const GMAIL = 'gmail';
|
|
export const APPLE = 'Apple';
|
|
export const ICLOUD_DRIVE_NAME = 'iCloud';
|
|
export const DEFAULT_ECL = 'L';
|
|
export const DEFAULT_QR_HEADER = 'INJIQUICKSHARE://';
|
|
export const MAX_QR_DATA_LENGTH = 4296;
|
|
|
|
export const INTRO_SLIDER_LOGO_MARGIN = Dimensions.get('screen').width * 0.45;
|
|
|
|
export const COPILOT_PRE_FINAL_STEP: number = 5;
|
|
export const COPILOT_FINAL_STEP: number = 6;
|
|
export const COPILOT_HEIGHT: number = 0.22;
|
|
export const KEY_MANAGEMENT_STEP = 7;
|
|
export const copilotTestID = {
|
|
'1': 'help',
|
|
'2': 'download',
|
|
'3': 'scan',
|
|
'4': 'history',
|
|
'5': 'settings',
|
|
'6': 'cardView',
|
|
};
|