def create_account_info(self, label: str, pwd: str, salt: str,
                         private_key: str) -> AccountInfo:
     acct = self.__create_account(label, pwd, salt, private_key, True)
     info = AccountInfo()
     info.address_base58 = Address.from_public_key(
         acct.get_public_key_bytes()).b58encode()
     info.public_key = acct.get_public_key_bytes().hex()
     info.encrypted_pri_key = acct.export_gcm_encrypted_private_key(
         pwd, salt)
     info.address_u160 = acct.get_address().to_bytes().hex()
     info.salt = salt
     return info
예제 #2
0
 def __init__(self, private_key: str or bytes, scheme=SignatureScheme.SHA256withECDSA):
     self.__signature_scheme = scheme
     if scheme == SignatureScheme.SHA256withECDSA:
         self.__key_type = KeyType.ECDSA
     elif scheme == SignatureScheme.SHA3_384withECDSA:
         self.__key_type = KeyType.ECDSA
     elif scheme == SignatureScheme.SHA3_384withECDSA:
         self.__key_type = KeyType.ECDSA
     elif scheme == SignatureScheme.SHA512withECDSA:
         self.__key_type = KeyType.ECDSA
     elif scheme == SignatureScheme.SHA3_224withECDSA:
         self.__key_type = KeyType.ECDSA
     else:
         raise TypeError
     if isinstance(private_key, bytes) and len(private_key) == 32:
         self.__private_key = private_key
     elif isinstance(private_key, str) and len(private_key) == 64:
         self.__private_key = bytes.fromhex(private_key)
     else:
         raise SDKException(ErrorCode.invalid_private_key)
     self.__curve_name = Curve.P256
     self.__public_key = Signature.ec_get_public_key_by_private_key(self.__private_key, self.__curve_name)
     self.__address = Address.from_public_key(self.__public_key)