summaryrefslogtreecommitdiff
path: root/auth/examples/simple_example.c
diff options
context:
space:
mode:
Diffstat (limited to 'auth/examples/simple_example.c')
-rw-r--r--auth/examples/simple_example.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/auth/examples/simple_example.c b/auth/examples/simple_example.c
new file mode 100644
index 0000000..d00bad2
--- /dev/null
+++ b/auth/examples/simple_example.c
@@ -0,0 +1,31 @@
+#include <bsd/readpassphrase.h>
+
+#include "astal-auth.h"
+
+GMainLoop *loop;
+
+void ready_callback(AstalAuthPam *pam, GAsyncResult *res, gpointer user_data) {
+ GError *error = NULL;
+ astal_auth_pam_authenticate_finish(res, &error);
+ if (error == NULL) {
+ g_print("success\n");
+ } else {
+ g_print("failure: %s\n", error->message);
+ g_error_free(error);
+ }
+
+ g_main_loop_quit(loop);
+}
+
+int main(void) {
+ GMainContext *loopctx = NULL;
+ loop = g_main_loop_new(loopctx, FALSE);
+
+ gchar *passbuf = calloc(1024, sizeof(gchar));
+ readpassphrase("Password: ", passbuf, 1024, RPP_ECHO_OFF);
+ astal_auth_pam_authenticate(passbuf, (GAsyncReadyCallback)ready_callback, NULL);
+ g_free(passbuf);
+
+ g_main_loop_run(loop);
+ exit(EXIT_SUCCESS);
+}