Commit Graph

544 Commits

Author SHA1 Message Date
Daiki Ueno
a5db34dcd5 secret-value: Add secret_value_unref_to_password
This adds the secret_value_unref_to_password function that
unreferences and returns the stored secret in non-pageable memory.
This is supposed to be used with secret_password_lookup_binary*
functions.
2019-07-18 13:54:12 +00:00
Daiki Ueno
2ae6ec89f4 tests: Add tests for binary variant of secret_{lookup,store} 2019-07-18 13:54:12 +00:00
Daiki Ueno
29c1460fd7 secret-password: Add store_binary functions
This adds a set of functions that takes a SecretValue instead of a
text password when storing a secret.  This is useful if the stored
password is not null-terminated.
2019-07-18 13:54:12 +00:00
Daiki Ueno
bac85c00fc secret-password: Add lookup_binary functions
This adds a set of functions that return a SecretValue instead of a
text password when looking up a secret.  This is useful if the stored
password is not null-terminated.
2019-07-18 13:54:12 +00:00
Daiki Ueno
5fedca8ffc secret-password: Add search functions
This adds a set of functions that expose secret_service_search* from
the simple API.
2019-07-18 13:54:12 +00:00
Daiki Ueno
092d4ef47d secret-item: Implement SecretRetrievableInterface 2019-07-18 13:54:12 +00:00
Daiki Ueno
938640ae52 secret-retrievable: New interface to represent read-only item
This is a ground work for adding a local storage backend.  As
SecretItem is derived from GDBusProxy, it cannot be simply exposed to
the application through the secret_password_search() if the item is
not backed by the DBus API.  This adds an abstract interface
representing a read-only view of a secret item for that purpose.
2019-07-18 13:54:12 +00:00
Daiki Ueno
9a8f49f237 Merge branch 'wip/dueno/disable-assert-tests' into 'master'
tests: undef G_DISABLE_ASSERT

Closes #26

See merge request GNOME/libsecret!33
2019-06-29 05:10:05 +00:00
Daiki Ueno
0be63575ff build: Suppress compiler warning if compiled with G_DISABLE_ASSERT 2019-06-29 06:54:40 +02:00
Daiki Ueno
d17e93e696 tests: undef G_DISABLE_ASSERT
Since GLib 2.58, g_test_init started to be no-op if a test is compiled
with G_DISABLE_ASSERT defined.
2019-06-29 06:54:37 +02:00
Daiki Ueno
0e6b542ff5 secret-version: Remove garbage after #endif 2019-06-17 19:32:48 +02:00
Michael Catanzaro
2b4adfb9f4 Fix -Wunknown-pragmas triggered by secret-version.h
In file included from /usr/include/libsecret-1/libsecret/secret.h:33,
                 from ../lib/sync/../ephy-sync-utils.h:24,
                 from ../lib/sync/ephy-history-manager.c:25:
/usr/include/libsecret-1/libsecret/secret-version.h:19: error: ignoring #pragma __once__  [-Werror=unknown-pragmas]
 #pragma __once__

It should be #pragma once, not #pragma __once__.

But let's follow the other public headers here instead.
2019-06-13 15:00:20 +00:00
Sutou Kouhei
c00283ebd0 Add version macros
Added macros:

  * SECRET_VERSION_MAJOR
  * SECRET_VERSION_MINOR
  * SECRET_VERSION_MICRO
  * SECRET_CHECK_VERSION

These macros are widely defined in GLib based library. For example,
GLib, GTK, poppler GLib and so on define them.

These macros are useful to detect libsecret version on build type and
from GObject Introspection based bindings.
2019-06-09 16:38:39 +02:00
Daiki Ueno
31685e0608 gitlab-ci: Allow pages target to fail 2019-06-09 10:16:50 +02:00
Daiki Ueno
9085c8a6c1 gitlab-ci: Fix the previous change
Don't error out on deploy, if coverage report is not successfully
generated.
2019-06-09 09:08:26 +02:00
Daiki Ueno
5f5e560f0b gitlab-ci: Work around lcov incompatibility with gcc-9 2019-06-09 08:27:23 +02:00
Niels De Graef
61f5569baf Merge branch 'wip/dueno/meson-ci' into 'master'
gitlab-ci: Use meson instead of autotools

See merge request GNOME/libsecret!31
2019-06-05 14:08:12 +00:00
Daiki Ueno
339c19e7ed gitlab-ci: Use meson instead of autotools 2019-06-05 13:57:52 +00:00
Daiki Ueno
b4c909b8bf gitlab-ci: Switch to fedora:28 to fedora:latest 2019-06-05 13:57:52 +00:00
Daiki Ueno
7844baa78e Merge branch 'wip/dueno/madvice' into 'master'
egg: Request that secure memory not be dumped to disk

