The SECRET_SCHEMA_* extern structs are not introspectable; add a new
accessor function which takes an enum and returns a struct, which is
introspectable.
Mark the old extern structs as (skip), but don’t deprecate them because
they’re still useful from C (if unconventional).
Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://bugzilla.gnome.org/show_bug.cgi?id=697681
Add secret_service_encode_dbus_secret() and
secret_service_decode_dbus_secret() functions for encoding
and decoding the Secret Service API DBus structs that carry
secrets on the wire.
These are not added to the stable or scripting APIs.
Allow parallel building and testing by using a single Makefile.am
Implement parallel testing using TAP, with various drivers and
compilers living in the build/ directory.
Fix all sorts of issues that this caused, including builddir != srcdir,
leaks in tests and so on.
It would have been nice to break out all the above into separate
commits ... blush.
The _new() suffix confuses vala and gobject introspection thinking
that it's a constructor, and there's no way to tell it otherwise. And
things really get messy because they're async functions.
So while we're still unstable, rename these functions to
secret_service_open() secret_service_open_sync() and
secret_service_open_finish().
This is an API/API break, but its to the portion of the library
marked as unstable. Only used by seahorse (in jhbuild) and updated
usage there.
* It's clearer what happens here: we try to remove as many matching
passwords as possible.
* Also rename secret_service_remove() to secret_service_clear()
* Rename secret_password_clear() which used to wipe password memory
to secret_password_wipe().
* Death by a thousand paper cuts from gir and vapi not liking
the fact that the secret.h file was not usable uninstalled
and installed in the same way.
* They all contain '_dbus_path' in their name
* Move secret_service_get_session_path() to the paths functionality
* Move the secret_collection_new() and secret_item_new() functionality
to the path based section.
* And flags to prevent loading of items when creating a
SecretCollection object
* Rename secret_service_ensure_collections() to
secret_service_load_collections()
* Turn secret_service_search() and friends into a more convenient
API, so that callers can get attributes, unlocking, and secrets
if so desired.
* Also support retrieving either one secret, or all of them.
* The SecretService methods aren't used as frequently as the
password methods, and it's not really necessary to have a whole
bunch of extra varargs functions.
* Add varargs functions for building a GHashTable of attributes
* Rename secret_schema_new to secret_schema_newv which
accepts a GHashTable
* Make secret_schema_new accept varargs similar to the
password functions.
* This is useful from vala which supports varargs
* Handled entirely on the client side.
* Schema names are stored in an xdg:schema attribute
* Add option to turn of matching on schema names. So that we can
lookup items stored by libgnome-keyring and others
* Change schema 'identifier' to 'name'
* Fix up tests
* Schemas can also be created dynamically
* Correct introspection types for hash tables passed as args
* Validate argument hash tables
* Add some predefined schemas
* Allow allocation of pageable passwords from lookup functions