# Licenze manuali LME Pro ## Regola di accesso L'app considera Pro l'utente quando e valida almeno una delle due licenze: - abbonamento Google Play attivo; - licenza manuale crittografata e non scaduta. Senza una licenza valida l'app resta Base. Alla scadenza della licenza manuale le funzioni Pro vengono disabilitate automaticamente, senza cancellare o alterare i dati dell'utente. Un abbonamento Google valido continua a dare accesso Pro anche se la licenza manuale e scaduta. ## Emissione Il gestore si trova in `tools/LmeLicenseManager` e registra in SQLite: - nome e cognome; - email; - identificativo univoco della licenza; - data di emissione e scadenza; - hash e codice emesso; - note e data di eventuale revoca amministrativa. Il codice `LME1...` e cifrato con AES-GCM e firmato con RSA 3072. L'utente lo incolla nella sezione Licenza manuale delle impostazioni. L'app possiede solo la chiave pubblica RSA e non puo generare codici validi. ## Portabilita della chiave La licenza non e vincolata al PC che la genera, all'account Windows o al dispositivo dell'utente finale. La chiave privata operativa e protetta localmente con Windows DPAPI, ma dal gestore puo essere esportata come file `.lmekey` cifrato con una password di almeno 12 caratteri e importata su un altro PC o da un altro utente Windows. Conservare il file `.lmekey` e la password in luoghi separati e protetti. Senza questo backup non e possibile ricreare la stessa autorita di firma su un nuovo sistema. Percorsi locali predefiniti: ```text %LOCALAPPDATA%\LME\LicenseManager\licenses.db %LOCALAPPDATA%\LME\LicenseManager\manual-license-private.dpapi ``` Il database puo essere copiato per conservare lo storico. La chiave DPAPI non e un backup portabile: per la portabilita usare esclusivamente l'esportazione `.lmekey`. ## Limiti offline Una licenza manuale gia consegnata viene verificata interamente offline. Marcarla come revocata nel database conserva l'audit amministrativo, ma non puo disattivare a distanza un codice gia installato: rimane valido fino alla sua scadenza. Una revoca immediata richiederebbe un servizio online di verifica. Chiavi private, backup `.lmekey`, database delle licenze e password non devono mai essere inseriti nel repository o negli artefatti pubblici.