From: Chengcheng Zhang <943420582@qq.com> Date: Tue, 15 Jan 2019 07:52:26 +0000 (+0800) Subject: add key X-Git-Url: http://git.osdn.net/view?p=bytom%2Fbytom-kit.git;a=commitdiff_plain;h=dbcfb5292aa57dd1ea83740eaad7d8692635b2cf add key --- diff --git a/app/api/__init__.py b/app/api/__init__.py index 0cba20e..b1e7e66 100644 --- a/app/api/__init__.py +++ b/app/api/__init__.py @@ -20,6 +20,7 @@ from app.api.resources import Create_Address from app.api.resources import Get_Path_From_Index from app.api.resources import Broadcast_Transaction from app.api.resources import Create_QRcode_Base64 +from app.api.resources import Create_New_Key blueprint = Blueprint('api', __name__, url_prefix='/api/v1') api = Api(blueprint) @@ -42,4 +43,5 @@ api.add_resource(Create_P2WPKH_Program, '/create_P2WPKH_program') api.add_resource(Create_Address, '/create_address') api.add_resource(Get_Path_From_Index, '/get_path_from_index') api.add_resource(Broadcast_Transaction, '/broadcast_transaction') -api.add_resource(Create_QRcode_Base64, '/create_qrcode_base64') \ No newline at end of file +api.add_resource(Create_QRcode_Base64, '/create_qrcode_base64') +api.add_resource(Create_New_Key, '/create_new_key') \ No newline at end of file diff --git a/app/api/resources.py b/app/api/resources.py index 18f7555..0ba347d 100644 --- a/app/api/resources.py +++ b/app/api/resources.py @@ -21,6 +21,7 @@ from app.model.receiver import create_address from app.model.receiver import get_path_from_index from app.model.receiver import create_qrcode_base64 from app.model.transaction import broadcast_transaction +from app.model.key import create_new_key parser = reqparse.RequestParser() @@ -204,4 +205,9 @@ class Create_QRcode_Base64(Resource): args = parser.parse_args() s = args.get('s') img = create_qrcode_base64(s) - return img \ No newline at end of file + return img + +class Create_New_Key(Resource): + + def post(self): + return create_new_key() \ No newline at end of file diff --git a/app/model/key.py b/app/model/key.py index 7fc1041..db9ddac 100644 --- a/app/model/key.py +++ b/app/model/key.py @@ -6,6 +6,7 @@ import ed25519 from app.model.signature import * from app.model.edwards25519 import * from app.model.utils import * +from app.model import receiver # create_key create 128 bits entropy def create_entropy(): @@ -384,4 +385,22 @@ def xpub_verify(xpub_str, message_str, signature_str): result = verify(xpub_to_public_key(xpub_str)['public_key'], signature_str, message_str) return { "result": result - } \ No newline at end of file + } + + +def create_new_key(): + entropy_str = create_entropy()['entropy'] + mnemonic_str = entropy_to_mnemonic(entropy_str)['mnemonic'] + seed_str = mnemonic_to_seed(mnemonic_str)['seed'] + root_xprv_str = seed_to_root_xprv(seed_str)['root_xprv'] + xpub_str = xprv_to_xpub(root_xprv_str)['xpub'] + xprv_base64 = receiver.create_qrcode_base64(root_xprv_str)['base64'] + return { + "entropy": entropy_str, + "mnemonic": mnemonic_str, + "seed": seed_str, + "xprv": root_xprv_str, + "xpub": xpub_str, + "xprv_base64": xprv_base64 + } + diff --git a/assets/main.js b/assets/main.js index 7b65582..8f46e92 100644 --- a/assets/main.js +++ b/assets/main.js @@ -1,59 +1,31 @@ $(function(){ + // 生成新熵 $('#btnCreateNewKey').click(function(){ console.log('创建新密钥'); $.ajax({ method: 'post', //get or post - url: 'http://127.0.0.1:5000/api/v1/create_entropy', + url: 'http://127.0.0.1:5000/api/v1/create_new_key', data: {}, dataType: 'json', }).done(function(data){ console.log(data); layer.msg('创建成功') + $('#txtEntropy').val(data.entropy) + $('#txtMnemonics').val(data.mnemonic) + $('#txtSeed').val(data.seed) + $('#txtRootXprv').val(data.xprv) + $('#txtRootXpub').val(data.xpub) }).fail(function(err){ layer.alert('创建失败' + err); }); - appendKey({}, '#keyContainer'); // 创建成功后传入返回数据调用,此处示例 }) - // 创建脚本 - $('#btnCreateScript').click(function(){ - console.log('创建脚本'); - $.ajax({ - method: 'get', //get or post - url: '/test', - data: {}, - dataType: 'json', - }).done(function(data){ - console.log(data); - layer.msg('创建成功') - }).fail(function(err){ - layer.alert('创建失败' + err); - }); - appendKey({}, '#scriptContainer'); - }) - // 追加内容到页面 - function appendKey(data, domId) { - var html = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; - $(domId).append(html); - } - - // 发送 - $('#btnSendToSide').click(function(e){ - e.stopPropagation(); - e.preventDefault(); - var data = $('#formToSide').serializeArray(); - var obj = {}; - $.each(data, function () { - obj[this.name] = this.value; - }); - $.ajax({ - method: 'post', - dataType: 'json', - url: '', - data: {data: JSON.stringify(obj)}, - }).done(function(res){ - console.log(res); - }).fail(function(err) { - layer.alert('err'); - }); + // 清除熵 + $('#btnReset').click(function(){ + console.log('清除'); + $('#txtEntropy').val('') + $('#txtMnemonics').val('') + $('#txtSeed').val('') + $('#txtRootXprv').val('') + $('#txtRootXpub').val('') }) -}); \ No newline at end of file +}); diff --git a/bytom-kit.html b/bytom-kit.html deleted file mode 100644 index ead5c6a..0000000 --- a/bytom-kit.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - Bytom Kit - - - - - - - - - - -
-
-

Key

-
-
-
- -
- -
- -
-
-
-
- - -
-
-
-
-
- - - \ No newline at end of file diff --git a/key.html b/key.html new file mode 100644 index 0000000..0b57f9a --- /dev/null +++ b/key.html @@ -0,0 +1,82 @@ + + + + + + + + Bytom Kit + + + + + + + + + + +
+
+

Key

+
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+
+ + + \ No newline at end of file