Skip to content
This repository was archived by the owner on Apr 4, 2026. It is now read-only.

Latest commit

 

History

History
149 lines (139 loc) · 7.86 KB

File metadata and controls

149 lines (139 loc) · 7.86 KB
🇫🇷 Français | 🇬🇧 English

📂 Structure du projet


SecureChat/
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── firebase-rules.json
├── storage.rules                             # Règles Firebase Storage
├── build.gradle.kts                          # Config Gradle racine
├── settings.gradle.kts
├── gradle.properties
│
├── docs/                                     # Documentation détaillée
│   ├── fr/                                   # Documentation française
│   │   ├── ARCHITECTURE.md                   # Architecture, patterns, flux
│   │   ├── CRYPTO.md                         # Protocole cryptographique complet
│   │   ├── SETUP.md                          # Installation + config Firebase
│   │   ├── STRUCTURE.md                      # Ce fichier
│   │   └── CHANGELOG.md                      # Historique des versions
│   └── en/                                   # English documentation
│       ├── ARCHITECTURE.md
│       ├── CRYPTO.md
│       ├── SETUP.md
│       ├── STRUCTURE.md
│       └── CHANGELOG.md
│
├── app/
│   ├── build.gradle.kts                      # Dépendances app
│   ├── proguard-rules.pro
│   ├── google-services.json                  # ← À AJOUTER (gitignored)
│   ├── google-services.json.template         # Structure de référence
│   │
│   └── src/main/
│       ├── AndroidManifest.xml
│       │
│       ├── java/com/securechat/
│       │   ├── SecureChatApplication.kt      # Init Firebase
│       │   ├── MainActivity.kt               # Single-activity (NavHost)
│       │   ├── LockScreenActivity.kt         # Écran de verrouillage PIN + biométrie
│       │   ├── MyFirebaseMessagingService.kt  # FCM push handler
│       │   │
│       │   ├── crypto/
│       │   │   ├── CryptoManager.kt          # X25519, ECDH, AES-256-GCM, HKDF, ML-KEM-1024 (PQXDH)
│       │   │   ├── DoubleRatchet.kt          # Full Double Ratchet (DH + KDF chains) + PQXDH upgrade
│       │   │   └── MnemonicManager.kt        # BIP-39 mnemonic encode/decode (24 mots)
│       │   │
│       │   ├── data/
│       │   │   ├── local/
│       │   │   │   ├── SecureChatDatabase.kt # Room DB v14 (SQLCipher)
│       │   │   │   ├── UserLocalDao.kt
│       │   │   │   ├── ContactDao.kt
│       │   │   │   ├── ConversationDao.kt
│       │   │   │   ├── MessageLocalDao.kt
│       │   │   │   └── RatchetStateDao.kt
│       │   │   │
│       │   │   ├── model/
│       │   │   │   ├── UserLocal.kt          # Identité locale
│       │   │   │   ├── Contact.kt            # Contact (pseudo + pubkey)
│       │   │   ├── Conversation.kt       # Conversation (ephemeral, fingerprint, lastDeliveredAt)
│       │   │   │   ├── MessageLocal.kt       # Message (plaintext, ephemeral)
│       │   │   │   ├── FirebaseMessage.kt    # Message chiffré (Firebase)
│       │   │   │   └── RatchetState.kt       # État du ratchet par conversation
│       │   │   │
│       │   │   ├── remote/
│       │   │   └── FirebaseRelay.kt      # Auth anonyme + relay + ephemeral sync + fingerprint events
│       │   │   │
│       │   │   └── repository/
│       │   │       └── ChatRepository.kt     # Source de vérité unique (Mutex)
│       │   │
│       │   ├── util/
│       │   │   ├── QrCodeGenerator.kt        # Génération QR codes (ZXing)
│       │   │   ├── SecureFileManager.kt      # Suppression sécurisée de fichiers (écrasement 2 passes : aléatoire + zéros)
│       │   │   ├── ThemeManager.kt           # 5 thèmes (Midnight/Hacker/Phantom/Aurora/Daylight)
│       │   │   ├── AppLockManager.kt         # PIN, biométrie, auto-lock timeout
│       │   │   ├── EphemeralManager.kt       # Durées éphémères (30s → 1 mois)
│       │   │   ├── DummyTrafficManager.kt    # Faux trafic (anti analyse de trafic)
│       │   │   └── DeviceSecurityManager.kt  # Sonde StrongBox, niveaux sécurité MAXIMUM/STANDARD
│       │   │
│       │   └── ui/
│       │       ├── onboarding/               # Création d'identité + backup + restauration
│       │       │   ├── OnboardingFragment.kt
│       │       │   ├── OnboardingViewModel.kt
│       │       │   ├── BackupPhraseFragment.kt
│       │       │   └── RestoreFragment.kt
│       │       ├── conversations/            # Liste des chats + demandes de contact
│       │       │   ├── ConversationsFragment.kt
│       │       │   ├── ConversationsViewModel.kt
│       │       │   ├── ConversationsAdapter.kt
│       │       │   └── ContactRequestsAdapter.kt
│       │       ├── addcontact/               # Scanner QR + saisie manuelle
│       │       │   ├── AddContactFragment.kt
│       │       │   ├── AddContactViewModel.kt
│       │       │   └── CustomScannerActivity.kt
│       │       ├── chat/                     # Messages E2E + bulles
│       │       │   ├── ChatFragment.kt
│       │       │   ├── ChatViewModel.kt
│       │       │   ├── MessagesAdapter.kt
│       │       │   ├── ConversationProfileFragment.kt
│       │       │   └── FingerprintFragment.kt
│       │       ├── profile/                  # QR code, copier/partager, supprimer
│       │       └── settings/                 # Hub paramètres + sous-écrans
│       │           ├── SettingsFragment.kt
│       │           ├── AppearanceFragment.kt
│       │           ├── NotificationsFragment.kt
│       │           ├── SecurityFragment.kt
│       │           ├── PrivacyFragment.kt        # Sous-écran Confidentialité (dummy traffic, éphémère)
│       │           ├── EphemeralSettingsFragment.kt
│       │           └── PinSetupDialogFragment.kt
│       │
│       └── res/
│           ├── anim/                         # 10 animations (slide, fade, bubble, cascade)
│           ├── drawable/                     # Bulles, badges, icônes, backgrounds, ic_attach, ic_add
│           ├── layout/                       # 29 layouts XML (fragments + items)
│           ├── menu/                         # Menu conversations
│           ├── navigation/nav_graph.xml      # 16 destinations, transitions animées
│           ├── raw/bip39_english.txt         # Wordlist BIP-39 (2048 mots)
│           ├── xml/file_paths.xml            # FileProvider paths (partage fichiers)
│           ├── values/                       # Couleurs, strings, thèmes, 22 attrs custom
│           └── values-night/                 # Couleurs dark mode
│
├── functions/                                # Firebase Cloud Function (push)
│   ├── index.js
│   ├── package.json
│   └── .gitignore