[KeyManager] Certificate JS methods
authorPrzemyslaw Ciezkowski <p.ciezkowski@samsung.com>
Fri, 24 Apr 2015 08:24:24 +0000 (10:24 +0200)
committerPawel Andruszkiewicz <p.andruszkie@samsung.com>
Mon, 11 May 2015 11:58:04 +0000 (20:58 +0900)
[Verification]
c = new tizen.Certificate("a", "b", true);
c.save("test", function() {}, function() {}, "pass");
c.loadFromFile("documents/cert.pem",  function() {}, function() {}, "pass");
c.remove("pass");

Change-Id: Ib06eddfcef4a0b121f3a6c131e5d0793934c9966
Signed-off-by: Przemyslaw Ciezkowski <p.ciezkowski@samsung.com>
src/keymanager/keymanager_api.js

index 0506dfb..26ced52 100644 (file)
@@ -139,15 +139,84 @@ function Certificate(name, password, extractable, rawCert) {
 }
 
 Certificate.prototype.save = function() {
+  var args = validator.validateArgs(arguments, [
+    {
+      name: 'rawCert',
+      type: validator.Types.STRING
+    },
+    {
+      name: 'successCallback',
+      type: validator.Types.FUNCTION,
+      nullable: true
+    },
+    {
+      name: 'errorCallback',
+      type: validator.Types.FUNCTION,
+      optional: true,
+      nullable: true
+    }
+  ]);
 
+  native.call('KeyManager_saveCertificate', {
+    certificate: this,
+    rawCert: args.rawCert
+  }, function(msg) {
+    if (native.isFailure(msg)) {
+      if (type.isFunction(args.errorCallback)) {
+        args.errorCallback(native.getErrorObject(msg));
+      }
+    } else {
+      native.callIfPossible(args.successCallback);
+    }
+  });
 };
 
 Certificate.prototype.loadFromFile = function() {
+  var args = validator.validateArgs(arguments, [
+    {
+      name: 'fileURI',
+      type: validator.Types.STRING
+    },
+    {
+      name: 'successCallback',
+      type: validator.Types.FUNCTION,
+      nullable: true
+    },
+    {
+      name: 'errorCallback',
+      type: validator.Types.FUNCTION,
+      optional: true,
+      nullable: true
+    },
+    {
+      name: 'password',
+      type: validator.Types.STRING,
+      optional: true
+    }
+  ]);
 
+  native.call('KeyManager_loadCertificateFromFile', {
+    certificate: this,
+    fileURI: args.fileURI,
+    password: args.password
+  }, function(msg) {
+    if (native.isFailure(msg)) {
+      if (type.isFunction(args.errorCallback)) {
+        args.errorCallback(native.getErrorObject(msg));
+      }
+    } else {
+      native.callIfPossible(args.successCallback);
+    }
+  });
 };
 
 Certificate.prototype.remove = function() {
-
+  var ret = native.callSync('KeyManager_removeCertificate', {
+    certificate: this
+  });
+  if (native.isFailure(ret)) {
+    throw native.getErrorObject(ret);
+  }
 };
 
 function Data(name, password, extractable, rawData) {