diff --git a/tests/test_misc.py b/tests/test_misc.py index 640b64728..c2176da89 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -1646,3 +1646,42 @@ def test_relative_config_dir(node_factory): assert os.path.isabs(l1.rpc.listconfigs()["lightning-dir"]) l1.stop() os.chdir(initial_dir) + + +def test_signmessage(node_factory): + l1 = node_factory.get_node() + + corpus = [[None, + "this is a test!", + l1.rpc.call('signmessage', ["this is a test!"])['zbase'], + l1.info['id']]] + + # Other contributions from LND users! + corpus += [ + ['@bitconner', + "is this compatible?", + 'rbgfioj114mh48d8egqx8o9qxqw4fmhe8jbeeabdioxnjk8z3t1ma1hu1fiswpakgucwwzwo6ofycffbsqusqdimugbh41n1g698hr9t', + '02b80cabdf82638aac86948e4c06e82064f547768dcef977677b9ea931ea75bab5'], + ['@duck1123', + 'hi', + 'rnrphcjswusbacjnmmmrynh9pqip7sy5cx695h6mfu64iac6qmcmsd8xnsyczwmpqp9shqkth3h4jmkgyqu5z47jfn1q7gpxtaqpx4xg', + '02de60d194e1ca5947b59fe8e2efd6aadeabfb67f2e89e13ae1a799c1e08e4a43b'], + ['@jochemin', + 'hi', + 'ry8bbsopmduhxy3dr5d9ekfeabdpimfx95kagdem7914wtca79jwamtbw4rxh69hg7n6x9ty8cqk33knbxaqftgxsfsaeprxkn1k48p3', + '022b8ece90ee891cbcdac0c1cc6af46b73c47212d8defbce80265ac81a6b794931'], + ] + + for c in corpus: + print("Shout out to {}".format(c[0])) + assert subprocess.check_output(['devtools/lightning-checkmessage', + c[1], c[2]]).decode('utf-8') == "Signature claims to be from key {}\n".format(c[3]) + + subprocess.run(['devtools/lightning-checkmessage', c[1], c[2], c[3]], check=True) + + with pytest.raises(subprocess.CalledProcessError): + subprocess.run(['devtools/lightning-checkmessage', + c[1] + "modified", c[2], c[3]], check=True) + + assert l1.rpc.call('checkmessage', [c[1], c[2], c[3]])['verified'] + assert not l1.rpc.call('checkmessage', [c[1] + "modified", c[2], c[3]])['verified']