from app.model.key import xpub_verify
from app.model.key import xprv_sign
from app.model.key import xprv_to_xpub
-from app.model.key import xprv_sign
from app.model.key import xprv_to_child_xprv
from app.model.key import xpub_to_child_xpub
from app.model.receiver import create_P2WPKH_program
entropy_str += hex_str[num]
return {
"entropy": entropy_str
- }
+ }
# entropy_to_mnemonic create mnemonic from 128 bits entropy(the entropy_str length is 32)
mnemonic_str += " "
return {
"mnemonic": mnemonic_str[:-1]
- }
+ }
# mnemonic_to_seed create seed from mnemonic
seed_str = pbkdf2.PBKDF2(password_str, salt_str, iterations=2048, digestmodule=hashlib.sha512, macmodule=hmac).hexread(64)
return {
"seed": seed_str
- }
+ }
# s_str must be >= 32 bytes long and gets rewritten in place.
root_xprv_str = prune_root_scalar(hc_str[:64]).hex() + hc_str[64:]
return {
"root_xprv": root_xprv_str
- }
+ }
# xprv_to_xpub derives new xpub from xprv
xpub_str = xpub.hex()
return {
"xpub": xpub_str
- }
+ }
# xprv_to_expanded_private_key create expanded private key from xprv
expanded_private_key_str = xprv_str[:64] + hc_str[64:]
return {
"expanded_private_key": expanded_private_key_str
- }
+ }
# xpub_to_public_key create 32 bytes public key from xpub
public_key_str = xpub_str[:64]
return {
"public_key": public_key_str
- }
+ }
def prune_intermediate_scalar(f):
child_xprv_str = xprv_str
return {
"child_xprv": child_xprv_str
- }
+ }
# xpub_to_child_xpub create new xpub through the path
child_xpub_str = xpub_str
return {
"child_xpub": child_xpub_str
- }
+ }
# xprv_sign sign message
signature_str = signature_bytes.hex()
return {
"signature": signature_str
- }
+ }
# xpub_verify verify signature
result = verify(xpub_to_public_key(xpub_str)['public_key'], signature_str, message_str)['result']
return {
"result": result
- }
+ }
def create_new_key():
dataType: 'json',
}).done(function(data){
console.log(data);
- layer.msg('创建成功')
+ layer.msg('签名成功')
$('#txtSignature').val(data.signature)
}).fail(function(err){
- layer.alert('创建失败' + err);
+ layer.alert('签名失败' + err);
});
})
// 清除消息签名
}).done(function(data){
console.log(data);
layer.msg('验证成功')
- if (data.result == true) {
- $('#txtVerifyResult').val("True")
- } else {
- $('#txtVerifyResult').val("False")
- }
+ $('#txtVerifyResult').val(data.result)
}).fail(function(err){
- layer.alert('创建失败' + err);
+ layer.alert('验证失败,请检查输入数据格式是否正确' + err);
});
})
// 清除消息签名
<div class="form-group">
<label class="col-sm-2 control-label">Expanded Public Key</label>
<div class="col-sm-10">
- <input type="text" class="form-control" id="txtXpubVerify" placeholder="64 Bytes expanded public key, e.g. " maxlength="128">
+ <input type="text" class="form-control" id="txtXpubVerify" placeholder="64 Bytes expanded public key, e.g. 1b0541a7664cee929edb54d9ef21996b90546918a920a77e1cd6015d97c56563d513bc370335cac51d77f0be5dfe84de024cfee562530b4d873b5f5e2ff4f57c" maxlength="128">
</div>
</div>
<!-- 消息 -->
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
- <a id="btnVerifySignatrue" class="btn btn-primary">Verify Signature</a>
+ <a id="btnVerifySignature" class="btn btn-primary">Verify Signature</a>
<a id="btnResetVerify" class="btn btn-primary">Reset</a>
</div>
</div>