repo: secret-tools
action: commit
revision: 
path_from: 
revision_from: 872c98983e8b3134986f7c05fcb651730951c566:
path_to: 
revision_to: 
git.thebackupbox.net
secret-tools
git clone git://git.thebackupbox.net/secret-tools
commit 872c98983e8b3134986f7c05fcb651730951c566
Author: epoch 
Date:   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-----