diff options
Diffstat (limited to 'include/web_app_enc.h')
-rw-r--r-- | include/web_app_enc.h | 109 |
1 files changed, 88 insertions, 21 deletions
diff --git a/include/web_app_enc.h b/include/web_app_enc.h index c876792..47cbe78 100644 --- a/include/web_app_enc.h +++ b/include/web_app_enc.h @@ -14,7 +14,7 @@ * limitations under the License * * @file web_app_enc.h - * @version 1.0 + * @version 2.0 * @brief APIs of WEB_APP_ENC module. */ #ifndef __WEB_APP_ENC__ @@ -25,6 +25,8 @@ extern "C" { #endif #include <stddef.h> +#include <stdbool.h> +#include <sys/types.h> /** * @addtogroup CAPI_WEB_APP_ENC_MODULE @@ -49,24 +51,40 @@ typedef enum { } wae_error_e; /** - * @brief Application Type. + * @brief Encrypts web application data + * * @since_tizen 3.0 + * @param[in] uid User id of the application being encrypted + * @param[in] pkg_id The package id of an application + * @param[in] data The data block to be encrypted + * @param[in] data_len The length of @a data + * @param[out] pencrypted_data The encrypted data block which must be freed by free() + * @param[out] pencrypted_data_len The length of data pointed by @a pencrypted_data + * + * @return #WAE_ERROR_NONE on success, otherwise a negative error value + * @retval #WAE_ERROR_INVALID_PARAMETER Invalid input parameter + * @retval #WAE_ERROR_PERMISSION_DENIED Non-authenticated application request + * @retval #WAE_ERROR_NO_KEY No internal key + * @retval #WAE_ERROR_KEY_MANAGER key-manager internal error + * @retval #WAE_ERROR_CRYPTO failed in crypto operation + * @retval #WAE_ERROR_UNKNOWN Failed with unknown reason + * + * @see wae_decrypt_web_application() + * @see wae_remove_app_dek() */ -typedef enum { - WAE_DOWNLOADED_NORMAL_APP = 0, /**< Downloaded Normal Application*/ - WAE_DOWNLOADED_GLOBAL_APP = 1, /**< Downloaded Global Application*/ - WAE_PRELOADED_APP = 2 /**< Preloaded Application*/ -} wae_app_type_e; +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); /** - * @brief Encrypts web application data with internal key(APP DEK: Application Data Encryption Key). + * @brief Encrypts global web application data * * @since_tizen 3.0 * @param[in] pkg_id The package id of an application - * @param[in] app_type The application type + * @param[in] is_preloaded Whether the package is preloaded or not * @param[in] data The data block to be encrypted * @param[in] data_len The length of @a data - * @param[out] pencrypted_data The data block contaning encrypted data block which must be freed by free() + * @param[out] pencrypted_data The encrypted data block which must be freed by free() * @param[out] pencrypted_data_len The length of data pointed by @a pencrypted_data * * @return #WAE_ERROR_NONE on success, otherwise a negative error value @@ -77,21 +95,22 @@ typedef enum { * @retval #WAE_ERROR_CRYPTO failed in crypto operation * @retval #WAE_ERROR_UNKNOWN Failed with unknown reason * - * @see wae_decrypt_web_application() + * @see wae_decrypt_global_web_application() + * @see wae_remove_global_app_dek() */ -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_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); /** - * @brief Encrypts web application data with internal key. + * @brief Decrypts web application data. * * @since_tizen 3.0 + * @param[in] uid User id of the application being decrypted * @param[in] pkg_id The package id of an application - * @param[in] app_type The application type * @param[in] data The data block to be decrypted * @param[in] data_len The length of @a data - * @param[out] pdecrypted_data Data block contaning decrypted data block which must be freed by free() + * @param[out] pdecrypted_data The decrypted data block which must be freed by free() * @param[out] pdecrypted_data_len The length of data pointed by @a pdecrypted_data * * @return #WAE_ERROR_NONE on success, otherwise a negative error value @@ -103,17 +122,44 @@ int wae_encrypt_web_application(const char *pkg_id, wae_app_type_e app_type, * @retval #WAE_ERROR_UNKNOWN Failed with unknown reason * * @see wae_encrypt_web_application() + * @see wae_remove_app_dek() */ -int wae_decrypt_web_application(const char *pkg_id, wae_app_type_e app_type, +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); /** - * @brief Remove a APP DEK(Application Data Encryption Key) used for encrytpion and decryption of a web application. + * @brief Decrypts global web application data. + * + * @since_tizen 3.0 + * @param[in] pkg_id The package id of an application + * @param[in] is_preloaded Whether the package is preloaded or not + * @param[in] data The data block to be decrypted + * @param[in] data_len The length of @a data + * @param[out] pdecrypted_data The decrypted data block which must be freed by free() + * @param[out] pdecrypted_data_len The length of data pointed by @a pdecrypted_data + * + * @return #WAE_ERROR_NONE on success, otherwise a negative error value + * @retval #WAE_ERROR_INVALID_PARAMETER Invalid input parameter + * @retval #WAE_ERROR_PERMISSION_DENIED Non-authenticated application request + * @retval #WAE_ERROR_NO_KEY No internal key + * @retval #WAE_ERROR_KEY_MANAGER key-manager internal error + * @retval #WAE_ERROR_CRYPTO failed in crypto operation + * @retval #WAE_ERROR_UNKNOWN Failed with unknown reason + * + * @see wae_encrypt_global_web_application() + * @see wae_remove_global_app_dek() + */ +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); + +/** + * @brief Remove key used for encryption the web application. * * @since_tizen 3.0 + * @param[in] uid User id of the application being uninstalled * @param[in] pkg_id The package id of an application - * @param[in] app_type The application type * * @return #WAE_ERROR_NONE on success, otherwise a negative error value * @retval #WAE_ERROR_INVALID_PARAMETER Invalid input parameter @@ -122,8 +168,29 @@ int wae_decrypt_web_application(const char *pkg_id, wae_app_type_e app_type, * @retval #WAE_ERROR_KEY_MANAGER key-manager internal error * @retval #WAE_ERROR_UNKNOWN Failed with unknown reason * + * @see wae_encrypt_web_application() + * @see wae_decrypt_web_application() + */ +int wae_remove_app_dek(uid_t uid, const char *pkg_id); + +/** + * @brief Remove key used for encryption the global web application. + * + * @since_tizen 3.0 + * @param[in] pkg_id The package id of an application + * @param[in] is_preloaded Whether the package is preloaded or not + * + * @return #WAE_ERROR_NONE on success, otherwise a negative error value + * @retval #WAE_ERROR_INVALID_PARAMETER Invalid input parameter + * @retval #WAE_ERROR_PERMISSION_DENIED Non-authenticated application request + * @retval #WAE_ERROR_NO_KEY No internal key + * @retval #WAE_ERROR_KEY_MANAGER key-manager internal error + * @retval #WAE_ERROR_UNKNOWN Failed with unknown reason + * + * @see wae_encrypt_global_web_application() + * @see wae_decrypt_global_web_application() */ -int wae_remove_app_dek(const char *pkg_id, wae_app_type_e app_type); +int wae_remove_global_app_dek(const char *pkg_id, bool is_preloaded); /** * @} |