diff --git a/examples/example_bls_multisig.py b/examples/example_bls_multisig.py new file mode 100644 index 0000000..5dc96b8 --- /dev/null +++ b/examples/example_bls_multisig.py @@ -0,0 +1,28 @@ +from pactus.crypto.bls.private_key import PrivateKey +from pactus.crypto.bls.public_key import PublicKey +from pactus.crypto.bls.signature import Signature + + +def main() -> None: + msg = "some message".encode() + prv1 = PrivateKey.random() + prv2 = PrivateKey.random() + + pub1 = prv1.public_key() + pub2 = prv2.public_key() + + sig1 = prv1.sign(msg) + sig2 = prv2.sign(msg) + + agg_pub = PublicKey.aggregate([pub1, pub2]) + agg_sig = Signature.aggregate([sig1, sig2]) + + if not agg_pub.verify(msg, agg_sig): + print("Signature verification failed") + exit(1) + + print(f"Aggregated signature: {agg_sig.string()}") + + +if __name__ == "__main__": + main() diff --git a/examples/example_multisig.py b/examples/example_multisig.py deleted file mode 100644 index 84f3b91..0000000 --- a/examples/example_multisig.py +++ /dev/null @@ -1,18 +0,0 @@ -from pactus.crypto.bls.signature import Signature - - -def main() -> None: - sig1 = Signature.from_string( - "a628a8709fe00366d7150244447cc43e8637d76a20674b006b00f7a61109dab53ba5f1f66cd07219fd1e4a6bc7299d2d" - ) - sig2 = Signature.from_string( - "b0d544e501408283ac11ca8ae180f0991349252cc76f9db72011ea4917eca87d4640bcf3fab7b0ab95e9b94f05113587" - ) - - sig3 = Signature.aggregate([sig1, sig2]) - - print(f"Aggregated signature: {sig3.string()}") - - -if __name__ == "__main__": - main()