2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
9 // http://www.apache.org/licenses/LICENSE-2.0
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
19 * @file FAppPkgPackageLicenseManager.h
20 * @brief This is the header file for the %PackageLicenseManager class.
22 * This header file contains the declarations of the %PackageLicenseManager class.
25 #ifndef _FAPP_PKG_PACKAGE_LICENSE_MANAGER_H_
26 #define _FAPP_PKG_PACKAGE_LICENSE_MANAGER_H_
29 #include <FAppTypes.h>
31 namespace Tizen { namespace App { namespace Package
35 * @class PackageLicenseManager
36 * @brief This class gets the information of a package's license and manages its installation.
40 * @remarks Do not use this class without obtaining prior permissions from the %Tizen platform team.
42 * The %PackageLicenseManager class gets the information of a package's license and manages its installation.
44 class _OSP_EXPORT_ PackageLicenseManager
49 * Generates a license request and URL.
53 * @privilege %http://tizen.org/privilege/packagelicensemanager
55 * @return An error code
56 * @param[in] licenseRequestInfo The string buffer of license request information
57 * @param[out] licenseRequest The string buffer of Package DRM license request
58 * @param[out] licenseUrl The URL for Package DRM license
59 * @exception E_SUCCESS The method is successful.
60 * @exception E_INVALID_ARG A specified input parameter is invalid.
61 * @exception E_INVALID_DATA A specified XML field of input string is invalid. @n
62 * For example, the requested ID is invalid.
63 * @exception E_PARSING_FAILED An error has occurred when parsing the input string.
64 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
65 * @remarks Do not use this method without obtaining prior permissions from the %Tizen platform team.
67 static result GenerateDrmLicenseRequest(const Tizen::Base::String& licenseRequestInfo, Tizen::Base::String& licenseRequest, Tizen::Base::String& licenseUrl);
70 * Saves a Package DRM license(right object) to a DRM repository. @n
71 * It stores the DRM license (right object) when it does not exist in the DRM repository.
72 * When the same @c packgeId of DRM license(right object) already exists in the DRM repository, it is overwritten.
76 * @privilege %http://tizen.org/privilege/packagelicensemanager
78 * @return An error code
79 * @param[in] rightObject The Package DRM license (right object)
80 * @exception E_SUCCESS The method is successful.
81 * @exception E_INVALID_ARG The specified input parameter is invalid.
82 * @exception E_DATABASE An error has occurred when handling the rights object repository.
83 * @exception E_INVALID_BINDING The input right object is not binded to the device.
84 * @exception E_INVALID_SIGNATURE The signature verification of the input string has failed.
85 * @exception E_INVALID_CERTIFICATE The certificate chain verification of the input string has failed.
86 * @exception E_INVALID_DATA A specified XML field of input string is invalid. @n
87 * For example, the @c appId field is empty.
88 * @exception E_PARSING_FAILED An error has occurred when parsing the input string.
89 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
90 * @remarks Do not use this method without obtaining prior permissions from the %Tizen platform team.
92 static result SaveDrmLicense(const Tizen::Base::String& rightObject);
95 * Gets the remaining time of the package until the DRM license expiration.
99 * @privilege %http://tizen.org/privilege/packagelicensemanager
101 * @return The remaining time of the DRM license @n
102 * If the remaining time is unlimited, the return value of Tizen::Base::TimeSpan's days will be set to @c 9999.
103 * @param[in] pkgId The package ID with which to get the information of time-based constraint
104 * @exception E_SUCCESS The method is successful.
105 * @exception E_INVALID_ARG The specified input parameter is invalid.
106 * @exception E_DATABASE An error has occurred when handling the rights object repository.
107 * @exception E_OBJ_NOT_FOUND The specified @c pkgId does not exist in the rights management repository.
108 * @exception E_RIGHT_EXPIRED The DRM license has expired.
109 * @exception E_RIGHT_UNLIMITED The DRM license is unlimited.
110 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
111 * @remarks The specific error code can be accessed using the GetLastResult() method.
112 * @remarks Do not use this method without obtaining prior permissions from the %Tizen platform team.
114 static Tizen::Base::TimeSpan GetRemainingTimeUntilDrmExpiration(const Tizen::App::PackageId& pkgId);
117 * Saves a CEK (Contents Encryption Key) to a DRM repository. @n
118 * It stores the CEK when it does not exist in the DRM repository.
119 * When the same @c PackageId of CEK already exists in the DRM repository, it is overwritten.
122 * @privlevel platform
123 * @privilege %http://tizen.org/privilege/packagelicensemanager
125 * @return An error code
126 * @param[in] licenseInfo The CEK (Contents Encryption Key)
127 * @exception E_SUCCESS The method is successful.
128 * @exception E_INVALID_ARG The specified input parameter is invalid.
129 * @exception E_INVALID_DATA A specified XML field of input string is invalid. @n
130 * For example, the @c appId field is empty.
131 * @exception E_DATABASE An error has occurred when handling the rights object repository.
132 * @exception E_PARSING_FAILED An error has occurred when parsing the input string.
133 * @exception E_PRIVILEGE_DENIED The application does not have the privilege to call this method.
134 * @remarks Do not use this method without obtaining prior permissions from the %Tizen platform team.
136 static result SaveLicenseInfoForPackage(const Tizen::Base::String& licenseInfo);
139 PackageLicenseManager(void);
140 ~PackageLicenseManager(void);
142 PackageLicenseManager(const PackageLicenseManager& rhs);
143 PackageLicenseManager& operator = (const PackageLicenseManager);
145 }; // PackageLicenseManager
147 }}} // Tizen::App::Package
149 #endif // _FAPP_PKG_PACKAGE_LICENSE_MANAGER_H_