diff options
author | Kyungwook Tak <k.tak@samsung.com> | 2016-07-21 16:46:00 +0900 |
---|---|---|
committer | Kyungwook Tak <k.tak@samsung.com> | 2016-07-26 15:51:15 +0900 |
commit | d6da3e3d9bc29e22103b094bee5ca68f5d8f0f61 (patch) | |
tree | 6439a58283180d86c72f4c30413d55be728f6dd4 /srcs/key_handler.h | |
parent | 6818b8559b7d4d45adaeb1937d708a154dc00fd7 (diff) | |
download | libwebappenc-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.h | 38 |
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 } |