diff options
author | Kyungwook Tak <k.tak@samsung.com> | 2016-07-27 16:54:50 +0900 |
---|---|---|
committer | kyungwook tak <k.tak@samsung.com> | 2016-08-02 21:45:45 -0700 |
commit | cc76acebe224f4b8a273752b2400190ab0aab679 (patch) | |
tree | 9f131a30f794d8a11174a3ef06c18c91976a8bd6 /srcs/web_app_enc.c | |
parent | a025df2ca4ae9a4e13b5b803674da4dd1bd133e9 (diff) | |
download | libwebappenc-cc76acebe224f4b8a273752b2400190ab0aab679.tar.gz libwebappenc-cc76acebe224f4b8a273752b2400190ab0aab679.tar.bz2 libwebappenc-cc76acebe224f4b8a273752b2400190ab0aab679.zip |
[API changed] Add uid parametersubmit/tizen/20160811.013634
Installer will be run as system (from user) so we cannot retrieve user
id from client credential(by key-manager).
Change-Id: I1e091bfc0b88fce418cd209a7a1adab021b6c0d2
Signed-off-by: Kyungwook Tak <k.tak@samsung.com>
Diffstat (limited to 'srcs/web_app_enc.c')
-rw-r--r-- | srcs/web_app_enc.c | 70 |
1 files changed, 50 insertions, 20 deletions
diff --git a/srcs/web_app_enc.c b/srcs/web_app_enc.c index 22da420..5846105 100644 --- a/srcs/web_app_enc.c +++ b/srcs/web_app_enc.c @@ -30,7 +30,7 @@ #include "wae_log.h" int _wae_encrypt_downloaded_web_application( - const char *pkg_id, wae_app_type_e app_type, + uid_t uid, const char *pkg_id, wae_app_type_e app_type, const unsigned char *data, size_t data_len, unsigned char **pencrypted_data, size_t *pencrypted_data_len) { @@ -39,10 +39,10 @@ int _wae_encrypt_downloaded_web_application( return WAE_ERROR_INVALID_PARAMETER; const crypto_element_s *e = NULL; - int ret = get_app_ce(pkg_id, app_type, false, &e); + int ret = get_app_ce(uid, pkg_id, app_type, false, &e); if (ret == WAE_ERROR_NO_KEY) - ret = create_app_ce(pkg_id, app_type, &e); + ret = create_app_ce(uid, pkg_id, app_type, &e); if (ret != WAE_ERROR_NONE) return ret; @@ -64,7 +64,8 @@ int _wae_encrypt_downloaded_web_application( return WAE_ERROR_NONE; } -int _wae_decrypt_downloaded_web_application(const char *pkg_id, wae_app_type_e app_type, +int _wae_decrypt_downloaded_web_application( + uid_t uid, const char *pkg_id, wae_app_type_e app_type, const unsigned char *data, size_t data_len, unsigned char **pdecrypted_data, size_t *pdecrypted_data_len) { @@ -77,7 +78,7 @@ int _wae_decrypt_downloaded_web_application(const char *pkg_id, wae_app_type_e a _data.size = data_len; const crypto_element_s *ce = NULL; - int ret = get_app_ce(pkg_id, app_type, true, &ce); + int ret = get_app_ce(uid, pkg_id, app_type, true, &ce); if (ret != WAE_ERROR_NONE) return ret; @@ -134,40 +135,69 @@ int _wae_encrypt_preloaded_web_application(const char *pkg_id, return WAE_ERROR_NONE; } -int _wae_decrypt_preloaded_web_application(const char *pkg_id, wae_app_type_e app_type, +int _wae_decrypt_preloaded_web_application(const char *pkg_id, const unsigned char *data, size_t data_len, unsigned char **pdecrypted_data, size_t *pdecrypted_data_len) { // same with the decryption of downloaded web application - return _wae_decrypt_downloaded_web_application(pkg_id, app_type, + return _wae_decrypt_downloaded_web_application(0, pkg_id, WAE_PRELOADED_APP, data, data_len, pdecrypted_data, pdecrypted_data_len); } -int wae_encrypt_web_application(const char *pkg_id, wae_app_type_e app_type, - const unsigned char *data, size_t data_len, - unsigned char **pencrypted_data, size_t *pencrypted_data_len) +int wae_encrypt_web_application( + uid_t uid, const char *pkg_id, + const unsigned char *data, size_t data_len, + unsigned char **pencrypted_data, size_t *pencrypted_data_len) { - if (app_type == WAE_PRELOADED_APP) + return _wae_encrypt_downloaded_web_application( + uid, pkg_id, WAE_DOWNLOADED_NORMAL_APP, + data, data_len, pencrypted_data, pencrypted_data_len); +} + +int wae_encrypt_global_web_application( + const char *pkg_id, bool is_preloaded, + const unsigned char *data, size_t data_len, + unsigned char **pencrypted_data, size_t *pencrypted_data_len) +{ + if (is_preloaded) return _wae_encrypt_preloaded_web_application(pkg_id, data, data_len, pencrypted_data, pencrypted_data_len); else - return _wae_encrypt_downloaded_web_application(pkg_id, app_type, + return _wae_encrypt_downloaded_web_application( + 0, pkg_id, WAE_DOWNLOADED_GLOBAL_APP, data, data_len, pencrypted_data, pencrypted_data_len); } -int wae_decrypt_web_application(const char *pkg_id, wae_app_type_e app_type, - const unsigned char *data, size_t data_len, - unsigned char **pdecrypted_data, size_t *pdecrypted_data_len) +int wae_decrypt_web_application( + uid_t uid, const char *pkg_id, + const unsigned char *data, size_t data_len, + unsigned char **pdecrypted_data, size_t *pdecrypted_data_len) +{ + return _wae_decrypt_downloaded_web_application( + uid, pkg_id, WAE_DOWNLOADED_NORMAL_APP, + data, data_len, pdecrypted_data, pdecrypted_data_len); +} + +int wae_decrypt_global_web_application( + const char *pkg_id, bool is_preloaded, + const unsigned char *data, size_t data_len, + unsigned char **pdecrypted_data, size_t *pdecrypted_data_len) { - if (app_type == WAE_PRELOADED_APP) - return _wae_decrypt_preloaded_web_application(pkg_id, app_type, + if (is_preloaded) + return _wae_decrypt_preloaded_web_application(pkg_id, data, data_len, pdecrypted_data, pdecrypted_data_len); else - return _wae_decrypt_downloaded_web_application(pkg_id, app_type, + return _wae_decrypt_downloaded_web_application( + 0, pkg_id, WAE_DOWNLOADED_GLOBAL_APP, data, data_len, pdecrypted_data, pdecrypted_data_len); } -int wae_remove_app_dek(const char *pkg_id, wae_app_type_e app_type) +int wae_remove_app_dek(uid_t uid, const char *pkg_id) +{ + return remove_app_ce(uid, pkg_id, WAE_DOWNLOADED_NORMAL_APP); +} + +int wae_remove_global_app_dek(const char *pkg_id, bool is_preloaded) { - return remove_app_ce(pkg_id, app_type); + return remove_app_ce(0, pkg_id, is_preloaded ? WAE_PRELOADED_APP : WAE_DOWNLOADED_GLOBAL_APP); } |