from app.api.resources import Gm_Xprv_Sign
from app.api.resources import Get_Gm_P2WPKH_Program
from app.api.resources import Get_Gm_Address
+from app.api.resources import Get_Gm_New_Key
blueprint = Blueprint('api', __name__, url_prefix='/api/v1')
api.add_resource(Gm_Xpub_Verify, '/gm_xpub_verify')
api.add_resource(Gm_Xprv_Sign, '/gm_xprv_sign')
api.add_resource(Get_Gm_P2WPKH_Program, '/get_gm_P2WPKH_program')
-api.add_resource(Get_Gm_Address, '/get_gm_address')
\ No newline at end of file
+api.add_resource(Get_Gm_Address, '/get_gm_address')
+api.add_resource(Get_Gm_New_Key, '/get_gm_new_key')
\ No newline at end of file
from app.model.key_gm import gm_xprv_sign
from app.model.receiver import get_gm_P2WPKH_program
from app.model.receiver import get_gm_address
+from app.model.key_gm import get_gm_new_key
parser = reqparse.RequestParser()
network = args.get('network_str')
address = get_gm_address(control_program, network)
return address
+
+class Get_Gm_New_Key(Resource):
+
+ def post(self):
+ return get_gm_new_key()
from gmssl import sm2, func
import random
from app.model import pn
+from app.model import key
+from app.model import receiver
# get_gm_root_xprv create rootxprv from seed
# seed_str length is 512 bits.
result = sm2_crypt.verify(signature_str, data)
return {
"result": result
+ }
+
+
+def get_gm_new_key():
+ entropy_str = key.create_entropy()['entropy']
+ mnemonic_str = key.entropy_to_mnemonic(entropy_str)['mnemonic']
+ seed_str = key.mnemonic_to_seed(mnemonic_str)['seed']
+ root_xprv_str = get_gm_root_xprv(seed_str)['root_xprv']
+ xpub_str = get_gm_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
}
\ No newline at end of file