summaryrefslogtreecommitdiffstats
path: root/src/userpref.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/userpref.c')
-rw-r--r--src/userpref.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/userpref.c b/src/userpref.c
index 10c14a0..09ec495 100644
--- a/src/userpref.c
+++ b/src/userpref.c
@@ -212,6 +212,30 @@ userpref_error_t userpref_set_device_public_key(const char *uuid, gnutls_datum_t
return USERPREF_E_SUCCESS;
}
+/** Remove the public key stored for the device with uuid from this host.
+ *
+ * @param uuid The uuid of the device
+ *
+ * @return USERPREF_E_SUCCESS on success.
+ */
+userpref_error_t userpref_remove_device_public_key(const char *uuid)
+{
+ if (!userpref_has_device_public_key(uuid))
+ return USERPREF_E_SUCCESS;
+
+ /* build file path */
+ gchar *device_file = g_strconcat(uuid, ".pem", NULL);
+ gchar *pem = g_build_path(G_DIR_SEPARATOR_S, g_get_user_config_dir(), LIBIPHONE_CONF_DIR, device_file, NULL);
+
+ /* remove file */
+ g_remove(pem);
+
+ g_free(pem);
+ g_free(device_file);
+
+ return USERPREF_E_SUCCESS;
+}
+
/** Private function which reads the given file into a gnutls structure.
*
* @param file The filename of the file to read