Like other projects in GNOME, libsecret also has an open project for Outreachy internship: Create a portable library for reading/writing libsecret keyring format.
libsecret is a library that allows applications to store/retrieve user secrets (typically passwords). While it usually works as a client against a separate D-Bus service, it can also use a local file as database. The project is about refactoring the file database so it can easily gain more advanced features like hardware-based security, etc. That might sound intimidating as it touches cryptography, but don’t worry and reach out to us if you are interested 🙂
Update: we didn’t get applicants in this round, but the project is still open until someone will step up to implement it. Here is the details from the proposal:
libsecret is a library that allows applications to store and retrieve user secrets, widely used by GNOME and other desktop applications. While it works as a client of the D-Bus service, it has recently gained support for storing secrets in a local file for constrained applications. The current implementation, however, has a few shortcomings:
- it is tied to the specific crypto library (libgcrypt)
- it cannot be easily used by other projects, such as GNOME Keyring
- no versioning / migration support from other keyring formats
The objective of this project is to revamp the implementation in a modular design, allowing multiple crypto libraries (OpenSSL, GnuTLS, etc) to be used as backend, making the reader/writer code standalone, and adding proper support for data migration.
The resulting library shall be embedded as a git submodule in libsecret and linked as a static library, in a way akin to the GVDB library.