repo: secret-tools action: commit revision: path_from: revision_from: 872c98983e8b3134986f7c05fcb651730951c566: path_to: revision_to:
commit 872c98983e8b3134986f7c05fcb651730951c566 Author: epochDate: Sat Dec 5 09:39:08 2020 -0600 . diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..a6eea82ead336fcbd4b21c8ed99e73183a3030cf --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +secret-check +secret-lock +secret-unlock diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..bd717b7ea0d7e62fff83909c37a6ce9fe32cf5b3 --- /dev/null +++ b/Makefile @@ -0,0 +1,19 @@ +# You'll probably have to change these. +CFLAGS=-Wall $(shell pkg-config --cflags libsecret-1) +LDLIBS=$(shell pkg-config --libs libsecret-1) + +PREFIX:=/usr/local + +.PHONY: all clean + +all: secret-unlock secret-lock secret-check + +clean: + rm secret-unlock + rm secret-lock + rm secret-check + +install: + install -t $(PREFIX)/bin secret-lock + install -t $(PREFIX)/bin secret-unlock + install -t $(PREFIX)/bin secret-check diff --git a/secret-check.c b/secret-check.c new file mode 100644 index 0000000000000000000000000000000000000000..6cbe2e3bf542f85de9c7b9a6d50424b575a43825 --- /dev/null +++ b/secret-check.c @@ -0,0 +1,36 @@ +#include +#include + +int main(int argc,char *argv[]) { + GError *error = NULL; + SecretService *secretservice; + SecretCollection* defaultcollection; + secretservice = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS, NULL, &error); + if(error) { + printf("Error: %s\n",error->message); + return 1; + } + if(secretservice == NULL) { + printf("Error: unknown\n"); + return 2; + } + + defaultcollection = secret_collection_for_alias_sync(secretservice, SECRET_COLLECTION_DEFAULT, SECRET_COLLECTION_NONE, NULL, &error); + if(error) { + printf("Error: %s\n",error->message); + return 3; + } + if(defaultcollection == NULL) { + printf("Error: unknown\n"); + return 4; + } + + if(secret_collection_get_locked(defaultcollection)) { + printf("locked\n"); + } else { + printf("unlocked\n"); + return 5; + } + return 0; +} + diff --git a/secret-lock.c b/secret-lock.c new file mode 100644 index 0000000000000000000000000000000000000000..3168a58a2273f3011d65a44d4a130bcefa493718 --- /dev/null +++ b/secret-lock.c @@ -0,0 +1,42 @@ +#include +#include + +int main(int argc,char *argv[]) { + GError *error = NULL; + SecretService *secretservice; + SecretCollection* defaultcollection; + GList *objects, *ul; + gint lock_result; + secretservice = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS, NULL, &error); + if(error) { + printf("Error: %s\n",error->message); + return 1; + } + if(secretservice == NULL) { + printf("Error: unknown\n"); + return 2; + } + + defaultcollection = secret_collection_for_alias_sync(secretservice, SECRET_COLLECTION_DEFAULT, SECRET_COLLECTION_NONE, NULL, &error); + if(error) { + printf("Error: %s\n",error->message); + return 3; + } + if(defaultcollection == NULL) { + printf("Error: unknown\n"); + return 4; + } + + if(!secret_collection_get_locked(defaultcollection)) { + objects = g_list_append(NULL, defaultcollection); + lock_result = secret_service_lock_sync(secretservice,objects,NULL,&ul,&error); + if (lock_result) { + printf("Successfully unlocked %d things\n",lock_result); + } else { + printf("Error unlocking keyring: %s\n", error->message);//, secret_service_result_to_message(lock_result)); + return 5; + } + } + return 0; +} + diff --git a/secret-unlock.c b/secret-unlock.c new file mode 100644 index 0000000000000000000000000000000000000000..7066c4e2d47923a2512856dd72865122c0587a2d --- /dev/null +++ b/secret-unlock.c @@ -0,0 +1,42 @@ +#include +#include + +int main(int argc,char *argv[]) { + GError *error = NULL; + SecretService *secretservice; + SecretCollection* defaultcollection; + GList *objects, *ul; + gint lock_result; + secretservice = secret_service_get_sync(SECRET_SERVICE_LOAD_COLLECTIONS, NULL, &error); + if(error) { + printf("Error: %s\n",error->message); + return 1; + } + if(secretservice == NULL) { + printf("Error: unknown\n"); + return 2; + } + + defaultcollection = secret_collection_for_alias_sync(secretservice, SECRET_COLLECTION_DEFAULT, SECRET_COLLECTION_NONE, NULL, &error); + if(error) { + printf("Error: %s\n",error->message); + return 3; + } + if(defaultcollection == NULL) { + printf("Error: unknown\n"); + return 4; + } + + if(secret_collection_get_locked(defaultcollection)) { + objects = g_list_append(NULL, defaultcollection); + lock_result = secret_service_unlock_sync(secretservice,objects,NULL,&ul,&error); + if (lock_result) { + printf("Successfully unlocked %d things\n",lock_result); + } else { + printf("Error unlocking keyring: %s\n", error->message); + return 5; + } + } + return 0; +} +
-----END OF PAGE-----