Conceptually, libgnome-keyring and libsecret are fairly similar. Both have keyrings, items, and ways to store and retrieve passwords. In both cases items have attributes. The keys and values of attributes are used to lookup a password that was stored.
There is a simple password API for storing and retrieving passwords which is the easiest and recommended way to store passwords. And then there is a more complicated API which models all the various collections and items, along with all the possible actions that can be performed on them.
libsecret uses the Secret Service DBus API to communicate with gnome-keyring-daemon, and as such exposes features based on that DBus API.
libsecret has been designed to be threadsafe, and uses the 'GDBus' code in gio to accomplish this.
Keyrings are called 'collections' in libsecret.
See the relevant section for specifics about how to port the libgnome-keyring functions or symbols in your project.