From f208ee38bc1bb3dfcaadca64bc74c4a26da066d7 Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Fri, 1 Jan 2016 15:20:04 +0000 Subject: [PATCH] Optionally user supplied entropy, instead of the browser PRNG Disabled by default. Use only if you know what you are doing, and are using enough entropy. A hash of the supplied string is used as the random seed. --- monero-wallet-generator.html | 25 ++++++++++++++++++------- monero-wallet-generator.html.asc | 26 +++++++++++++------------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/monero-wallet-generator.html b/monero-wallet-generator.html index 0285c83..c6f71b0 100644 --- a/monero-wallet-generator.html +++ b/monero-wallet-generator.html @@ -8278,6 +8278,8 @@ var cnBase58 = (function () { } return out.join(""); } + this.bintohex = bintohex; + b58.bintohex = bintohex; function strtobin(str) { var res = new Uint8Array(str.length); @@ -10250,6 +10252,8 @@ bC0zLjUsMjAuNGgtNkwyNDQuOCwzMTAuNkwyNDQuOCwzMTAuNnoiLz4KPC9nPgo8L3N2Zz4K">
+

Custom entropy (leave empty to use PRNG)

+

or

@@ -10444,21 +10448,28 @@ current_lang='english'; keys = null; function genwallet(lang) { + spend_key_widget = document.getElementById("spend_key_widget"); + view_key_widget = document.getElementById("view_key_widget"); + address_widget = document.getElementById("address_widget"); + address_qr_widget = document.getElementById("address_qr_widget"); + mnemonic_widget = document.getElementById("mnemonic_widget"); + user_entropy_widget = document.getElementById("user_entropy_widget") + if (lang!=null) { current_lang = lang; } else { - seed = cnUtil.sc_reduce32(cnUtil.rand_32()); + var user_entropy = user_entropy_widget.value; + if (user_entropy === "") { + seed = cnUtil.sc_reduce32(cnUtil.rand_32()); + } + else { + seed = cnUtil.sc_reduce32(cnUtil.cn_fast_hash(cnBase58.bintohex(user_entropy))); + } keys = cnUtil.create_address(seed); } mnemonic = mn_encode(seed,current_lang); - spend_key_widget = document.getElementById("spend_key_widget"); - view_key_widget = document.getElementById("view_key_widget"); - address_widget = document.getElementById("address_widget"); - address_qr_widget = document.getElementById("address_qr_widget"); - mnemonic_widget = document.getElementById("mnemonic_widget"); - spend_key_widget.innerHTML = keys.spend.sec; view_key_widget.innerHTML = keys.view.sec; address_widget.innerHTML = keys.public_addr; diff --git a/monero-wallet-generator.html.asc b/monero-wallet-generator.html.asc index a9b1160..49c0a39 100644 --- a/monero-wallet-generator.html.asc +++ b/monero-wallet-generator.html.asc @@ -1,17 +1,17 @@ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 -iQIcBAABAgAGBQJWOKIoAAoJEGhvB0VNbO/Dg4oQAJ3BfmphKzlGUA+e8au6HCZw -4qgflwjOD+FRNP2335WNibST9cmCFd7rBvtbihanTYwqgT3zqVJ20F+eCB0V1IEL -iSHCx0XBqM+AWd96m21DhFuvjr85lRHUdTqzV0iVssVXCBhT01ijdUC9KS3KN4Io -g8qTNZeRx370vSsuToal8He2CQ8lhyUSUZoExXDC9clB3Jxb6nRtGxK2TvNFjLWD -D3fp8qkJZWLFPl9tnIFr9NCEbLegTVmo42jEtjjD6+e6z8hdR6aINuUKnIVUizbW -Ls5WQm2DjjS7qDHM6BfYAqTfmjqTbmkgRQGmi8Zj9sfH80Idg02efuMP3XWdLgVE -bIIboYkKacNQ7J9obDwTEkhj9Fh4OY5VgUhaLGdE3dEiPrGJchsALr+bEt6yv5q3 -Y8668QvAZrw/j44a7V3gmEYHf1iZwhsI969SQAO0jcXfpgIv3r8pHJoULfdk0iB/ -kYSYQhhPkMfRnc61Jt0JF9Y7xJZ1ZehQuHngypUOVP9t9rqbDrk/wOHIZOCpunuJ -e68p+L5n9xQGG7Ha23HoaVkq1sbqCmeQcTKnuUlmUzr148CXV6RptL/R5HV+vCJQ -IvmsNgStDmEUA41UKB4eRKEuPOt5PAYzgp1KCO0fB/DEFxkprSghoBSb/GREUjIy -MhZiF2//7FLRmg5x14kd -=jZhC +iQIcBAABAgAGBQJWhpkbAAoJEGhvB0VNbO/DvjIP/j3nMpxXXDHxg2dJ4pv7yzDY +xwDpHKMn+l1VtxNsyD63B1IIxWWKnlXIgCx6xJmYRgEN7SZJNw1+yMF0qaZeLalO +HcZz9CaZMhvJHgjlfl+3NX+OIX386PHtYDUQIzINYdJ+zXe4v9n+1Vativ4Sd5P/ +6Io+40DRTLMkIVTP1lVAXxSsITOhl58rBKQ6h5Cu5+e6pbEeKJPaDOAGLpAASB96 +HuMMLMuI7af1otCFJO/pYS9tH2T75j/Y79EYiIvWjNQynZ1PdGOEMleXwlUxY77x +owRRGgWhKuMys+aBxHbm77R1Fbr2KFxGRK4edXSIIsqkdkQIie3oPgACHzoKf9hl +UEpv3XIzX454VMz4agILd1haAmuVcqJA3yMuG6iNwxKpdBtGOBA3wy97lugqu02B +5jYSsH4i8WfWpivVhkU+h6wCG0CyspOYs5ypTRqlw7fkrencYdEkItVH51uF48cb +6knNtKnrfStQ9q3iGxxnZMfP6Pk7jsSD9Cgpjq/Z0IHd64y6k6fcS8RRZHEso836 +M+BWUNyygR8lw60NlEZRSRgpZaXRB/14XmDz0pzoxQzvwbSMjGPtdqKRVRev5Uom +C/ZolO2svAZ8JyOb+QYbsIRZ9oIO30Fe9YJqSDEgcrXdyyzCnFocxo7+8nOhFjPM +aZkgXOzI2ArMN1LQ/tmQ +=eAUx -----END PGP SIGNATURE-----