Remove symbol : ckmc_label_shared_owner
[platform/core/security/key-manager.git] / src / include / ckmc / ckmc-type.h
index 611808e..507d223 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2000 - 2014 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2000 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -38,28 +38,54 @@ extern "C" {
  * @{
  */
 
+/*
+ * Note: on tizen 3.0 owner id is equal to pkgId.
+ *       Preinstalled system(uid < 5000) and user (uid >= 5000) applications
+ *       does not have any pkgId. Thats why ckm uses special "virtual"
+ *       pkgid for them. The virtual strings are defined under:
+ *          ckmc_ownerid_system
+ *          ckmc_ownerid_user
+ *
+ */
+
 /**
- * alias can be provided as an alias alone, or together with label - in this
- * case, separator " " (space bar) is used to separate label and alias.
+ * @deprecated Deprecated since 3.0. [Use ckmc_owner_id_separator instead]
+ * @brief Separator between alias and label.
+ * @since_tizen 2.3
+ * @remarks Alias can be provided as an alias alone, or together with label - in this
+ *          case, separator " " (space bar) is used to separate label and alias.
+ *
+ * @see #ckmc_owner_id_separator
  * @see key-manager_doc.h
  */
 KEY_MANAGER_CAPI extern char const * const ckmc_label_name_separator;
 
 /**
- * shared database label - user may be given permission to access shared
- * database items. In such case, the alias should contain shared database
- * label.
- * @see ckmc_label_name_separator
+ * @brief Separator between alias and owner id.
+ * @since_tizen 3.0
+ * @remarks Alias can be provided as an alias alone, or together with owner id.
+ *          In this case, separator " " (space bar) is used to separate id and alias.
  * @see key-manager_doc.h
  */
-KEY_MANAGER_CAPI extern char const * const ckmc_label_shared_owner;
+KEY_MANAGER_CAPI extern char const * const ckmc_owner_id_separator;
+
+/**
+ * @brief The owner of system database.
+ * @since_tizen 3.0
+ * @remarks ckmc_owner_id_system constains id connected with all SYSTEM applications that run
+ *          with uid less than 5000.
+ *          Client should use ckmc_owner_id_system to access data owned by system application
+ *          and stored in system database.
+ *          Note: Client must have permission to access proper row.
+ */
+KEY_MANAGER_CAPI extern char const * const ckmc_owner_id_system;
 
 /**
  * @brief Enumeration for key types of key manager.
  * @since_tizen 2.3
  */
 typedef enum __ckmc_key_type {
-    CKMC_KEY_NONE = 0,       /**< key type not specified */
+    CKMC_KEY_NONE = 0,       /**< Key type not specified */
     CKMC_KEY_RSA_PUBLIC,     /**< RSA public key */
     CKMC_KEY_RSA_PRIVATE,    /**< RSA private key */
     CKMC_KEY_ECDSA_PUBLIC,   /**< ECDSA public key */
@@ -120,8 +146,8 @@ typedef enum __ckmc_rsa_padding_algo {
  * @since_tizen 2.3
  */
 typedef enum __ckmc_access_right{
-    CKMC_AR_READ = 0,       /**< access right for read*/
-    CKMC_AR_READ_REMOVE     /**< access right for read and remove*/
+    CKMC_AR_READ = 0,       /**< Access right for read*/
+    CKMC_AR_READ_REMOVE     /**< Access right for read and remove*/
 } ckmc_access_right_e;
 
 /**
@@ -129,13 +155,13 @@ typedef enum __ckmc_access_right{
  * @since_tizen 2.4
  */
 typedef enum __ckmc_permission{
-    CKMC_PERMISSION_NONE        = 0x00, /**< clear permissions */
-    CKMC_PERMISSION_READ        = 0x01, /**< read allowed */
-    CKMC_PERMISSION_REMOVE      = 0x02  /**< remove allowed */
+    CKMC_PERMISSION_NONE        = 0x00, /**< Clear permissions */
+    CKMC_PERMISSION_READ        = 0x01, /**< Eead allowed */
+    CKMC_PERMISSION_REMOVE      = 0x02  /**< Remove allowed */
 } ckmc_permission_e;
 
 /**
- * @brief the structure for binary buffer used in key manager CAPI.
+ * @brief The structure for binary buffer used in key manager CAPI.
  * @since_tizen 2.3
  */
 typedef struct __ckmc_raw_buff {
@@ -180,7 +206,7 @@ typedef struct __ckmc_cert {
  * @since_tizen 2.3
  */
 typedef struct __ckmc_alias_list {
-    char *alias;  /**< The name of key, certificate or data stored in key manager */
+    char *alias;                    /**< The name of key, certificate or data stored in key manager */
     struct __ckmc_alias_list *next; /**< The pointer pointing to the next ckmc_alias_list_s */
 } ckmc_alias_list_s;
 
@@ -189,7 +215,7 @@ typedef struct __ckmc_alias_list {
  * @since_tizen 2.3
  */
 typedef struct __ckmc_cert_list {
-    ckmc_cert_s *cert; /**< The pointer of ckmc_cert_s */
+    ckmc_cert_s *cert;             /**< The pointer of ckmc_cert_s */
     struct __ckmc_cert_list *next; /**< The pointer pointing to the next ckmc_cert_list_s */
 } ckmc_cert_list_s;
 
@@ -199,13 +225,13 @@ typedef struct __ckmc_cert_list {
  */
 typedef enum __ckmc_ocsp_status {
     CKMC_OCSP_STATUS_GOOD = 0,          /**< OCSP status is good */
-    CKMC_OCSP_STATUS_REVOKED,           /**< certificate is revoked */
-    CKMC_OCSP_STATUS_UNKNOWN,           /**< unknown error */
-    CKMC_OCSP_ERROR_UNSUPPORTED,        /**< certificate does not provide OCSP extension */
-    CKMC_OCSP_ERROR_INVALID_URL,        /**< invalid URL in certificate OCSP extension */
-    CKMC_OCSP_ERROR_INVALID_RESPONSE,   /**< invalid response from OCSP server */
+    CKMC_OCSP_STATUS_REVOKED,           /**< The certificate is revoked */
+    CKMC_OCSP_STATUS_UNKNOWN,           /**< Unknown error */
+    CKMC_OCSP_ERROR_UNSUPPORTED,        /**< The certificate does not provide OCSP extension */
+    CKMC_OCSP_ERROR_INVALID_URL,        /**< The invalid URL in certificate OCSP extension */
+    CKMC_OCSP_ERROR_INVALID_RESPONSE,   /**< The invalid response from OCSP server */
     CKMC_OCSP_ERROR_REMOTE,             /**< OCSP remote server error */
-    CKMC_OCSP_ERROR_NET,                /**< network connection error */
+    CKMC_OCSP_ERROR_NET,                /**< Network connection error */
     CKMC_OCSP_ERROR_INTERNAL            /**< OpenSSL API error */
 } ckmc_ocsp_status_e;
 
@@ -214,43 +240,38 @@ typedef enum __ckmc_ocsp_status {
  * @since_tizen 2.4
  */
 typedef struct __ckmc_pkcs12 {
-    ckmc_key_s  *priv_key;      /**< private key, may be null */
-    ckmc_cert_s *cert;          /**< certificate, may be null */
-    ckmc_cert_list_s *ca_chain; /**< chain certificates list, may be null */
+    ckmc_key_s  *priv_key;      /**< The private key, may be null */
+    ckmc_cert_s *cert;          /**< The certificate, may be null */
+    ckmc_cert_list_s *ca_chain; /**< The chain certificate list, may be null */
 } ckmc_pkcs12_s;
 
 /**
  * @brief Enumeration for crypto algorithm parameters.
  * @since_tizen 3.0
+ *
+ * @see #ckmc_algo_type_e
  */
 typedef enum __ckmc_param_name {
     CKMC_PARAM_ALGO_TYPE = 1,
 
-    // encryption & decryption
     CKMC_PARAM_ED_IV = 101,         /**< 16B buffer (up to 2^64-1 bytes long in case of AES GCM) */
-    CKMC_PARAM_ED_CTR_LEN,          /**< integer */
+    CKMC_PARAM_ED_CTR_LEN,          /**< integer - ctr length in bits*/
     CKMC_PARAM_ED_AAD,              /**< buffer */
-    CKMC_PARAM_ED_TAG_LEN,          /**< integer */
-    CKMC_PARAM_ED_LABEL,            /**< buffer */
-
-    // key generation
-    CKMC_PARAM_GEN_KEY_LEN = 201,   /**< integer */
-    CKMC_PARAM_GEN_EC,              /**< integer - elliptic curve (ckmc_ec_type_e) */
-
-    // sign & verify
-    CKMC_PARAM_SV_HASH_ALGO = 301,  /**< integer - hash algorithm (ckmc_hash_algo_e) */
-    CKMC_PARAM_SV_RSA_PADDING,      /**< integer - RSA padding (ckmc_rsa_padding_algo_e) */
-}ckmc_param_name_e;
+    CKMC_PARAM_ED_TAG_LEN,          /**< integer - tag length in bits */
+    CKMC_PARAM_ED_LABEL             /**< buffer */
+} ckmc_param_name_e;
 
 /**
- * @brief Structure for algorithm parameter list.
+ * @brief Handle for algorithm parameter list.
  * @since_tizen 3.0
  */
-typedef struct __ckmc_param_list ckmc_param_list_s;
+typedef struct __ckmc_param_list *ckmc_param_list_h;
 
 /**
  * @brief Enumeration for crypto algorithm types.
  * @since_tizen 3.0
+ *
+ * @see #ckmc_param_name_e
  */
 typedef enum __ckmc_algo_type {
     CKMC_ALGO_AES_CTR = 1,   /**< AES-CTR algorithm
@@ -276,63 +297,32 @@ typedef enum __ckmc_algo_type {
                                   - CKMC_PARAM_ALGO_TYPE,
                                   - CKMC_PARAM_ED_IV */
 
-    CKMC_ALGO_RSA_OAEP,      /**< RSA-OAEP algorithm
+    CKMC_ALGO_RSA_OAEP       /**< RSA-OAEP algorithm
                                   Supported parameters:
                                   - CKMC_PARAM_ALGO_TYPE,
                                   - CKMC_PARAM_ED_LABEL */
-
-    CKMC_ALGO_RSA_SV,        /**< RSA algorithm used for signing/verification
-                                  Supported parameters:
-                                  - CKMC_PARAM_ALGO_TYPE,
-                                  - CKMC_PARAM_SV_HASH_ALGO
-                                  - CKMC_PARAM_SV_RSA_PADDING */
-
-    CKMC_ALGO_DSA_SV,        /**< DSA algorithm used for signing/verification
-                                  Supported parameters:
-                                  - CKMC_PARAM_ALGO_TYPE,
-                                  - CKMC_PARAM_SV_HASH_ALGO */
-
-    CKMC_ALGO_ECDSA_SV,      /**< ECDA algorithm used for signing/verification
-                                  Supported parameters:
-                                  - CKMC_PARAM_ALGO_TYPE,
-                                  - CKMC_PARAM_SV_HASH_ALGO */
-
-    CKMC_ALGO_RSA_GEN,       /**< RSA algorithm used for key generation
-                                  Supported parameters:
-                                  - CKMC_PARAM_ALGO_TYPE,
-                                  - CKMC_PARAM_GEN_KEY_LEN */
-
-    CKMC_ALGO_DSA_GEN,       /**< DSA algorithm used for key generation
-                                  Supported parameters:
-                                  - CKMC_PARAM_ALGO_TYPE,
-                                  - CKMC_PARAM_GEN_KEY_LEN */
-
-    CKMC_ALGO_ECDSA_GEN,     /**< ECDA algorithm used for key generation
-                                  Supported parameters:
-                                  - CKMC_PARAM_ALGO_TYPE,
-                                  - CKMC_PARAM_GEN_EC */
 } ckmc_algo_type_e;
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_key_s handle and returns it.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks You must destroy the newly created @a ckmc_key_s by calling ckmc_key_free() if it is no
  *          longer needed.
  *
  * @param[in] raw_key  The byte array of key \n
- *                     @a raw_key may be encrypted with password.
+ *                     @a raw_key may be encrypted with password
  * @param[in] key_size The byte size of @a raw_key
  * @param[in] key_type The @a raw_key's type
  * @param[in] password The byte array used to decrypt @a raw_key inside key manager \n
- *                     If @a raw_key is not encrypted, @a password can be null.
+ *                     If @a raw_key is not encrypted, @a password can be null
  * @param[out] ppkey   The pointer to a newly created @a ckmc_key_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE              Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY     Not enough memory
  *
@@ -355,10 +345,9 @@ int ckmc_key_new(unsigned char *raw_key,
 void ckmc_key_free(ckmc_key_s *key);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_raw_buffer_s handle and returns it.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks You must destroy the newly created @a ckmc_raw_buffer_s by calling ckmc_buffer_free() if
  *          it is no longer needed.
@@ -367,32 +356,32 @@ void ckmc_key_free(ckmc_key_s *key);
  * @param[in]  size      The byte size of buffer
  * @param[out] ppbuffer  The pointer to a newly created @a ckmc_buffer_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE               Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER  Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY      Not enough memory
  *
  * @see ckmc_buffer_free()
  * @see #ckmc_raw_buffer_s
  */
-int ckmc_buffer_new(unsigned char *data, size_t size,ckmc_raw_buffer_s **ppbuffer);
+int ckmc_buffer_new(unsigned char *data, size_t size, ckmc_raw_buffer_s **ppbuffer);
 
 /**
  * @brief Destroys the @a ckmc_raw_buffer_s handle and releases all its resources.
  *
  * @since_tizen 2.3
  *
- * @param[in] buffer The @a ckmc_raw_buffer_s handle to destroy
+ * @param[in] buffer The @a ckmc_raw_buffer_s structure to destroy
  *
  */
 void ckmc_buffer_free(ckmc_raw_buffer_s *buffer);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_cert_s handle and returns it.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks You must destroy the newly created @a ckmc_cert_s by calling ckmc_cert_free() if it is
  *          no longer needed.
@@ -402,9 +391,10 @@ void ckmc_buffer_free(ckmc_raw_buffer_s *buffer);
  * @param[in]  data_format  The encoding format of raw_cert
  * @param[out] ppcert       The pointer to a newly created @a ckmc_cert_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE               Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER  Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY      Not enough memory
  *
@@ -438,7 +428,7 @@ void ckmc_cert_free(ckmc_cert_s *cert);
  *          no longer needed.
  *
  * @param[in]  file_path  The path of certificate file to be loaded \n
- *                        The only DER or PEM encoded certificate file is supported.
+ *                        The only DER or PEM encoded certificate file is supported
  * @param[out] cert       The pointer of newly created @a ckmc_cert_s handle
  *
  * @return #CKMC_ERROR_NONE on success,
@@ -455,7 +445,6 @@ void ckmc_cert_free(ckmc_cert_s *cert);
 int ckmc_load_cert_from_file(const char *file_path, ckmc_cert_s **cert);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_pkcs12_s handle and returns it.
  *
  * @since_tizen 2.4
@@ -470,11 +459,12 @@ int ckmc_load_cert_from_file(const char *file_path, ckmc_cert_s **cert);
  * @param[in]  ca_cert_list     @a ckmc_cert_list_s list of chain certificate handles (optional)
  * @param[out] pkcs12_bundle    The pointer to a newly created @a ckmc_pkcs12_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE               Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER  Input parameter is invalid or private_key, cert and
- *                                        ca_cert_list all are null.
+ *                                        ca_cert_list all are null
  * @retval #CKMC_ERROR_OUT_OF_MEMORY      Not enough memory
  *
  * @see ckmc_pkcs12_free()
@@ -503,13 +493,13 @@ int ckmc_pkcs12_new(ckmc_key_s *private_key,
  *
  * @param[in]  file_path    The path of PKCS12 file to be loaded
  * @param[in]  passphrase   The passphrase used to decrypt the PCKS12 file \n
- *                          If PKCS12 file is not encrypted, passphrase can be null.
+ *                          If PKCS12 file is not encrypted, passphrase can be null
  * @param[out] private_key  The pointer of newly created @a ckmc_key_s handle for a private key
  * @param[out] cert         The pointer of newly created @a ckmc_cert_s handle for a certificate \n
- *                          It is null if the PKCS12 file does not contain a certificate.
+ *                          It is null if the PKCS12 file does not contain a certificate
  * @param[out] ca_cert_list The pointer of newly created @a ckmc_cert_list_s handle for CA
  *                          certificates \n
- *                          It is null if the PKCS12 file does not contain CA certificates.
+ *                          It is null if the PKCS12 file does not contain CA certificates
  *
  * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
@@ -543,10 +533,10 @@ int ckmc_load_from_pkcs12_file(const char *file_path,
  *
  * @param[in]  file_path    The path of PKCS12 file to be loaded
  * @param[in]  passphrase   The passphrase used to decrypt the PCKS12 file \n
- *                          If PKCS12 file is not encrypted, passphrase can be null.
+ *                          If PKCS12 file is not encrypted, passphrase can be null
  * @param[out] ca_cert_list The pointer of newly created @a ckmc_cert_list_s handle for CA
  *                          certificates \n
- *                          It is null if the PKCS12 file does not contain CA certificates.
+ *                          It is null if the PKCS12 file does not contain CA certificates
  *
  * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
@@ -560,8 +550,8 @@ int ckmc_load_from_pkcs12_file(const char *file_path,
  * @see #ckmc_pkcs12_s
  */
 int ckmc_pkcs12_load(const char *file_path,
-                                const char *passphrase,
-                                ckmc_pkcs12_s **pkcs12_bundle);
+                     const char *passphrase,
+                     ckmc_pkcs12_s **pkcs12_bundle);
 
 /**
  * @brief Destroys the @a ckmc_pkcs12_s handle and releases all its resources.
@@ -576,12 +566,11 @@ int ckmc_pkcs12_load(const char *file_path,
 void ckmc_pkcs12_free(ckmc_pkcs12_s *pkcs12);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_alias_list_s handle and returns it.
  *        The alias pointer in the returned @a ckmc_alias_list_s handle points to the provided
  *        characters and next is null.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks You must destroy the newly created @a ckmc_alias_list_s
  *          by calling ckmc_alias_list_free() or ckmc_alias_list_all_free() if it is no longer
@@ -590,9 +579,10 @@ void ckmc_pkcs12_free(ckmc_pkcs12_s *pkcs12);
  * @param[in]  alias        The first item to be set in the newly created @a ckmc_alias_list_s
  * @param[out] ppalias_list The pointer to a newly created @a ckmc_alias_list_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE              Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY     Not enough memory
  *
@@ -602,21 +592,21 @@ void ckmc_pkcs12_free(ckmc_pkcs12_s *pkcs12);
 int ckmc_alias_list_new(char *alias, ckmc_alias_list_s **ppalias_list);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_alias_list_s handle, adds it to a previous @a ckmc_alias_list_s and
  *        returns it. The alias pointer in the returned @a ckmc_alias_list_s handle points to the
  *        provided characters and next is null.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @param[in]  previous  The last @a ckmc_alias_list_s handle to which a newly created
  *                       @a ckmc_alias_list_s is added
  * @param[in]  alias     The item to be set in the newly created @a ckmc_alias_list_s
  * @param[out] pplast    The pointer to a newly created and added @a ckmc_alias_list_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE               Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER  Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY      Not enough memory
  *
@@ -628,11 +618,10 @@ int ckmc_alias_list_add(ckmc_alias_list_s *previous,
                         ckmc_alias_list_s **pplast);
 
 /**
- * @internal
  * @brief Destroys the @a ckmc_alias_list_s handle and releases resources of @a ckmc_alias_list_s
  *        from the provided first handle cascadingly.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks It does not destroy an alias itself in @a ckmc_alias_list_s.
  *
@@ -647,7 +636,7 @@ void ckmc_alias_list_free(ckmc_alias_list_s *first);
  * @brief Destroys the @a ckmc_alias_list_s handle and releases all its resources from the provided
  *        first handle cascadingly.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks It also destroys the alias in @a ckmc_alias_list_s.
  *
@@ -658,12 +647,11 @@ void ckmc_alias_list_free(ckmc_alias_list_s *first);
 void ckmc_alias_list_all_free(ckmc_alias_list_s *first);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_cert_list_s handle and returns it.
  *        The cert pointer in the returned @a ckmc_cert_list_s handle points to the provided
  *        @a ckmc_cert_s and next is null.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks You must destroy the newly created @a ckmc_cert_list_s by calling ckmc_cert_list_free()
  *          or ckmc_cert_list_all_free() if it is no longer needed.
@@ -671,9 +659,10 @@ void ckmc_alias_list_all_free(ckmc_alias_list_s *first);
  * @param[in]  cert          The first item to be set in the newly created @a ckmc_cert_list_s
  * @param[out] ppalias_list  The pointer to a newly created @a ckmc_alias_list_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE               Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER  Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY      Not enough memory
  *
@@ -683,21 +672,21 @@ void ckmc_alias_list_all_free(ckmc_alias_list_s *first);
 int ckmc_cert_list_new(ckmc_cert_s *cert, ckmc_cert_list_s **ppalias_list);
 
 /**
- * @internal
  * @brief Creates a new @a ckmc_cert_list_s handle, adds it to a previous @a ckmc_cert_list_s and
  *        returns it. The cert pointer in the returned @a ckmc_alias_list_s handle points to the
  *        provided @a ckmc_cert_s and next is null.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @param[in]  previous  The last @a ckmc_cert_list_s handle to which a newly created
  *                       @a ckmc_cert_list_s is added
  * @param[in]  cert      The item to be set in the newly created @a ckmc_cert_list_s
  * @param[out] pplast    The pointer to a newly created and added @a ckmc_alias_list_s handle
  *
- * @return @c 0 on success,
+ * @return #CKMC_ERROR_NONE on success,
  *         otherwise a negative error value
  *
+ * @retval #CKMC_ERROR_NONE               Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER  Input parameter is invalid
  * @retval #CKMC_ERROR_OUT_OF_MEMORY      Not enough memory
  *
@@ -707,11 +696,10 @@ int ckmc_cert_list_new(ckmc_cert_s *cert, ckmc_cert_list_s **ppalias_list);
 int ckmc_cert_list_add(ckmc_cert_list_s *previous, ckmc_cert_s *cert, ckmc_cert_list_s **pplast);
 
 /**
- * @internal
  * @brief Destroys the @a ckmc_cert_list_s handle and releases resources of @a ckmc_cert_list_s
  *        from the provided first handle cascadingly.
  *
- * @since_tizen 2.3
+ * @since_tizen 2.4
  *
  * @remarks It does not destroy @a ckmc_cert_s itself in @a ckmc_cert_list_s.
  *
@@ -728,7 +716,7 @@ void ckmc_cert_list_free(ckmc_cert_list_s *first);
  *
  * @since_tizen 2.3
  *
- * @remarks It also destroys @a ckmc_cert_s in ckmc_cert_list_s.
+ * @remarks It also destroys @a ckmc_cert_s in @a ckmc_cert_list_s.
  *
  * @param[in] first The first @a ckmc_cert_list_s handle to destroy
  *
@@ -737,87 +725,96 @@ void ckmc_cert_list_free(ckmc_cert_list_s *first);
 void ckmc_cert_list_all_free(ckmc_cert_list_s *first);
 
 /**
- * @brief Creates new parameter list
+ * @brief Creates new parameter list.
  *
  * @since_tizen 3.0
  *
- * @remarks Caller is responsible for freeing it with ckmc_param_list_free
+ * @remarks Caller is responsible for freeing it with ckmc_param_list_free().
  *
- * @param[in] ppparam_list  Double pointer to the list variable to which the newly created list will
- *                          be assigned.
+ * @param[in] pparams Double pointer to the handle of param list to which the
+ *                    newly created algorithm param list will be assigned
  *
- * @return @c 0 on success, otherwise a negative error value
+ * @return #CKMC_ERROR_NONE on success,
+ *         otherwise a negative error value
  *
  * @retval #CKMC_ERROR_NONE                 Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER    Input parameter is invalid
  *
- * @see ckmc_param_list_add_integer
- * @see ckmc_param_list_add_buffer
- * @see ckmc_param_list_free
- * @see ckmc_generate_params
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_set_integer()
+ * @see ckmc_param_list_set_buffer()
+ * @see ckmc_param_list_free()
+ * @see ckmc_generate_new_params()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
-int ckmc_param_list_new(ckmc_param_list_s **ppparams);
+int ckmc_param_list_new(ckmc_param_list_h *pparams);
 
 /**
- * @brief Adds integer parameter to the list
+ * @brief Sets integer parameter to the list.
  *
  * @since_tizen 3.0
  *
- * @remarks Caller is responsible for ckmc_param_list_s creation.
+ * @remarks Caller is responsible for @a ckmc_param_list_h creation.
  *
- * @param[in] params    List of params created with ckcm_param_list_new.
- * @param[in] name      Name of parameter to add. Existing parameter will be overwritten. Passing
- *                      invalid parameter name will result in an error.
- * @param[in] value     Value of the parameter in form of a integer.
+ * @param[in] params    Algorithm param list handle created with
+ *                      ckmc_param_list_new() or ckmc_generate_new_params() \n
+ *                      New param with @a name and @a value will be set` here
+ * @param[in] name      Name of parameter to set \n
+ *                      Existing parameter will be overwritten \n
+ *                      Passing invalid parameter name will result in an error
+ * @param[in] value     Value of the parameter in form of a integer
  *
- * @return @c 0 on success, otherwise a negative error value
+ * @return #CKMC_ERROR_NONE on success,
+ *         otherwise a negative error value
  *
  * @retval #CKMC_ERROR_NONE                 Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER    Input parameter is invalid
  *
- * @see ckmc_param_list_new
- * @see ckmc_param_list_add_buffer
- * @see ckmc_param_list_get_integer
- * @see ckmc_param_list_get_buffer
- * @see ckmc_param_list_free
- * @see ckmc_generate_params
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_new()
+ * @see ckmc_param_list_set_buffer()
+ * @see ckmc_param_list_get_integer()
+ * @see ckmc_param_list_get_buffer()
+ * @see ckmc_param_list_free()
+ * @see ckmc_generate_new_params()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
-int ckmc_param_list_add_integer(ckmc_param_list_s *params,
+int ckmc_param_list_set_integer(ckmc_param_list_h params,
                                 ckmc_param_name_e name,
                                 uint64_t value);
 
 /**
- * @brief Adds buffer parameter to the list
+ * @brief Sets buffer parameter to the list.
  *
  * @since_tizen 3.0
  *
- * @remarks Caller is responsible for ckmc_param_list_s creation.
+ * @remarks Caller is responsible for @a ckmc_param_list_h creation.
  *
- * @param[in] params    List of params created with ckcm_param_list_new.
- * @param[in] name      Name of parameter to add. Existing parameter will be overwritten. Passing
- *                      invalid parameter name will result in an error
- * @param[in] buffer    Value of the parameter in form of a buffer. Caller is responsible for
- *                      creating and freeing the buffer.
+ * @param[in] params    Algorithm param list handle created with
+ *                      ckmc_param_list_new() or ckmc_generate_new_params()
+ *                      New param with @a name and @a buffer will be set here
+ * @param[in] name      Name of parameter to set \n
+ *                      Existing parameter will be overwritten \n
+ *                      Passing invalid parameter name will result in an error
+ * @param[in] buffer    Value of the parameter in form of a buffer \n
+ *                      Caller is responsible for creating and freeing the buffer
  *
- * @return @c 0 on success, otherwise a negative error value
+ * @return #CKMC_ERROR_NONE on success,
+ *         otherwise a negative error value
  *
  * @retval #CKMC_ERROR_NONE                 Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER    Input parameter is invalid
  *
- * @see ckmc_param_list_new
- * @see ckmc_param_list_add_integer
- * @see ckmc_param_list_get_integer
- * @see ckmc_param_list_get_buffer
- * @see ckmc_param_list_free
- * @see ckmc_generate_params
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_new()
+ * @see ckmc_param_list_set_integer()
+ * @see ckmc_param_list_get_integer()
+ * @see ckmc_param_list_get_buffer()
+ * @see ckmc_param_list_free()
+ * @see ckmc_generate_new_params()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
-int ckmc_param_list_add_buffer(ckmc_param_list_s *params,
+int ckmc_param_list_set_buffer(ckmc_param_list_h params,
                                ckmc_param_name_e name,
                                const ckmc_raw_buffer_s *buffer);
 
@@ -826,111 +823,116 @@ int ckmc_param_list_add_buffer(ckmc_param_list_s *params,
  *
  * @since_tizen 3.0
  *
- * @remarks Caller is responsible for ckmc_param_list_s creation.
+ * @remarks Caller is responsible for @a ckmc_param_list_h creation.
  *
- * @param[in] params    List of params created with ckcm_param_list_new.
- * @param[in] name      Name of parameter to get.
- * @param[out] value    Value of the parameter in form of a integer.
+ * @param[in] params    Algorithm param list handle created with
+ *                      ckmc_param_list_new() or ckmc_generate_new_params()
+ *                      which contains param with @a name
+ * @param[in] name      Name of parameter to get
+ * @param[out] pvalue   Value of the parameter in form of a integer
  *
- * @return @c 0 on success, otherwise a negative error value
+ * @return #CKMC_ERROR_NONE on success,
+ *         otherwise a negative error value
  *
  * @retval #CKMC_ERROR_NONE                 Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER    Input parameter is invalid
  *
- * @see ckmc_param_list_new
- * @see ckmc_param_list_add_integer
- * @see ckmc_param_list_add_buffer
- * @see ckmc_param_list_get_buffer
- * @see ckmc_param_list_free
- * @see ckmc_generate_params
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_new()
+ * @see ckmc_param_list_set_integer()
+ * @see ckmc_param_list_set_buffer()
+ * @see ckmc_param_list_get_buffer()
+ * @see ckmc_param_list_free()
+ * @see ckmc_generate_new_params()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
 
-int ckmc_param_list_get_integer(const ckmc_param_list_s *params,
+int ckmc_param_list_get_integer(ckmc_param_list_h params,
                                 ckmc_param_name_e name,
-                                uint64_tvalue);
+                                uint64_t *pvalue);
 
 /**
  * @brief Gets buffer parameter from the list.
  *
  * @since_tizen 3.0
  *
- * @remarks Caller is responsible for ckmc_param_list_s creation.
+ * @remarks Caller is responsible for @a ckmc_param_list_h creation.
  *
- * @param[in] params    List of params created with ckcm_param_list_new.
- * @param[in] name      Name of parameter to get.
- * @param[out] buffer   Value of the parameter in form of a buffer. Caller is responsible for
- *                      creating and freeing the buffer.
+ * @param[in] params    Algorithm param list handle created with
+ *                      ckmc_param_list_new() or ckmc_generate_new_params()
+ *                      which contains param with @a name
+ * @param[in] name      Name of parameter to get
+ * @param[out] ppbuffer Value of the parameter in form of a buffer \n
+ *                      Caller is responsible for creating and freeing the buffer
  *
- * @return @c 0 on success, otherwise a negative error value
+ * @return #CKMC_ERROR_NONE on success,
+ *         otherwise a negative error value
  *
  * @retval #CKMC_ERROR_NONE                 Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER    Input parameter is invalid
  *
- * @see ckmc_param_list_new
- * @see ckmc_param_list_add_integer
- * @see ckmc_param_list_add_buffer
- * @see ckmc_param_list_get_integer
- * @see ckmc_param_list_free
- * @see ckmc_generate_params
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_new()
+ * @see ckmc_param_list_set_integer()
+ * @see ckmc_param_list_set_buffer()
+ * @see ckmc_param_list_get_integer()
+ * @see ckmc_param_list_free()
+ * @see ckmc_generate_new_params()
+ * @see ckmc_buffer_free()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
-int ckmc_param_list_get_buffer(const ckmc_param_list_s *params,
+int ckmc_param_list_get_buffer(ckmc_param_list_h params,
                                ckmc_param_name_e name,
-                               ckmc_raw_buffer_s **buffer);
+                               ckmc_raw_buffer_s **ppbuffer);
 
 /**
- * @brief Frees previously allocated list of algorithm params
+ * @brief Frees previously allocated list of algorithm params.
  *
  * @since_tizen 3.0
  *
- * @param[in] first     First element of the list to be freed.
+ * @param[in] first     First element of the list to be freed
  *
- * @see ckmc_param_list_new
- * @see ckmc_param_list_add_integer
- * @see ckmc_param_list_add_buffer
- * @see ckmc_param_list_get_integer
- * @see ckmc_param_list_get_buffer
- * @see ckmc_generate_params
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_new()
+ * @see ckmc_param_list_set_integer()
+ * @see ckmc_param_list_set_buffer()
+ * @see ckmc_param_list_get_integer()
+ * @see ckmc_param_list_get_buffer()
+ * @see ckmc_generate_new_params()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
-
-void ckmc_param_list_free(ckmc_param_list_s *params);
+void ckmc_param_list_free(ckmc_param_list_h params);
 
 /**
- * @brief Generates algorithm parameters for a given algorithm type and adds them to the list.
+ * @brief Generates algorithm parameters for a given algorithm type and set them to the list.
  *
  * @since_tizen 3.0
  *
- * @remarks Caller is responsible for ckmc_param_list_s creation and destruction.
+ * @remarks Caller is responsible for @a ckmc_param_list_h destruction.
  * @remarks Algorithm parameters are set to default values. Optional fields are left empty.
- *          Initialization vectors are left empty (they have to be added manually). Existing params
- *          will be overwritten with default values. Caller is responsible for freeing the list with
- *          ckmc_param_list_free.
- * @remarks If the function returns error provided param list may contain some of default parameters
+ *          Initialization vectors are left empty (they have to be set manually). Caller is
+ *          responsible for freeing the list with ckmc_param_list_free().
+ * @remarks If the function returns error, provided param list may contain some of default parameters.
  *
  * @param[in] type      Type of the algorithm
- * @param[out] params   List of params to be filled. List should be empty. Otherwise an error will
- *                      be returned.
+ * @param[out] pparams  Newly generated handle of param list which should be freed by caller after used
  *
- * @return @c 0 on success, otherwise a negative error value
+ * @return #CKMC_ERROR_NONE on success,
+ *         otherwise a negative error value
  *
  * @retval #CKMC_ERROR_NONE                 Successful
  * @retval #CKMC_ERROR_INVALID_PARAMETER    Input parameter is invalid
  *
- * @see ckmc_param_list_new
- * @see ckmc_param_list_add_integer
- * @see ckmc_param_list_add_buffer
- * @see ckmc_param_list_get_integer
- * @see ckmc_param_list_get_buffer
- * @see ckmc_param_list_free
- * @see #ckmc_param_list_s
+ * @see ckmc_param_list_new()
+ * @see ckmc_param_list_set_integer()
+ * @see ckmc_param_list_set_buffer()
+ * @see ckmc_param_list_get_integer()
+ * @see ckmc_param_list_get_buffer()
+ * @see ckmc_param_list_free()
+ * @see #ckmc_param_list_h
  * @see #ckmc_param_name_e
  */
-int ckmc_generate_params(ckmc_algo_type_e type, ckmc_param_list_s *params);
+int ckmc_generate_new_params(ckmc_algo_type_e type, ckmc_param_list_h *pparams);
 
 /**
  * @}