See merge request GNOME/libsecret!30
2019-06-05 10:51:49 +00:00
Matthew Garrett
fb813abe5c egg: Request that secure memory not be dumped to disk
Linux 3.4 added support for the MADV_DONTDUMP option to madvise(), which
requests that the covered memory not be included in coredumps. It makes
sense to use this to prevent cases where application crashes could
result in secrets being persisted to disk or included in dumps that are
uploaded to remote servers for analysis. I've avoided making this fatal
since there's a chance this code could be built on systems that have
MADV_DONTDUMP but run on systems that don't.
2019-06-02 14:46:54 +02:00
Niels De Graef
529758c153 Update README
Use markdown formatting (which displays more nicely in GitLab now that
we migrated) and give a bit of context to users.
2019-05-26 09:54:59 +02:00
Niels De Graef
d92265370c Include meson.build files in autotools release
Fixes https://gitlab.gnome.org/GNOME/libsecret/issues/25
2019-05-26 09:37:30 +02:00
Niels De Graef
e328e2fd57 doap: Add myself as maintainer
With the approval of Daiki Ueno.
2019-05-26 00:38:26 +02:00
Niels De Graef
7a919d3401 Merge branch 'wip/nielsdg/more-gtask' into 'master'
paths: Port from GSimpleAsyncResult to GTask

See merge request GNOME/libsecret!26
2019-05-19 08:48:36 +00:00
Niels De Graef
1f61ecb911 util: Port from GSimpleAsyncResult to GTask 2019-05-18 20:26:20 +02:00
Niels De Graef
9087c668c7 paths: Port from GSimpleAsyncResult to GTask 2019-05-18 19:02:18 +02:00
Niels De Graef
b87c3913b4 Merge branch 'wip/nielsdg/gtask-secret-service' into 'master'
Port Service and Session to GTask

See merge request GNOME/libsecret!25
2019-05-16 19:56:38 +00:00
Niels De Graef
f165f721d8 Port Service and Session to GTask
GSimpleAsyncResult is deprecated in favor of the simpler GTask, so use
that instead. This cuts down on the deprecation warnings.

I wanted to do both separately, but porting one without the other led to
some faulty casts from GSimpleAsyncResult to GTask (and vice versa).
2019-05-15 18:21:34 +02:00
Daiki Ueno
103ff88f6d Merge branch 'wip/nielsdg/fix-disabled-gcrypt' into 'master'
Fix the meson build on -Dgcrypt=false

Closes #20

See merge request GNOME/libsecret!23
2019-05-13 20:26:44 +00:00
Niels De Graef
f5a1f47f37 Fix the meson build on -Dgcrypt=false
Fixes https://gitlab.gnome.org/GNOME/libsecret/issues/20
2019-05-13 20:17:15 +00:00
Daiki Ueno
afdb92654c Merge branch 'wip/nielsdg/fix-mlock-check-meson' into 'master'
Ensure the Meson build also supports private memory

Closes #23

See merge request GNOME/libsecret!22
2019-05-13 19:53:06 +00:00
Niels De Graef
b7d593784c Ensure the Meson build also supports private memory
The meson build does not check for `mlock()` and define `HAVE_MLOCK`.

Fixes https://gitlab.gnome.org/GNOME/libsecret/issues/23
2019-05-13 19:41:48 +00:00
Daiki Ueno
c4b313b5ed Merge branch 'wip/nielsdg/g-assert' into 'master'
Stop using g_assert() in unit tests

See merge request GNOME/libsecret!21
2019-05-13 19:40:52 +00:00
Niels De Graef
929e5c2a3f Stop using g_assert() in unit tests
Apart from having more developer-friendly messages if the assertions go
wrong, it also prevents the assertions not being run if
`G_DISABLE_ASSERT` is defined (e.g. for performance reasons).
2019-05-12 16:31:37 +02:00
Daiki Ueno
d5becb2aaa Merge branch 'gcrypt-pkgconfig' into 'master'
meson: Check for gcrypt with pkg-config first

See merge request GNOME/libsecret!20
2019-05-11 07:26:44 +00:00
Emmanuele Bassi
4621039c26 meson: Check for gcrypt with pkg-config first
Some distributions patch libgcrypt to provide a pkg-config file, and
disable libgcrypt-config. One of these distributions is Yocto, which we
use as the basis for the GNOME Continuous build environment.

