89 lines
2.6 KiB
Go
89 lines
2.6 KiB
Go
package libsecret
|
|
|
|
import (
|
|
`github.com/godbus/dbus`
|
|
)
|
|
|
|
// DBusObject is any type that has a Path method that returns a dbus.ObjectPath.
|
|
type DBusObject interface {
|
|
Path() dbus.ObjectPath
|
|
}
|
|
|
|
/*
|
|
Collection is an accessor for libsecret collections, which contain multiple Secret Item items.
|
|
Reference:
|
|
https://developer-old.gnome.org/libsecret/0.18/SecretCollection.html
|
|
https://specifications.freedesktop.org/secret-service/latest/ch03.html
|
|
*/
|
|
type Collection struct {
|
|
// Conn is an active connection to the Dbus.
|
|
Conn *dbus.Conn
|
|
// Dbus is the Dbus bus object.
|
|
Dbus dbus.BusObject
|
|
}
|
|
|
|
/*
|
|
Item is an entry in a Collection that contains a Secret.
|
|
https://developer-old.gnome.org/libsecret/0.18/SecretItem.html
|
|
https://specifications.freedesktop.org/secret-service/latest/re03.html
|
|
*/
|
|
type Item struct {
|
|
// Conn is an active connection to the Dbus.
|
|
Conn *dbus.Conn
|
|
// Dbus is the Dbus bus object.
|
|
Dbus dbus.BusObject
|
|
}
|
|
|
|
/*
|
|
Prompt is an interface to handling unlocking prompts.
|
|
https://developer-old.gnome.org/libsecret/0.18/SecretPrompt.html
|
|
https://specifications.freedesktop.org/secret-service/latest/ch09.html
|
|
*/
|
|
type Prompt struct {
|
|
// Conn is an active connection to the Dbus.
|
|
Conn *dbus.Conn
|
|
// Dbus is the Dbus bus object.
|
|
Dbus dbus.BusObject
|
|
}
|
|
|
|
/*
|
|
Secret is the "Good Stuff" - the actual secret content.
|
|
https://developer-old.gnome.org/libsecret/0.18/SecretValue.html
|
|
https://specifications.freedesktop.org/secret-service/latest/re03.html
|
|
https://specifications.freedesktop.org/secret-service/latest/ch14.html#type-Secret
|
|
*/
|
|
type Secret struct {
|
|
// Session is a Dbus object path for the associated Session.
|
|
Session dbus.ObjectPath
|
|
// Parameters are "algorithm dependent parameters for secret value encoding" - likely this will just be an empty byteslice.
|
|
Parameters []byte
|
|
// Value is the secret's content in []byte format.
|
|
Value []byte
|
|
// ContentType is the MIME type of Value.
|
|
ContentType string
|
|
}
|
|
|
|
/*
|
|
Service is a general SecretService interface, sort of handler for Dbus - it's used for fetching a Session, Collections, etc.
|
|
https://developer-old.gnome.org/libsecret/0.18/SecretService.html
|
|
https://specifications.freedesktop.org/secret-service/latest/re01.html
|
|
*/
|
|
type Service struct {
|
|
// Conn is an active connection to the Dbus.
|
|
Conn *dbus.Conn
|
|
// Dbus is the Dbus bus object.
|
|
Dbus dbus.BusObject
|
|
}
|
|
|
|
/*
|
|
Session is a session/instance/connection to SecretService.
|
|
https://developer-old.gnome.org/libsecret/0.18/SecretService.html
|
|
https://specifications.freedesktop.org/secret-service/latest/ch06.html
|
|
*/
|
|
type Session struct {
|
|
// Conn is an active connection to the Dbus.
|
|
Conn *dbus.Conn
|
|
// Dbus is the Dbus bus object.
|
|
Dbus dbus.BusObject
|
|
}
|