Présentation — ProbatioVault App (React Native)¶
Application iOS/Android avec chiffrement de bout en bout (Zero-Knowledge)
Démarrage rapide¶
# Installer les dépendances
npm install
# Lancer l'app
npm run ios # iOS
npm run android # Android
npm run web # Web
# Tests
npm test
npm run test:coverage
Documentation¶
Stack technique¶
| Composant | Technologie |
|---|---|
| Framework | React Native 0.76 + Expo 52 |
| Router | Expo Router (file-based) |
| State | Zustand |
| Crypto | @noble/ciphers, @noble/hashes |
| Storage | expo-secure-store, AsyncStorage |
| Tests | Vitest |
Architecture¶
src/
├── app/ # Expo Router (screens)
├── components/ # Composants React
├── services/ # Services (API, crypto, storage)
├── store/ # Zustand stores
├── hooks/ # Custom hooks
├── utils/ # Utilitaires
└── types/ # TypeScript types
Cryptographie¶
| Fonction | Algorithme |
|---|---|
| Chiffrement | AES-256-GCM |
| Hash | SHA3-256 |
| Dérivation | Argon2id + HKDF |
| Stockage clés | Secure Enclave (iOS) / Keystore (Android) |
Zero-knowledge¶
- Master key (K_master) jamais stockée
- Backend ne voit jamais les clés de chiffrement
- Chaque document chiffré avec clé unique (K_doc)
Voir: Architecture crypto
Platforms¶
| Platform | Status | Notes |
|---|---|---|
| iOS | Supporté | iOS 13+ |
| Android | Supporté | Android 6+ (API 23+) |
| Web (PWA) | Planifié | Q1 2026 |
| Desktop | Planifié | Q3 2026 |