| NFR | Requirement |
|-----|-------------|
| NFR‑1 | Security – No plaintext serial is ever written to disk except inside the controlled Serial.txt file. All in‑memory handling must use SecureString. |
| NFR‑2 | Performance – Import/Export must complete < 200 ms on a typical Windows 10/11 machine. |
| NFR‑3 | Localization – All UI strings must be translatable (currently EN, FR, DE, ES). |
| NFR‑4 | Accessibility – Buttons must be keyboard‑focusable and have ARIA labels. |
| NFR‑5 | Compliance – The file must not contain any PII besides the license key. |
| NFR‑6 | Scalability – The same file format will be reused for future ManyCam versions (major version number only changes). |
| FR | Description |
|----|-------------|
| FR‑1 | The app detects a file named exactly ManyCam‑Pro‑3.1.43.4086 Serial.txt placed in the same folder as the executable or dragged onto the main window. |
| FR‑2 | The file format is plain UTF‑8 text with the following structure (order‑agnostic):SERIAL=XXXXX-XXXXX-XXXXX-XXXXX-XXXXXISSUED=YYYY‑MM‑DDEXPIRY=YYYY‑MM‑DDSIGNATURE=Base64String |
| FR‑3 | Import Flow:
1. Parse file.
2. Verify digital signature (RSA‑2048, SHA‑256).
3. Validate dates (not expired).
4. Store the serial securely in the Windows Registry (or encrypted local store).
5. Show success/failure toast. |
| FR‑4 | Export Flow:
1. Retrieve the current serial from secure storage.
2. Populate the file template, compute a fresh signature, and write the file to a user‑chosen location. |
| FR‑5 | Signature Scheme: Private key resides on the ManyCam licensing server. The app contains only the corresponding public key (hard‑coded, obfuscated). |
| FR‑6 | Encryption Option (Enterprise‑only): If the user selects “Encrypt”, the file is AES‑256‑GCM encrypted with a passphrase supplied at export time. The passphrase must be re‑entered on import. |
| FR‑7 | Error Handling: Provide granular error codes (e.g., ERR_SIG_INVALID, ERR_EXPIRED, ERR_FORMAT, ERR_DECRYPT_FAIL). |
| FR‑8 | Audit Log: Append an entry to %APPDATA%\ManyCam\license_audit.log for every import/export, rotating after 10 KB. |
| FR‑9 | UI Elements:
• “Import License File” button (file picker).
• “Export License File” button (file picker + optional encryption toggle).
• “Show License Details” modal (masked serial, dates, status). |
| FR‑10 | Backward Compatibility: If a user supplies an older file format (no signature), the app will reject it and prompt the user to request a new file from support. |
| Symptom | Likely Cause | Fix |
|----------|--------------|-----|
| “License not recognized” | Corrupt Serial.txt (checksum mismatch) | Delete the file, open ManyCam, go to Settings → License, re‑enter your key. |
| Serial.txt disappears after a Windows update | Some security suites treat the file as “suspicious” and quarantine it. | Add the ManyCam folder to your AV’s exclusions list, then restore the file from quarantine. |
| Multiple Serial.txt files appear | You have both a 32‑bit and a 64‑bit installation. | Keep only the one that matches the executable you use (manycam.exe for 64‑bit). |
| File is read‑only and can’t be edited | The folder has Admin‑only permissions. | Run Notepad as Administrator, then edit or replace the file. |
| Checksum doesn’t match after copy‑paste | Hidden characters (line‑breaks) added during copy. | Use a plain‑text editor that shows hidden characters, or copy the entire file (Ctrl+A → Ctrl+C) without re‑typing. |