added the webcrypto functionality in strappCrypto
[henge/kiak.git] / strappCrypto.js
index cc6fd75..e34db01 100644 (file)
@@ -8,6 +8,7 @@
  * @copyright Strapp.io
  */
 
+/* TODO: Replace with filesystem operations */
 import {setItem, getItem} from "localForage"
 
 /** @func Generates a CryptoKey and returns a SHA-256 client key
@@ -38,20 +39,22 @@ function generateKey() {
   })
 }
 
-/** @func Encrypts data with a public key
- *  @desc 
+/** @func Encrypts data with a public key assuming RSA
+ *  @desc https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt
  *  @arg {String} Public Key      
- *  @return {Object} The encrypted data
+ *  @return {Object} The encrypted data as a promise
  */
 function encryptData(publicKey, data) {
-
+  return crypto.subtle.encrypt({"name": "RSA-OAEP"})
 }
 /** @func Decrypts data with a private key
- *  @desc 
+ *  @desc https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt
  *  @arg {String} Private key to decrypt data      
- *  @return {Object} The decrypted data
+ *  @return {Object} The decrypted data as a promise
  */
-function decryptData(privateKey, data) {
+function decryptData(privateKey, cipherText) {
+  /* TODO: Pass in private key or get it from localForage? */
+  return crypto.subtle.decrypt({"name":"RSA-OAEP"}, privateKey, cipherText)
 }
  
-function 
+