aboutsummaryrefslogtreecommitdiff
path: root/service_provider.h
diff options
context:
space:
mode:
Diffstat (limited to 'service_provider.h')
-rw-r--r--service_provider.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/service_provider.h b/service_provider.h
index f5fd4bc..1150dad 100644
--- a/service_provider.h
+++ b/service_provider.h
@@ -35,6 +35,7 @@ struct user_request {
enum { USERREQ_NONE = 0, CREATE_FILE, MODIFY_FILE, MODIFY_ACL, RETRIEVE_INFO, RETRIEVE_FILE } type;
uint64_t user_id;
union {
+ uint64_t file_idx;
struct {
uint64_t file_idx;
/* ACL IOMT will follow */
@@ -57,8 +58,8 @@ struct user_request {
/* same structure for retrieve file and retrieve info */
uint64_t file_idx, version;
/* service will respond with either version_info struct,
- * plus HMAC, or file contents and key (which the client
- * can verify themselves) */
+ * the serialized ACL, and an HMAC, or file contents and
+ * key (which the client can verify themselves) */
} retrieve;
};
} __attribute__((packed));
@@ -110,7 +111,8 @@ struct tm_request sp_modifyfile(struct service_provider *sp,
struct version_info sp_fileinfo(struct service_provider *sp,
uint64_t user_id, uint64_t file_idx,
uint64_t version,
- hash_t *hmac);
+ hash_t *hmac,
+ struct iomt **acl_out);
/* Again, version=0 selects the latest version. */
void *sp_retrieve_file(struct service_provider *sp,
@@ -118,6 +120,7 @@ void *sp_retrieve_file(struct service_provider *sp,
uint64_t file_idx,
uint64_t version,
hash_t *encrypted_secret,
+ hash_t *kf,
struct iomt **buildcode,
struct iomt **composefile,
size_t *len);