We should check if there's a pkg-config file available for gcrypt, and
use it, falling back to libgcrypt-config if the pkg-config file is not
found.
2019-05-11 07:15:34 +00:00
Daiki Ueno
6736f9f3e5 Merge branch 'collection-enums-prefix' into 'master'
Use proper prefix for SecretCollection flags

See merge request GNOME/libsecret!19
2019-05-11 07:10:04 +00:00
Emmanuele Bassi
15902b70b2 Use proper prefix for SecretCollection flags
Commit f36379af33 added the enumeration
GType for SecretCollectionFlags and SecretCollectionCreateFlags in the
introspection data, but by doing so it broke existing users of the
introspected API.

Additionally, the enumeration nicknames—which are used to generate the
enumeration value from the type name and the namespace—were wrong
before, and are wrong now. The idiomatic way to name enumeration members
is to use the uppercase, snake case version of the type name, and append
the value at the end:

  SecretCollectionFlags → SECRET_COLLECTION_FLAGS_NONE
  SecretCollectionCreateFlags → SECRET_COLLECTION_CREATE_FLAGS_NONE

If this practice is not followed, enumerations should use the
glib-mkenums trigraph and the `prefix` option; this tells glib-mkenums,
and the introspection parser after that, where to cut off the prefix and
which part of the enumeration value should be considered the nickname.

Thus, with `prefix=SECRET_COLLECTION` we can turn:

  SECRET_COLLECTION_NONE

into:

  Secret.CollectionFlags.NONE

which is the idiomatic form of an enumeration value.
2019-05-11 00:15:04 +01:00
Daiki Ueno
64f63a76fe Merge branch 'meson-bump-version' into 'master'
meson: Bump version

See merge request GNOME/libsecret!18
2019-05-07 11:43:35 +00:00
Kouhei Sutou
20329fc3b4 meson: Bump version 2019-05-07 11:28:51 +00:00
Daiki Ueno
fa7a9ed777 Merge branch 'remove-needless-tag' into 'master'
Remove a needless tab

See merge request GNOME/libsecret!17
2019-05-07 11:26:30 +00:00
Kouhei Sutou
65153a2bf4 Remove a needless tab 2019-05-07 11:10:44 +00:00
Daiki Ueno
54606902bc Merge branch 'gir-missing-flags-gtype' into 'master'
Add missing GType to flags in .gir

See merge request GNOME/libsecret!16
2019-05-07 11:10:00 +00:00
Kouhei Sutou
f36379af33 Add missing GType to flags in .gir
Here is a sample diff by this change:

    --- Secret-1.gir.before	2019-05-07 15:20:58.252288010 +0900
    +++ Secret-1.gir.after	2019-05-07 15:26:54.314413832 +0900
    @@ -1141,22 +1140,32 @@
           </field>
         </record>
         <bitfield name="CollectionCreateFlags"
    +              glib:type-name="SecretCollectionCreateFlags"
    +              glib:get-type="secret_collection_create_flags_get_type"
                   c:type="SecretCollectionCreateFlags">
           <doc xml:space="preserve">Flags for secret_collection_create().</doc>
    -      <member name="collection_create_none"
    +      <member name="none"
                   value="0"
    -              c:identifier="SECRET_COLLECTION_CREATE_NONE">
    +              c:identifier="SECRET_COLLECTION_CREATE_NONE"
    +              glib:nick="none">
             <doc xml:space="preserve">no flags</doc>
           </member>
         </bitfield>

Other flags such as SecretServiceFlags also have GType in .gir.
2019-05-07 15:27:21 +09:00
Daiki Ueno
b5442654d4 Release 0.18.8 2019-03-02 07:55:06 +01:00
Niels De Graef
c8cbc2564f Merge branch 'wip/dueno/vapi-fixes' into 'master'
secret-paths: Add (nullable) if allowed.

See merge request GNOME/libsecret!15
2019-03-01 09:57:54 +00:00
Niels De Graef
6658602b6b secret-paths: Add (nullable) if allowed.
This caused segfaults in Seahorse when someone canceled the "Change
Password" dialog for a keyring.

Related to GNOME/seahorse#204
2019-03-01 10:02:05 +01:00
Rico Tzschichholz
50c1d717ca meson: Pass correct header to generate_gir to fix broken vapi 2019-01-25 22:08:37 +01:00
Rico Tzschichholz
8bf566f265 Drop accidentially committed .dirstamp
See b19c309096
2019-01-25 21:59:04 +01:00