Home
Softono
password-manager-access

password-manager-access

Open source MIT C#
49
Stars
10
Forks
24
Issues
2
Watchers
1 month
Last Commit

About password-manager-access

Password Manager Access for .NET in C is a read-only API library that provides unified access to multiple online password managers. It serves as a successor to several independent libraries and consolidates support for 1Password, Bitwarden, Dashlane, LastPass, ProtonPass, RoboForm, Sticky Password, True Key, and Zoho Vault. The library also supports parsing and decryption of the offline OpVault vault format used by 1Password. Each supported service offers a basic workflow of logging in, retrieving and decrypting vault contents, and logging out. The library does not provide a single unified interface across services due to differences in their APIs and data models. Developers interact with each service through its own module. Typical usage involves authenticating with a username, password, and client information, opening a vault, and iterating through accounts to access names, usernames, passwords, and URLs. The library is distributed via NuGet and is released under the MIT license. It targets developers build

Platforms

Web Self-hosted Windows

Languages

C#

Links

Password Manager Access for .NET in C

.NET build, test and release NuGet Badge NuGet Badge

Password Manager Access provides read only access API to various online password managers. This unified library is a successor to a bunch of independent libraries written in the past, such as lastpass-sharp, 1password-sharp and dashlane-sharp

The following services are supported by this library:

Additionally the library provides support for parsing and decryption of the offline OpVault vault format.

All services support basic log in, retrieve, decrypt, log out sequence. Though the modules providing support for different services are quite similar, they do not provide a unified interface. That is mainly due to the differences in the API and the data provided by the services themselves.

A typical work flow with simple password authentication looks like this:

var vault = Vault.Open("username",
                       "password",
                       new ClientInfo(Platform.Desktop,
                                      "device-id",
                                      "client-description"),
                       null);

foreach (var a in vault.Accounts)
    Console.WriteLine($"{a.Name}: {a.Username} {a.Password} {a.Url}");

This code snippet downloads and decrypts a LastPass vault and prints all the accounts to the standard output. For the fully working example please refer to the examples folder in this repo.

License

The library is released under the MIT license. See LICENSE for details.