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() {