gitextract_ajsfews0/ ├── .actrc ├── .coderabbit.yaml ├── .cursor/ │ ├── mcp.json │ └── rules/ │ ├── compliance-verification.mdc │ └── test-memory-optimization.mdc ├── .cursorignore ├── .cursorrules ├── .editorconfig ├── .eslintignore ├── .gitattributes ├── .gitguardian.yml ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── PULL_REQUEST_TEMPLATE.md │ ├── actionlint.yaml │ ├── actions/ │ │ ├── cache-built-deps/ │ │ │ └── action.yml │ │ ├── cache-bundler/ │ │ │ └── action.yml │ │ ├── cache-core-sdk-build/ │ │ │ └── action.yml │ │ ├── cache-gradle/ │ │ │ └── action.yml │ │ ├── cache-mobile-sdk-build/ │ │ │ └── action.yml │ │ ├── cache-pods/ │ │ │ └── action.yml │ │ ├── cache-sdk-build/ │ │ │ └── action.yml │ │ ├── cache-yarn/ │ │ │ └── action.yml │ │ ├── cleanup-gradle-artifacts/ │ │ │ └── action.yml │ │ ├── clone-android-passport-nfc-reader/ │ │ │ └── action.yml │ │ ├── create-version-bump-pr/ │ │ │ └── action.yml │ │ ├── find-ios-simulator/ │ │ │ └── action.yml │ │ ├── free-disk-space/ │ │ │ └── action.yml │ │ ├── generate-github-token/ │ │ │ └── action.yml │ │ ├── get-version/ │ │ │ └── action.yml │ │ ├── mobile-setup/ │ │ │ └── action.yml │ │ ├── push-changes/ │ │ │ └── action.yml │ │ ├── yarn-install/ │ │ │ └── action.yml │ │ └── yarnrc-hash/ │ │ └── action.yml │ └── workflows/ │ ├── block-non-dev-to-main.yml │ ├── circuits-build.yml │ ├── circuits.yml │ ├── common-ci.yml │ ├── contracts.yml │ ├── core-sdk-ci.yml │ ├── gitleaks.yml │ ├── kmp-ci.yml │ ├── mobile-bundle-analysis.yml │ ├── mobile-ci.yml │ ├── mobile-deploy-auto.yml │ ├── mobile-deploy.yml │ ├── mobile-e2e.yml │ ├── mobile-sdk-ci.yml │ ├── mobile-sdk-demo-ci.yml │ ├── mobile-sdk-demo-e2e.yml │ ├── native-shells-ci.yml │ ├── npm-publish.yml │ ├── qrcode-sdk-ci.yml │ ├── release-calendar.yml │ ├── rn-sdk-test-app-ci.yml │ ├── swift-sdk-ci.yml │ ├── web.yml │ ├── webview-app-ci.yml │ ├── webview-bridge-ci.yml │ └── workspace-ci.yml ├── .gitignore ├── .gitleaks.toml ├── .gitleaksignore ├── .gitmodules ├── .husky/ │ └── pre-commit ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .vscode/ │ ├── settings.json │ └── tasks.json ├── .watchmanconfig ├── AGENTS.md ├── CLAUDE.md ├── LICENSE ├── README.md ├── app/ │ ├── .babelrc │ ├── .bundle/ │ │ └── config │ ├── .codecov.yml │ ├── .eslintrc.cjs │ ├── .gitattributes │ ├── .github/ │ │ └── workflows/ │ │ └── test-coverage.yml │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc │ ├── .ruby-version │ ├── .tool-versions │ ├── AGENTS.md │ ├── App.tsx │ ├── Gemfile │ ├── LICENSE │ ├── README.md │ ├── android/ │ │ ├── .gitignore │ │ ├── app/ │ │ │ ├── build.gradle │ │ │ ├── debug.keystore │ │ │ ├── google-services.json │ │ │ ├── proguard-rules.pro │ │ │ └── src/ │ │ │ ├── debug/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── res/ │ │ │ │ └── xml/ │ │ │ │ └── network_security_config.xml │ │ │ ├── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── assets/ │ │ │ │ │ ├── fonts/ │ │ │ │ │ │ ├── Advercase-Regular.otf │ │ │ │ │ │ ├── DINOT-Bold.otf │ │ │ │ │ │ ├── DINOT-Medium.otf │ │ │ │ │ │ └── IBMPlexMono-Regular.otf │ │ │ │ │ └── masterList │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── proofofpassportapp/ │ │ │ │ │ ├── BackupModule.kt │ │ │ │ │ ├── BackupPackage.kt │ │ │ │ │ ├── CameraActivityPackage.java │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ ├── MainApplication.kt │ │ │ │ │ ├── NativeLoggerBridgeModule.kt │ │ │ │ │ ├── PhotoPickerActivity.java │ │ │ │ │ ├── QRCodeScannerModule.java │ │ │ │ │ ├── QRCodeScannerPackage.java │ │ │ │ │ ├── ui/ │ │ │ │ │ │ ├── CameraMLKitFragment.kt │ │ │ │ │ │ ├── PassportOCRViewManager.kt │ │ │ │ │ │ ├── QRCodeScannerViewManager.kt │ │ │ │ │ │ └── QrCodeScannerFragment.kt │ │ │ │ │ └── utils/ │ │ │ │ │ └── QrCodeDetectorProcessor.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ │ └── ic_launcher.xml │ │ │ │ ├── values/ │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── xml/ │ │ │ │ ├── backup_rules.xml │ │ │ │ ├── network_security_config.xml │ │ │ │ └── nfc_tech_filter.xml │ │ │ └── release/ │ │ │ └── java/ │ │ │ └── com/ │ │ │ └── awesomeproject/ │ │ │ └── ReactNativeFlipper.java │ │ ├── build.gradle │ │ ├── dev-keystore │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── link-assets-manifest.json │ │ └── settings.gradle │ ├── app.json │ ├── babel.config.cjs │ ├── babel.config.test.cjs │ ├── declarations.d.ts │ ├── deployments/ │ │ ├── artifacts/ │ │ │ ├── Deploy_Registry#Formatter.dbg.json │ │ │ ├── Deploy_Registry#Formatter.json │ │ │ ├── Deploy_Registry#OpenPassportRegister.dbg.json │ │ │ ├── Deploy_Registry#OpenPassportRegister.json │ │ │ ├── Deploy_Registry#PoseidonT3.dbg.json │ │ │ ├── Deploy_Registry#PoseidonT3.json │ │ │ ├── Deploy_Registry#Registry.dbg.json │ │ │ ├── Deploy_Registry#Registry.json │ │ │ ├── Deploy_Registry#SBT.dbg.json │ │ │ ├── Deploy_Registry#SBT.json │ │ │ ├── Deploy_Registry#Verifier_disclose.dbg.json │ │ │ ├── Deploy_Registry#Verifier_disclose.json │ │ │ ├── Deploy_Registry#Verifier_dsc_4096.dbg.json │ │ │ ├── Deploy_Registry#Verifier_dsc_4096.json │ │ │ ├── Deploy_Registry#Verifier_register_sha1WithRSAEncryption_65537.dbg.json │ │ │ ├── Deploy_Registry#Verifier_register_sha1WithRSAEncryption_65537.json │ │ │ ├── Deploy_Registry#Verifier_register_sha256WithRSAEncryption_65537.dbg.json │ │ │ └── Deploy_Registry#Verifier_register_sha256WithRSAEncryption_65537.json │ │ └── deployed_addresses.json │ ├── docs/ │ │ ├── DOCSTRING_STYLE_GUIDE.md │ │ ├── MOBILE_DEPLOYMENT.md │ │ ├── TREE_SHAKING.md │ │ └── examples/ │ │ └── tree-shaking/ │ │ ├── granular-circuits-example.ts │ │ ├── level2-optimal-example.ts │ │ ├── level3-migration-guide.ts │ │ ├── level3-optimal-example.ts │ │ └── optimal-pattern-example.ts │ ├── env.sample │ ├── env.ts │ ├── fastlane/ │ │ ├── DEV.md │ │ ├── Fastfile │ │ ├── Pluginfile │ │ ├── README.md │ │ ├── helpers/ │ │ │ ├── android.rb │ │ │ ├── common.rb │ │ │ ├── ios.rb │ │ │ ├── slack.rb │ │ │ └── version_manager.rb │ │ ├── helpers.rb │ │ └── test/ │ │ ├── app_name_test.rb │ │ └── helpers_test.rb │ ├── firebase.json │ ├── index.js │ ├── ios/ │ │ ├── .bundle/ │ │ │ └── config │ │ ├── .xcode.env │ │ ├── App Thinning Size Report.txt │ │ ├── AppDelegate.swift │ │ ├── CameraView.swift │ │ ├── GoogleService-Info.plist │ │ ├── LiveMRZScannerView.swift │ │ ├── LottieView.swift │ │ ├── MRZScannerModule.m │ │ ├── MRZScannerModule.swift │ │ ├── MrzOcrCorrection.swift │ │ ├── MrzResultMapper.swift │ │ ├── MrzScanEngine.swift │ │ ├── NativeLoggerBridge.m │ │ ├── NativeLoggerBridge.swift │ │ ├── NotificationService/ │ │ │ ├── Info.plist │ │ │ ├── NotificationService.h │ │ │ └── NotificationService.m │ │ ├── OpenPassport/ │ │ │ ├── GoogleService-Info.plist │ │ │ ├── Images.xcassets/ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── Info.plist │ │ │ ├── LaunchScreen.storyboard │ │ │ ├── OpenPassport.entitlements │ │ │ ├── OpenPassportDebug.entitlements │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ └── passport.json │ │ ├── OpenPassport.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── PassportOCRViewManager.m │ │ ├── PassportOCRViewManager.swift │ │ ├── PassportReader.m │ │ ├── PassportReader.swift │ │ ├── PassportReaderCore.swift │ │ ├── PhotoLibraryQRScannerViewController.swift │ │ ├── Podfile │ │ ├── PrivacyInfo.xcprivacy │ │ ├── QKMRZScannerViewRepresentable.swift │ │ ├── QRCodeScannerViewManager.m │ │ ├── QRCodeScannerViewManager.swift │ │ ├── QRScannerBridge.m │ │ ├── QRScannerBridge.swift │ │ ├── QRScannerViewController.swift │ │ ├── ScannerHostingController.swift │ │ ├── Self.xcodeproj/ │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace/ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata/ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcshareddata/ │ │ │ └── xcschemes/ │ │ │ └── OpenPassport.xcscheme │ │ ├── Self.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ ├── SelfAnalytics.swift │ │ ├── link-assets-manifest.json │ │ ├── local-pods/ │ │ │ ├── DiditSDK/ │ │ │ │ └── DiditSDK.podspec │ │ │ └── OpenSSL-Universal/ │ │ │ └── OpenSSL-Universal.podspec │ │ ├── passport.json │ │ └── scripts/ │ │ ├── install-ios-deps-if-needed.sh │ │ └── pod-install-with-cache-fix.sh │ ├── jest.config.cjs │ ├── jest.setup.js │ ├── metro.config.cjs │ ├── package.json │ ├── react-native.config.cjs │ ├── scripts/ │ │ ├── alias-imports.cjs │ │ ├── analyze-tree-shaking.cjs │ │ ├── bundle-analyze-ci.cjs │ │ ├── capture-ios-crash-artifacts.cjs │ │ ├── check-test-requires.cjs │ │ ├── cleanup-ios-build.sh │ │ ├── cleanup-private-modules.cjs │ │ ├── find-type-import-issues.mjs │ │ ├── generate-changelog.sh │ │ ├── mobile-ci-build-android.sh │ │ ├── mobile-deploy-confirm.cjs │ │ ├── release.sh │ │ ├── run-ios-simulator.cjs │ │ ├── setup-macos.sh │ │ ├── setup-private-modules.cjs │ │ ├── tag.cjs │ │ ├── test-e2e-local.sh │ │ ├── test-tree-shaking.cjs │ │ ├── tests/ │ │ │ ├── aliasImports.test.cjs │ │ │ ├── bundleAnalyzeCi.test.cjs │ │ │ ├── cleanupIosBuild.test.cjs │ │ │ ├── mobileDeployConfirm.test.cjs │ │ │ ├── mobileDeployConfirmModule.test.cjs │ │ │ └── treeShaking.test.cjs │ │ ├── upload_to_play_store.py │ │ ├── version-manager.cjs │ │ ├── version-manager.test.cjs │ │ └── version.cjs │ ├── src/ │ │ ├── assets/ │ │ │ ├── animations/ │ │ │ │ ├── launch_onboarding.json │ │ │ │ ├── loader.ts │ │ │ │ ├── passport_onboarding.json │ │ │ │ ├── passport_scan.json │ │ │ │ ├── passport_verify.json │ │ │ │ ├── proof_failed.json │ │ │ │ ├── proof_success.json │ │ │ │ ├── qr_scan.json │ │ │ │ ├── splash.json │ │ │ │ └── warning.json │ │ │ └── fonts/ │ │ │ ├── Advercase-Regular.otf │ │ │ ├── DINOT-Bold.otf │ │ │ ├── DINOT-Medium.otf │ │ │ └── IBMPlexMono-Regular.otf │ │ ├── components/ │ │ │ ├── AlertModal.tsx │ │ │ ├── BackupDocumentationLink.tsx │ │ │ ├── Disclosures.tsx │ │ │ ├── ErrorBoundary.tsx │ │ │ ├── FeedbackModal.tsx │ │ │ ├── InputField.tsx │ │ │ ├── LoadingUI.tsx │ │ │ ├── Mnemonic.tsx │ │ │ ├── PointHistoryList.tsx │ │ │ ├── SystemBars.tsx │ │ │ ├── Tips.tsx │ │ │ ├── WebViewFooter.tsx │ │ │ ├── documents/ │ │ │ │ ├── IDSelectorItem.tsx │ │ │ │ ├── IDSelectorSheet.tsx │ │ │ │ └── index.ts │ │ │ ├── homescreen/ │ │ │ │ ├── CardBottomContent.tsx │ │ │ │ ├── CardHeader.tsx │ │ │ │ ├── EmptyIdCard.tsx │ │ │ │ ├── ExpiredIdCard.tsx │ │ │ │ ├── IdAttribute.tsx │ │ │ │ ├── IdCard.tsx │ │ │ │ ├── IdCardRevealed.tsx │ │ │ │ ├── KycIdCard.tsx │ │ │ │ ├── PendingIdCard.tsx │ │ │ │ ├── SvgXmlWrapper.native.tsx │ │ │ │ ├── SvgXmlWrapper.tsx │ │ │ │ ├── SvgXmlWrapper.web.tsx │ │ │ │ ├── UnregisteredIdCard.tsx │ │ │ │ ├── cardSecurityBadge.ts │ │ │ │ └── cardStyles.ts │ │ │ ├── native/ │ │ │ │ ├── PassportCamera.tsx │ │ │ │ ├── PassportCamera.web.tsx │ │ │ │ ├── QRCodeScanner.tsx │ │ │ │ ├── QRCodeScanner.web.tsx │ │ │ │ └── RCTFragment.tsx │ │ │ ├── navbar/ │ │ │ │ ├── AadhaarNavBar.tsx │ │ │ │ ├── BaseNavBar.tsx │ │ │ │ ├── DefaultNavBar.tsx │ │ │ │ ├── DocumentFlowNavBar.tsx │ │ │ │ ├── HeadlessNavForEuclid.tsx │ │ │ │ ├── HomeNavBar.tsx │ │ │ │ ├── IdDetailsNavBar.tsx │ │ │ │ ├── Points.tsx │ │ │ │ ├── PointsNavBar.tsx │ │ │ │ ├── WebViewNavBar.tsx │ │ │ │ └── index.ts │ │ │ ├── proof-request/ │ │ │ │ ├── BottomActionBar.tsx │ │ │ │ ├── BottomVerifyBar.tsx │ │ │ │ ├── ConnectedWalletBadge.tsx │ │ │ │ ├── DisclosureItem.tsx │ │ │ │ ├── ProofMetadataBar.tsx │ │ │ │ ├── ProofRequestCard.tsx │ │ │ │ ├── ProofRequestHeader.tsx │ │ │ │ ├── WalletAddressModal.tsx │ │ │ │ ├── designTokens.ts │ │ │ │ ├── icons.tsx │ │ │ │ └── index.ts │ │ │ ├── referral/ │ │ │ │ ├── CopyReferralButton.tsx │ │ │ │ ├── ReferralHeader.tsx │ │ │ │ ├── ReferralInfo.tsx │ │ │ │ └── ShareButton.tsx │ │ │ ├── starfall/ │ │ │ │ ├── StarfallLogoHeader.tsx │ │ │ │ └── StarfallPIN.tsx │ │ │ └── support/ │ │ │ └── SupportUuidRow.tsx │ │ ├── config/ │ │ │ ├── index.ts │ │ │ ├── remoteConfig.shared.ts │ │ │ ├── remoteConfig.ts │ │ │ ├── remoteConfig.web.ts │ │ │ ├── segment.ts │ │ │ ├── sentry.ts │ │ │ └── sentry.web.ts │ │ ├── consts/ │ │ │ ├── index.ts │ │ │ ├── links.ts │ │ │ └── recoveryPrompts.ts │ │ ├── devtools/ │ │ │ ├── index.ts │ │ │ ├── mocks/ │ │ │ │ ├── index.ts │ │ │ │ ├── nfcScanner.ts │ │ │ │ ├── react-native-community-blur.ts │ │ │ │ ├── react-native-gesture-handler.ts │ │ │ │ ├── react-native-passport-reader.ts │ │ │ │ ├── react-native-safe-area-context.js │ │ │ │ └── react-native-svg.ts │ │ │ └── testing/ │ │ │ ├── index.ts │ │ │ └── utils.ts │ │ ├── hooks/ │ │ │ ├── useAppUpdates.ts │ │ │ ├── useAppUpdates.web.ts │ │ │ ├── useCardDimensions.ts │ │ │ ├── useConnectionModal.ts │ │ │ ├── useEarnPointsFlow.ts │ │ │ ├── useErrorInjection.ts │ │ │ ├── useFeedbackAutoHide.ts │ │ │ ├── useFeedbackModal.ts │ │ │ ├── useHapticNavigation.ts │ │ │ ├── useHasRealDocument.ts │ │ │ ├── useKycLauncher.ts │ │ │ ├── useKycWebSocket.ts │ │ │ ├── useMnemonic.ts │ │ │ ├── useMockDataForm.ts │ │ │ ├── useModal.ts │ │ │ ├── useNetInfo.ts │ │ │ ├── useNetInfo.web.ts │ │ │ ├── useOpenSupportForm.ts │ │ │ ├── usePendingKycRecovery.ts │ │ │ ├── usePoints.ts │ │ │ ├── usePointsGuardrail.ts │ │ │ ├── useProofDisclosureStalenessCheck.ts │ │ │ ├── useRecoveryPrompts.ts │ │ │ ├── useReferralConfirmation.ts │ │ │ ├── useReferralMessage.ts │ │ │ ├── useReferralRegistration.ts │ │ │ ├── useRegisterReferral.ts │ │ │ ├── useSelfAppData.ts │ │ │ ├── useSupportUuid.ts │ │ │ └── useTestReferralFlow.ts │ │ ├── integrations/ │ │ │ ├── haptics/ │ │ │ │ ├── index.ts │ │ │ │ ├── shared.ts │ │ │ │ ├── trigger.ts │ │ │ │ └── trigger.web.ts │ │ │ ├── keychain/ │ │ │ │ └── index.ts │ │ │ ├── kyc/ │ │ │ │ ├── index.ts │ │ │ │ ├── kycService.ts │ │ │ │ └── types.ts │ │ │ ├── nfc/ │ │ │ │ ├── nfcScanner.ts │ │ │ │ └── passportReader.ts │ │ │ ├── qrScanner.ts │ │ │ ├── sharing.ts │ │ │ └── turnkey.ts │ │ ├── layouts/ │ │ │ ├── AppLayout.tsx │ │ │ ├── ExpandableBottomLayout.tsx │ │ │ └── SimpleScrolledTitleLayout.tsx │ │ ├── navigation/ │ │ │ ├── account.ts │ │ │ ├── account.web.ts │ │ │ ├── app.tsx │ │ │ ├── deeplinks.ts │ │ │ ├── devTools.tsx │ │ │ ├── documents.ts │ │ │ ├── home.ts │ │ │ ├── index.tsx │ │ │ ├── onboarding.ts │ │ │ ├── shared.ts │ │ │ ├── starfall.ts │ │ │ ├── types.ts │ │ │ └── verification.ts │ │ ├── polyfills/ │ │ │ └── buffer.js │ │ ├── providers/ │ │ │ ├── authProvider.tsx │ │ │ ├── authProvider.web.tsx │ │ │ ├── databaseProvider.tsx │ │ │ ├── feedbackProvider.tsx │ │ │ ├── loggerProvider.tsx │ │ │ ├── notificationTrackingProvider.tsx │ │ │ ├── notificationTrackingProvider.web.tsx │ │ │ ├── passportDataProvider.tsx │ │ │ ├── remoteConfigProvider.tsx │ │ │ └── selfClientProvider.tsx │ │ ├── proving/ │ │ │ ├── index.ts │ │ │ ├── loadingScreenStateText.ts │ │ │ └── validateDocument.ts │ │ ├── screens/ │ │ │ ├── account/ │ │ │ │ ├── recovery/ │ │ │ │ │ ├── AccountRecoveryChoiceScreen.tsx │ │ │ │ │ ├── AccountRecoveryScreen.tsx │ │ │ │ │ ├── DocumentDataNotFoundScreen.tsx │ │ │ │ │ ├── RecoverWithPhraseScreen.tsx │ │ │ │ │ └── recoveryCopy.ts │ │ │ │ └── settings/ │ │ │ │ ├── CloudBackupScreen.tsx │ │ │ │ ├── ProofSettingsScreen.tsx │ │ │ │ ├── SecurityAndBackupScreen.tsx │ │ │ │ ├── SettingsScreen.tsx │ │ │ │ ├── ShowRecoveryPhraseScreen.tsx │ │ │ │ ├── SupportScreen.tsx │ │ │ │ └── settingsMenu.ts │ │ │ ├── app/ │ │ │ │ ├── DeferredLinkingInfoScreen.tsx │ │ │ │ ├── GratificationScreen.tsx │ │ │ │ ├── LoadingScreen.tsx │ │ │ │ ├── ModalScreen.tsx │ │ │ │ ├── ReferralScreen.tsx │ │ │ │ ├── SplashScreen.tsx │ │ │ │ └── startupRouting.ts │ │ │ ├── dev/ │ │ │ │ ├── CreateMockScreen.tsx │ │ │ │ ├── CreateMockScreenDeepLink.tsx │ │ │ │ ├── DevDangerZoneScreen.tsx │ │ │ │ ├── DevFeatureFlagsScreen.tsx │ │ │ │ ├── DevHapticFeedbackScreen.tsx │ │ │ │ ├── DevLoadingScreen.tsx │ │ │ │ ├── DevPrivateKeyScreen.tsx │ │ │ │ ├── DevSettingsScreen.tsx │ │ │ │ ├── SocialLoginDemoScreen.tsx │ │ │ │ ├── TroubleshootingScreen.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── ErrorInjectionSelector.tsx │ │ │ │ │ ├── LogLevelSelector.tsx │ │ │ │ │ ├── ParameterSection.tsx │ │ │ │ │ ├── ScreenSelector.tsx │ │ │ │ │ ├── TopicToggleButton.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── hooks/ │ │ │ │ │ ├── useDangerZoneActions.ts │ │ │ │ │ └── useNotificationHandlers.ts │ │ │ │ └── sections/ │ │ │ │ ├── DangerZoneSection.tsx │ │ │ │ ├── DebugShortcutsSection.tsx │ │ │ │ ├── DevTogglesSection.tsx │ │ │ │ ├── PushNotificationsSection.tsx │ │ │ │ └── index.ts │ │ │ ├── documents/ │ │ │ │ ├── aadhaar/ │ │ │ │ │ ├── AadhaarUploadErrorScreen.tsx │ │ │ │ │ ├── AadhaarUploadScreen.tsx │ │ │ │ │ └── AadhaarUploadedSuccessScreen.tsx │ │ │ │ ├── management/ │ │ │ │ │ ├── DocumentDataInfoScreen.tsx │ │ │ │ │ ├── IdDetailsScreen.tsx │ │ │ │ │ └── ManageDocumentsScreen.tsx │ │ │ │ ├── scanning/ │ │ │ │ │ ├── DataConfirmationScreen.tsx │ │ │ │ │ ├── DocumentCameraScreen.tsx │ │ │ │ │ ├── DocumentCameraTroubleScreen.tsx │ │ │ │ │ ├── DocumentNFCMethodSelectionScreen.tsx │ │ │ │ │ ├── DocumentNFCScanScreen.tsx │ │ │ │ │ ├── DocumentNFCScanScreen.web.tsx │ │ │ │ │ ├── DocumentNFCTroubleScreen.tsx │ │ │ │ │ ├── RegistrationFallbackMRZScreen.tsx │ │ │ │ │ └── RegistrationFallbackNFCScreen.tsx │ │ │ │ └── selection/ │ │ │ │ ├── ConfirmBelongingScreen.tsx │ │ │ │ ├── CountryPickerScreen.tsx │ │ │ │ ├── DocumentOnboardingScreen.tsx │ │ │ │ ├── IDPickerScreen.tsx │ │ │ │ └── LogoConfirmationScreen.tsx │ │ │ ├── home/ │ │ │ │ ├── HomeScreen.tsx │ │ │ │ ├── PointsInfoScreen.tsx │ │ │ │ ├── ProofHistoryDetailScreen.tsx │ │ │ │ ├── ProofHistoryList.tsx │ │ │ │ └── ProofHistoryScreen.tsx │ │ │ ├── kyc/ │ │ │ │ ├── KYCVerifiedScreen.tsx │ │ │ │ ├── KycConnectionErrorScreen.tsx │ │ │ │ ├── KycFailureScreen.tsx │ │ │ │ └── KycSuccessScreen.tsx │ │ │ ├── onboarding/ │ │ │ │ ├── AccountVerifiedSuccessScreen.tsx │ │ │ │ ├── DisclaimerScreen.tsx │ │ │ │ └── SaveRecoveryPhraseScreen.tsx │ │ │ ├── shared/ │ │ │ │ ├── ComingSoonScreen.tsx │ │ │ │ └── WebViewScreen.tsx │ │ │ ├── starfall/ │ │ │ │ └── StarfallPushCodeScreen.tsx │ │ │ └── verification/ │ │ │ ├── DocumentSelectorForProvingScreen.tsx │ │ │ ├── ProofRequestStatusScreen.tsx │ │ │ ├── ProveScreen.tsx │ │ │ ├── ProvingScreenRouter.tsx │ │ │ ├── QRCodeTroubleScreen.tsx │ │ │ └── QRCodeViewFinderScreen.tsx │ │ ├── services/ │ │ │ ├── analytics.ts │ │ │ ├── cloud-backup/ │ │ │ │ ├── google.ts │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ └── ios.ts │ │ │ ├── logging/ │ │ │ │ ├── index.ts │ │ │ │ └── logger/ │ │ │ │ ├── consoleInterceptor.ts │ │ │ │ ├── lokiTransport.ts │ │ │ │ └── nativeLoggerBridge.ts │ │ │ ├── notifications/ │ │ │ │ ├── notificationService.shared.ts │ │ │ │ ├── notificationService.ts │ │ │ │ └── notificationService.web.ts │ │ │ ├── points/ │ │ │ │ ├── api.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── eventPolling.ts │ │ │ │ ├── getEvents.ts │ │ │ │ ├── index.ts │ │ │ │ ├── jobStatus.ts │ │ │ │ ├── recordEvents.ts │ │ │ │ ├── registerEvents.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── starfall/ │ │ │ │ └── pushCodeService.ts │ │ │ ├── support.ts │ │ │ └── supportUuid.ts │ │ ├── stores/ │ │ │ ├── database.ts │ │ │ ├── database.web.ts │ │ │ ├── errorInjectionStore.ts │ │ │ ├── pendingKycStore.ts │ │ │ ├── pointEventStore.ts │ │ │ ├── proofHistoryStore.ts │ │ │ ├── proofTypes.ts │ │ │ ├── settingStore.ts │ │ │ └── userStore.ts │ │ ├── types/ │ │ │ ├── countryIso3To2.d.ts │ │ │ ├── global.d.ts │ │ │ ├── mnemonic.ts │ │ │ ├── png.d.ts │ │ │ ├── react-native-keychain.d.ts │ │ │ ├── reactNativePassportReader.d.ts │ │ │ ├── svg.d.ts │ │ │ └── vite-env.d.ts │ │ └── utils/ │ │ ├── cameraPermission.ts │ │ ├── cardBackgroundSelector.ts │ │ ├── countryDemonyms.ts │ │ ├── crypto/ │ │ │ ├── cryptoLoader.ts │ │ │ ├── ethers.ts │ │ │ └── mnemonic.ts │ │ ├── devUtils.ts │ │ ├── diffCalculator.ts │ │ ├── disclosureUtils.ts │ │ ├── documentAttributes.ts │ │ ├── documentUtils.ts │ │ ├── documents.ts │ │ ├── formatUserId.ts │ │ ├── index.ts │ │ ├── jsonUtils.ts │ │ ├── keychainErrors.ts │ │ ├── modalCallbackRegistry.ts │ │ ├── retry.ts │ │ ├── styleUtils.ts │ │ ├── webview.ts │ │ └── yymmdd.ts │ ├── tamagui.config.ts │ ├── tests/ │ │ ├── __mocks__/ │ │ │ └── mobile-sdk-components.js │ │ ├── __setup__/ │ │ │ ├── @env.js │ │ │ ├── databaseMocks.ts │ │ │ ├── expoCameraMock.js │ │ │ ├── imageMock.js │ │ │ ├── mocks/ │ │ │ │ ├── navigation.js │ │ │ │ └── ui.js │ │ │ ├── notificationServiceMock.js │ │ │ ├── selfClientProvider.ts │ │ │ └── svgMock.js │ │ ├── build/ │ │ │ ├── android/ │ │ │ │ ├── build.gradle.test.ts │ │ │ │ └── manifest.test.ts │ │ │ └── ios/ │ │ │ ├── infoPlist.test.ts │ │ │ └── pbxproj.test.ts │ │ ├── e2e/ │ │ │ ├── launch.android.flow.yaml │ │ │ └── launch.ios.flow.yaml │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── ErrorBoundary.test.tsx │ │ │ │ ├── InputField.test.tsx │ │ │ │ ├── PassportCamera.test.tsx │ │ │ │ ├── documents/ │ │ │ │ │ └── IDSelectorSheet.test.tsx │ │ │ │ ├── homescreen/ │ │ │ │ │ └── UnregisteredIdCard.test.tsx │ │ │ │ └── support/ │ │ │ │ └── SupportUuidRow.test.tsx │ │ │ ├── config/ │ │ │ │ ├── remoteConfig.test.ts │ │ │ │ └── sentry.test.ts │ │ │ ├── consts/ │ │ │ │ └── links.test.ts │ │ │ ├── hooks/ │ │ │ │ ├── useAppUpdates.test.tsx │ │ │ │ ├── useConnectionModal.test.ts │ │ │ │ ├── useEarnPointsFlow.test.ts │ │ │ │ ├── useHapticNavigation.test.ts │ │ │ │ ├── useHasRealDocument.test.ts │ │ │ │ ├── useMnemonic.test.ts │ │ │ │ ├── useModal.test.ts │ │ │ │ ├── useOpenSupportForm.test.ts │ │ │ │ ├── usePendingKycRecovery.test.ts │ │ │ │ ├── useProofDisclosureStalenessCheck.test.ts │ │ │ │ ├── useRecoveryPrompts.test.ts │ │ │ │ ├── useReferralConfirmation.test.ts │ │ │ │ ├── useReferralMessage.test.ts │ │ │ │ ├── useReferralRegistration.test.ts │ │ │ │ └── useRegisterReferral.test.ts │ │ │ ├── integrations/ │ │ │ │ └── nfc/ │ │ │ │ ├── nfcScanner.test.ts │ │ │ │ └── passportReader.test.ts │ │ │ ├── navigation/ │ │ │ │ └── deeplinks.test.ts │ │ │ ├── navigation.test.tsx │ │ │ ├── providers/ │ │ │ │ ├── loggerProvider.test.tsx │ │ │ │ ├── notificationTrackingProvider.test.tsx │ │ │ │ ├── passportDataProvider.test.tsx │ │ │ │ ├── remoteConfigProvider.test.tsx │ │ │ │ └── selfClientProvider.test.tsx │ │ │ ├── proving/ │ │ │ │ ├── loadingScreenStateText.test.ts │ │ │ │ ├── provingUtils.test.ts │ │ │ │ └── validateDocument.test.ts │ │ │ ├── screens/ │ │ │ │ ├── GratificationScreen.test.tsx │ │ │ │ ├── WebViewScreen.test.tsx │ │ │ │ ├── account/ │ │ │ │ │ ├── recovery/ │ │ │ │ │ │ └── RecoverWithPhraseScreen.test.tsx │ │ │ │ │ └── settings/ │ │ │ │ │ ├── SupportScreen.test.tsx │ │ │ │ │ └── settingsMenu.test.ts │ │ │ │ ├── app/ │ │ │ │ │ └── startupRouting.test.ts │ │ │ │ ├── dev/ │ │ │ │ │ └── useDangerZoneActions.test.tsx │ │ │ │ ├── documents/ │ │ │ │ │ ├── management/ │ │ │ │ │ │ └── ManageDocumentsScreen.test.tsx │ │ │ │ │ └── scanning/ │ │ │ │ │ ├── DataConfirmationScreen-nfcFallback.test.tsx │ │ │ │ │ └── DataConfirmationScreen.test.tsx │ │ │ │ ├── home/ │ │ │ │ │ └── PointsInfoScreen.test.tsx │ │ │ │ ├── kyc/ │ │ │ │ │ ├── KYCVerifiedScreen.test.tsx │ │ │ │ │ └── KycSuccessScreen.test.tsx │ │ │ │ └── verification/ │ │ │ │ ├── DocumentSelectorForProvingScreen.test.tsx │ │ │ │ ├── ProofRequestStatusScreen.test.tsx │ │ │ │ └── ProvingScreenRouter.test.tsx │ │ │ ├── services/ │ │ │ │ ├── analytics.test.ts │ │ │ │ ├── cloud-backup.test.ts │ │ │ │ ├── logging/ │ │ │ │ │ └── lokiTransport.test.ts │ │ │ │ ├── logging.test.ts │ │ │ │ ├── notifications/ │ │ │ │ │ └── notificationService.test.ts │ │ │ │ └── supportUuid.test.ts │ │ │ ├── stores/ │ │ │ │ ├── database.test.ts │ │ │ │ ├── proofHistoryStore.test.ts │ │ │ │ └── settingStore.test.ts │ │ │ └── utils/ │ │ │ ├── cameraPermission.test.ts │ │ │ ├── cardBackgroundSelector.test.ts │ │ │ ├── crypto/ │ │ │ │ └── ethers.test.ts │ │ │ ├── diffCalculator.test.ts │ │ │ ├── documents.test.ts │ │ │ ├── formatUserId.test.ts │ │ │ ├── jsonUtils.test.ts │ │ │ ├── keychainErrors.test.ts │ │ │ ├── modalCallbackRegistry.test.ts │ │ │ ├── points/ │ │ │ │ ├── api.test.ts │ │ │ │ ├── recordEvents.test.ts │ │ │ │ └── registerEvents.test.ts │ │ │ ├── webview.test.ts │ │ │ └── yymmdd.test.ts │ │ └── tsconfig.json │ ├── tsconfig.json │ ├── tsconfig.test.json │ ├── version.json │ ├── vite.config.ts │ └── web/ │ ├── fonts/ │ │ ├── Advercase-Regular.otf │ │ ├── DINOT-Bold.otf │ │ ├── DINOT-Medium.otf │ │ └── IBMPlexMono-Regular.otf │ ├── fonts.css │ ├── index.html │ ├── main.tsx │ └── reset.css ├── babel.config.js ├── circuits/ │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc │ ├── LICENSE │ ├── README.md │ ├── circuits/ │ │ ├── disclose/ │ │ │ ├── vc_and_disclose.circom │ │ │ ├── vc_and_disclose_aadhaar.circom │ │ │ ├── vc_and_disclose_id.circom │ │ │ └── vc_and_disclose_kyc.circom │ │ ├── dsc/ │ │ │ ├── dsc.circom │ │ │ └── instances/ │ │ │ ├── dsc_sha1_ecdsa_brainpoolP256r1.circom │ │ │ ├── dsc_sha1_ecdsa_secp256r1.circom │ │ │ ├── dsc_sha1_rsa_65537_4096.circom │ │ │ ├── dsc_sha256_ecdsa_brainpoolP256r1.circom │ │ │ ├── dsc_sha256_ecdsa_brainpoolP384r1.circom │ │ │ ├── dsc_sha256_ecdsa_secp256r1.circom │ │ │ ├── dsc_sha256_ecdsa_secp384r1.circom │ │ │ ├── dsc_sha256_ecdsa_secp521r1.circom │ │ │ ├── dsc_sha256_rsa_107903_4096.circom │ │ │ ├── dsc_sha256_rsa_122125_4096.circom │ │ │ ├── dsc_sha256_rsa_130689_4096.circom │ │ │ ├── dsc_sha256_rsa_56611_4096.circom │ │ │ ├── dsc_sha256_rsa_65537_4096.circom │ │ │ ├── dsc_sha256_rsapss_3_32_3072.circom │ │ │ ├── dsc_sha256_rsapss_65537_32_3072.circom │ │ │ ├── dsc_sha256_rsapss_65537_32_4096.circom │ │ │ ├── dsc_sha384_ecdsa_brainpoolP384r1.circom │ │ │ ├── dsc_sha384_ecdsa_brainpoolP512r1.circom │ │ │ ├── dsc_sha384_ecdsa_secp384r1.circom │ │ │ ├── dsc_sha384_rsapss_65537_48_3072.circom │ │ │ ├── dsc_sha512_ecdsa_brainpoolP512r1.circom │ │ │ ├── dsc_sha512_ecdsa_secp521r1.circom │ │ │ ├── dsc_sha512_rsa_65537_4096.circom │ │ │ └── dsc_sha512_rsapss_65537_64_4096.circom │ │ ├── gcp_jwt_verifier/ │ │ │ ├── README.md │ │ │ ├── example_jwt.txt │ │ │ ├── example_jwt_fail.txt │ │ │ ├── gcp_jwt_verifier.circom │ │ │ ├── jwt_verifier.circom │ │ │ └── prepare.ts │ │ ├── register/ │ │ │ ├── instances/ │ │ │ │ ├── register_aadhaar.circom │ │ │ │ ├── register_kyc.circom │ │ │ │ ├── register_sha1_sha1_sha1_ecdsa_brainpoolP224r1.circom │ │ │ │ ├── register_sha1_sha1_sha1_ecdsa_secp256r1.circom │ │ │ │ ├── register_sha1_sha1_sha1_rsa_64321_4096.circom │ │ │ │ ├── register_sha1_sha1_sha1_rsa_65537_4096.circom │ │ │ │ ├── register_sha1_sha256_sha256_rsa_65537_4096.circom │ │ │ │ ├── register_sha224_sha224_sha224_ecdsa_brainpoolP224r1.circom │ │ │ │ ├── register_sha256_sha1_sha1_rsa_65537_4096.circom │ │ │ │ ├── register_sha256_sha224_sha224_ecdsa_secp224r1.circom │ │ │ │ ├── register_sha256_sha256_sha224_ecdsa_secp224r1.circom │ │ │ │ ├── register_sha256_sha256_sha256_ecdsa_brainpoolP256r1.circom │ │ │ │ ├── register_sha256_sha256_sha256_ecdsa_brainpoolP384r1.circom │ │ │ │ ├── register_sha256_sha256_sha256_ecdsa_secp256r1.circom │ │ │ │ ├── register_sha256_sha256_sha256_ecdsa_secp384r1.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsa_3_4096.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsa_65537_4096.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsapss_3_32_2048.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsapss_65537_32_2048.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsapss_65537_32_3072.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsapss_65537_32_4096.circom │ │ │ │ ├── register_sha256_sha256_sha256_rsapss_65537_64_2048.circom │ │ │ │ ├── register_sha384_sha384_sha384_ecdsa_brainpoolP384r1.circom │ │ │ │ ├── register_sha384_sha384_sha384_ecdsa_brainpoolP512r1.circom │ │ │ │ ├── register_sha384_sha384_sha384_ecdsa_secp384r1.circom │ │ │ │ ├── register_sha384_sha384_sha384_rsapss_65537_48_2048.circom │ │ │ │ ├── register_sha512_sha512_sha256_rsa_65537_4096.circom │ │ │ │ ├── register_sha512_sha512_sha256_rsapss_65537_32_2048.circom │ │ │ │ ├── register_sha512_sha512_sha512_ecdsa_brainpoolP512r1.circom │ │ │ │ ├── register_sha512_sha512_sha512_ecdsa_secp521r1.circom │ │ │ │ ├── register_sha512_sha512_sha512_rsa_65537_4096.circom │ │ │ │ └── register_sha512_sha512_sha512_rsapss_65537_64_2048.circom │ │ │ ├── register.circom │ │ │ ├── register_aadhaar.circom │ │ │ └── register_kyc.circom │ │ ├── register_id/ │ │ │ ├── instances/ │ │ │ │ ├── register_id_sha1_sha1_sha1_ecdsa_brainpoolP224r1.circom │ │ │ │ ├── register_id_sha1_sha1_sha1_ecdsa_secp256r1.circom │ │ │ │ ├── register_id_sha1_sha1_sha1_rsa_65537_4096.circom │ │ │ │ ├── register_id_sha1_sha256_sha256_rsa_65537_4096.circom │ │ │ │ ├── register_id_sha224_sha224_sha224_ecdsa_brainpoolP224r1.circom │ │ │ │ ├── register_id_sha256_sha224_sha224_ecdsa_secp224r1.circom │ │ │ │ ├── register_id_sha256_sha256_sha224_ecdsa_secp224r1.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_ecdsa_brainpoolP256r1.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_ecdsa_brainpoolP384r1.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_ecdsa_secp256r1.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_ecdsa_secp384r1.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_rsa_3_4096.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_rsa_65537_4096.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_rsapss_3_32_2048.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_rsapss_65537_32_2048.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_rsapss_65537_32_3072.circom │ │ │ │ ├── register_id_sha256_sha256_sha256_rsapss_65537_64_2048.circom │ │ │ │ ├── register_id_sha384_sha384_sha384_ecdsa_brainpoolP384r1.circom │ │ │ │ ├── register_id_sha384_sha384_sha384_ecdsa_brainpoolP512r1.circom │ │ │ │ ├── register_id_sha384_sha384_sha384_ecdsa_secp384r1.circom │ │ │ │ ├── register_id_sha384_sha384_sha384_rsapss_65537_48_2048.circom │ │ │ │ ├── register_id_sha512_sha512_sha256_rsa_65537_4096.circom │ │ │ │ ├── register_id_sha512_sha512_sha256_rsapss_65537_32_2048.circom │ │ │ │ ├── register_id_sha512_sha512_sha512_ecdsa_brainpoolP512r1.circom │ │ │ │ ├── register_id_sha512_sha512_sha512_ecdsa_secp521r1.circom │ │ │ │ ├── register_id_sha512_sha512_sha512_rsa_65537_4096.circom │ │ │ │ └── register_id_sha512_sha512_sha512_rsapss_65537_64_2048.circom │ │ │ └── register_id.circom │ │ ├── tests/ │ │ │ ├── ofac/ │ │ │ │ ├── ofac_name_dob_id_tester.circom │ │ │ │ ├── ofac_name_dob_tester.circom │ │ │ │ ├── ofac_name_yob_id_tester.circom │ │ │ │ ├── ofac_name_yob_tester.circom │ │ │ │ └── ofac_passport_number_tester.circom │ │ │ └── utils/ │ │ │ ├── customHasher_tester.circom │ │ │ ├── ecdsa/ │ │ │ │ ├── test_brainpoolP224r1.circom │ │ │ │ ├── test_brainpoolP256r1.circom │ │ │ │ ├── test_brainpoolP384r1.circom │ │ │ │ ├── test_brainpoolP512r1.circom │ │ │ │ ├── test_p256.circom │ │ │ │ ├── test_p384.circom │ │ │ │ └── test_p521.circom │ │ │ ├── extractQrData_tester.circom │ │ │ ├── isOlderThan_tester.circom │ │ │ ├── isValid_tester.circom │ │ │ ├── packBytesAndPoseidon_tester.circom │ │ │ ├── proveCountryIsNotInList_tester.circom │ │ │ ├── rsa/ │ │ │ │ ├── test_rsa_sha1_64321_4096.circom │ │ │ │ ├── test_rsa_sha1_65537_2048.circom │ │ │ │ ├── test_rsa_sha224_65537_2048.circom │ │ │ │ ├── test_rsa_sha256_107903_4096.circom │ │ │ │ ├── test_rsa_sha256_122125_4096.circom │ │ │ │ ├── test_rsa_sha256_130689_4096.circom │ │ │ │ ├── test_rsa_sha256_3_2048.circom │ │ │ │ ├── test_rsa_sha256_56611_4096.circom │ │ │ │ ├── test_rsa_sha256_65537_2048.circom │ │ │ │ ├── test_rsa_sha256_65537_3072.circom │ │ │ │ ├── test_rsa_sha256_65537_4096.circom │ │ │ │ └── test_rsa_sha512_65537_4096.circom │ │ │ ├── rsapss/ │ │ │ │ ├── test_rsapss_sha256_3_2048_32.circom │ │ │ │ ├── test_rsapss_sha256_3_2048_64.circom │ │ │ │ ├── test_rsapss_sha256_3_3072_32.circom │ │ │ │ ├── test_rsapss_sha256_3_3072_64.circom │ │ │ │ ├── test_rsapss_sha256_3_4096_32.circom │ │ │ │ ├── test_rsapss_sha256_3_4096_64.circom │ │ │ │ ├── test_rsapss_sha256_65537_2048_32.circom │ │ │ │ ├── test_rsapss_sha256_65537_2048_64.circom │ │ │ │ ├── test_rsapss_sha256_65537_3072_32.circom │ │ │ │ ├── test_rsapss_sha256_65537_3072_64.circom │ │ │ │ ├── test_rsapss_sha256_65537_4096_32.circom │ │ │ │ ├── test_rsapss_sha256_65537_4096_64.circom │ │ │ │ ├── test_rsapss_sha384_3_3072_48.circom │ │ │ │ ├── test_rsapss_sha384_3_4096_48.circom │ │ │ │ ├── test_rsapss_sha384_65537_3072_48.circom │ │ │ │ ├── test_rsapss_sha384_65537_4096_48.circom │ │ │ │ ├── test_rsapss_sha512_3_2048_64.circom │ │ │ │ └── test_rsapss_sha512_3_4096_64.circom │ │ │ └── wordsToBytes_tester.circom │ │ └── utils/ │ │ ├── aadhaar/ │ │ │ ├── disclose/ │ │ │ │ ├── country_not_in_list.circom │ │ │ │ └── verify_commitment.circom │ │ │ ├── extractQrData.circom │ │ │ ├── ofac/ │ │ │ │ ├── ofac_name_dob.circom │ │ │ │ └── ofac_name_yob.circom │ │ │ └── pack.circom │ │ ├── crypto/ │ │ │ ├── bigInt/ │ │ │ │ ├── bigInt.circom │ │ │ │ ├── bigIntComparators.circom │ │ │ │ ├── bigIntFunc.circom │ │ │ │ ├── bigIntHelpers.circom │ │ │ │ ├── bigIntOverflow.circom │ │ │ │ └── shouldUseKaratsuba.circom │ │ │ ├── bitify/ │ │ │ │ ├── bytes.circom │ │ │ │ ├── gates.circom │ │ │ │ ├── operations.circom │ │ │ │ └── splitWordsToBytes.circom │ │ │ ├── ec/ │ │ │ │ ├── curve.circom │ │ │ │ ├── get.circom │ │ │ │ └── powers/ │ │ │ │ ├── brainpoolP224r1pows.circom │ │ │ │ ├── brainpoolP256r1pows.circom │ │ │ │ ├── brainpoolP384r1pows.circom │ │ │ │ ├── brainpoolP512r1pows.circom │ │ │ │ ├── p224pows.circom │ │ │ │ ├── p256pows.circom │ │ │ │ ├── p384pows.circom │ │ │ │ └── p521pows.circom │ │ │ ├── hasher/ │ │ │ │ ├── hash.circom │ │ │ │ ├── sha1/ │ │ │ │ │ ├── constants.circom │ │ │ │ │ ├── f.circom │ │ │ │ │ ├── parity.circom │ │ │ │ │ ├── rotate.circom │ │ │ │ │ ├── sha1.circom │ │ │ │ │ ├── sha1compression.circom │ │ │ │ │ ├── t.circom │ │ │ │ │ └── xor4.circom │ │ │ │ ├── sha2/ │ │ │ │ │ ├── sha224/ │ │ │ │ │ │ ├── sha224HashBits.circom │ │ │ │ │ │ ├── sha224HashChunks.circom │ │ │ │ │ │ └── sha224InitialValue.circom │ │ │ │ │ ├── sha256/ │ │ │ │ │ │ ├── sha256Compress.circom │ │ │ │ │ │ ├── sha256HashBits.circom │ │ │ │ │ │ ├── sha256HashChunks.circom │ │ │ │ │ │ ├── sha256InitialValue.circom │ │ │ │ │ │ ├── sha256RoundConst.circom │ │ │ │ │ │ ├── sha256Rounds.circom │ │ │ │ │ │ └── sha256Schedule.circom │ │ │ │ │ ├── sha2Common.circom │ │ │ │ │ ├── sha384/ │ │ │ │ │ │ ├── sha384HashBits.circom │ │ │ │ │ │ ├── sha384HashChunks.circom │ │ │ │ │ │ └── sha384InitialValue.circom │ │ │ │ │ └── sha512/ │ │ │ │ │ ├── sha512Compress.circom │ │ │ │ │ ├── sha512HashBits.circom │ │ │ │ │ ├── sha512HashChunks.circom │ │ │ │ │ ├── sha512InitialValue.circom │ │ │ │ │ ├── sha512RoundConst.circom │ │ │ │ │ ├── sha512Rounds.circom │ │ │ │ │ └── sha512Schedule.circom │ │ │ │ └── shaBytes/ │ │ │ │ ├── dynamic/ │ │ │ │ │ ├── sha1Bytes.circom │ │ │ │ │ ├── sha224Bytes.circom │ │ │ │ │ ├── sha384Bytes.circom │ │ │ │ │ └── sha512Bytes.circom │ │ │ │ └── shaBytesDynamic.circom │ │ │ ├── int/ │ │ │ │ └── arithmetic.circom │ │ │ ├── merkle-trees/ │ │ │ │ └── smt.circom │ │ │ ├── signature/ │ │ │ │ ├── FpPowMod.circom │ │ │ │ ├── ecdsa/ │ │ │ │ │ ├── ecdsa.circom │ │ │ │ │ └── ecdsaVerifier.circom │ │ │ │ ├── rsa/ │ │ │ │ │ ├── pkcs1v1_5Padding.circom │ │ │ │ │ ├── verifyRsa3Pkcs1v1_5.circom │ │ │ │ │ ├── verifyRsa65537Pkcs1v1_5.circom │ │ │ │ │ └── verifyRsaGenericPkcs1v1_5.circom │ │ │ │ └── rsapss/ │ │ │ │ ├── mgf1.circom │ │ │ │ ├── rsapss3.circom │ │ │ │ ├── rsapss65537.circom │ │ │ │ └── validate.circom │ │ │ └── utils/ │ │ │ └── switcher.circom │ │ ├── gcp_jwt/ │ │ │ ├── dateIsLessSeconds.circom │ │ │ ├── extractAndValidatePubkey.circom │ │ │ ├── singleOccurance.circom │ │ │ ├── validityChecker.circom │ │ │ ├── verifyCertificateSignature.circom │ │ │ └── verifyJSONFieldExtraction.circom │ │ ├── kyc/ │ │ │ ├── babyEcdsa.circom │ │ │ ├── constants.circom │ │ │ ├── date/ │ │ │ │ ├── dateIsLess.circom │ │ │ │ ├── isOlderThan.circom │ │ │ │ └── isValid.circom │ │ │ ├── disclose/ │ │ │ │ ├── disclose.circom │ │ │ │ └── ofac/ │ │ │ │ ├── ofac_name_dob_kyc.circom │ │ │ │ └── ofac_name_yob_kyc.circom │ │ │ └── verifySignature.circom │ │ └── passport/ │ │ ├── BytesToNum.circom │ │ ├── checkPubkeyPosition.circom │ │ ├── checkPubkeysEqual.circom │ │ ├── constants.circom │ │ ├── customHashers.circom │ │ ├── date/ │ │ │ ├── dateIsLess.circom │ │ │ ├── isOlderThan.circom │ │ │ └── isValid.circom │ │ ├── disclose/ │ │ │ ├── disclose.circom │ │ │ ├── disclose_id.circom │ │ │ ├── proveCountryIsNotInList.circom │ │ │ └── verify_commitment.circom │ │ ├── ofac/ │ │ │ ├── ofac_name_dob.circom │ │ │ ├── ofac_name_dob_id.circom │ │ │ ├── ofac_name_yob.circom │ │ │ ├── ofac_name_yob_id.circom │ │ │ └── ofac_passport_number.circom │ │ ├── passportVerifier.circom │ │ ├── signatureAlgorithm.circom │ │ └── signatureVerifier.circom │ ├── package.json │ ├── scripts/ │ │ ├── server/ │ │ │ ├── download_circuits_from_AWS.sh │ │ │ ├── download_ptau.sh │ │ │ └── upload_to_AWS.sh │ │ └── utils/ │ │ └── print_circom_tree.sh │ ├── src/ │ │ ├── index.ts │ │ └── testing/ │ │ └── index.ts │ ├── tests/ │ │ ├── consts/ │ │ │ └── ofac/ │ │ │ ├── nameAndDobAadhaarSMT.json │ │ │ ├── nameAndDobKycSMT.json │ │ │ ├── nameAndDobPersonaSMT.json │ │ │ ├── nameAndDobSMT.json │ │ │ ├── nameAndDobSMT_ID.json │ │ │ ├── nameAndDobSelfricaSMT.json │ │ │ ├── nameAndYobAadhaarSMT.json │ │ │ ├── nameAndYobKycSMT.json │ │ │ ├── nameAndYobPersonaSMT.json │ │ │ ├── nameAndYobSMT.json │ │ │ ├── nameAndYobSMT_ID.json │ │ │ ├── nameAndYobSelfricaSMT.json │ │ │ └── passportNoAndNationalitySMT.json │ │ ├── disclose/ │ │ │ ├── vc_and_disclose.test.ts │ │ │ ├── vc_and_disclose_aadhaar.test.ts │ │ │ ├── vc_and_disclose_id.test.ts │ │ │ └── vc_and_disclose_kyc.test.ts │ │ ├── dsc/ │ │ │ ├── dsc.test.ts │ │ │ └── test_cases.ts │ │ ├── ofac/ │ │ │ └── ofac.test.ts │ │ ├── other_circuits/ │ │ │ ├── custom_hasher.test.ts │ │ │ ├── is_older_than.test.ts │ │ │ ├── is_valid.test.ts │ │ │ ├── prove_country_is_not_in_list.test.ts │ │ │ └── qrdata_extractor.test.ts │ │ ├── register/ │ │ │ ├── pubkeys.ts │ │ │ ├── register.test.ts │ │ │ ├── register_aadhaar.test.ts │ │ │ ├── register_kyc.test.ts │ │ │ └── test_cases.ts │ │ ├── register_id/ │ │ │ ├── register_id.test.ts │ │ │ └── test_cases.ts │ │ └── utils/ │ │ ├── aadhaar/ │ │ │ ├── generateTestData.ts │ │ │ └── utils.ts │ │ ├── ecdsa.test.ts │ │ ├── generateMockInputsInCircuits.ts │ │ ├── generateMockInputsRsaPss.ts │ │ ├── kyc/ │ │ │ ├── date/ │ │ │ │ ├── date.test.ts │ │ │ │ ├── isOlderThan.test.ts │ │ │ │ ├── is_older_than.test.circom │ │ │ │ └── is_valid.test.circom │ │ │ └── ofac/ │ │ │ ├── ofac.test.ts │ │ │ ├── ofac_name_dob_kyc.test.circom │ │ │ └── ofac_name_yob_kyc.test.circom │ │ ├── rsaPkcs1v1_5.test.ts │ │ ├── rsapss.test.ts │ │ └── testcase/ │ │ └── rsapss.ts │ └── tsconfig.json ├── common/ │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .npmignore │ ├── .prettierignore │ ├── .prettierrc │ ├── README.md │ ├── index.ts │ ├── package.json │ ├── pubkeys/ │ │ ├── public_keys_parsed.json │ │ ├── serialized_csca_tree.json │ │ ├── serialized_dsc_tree.json │ │ └── serialized_tree.json │ ├── sanctionedCountries/ │ │ └── outputs/ │ │ └── sc_SMT.json │ ├── scripts/ │ │ ├── certificates/ │ │ │ └── concatCertificates.ts │ │ ├── postBuild.mjs │ │ ├── shimConfigs.js │ │ ├── testExports.js │ │ └── validateExports.js │ ├── src/ │ │ ├── constants/ │ │ │ ├── constants.ts │ │ │ ├── countries.ts │ │ │ ├── index.ts │ │ │ ├── mockCertificates.ts │ │ │ ├── sampleDataHashes.ts │ │ │ ├── skiPem.ts │ │ │ └── vkey.ts │ │ ├── mock_certificates/ │ │ │ ├── README.md │ │ │ ├── aadhaar/ │ │ │ │ └── mockAadhaarCert.ts │ │ │ ├── openssl.cnf │ │ │ ├── sha1_ecdsa_brainpoolP224r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha1_ecdsa_brainpoolP256r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha1_ecdsa_secp256r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha1_rsa_3_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha1_rsa_64321_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha1_rsa_65537_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha1_rsa_65537_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha224_ecdsa_brainpoolP224r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha224_ecdsa_secp224r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_ecdsa_brainpoolP224r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_ecdsa_brainpoolP256r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_ecdsa_brainpoolP384r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_ecdsa_secp256r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_ecdsa_secp384r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_ecdsa_secp521r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_107903_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_122125_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_130689_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_3_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_3_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_56611_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_65537_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_65537_3072/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsa_65537_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_32_3_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_32_3_3072/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_32_3_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_32_65537_2048/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_32_65537_3072/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_32_65537_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha256_rsapss_64_65537_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_ecdsa_brainpoolP256r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_ecdsa_brainpoolP384r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_ecdsa_brainpoolP512r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_ecdsa_secp384r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_rsa_65537_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_rsapss_48_65537_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_rsapss_48_65537_3072/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha384_rsapss_48_65537_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ └── mock_csca.pem │ │ │ ├── sha512_ecdsa_brainpoolP256r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha512_ecdsa_brainpoolP384r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha512_ecdsa_brainpoolP512r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha512_ecdsa_secp521r1/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha512_rsa_65537_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha512_rsa_65537_4096/ │ │ │ │ ├── mock_csca.key │ │ │ │ ├── mock_csca.pem │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ ├── sha512_rsapss_64_65537_2048/ │ │ │ │ ├── mock_dsc.key │ │ │ │ └── mock_dsc.pem │ │ │ └── sha512_rsapss_64_65537_4096/ │ │ │ ├── mock_csca.key │ │ │ ├── mock_csca.pem │ │ │ ├── mock_dsc.key │ │ │ └── mock_dsc.pem │ │ ├── polyfills/ │ │ │ └── crypto.ts │ │ ├── scripts/ │ │ │ ├── addCertificatesInTs.py │ │ │ ├── addSkiPemToTs.py │ │ │ ├── extensions.cnf │ │ │ ├── generateCertificates.sh │ │ │ └── generateCountryOptions.ts │ │ ├── types/ │ │ │ ├── app.ts │ │ │ ├── certificates.ts │ │ │ ├── circuits.ts │ │ │ ├── index.ts │ │ │ └── passport.ts │ │ └── utils/ │ │ ├── aadhaar/ │ │ │ ├── assets/ │ │ │ │ ├── dataInput.ts │ │ │ │ └── testPublicKey.pem │ │ │ ├── build_aadhaar_ofac_smt.ts │ │ │ ├── constants.ts │ │ │ ├── mockData.ts │ │ │ └── utils.ts │ │ ├── appType.ts │ │ ├── arrays.ts │ │ ├── attest.ts │ │ ├── bytes.ts │ │ ├── certificate_parsing/ │ │ │ ├── certUtils.ts │ │ │ ├── curveUtils.ts │ │ │ ├── curves.ts │ │ │ ├── dataStructure.ts │ │ │ ├── elliptic.ts │ │ │ ├── ellipticInit.ts │ │ │ ├── index.ts │ │ │ ├── oidUtils.ts │ │ │ ├── oids.ts │ │ │ ├── parseCertificate.ts │ │ │ ├── parseCertificateNode.ts │ │ │ ├── parseCertificateSimple.ts │ │ │ ├── parseNode.ts │ │ │ ├── parseSimple.ts │ │ │ └── utils.ts │ │ ├── circuits/ │ │ │ ├── circuitsName.ts │ │ │ ├── discloseInputs.ts │ │ │ ├── dscInputs.ts │ │ │ ├── formatInputs.ts │ │ │ ├── formatOutputs.ts │ │ │ ├── generateInputs.ts │ │ │ ├── index.ts │ │ │ ├── ofacInputs.ts │ │ │ ├── registerInputs.ts │ │ │ └── uuid.ts │ │ ├── contracts/ │ │ │ ├── forbiddenCountries.ts │ │ │ ├── formatCallData.ts │ │ │ └── index.ts │ │ ├── cose.ts │ │ ├── csca.ts │ │ ├── date.ts │ │ ├── hash/ │ │ │ ├── custom.ts │ │ │ ├── poseidon.ts │ │ │ └── sha.ts │ │ ├── hash.test.ts │ │ ├── hash.ts │ │ ├── index.ts │ │ ├── kyc/ │ │ │ ├── api.ts │ │ │ ├── build_kyc_ofac_smt.ts │ │ │ ├── constants.ts │ │ │ ├── ecdsa/ │ │ │ │ ├── ecdsa.ts │ │ │ │ └── utils.ts │ │ │ ├── generateInputs.ts │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ ├── ofac.test.ts │ │ ├── ofac.ts │ │ ├── passportData.ts │ │ ├── passports/ │ │ │ ├── commitment.ts │ │ │ ├── core.ts │ │ │ ├── dg1.ts │ │ │ ├── format.ts │ │ │ ├── genMockIdDoc.ts │ │ │ ├── genMockPassportData.ts │ │ │ ├── getMockDSC.ts │ │ │ ├── index.ts │ │ │ ├── mock.ts │ │ │ ├── mockDsc.ts │ │ │ ├── mockGeneration.ts │ │ │ ├── parsing.ts │ │ │ ├── passport.ts │ │ │ ├── passport_parsing/ │ │ │ │ ├── brutForceDscSignature.ts │ │ │ │ ├── brutForcePassportSignature.ts │ │ │ │ ├── parseDscCertificateData.ts │ │ │ │ └── parsePassportData.ts │ │ │ ├── signature.ts │ │ │ ├── validate.test.ts │ │ │ └── validate.ts │ │ ├── proving.ts │ │ ├── scope.ts │ │ ├── selfAttestation.ts │ │ ├── shaPad.ts │ │ ├── trees.ts │ │ └── types.ts │ ├── tests/ │ │ ├── coseVerify.test.ts │ │ ├── cryptoHash.test.ts │ │ ├── cryptoHmac.test.ts │ │ ├── genMockPassportData.test.ts │ │ ├── proving.test.ts │ │ ├── scope.test.ts │ │ └── setup.ts │ ├── tsconfig.cjs.json │ ├── tsconfig.json │ ├── tsup.config.ts │ └── vitest.config.ts ├── contracts/ │ ├── .gitignore │ ├── .prettierignore │ ├── .prettierrc.yml │ ├── README.md │ ├── UPGRADE_GUIDE.md │ ├── contracts/ │ │ ├── IdentityVerificationHub.sol │ │ ├── IdentityVerificationHubImplV1.sol │ │ ├── IdentityVerificationHubImplV2.sol │ │ ├── abstract/ │ │ │ ├── SelfVerificationRoot.sol │ │ │ └── SelfVerificationRootUpgradeable.sol │ │ ├── constants/ │ │ │ ├── AttestationId.sol │ │ │ ├── CircuitConstants.sol │ │ │ └── CircuitConstantsV2.sol │ │ ├── example/ │ │ │ ├── Airdrop.sol │ │ │ ├── HappyBirthday.sol │ │ │ ├── SelfIdentityERC721.sol │ │ │ └── SelfPassportERC721.sol │ │ ├── interfaces/ │ │ │ ├── IDscCircuitVerifier.sol │ │ │ ├── IIdentityRegistryAadhaarV1.sol │ │ │ ├── IIdentityRegistryIdCardV1.sol │ │ │ ├── IIdentityRegistryKycV1.sol │ │ │ ├── IIdentityRegistryV1.sol │ │ │ ├── IIdentityVerificationHubV1.sol │ │ │ ├── IIdentityVerificationHubV2.sol │ │ │ ├── IPassportAirdropRoot.sol │ │ │ ├── IPoseidonT3.sol │ │ │ ├── IRegisterCircuitVerifier.sol │ │ │ ├── ISelfVerificationRoot.sol │ │ │ └── IVcAndDiscloseCircuitVerifier.sol │ │ ├── libraries/ │ │ │ ├── CircuitAttributeHandler.sol │ │ │ ├── CircuitAttributeHandlerV2.sol │ │ │ ├── CountryCode.sol │ │ │ ├── CustomVerifier.sol │ │ │ ├── DscProofVerifierLib.sol │ │ │ ├── Formatter.sol │ │ │ ├── GCPJWTHelper.sol │ │ │ ├── GenericFormatter.sol │ │ │ ├── IdCardAttributeHandler.sol │ │ │ ├── OfacCheckLib.sol │ │ │ ├── OutputFormatterLib.sol │ │ │ ├── ProofVerifierLib.sol │ │ │ ├── RegisterProofVerifierLib.sol │ │ │ ├── RootCheckLib.sol │ │ │ ├── SelfCircuitLibrary.sol │ │ │ ├── SelfStructs.sol │ │ │ └── SelfUtils.sol │ │ ├── registry/ │ │ │ ├── IdentityRegistry.sol │ │ │ ├── IdentityRegistryAadhaarImplV1.sol │ │ │ ├── IdentityRegistryIdCardImplV1.sol │ │ │ ├── IdentityRegistryImplV1.sol │ │ │ └── IdentityRegistryKycImplV1.sol │ │ ├── sdk/ │ │ │ └── VerifyAll.sol │ │ ├── tests/ │ │ │ ├── MockGCPJWTVerifier.sol │ │ │ ├── MockOwnableHub.sol │ │ │ ├── MockOwnableImplRoot.sol │ │ │ ├── MockOwnableRegistry.sol │ │ │ ├── MockUpgradedHub.sol │ │ │ ├── MockUpgradedRegistry.sol │ │ │ ├── TestAirdrop.sol │ │ │ ├── TestCountryCodes.sol │ │ │ ├── TestCustomVerifier.sol │ │ │ ├── TestGCPJWTHelper.sol │ │ │ ├── TestSelfUtils.sol │ │ │ ├── TestSelfVerificationRoot.sol │ │ │ ├── airdropToken.sol │ │ │ ├── testCircuitAttributeHandler.sol │ │ │ ├── testFormatter.sol │ │ │ ├── testGenericFormatter.sol │ │ │ ├── testImplRoot.sol │ │ │ ├── testUpgradedIdentityRegistryImplV1.sol │ │ │ ├── testUpgradedIdentityVerificationHubImplV1.sol │ │ │ └── testUpgradedIdentityVerificationHubImplV2.sol │ │ ├── upgradeable/ │ │ │ ├── ImplRoot.sol │ │ │ └── ProxyRoot.sol │ │ ├── utils/ │ │ │ └── PCR0Manager.sol │ │ └── verifiers/ │ │ ├── disclose/ │ │ │ ├── Verifier_vc_and_disclose.sol │ │ │ ├── Verifier_vc_and_disclose_aadhaar.sol │ │ │ ├── Verifier_vc_and_disclose_id.sol │ │ │ └── Verifier_vc_and_disclose_kyc.sol │ │ ├── dsc/ │ │ │ ├── Verifier_dsc_sha1_ecdsa_brainpoolP256r1.sol │ │ │ ├── Verifier_dsc_sha1_ecdsa_secp256r1.sol │ │ │ ├── Verifier_dsc_sha1_rsa_65537_4096.sol │ │ │ ├── Verifier_dsc_sha256_ecdsa_brainpoolP256r1.sol │ │ │ ├── Verifier_dsc_sha256_ecdsa_brainpoolP384r1.sol │ │ │ ├── Verifier_dsc_sha256_ecdsa_secp256r1.sol │ │ │ ├── Verifier_dsc_sha256_ecdsa_secp384r1.sol │ │ │ ├── Verifier_dsc_sha256_ecdsa_secp521r1.sol │ │ │ ├── Verifier_dsc_sha256_rsa_107903_4096.sol │ │ │ ├── Verifier_dsc_sha256_rsa_122125_4096.sol │ │ │ ├── Verifier_dsc_sha256_rsa_130689_4096.sol │ │ │ ├── Verifier_dsc_sha256_rsa_56611_4096.sol │ │ │ ├── Verifier_dsc_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_dsc_sha256_rsapss_3_32_3072.sol │ │ │ ├── Verifier_dsc_sha256_rsapss_65537_32_3072.sol │ │ │ ├── Verifier_dsc_sha256_rsapss_65537_32_4096.sol │ │ │ ├── Verifier_dsc_sha384_ecdsa_brainpoolP384r1.sol │ │ │ ├── Verifier_dsc_sha384_ecdsa_brainpoolP512r1.sol │ │ │ ├── Verifier_dsc_sha384_ecdsa_secp384r1.sol │ │ │ ├── Verifier_dsc_sha512_ecdsa_brainpoolP512r1.sol │ │ │ ├── Verifier_dsc_sha512_ecdsa_secp521r1.sol │ │ │ ├── Verifier_dsc_sha512_rsa_65537_4096.sol │ │ │ └── Verifier_dsc_sha512_rsapss_65537_64_4096.sol │ │ ├── gcp/ │ │ │ └── Verifier_gcp_jwt.sol │ │ ├── register/ │ │ │ ├── Verifier_register_sha1_sha1_sha1_ecdsa_brainpoolP224r1.sol │ │ │ ├── Verifier_register_sha1_sha1_sha1_ecdsa_secp256r1.sol │ │ │ ├── Verifier_register_sha1_sha1_sha1_rsa_64321_4096.sol │ │ │ ├── Verifier_register_sha1_sha1_sha1_rsa_65537_4096.sol │ │ │ ├── Verifier_register_sha1_sha256_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_register_sha224_sha224_sha224_ecdsa_brainpoolP224r1.sol │ │ │ ├── Verifier_register_sha256_sha1_sha1_rsa_65537_4096.sol │ │ │ ├── Verifier_register_sha256_sha224_sha224_ecdsa_secp224r1.sol │ │ │ ├── Verifier_register_sha256_sha256_sha224_ecdsa_secp224r1.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_ecdsa_brainpoolP256r1.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_ecdsa_brainpoolP384r1.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_ecdsa_secp256r1.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_ecdsa_secp384r1.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsa_3_4096.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsapss_3_32_2048.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsapss_65537_32_2048.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsapss_65537_32_3072.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsapss_65537_32_4096.sol │ │ │ ├── Verifier_register_sha256_sha256_sha256_rsapss_65537_64_2048.sol │ │ │ ├── Verifier_register_sha384_sha384_sha384_ecdsa_brainpoolP384r1.sol │ │ │ ├── Verifier_register_sha384_sha384_sha384_ecdsa_brainpoolP512r1.sol │ │ │ ├── Verifier_register_sha384_sha384_sha384_ecdsa_secp384r1.sol │ │ │ ├── Verifier_register_sha384_sha384_sha384_rsapss_65537_48_2048.sol │ │ │ ├── Verifier_register_sha512_sha512_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_register_sha512_sha512_sha256_rsapss_65537_32_2048.sol │ │ │ ├── Verifier_register_sha512_sha512_sha512_ecdsa_brainpoolP512r1.sol │ │ │ ├── Verifier_register_sha512_sha512_sha512_ecdsa_secp521r1.sol │ │ │ ├── Verifier_register_sha512_sha512_sha512_rsa_65537_4096.sol │ │ │ └── Verifier_register_sha512_sha512_sha512_rsapss_65537_64_2048.sol │ │ ├── register_aadhaar/ │ │ │ └── Verifier_register_aadhaar.sol │ │ ├── register_id/ │ │ │ ├── Verifier_register_id_sha1_sha1_sha1_ecdsa_brainpoolP224r1.sol │ │ │ ├── Verifier_register_id_sha1_sha1_sha1_ecdsa_secp256r1.sol │ │ │ ├── Verifier_register_id_sha1_sha1_sha1_rsa_65537_4096.sol │ │ │ ├── Verifier_register_id_sha1_sha256_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_register_id_sha224_sha224_sha224_ecdsa_brainpoolP224r1.sol │ │ │ ├── Verifier_register_id_sha256_sha224_sha224_ecdsa_secp224r1.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha224_ecdsa_secp224r1.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_ecdsa_brainpoolP256r1.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_ecdsa_brainpoolP384r1.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_ecdsa_secp256r1.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_ecdsa_secp384r1.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_rsa_3_4096.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_rsapss_3_32_2048.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_rsapss_65537_32_2048.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_rsapss_65537_32_3072.sol │ │ │ ├── Verifier_register_id_sha256_sha256_sha256_rsapss_65537_64_2048.sol │ │ │ ├── Verifier_register_id_sha384_sha384_sha384_ecdsa_brainpoolP384r1.sol │ │ │ ├── Verifier_register_id_sha384_sha384_sha384_ecdsa_brainpoolP512r1.sol │ │ │ ├── Verifier_register_id_sha384_sha384_sha384_ecdsa_secp384r1.sol │ │ │ ├── Verifier_register_id_sha384_sha384_sha384_rsapss_65537_48_2048.sol │ │ │ ├── Verifier_register_id_sha512_sha512_sha256_rsa_65537_4096.sol │ │ │ ├── Verifier_register_id_sha512_sha512_sha256_rsapss_65537_32_2048.sol │ │ │ ├── Verifier_register_id_sha512_sha512_sha512_ecdsa_brainpoolP512r1.sol │ │ │ ├── Verifier_register_id_sha512_sha512_sha512_ecdsa_secp521r1.sol │ │ │ ├── Verifier_register_id_sha512_sha512_sha512_rsa_65537_4096.sol │ │ │ └── Verifier_register_id_sha512_sha512_sha512_rsapss_65537_64_2048.sol │ │ └── register_kyc/ │ │ └── Verifier_register_kyc.sol │ ├── deployments/ │ │ └── registry.json │ ├── error-selectors.json │ ├── foundry.toml │ ├── hardhat.config.ts │ ├── ignition/ │ │ ├── deployments/ │ │ │ ├── chain-11142220/ │ │ │ │ └── deployed_addresses.json │ │ │ ├── chain-42220/ │ │ │ │ └── deployed_addresses.json │ │ │ ├── prod/ │ │ │ │ └── deployed_addresses.json │ │ │ └── staging/ │ │ │ └── deployed_addresses.json │ │ ├── modules/ │ │ │ ├── deployTestSelfVerificationRoot.ts │ │ │ ├── hub/ │ │ │ │ ├── deployHub.ts │ │ │ │ ├── deployHubV2.ts │ │ │ │ ├── updateRegistries.ts │ │ │ │ └── updateVerifiers.ts │ │ │ ├── registry/ │ │ │ │ ├── deployAadhaarRegistry.ts │ │ │ │ ├── deployIdCardRegistry.ts │ │ │ │ ├── deployKycRegistry.ts │ │ │ │ ├── deployRegistry.ts │ │ │ │ └── updateRegistries.ts │ │ │ ├── scripts/ │ │ │ │ ├── updatePCR0.ts │ │ │ │ ├── updateRegistryCscaRoot.ts │ │ │ │ ├── updateRegistryHub.ts │ │ │ │ ├── updateRegistryHubV2.ts │ │ │ │ └── updateVerifyAllAddresses.ts │ │ │ ├── upgrade/ │ │ │ │ ├── deployNewHubAndUpgrade.ts │ │ │ │ ├── deployNewRegistryAndUpgrade.ts │ │ │ │ ├── upgradeAadhaarRegistry.ts │ │ │ │ ├── upgradeIdCardRegistry.ts │ │ │ │ ├── upgradeKycRegistry.ts │ │ │ │ └── upgradeRegistry.ts │ │ │ ├── utils/ │ │ │ │ └── deployPCR0.ts │ │ │ ├── verifiers/ │ │ │ │ ├── deployAllVerifiers.ts │ │ │ │ └── deployIdCardVerifier.ts │ │ │ └── verifyAll/ │ │ │ └── deployVerifyAll.ts │ │ └── readme.md │ ├── package.json │ ├── remappings.txt │ ├── script/ │ │ └── MigratePCR0Manager.s.sol │ ├── scripts/ │ │ ├── README.md │ │ ├── constants.ts │ │ ├── deleteDscKeyCommitment.mts │ │ ├── deleteDscKeyCommitment.ts │ │ ├── dev.sh │ │ ├── findErrorSelectors.ts │ │ ├── findErrorSignature.mts │ │ ├── prod.sh │ │ ├── setDscKeyCommitment.ts │ │ ├── setHubV2.ts │ │ ├── setRegistry.ts │ │ ├── setRegistryId.ts │ │ ├── setVerifiers.ts │ │ ├── setVerifiersV2.ts │ │ ├── showRegistryAddresses.ts │ │ ├── staging.sh │ │ ├── test.sh │ │ ├── updateRegistryOfacRoot.ts │ │ └── update_contract_name.sh │ ├── tasks/ │ │ └── upgrade/ │ │ ├── README.md │ │ ├── history.ts │ │ ├── index.ts │ │ ├── prepare.ts │ │ ├── propose.ts │ │ ├── status.ts │ │ ├── types.ts │ │ ├── upgrade.ts │ │ └── utils.ts │ ├── test/ │ │ ├── foundry/ │ │ │ ├── MigratePCR0Manager.t.sol │ │ │ └── UpgradeToAccessControl.t.sol │ │ ├── unit/ │ │ │ ├── CircuitAttributeHandler.test.ts │ │ │ ├── CountryCodes.test.ts │ │ │ ├── CustomVerifier.test.ts │ │ │ ├── GCPJWTHelper.test.ts │ │ │ ├── GenericFormatter.test.ts │ │ │ ├── IdentityRegistry.test.ts │ │ │ ├── IdentityVerificationHub.test.ts │ │ │ ├── ImplRoot.test.ts │ │ │ ├── PCR0Manager.test.ts │ │ │ ├── SelfUtils.test.ts │ │ │ ├── formatter.test.ts │ │ │ └── scopeGeneration.test.ts │ │ ├── utils/ │ │ │ ├── constants.ts │ │ │ ├── contractUtils.ts │ │ │ ├── deploymentV2.ts │ │ │ ├── example/ │ │ │ │ ├── balance-tree.ts │ │ │ │ └── merkle-tree.ts │ │ │ ├── formatter.ts │ │ │ ├── generateProof.ts │ │ │ ├── smt.json │ │ │ ├── types.ts │ │ │ └── utils.ts │ │ └── v2/ │ │ ├── discloseAadhaar.test.ts │ │ ├── discloseId.test.ts │ │ ├── discloseKyc.test.ts │ │ ├── disclosePassport.test.ts │ │ ├── hubOther.test.ts │ │ ├── ofacProofUpdate.test.ts │ │ ├── ofacRollingWindow.test.ts │ │ ├── ofacUpgradePath.test.ts │ │ ├── registerAadhaar.test.ts │ │ ├── registerId.test.ts │ │ ├── registerKyc.test.ts │ │ └── registerPassport.test.ts │ └── tsconfig.json ├── contribute.md ├── docs/ │ ├── claude-statusline-setup.md │ ├── coverage/ │ │ ├── app.json │ │ └── sdk.json │ ├── development-patterns.md │ ├── maintenance/ │ │ ├── tech-debt-baseline.json │ │ └── tech-debt-baseline.md │ ├── refactor-restructure-utils.md │ ├── reviews/ │ │ ├── 2026-03-23-euclid-settings-tunnel-audit.md │ │ ├── PR-1901-review-findings.md │ │ └── PR-1924-review-findings.md │ ├── superpowers/ │ │ └── plans/ │ │ ├── 2026-03-22-settings-handover.md │ │ ├── 2026-03-22-settings-screen-integration.md │ │ └── 2026-04-21-passport-ocr-camera-permission.md │ ├── templates/ │ │ └── pr-action-items-template.md │ └── testing-guide.md ├── error-selectors.json ├── gitleaks-override.toml ├── knip.config.ts ├── new-common/ │ ├── .prettierrc │ ├── package.json │ ├── plans/ │ │ └── PLAN.md │ ├── src/ │ │ ├── app/ │ │ │ ├── builder.ts │ │ │ └── index.ts │ │ ├── attestation/ │ │ │ ├── gcp.ts │ │ │ └── index.ts │ │ ├── blockchain/ │ │ │ ├── forbiddenCountries.ts │ │ │ ├── formatCallData.ts │ │ │ ├── index.ts │ │ │ ├── ofac.ts │ │ │ └── proving.ts │ │ ├── certificates/ │ │ │ ├── csca.ts │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── parsing/ │ │ │ │ ├── bruteForceSignature.ts │ │ │ │ ├── curves.ts │ │ │ │ ├── elliptic.ts │ │ │ │ ├── index.ts │ │ │ │ ├── oids.ts │ │ │ │ ├── parseCertificateSimple.ts │ │ │ │ ├── parseDscCertificateData.ts │ │ │ │ └── utils.ts │ │ │ ├── pubkey.ts │ │ │ ├── signature.ts │ │ │ └── types.ts │ │ ├── circuits/ │ │ │ ├── circuitName.ts │ │ │ ├── generator.ts │ │ │ ├── index.ts │ │ │ ├── inputs/ │ │ │ │ ├── disclose-aadhaar.ts │ │ │ │ ├── disclose-kyc.ts │ │ │ │ ├── disclose.ts │ │ │ │ ├── dsc.ts │ │ │ │ ├── format.ts │ │ │ │ ├── index.ts │ │ │ │ ├── ofac.ts │ │ │ │ ├── register-aadhaar.ts │ │ │ │ ├── register-kyc.ts │ │ │ │ └── register.ts │ │ │ ├── outputs/ │ │ │ │ ├── format.ts │ │ │ │ └── index.ts │ │ │ ├── types.ts │ │ │ └── userId.ts │ │ ├── crypto/ │ │ │ ├── eddsa.ts │ │ │ ├── encryption.ts │ │ │ ├── hash/ │ │ │ │ ├── index.ts │ │ │ │ ├── poseidon.ts │ │ │ │ └── sha.ts │ │ │ ├── identity.ts │ │ │ ├── index.ts │ │ │ ├── scope.ts │ │ │ └── sha-pad.ts │ │ ├── data/ │ │ │ ├── countries.ts │ │ │ ├── error-selector-map.json │ │ │ ├── index.ts │ │ │ ├── mockCertificates.ts │ │ │ ├── sampleDataHashes.ts │ │ │ ├── serialized_csca_tree.json │ │ │ ├── serialized_dsc_tree.json │ │ │ └── skiPem.ts │ │ ├── documents/ │ │ │ ├── aadhaar/ │ │ │ │ ├── adapter.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── index.ts │ │ │ │ ├── qr.ts │ │ │ │ └── utils.ts │ │ │ ├── factory.ts │ │ │ ├── index.ts │ │ │ ├── interface.ts │ │ │ ├── kyc/ │ │ │ │ ├── adapter.ts │ │ │ │ ├── api.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ └── passport/ │ │ │ ├── adapter.ts │ │ │ ├── bruteForcePassportSignature.ts │ │ │ ├── commitment.ts │ │ │ ├── core.ts │ │ │ ├── format.ts │ │ │ ├── index.ts │ │ │ └── parsing.ts │ │ ├── foundation/ │ │ │ ├── arrays.ts │ │ │ ├── bytes.ts │ │ │ ├── constants/ │ │ │ │ ├── circuit.ts │ │ │ │ ├── countries.ts │ │ │ │ ├── crypto.ts │ │ │ │ ├── disclosure.ts │ │ │ │ ├── identity.ts │ │ │ │ ├── index.ts │ │ │ │ └── network.ts │ │ │ ├── date.ts │ │ │ ├── index.ts │ │ │ └── types/ │ │ │ ├── app.ts │ │ │ ├── attestation.ts │ │ │ ├── certificate.ts │ │ │ ├── circuit.ts │ │ │ ├── document.ts │ │ │ ├── environment.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── testing/ │ │ │ ├── dg1.ts │ │ │ ├── genMockAadhaarData.ts │ │ │ ├── genMockIdDoc.ts │ │ │ ├── genMockKycData.ts │ │ │ ├── genMockPassportData.ts │ │ │ ├── getMockDSC.ts │ │ │ ├── index.ts │ │ │ └── mockAadhaarCert.ts │ │ └── trees/ │ │ ├── aadhaarLeafBuilder.ts │ │ ├── certificate.ts │ │ ├── index.ts │ │ ├── kycLeafBuilder.ts │ │ ├── leafBuilder.ts │ │ ├── ofac.ts │ │ ├── passportLeafBuilder.ts │ │ └── proof.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── noir/ │ ├── AGENTS.md │ ├── Nargo.toml │ ├── README.md │ └── crates/ │ ├── dg1/ │ │ ├── Nargo.toml │ │ ├── Prover.toml │ │ ├── rsa-inputs.json │ │ └── src/ │ │ ├── constants.nr │ │ ├── dg1/ │ │ │ ├── dg1.nr │ │ │ └── mod.nr │ │ ├── disclose/ │ │ │ ├── country_not_in_list.nr │ │ │ ├── disclose.nr │ │ │ └── mod.nr │ │ ├── eContent/ │ │ │ ├── hasher.nr │ │ │ ├── mod.nr │ │ │ └── utils.nr │ │ ├── main.nr │ │ ├── ofac/ │ │ │ ├── mod.nr │ │ │ ├── ofac_name.nr │ │ │ ├── ofac_name_dob.nr │ │ │ └── ofac_passport_number.nr │ │ ├── types.nr │ │ └── utils/ │ │ ├── array.nr │ │ ├── date/ │ │ │ ├── is_older_than.nr │ │ │ └── mod.nr │ │ ├── mod.nr │ │ └── other/ │ │ ├── binary_merkle_tree.nr │ │ ├── mod.nr │ │ └── smt.nr │ └── econtent/ │ ├── Nargo.toml │ └── src/ │ └── main.nr ├── package.json ├── packages/ │ ├── kmp-minipay-sample/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── composeApp/ │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── kotlin/ │ │ │ │ │ └── xyz/ │ │ │ │ │ └── self/ │ │ │ │ │ └── minipay/ │ │ │ │ │ ├── AppStorage.android.kt │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ ├── MainApplication.kt │ │ │ │ │ ├── PlatformLaunch.android.kt │ │ │ │ │ └── webview/ │ │ │ │ │ └── PlatformWebViewBridge.android.kt │ │ │ │ └── res/ │ │ │ │ └── xml/ │ │ │ │ └── nfc_tech_filter.xml │ │ │ ├── commonMain/ │ │ │ │ └── kotlin/ │ │ │ │ └── xyz/ │ │ │ │ └── self/ │ │ │ │ └── minipay/ │ │ │ │ ├── App.kt │ │ │ │ ├── AppStorage.kt │ │ │ │ ├── MainViewModel.kt │ │ │ │ ├── PlatformLaunch.kt │ │ │ │ ├── screens/ │ │ │ │ │ ├── HomeScreen.kt │ │ │ │ │ ├── ResultScreen.kt │ │ │ │ │ └── WebViewBridgeScreen.kt │ │ │ │ ├── theme/ │ │ │ │ │ └── Theme.kt │ │ │ │ └── webview/ │ │ │ │ └── EthereumBridge.kt │ │ │ └── iosMain/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── minipay/ │ │ │ ├── AppStorage.ios.kt │ │ │ ├── MainViewController.kt │ │ │ ├── PlatformLaunch.ios.kt │ │ │ └── webview/ │ │ │ └── PlatformWebViewBridge.ios.kt │ │ ├── gradle/ │ │ │ ├── libs.versions.toml │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── iosApp/ │ │ │ ├── iosApp/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Info.plist │ │ │ │ ├── iOSApp.swift │ │ │ │ └── iosApp.entitlements │ │ │ └── iosApp.xcodeproj/ │ │ │ └── project.pbxproj │ │ └── settings.gradle.kts │ ├── kmp-sdk/ │ │ ├── .gitignore │ │ ├── Package.swift │ │ ├── build.gradle.kts │ │ ├── gradle/ │ │ │ ├── libs.versions.toml │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── package.json │ │ ├── settings.gradle.kts │ │ └── shared/ │ │ ├── build.gradle.kts │ │ └── src/ │ │ ├── androidMain/ │ │ │ ├── AndroidManifest.xml │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ ├── api/ │ │ │ │ └── SelfSdk.android.kt │ │ │ ├── bridge/ │ │ │ │ └── PlatformActuals.android.kt │ │ │ ├── handlers/ │ │ │ │ ├── BiometricBridgeHandler.kt │ │ │ │ ├── CameraMrzBridgeHandler.kt │ │ │ │ ├── LifecycleBridgeHandler.kt │ │ │ │ └── NfcBridgeHandler.kt │ │ │ ├── providers/ │ │ │ │ ├── AndroidKeystoreCryptoProvider.kt │ │ │ │ └── EncryptedSharedPreferencesProvider.kt │ │ │ └── webview/ │ │ │ ├── AndroidWebViewHost.kt │ │ │ └── SelfVerificationActivity.kt │ │ ├── androidUnitTest/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ └── webview/ │ │ │ └── AndroidWebViewHostSecurityTest.kt │ │ ├── commonMain/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ ├── api/ │ │ │ │ ├── QueryParamsBuilder.kt │ │ │ │ ├── SdkConstants.kt │ │ │ │ ├── SelfSdk.kt │ │ │ │ ├── SelfSdkCallback.kt │ │ │ │ ├── SelfSdkConfig.kt │ │ │ │ ├── VerificationRequest.kt │ │ │ │ └── VerificationResultJson.kt │ │ │ ├── bridge/ │ │ │ │ ├── BridgeHandler.kt │ │ │ │ ├── BridgeMessage.kt │ │ │ │ └── MessageRouter.kt │ │ │ ├── handlers/ │ │ │ │ ├── CryptoBridgeHandler.kt │ │ │ │ ├── LifecycleSetResultOutcome.kt │ │ │ │ ├── NfcApduPolicy.kt │ │ │ │ └── SecureStorageBridgeHandler.kt │ │ │ ├── models/ │ │ │ │ ├── MrzDetectionState.kt │ │ │ │ ├── MrzKeyUtils.kt │ │ │ │ ├── MrzParser.kt │ │ │ │ ├── NfcScanParams.kt │ │ │ │ ├── NfcScanProgress.kt │ │ │ │ ├── NfcScanState.kt │ │ │ │ └── PassportScanResult.kt │ │ │ └── providers/ │ │ │ ├── CryptoProvider.kt │ │ │ ├── SdkProviderRegistry.kt │ │ │ └── SecureStorageProvider.kt │ │ ├── commonTest/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ ├── api/ │ │ │ │ ├── QueryParamsBuilderTest.kt │ │ │ │ └── VerificationResultJsonTest.kt │ │ │ ├── bridge/ │ │ │ │ ├── BridgeMessageTest.kt │ │ │ │ └── MessageRouterTest.kt │ │ │ ├── handlers/ │ │ │ │ ├── LifecycleBridgeHandlerTest.kt │ │ │ │ └── NfcApduPolicyTest.kt │ │ │ ├── models/ │ │ │ │ ├── ModelSerializationTest.kt │ │ │ │ ├── MrzKeyUtilsTest.kt │ │ │ │ ├── MrzParserTest.kt │ │ │ │ └── NfcScanStateTest.kt │ │ │ └── testutil/ │ │ │ ├── FakeBridgeHandler.kt │ │ │ └── TestData.kt │ │ ├── iosMain/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ ├── api/ │ │ │ │ └── SelfSdk.ios.kt │ │ │ ├── bridge/ │ │ │ │ └── PlatformActuals.ios.kt │ │ │ ├── handlers/ │ │ │ │ ├── AnalyticsBridgeHandler.kt │ │ │ │ ├── BiometricBridgeHandler.kt │ │ │ │ ├── CameraMrzBridgeHandler.kt │ │ │ │ ├── DocumentsBridgeHandler.kt │ │ │ │ ├── HapticBridgeHandler.kt │ │ │ │ ├── LifecycleBridgeHandler.kt │ │ │ │ └── NfcBridgeHandler.kt │ │ │ ├── providers/ │ │ │ │ ├── BiometricProvider.kt │ │ │ │ ├── CameraMrzProvider.kt │ │ │ │ ├── DocumentsProvider.kt │ │ │ │ ├── HapticProvider.kt │ │ │ │ ├── IosProviderRegistry.kt │ │ │ │ ├── NfcProvider.kt │ │ │ │ └── WebViewProvider.kt │ │ │ └── webview/ │ │ │ └── IosWebViewHost.kt │ │ ├── jvmMain/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ ├── api/ │ │ │ │ └── SelfSdk.jvm.kt │ │ │ └── bridge/ │ │ │ └── PlatformActuals.jvm.kt │ │ └── nativeInterop/ │ │ └── cinterop/ │ │ ├── CoreNFC.def │ │ ├── LocalAuthentication.def │ │ ├── Security.def │ │ ├── UIKit.def │ │ └── Vision.def │ ├── kmp-sdk-test-app/ │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .swiftlint.yml │ │ ├── README.md │ │ ├── build.gradle.kts │ │ ├── composeApp/ │ │ │ ├── build.gradle.kts │ │ │ └── src/ │ │ │ ├── androidMain/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── kotlin/ │ │ │ │ └── xyz/ │ │ │ │ └── self/ │ │ │ │ └── testapp/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── SelfTestApplication.kt │ │ │ │ ├── components/ │ │ │ │ │ └── CameraPreviewComposable.kt │ │ │ │ ├── screens/ │ │ │ │ │ ├── DevServerUrl.android.kt │ │ │ │ │ ├── MrzScanScreen.android.kt │ │ │ │ │ ├── NfcScanScreen.android.kt │ │ │ │ │ └── PassportDetailsScreen.android.kt │ │ │ │ ├── storage/ │ │ │ │ │ └── PassportDataStore.kt │ │ │ │ └── utils/ │ │ │ │ └── Logger.android.kt │ │ │ ├── commonMain/ │ │ │ │ └── kotlin/ │ │ │ │ └── xyz/ │ │ │ │ └── self/ │ │ │ │ └── testapp/ │ │ │ │ ├── App.kt │ │ │ │ ├── components/ │ │ │ │ │ ├── MrzViewfinder.kt │ │ │ │ │ └── NfcProgressIndicator.kt │ │ │ │ ├── models/ │ │ │ │ │ ├── PassportData.kt │ │ │ │ │ └── VerificationFlowState.kt │ │ │ │ ├── screens/ │ │ │ │ │ ├── DomainSmokeScreen.kt │ │ │ │ │ ├── MrzConfirmationScreen.kt │ │ │ │ │ ├── PassportDetailsScreen.kt │ │ │ │ │ ├── ResultScreen.kt │ │ │ │ │ └── SdkLaunchScreen.kt │ │ │ │ ├── theme/ │ │ │ │ │ └── Theme.kt │ │ │ │ ├── utils/ │ │ │ │ │ └── Logger.kt │ │ │ │ └── viewmodels/ │ │ │ │ └── VerificationViewModel.kt │ │ │ ├── commonTest/ │ │ │ │ └── kotlin/ │ │ │ │ └── xyz/ │ │ │ │ └── self/ │ │ │ │ └── testapp/ │ │ │ │ ├── models/ │ │ │ │ │ ├── PassportDataTest.kt │ │ │ │ │ └── VerificationFlowStateTest.kt │ │ │ │ ├── testutil/ │ │ │ │ │ └── TestData.kt │ │ │ │ └── viewmodels/ │ │ │ │ └── VerificationViewModelTest.kt │ │ │ ├── debug/ │ │ │ │ └── AndroidManifest.xml │ │ │ └── iosMain/ │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── testapp/ │ │ │ ├── MainViewController.kt │ │ │ ├── screens/ │ │ │ │ ├── DevServerUrl.ios.kt │ │ │ │ ├── MrzScanScreen.ios.kt │ │ │ │ ├── NfcScanScreen.ios.kt │ │ │ │ └── PassportDetailsScreen.ios.kt │ │ │ └── utils/ │ │ │ ├── ExceptionHandler.ios.kt │ │ │ └── Logger.ios.kt │ │ ├── gradle/ │ │ │ ├── libs.versions.toml │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── iosApp/ │ │ │ ├── .swiftlint.yml │ │ │ ├── Podfile │ │ │ ├── iosApp/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── Info.plist │ │ │ │ ├── iOSApp.swift │ │ │ │ └── iosApp.entitlements │ │ │ ├── iosApp.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── iosApp.xcscheme │ │ │ └── iosApp.xcworkspace/ │ │ │ └── contents.xcworkspacedata │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── run-android.sh │ │ │ └── run-ios.sh │ │ └── settings.gradle.kts │ ├── mobile-sdk-alpha/ │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── AGENTS.md │ │ ├── README.md │ │ ├── android/ │ │ │ ├── build.gradle │ │ │ ├── build.gradle.source │ │ │ ├── gradle.properties │ │ │ ├── mobile-sdk-alpha-bom.gradle │ │ │ └── proguard-rules.pro │ │ ├── assets/ │ │ │ └── fonts/ │ │ │ ├── Advercase-Regular.otf │ │ │ ├── DINOT-Bold.otf │ │ │ ├── DINOT-Medium.otf │ │ │ └── IBMPlexMono-Regular.otf │ │ ├── docs/ │ │ │ └── DOCSTRING_STYLE_GUIDE.md │ │ ├── ios/ │ │ │ ├── Frameworks/ │ │ │ │ ├── NFCPassportReader.xcframework/ │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── ios-arm64/ │ │ │ │ │ └── NFCPassportReader.framework/ │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ └── NFCPassportReader.swiftmodule/ │ │ │ │ │ │ ├── arm64-apple-ios.abi.json │ │ │ │ │ │ ├── arm64-apple-ios.private.swiftinterface │ │ │ │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ │ │ │ └── arm64-apple-ios.swiftinterface │ │ │ │ │ ├── NFCPassportReader │ │ │ │ │ └── _CodeSignature/ │ │ │ │ │ └── CodeResources │ │ │ │ └── OpenSSL.xcframework/ │ │ │ │ ├── Info.plist │ │ │ │ ├── _CodeSignature/ │ │ │ │ │ ├── CodeDirectory │ │ │ │ │ ├── CodeRequirements │ │ │ │ │ ├── CodeRequirements-1 │ │ │ │ │ ├── CodeResources │ │ │ │ │ └── CodeSignature │ │ │ │ ├── ios-arm64/ │ │ │ │ │ └── OpenSSL.framework/ │ │ │ │ │ ├── Headers/ │ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ │ ├── aes.h │ │ │ │ │ │ ├── asn1.h │ │ │ │ │ │ ├── asn1err.h │ │ │ │ │ │ ├── asn1t.h │ │ │ │ │ │ ├── async.h │ │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ │ ├── bio.h │ │ │ │ │ │ ├── bioerr.h │ │ │ │ │ │ ├── blowfish.h │ │ │ │ │ │ ├── bn.h │ │ │ │ │ │ ├── bnerr.h │ │ │ │ │ │ ├── buffer.h │ │ │ │ │ │ ├── buffererr.h │ │ │ │ │ │ ├── camellia.h │ │ │ │ │ │ ├── cast.h │ │ │ │ │ │ ├── cmac.h │ │ │ │ │ │ ├── cms.h │ │ │ │ │ │ ├── cmserr.h │ │ │ │ │ │ ├── comp.h │ │ │ │ │ │ ├── comperr.h │ │ │ │ │ │ ├── conf.h │ │ │ │ │ │ ├── conf_api.h │ │ │ │ │ │ ├── conferr.h │ │ │ │ │ │ ├── crypto.h │ │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ │ ├── ct.h │ │ │ │ │ │ ├── cterr.h │ │ │ │ │ │ ├── des.h │ │ │ │ │ │ ├── dh.h │ │ │ │ │ │ ├── dherr.h │ │ │ │ │ │ ├── dsa.h │ │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ │ ├── dtls1.h │ │ │ │ │ │ ├── e_os2.h │ │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ │ ├── ec.h │ │ │ │ │ │ ├── ecdh.h │ │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ │ ├── ecerr.h │ │ │ │ │ │ ├── engine.h │ │ │ │ │ │ ├── engineerr.h │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ ├── evp.h │ │ │ │ │ │ ├── evperr.h │ │ │ │ │ │ ├── hmac.h │ │ │ │ │ │ ├── idea.h │ │ │ │ │ │ ├── kdf.h │ │ │ │ │ │ ├── kdferr.h │ │ │ │ │ │ ├── lhash.h │ │ │ │ │ │ ├── md2.h │ │ │ │ │ │ ├── md4.h │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ ├── mdc2.h │ │ │ │ │ │ ├── modes.h │ │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ │ ├── objects.h │ │ │ │ │ │ ├── objectserr.h │ │ │ │ │ │ ├── ocsp.h │ │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ │ ├── opensslv.h │ │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ │ ├── pem.h │ │ │ │ │ │ ├── pem2.h │ │ │ │ │ │ ├── pemerr.h │ │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ │ ├── rand.h │ │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ │ ├── randerr.h │ │ │ │ │ │ ├── rc2.h │ │ │ │ │ │ ├── rc4.h │ │ │ │ │ │ ├── rc5.h │ │ │ │ │ │ ├── ripemd.h │ │ │ │ │ │ ├── rsa.h │ │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ │ ├── safestack.h │ │ │ │ │ │ ├── seed.h │ │ │ │ │ │ ├── sha.h │ │ │ │ │ │ ├── shim.h │ │ │ │ │ │ ├── srp.h │ │ │ │ │ │ ├── srtp.h │ │ │ │ │ │ ├── ssl.h │ │ │ │ │ │ ├── ssl2.h │ │ │ │ │ │ ├── ssl3.h │ │ │ │ │ │ ├── sslerr.h │ │ │ │ │ │ ├── stack.h │ │ │ │ │ │ ├── store.h │ │ │ │ │ │ ├── storeerr.h │ │ │ │ │ │ ├── symhacks.h │ │ │ │ │ │ ├── tls1.h │ │ │ │ │ │ ├── ts.h │ │ │ │ │ │ ├── tserr.h │ │ │ │ │ │ ├── txt_db.h │ │ │ │ │ │ ├── ui.h │ │ │ │ │ │ ├── uierr.h │ │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ │ ├── x509.h │ │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ │ ├── x509err.h │ │ │ │ │ │ ├── x509v3.h │ │ │ │ │ │ └── x509v3err.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── OpenSSL │ │ │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ │ │ └── _CodeSignature/ │ │ │ │ │ └── CodeResources │ │ │ │ ├── ios-arm64_x86_64-maccatalyst/ │ │ │ │ │ └── OpenSSL.framework/ │ │ │ │ │ ├── Headers/ │ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ │ ├── aes.h │ │ │ │ │ │ ├── asn1.h │ │ │ │ │ │ ├── asn1err.h │ │ │ │ │ │ ├── asn1t.h │ │ │ │ │ │ ├── async.h │ │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ │ ├── bio.h │ │ │ │ │ │ ├── bioerr.h │ │ │ │ │ │ ├── blowfish.h │ │ │ │ │ │ ├── bn.h │ │ │ │ │ │ ├── bnerr.h │ │ │ │ │ │ ├── buffer.h │ │ │ │ │ │ ├── buffererr.h │ │ │ │ │ │ ├── camellia.h │ │ │ │ │ │ ├── cast.h │ │ │ │ │ │ ├── cmac.h │ │ │ │ │ │ ├── cms.h │ │ │ │ │ │ ├── cmserr.h │ │ │ │ │ │ ├── comp.h │ │ │ │ │ │ ├── comperr.h │ │ │ │ │ │ ├── conf.h │ │ │ │ │ │ ├── conf_api.h │ │ │ │ │ │ ├── conferr.h │ │ │ │ │ │ ├── crypto.h │ │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ │ ├── ct.h │ │ │ │ │ │ ├── cterr.h │ │ │ │ │ │ ├── des.h │ │ │ │ │ │ ├── dh.h │ │ │ │ │ │ ├── dherr.h │ │ │ │ │ │ ├── dsa.h │ │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ │ ├── dtls1.h │ │ │ │ │ │ ├── e_os2.h │ │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ │ ├── ec.h │ │ │ │ │ │ ├── ecdh.h │ │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ │ ├── ecerr.h │ │ │ │ │ │ ├── engine.h │ │ │ │ │ │ ├── engineerr.h │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ ├── evp.h │ │ │ │ │ │ ├── evperr.h │ │ │ │ │ │ ├── hmac.h │ │ │ │ │ │ ├── idea.h │ │ │ │ │ │ ├── kdf.h │ │ │ │ │ │ ├── kdferr.h │ │ │ │ │ │ ├── lhash.h │ │ │ │ │ │ ├── md2.h │ │ │ │ │ │ ├── md4.h │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ ├── mdc2.h │ │ │ │ │ │ ├── modes.h │ │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ │ ├── objects.h │ │ │ │ │ │ ├── objectserr.h │ │ │ │ │ │ ├── ocsp.h │ │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ │ ├── opensslv.h │ │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ │ ├── pem.h │ │ │ │ │ │ ├── pem2.h │ │ │ │ │ │ ├── pemerr.h │ │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ │ ├── rand.h │ │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ │ ├── randerr.h │ │ │ │ │ │ ├── rc2.h │ │ │ │ │ │ ├── rc4.h │ │ │ │ │ │ ├── rc5.h │ │ │ │ │ │ ├── ripemd.h │ │ │ │ │ │ ├── rsa.h │ │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ │ ├── safestack.h │ │ │ │ │ │ ├── seed.h │ │ │ │ │ │ ├── sha.h │ │ │ │ │ │ ├── shim.h │ │ │ │ │ │ ├── srp.h │ │ │ │ │ │ ├── srtp.h │ │ │ │ │ │ ├── ssl.h │ │ │ │ │ │ ├── ssl2.h │ │ │ │ │ │ ├── ssl3.h │ │ │ │ │ │ ├── sslerr.h │ │ │ │ │ │ ├── stack.h │ │ │ │ │ │ ├── store.h │ │ │ │ │ │ ├── storeerr.h │ │ │ │ │ │ ├── symhacks.h │ │ │ │ │ │ ├── tls1.h │ │ │ │ │ │ ├── ts.h │ │ │ │ │ │ ├── tserr.h │ │ │ │ │ │ ├── txt_db.h │ │ │ │ │ │ ├── ui.h │ │ │ │ │ │ ├── uierr.h │ │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ │ ├── x509.h │ │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ │ ├── x509err.h │ │ │ │ │ │ ├── x509v3.h │ │ │ │ │ │ └── x509v3err.h │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── OpenSSL │ │ │ │ │ ├── Resources/ │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ │ │ └── Versions/ │ │ │ │ │ ├── A/ │ │ │ │ │ │ ├── Headers/ │ │ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ │ │ ├── aes.h │ │ │ │ │ │ │ ├── asn1.h │ │ │ │ │ │ │ ├── asn1err.h │ │ │ │ │ │ │ ├── asn1t.h │ │ │ │ │ │ │ ├── async.h │ │ │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ │ │ ├── bio.h │ │ │ │ │ │ │ ├── bioerr.h │ │ │ │ │ │ │ ├── blowfish.h │ │ │ │ │ │ │ ├── bn.h │ │ │ │ │ │ │ ├── bnerr.h │ │ │ │ │ │ │ ├── buffer.h │ │ │ │ │ │ │ ├── buffererr.h │ │ │ │ │ │ │ ├── camellia.h │ │ │ │ │ │ │ ├── cast.h │ │ │ │ │ │ │ ├── cmac.h │ │ │ │ │ │ │ ├── cms.h │ │ │ │ │ │ │ ├── cmserr.h │ │ │ │ │ │ │ ├── comp.h │ │ │ │ │ │ │ ├── comperr.h │ │ │ │ │ │ │ ├── conf.h │ │ │ │ │ │ │ ├── conf_api.h │ │ │ │ │ │ │ ├── conferr.h │ │ │ │ │ │ │ ├── crypto.h │ │ │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ │ │ ├── ct.h │ │ │ │ │ │ │ ├── cterr.h │ │ │ │ │ │ │ ├── des.h │ │ │ │ │ │ │ ├── dh.h │ │ │ │ │ │ │ ├── dherr.h │ │ │ │ │ │ │ ├── dsa.h │ │ │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ │ │ ├── dtls1.h │ │ │ │ │ │ │ ├── e_os2.h │ │ │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ │ │ ├── ec.h │ │ │ │ │ │ │ ├── ecdh.h │ │ │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ │ │ ├── ecerr.h │ │ │ │ │ │ │ ├── engine.h │ │ │ │ │ │ │ ├── engineerr.h │ │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ │ ├── evp.h │ │ │ │ │ │ │ ├── evperr.h │ │ │ │ │ │ │ ├── hmac.h │ │ │ │ │ │ │ ├── idea.h │ │ │ │ │ │ │ ├── kdf.h │ │ │ │ │ │ │ ├── kdferr.h │ │ │ │ │ │ │ ├── lhash.h │ │ │ │ │ │ │ ├── md2.h │ │ │ │ │ │ │ ├── md4.h │ │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ │ ├── mdc2.h │ │ │ │ │ │ │ ├── modes.h │ │ │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ │ │ ├── objects.h │ │ │ │ │ │ │ ├── objectserr.h │ │ │ │ │ │ │ ├── ocsp.h │ │ │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ │ │ ├── opensslv.h │ │ │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ │ │ ├── pem.h │ │ │ │ │ │ │ ├── pem2.h │ │ │ │ │ │ │ ├── pemerr.h │ │ │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ │ │ ├── rand.h │ │ │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ │ │ ├── randerr.h │ │ │ │ │ │ │ ├── rc2.h │ │ │ │ │ │ │ ├── rc4.h │ │ │ │ │ │ │ ├── rc5.h │ │ │ │ │ │ │ ├── ripemd.h │ │ │ │ │ │ │ ├── rsa.h │ │ │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ │ │ ├── safestack.h │ │ │ │ │ │ │ ├── seed.h │ │ │ │ │ │ │ ├── sha.h │ │ │ │ │ │ │ ├── shim.h │ │ │ │ │ │ │ ├── srp.h │ │ │ │ │ │ │ ├── srtp.h │ │ │ │ │ │ │ ├── ssl.h │ │ │ │ │ │ │ ├── ssl2.h │ │ │ │ │ │ │ ├── ssl3.h │ │ │ │ │ │ │ ├── sslerr.h │ │ │ │ │ │ │ ├── stack.h │ │ │ │ │ │ │ ├── store.h │ │ │ │ │ │ │ ├── storeerr.h │ │ │ │ │ │ │ ├── symhacks.h │ │ │ │ │ │ │ ├── tls1.h │ │ │ │ │ │ │ ├── ts.h │ │ │ │ │ │ │ ├── tserr.h │ │ │ │ │ │ │ ├── txt_db.h │ │ │ │ │ │ │ ├── ui.h │ │ │ │ │ │ │ ├── uierr.h │ │ │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ │ │ ├── x509.h │ │ │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ │ │ ├── x509err.h │ │ │ │ │ │ │ ├── x509v3.h │ │ │ │ │ │ │ └── x509v3err.h │ │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ │ ├── OpenSSL │ │ │ │ │ │ ├── Resources/ │ │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ │ │ │ └── _CodeSignature/ │ │ │ │ │ │ └── CodeResources │ │ │ │ │ └── Current/ │ │ │ │ │ ├── Headers/ │ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ │ ├── aes.h │ │ │ │ │ │ ├── asn1.h │ │ │ │ │ │ ├── asn1err.h │ │ │ │ │ │ ├── asn1t.h │ │ │ │ │ │ ├── async.h │ │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ │ ├── bio.h │ │ │ │ │ │ ├── bioerr.h │ │ │ │ │ │ ├── blowfish.h │ │ │ │ │ │ ├── bn.h │ │ │ │ │ │ ├── bnerr.h │ │ │ │ │ │ ├── buffer.h │ │ │ │ │ │ ├── buffererr.h │ │ │ │ │ │ ├── camellia.h │ │ │ │ │ │ ├── cast.h │ │ │ │ │ │ ├── cmac.h │ │ │ │ │ │ ├── cms.h │ │ │ │ │ │ ├── cmserr.h │ │ │ │ │ │ ├── comp.h │ │ │ │ │ │ ├── comperr.h │ │ │ │ │ │ ├── conf.h │ │ │ │ │ │ ├── conf_api.h │ │ │ │ │ │ ├── conferr.h │ │ │ │ │ │ ├── crypto.h │ │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ │ ├── ct.h │ │ │ │ │ │ ├── cterr.h │ │ │ │ │ │ ├── des.h │ │ │ │ │ │ ├── dh.h │ │ │ │ │ │ ├── dherr.h │ │ │ │ │ │ ├── dsa.h │ │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ │ ├── dtls1.h │ │ │ │ │ │ ├── e_os2.h │ │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ │ ├── ec.h │ │ │ │ │ │ ├── ecdh.h │ │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ │ ├── ecerr.h │ │ │ │ │ │ ├── engine.h │ │ │ │ │ │ ├── engineerr.h │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ ├── evp.h │ │ │ │ │ │ ├── evperr.h │ │ │ │ │ │ ├── hmac.h │ │ │ │ │ │ ├── idea.h │ │ │ │ │ │ ├── kdf.h │ │ │ │ │ │ ├── kdferr.h │ │ │ │ │ │ ├── lhash.h │ │ │ │ │ │ ├── md2.h │ │ │ │ │ │ ├── md4.h │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ ├── mdc2.h │ │ │ │ │ │ ├── modes.h │ │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ │ ├── objects.h │ │ │ │ │ │ ├── objectserr.h │ │ │ │ │ │ ├── ocsp.h │ │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ │ ├── opensslv.h │ │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ │ ├── pem.h │ │ │ │ │ │ ├── pem2.h │ │ │ │ │ │ ├── pemerr.h │ │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ │ ├── rand.h │ │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ │ ├── randerr.h │ │ │ │ │ │ ├── rc2.h │ │ │ │ │ │ ├── rc4.h │ │ │ │ │ │ ├── rc5.h │ │ │ │ │ │ ├── ripemd.h │ │ │ │ │ │ ├── rsa.h │ │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ │ ├── safestack.h │ │ │ │ │ │ ├── seed.h │ │ │ │ │ │ ├── sha.h │ │ │ │ │ │ ├── shim.h │ │ │ │ │ │ ├── srp.h │ │ │ │ │ │ ├── srtp.h │ │ │ │ │ │ ├── ssl.h │ │ │ │ │ │ ├── ssl2.h │ │ │ │ │ │ ├── ssl3.h │ │ │ │ │ │ ├── sslerr.h │ │ │ │ │ │ ├── stack.h │ │ │ │ │ │ ├── store.h │ │ │ │ │ │ ├── storeerr.h │ │ │ │ │ │ ├── symhacks.h │ │ │ │ │ │ ├── tls1.h │ │ │ │ │ │ ├── ts.h │ │ │ │ │ │ ├── tserr.h │ │ │ │ │ │ ├── txt_db.h │ │ │ │ │ │ ├── ui.h │ │ │ │ │ │ ├── uierr.h │ │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ │ ├── x509.h │ │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ │ ├── x509err.h │ │ │ │ │ │ ├── x509v3.h │ │ │ │ │ │ └── x509v3err.h │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── OpenSSL │ │ │ │ │ ├── Resources/ │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ │ │ └── _CodeSignature/ │ │ │ │ │ └── CodeResources │ │ │ │ ├── ios-arm64_x86_64-simulator/ │ │ │ │ │ └── OpenSSL.framework/ │ │ │ │ │ ├── Headers/ │ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ │ ├── aes.h │ │ │ │ │ │ ├── asn1.h │ │ │ │ │ │ ├── asn1err.h │ │ │ │ │ │ ├── asn1t.h │ │ │ │ │ │ ├── async.h │ │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ │ ├── bio.h │ │ │ │ │ │ ├── bioerr.h │ │ │ │ │ │ ├── blowfish.h │ │ │ │ │ │ ├── bn.h │ │ │ │ │ │ ├── bnerr.h │ │ │ │ │ │ ├── buffer.h │ │ │ │ │ │ ├── buffererr.h │ │ │ │ │ │ ├── camellia.h │ │ │ │ │ │ ├── cast.h │ │ │ │ │ │ ├── cmac.h │ │ │ │ │ │ ├── cms.h │ │ │ │ │ │ ├── cmserr.h │ │ │ │ │ │ ├── comp.h │ │ │ │ │ │ ├── comperr.h │ │ │ │ │ │ ├── conf.h │ │ │ │ │ │ ├── conf_api.h │ │ │ │ │ │ ├── conferr.h │ │ │ │ │ │ ├── crypto.h │ │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ │ ├── ct.h │ │ │ │ │ │ ├── cterr.h │ │ │ │ │ │ ├── des.h │ │ │ │ │ │ ├── dh.h │ │ │ │ │ │ ├── dherr.h │ │ │ │ │ │ ├── dsa.h │ │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ │ ├── dtls1.h │ │ │ │ │ │ ├── e_os2.h │ │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ │ ├── ec.h │ │ │ │ │ │ ├── ecdh.h │ │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ │ ├── ecerr.h │ │ │ │ │ │ ├── engine.h │ │ │ │ │ │ ├── engineerr.h │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ ├── evp.h │ │ │ │ │ │ ├── evperr.h │ │ │ │ │ │ ├── hmac.h │ │ │ │ │ │ ├── idea.h │ │ │ │ │ │ ├── kdf.h │ │ │ │ │ │ ├── kdferr.h │ │ │ │ │ │ ├── lhash.h │ │ │ │ │ │ ├── md2.h │ │ │ │ │ │ ├── md4.h │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ ├── mdc2.h │ │ │ │ │ │ ├── modes.h │ │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ │ ├── objects.h │ │ │ │ │ │ ├── objectserr.h │ │ │ │ │ │ ├── ocsp.h │ │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ │ ├── opensslv.h │ │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ │ ├── pem.h │ │ │ │ │ │ ├── pem2.h │ │ │ │ │ │ ├── pemerr.h │ │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ │ ├── rand.h │ │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ │ ├── randerr.h │ │ │ │ │ │ ├── rc2.h │ │ │ │ │ │ ├── rc4.h │ │ │ │ │ │ ├── rc5.h │ │ │ │ │ │ ├── ripemd.h │ │ │ │ │ │ ├── rsa.h │ │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ │ ├── safestack.h │ │ │ │ │ │ ├── seed.h │ │ │ │ │ │ ├── sha.h │ │ │ │ │ │ ├── shim.h │ │ │ │ │ │ ├── srp.h │ │ │ │ │ │ ├── srtp.h │ │ │ │ │ │ ├── ssl.h │ │ │ │ │ │ ├── ssl2.h │ │ │ │ │ │ ├── ssl3.h │ │ │ │ │ │ ├── sslerr.h │ │ │ │ │ │ ├── stack.h │ │ │ │ │ │ ├── store.h │ │ │ │ │ │ ├── storeerr.h │ │ │ │ │ │ ├── symhacks.h │ │ │ │ │ │ ├── tls1.h │ │ │ │ │ │ ├── ts.h │ │ │ │ │ │ ├── tserr.h │ │ │ │ │ │ ├── txt_db.h │ │ │ │ │ │ ├── ui.h │ │ │ │ │ │ ├── uierr.h │ │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ │ ├── x509.h │ │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ │ ├── x509err.h │ │ │ │ │ │ ├── x509v3.h │ │ │ │ │ │ └── x509v3err.h │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── OpenSSL │ │ │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ │ │ └── _CodeSignature/ │ │ │ │ │ └── CodeResources │ │ │ │ └── macos-arm64_x86_64/ │ │ │ │ └── OpenSSL.framework/ │ │ │ │ ├── Headers/ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ ├── aes.h │ │ │ │ │ ├── asn1.h │ │ │ │ │ ├── asn1err.h │ │ │ │ │ ├── asn1t.h │ │ │ │ │ ├── async.h │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ ├── bio.h │ │ │ │ │ ├── bioerr.h │ │ │ │ │ ├── blowfish.h │ │ │ │ │ ├── bn.h │ │ │ │ │ ├── bnerr.h │ │ │ │ │ ├── buffer.h │ │ │ │ │ ├── buffererr.h │ │ │ │ │ ├── camellia.h │ │ │ │ │ ├── cast.h │ │ │ │ │ ├── cmac.h │ │ │ │ │ ├── cms.h │ │ │ │ │ ├── cmserr.h │ │ │ │ │ ├── comp.h │ │ │ │ │ ├── comperr.h │ │ │ │ │ ├── conf.h │ │ │ │ │ ├── conf_api.h │ │ │ │ │ ├── conferr.h │ │ │ │ │ ├── crypto.h │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ ├── ct.h │ │ │ │ │ ├── cterr.h │ │ │ │ │ ├── des.h │ │ │ │ │ ├── dh.h │ │ │ │ │ ├── dherr.h │ │ │ │ │ ├── dsa.h │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ ├── dtls1.h │ │ │ │ │ ├── e_os2.h │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ ├── ec.h │ │ │ │ │ ├── ecdh.h │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ ├── ecerr.h │ │ │ │ │ ├── engine.h │ │ │ │ │ ├── engineerr.h │ │ │ │ │ ├── err.h │ │ │ │ │ ├── evp.h │ │ │ │ │ ├── evperr.h │ │ │ │ │ ├── hmac.h │ │ │ │ │ ├── idea.h │ │ │ │ │ ├── kdf.h │ │ │ │ │ ├── kdferr.h │ │ │ │ │ ├── lhash.h │ │ │ │ │ ├── md2.h │ │ │ │ │ ├── md4.h │ │ │ │ │ ├── md5.h │ │ │ │ │ ├── mdc2.h │ │ │ │ │ ├── modes.h │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ ├── objects.h │ │ │ │ │ ├── objectserr.h │ │ │ │ │ ├── ocsp.h │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ ├── opensslv.h │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ ├── pem.h │ │ │ │ │ ├── pem2.h │ │ │ │ │ ├── pemerr.h │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ ├── rand.h │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ ├── randerr.h │ │ │ │ │ ├── rc2.h │ │ │ │ │ ├── rc4.h │ │ │ │ │ ├── rc5.h │ │ │ │ │ ├── ripemd.h │ │ │ │ │ ├── rsa.h │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ ├── safestack.h │ │ │ │ │ ├── seed.h │ │ │ │ │ ├── sha.h │ │ │ │ │ ├── shim.h │ │ │ │ │ ├── srp.h │ │ │ │ │ ├── srtp.h │ │ │ │ │ ├── ssl.h │ │ │ │ │ ├── ssl2.h │ │ │ │ │ ├── ssl3.h │ │ │ │ │ ├── sslerr.h │ │ │ │ │ ├── stack.h │ │ │ │ │ ├── store.h │ │ │ │ │ ├── storeerr.h │ │ │ │ │ ├── symhacks.h │ │ │ │ │ ├── tls1.h │ │ │ │ │ ├── ts.h │ │ │ │ │ ├── tserr.h │ │ │ │ │ ├── txt_db.h │ │ │ │ │ ├── ui.h │ │ │ │ │ ├── uierr.h │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ ├── x509.h │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ ├── x509err.h │ │ │ │ │ ├── x509v3.h │ │ │ │ │ └── x509v3err.h │ │ │ │ ├── Modules/ │ │ │ │ │ └── module.modulemap │ │ │ │ ├── OpenSSL │ │ │ │ ├── Resources/ │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ │ └── Versions/ │ │ │ │ ├── A/ │ │ │ │ │ ├── Headers/ │ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ │ ├── aes.h │ │ │ │ │ │ ├── asn1.h │ │ │ │ │ │ ├── asn1err.h │ │ │ │ │ │ ├── asn1t.h │ │ │ │ │ │ ├── async.h │ │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ │ ├── bio.h │ │ │ │ │ │ ├── bioerr.h │ │ │ │ │ │ ├── blowfish.h │ │ │ │ │ │ ├── bn.h │ │ │ │ │ │ ├── bnerr.h │ │ │ │ │ │ ├── buffer.h │ │ │ │ │ │ ├── buffererr.h │ │ │ │ │ │ ├── camellia.h │ │ │ │ │ │ ├── cast.h │ │ │ │ │ │ ├── cmac.h │ │ │ │ │ │ ├── cms.h │ │ │ │ │ │ ├── cmserr.h │ │ │ │ │ │ ├── comp.h │ │ │ │ │ │ ├── comperr.h │ │ │ │ │ │ ├── conf.h │ │ │ │ │ │ ├── conf_api.h │ │ │ │ │ │ ├── conferr.h │ │ │ │ │ │ ├── crypto.h │ │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ │ ├── ct.h │ │ │ │ │ │ ├── cterr.h │ │ │ │ │ │ ├── des.h │ │ │ │ │ │ ├── dh.h │ │ │ │ │ │ ├── dherr.h │ │ │ │ │ │ ├── dsa.h │ │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ │ ├── dtls1.h │ │ │ │ │ │ ├── e_os2.h │ │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ │ ├── ec.h │ │ │ │ │ │ ├── ecdh.h │ │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ │ ├── ecerr.h │ │ │ │ │ │ ├── engine.h │ │ │ │ │ │ ├── engineerr.h │ │ │ │ │ │ ├── err.h │ │ │ │ │ │ ├── evp.h │ │ │ │ │ │ ├── evperr.h │ │ │ │ │ │ ├── hmac.h │ │ │ │ │ │ ├── idea.h │ │ │ │ │ │ ├── kdf.h │ │ │ │ │ │ ├── kdferr.h │ │ │ │ │ │ ├── lhash.h │ │ │ │ │ │ ├── md2.h │ │ │ │ │ │ ├── md4.h │ │ │ │ │ │ ├── md5.h │ │ │ │ │ │ ├── mdc2.h │ │ │ │ │ │ ├── modes.h │ │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ │ ├── objects.h │ │ │ │ │ │ ├── objectserr.h │ │ │ │ │ │ ├── ocsp.h │ │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ │ ├── opensslv.h │ │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ │ ├── pem.h │ │ │ │ │ │ ├── pem2.h │ │ │ │ │ │ ├── pemerr.h │ │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ │ ├── rand.h │ │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ │ ├── randerr.h │ │ │ │ │ │ ├── rc2.h │ │ │ │ │ │ ├── rc4.h │ │ │ │ │ │ ├── rc5.h │ │ │ │ │ │ ├── ripemd.h │ │ │ │ │ │ ├── rsa.h │ │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ │ ├── safestack.h │ │ │ │ │ │ ├── seed.h │ │ │ │ │ │ ├── sha.h │ │ │ │ │ │ ├── shim.h │ │ │ │ │ │ ├── srp.h │ │ │ │ │ │ ├── srtp.h │ │ │ │ │ │ ├── ssl.h │ │ │ │ │ │ ├── ssl2.h │ │ │ │ │ │ ├── ssl3.h │ │ │ │ │ │ ├── sslerr.h │ │ │ │ │ │ ├── stack.h │ │ │ │ │ │ ├── store.h │ │ │ │ │ │ ├── storeerr.h │ │ │ │ │ │ ├── symhacks.h │ │ │ │ │ │ ├── tls1.h │ │ │ │ │ │ ├── ts.h │ │ │ │ │ │ ├── tserr.h │ │ │ │ │ │ ├── txt_db.h │ │ │ │ │ │ ├── ui.h │ │ │ │ │ │ ├── uierr.h │ │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ │ ├── x509.h │ │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ │ ├── x509err.h │ │ │ │ │ │ ├── x509v3.h │ │ │ │ │ │ └── x509v3err.h │ │ │ │ │ ├── Modules/ │ │ │ │ │ │ └── module.modulemap │ │ │ │ │ ├── OpenSSL │ │ │ │ │ ├── Resources/ │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ │ │ └── _CodeSignature/ │ │ │ │ │ └── CodeResources │ │ │ │ └── Current/ │ │ │ │ ├── Headers/ │ │ │ │ │ ├── OpenSSL.h │ │ │ │ │ ├── aes.h │ │ │ │ │ ├── asn1.h │ │ │ │ │ ├── asn1err.h │ │ │ │ │ ├── asn1t.h │ │ │ │ │ ├── async.h │ │ │ │ │ ├── asyncerr.h │ │ │ │ │ ├── bio.h │ │ │ │ │ ├── bioerr.h │ │ │ │ │ ├── blowfish.h │ │ │ │ │ ├── bn.h │ │ │ │ │ ├── bnerr.h │ │ │ │ │ ├── buffer.h │ │ │ │ │ ├── buffererr.h │ │ │ │ │ ├── camellia.h │ │ │ │ │ ├── cast.h │ │ │ │ │ ├── cmac.h │ │ │ │ │ ├── cms.h │ │ │ │ │ ├── cmserr.h │ │ │ │ │ ├── comp.h │ │ │ │ │ ├── comperr.h │ │ │ │ │ ├── conf.h │ │ │ │ │ ├── conf_api.h │ │ │ │ │ ├── conferr.h │ │ │ │ │ ├── crypto.h │ │ │ │ │ ├── cryptoerr.h │ │ │ │ │ ├── ct.h │ │ │ │ │ ├── cterr.h │ │ │ │ │ ├── des.h │ │ │ │ │ ├── dh.h │ │ │ │ │ ├── dherr.h │ │ │ │ │ ├── dsa.h │ │ │ │ │ ├── dsaerr.h │ │ │ │ │ ├── dtls1.h │ │ │ │ │ ├── e_os2.h │ │ │ │ │ ├── ebcdic.h │ │ │ │ │ ├── ec.h │ │ │ │ │ ├── ecdh.h │ │ │ │ │ ├── ecdsa.h │ │ │ │ │ ├── ecerr.h │ │ │ │ │ ├── engine.h │ │ │ │ │ ├── engineerr.h │ │ │ │ │ ├── err.h │ │ │ │ │ ├── evp.h │ │ │ │ │ ├── evperr.h │ │ │ │ │ ├── hmac.h │ │ │ │ │ ├── idea.h │ │ │ │ │ ├── kdf.h │ │ │ │ │ ├── kdferr.h │ │ │ │ │ ├── lhash.h │ │ │ │ │ ├── md2.h │ │ │ │ │ ├── md4.h │ │ │ │ │ ├── md5.h │ │ │ │ │ ├── mdc2.h │ │ │ │ │ ├── modes.h │ │ │ │ │ ├── obj_mac.h │ │ │ │ │ ├── objects.h │ │ │ │ │ ├── objectserr.h │ │ │ │ │ ├── ocsp.h │ │ │ │ │ ├── ocsperr.h │ │ │ │ │ ├── opensslconf.h │ │ │ │ │ ├── opensslv.h │ │ │ │ │ ├── ossl_typ.h │ │ │ │ │ ├── pem.h │ │ │ │ │ ├── pem2.h │ │ │ │ │ ├── pemerr.h │ │ │ │ │ ├── pkcs12.h │ │ │ │ │ ├── pkcs12err.h │ │ │ │ │ ├── pkcs7.h │ │ │ │ │ ├── pkcs7err.h │ │ │ │ │ ├── rand.h │ │ │ │ │ ├── rand_drbg.h │ │ │ │ │ ├── randerr.h │ │ │ │ │ ├── rc2.h │ │ │ │ │ ├── rc4.h │ │ │ │ │ ├── rc5.h │ │ │ │ │ ├── ripemd.h │ │ │ │ │ ├── rsa.h │ │ │ │ │ ├── rsaerr.h │ │ │ │ │ ├── safestack.h │ │ │ │ │ ├── seed.h │ │ │ │ │ ├── sha.h │ │ │ │ │ ├── shim.h │ │ │ │ │ ├── srp.h │ │ │ │ │ ├── srtp.h │ │ │ │ │ ├── ssl.h │ │ │ │ │ ├── ssl2.h │ │ │ │ │ ├── ssl3.h │ │ │ │ │ ├── sslerr.h │ │ │ │ │ ├── stack.h │ │ │ │ │ ├── store.h │ │ │ │ │ ├── storeerr.h │ │ │ │ │ ├── symhacks.h │ │ │ │ │ ├── tls1.h │ │ │ │ │ ├── ts.h │ │ │ │ │ ├── tserr.h │ │ │ │ │ ├── txt_db.h │ │ │ │ │ ├── ui.h │ │ │ │ │ ├── uierr.h │ │ │ │ │ ├── whrlpool.h │ │ │ │ │ ├── x509.h │ │ │ │ │ ├── x509_vfy.h │ │ │ │ │ ├── x509err.h │ │ │ │ │ ├── x509v3.h │ │ │ │ │ └── x509v3err.h │ │ │ │ ├── Modules/ │ │ │ │ │ └── module.modulemap │ │ │ │ ├── OpenSSL │ │ │ │ ├── Resources/ │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── PrivacyInfo.xcprivacy │ │ │ │ └── _CodeSignature/ │ │ │ │ └── CodeResources │ │ │ └── SelfSDK/ │ │ │ ├── MrzOcrCorrection.swift │ │ │ ├── MrzResultMapper.swift │ │ │ ├── MrzScanEngine.swift │ │ │ ├── NFCPassportReader 2.xcframework/ │ │ │ │ ├── Info.plist │ │ │ │ └── ios-arm64/ │ │ │ │ └── NFCPassportReader.framework/ │ │ │ │ ├── Info.plist │ │ │ │ ├── Modules/ │ │ │ │ │ └── NFCPassportReader.swiftmodule/ │ │ │ │ │ ├── arm64-apple-ios.abi.json │ │ │ │ │ ├── arm64-apple-ios.private.swiftinterface │ │ │ │ │ ├── arm64-apple-ios.swiftdoc │ │ │ │ │ └── arm64-apple-ios.swiftinterface │ │ │ │ ├── NFCPassportReader │ │ │ │ └── _CodeSignature/ │ │ │ │ └── CodeResources │ │ │ ├── PassportReader.m │ │ │ ├── PassportReader.swift │ │ │ ├── PassportReaderCore.swift │ │ │ ├── SelfCameraView.swift │ │ │ ├── SelfLiveMRZScannerView.swift │ │ │ ├── SelfMRZScannerModule.m │ │ │ ├── SelfMRZScannerModule.swift │ │ │ ├── SelfMRZScannerViewManager.m │ │ │ ├── SelfMRZScannerViewManager.swift │ │ │ ├── SelfSDK/ │ │ │ │ ├── SelfSDK.docc/ │ │ │ │ │ └── SelfSDK.md │ │ │ │ ├── SelfSDK.m │ │ │ │ └── SelfSDK.swift │ │ │ └── SelfSDK.xcodeproj/ │ │ │ └── project.pbxproj │ │ ├── mobile-sdk-alpha.podspec │ │ ├── package.json │ │ ├── react-native.config.cjs │ │ ├── scripts/ │ │ │ ├── build-android.sh │ │ │ ├── build-ios.sh │ │ │ ├── copy-assets.mjs │ │ │ ├── postBuild.mjs │ │ │ ├── report-exports.mjs │ │ │ ├── setup-native-source.cjs │ │ │ ├── shimConfigs.js │ │ │ ├── validate-exports.mjs │ │ │ └── verify-conditions.mjs │ │ ├── src/ │ │ │ ├── adapters/ │ │ │ │ ├── browser/ │ │ │ │ │ ├── analytics.ts │ │ │ │ │ ├── crypto.ts │ │ │ │ │ ├── documents.ts │ │ │ │ │ ├── haptic.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── network.ts │ │ │ │ ├── index.ts │ │ │ │ ├── react-native/ │ │ │ │ │ ├── auth.ts │ │ │ │ │ ├── crypto.ts │ │ │ │ │ ├── documents.ts │ │ │ │ │ ├── factory.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── network.ts │ │ │ │ │ └── nfc-scanner.ts │ │ │ │ └── web/ │ │ │ │ └── shims.ts │ │ │ ├── analytics/ │ │ │ │ └── onboardingFunnel.ts │ │ │ ├── animations/ │ │ │ │ ├── loading/ │ │ │ │ │ ├── fail.json │ │ │ │ │ ├── misc.json │ │ │ │ │ ├── prove.json │ │ │ │ │ ├── success.json │ │ │ │ │ └── youWin.json │ │ │ │ ├── passport_scan.json │ │ │ │ └── passport_verify.json │ │ │ ├── bridge/ │ │ │ │ ├── nativeEvents.native.ts │ │ │ │ └── nativeEvents.ts │ │ │ ├── browser.ts │ │ │ ├── client.ts │ │ │ ├── components/ │ │ │ │ ├── ButtonsContainer.tsx │ │ │ │ ├── DelayedLottieView.tsx │ │ │ │ ├── DelayedLottieView.web.tsx │ │ │ │ ├── MRZScannerView.tsx │ │ │ │ ├── RCTFragment.tsx │ │ │ │ ├── TextsContainer.tsx │ │ │ │ ├── buttons/ │ │ │ │ │ ├── AbstractButton.tsx │ │ │ │ │ ├── HeldPrimaryButtonProveScreen.tsx │ │ │ │ │ ├── PrimaryButton.tsx │ │ │ │ │ ├── PrimaryButtonLongHold.shared.ts │ │ │ │ │ ├── PrimaryButtonLongHold.tsx │ │ │ │ │ ├── PrimaryButtonLongHold.web.tsx │ │ │ │ │ ├── SecondaryButton.tsx │ │ │ │ │ └── pressedStyle.tsx │ │ │ │ ├── flag/ │ │ │ │ │ └── RoundFlag.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── layout/ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ ├── Text.tsx │ │ │ │ │ ├── View.tsx │ │ │ │ │ ├── XStack.tsx │ │ │ │ │ └── YStack.tsx │ │ │ │ ├── screens/ │ │ │ │ │ ├── NFCScannerScreen.tsx │ │ │ │ │ ├── PassportCameraScreen.tsx │ │ │ │ │ └── QRCodeScreen.tsx │ │ │ │ └── typography/ │ │ │ │ ├── Additional.tsx │ │ │ │ ├── BodyText.tsx │ │ │ │ ├── Caption.tsx │ │ │ │ ├── Caution.tsx │ │ │ │ ├── Description.tsx │ │ │ │ ├── DescriptionTitle.tsx │ │ │ │ ├── SubHeader.tsx │ │ │ │ ├── Title.tsx │ │ │ │ └── styles.ts │ │ │ ├── config/ │ │ │ │ ├── defaults.ts │ │ │ │ ├── features.ts │ │ │ │ └── merge.ts │ │ │ ├── constants/ │ │ │ │ ├── analytics.ts │ │ │ │ ├── colors.ts │ │ │ │ ├── fonts.ts │ │ │ │ ├── images.ts │ │ │ │ ├── index.ts │ │ │ │ └── layout.ts │ │ │ ├── context.tsx │ │ │ ├── data/ │ │ │ │ └── country-document-types.json │ │ │ ├── documents/ │ │ │ │ ├── useCountries.tsx │ │ │ │ ├── utils.ts │ │ │ │ └── validation.ts │ │ │ ├── errors/ │ │ │ │ ├── InitError.ts │ │ │ │ ├── LivenessError.ts │ │ │ │ ├── MrzParseError.ts │ │ │ │ ├── NfcParseError.ts │ │ │ │ ├── SdkError.ts │ │ │ │ └── index.ts │ │ │ ├── flows/ │ │ │ │ ├── about.md │ │ │ │ ├── disclosing/ │ │ │ │ │ ├── await-verification.ts │ │ │ │ │ ├── confirm-selection.ts │ │ │ │ │ └── scan-qr-code.ts │ │ │ │ └── onboarding/ │ │ │ │ ├── confirm-identification.tsx │ │ │ │ ├── country-picker-screen.tsx │ │ │ │ ├── document-camera-screen.tsx │ │ │ │ ├── document-nfc-screen.tsx │ │ │ │ ├── id-selection-screen.tsx │ │ │ │ ├── import-aadhaar.ts │ │ │ │ ├── logo-confirmation-screen.tsx │ │ │ │ └── read-mrz.ts │ │ │ ├── haptic/ │ │ │ │ ├── index.ts │ │ │ │ ├── shared.ts │ │ │ │ ├── trigger.ts │ │ │ │ └── trigger.web.ts │ │ │ ├── hooks/ │ │ │ │ ├── index.ts │ │ │ │ └── useSafeBottomPadding.ts │ │ │ ├── index.ts │ │ │ ├── layouts/ │ │ │ │ └── ExpandableBottomLayout.tsx │ │ │ ├── mock/ │ │ │ │ └── generator.ts │ │ │ ├── mrz/ │ │ │ │ └── index.ts │ │ │ ├── nfc/ │ │ │ │ └── index.ts │ │ │ ├── processing/ │ │ │ │ ├── mrz.ts │ │ │ │ └── nfc.ts │ │ │ ├── proving/ │ │ │ │ ├── internal/ │ │ │ │ │ ├── logging.ts │ │ │ │ │ └── statusHandlers.ts │ │ │ │ ├── provingMachine.ts │ │ │ │ └── recoveryValidation.ts │ │ │ ├── stores/ │ │ │ │ ├── index.ts │ │ │ │ ├── mrzStore.tsx │ │ │ │ ├── protocolStore.ts │ │ │ │ └── selfAppStore.tsx │ │ │ ├── types/ │ │ │ │ ├── base.ts │ │ │ │ ├── events.ts │ │ │ │ ├── png.d.ts │ │ │ │ ├── public.ts │ │ │ │ ├── svg.d.ts │ │ │ │ └── ui.ts │ │ │ ├── utils/ │ │ │ │ ├── styleUtils.ts │ │ │ │ └── utils.ts │ │ │ └── validation/ │ │ │ └── document.ts │ │ ├── tests/ │ │ │ ├── adapters/ │ │ │ │ ├── browser/ │ │ │ │ │ ├── analytics.test.ts │ │ │ │ │ ├── crypto.test.ts │ │ │ │ │ ├── documents.test.ts │ │ │ │ │ └── haptic.test.ts │ │ │ │ └── reactNative/ │ │ │ │ └── nfcScanner.test.ts │ │ │ ├── analytics/ │ │ │ │ └── onboardingFunnel.test.ts │ │ │ ├── bridge/ │ │ │ │ └── nativeEvents.test.ts │ │ │ ├── client.test.ts │ │ │ ├── clientMrz.test.ts │ │ │ ├── components/ │ │ │ │ └── buttons/ │ │ │ │ └── AbstractButton.test.tsx │ │ │ ├── config.test.ts │ │ │ ├── data/ │ │ │ │ └── country-data-sync.integration.test.ts │ │ │ ├── documents/ │ │ │ │ ├── utils.test.ts │ │ │ │ └── validation.test.ts │ │ │ ├── errors.test.ts │ │ │ ├── flows/ │ │ │ │ └── onboarding/ │ │ │ │ └── read-mrz.test.ts │ │ │ ├── mock/ │ │ │ │ └── generator.test.ts │ │ │ ├── processing/ │ │ │ │ ├── mrz.test.ts │ │ │ │ └── nfc.test.ts │ │ │ ├── provider.test.tsx │ │ │ ├── proving/ │ │ │ │ ├── actorMock.ts │ │ │ │ ├── internal/ │ │ │ │ │ ├── payloadGenerator.test.ts │ │ │ │ │ ├── statusHandlers.test.ts │ │ │ │ │ ├── statusListener.test.ts │ │ │ │ │ ├── websocketHandlers.test.ts │ │ │ │ │ └── websocketUrlResolver.test.ts │ │ │ │ ├── provingMachine.disclose.stateless.test.ts │ │ │ │ ├── provingMachine.documentProcessor.test.ts │ │ │ │ ├── provingMachine.generatePayload.test.ts │ │ │ │ ├── provingMachine.integration.test.ts │ │ │ │ ├── provingMachine.startFetchingData.test.ts │ │ │ │ ├── provingMachine.test.ts │ │ │ │ └── recoveryValidation.test.ts │ │ │ ├── setup.ts │ │ │ ├── stores/ │ │ │ │ └── protocolStore.test.ts │ │ │ ├── utils/ │ │ │ │ ├── sanitizeErrorMessage.test.ts │ │ │ │ └── testHelpers.ts │ │ │ ├── validation/ │ │ │ │ └── document.test.ts │ │ │ └── webShim.test.ts │ │ ├── tsconfig.cjs.json │ │ ├── tsconfig.eslint.json │ │ ├── tsconfig.json │ │ ├── tsup.config.ts │ │ └── vitest.config.ts │ ├── mobile-sdk-demo/ │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── App.tsx │ │ ├── README.md │ │ ├── android/ │ │ │ ├── app/ │ │ │ │ ├── build.gradle │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ ├── debug/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── selfxyz/ │ │ │ │ │ └── demoapp/ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ └── MainApplication.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ ├── values/ │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── xml/ │ │ │ │ └── nfc_tech_filter.xml │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.cjs │ │ ├── index.js │ │ ├── ios/ │ │ │ ├── .xcode.env │ │ │ ├── Podfile │ │ │ ├── SelfDemoApp/ │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info-Debug.plist │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ │ └── SelfDemoApp.entitlements │ │ │ ├── SelfDemoApp.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ ├── SelfDemoApp.xcscheme │ │ │ │ └── TempProject.xcscheme │ │ │ ├── SelfDemoApp.xcworkspace/ │ │ │ │ └── contents.xcworkspacedata │ │ │ └── scripts/ │ │ │ └── pod-install-with-cache-fix.sh │ │ ├── metro.config.cjs │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── bundle-analyze-ci.cjs │ │ │ └── e2e-android-ci.sh │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── AlgorithmCountryFields.tsx │ │ │ │ ├── DocumentScanResultCard.tsx │ │ │ │ ├── LogsPanel.tsx │ │ │ │ ├── MenuButton.tsx │ │ │ │ ├── PickerField.tsx │ │ │ │ ├── PlaceholderScreen.tsx │ │ │ │ ├── SafeAreaScrollView.tsx │ │ │ │ ├── ScreenLayout.tsx │ │ │ │ ├── SimplePicker.tsx │ │ │ │ └── StandardHeader.tsx │ │ │ ├── hooks/ │ │ │ │ ├── useDocuments.ts │ │ │ │ └── useRegistration.ts │ │ │ ├── lib/ │ │ │ │ └── catalog.ts │ │ │ ├── navigation/ │ │ │ │ └── NavigationProvider.tsx │ │ │ ├── polyfills/ │ │ │ │ └── cryptoPolyfill.js │ │ │ ├── providers/ │ │ │ │ └── SelfClientProvider.tsx │ │ │ ├── screens/ │ │ │ │ ├── CountrySelection.tsx │ │ │ │ ├── DocumentCamera.tsx │ │ │ │ ├── DocumentNFCScan.tsx │ │ │ │ ├── DocumentScanSuccess.tsx │ │ │ │ ├── DocumentsList.tsx │ │ │ │ ├── GenerateMock.tsx │ │ │ │ ├── HomeScreen.tsx │ │ │ │ ├── IDSelection.tsx │ │ │ │ ├── ProofHistory.tsx │ │ │ │ ├── QRCodeViewFinder.tsx │ │ │ │ ├── RegisterDocument.tsx │ │ │ │ └── index.ts │ │ │ └── utils/ │ │ │ ├── camera.ts │ │ │ ├── document.ts │ │ │ ├── documentStore.ts │ │ │ ├── ethers.ts │ │ │ └── secureStorage.ts │ │ ├── tests/ │ │ │ ├── App.test.tsx │ │ │ ├── __mocks__/ │ │ │ │ └── @selfxyz/ │ │ │ │ └── mobile-sdk-alpha/ │ │ │ │ └── index.ts │ │ │ ├── components/ │ │ │ │ ├── MenuButton.test.tsx │ │ │ │ └── ScreenLayout.test.tsx │ │ │ ├── cryptoPolyfills.test.ts │ │ │ ├── documentStore.test.ts │ │ │ ├── e2e/ │ │ │ │ ├── launch.android.flow.yaml │ │ │ │ └── launch.ios.flow.yaml │ │ │ ├── lib/ │ │ │ │ └── catalog.test.ts │ │ │ ├── mocks/ │ │ │ │ ├── mobile-sdk-alpha.ts │ │ │ │ ├── react-native.ts │ │ │ │ └── sdk.ts │ │ │ ├── screens/ │ │ │ │ ├── DocumentCamera.test.tsx │ │ │ │ ├── DocumentsList.test.tsx │ │ │ │ ├── GenerateMock.test.tsx │ │ │ │ ├── HomeScreen.test.tsx │ │ │ │ ├── ProofHistory.test.tsx │ │ │ │ ├── QRCodeViewFinder.test.tsx │ │ │ │ ├── RegisterDocument.test.tsx │ │ │ │ ├── documentCamera.test.ts │ │ │ │ └── index.test.ts │ │ │ ├── secureStorage.test.ts │ │ │ ├── setup.ts │ │ │ └── utils/ │ │ │ └── document.test.ts │ │ ├── tsconfig.json │ │ ├── types/ │ │ │ ├── reactNativePickerPicker.d.ts │ │ │ └── svg.d.ts │ │ └── vitest.config.ts │ ├── native-shell-android/ │ │ ├── build.gradle.kts │ │ ├── consumer-rules.pro │ │ ├── gradle/ │ │ │ └── wrapper/ │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradle.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── proguard-rules.pro │ │ ├── settings.gradle.kts │ │ └── src/ │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ └── kotlin/ │ │ │ └── xyz/ │ │ │ └── self/ │ │ │ └── sdk/ │ │ │ ├── api/ │ │ │ │ ├── SecureStorageProvider.kt │ │ │ │ ├── SelfSdk.kt │ │ │ │ ├── SelfSdkConfig.kt │ │ │ │ └── SelfSdkLaunchConfig.kt │ │ │ ├── bridge/ │ │ │ │ ├── BridgeHandler.kt │ │ │ │ ├── BridgeModels.kt │ │ │ │ └── MessageRouter.kt │ │ │ ├── handlers/ │ │ │ │ ├── CryptoHandler.kt │ │ │ │ ├── LifecycleHandler.kt │ │ │ │ └── SecureStorageHandler.kt │ │ │ └── webview/ │ │ │ ├── AndroidWebViewHost.kt │ │ │ ├── RemoteNavigationPolicy.kt │ │ │ └── SelfVerificationActivity.kt │ │ └── test/ │ │ └── kotlin/ │ │ └── xyz/ │ │ └── self/ │ │ └── sdk/ │ │ ├── api/ │ │ │ ├── SelfSdkConfigTest.kt │ │ │ ├── SelfSdkHandleResultTest.kt │ │ │ └── SelfSdkLaunchTest.kt │ │ ├── bridge/ │ │ │ ├── BridgeModelsTest.kt │ │ │ ├── MessageRouterEscapeTest.kt │ │ │ └── MessageRouterTest.kt │ │ ├── handlers/ │ │ │ ├── CryptoHandlerTest.kt │ │ │ ├── LifecycleHandlerTest.kt │ │ │ ├── LifecycleResultEnvelopeTest.kt │ │ │ ├── LifecycleResultGateTest.kt │ │ │ └── SecureStorageHandlerTest.kt │ │ └── webview/ │ │ ├── AndroidWebViewHostSecurityTest.kt │ │ └── RemoteNavigationPolicyTest.kt │ ├── native-shell-ios/ │ │ ├── .swiftlint.yml │ │ ├── Package.swift │ │ ├── Sources/ │ │ │ └── SelfNativeShell/ │ │ │ ├── API/ │ │ │ │ ├── SecureStorageProvider.swift │ │ │ │ ├── SelfSdk.swift │ │ │ │ └── SelfSdkConfig.swift │ │ │ ├── Bridge/ │ │ │ │ ├── BridgeHandler.swift │ │ │ │ ├── BridgeModels.swift │ │ │ │ └── MessageRouter.swift │ │ │ ├── Handlers/ │ │ │ │ ├── CryptoHandler.swift │ │ │ │ ├── LifecycleHandler.swift │ │ │ │ └── SecureStorageHandler.swift │ │ │ └── WebView/ │ │ │ ├── RemoteNavigationPolicy.swift │ │ │ └── SelfWebViewHost.swift │ │ └── Tests/ │ │ └── SelfNativeShellTests/ │ │ ├── BridgeModelsTests.swift │ │ ├── CryptoHandlerTests.swift │ │ ├── LifecycleHandlerRaceTests.swift │ │ ├── LifecycleHandlerTests.swift │ │ ├── LifecycleResultEnvelopeTests.swift │ │ ├── MessageRouterEscapeTests.swift │ │ ├── MessageRouterTests.swift │ │ ├── RemoteNavigationPolicyTests.swift │ │ ├── SecureStorageHandlerTests.swift │ │ ├── SelfSdkConfigTests.swift │ │ └── SelfWebViewHostTests.swift │ ├── rn-sdk/ │ │ ├── .gitignore │ │ ├── .npmignore │ │ ├── HANDOFF.md │ │ ├── package.json │ │ ├── src/ │ │ │ ├── SelfVerification.tsx │ │ │ ├── __tests__/ │ │ │ │ ├── BiometricHandler.test.ts │ │ │ │ ├── CameraHandler.test.ts │ │ │ │ ├── KeychainHandler.test.ts │ │ │ │ ├── LifecycleHandler.test.ts │ │ │ │ ├── MessageRouter.test.ts │ │ │ │ ├── NfcHandler.test.ts │ │ │ │ ├── assetBundling.test.ts │ │ │ │ └── createHandlers.test.ts │ │ │ ├── bridge/ │ │ │ │ ├── MessageRouter.ts │ │ │ │ └── types.ts │ │ │ ├── handlers/ │ │ │ │ ├── BiometricHandler.ts │ │ │ │ ├── CameraHandler.ts │ │ │ │ ├── KeychainHandler.ts │ │ │ │ ├── LifecycleHandler.ts │ │ │ │ ├── NfcHandler.ts │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── tsup.config.ts │ │ └── vitest.config.ts │ ├── rn-sdk-test-app/ │ │ ├── .gitignore │ │ ├── App.tsx │ │ ├── Gemfile │ │ ├── README.md │ │ ├── __tests__/ │ │ │ └── mrzBridgeContract.test.ts │ │ ├── android/ │ │ │ ├── app/ │ │ │ │ ├── build.gradle │ │ │ │ ├── debug.keystore │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src/ │ │ │ │ ├── debug/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── java/ │ │ │ │ │ └── com/ │ │ │ │ │ └── selfxyz/ │ │ │ │ │ └── demoapp/ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ ├── MainApplication.kt │ │ │ │ │ ├── SelfMRZScannerModule.kt │ │ │ │ │ ├── SelfMRZScannerPackage.kt │ │ │ │ │ └── SelfMrzScannerActivity.kt │ │ │ │ └── res/ │ │ │ │ ├── drawable/ │ │ │ │ │ └── rn_edit_text_material.xml │ │ │ │ ├── values/ │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── xml/ │ │ │ │ └── nfc_tech_filter.xml │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle │ │ ├── app.json │ │ ├── babel.config.cjs │ │ ├── index.js │ │ ├── ios/ │ │ │ ├── .xcode.env │ │ │ ├── Podfile │ │ │ ├── SelfRNTestApp/ │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── Images.xcassets/ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Info-Debug.plist │ │ │ │ ├── Info.plist │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ ├── PrivacyInfo.xcprivacy │ │ │ │ ├── SelfMRZScannerModule.m │ │ │ │ ├── SelfMRZScannerModule.swift │ │ │ │ └── SelfRNTestApp.entitlements │ │ │ ├── SelfRNTestApp.xcodeproj/ │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata/ │ │ │ │ └── xcschemes/ │ │ │ │ └── SelfRNTestApp.xcscheme │ │ │ ├── SelfRNTestApp.xcworkspace/ │ │ │ │ └── contents.xcworkspacedata │ │ │ └── scripts/ │ │ │ └── pod-install-with-cache-fix.sh │ │ ├── metro.config.cjs │ │ ├── package.json │ │ ├── react-native.config.cjs │ │ ├── scripts/ │ │ │ └── postinstall.cjs │ │ └── tsconfig.json │ ├── sdk-test-app/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── android/ │ │ │ ├── app/ │ │ │ │ ├── build.gradle.kts │ │ │ │ └── src/ │ │ │ │ └── main/ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── kotlin/ │ │ │ │ │ └── xyz/ │ │ │ │ │ └── self/ │ │ │ │ │ └── testapp/ │ │ │ │ │ ├── EncryptedPrefsStorageProvider.kt │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── res/ │ │ │ │ ├── values/ │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── themes.xml │ │ │ │ └── xml/ │ │ │ │ └── network_security_config.xml │ │ │ ├── build.gradle.kts │ │ │ ├── gradle/ │ │ │ │ └── wrapper/ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradle.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ └── settings.gradle.kts │ │ ├── ios/ │ │ │ ├── SelfTestApp/ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ ├── AccentColor.colorset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── ContentView.swift │ │ │ │ ├── KeychainStorageProvider.swift │ │ │ │ └── SelfTestAppApp.swift │ │ │ └── project.yml │ │ └── package.json │ ├── self-sdk-swift/ │ │ ├── .gitignore │ │ ├── Package.swift │ │ ├── Sources/ │ │ │ └── SelfSdkSwift/ │ │ │ ├── Constants/ │ │ │ │ └── SdkConstants.swift │ │ │ ├── Helpers/ │ │ │ │ ├── MrzCameraHelper.swift │ │ │ │ └── NfcPassportHelper.swift │ │ │ ├── Providers/ │ │ │ │ ├── BiometricProviderImpl.swift │ │ │ │ ├── CameraMrzProviderImpl.swift │ │ │ │ ├── CryptoProviderImpl.swift │ │ │ │ ├── DocumentsProviderImpl.swift │ │ │ │ ├── HapticProviderImpl.swift │ │ │ │ ├── NfcProviderImpl.swift │ │ │ │ ├── SecureStorageProviderImpl.swift │ │ │ │ └── WebViewProviderImpl.swift │ │ │ └── SelfSdkSwift.swift │ │ └── Tests/ │ │ └── SelfSdkSwiftTests/ │ │ └── WebViewProviderImplTests.swift │ ├── webview-app/ │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── AGENTS.md │ │ ├── index.html │ │ ├── package.json │ │ ├── public/ │ │ │ ├── animations/ │ │ │ │ ├── app-tour-generate.json │ │ │ │ ├── app-tour-get-started.json │ │ │ │ ├── app-tour-proof.json │ │ │ │ ├── app-tour-welcome.json │ │ │ │ ├── cloud-backup.json │ │ │ │ ├── proof-progress.json │ │ │ │ ├── proof-success-check.json │ │ │ │ ├── proof-success.json │ │ │ │ ├── push-notification-prompt.json │ │ │ │ └── scan-bar.json │ │ │ └── fonts/ │ │ │ ├── Advercase-Regular.otf │ │ │ ├── DINOT-Bold.otf │ │ │ ├── DINOT-Medium.otf │ │ │ └── IBMPlexMono-Regular.otf │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── components/ │ │ │ │ ├── DevRouteMenu.tsx │ │ │ │ ├── MockRegistrationFailureButton.tsx │ │ │ │ └── PasswordGate.tsx │ │ │ ├── data/ │ │ │ │ └── country-document-types.json │ │ │ ├── fonts.css │ │ │ ├── main.tsx │ │ │ ├── providers/ │ │ │ │ ├── BridgeProvider.tsx │ │ │ │ ├── SelfClientProvider.tsx │ │ │ │ └── VerificationRequestProvider.tsx │ │ │ ├── recovery.css │ │ │ ├── reset.css │ │ │ ├── screens/ │ │ │ │ ├── ComingSoonScreen.tsx │ │ │ │ ├── account/ │ │ │ │ │ ├── DevModeScreen.tsx │ │ │ │ │ ├── NotificationPreferencesScreen.tsx │ │ │ │ │ ├── SecurityScreen.tsx │ │ │ │ │ └── SettingsScreen.tsx │ │ │ │ ├── debug/ │ │ │ │ │ └── KeychainDebugScreen.tsx │ │ │ │ ├── home/ │ │ │ │ │ ├── HomeScreen.tsx │ │ │ │ │ ├── IDDataScreen.tsx │ │ │ │ │ └── ManageDocumentsScreen.tsx │ │ │ │ ├── onboarding/ │ │ │ │ │ ├── ConfirmIdentificationScreen.tsx │ │ │ │ │ ├── ConflictDetectedScreen.tsx │ │ │ │ │ ├── CountryPickerScreen.tsx │ │ │ │ │ ├── IDSelectionScreen.tsx │ │ │ │ │ ├── KycFailureScreen.tsx │ │ │ │ │ ├── ProviderLaunchScreen.tsx │ │ │ │ │ ├── ProviderResultScreen.tsx │ │ │ │ │ ├── PushNotificationPromptScreen.tsx │ │ │ │ │ ├── RegistrationFailureScreen.tsx │ │ │ │ │ ├── ScanSuccessScreen.tsx │ │ │ │ │ ├── SocialSignOnMethodPickerScreen.tsx │ │ │ │ │ ├── SocialSignOnPickerScreen.tsx │ │ │ │ │ └── TourScreen.tsx │ │ │ │ ├── proving/ │ │ │ │ │ ├── DialogueWithCtaScreen.tsx │ │ │ │ │ ├── DiscloseResultScreen.tsx │ │ │ │ │ ├── KycPendingScreen.tsx │ │ │ │ │ ├── KycSuccessScreen.tsx │ │ │ │ │ ├── ProofGenerationDialogueScreen.tsx │ │ │ │ │ ├── ProofGenerationRouteScreen.tsx │ │ │ │ │ ├── ProofGenerationSuccessScreen.tsx │ │ │ │ │ ├── ProofHistoryScreen.tsx │ │ │ │ │ ├── ProofRequestReceiptScreen.tsx │ │ │ │ │ ├── ProofSuccessBackupScreen.tsx │ │ │ │ │ ├── ProvingScreen.tsx │ │ │ │ │ ├── SimpleDialogueScreen.tsx │ │ │ │ │ └── VerificationResultScreen.tsx │ │ │ │ ├── recovery/ │ │ │ │ │ ├── BackupMethodPickerScreen.tsx │ │ │ │ │ ├── LaunchRecoveryScreen.tsx │ │ │ │ │ ├── RecoveryFailureScreen.tsx │ │ │ │ │ ├── RecoveryPhraseScreen.tsx │ │ │ │ │ ├── RecoverySuccessScreen.tsx │ │ │ │ │ └── SecretPhraseInputScreen.tsx │ │ │ │ └── tunnel/ │ │ │ │ ├── TourScreen.tsx │ │ │ │ ├── TunnelCountryPickerScreen.tsx │ │ │ │ ├── TunnelDiscloseScreen.tsx │ │ │ │ ├── TunnelIDTypeScreen.tsx │ │ │ │ ├── TunnelKycFailureScreen.tsx │ │ │ │ ├── TunnelKycPendingScreen.tsx │ │ │ │ ├── TunnelKycSuccessScreen.tsx │ │ │ │ ├── TunnelKycWrapper.tsx │ │ │ │ ├── TunnelProofReceiptScreen.tsx │ │ │ │ ├── TunnelProvingScreen.tsx │ │ │ │ ├── TunnelRecoveryRequiredScreen.tsx │ │ │ │ └── TunnelResultScreen.tsx │ │ │ ├── test/ │ │ │ │ └── sri.test.ts │ │ │ ├── types/ │ │ │ │ └── kycProvider.ts │ │ │ └── utils/ │ │ │ ├── buildKycDocument.ts │ │ │ ├── countryFlags.tsx │ │ │ ├── insets.ts │ │ │ ├── kycAttestation.ts │ │ │ ├── kycProvider.ts │ │ │ ├── mockDocumentStore.ts │ │ │ ├── mockOnboardingFlow.ts │ │ │ ├── provingUtils.test.ts │ │ │ ├── provingUtils.ts │ │ │ ├── secretManager.ts │ │ │ ├── selfAppContext.ts │ │ │ ├── verificationRequest.test.ts │ │ │ └── verificationRequest.ts │ │ ├── tests/ │ │ │ ├── components/ │ │ │ │ └── PasswordGate.test.tsx │ │ │ ├── screens/ │ │ │ │ ├── ComingSoonScreen.test.tsx │ │ │ │ ├── account/ │ │ │ │ │ └── settingsScreens.test.tsx │ │ │ │ ├── home/ │ │ │ │ │ └── homeSupportScreens.test.tsx │ │ │ │ ├── onboarding/ │ │ │ │ │ └── registrationPrompts.test.tsx │ │ │ │ ├── proving/ │ │ │ │ │ └── provingSupportScreens.test.tsx │ │ │ │ ├── recovery/ │ │ │ │ │ ├── recoveryPhraseScreen.test.tsx │ │ │ │ │ ├── recoverySupportScreens.test.tsx │ │ │ │ │ └── secretPhraseInputScreen.test.tsx │ │ │ │ └── tunnel/ │ │ │ │ └── tunnelFlowScreens.test.tsx │ │ │ └── utils/ │ │ │ └── secretManager.test.ts │ │ ├── tsconfig.json │ │ ├── vercel.json │ │ ├── vite-env.d.ts │ │ └── vite.config.ts │ └── webview-bridge/ │ ├── .eslintrc.cjs │ ├── .prettierignore │ ├── .prettierrc │ ├── package.json │ ├── src/ │ │ ├── __tests__/ │ │ │ ├── adapters.test.ts │ │ │ ├── analytics-web.test.ts │ │ │ ├── bridge.test.ts │ │ │ ├── documents-web.test.ts │ │ │ ├── helpers/ │ │ │ │ └── mockWindow.ts │ │ │ └── schema.test.ts │ │ ├── adapters/ │ │ │ ├── analytics.ts │ │ │ ├── auth.ts │ │ │ ├── biometrics.ts │ │ │ ├── camera.ts │ │ │ ├── crypto.ts │ │ │ ├── documents.ts │ │ │ ├── haptic.ts │ │ │ ├── index.ts │ │ │ ├── keychain-documents.ts │ │ │ ├── lifecycle.ts │ │ │ ├── navigation.ts │ │ │ ├── nfc-scanner.ts │ │ │ ├── sdk-adapter-map.ts │ │ │ └── storage.ts │ │ ├── bridge.ts │ │ ├── index.ts │ │ ├── mock.ts │ │ ├── schema.ts │ │ └── types.ts │ ├── tsconfig.json │ └── tsup.config.ts ├── patches/ │ ├── @turnkey+core+1.7.0.patch │ ├── react-native-gesture-handler+2.22.1.patch │ ├── react-native-keychain+10.0.0.patch │ ├── react-native-passport-reader+1.0.3.patch │ └── react-native-svg+15.14.0.patch ├── purple/ │ ├── business/ │ │ ├── core-value-prop.md │ │ ├── general-description.md │ │ └── pricing-model.md │ ├── crypto/ │ │ ├── sdk-architecture.md │ │ ├── smart-contracts.md │ │ └── zk-circuits.md │ ├── frontend/ │ │ ├── components.md │ │ ├── responsiveness.md │ │ └── styling.md │ ├── global/ │ │ ├── authentication.md │ │ ├── code-style.md │ │ ├── database.md │ │ ├── external-services.md │ │ ├── how-agents-document.md │ │ ├── tech-stack.md │ │ └── testing.md │ ├── mobile/ │ │ ├── native-platforms.md │ │ ├── nfc-biometrics.md │ │ └── security-storage.md │ └── temp/ │ └── codebase-analysis.md ├── scripts/ │ ├── audit/ │ │ └── tech-debt-baseline.mjs │ ├── build-webview-bundle.sh │ ├── check-duplicate-headers.cjs │ ├── check-license-headers.mjs │ ├── check-package-versions.mjs │ ├── docstring-report.ts │ ├── kmp-start.sh │ ├── lint-headers.cjs │ ├── migrate-license-headers.mjs │ ├── reinstall-app.sh │ ├── run-patch-package.cjs │ └── tests/ │ ├── .gitignore │ ├── checkLicenseHeaders.test.mjs │ ├── checkPackageVersions.test.mjs │ └── package.json ├── sdk/ │ ├── core/ │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── index.ts │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── copyAbi.sh │ │ ├── src/ │ │ │ ├── SelfBackendVerifier.ts │ │ │ ├── abi/ │ │ │ │ ├── AadhaarVerifier.json │ │ │ │ ├── IdentityVerificationHubImpl.json │ │ │ │ ├── KycVerifier.json │ │ │ │ ├── Registry.json │ │ │ │ └── Verifier.json │ │ │ ├── errors/ │ │ │ │ ├── ProofError.ts │ │ │ │ ├── RegistryContractError.ts │ │ │ │ ├── VerifierContractError.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── store/ │ │ │ │ ├── DefaultConfigStore.ts │ │ │ │ ├── InMemoryConfigStore.ts │ │ │ │ └── interface.ts │ │ │ ├── types/ │ │ │ │ └── types.ts │ │ │ └── utils/ │ │ │ ├── constants.ts │ │ │ ├── hash.ts │ │ │ ├── id.ts │ │ │ ├── proof.ts │ │ │ └── utils.ts │ │ ├── tests/ │ │ │ ├── proof.test.ts │ │ │ └── verifierErrors.test.ts │ │ └── tsconfig.json │ ├── qrcode/ │ │ ├── .eslintrc.cjs │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── .size-limit.json │ │ ├── README.md │ │ ├── animations/ │ │ │ ├── index.ts │ │ │ ├── status-connecting.json │ │ │ ├── status-error.json │ │ │ ├── status-failed.json │ │ │ └── status-success.json │ │ ├── components/ │ │ │ ├── QRCode.tsx │ │ │ ├── SelfQRcode.tsx │ │ │ └── StatusBanner.tsx │ │ ├── index.ts │ │ ├── package.json │ │ ├── scripts/ │ │ │ ├── postBuild.mjs │ │ │ └── shimConfigs.js │ │ ├── tsconfig.cjs.json │ │ ├── tsconfig.json │ │ ├── tsconfig.react.json │ │ ├── tsup.config.ts │ │ ├── types/ │ │ │ └── svg.d.ts │ │ └── utils/ │ │ ├── styles.ts │ │ ├── utils.ts │ │ └── websocket.ts │ ├── qrcode-angular/ │ │ ├── .eslintrc.json │ │ ├── .gitignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── angular.json │ │ ├── karma.conf.js │ │ ├── ng-package.json │ │ ├── package.json │ │ ├── src/ │ │ │ ├── index.ts │ │ │ ├── lib/ │ │ │ │ ├── common.ts │ │ │ │ ├── components/ │ │ │ │ │ ├── animations/ │ │ │ │ │ │ ├── check_animation.json │ │ │ │ │ │ └── x_animation.json │ │ │ │ │ ├── led/ │ │ │ │ │ │ └── led.component.ts │ │ │ │ │ └── self-qrcode/ │ │ │ │ │ ├── self-qrcode.component.css │ │ │ │ │ ├── self-qrcode.component.html │ │ │ │ │ └── self-qrcode.component.ts │ │ │ │ ├── providers.ts │ │ │ │ ├── services/ │ │ │ │ │ └── websocket.service.ts │ │ │ │ └── utils/ │ │ │ │ ├── styles.ts │ │ │ │ ├── utils.ts │ │ │ │ └── websocket.ts │ │ │ ├── public-api.ts │ │ │ └── styles.css │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.lib.prod.json │ │ ├── tsconfig.spec.json │ │ └── validate-build.cjs │ ├── sdk-common/ │ │ ├── index.ts │ │ ├── package.json │ │ ├── tsconfig.cjs.json │ │ └── tsconfig.json │ └── sdk-go/ │ ├── InMemoryConfigStore.go │ ├── LICENSE │ ├── README.md │ ├── common/ │ │ ├── constants.go │ │ ├── customHash.go │ │ └── utils.go │ ├── config.go │ ├── contracts/ │ │ ├── abi/ │ │ │ ├── AadhaarVerifier.abi │ │ │ ├── IdentityVerificationHubImpl.abi │ │ │ ├── Registry.abi │ │ │ └── Verifier.abi │ │ └── bindings/ │ │ ├── AadhaarVerifier.go │ │ ├── IdentityVerificationHubImpl.go │ │ ├── Registry.go │ │ └── Verifier.go │ ├── go.mod │ ├── go.sum │ ├── sdk.go │ ├── test/ │ │ └── selfBackendVerifier_test.go │ ├── types.go │ ├── utils.go │ └── verifier.go └── specs/ ├── ARCHIVE.md ├── README.md ├── archive/ │ ├── CI-COVERAGE-GAPS.md │ ├── EUCLID-WEB-CONSOLIDATION.md │ ├── IOS-CRASH-FIX.md │ ├── LOTTIE-DOTLOTTIE-REVIEW.md │ ├── PROJECT-RULES.md │ ├── SECURITY-HARDENING.md │ ├── SPEC-GUIDE.md │ ├── SPECS-REORG-PLAN.md │ ├── kmp/ │ │ ├── ARCHITECTURE.md │ │ ├── INDEX.md │ │ ├── INITIATIVE.md │ │ └── REORG-PLAN.md │ └── sdk/ │ ├── SPEC-AGENT-OPTIMIZATION.md │ ├── SPEC-MRZ-CONSOLIDATION.md │ └── SPEC-TEST-APP-CAMERA.md ├── framework/ │ ├── PRODUCT-SPEC-ENHANCEMENT-PROMPT.md │ ├── SPEC-EXECUTION-MODEL.md │ └── TEMPLATES.md └── projects/ └── sdk/ ├── INDEX.md ├── OVERVIEW.md ├── paused/ │ ├── INDEX.md │ ├── integrations/ │ │ ├── SPEC.md │ │ └── plans/ │ │ ├── IN-01-sample-polish-and-error-handling.md │ │ └── IN-02-sample-physical-device-validation.md │ ├── native-consolidation/ │ │ ├── CONTRACTS.md │ │ ├── PLAN.md │ │ ├── SPEC.md │ │ └── plans/ │ │ ├── NC-01-phase-0-safety-rails.md │ │ ├── NC-02-phase-1-mrz-unification.md │ │ ├── NC-03-phase-2-passport-reader-parity.md │ │ ├── NC-04-phase-3-shim-cleanup.md │ │ ├── NC-05-phase-4-deletions-and-guardrails.md │ │ └── NC-06-external-mrz-nfc-inventory.md │ ├── native-shells/ │ │ ├── SPEC.md │ │ └── plans/ │ │ ├── NS-01-physical-device-validation.md │ │ ├── NS-03-publishing-readiness.md │ │ ├── NS-04-apdu-allowlist.md │ │ ├── NS-05-lifecycle-handler-semantics.md │ │ ├── NS-06-kmp-callback-contract-alignment.md │ │ ├── NS-08-ship-artifacts-to-minipay.md │ │ └── NS-09-nfcpassportreader-distribution.md │ └── rn-sdk/ │ ├── SPEC.md │ └── plans/ │ ├── RN-01-self-wallet-integration-validation.md │ ├── RN-02-npm-publishing-readiness.md │ └── RN-03-nfc-hardening.md └── workstreams/ ├── analytics/ │ ├── SPEC.md │ └── plans/ │ └── ANA-01-canonical-onboarding-funnel.md ├── build-pipeline/ │ ├── SPEC.md │ └── plans/ │ └── BP-01-build-script.md ├── kmp-revival/ │ ├── SPEC.md │ └── plans/ │ ├── KR-01-android-parity.md │ ├── KR-02-ios-parity.md │ └── KR-03-validate-and-publish.md ├── native-hardware-handlers/ │ └── SPEC.md ├── native-shells-lite/ │ ├── SPEC.md │ └── plans/ │ ├── NSL-01-android-shell.md │ ├── NSL-02-ios-shell.md │ ├── NSL-03-test-apps.md │ └── NSL-04-delegate-keychain.md ├── sdk-core/ │ ├── SPEC.md │ └── plans/ │ ├── SC-01-fallback-adapter-dedup.md │ ├── SC-02-crypto-bridge-surface.md │ └── SC-03-selfclient-adapter-assembly.md ├── sdk-distribution/ │ ├── SPEC.md │ └── plans/ │ ├── SD-01-android-hosted-url.md │ ├── SD-02-ios-hosted-url.md │ ├── SD-03-hosting-setup.md │ ├── SD-04-android-maven-publishing.md │ ├── SD-05-ios-spm-publishing.md │ └── SD-06-kmp-remote-publishing.md └── webview/ ├── INDEX.md ├── SCREEN-INVENTORY.md ├── SPEC.md ├── TICKET-PLAN.md └── plans/ ├── SELF-2504-onboarding-recovery-phrase.md ├── WV-01-dynamic-proof-request-items.md ├── WV-02-kyc-provider-contract.md ├── WV-03-remove-native-scan-assumptions.md ├── WV-04-host-callback-contract.md ├── WV-05-kyc-provider-sdk.md ├── WV-06-kyc-result-flow.md ├── WV-07-selfclient-proving-assembly.md ├── WV-08-tunnel-proving-flow.md ├── WV-09-registration-core.md ├── WV-10-eu-id-helper-flow.md ├── WV-11-disclose-core.md ├── WV-12-registration-prompts.md └── WV-17-recovery-phrase-restore-flow.md