From: Przemyslaw Ciezkowski Date: Thu, 23 Apr 2015 12:06:45 +0000 (+0200) Subject: [KeyManager] Implement JS generateKeyPair X-Git-Tag: submit/tizen_tv/20150603.064601~1^2~63 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=90740cacc2a6da7053ef46741178017ca111c7ac;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [KeyManager] Implement JS generateKeyPair [Verification] tizen.keymanager.generateKeyPair(new tizen.Key("a", "b", true), new tizen.Key("c", "d", true), "RSA", "1024", function() {}, function() {}); Change-Id: I07aaa0e21dd35634ecbc3eae08861ebc1dde70d4 Signed-off-by: Przemyslaw Ciezkowski --- diff --git a/src/keymanager/keymanager_api.js b/src/keymanager/keymanager_api.js index 0ff1388f..47d314c5 100644 --- a/src/keymanager/keymanager_api.js +++ b/src/keymanager/keymanager_api.js @@ -4,6 +4,26 @@ var validator = xwalk.utils.validator; var converter = xwalk.utils.converter; +var type = xwalk.utils.type; +var native = new xwalk.utils.NativeManager(extension); + +var KeyPairType = { + "RSA": "RSA", + "ECDSA": "ECDSA", + "DSA": "DSA" +}; + +var KeyStrength = { + "1024": "1024", + "2048": "2048", + "4096": "4096" +}; + +var EllipticCurveType = { + "EC_PRIME192V1": "EC_PRIME192V1", + "EC_PRIME256V1": "EC_PRIME256V1", + "EC_SECP384R1": "EC_SECP384R1" +}; var KeyType = { "KEY_NONE": "KEY_NONE", @@ -116,7 +136,63 @@ function KeyManager() { } KeyManager.prototype.generateKeyPair = function() { - + var args = validator.validateArgs(arguments, [ + { + name: "privKeyName", + type: validator.Types.PLATFORM_OBJECT, + values: Key + }, + { + name: "pubKeyName", + type: validator.Types.PLATFORM_OBJECT, + values: Key + }, + { + name: 'type', + type: validator.Types.ENUM, + values: Object.keys(KeyPairType) + }, + { + name: 'size', + type: validator.Types.ENUM, + values: Object.keys(KeyStrength) + }, + { + name: 'successCallback', + type: validator.Types.FUNCTION, + optional: true, + nullable: true + }, + { + name: 'errorCallback', + type: validator.Types.FUNCTION, + optional: true, + nullable: true + }, + { + name: 'ellipticCurveType', + type: validator.Types.ENUM, + values: Object.keys(EllipticCurveType), + optional: true, + nullable: true + } + ]); + + native.call('KeyManager_generateKeyPair', { + privKeyName: args.privKeyName, + pubKeyName: args.pubKeyName, + type: args.type, + size: args.size, + ellipticCurveType: args.ellipticCurveType ? args.ellipticCurveType : null + }, function(msg) { + if (native.isFailure(msg)) { + if (type.isFunction(args.errorCallback)) { + args.errorCallback(native.getErrorObject(msg)); + } + } else { + native.callIfPossible(args.successCallback); + } + }); }; KeyManager.prototype.loadFromPKCS12File = function() {