diff -r 3e55bed345f9 -r a95ee94b9204 libidav/webdav.h --- a/libidav/webdav.h Sat Sep 07 14:08:43 2013 +0200 +++ b/libidav/webdav.h Mon Mar 17 18:42:01 2014 +0100 @@ -48,6 +48,7 @@ typedef struct DavRequest DavRequest; typedef struct DavNamespace DavNamespace; typedef struct DavProperty DavProperty; +typedef struct DavKey DavKey; #include "davql.h" @@ -66,6 +67,11 @@ typedef enum DavError DavError; +#define DAV_SESSION_ENCRYPT_FILE 0x0001 +#define DAV_SESSION_ENCRYPT_NAME 0x0002 +#define DAV_SESSION_DECRYPT_PATH 0x0004 + + struct DavNamespace { char *prefix; char *name; @@ -93,7 +99,7 @@ CURL *handle; char *base_url; UcxMempool *mp; - UcxAllocator *allocator; + DavKey *key; uint32_t flags; DavError error; const char *errorstr; @@ -101,6 +107,7 @@ struct DavContext { UcxMap *namespaces; + UcxMap *keys; UcxList *sessions; DavProxy *http_proxy; DavProxy *https_proxy; @@ -119,8 +126,23 @@ char *value; }; +#define DAV_KEY_AES128 0 +#define DAV_KEY_AES256 1 +#define DAV_KEY_PASSWORD 2 + +struct DavKey { + char *name; + int type; + void *data; + size_t length; +}; + DavContext* dav_context_new(); void dav_context_destroy(DavContext *ctx); + +void dav_context_add_key(DavContext *context, DavKey *key); +DavKey* dav_context_get_key(DavContext *context, char *name); + int dav_add_namespace(DavContext *context, char *prefix, char *ns); DavNamespace* dav_get_namespace(DavContext *context, char *prefix); @@ -142,7 +164,8 @@ DavResource* dav_get(DavSession *sn, char *path, char *properties); -DavResource* dav_get2(DavSession *sn, DavGetQuery *query); + +DavResource* dav_query_get(DavSession *sn, DavGetQuery *query); UcxList* parse_properties_string(DavContext *context, sstr_t str);