From d9a0a4616589112977330ee1bedeaa93bc22059a Mon Sep 17 00:00:00 2001 From: Abhishek Sinha Date: Sun, 6 Jan 2019 17:43:35 +0530 Subject: [PATCH] finished encryption functionality --- supernode/flosend.html | 3557 --------- supernode/index.html | 281 +- supernode/index_promises.html | 12333 -------------------------------- 3 files changed, 200 insertions(+), 15971 deletions(-) delete mode 100644 supernode/flosend.html delete mode 100644 supernode/index_promises.html diff --git a/supernode/flosend.html b/supernode/flosend.html deleted file mode 100644 index 51d267a..0000000 --- a/supernode/flosend.html +++ /dev/null @@ -1,3557 +0,0 @@ - - - - - - - - -

Listunspent UTXOs

- - - -
- -

For Simplicity, One Input and Two Outputs are taken, locktime is set to 0, sequence is set to max. - SIGHASH_ALL option is chosen for signing raw Transaction.

-

Inputs

- - - - - - - -

Outputs

- - - - -
- - - - -
-

Enter the Transaction Data

- - -

WIF Key

- - -

- -


-

Signed Raw Transaction

- - -

Broadcast Transaction

-

- - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/supernode/index.html b/supernode/index.html index b579379..c9813a9 100644 --- a/supernode/index.html +++ b/supernode/index.html @@ -8612,47 +8612,47 @@ - //ACTUAL CODE - //Initializations -- common for both sender and receiver - exportData = {}; + // //ACTUAL CODE + // //Initializations -- common for both sender and receiver + // exportData = {}; - (function(){ + // (function(){ - //Part 1: Sender side + // //Part 1: Sender side - var senderECKeyData = {}; - var senderDerivedKey = {XValue:"",YValue:""}; - var senderPublicKeyString = {}; + // var senderECKeyData = {}; + // var senderDerivedKey = {XValue:"",YValue:""}; + // var senderPublicKeyString = {}; - senderECKeyData.privateKey = ellipticCurveEncryption.senderRandom(); - senderPublicKeyString = ellipticCurveEncryption.senderPublicString(senderECKeyData.privateKey); + // senderECKeyData.privateKey = ellipticCurveEncryption.senderRandom(); + // senderPublicKeyString = ellipticCurveEncryption.senderPublicString(senderECKeyData.privateKey); - //First get the receivers public key string. Here we will assume some public key string - //In real life this will be done by receiver + // //First get the receivers public key string. Here we will assume some public key string + // //In real life this will be done by receiver - //Part 2: Receiver Side + // //Part 2: Receiver Side - var receiverDerivedKey = {XValue:"",YValue:""}; - var receiverECKeyData = {}; - var receiverPublicKeyString = {}; + // var receiverDerivedKey = {XValue:"",YValue:""}; + // var receiverECKeyData = {}; + // var receiverPublicKeyString = {}; - receiverECKeyData.privateKey = ellipticCurveEncryption.receiverRandom(); - receiverPublicKeyString = ellipticCurveEncryption.receiverPublicString(receiverECKeyData.privateKey); + // receiverECKeyData.privateKey = ellipticCurveEncryption.receiverRandom(); + // receiverPublicKeyString = ellipticCurveEncryption.receiverPublicString(receiverECKeyData.privateKey); - //Part 3: Back to sender side to derive shared key - senderDerivedKey = ellipticCurveEncryption.senderSharedKeyDerivation(receiverPublicKeyString.XValuePublicString,receiverPublicKeyString.YValuePublicString,senderECKeyData.privateKey); + // //Part 3: Back to sender side to derive shared key + // senderDerivedKey = ellipticCurveEncryption.senderSharedKeyDerivation(receiverPublicKeyString.XValuePublicString,receiverPublicKeyString.YValuePublicString,senderECKeyData.privateKey); - //Part 4: The receiver will use the same method to derive the shared key - receiverDerivedKey = ellipticCurveEncryption.receiverSharedKeyDerivation(senderPublicKeyString.XValuePublicString,senderPublicKeyString.YValuePublicString,receiverECKeyData.privateKey); + // //Part 4: The receiver will use the same method to derive the shared key + // receiverDerivedKey = ellipticCurveEncryption.receiverSharedKeyDerivation(senderPublicKeyString.XValuePublicString,senderPublicKeyString.YValuePublicString,receiverECKeyData.privateKey); - exportData.senderPublicKeyString = senderPublicKeyString; - exportData.receiverPublicKeyString = receiverPublicKeyString; - exportData.senderDerivedKey = senderDerivedKey; - exportData.receiverDerivedKey = receiverDerivedKey; + // exportData.senderPublicKeyString = senderPublicKeyString; + // exportData.receiverPublicKeyString = receiverPublicKeyString; + // exportData.senderDerivedKey = senderDerivedKey; + // exportData.receiverDerivedKey = receiverDerivedKey; - //Check on console. senderDerivedKey should be same as receiverDerivedKey - })(); + // //Check on console. senderDerivedKey should be same as receiverDerivedKey + // })(); @@ -9227,6 +9227,143 @@ } + + + @@ -9425,9 +9573,8 @@ case "trade_buy": localbitcoinplusplus.rpc.prototype.filter_legit_requests(function (is_valid_request) { - if (is_valid_request !== true) { - return false; - } + if (is_valid_request !== true) return false; + request.response = localbitcoinplusplus.trade.prototype.trade_buy.call(this, ...request.params, function (supernode_signed_res) { @@ -9507,7 +9654,7 @@ } params.depositor_public_key = requester_public_key; - if (params.product == "BTC") { + if (params.product == "BTC") { /************************************************************************** // YOU HAVE TO PROVIDE BTC KEYS HERE. CHANGE IT LATER ****************************************************************************/ @@ -9768,10 +9915,8 @@ case "withdraw_request_method": localbitcoinplusplus.rpc.prototype.filter_legit_requests(function (is_valid_request) { - if (is_valid_request !== true) { - return false; - } - + if (is_valid_request !== true) return false; + if (typeof params.product !== "undefined" && localbitcoinplusplus.master_configurations.validAssets.includes(params.product) && typeof params.withdrawing_amount !== "undefined" && @@ -10108,8 +10253,6 @@ break; } } - - //request.response = request.method(); // if successful return request.toString(); // return to client }, @@ -10221,7 +10364,6 @@ for (var key in params) { if (params.hasOwnProperty(key)) { - //console.log(key + " -> " + params[key]); if (typeof key == undefined || key.trim() == "" || key == null) { throw new Error("Incomplete or invalid request!"); } @@ -11493,6 +11635,24 @@ JSON.stringify(res_obj)); doSend(JSON.stringify(response_from_sever)); // send response to client break; + + + case "testMessageBroadcasting": + console.log(res_obj); + try { + let data = res_obj.params[0]; + let msg = localbitcoinplusplus.encrypt.decryptMessage(data.secret, data.senderPublicKeyString); + console.log(msg); + + } catch (error) { + console.error(error); + + } + break; + + case "MessageForMiddleman": + console.log(res_obj); + break; default: break; @@ -11810,47 +11970,6 @@ }; }); } - // async function readAllDB(tablename) { - // var objectStore = db.transaction(tablename).objectStore(tablename); - // let response = []; - - // return new Promise((resolve, reject) => { - // var open_cursor = objectStore.openCursor(); - // resolve(open_cursor); - // }).then((result)=>{ - // result.onerror = function (event) { - // throw new Error("Error fetching data"); - // }; - // result.onsuccess = function (event) { - // let cursor = event.target.result; - // if (cursor) { - // response.push(cursor.value); - // cursor.continue(); - // } else { - // return response; - // } - // }; - // }); - - // } - // function readAllDB(tablename) { - // return new Promise((resolve, reject)=>{ - // var objectStore = db.transaction(tablename).objectStore(tablename); - // let response = []; - // objectStore.openCursor().onerror = function (event) { - // reject("Error fetching data"); - // }; - // objectStore.openCursor().onsuccess = function (event) { - // let cursor = event.target.result; - // if (cursor) { - // response.push(cursor.value); - // cursor.continue(); - // } else { - // resolve(response); - // } - // }; - // }); - // } async function addDB(tablename, dbObject) { try { diff --git a/supernode/index_promises.html b/supernode/index_promises.html deleted file mode 100644 index 6f4de00..0000000 --- a/supernode/index_promises.html +++ /dev/null @@ -1,12333 +0,0 @@ - - - - - - - - Document - - - - - - -
- -
- -
Indexed DB
-
- - - -
-
-
- -
-
Generate New FLO Keys here:
- -
    -
    - -
    Asset Box
    -
    -
    -
    - -
    Sync
    -
    -
    -
    -
    - -
    Buy--Sell
    -
    -
    - Buy BTC -
      -
    • INR 10000
    • -
    • INR 50000
    • -
    • INR 100000
    • -
    -
    -
    - Sell BTC -
      -
    • INR 10000
    • -
    • INR 50000
    • -
    • INR 100000
    • -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file