KeePass Core

Fork of KeePass application with dotnet 10 migration

The journey from a classic app to a more modern implementation opening more possibility.


Roadmap

  • 3.0.x -> 3.3.x - Mass refactoring. Pre-alpha, crashing behavior, regression everywhere
  • 3.4.x -> 3.7.x - Code improvement, bugfixes, tests, cleanup, memory leaks
  • 3.8.x -> 3.9.x - Polish, open to issues and/or MR
  • 4.0.x -> ∞ - Production ready

TODO

  • Use of CancellationTokenSource if needed instead of obsolete Thread.Abort code (see here)
  • Use of HttpClient instead of obsolete web code
  • Replacement for any Code Access Security code (see here)
  • Remove mono dependancies
  • Add an .editorconfig file
  • integrate CI Forgejo Actions
  • Run on wine (crashes can still happen 😞)
  • Remove any winform and/or windows related code from the library (platform independant)
  • Replace obsolete code with modern implementation
  • Remove mono dependancies
  • Replace Debug.Assert with log system
  • Migrate windows graphic code to SkiaSharp
  • Implement tests units suite

Changelog

Changelog does not include information on chores/cleanup code. For example:

  • spaces
  • harmonized idents
  • Remove unecessary this. use
  • Remove unecessary parenthesis
  • Remove unecessary private field declaration (use of property implicit field declaration)
  • Use of modern exception assertion (ArgumentNullException.ThrowIf())
  • ...
v3.1.2
  • Remove some code with Obsolete attribute. Replace entropy computation from mouse position to random instance (more platform-open)
  • The app settings is migrated to a json format => removed the XML Enforced functionnality for now. Will try to reimplement it with new implementation
  • On wine, some code are not implemented => try to execute or ignore the method
  • Migration from System.Drawing to SkiaSharp. 1st phase (make it work => regression + memory leak)
  • Replace SystemIcons with free icons from rw-designer web site. Some icons are not implemented in wine
  • Remove XML Enforced configuration functionnality (to R&D another solution)
v3.1.1
  • KeePassCore.NativeLib refactoring (use of RuntimeInformation)
  • Replace Thread.Abort() code with use of CancellationToken (to be optimized)
  • Refactor of IOConnection to a instanciable class. Split request with IORequest interface. Implementation of HttpIORequest, FtpIORequest, FileIORequest. WebDav scenario missing.
  • Start migration of KeePassCore.config.xml file from XML to JSON>
v3.1.0
  • modify url base for links + pages on site
  • use of full name KeePass Core
v3.0.6

TrtUtil chores

  • Huge refactor on auto property (remove a maximum of private field)
  • Removed any Debug.Assert placed juste before any throw Exception
  • Use of default new() declaration
  • Braces for any block
  • Default collections initialization
  • Lots of C#14 optimizations
v3.0.5

KeePass Core chores

  • Huge refactor on auto property (remove a maximum of private field)
  • Removed any Debug.Assert placed juste before any throw Exception
  • Use of default new() declaration
  • Braces for any block
  • Default collections initialization
  • Lots of C#14 optimizations
  • Too much files. Need to find to another way 😕
v3.0.4

KeePassLib Core chores

  • Huge refactor on auto property (remove a maximum of private field)
  • Removed any Debug.Assert placed juste before any throw Exception
  • Use of default new() declaration
  • Braces for any block
  • Default collections initialization
  • Lots of C#14 optimizations
v3.0.3
  • Removed type check in KeePass.Program.InitAppContext
  • Improved KeePass.UI.CustomSplitContainerEx ratio computation
  • Compile with net10.0-windows target framework
  • Start the TrtUtil application on net481 with wine in a linux environment
v3.0.2
  • Commit of TrtUtil project
  • Upgrade to dotnet csproj format
  • Compile with net10.0-windows target framework
  • Removed net481 target framework
  • Removed type check in KeePass.Program.InitAppContext (blocking net10 starting)
  • Improved KeePass.UI.CustomSplitContainerEx ratio computation (blocking net10 starting)
  • Start the TrtUtil application on net481 with wine in a linux environment
v3.0.1
  • Commit of KeePass project
  • Commit of TrtUtil project
  • Upgrade to dotnet csproj format
  • Compile with net10.0-windows target framework
  • Compile with net481 target framework
  • Start the KeePass and TrtUtil applications on net481 with wine in a linux environment
v3.0.0
  • Commit of KeePassLib project
  • Upgrade to dotnet csproj format
  • Compile with net10.0-windows target framework
  • Compile with net481 target framework
  • Refactor of obsolete Cryptography use (new SHAxxxManaged() to SHAxxx.Create(), ...)