feat: add master password support, credential sets UI, and FrmPassword fixes#3229
feat: add master password support, credential sets UI, and FrmPassword fixes#3229yosale2011 wants to merge 3 commits intomRemoteNG:v1.78.2-devfrom
Conversation
…FrmPassword fixes - Add MasterPasswordService with encrypted verifier storage - Add StartupUnlockService for master password prompt on startup - Add XmlKeyValidator for encryption key validation - Add credential sets manager UI and master password manager form - Fix FrmPassword CS0535 build error (missing IKeyProvider.GetKey()) - Bring password dialog to foreground on startup - Improve error handling in credential deserialization Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Review Summary by QodoAdd master password support, credential sets UI, and password dialog improvements
WalkthroughsDescription• Add comprehensive master password support with encrypted verifier storage and startup unlock flow • Implement credential sets manager UI for managing internal credential sets with add, edit, delete operations • Add master password manager form for setting, changing, and removing master passwords • Fix FrmPassword CS0535 build error by implementing missing IKeyProvider.GetKey() method • Improve password dialog visibility by adding TopMost, BringToFront(), Activate() and changing StartPosition to CenterScreen • Integrate runtime encryption key management into connection and credential deserialization flows • Add InternalCredentialSet external credential provider support to RDP and PuTTY protocols • Enhance error handling in credential deserialization with graceful fallback for corrupted files • Add property grid integration for credential set selection via CredentialSetTypeConverter • Implement XmlKeyValidator utility for validating encryption keys against XML files • Add localization strings for credential sets feature and master password UI • Update project configuration with application manifest, high DPI mode settings, and dependency updates Diagramflowchart LR
A["User Startup"] -->|"EnsureStartupUnlocked()"| B["StartupUnlockService"]
B -->|"Check master password"| C["MasterPasswordService"]
C -->|"Validate with XmlKeyValidator"| D["Encryption Key"]
D -->|"Set session key"| E["Runtime.EncryptionKey"]
E -->|"Decrypt connections/credentials"| F["XmlConnectionsDeserializer"]
F -->|"Load with key"| G["Connection Records"]
H["Tools Menu"] -->|"Open"| I["CredentialSetsManager"]
H -->|"Open"| J["MasterPasswordManager"]
I -->|"Manage"| K["Internal Credential Sets"]
J -->|"Configure"| C
L["RDP/PuTTY Protocol"] -->|"Resolve credentials"| K
File Changes1. mRemoteNG/Connection/Protocol/RDP/RdpProtocol.cs
|
Code Review by Qodo
1.
|
… converter - Add AxMSTSCLib PackageVersion (1.0.1) to Directory.Packages.props for central package management compatibility with dotnet CLI builds - Remove catch-all exception handlers in credential loading pipeline to prevent silent data loss: decryption/parse errors now propagate, keeping IsLoaded=false and preventing SaveCredentials from overwriting valid credentials with an empty set - Fix CredentialSetTypeConverter.ConvertFrom to return original value instead of empty string for unknown inputs, preserving custom credential provider values Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…CredentialSet enum - Create CredentialSetsManager.Designer.cs with Form inheritance and all UI controls referenced by CredentialSetsManager.cs - Create CredentialSetResolver class for resolving credentials by GUID or title from the credential catalog - Add InternalCredentialSet value to ExternalCredentialProvider enum Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update: Build fixes addedAdded missing files to fix build errors:
Build now succeeds with 0 errors. |
|



Summary
IKeyProvider.GetKey())Master Password Feature
MasterPasswordServiceclass for setting, verifying, and removing master passwordsStartupUnlockServiceto prompt for master password on application startupXmlKeyValidatorfor validating encryption keys against XML filesRuntime.csCredential Sets Feature
CredentialSetsManagerform for viewing and managing credential setsCredentialSetTypeConverterfor property grid integrationFrmPassword UI Fixes
GetKey()to satisfyIKeyProviderinterface (build fix)TopMost/BringToFront/Activateto ensure dialog appears in foregroundStartPositionfromCenterParenttoCenterScreenTest plan