summaryrefslogtreecommitdiff
path: root/include/web_app_enc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/web_app_enc.h')
-rw-r--r--include/web_app_enc.h109
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);
/**
* @}