summaryrefslogtreecommitdiff
path: root/srcs/key_handler.h
diff options
context:
space:
mode:
authorKyungwook Tak <k.tak@samsung.com>2016-07-21 16:46:00 +0900
committerKyungwook Tak <k.tak@samsung.com>2016-07-26 15:51:15 +0900
commitd6da3e3d9bc29e22103b094bee5ca68f5d8f0f61 (patch)
tree6439a58283180d86c72f4c30413d55be728f6dd4 /srcs/key_handler.h
parent6818b8559b7d4d45adaeb1937d708a154dc00fd7 (diff)
downloadlibwebappenc-d6da3e3d9bc29e22103b094bee5ca68f5d8f0f61.tar.gz
libwebappenc-d6da3e3d9bc29e22103b094bee5ca68f5d8f0f61.tar.bz2
libwebappenc-d6da3e3d9bc29e22103b094bee5ca68f5d8f0f61.zip
Add data structures
For migrated web app, we need to more fields in cache e.g., IV and is_migrated flag to handle it separately. Because cipher algorithm, iv and key size could be different between old secure storage, it depends on product implementation. So this architecture needs more flexibility. A lot of code changed because of the principle data structure is added from the bottom. Change-Id: Id6a10b9f707f4da25016dd928ab4049be619a610 Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
Diffstat (limited to 'srcs/key_handler.h')
-rw-r--r--srcs/key_handler.h38
1 files changed, 13 insertions, 25 deletions
diff --git a/srcs/key_handler.h b/srcs/key_handler.h
index c2e65a7..e64d81c 100644
--- a/srcs/key_handler.h
+++ b/srcs/key_handler.h
@@ -28,40 +28,28 @@ extern "C" {
#include <stdbool.h>
#include <stddef.h>
+
#include "web_app_enc.h"
+#include "types.h"
#define MAX_PATH_LEN 512
/* functions with "_" prefix are internal static functions but declared here for testing */
-void _initialize_cache();
-const unsigned char *_get_app_dek_from_cache(const char *pkg_id);
-void _add_app_dek_to_cache(const char *pkg_id, const unsigned char *dek);
-void _remove_app_dek_from_cache(const char *pkg_id);
-int _get_random(size_t length, unsigned char *random);
-void _get_alias(const char *pkg_id, wae_app_type_e app_type, bool forSave, char *alias, size_t buff_len);
-void _get_dek_kek_alias(char *alias, size_t buff_len);
-void _get_dek_loading_done_alias(char *alias, size_t buff_len);
-const char *_get_dek_kek_pub_key_path();
-const char *_get_dek_kek_pri_key_path();
-const char *_get_dek_store_path();
-int _add_dek_to_key_manager(const char *pkg_id, wae_app_type_e app_type, const unsigned char *dek, size_t dek_len);
+void _remove_app_ce_from_cache(const char *pkg_id);
+int _get_random(raw_buffer_s *rb);
int _get_preloaded_app_dek_file_path(const char *pkg_id, size_t size, char *path);
-int _extract_pkg_id_from_file_name(const char *file_name, char *pkg_id);
-int _read_encrypted_app_dek_from_file(const char *pkg_id, unsigned char **pencrypted_app_dek, size_t *pencrypted_app_dek_len);
-int _write_encrypted_app_dek_to_file(const char *pkg_id, const unsigned char *encrypted_app_dek, size_t encrypted_app_dek_len);
-int _read_from_file(const char *path, unsigned char **pdata, size_t *pdata_len);
-int _write_to_file(const char *path, const unsigned char *data, size_t data_len);
-int _get_app_deks_loaded();
-int _set_app_deks_loaded();
-int _clear_app_deks_loaded();
+int _read_encrypted_app_dek_from_file(const char *pkg_id, raw_buffer_s **pencrypted);
+int _write_encrypted_app_dek_to_file(const char *pkg_id, const raw_buffer_s *encrypted);
/* functions for interface */
-int get_app_dek(const char *pkg_id, wae_app_type_e app_type, unsigned char **pdek, size_t *pdek_len);
-int create_app_dek(const char *pkg_id, wae_app_type_e app_type, unsigned char **pdek, size_t *pdek_len);
-int get_preloaded_app_dek(const char *pkg_id, unsigned char **pdek, size_t *pdek_len);
-int create_preloaded_app_dek(const char *pkg_id, unsigned char **pdek, size_t *pdek_len);
+int get_app_ce(const char *pkg_id, wae_app_type_e app_type, bool create_for_migrated_app,
+ const crypto_element_s **pce);
+int create_app_ce(const char *pkg_id, wae_app_type_e app_type,
+ const crypto_element_s **pce);
+int get_preloaded_app_ce(const char *pkg_id, const crypto_element_s **pce);
+int create_preloaded_app_ce(const char *pkg_id, const crypto_element_s **pce);
int load_preloaded_app_deks(bool reload);
-int remove_app_dek(const char *pkg_id, wae_app_type_e app_type);
+int remove_app_ce(const char *pkg_id, wae_app_type_e app_type);
#ifdef __cplusplus
}