PC_MAGAS Δημοσ. 19 Ιανουαρίου 2019 Δημοσ. 19 Ιανουαρίου 2019 Προσπαθώ να υλοποιήσω τον αλγόριθμο που φαίνετε στο επισυναπτόμενο αρχείο σε node.js. Όμως υπάρχει ένα κομμάτι που με προβληματίζει, στο τελικό βήμα δυσκολεύομαι να σκευτώ τρόπο για το πως να κάνω το iteration: For j = i, . . . , i + n − 1: z_j,j+1:= z_j−1,j ⊕ z_j H προσέγγισή μου στο βήμα αυτό είναι ή: const calculateTempValuesforSecretKey = (listSorted, participantJid, uid, callback) => { const index = _.findIndex(listSorted, friendToCheck => friendToCheck.jid === participantJid); console.log(index); if (index >= 0) { const itemsToCheck = _.filter(listSorted, (value, i, list) => { if (i >= index && i <= (i + list.length -1) ) return value; }); _.each(itemsToCheck, (current, i) => { i=i+1; try { if( i+1 > itemsToCheck.length ) return; const next = itemsToCheck[i+1]; if (!next) return; cryptoHelpers.xorBuffers([generateBuffer(current.d), generateBuffer(next.z)], (value) => { console.log('iValues:' ,i, i+1); itemsToCheck[i+1].d = value; }); } catch (e) { console.error(e); return } }); let buffers = _.map(itemsToCheck, participant => participant.d); buffers = _.filter(buffers, value => typeof value !== 'undefined'); if (typeof uid === 'string') uid = Buffer.from(uid, 'utf-8'); buffers.push(uid); console.log(buffers); return callback(cryptoHelpers.hashBufferList(buffers)); }; }; Παρόλα αυτά ο παραπάνω κώδικας με οδηγεί σε λανθασμένο κλειδί. Έτσι υποθέτω ότι δεν γίνετε το iteration σωστά. Το list sorted είναι το ακόλουθο array: [ { jid: '[email protected]', creator: false, nick: 'admin', status: 'PARAMETERS_CONFIGURED', pubKey: <Buffer d2 97 4b a2 0e ef 20 48 bb e1 59 5b 52 d7 a7 a0 9b 01 80 29 6e ad 88 48 90 53 4c a3 05 dc d2 e3 f7 aa 07 18 ba d6 63 f3 9c cb ea d2 3c c3 56 27 4d fe ... >, signatureKey: '-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEA7EGFKWEmphk+YHZwUcyfPXAZ9tO5CMqa5KA2Ctumt0tD3NIBYCoO4amdaJE9\ngCcg728VyVD92APN/XJenf6BTI1P4GDkoD+P4BkJ8RQmr1Qu+B8hfrqz9y7dB/rO10XuEvii\nloGvtxjUdkU/k4BIwUBepb3+camLUxjtsPnWcwFNu9gLsysckS4cBbI5cuC4vp1TDDEwlLkq\nqzcHbXRiNnn27EqxQu6uwHlDW0b543trFTYw32S7/5QEMFtvp3V4jtg/ka5eLErO14mn1gHJ\njJYBoFAvv6YrRx+hFLuCi7D0WDnChNOb9/5eYa6ixd3bBzUqztBnqELONt/SZsAy7QIDAQAB\n-----END RSA PUBLIC KEY-----\n', signaturePrivKey: undefined, uidPart: 'admin|d2974ba20eef2048bbe1595b52d7a7a09b0180296ead884890534ca305dcd2e3f7aa0718bad663f39ccbead23cc356274dfe0b0795b700f12cba64ab66f8a367c7c24b9d2266f974151c48b1a2c36936c64a3037eb4f21f80b4e15a910f2f0f45542640027138281389a77d59f20540187b5f539fc8462ee4f5f624a9adcb7b21ce87b5599c2f110a2f2900192f596850ba8bb82e46d6c0a25f78cb00c9f2de7470e04dc6b383fb7f340b9e17da45b86c362b4548e1c039dc7b893255a69e0eac95f078f0c5ab6f8142af18472ae23fdbdc6ff630013045fd74402f605a1b3799a9ff08cd5e28a1d0aa8f70413f37c3ada1c3217318d6ece7ec210bd8eb43402', z: '9028a43b6d3a4fc1981316fde2612191802c889b4ddb3ba2a639429506a70c9f', signature: '7c765c2f16b4328e761e10b94f39ba98d8f053d81814ffc0d1fd124c66164fa31cf22f3263e8a2c554355fd45945803b0cf1544b3f8e3084d2b3f0f11889c7d38f4260bce211d3a98bf5c86f156a84fc9b92fa7400f27f59f4dd862ff30e5b05c3b41d9d1a764766ad34ef2d0d8959edf599678d4b7fcf9218998b6a562adc49551f75c47e7a5d30186295e82dbea63839db1019d113fdc7ad24c53383d76e6afa7b451593cc41ed65ebd4f5be8170696a68cda784a3a603e5010b6a5690e4f58aa8c85337169863e1dd46f3134b06df11c7f2773544ea1701ff2fa2054ad82ef1aca73dd8aa418b3ed561997e3cbd6ec6aff172ffe17033bb6e76457721678d' }, { jid: '[email protected]', creator: false, nick: 'user', status: 'PARAMETERS_CONFIGURED', pubKey: <Buffer 6e a5 06 98 7f 5e 6b 6f f0 41 9c e0 63 bd af da e3 04 3b 7f bb f8 90 3b b8 bb f3 a3 ba 6b 43 6b 25 38 db 04 6b 3b 38 49 c1 30 7a b0 05 42 7e b3 7c ef ... >, signatureKey: '-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAiGXUbTBrIKvW/6LoSwGm6YyeKR/nJ/xlyAhIM3dCkHMc0vF1ZbE8J6OcR0ox\nDkuZt/XfLGbb8tk48o2LzmzZ7FX+fIXthfNKvUbJclTCoKWDMW5pJA8VonuZg44hB1pw5RJ8\nJ7N/b/+eBU9rulD8BDYPaA9ZC4e19zTFS4K3/Hc39MJFUhlQuqn4g1DUPZy0L51EFQvJU9Xq\nUDDgav3uQeJBDvJBItZJAFwD5oy44x7X7o3b8HsP7IM22ul3NqDus3q/3paqO239cZr3K7Yh\naALsnh1LyHpf5dFoClSB22s8T/wsSvkRBLW4iMoptaF1Y6vhRASuFfExG3eQNPFeZwIDAQAB\n-----END RSA PUBLIC KEY-----\n', signaturePrivKey: undefined, uidPart: 'user|6ea506987f5e6b6ff0419ce063bdafdae3043b7fbbf8903bb8bbf3a3ba6b436b2538db046b3b3849c1307ab005427eb37cefb07c35188ae593cf2afd357f84bf30db8215a2c192b90673cfef0d6f537c8e81d1d0559e85dd535e31ab63b1a01c3953759538c9fbb551e125a2f9351b4415cb8e5e88c641cf4e78e246f5e68fb1f0fbb03c850480a11a2eb2135e72e0afd2565d28148eb04a49065ba3e2675fd989589b14a4f171f4bf008e57f132272c6ac4a4fddf714747ece61b8a56002ca4d5088655c230c6809e21744d89cb585dcf06ba33c9cd183c64605f84a07ff6b6af6fb6362082c8ce39b4ea05faeaf9b2127dddd2cbae0089a0a9a219c907b2ae', z: '68c3cf83e5b44fc51187fb7b7442196510c03f985f0f76e045aaa764fb639cbb', signature: '5ea9816908e38f224b2b5b03fe9f396e684c35abbe5824a6fb14037b87cb16f62913fb741cb0d9e028fd17a54eb75e66db67ed4fa18951be46d248b42c10a31e1378cbcbed6c2d59996d1bfe513749b2a9bc3ae3ae54dcd30912c56199cfd0e4ef4e7a70ba9361f9601b85dc5ef05e1ee42278ca658c146de1596c570593c7f7aa42ae44e66edb5e016132bda1d13f1e458a5f780a41e3d81f6e0c169489961733f6292bed392a7288be3ec4108d8ac9ff3f0464037614fc8455d997ceea7aa4ffd9e0f3f4cb1cf6f5ae92b677f4d84cfb82bade5130c30fee66e9e46d12eedbe4d11820571c0d12bdbafcabade37a66bdd337e611e1485af620c4d56c56f164' }, { jid: '[email protected]', creator: false, nick: 'user2', status: 'PARAMETERS_CONFIGURED', pubKey: <Buffer 37 d8 be aa 46 3d 78 0d de a0 c6 b7 3a 1f 59 d8 07 83 a3 97 8a b5 90 f7 9c b0 4a 87 8a f0 90 ae a3 ff 1c bd 8a 5f 8a ff f3 19 fa 07 e6 4a 06 61 73 bd ... >, signatureKey: '-----BEGIN RSA PUBLIC KEY-----\nMIIBCgKCAQEAw4kDKi4+KcY18e4i48lalsnJ8RbT8iKGMnje6eczvovs/12e/uKwTDrAY08p\nZrhB+7N2bx21fQXy7IHpn33jXvd8aUYziUhe0knHa74w9xM8TWnFBje0LernBCJ6IHTiE9HO\n4rqlL03lbADt7ofw1IlHBkVxVT4fNnA3BfKrdkxxPOuVTTdb21Pflsd1639cnMuGG2jEXXs2\nppokNbGvAHagCC6XFElWNCMdl5/loznlwUm3GZL5GyihlOtHlkEm1t641CDkfdAKoyW9J2P7\nP30+0H5l4HhC030apxjnIpw8gDIPzeAtJhxM7WnrbOAi5vahIeP8NUE3i3J24pApAwIDAQAB\n-----END RSA PUBLIC KEY-----\n', signaturePrivKey: '-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEAw4kDKi4+KcY18e4i48lalsnJ8RbT8iKGMnje6eczvovs/12e/uKwTDrA\nY08pZrhB+7N2bx21fQXy7IHpn33jXvd8aUYziUhe0knHa74w9xM8TWnFBje0LernBCJ6IHTi\nE9HO4rqlL03lbADt7ofw1IlHBkVxVT4fNnA3BfKrdkxxPOuVTTdb21Pflsd1639cnMuGG2jE\nXXs2ppokNbGvAHagCC6XFElWNCMdl5/loznlwUm3GZL5GyihlOtHlkEm1t641CDkfdAKoyW9\nJ2P7P30+0H5l4HhC030apxjnIpw8gDIPzeAtJhxM7WnrbOAi5vahIeP8NUE3i3J24pApAwID\nAQABAoIBAQCxLJngg4wyH/bLY4LbsZxS2z8PJCch1KSSYTFi8erR8knpzfP+cntaZzXiBl22\nRKkNH7zlzB6hzV0jbke5C8GVUFy7qy+RajD5DH8VIn2NszFF19v92UV7AckX1wGgHSio2shC\nauq4JTYHmgP9ydGvU0A2739UxPhVRHKnAg7ZHa9SsElRVuCrLQz7wvsyDNIREyRGa7kUbC3I\nJaWoOUxwqdr0UDqcWpg70CqrKqyHbI4lkNoHhW/W1BhmcXSDxjudv3XA3TU+Jh9LIn4yuHnh\n/ZxjODfgXIxkJJXtt0sdq/2h9pbXuY+vUEntk8d18udvI7Y5nmbr+GFDrReYLxjxAoGBAOLY\nW57HvbFjBLFV2HuBzZsUlUPHnURomQxvTSZwP2/MYYuNESnN8YLv/ioJzwSprcHIoyHVVDJA\nLlazmlTUpQS3jk6GudrKno09nWlzTgwvjGaxRAKHiiInvZNNH3eaIQYfuFGa40gQFXT/87yV\nkT0kMY+kHdGW+tkCe3KK8ZOpAoGBANyqfz6xg/yEQrZr8K997QF+q7pcPpagowZwCTOiKTPp\nwVGnO6AvZigjrS5gSB0bxaatCSsxX7yzq5k67xE2ZnWtnHjWb7Tz7PpAKVHbgKZl/HcNTf1h\nk4LyG6m+SThUuRY7+BT4NtvZHeOW47MML3Fb/9EpQjIkxtcfPHP6isLLAoGBAOG4YBJytnKY\nEMdUoIDk/G3f4Vb8faTgX8pbxe0FrFnWiQmPaRCr+DFOFR5HfFMrc9ZrisfTul/2NSXYuSzI\nGxvCejvxG2Z2T6ZDNSsErRi7B333zbCmpfCukpjMGQ+tskahsYqiEJ5YQsGVHjb8rPSl2xsP\nNwyiqyDcs3GaiB9hAoGAcVMaYB8YUoG2JStQA0BfjGn6VY30ErVSpAa7owm/sUp2HrIM3Bob\nk7emw+9seY5+tjedQtJrgWSgVuQ+TI+slPjhJ+mwmrS+2lJDJifdbRdpTdbGW79V22TtMgJo\nZgaUu0d3A4Xp3oQlZnFiZNx4LPZ7bXaL6Wabu3TuPf3Ib3sCgYEApy0KWBIfmZqMRwyqx3w9\nBJRw6420vTfht/tRmJKgjU09kDY3UnDjT+xMCTlLAQGGvvRUuLPLJOSIy5O3hzm9mTc04DYo\npuvysGp1wKFuLy516AyjheKw/IrQG9PNIEZFsyoBf5EEuveV0HPhO2NPX4an7VxKdpXt5IVg\neLl2XHk=\n-----END RSA PRIVATE KEY-----\n', uidPart: 'user2|37d8beaa463d780ddea0c6b73a1f59d80783a3978ab590f79cb04a878af090aea3ff1cbd8a5f8afff319fa07e64a066173bd54f9763a7ba271711d6abed4b6ecde002afb930d0645267e6033c02dab3aa9beed8ae359b722e151cf1be308badf3ceb36462b96856bb9a7891406bb8ae07b15870a14d363746abc46d5b5c5acbfba8b51b93ce8a3a9c1c86c9e8c9f85bb7505536678ef0788da6fb493622d908bd0c55d914a1b120d9095b58314d285209b7b7516e694c75f970d191fc4b1a7d03c7a2c4cc54fde7a5a3e430e4ec258b48ba6b0cd10e7e00aaccf69b732f1ff6ddd9820d406467f462981d01056aea2d07eadf9ff64ffde807002ce212b4b55b4', z: <Buffer 45 26 c1 b1 db 6e cb b4 8a 05 14 c4 1c 88 de 7f 1e 99 bb 00 ef 14 08 fc 0b bf 91 fa 02 17 ef e4>, d: <Buffer 41 63 1f 8e 55 13 df c3 06 1c a4 4d 34 ca ce 86 ed b8 9e 3b d5 f6 72 c9 1b 58 0c eb 12 35 20 6b>, signature: '614dcc558a5cb79171443810439e955b58646ff60253faa97df513cad328adee63d0ea5f87843eaed98dccc057eaa8ccb4483817e2ae3ebc3ad7dc6113b158076f5015514046c2f21a8ead48897df031bfbcdfb131f3661a83b4a2ccb53f0517a50d6e6133b145c89bb4b2c03dc0807e003634e779a120873eba26feb47b8298bb836cff36b538387c07af4cffd1805ade4952fbf59cc8ca07fa7c636d6a2fb179c4336e02998058e4ec05ac669cd71b06d9aa65e318475cc75894365230217fd94c3699b593e2ae3a175623d8af516eea8bd3f3ed0ced039d2f871bdcf8ace3c1081ad33171c25c697d2fc71895708e0904ba2ada3a76a699d19dd631bb107a' } ] Ενώ η Generate Buffer είναι η εξής function: const generateBuffer = (value) => { if(Buffer.isBuffer(value)) return value; return Buffer.from(value, 'hex'); }; Παρόλα αυτά πάλι δυσκολεύομαι να κατανοήσω εάν έχω υλοποιήσει το iteration σωστά. Μπορείτε να με βοηθήσετε σε αυτό το κομμάτι;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα