MCPcopy Create free account
hub / github.com/BitVM/BitVM / run_winternitz_test

Function run_winternitz_test

bitvm/src/signatures/winternitz.rs:783–816  ·  view source on GitHub ↗
(
        ps: &Parameters,
        secret_key: &SecretKey,
        public_key: &PublicKey,
        message: &[u8],
        message_checker: Script,
        desired_outcome: bool,
    )

Source from the content-addressed store, hash-verified

781 }
782
783 fn run_winternitz_test<VERIFIER: Verifier, CONVERTER: Converter>(
784 ps: &Parameters,
785 secret_key: &SecretKey,
786 public_key: &PublicKey,
787 message: &[u8],
788 message_checker: Script,
789 desired_outcome: bool,
790 ) {
791 let o = Winternitz::<VERIFIER, CONVERTER>::new();
792 let standard_script = script! {
793 { o.sign(ps, secret_key, message) }
794 if desired_outcome == false {
795 { try_malicious(ps, message, &get_type_name::<VERIFIER>()) }
796 }
797 { o.checksig_verify(ps, &public_key) }
798 };
799
800 println!(
801 "For message_digit_len: {} and log2_base: {} {} with {} =>",
802 ps.message_digit_len,
803 ps.log2_base,
804 get_type_name::<VERIFIER>(),
805 get_type_name::<CONVERTER>()
806 );
807 test_script(ps, standard_script, message_checker, desired_outcome);
808 if desired_outcome == true {
809 let message_remove_script = script! {
810 { o.sign(ps, secret_key, message) }
811 { o.checksig_verify_and_clear_stack(ps, public_key) }
812 OP_TRUE
813 };
814 assert!(execute_script(message_remove_script).success == true);
815 }
816 }
817
818 #[test]
819 fn test_winternitz_with_actual_message_success() {

Callers

nothing calls this directly

Calls 1

test_scriptFunction · 0.85

Tested by

no test coverage detected