summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Martin Szulecki2010-01-08 14:19:58 +0100
committerGravatar Martin Szulecki2010-01-08 14:19:58 +0100
commit0e8a77deea7b91de50c0d5ef29eb6c088d4abd37 (patch)
tree9fa8bc3595f3db77c74693809c7919bbeb019484
parent43a2ba7bbb57365c0d51e4a958605937d215e668 (diff)
downloadlibimobiledevice-0e8a77deea7b91de50c0d5ef29eb6c088d4abd37.tar.gz
libimobiledevice-0e8a77deea7b91de50c0d5ef29eb6c088d4abd37.tar.bz2
Add userpref helper to allow removal of the stored device public key
-rw-r--r--src/userpref.c24
-rw-r--r--src/userpref.h1
2 files changed, 25 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
212 return USERPREF_E_SUCCESS; 212 return USERPREF_E_SUCCESS;
213} 213}
214 214
215/** Remove the public key stored for the device with uuid from this host.
216 *
217 * @param uuid The uuid of the device
218 *
219 * @return USERPREF_E_SUCCESS on success.
220 */
221userpref_error_t userpref_remove_device_public_key(const char *uuid)
222{
223 if (!userpref_has_device_public_key(uuid))
224 return USERPREF_E_SUCCESS;
225
226 /* build file path */
227 gchar *device_file = g_strconcat(uuid, ".pem", NULL);
228 gchar *pem = g_build_path(G_DIR_SEPARATOR_S, g_get_user_config_dir(), LIBIPHONE_CONF_DIR, device_file, NULL);
229
230 /* remove file */
231 g_remove(pem);
232
233 g_free(pem);
234 g_free(device_file);
235
236 return USERPREF_E_SUCCESS;
237}
238
215/** Private function which reads the given file into a gnutls structure. 239/** Private function which reads the given file into a gnutls structure.
216 * 240 *
217 * @param file The filename of the file to read 241 * @param file The filename of the file to read
diff --git a/src/userpref.h b/src/userpref.h
index 3540468..48b8969 100644
--- a/src/userpref.h
+++ b/src/userpref.h
@@ -38,6 +38,7 @@ G_GNUC_INTERNAL userpref_error_t userpref_get_keys_and_certs(gnutls_x509_privkey
38G_GNUC_INTERNAL userpref_error_t userpref_set_keys_and_certs(gnutls_datum_t * root_key, gnutls_datum_t * root_cert, gnutls_datum_t * host_key, gnutls_datum_t * host_cert); 38G_GNUC_INTERNAL userpref_error_t userpref_set_keys_and_certs(gnutls_datum_t * root_key, gnutls_datum_t * root_cert, gnutls_datum_t * host_key, gnutls_datum_t * host_cert);
39G_GNUC_INTERNAL userpref_error_t userpref_get_certs_as_pem(gnutls_datum_t *pem_root_cert, gnutls_datum_t *pem_host_cert); 39G_GNUC_INTERNAL userpref_error_t userpref_get_certs_as_pem(gnutls_datum_t *pem_root_cert, gnutls_datum_t *pem_host_cert);
40G_GNUC_INTERNAL userpref_error_t userpref_set_device_public_key(const char *uuid, gnutls_datum_t public_key); 40G_GNUC_INTERNAL userpref_error_t userpref_set_device_public_key(const char *uuid, gnutls_datum_t public_key);
41G_GNUC_INTERNAL userpref_error_t userpref_remove_device_public_key(const char *uuid);
41G_GNUC_INTERNAL int userpref_has_device_public_key(const char *uuid); 42G_GNUC_INTERNAL int userpref_has_device_public_key(const char *uuid);
42G_GNUC_INTERNAL void userpref_get_host_id(char **host_id); 43G_GNUC_INTERNAL void userpref_get_host_id(char **host_id);
43 44