mirror of
https://github.com/wismna/ModernKeePassLib.git
synced 2025-10-03 15:40:20 -04:00
41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
## ModernKeePassLib
|
|
|
|
[](https://dev.azure.com/geogeob/ModernKeePass/_build/latest?definitionId=6)
|
|
|
|
# What is this ?
|
|
|
|
ModernKeePassLib is a port of KeePassLib to .netstandard 1.2, distributed as a nuget package.
|
|
The aim was to change as little as possible the original library. However, some workarounds have to be made as .netstandard 1.2 misses quite a few features of the full .net framework.
|
|
Main changes:
|
|
- Removed the dependency on the filesystem
|
|
- Added a dependency on Windows (I'm working on tring to find a way to remove it altogether)
|
|
- Some features are handled by external nuget packages (cryptography, colors, etc.), so it may introduce small differences
|
|
|
|
# Installation
|
|
|
|
From [nuget.org](https://www.nuget.org/packages/ModernKeePassLib/)
|
|
|
|
# Usage
|
|
|
|
1. Create a IOConnectionInfo from a byte array:
|
|
`var ioConnection = IOConnectionInfo.FromByteArray(file);`
|
|
2. Create a composite key and add credential information:
|
|
`var compositeKey = new CompositeKey();
|
|
// Password
|
|
compositeKey.AddUserKey(new KcpPassword("Password"));`
|
|
// Key file
|
|
compositeKey.AddUserKey(new KcpKeyFile(IOConnectionInfo.FromByteArray(KeyFileContents)));`
|
|
3. Use it to open the database:
|
|
// You may use whatever logger you choose (here, I use nullstatuslogger)
|
|
`PwDatabase.Open(ioConnection, compositeKey, new NullStatusLogger());`
|
|
4. Do stuff in you database (create entries, groups, ...)
|
|
5. Save your changes:
|
|
`PwDatabase.Save(new NullStatusLogger());`
|
|
6. At this point, nothing is commited to disk, so you need to retrieve the byte array:
|
|
`var contents = PwDatabase.IOConnectionInfo.Bytes;`
|
|
7. Write the byte array to a file, to a stream, whatever !
|
|
|
|
# Todo
|
|
|
|
- Remove Windows dependencies entirely
|
|
- Find a way to use Color class (handled by Splat at the moment, but I'm not satisfied) |