2 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 var validator = xwalk.utils.validator;
18 var converter = xwalk.utils.converter;
19 var type = xwalk.utils.type;
20 var native = new xwalk.utils.NativeManager(extension);
22 var PermissionType = {
26 "READ_REMOVE": "READ_REMOVE"
29 function KeyManager() {
33 KeyManager.prototype.saveData = function() {
34 var args = validator.validateArgs(arguments, [
37 type: validator.Types.STRING
41 type: validator.Types.STRING
45 type: validator.Types.STRING,
50 name: 'successCallback',
51 type: validator.Types.FUNCTION,
56 name: 'errorCallback',
57 type: validator.Types.FUNCTION,
63 var result = native.call('KeyManager_saveData', {
64 aliasName: _trim(args.aliasName),
65 rawData: args.rawData,
66 password: (args.password ? converter.toString(args.password) : null)
68 if (native.isFailure(msg)) {
69 native.callIfPossible(args.errorCallback, native.getErrorObject(msg));
71 native.callIfPossible(args.successCallback);
76 if (native.isFailure(result)) {
77 throw native.getErrorObject(result);
81 KeyManager.prototype.removeData = function() {
83 var args = validator.validateArgs(arguments, [
86 type : validator.Types.DICTIONARY
90 var data_alias = _trim(args.dataAlias.name);
91 if(args.dataAlias.hasOwnProperty('packageId')) {
92 data_alias = args.dataAlias.packageId + ' ' + data_alias;
95 var ret = native.callSync('KeyManager_removeAlias', {
98 if (native.isFailure(ret)) {
99 throw native.getErrorObject(ret);
103 KeyManager.prototype.getData = function() {
104 var args = validator.validateArgs(arguments, [
107 type: validator.Types.DICTIONARY
111 type: validator.Types.STRING,
117 var data_alias = _trim(args.dataAlias.name);
118 if(args.dataAlias.hasOwnProperty('packageId')) {
119 data_alias = args.dataAlias.packageId + ' ' + data_alias;
122 var ret = native.callSync('KeyManager_getData', {
124 password: args.password
126 if (native.isFailure(ret)) {
127 throw native.getErrorObject(ret);
129 var result = native.getResultObject(ret);
130 return result.rawData;
133 KeyManager.prototype.getDataAliasList = function() {
134 var ret = native.callSync('KeyManager_getDataAliasList', {});
135 if (native.isFailure(ret)) {
136 throw native.getErrorObject(ret);
138 return native.getResultObject(ret);
141 KeyManager.prototype.setPermission = function() {
142 var args = validator.validateArgs(arguments, [
145 type: validator.Types.DICTIONARY
149 type: validator.Types.STRING
152 name: 'permissionType',
153 type: validator.Types.ENUM,
154 values: Object.keys(PermissionType)
157 name: 'successCallback',
158 type: validator.Types.FUNCTION,
163 name: 'errorCallback',
164 type: validator.Types.FUNCTION,
170 var data_alias = _trim(args.dataAlias.name);
171 if(args.dataAlias.hasOwnProperty('packageId')) {
172 data_alias = args.dataAlias.packageId + ' ' + data_alias;
175 var result = native.call('KeyManager_setPermissions', {
176 aliasName: data_alias,
177 packageId: args.packageId,
178 permissionType: args.permissionType
180 if (native.isFailure(msg)) {
181 native.callIfPossible(args.errorCallback, native.getErrorObject(msg));
183 native.callIfPossible(args.successCallback);
187 if (native.isFailure(result)) {
188 throw native.getErrorObject(result);
194 if (!type.isString(str)) {
195 val = converter.toString(str);
198 return val.replace(/\s/gi, '');
201 exports = new KeyManager();