def test_sign_and_verify(self): unsigned = base64.b64encode('Test Message'.encode()) keypair = KeyPair( public='1869b7ef29d58026217e9cf163cbfbd0de889bdf1bf4daebf5433a312f5b8d6e', secret='56b6a77093d6fdf14e593f36275d872d75de5b341942376b2a08759f3cbae78f') # Sign message signed = async_core_client.crypto.sign(unsigned=unsigned, keys=keypair) self.assertEqual( '+wz+QO6l1slgZS5s65BNqKcu4vz24FCJz4NSAxef9lu0jFfs8x3PzSZRC+pn5k8+aJi3xYMA3BQzglQmjK3hA1Rlc3QgTWVzc2FnZQ==', signed['signed']) self.assertEqual( 'fb0cfe40eea5d6c960652e6ceb904da8a72ee2fcf6e05089cf835203179ff65bb48c57ecf31dcfcd26510bea67e64f3e6898b7c58300dc14338254268cade103', signed['signature']) # Verify signature verified = async_core_client.crypto.verify_signature( signed=signed['signed'], public=keypair.public) self.assertEqual(unsigned.decode(), verified) self.assertEqual( base64.b64decode(unsigned), base64.b64decode(verified.encode())) with self.assertRaises(TonException): async_core_client.crypto.sign( unsigned=unsigned, keys=KeyPair(public='1', secret='2')) with self.assertRaises(TonException): async_core_client.crypto.verify_signature( signed='simple', public=keypair.public)
def setUp(self) -> None: self.keypair = KeyPair.load( path=os.path.join(SAMPLES_DIR, 'keys_raw.json'), is_binary=False) self.target_abi = Abi.from_path( path=os.path.join(SAMPLES_DIR, 'DebotTarget.abi.json')) with open(os.path.join(SAMPLES_DIR, 'DebotTarget.tvc'), 'rb') as fp: self.target_tvc = base64.b64encode(fp.read()).decode()
def setUp(self) -> None: # Events contract params self.events_abi = Abi.from_path( path=os.path.join(SAMPLES_DIR, 'Events.abi.json')) self.keypair = KeyPair( public= '4c7c408ff1ddebb8d6405ee979c716a14fdd6cc08124107a61d3c25597099499', secret= 'cc8929d635719612a9478b9cd17675a39cfad52d8959e8a177389b8c0b9122a7') with open(os.path.join(SAMPLES_DIR, 'Events.tvc'), 'rb') as fp: self.events_tvc = base64.b64encode(fp.read()).decode() self.events_time = 1599458364291 self.events_expire = 1599458404
def open_key(self): path_to_file, _ = QFileDialog.getOpenFileName(self, self.tr("Load keys"), self.tr("~/Desktop/"), self.tr("Keys (*.keys.json)")) key = KeyPair.load(path_to_file,True) self.main_key = key self.public_key.setText(QCoreApplication.translate("MainWindow", u'public_key: ' + key.public))
def __callback(result): return KeyPair(**result)