I have an P2SH 1-3 and I want to use openssl to sign a transaction. my redem script is
512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AE
My transaction data is:
02000000012432698bd45d5bdd68c5439de2a98ac70c63f12c5196970b2fba40b9e01e48010000000069512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AEffffffff01c07aea29010000001976a914a6cdf0c6e4850e2114cbc96df01f155b8792ed8c88ac0000000001000000
Inside it you can find Redeem Script and SIGHASH.
I do SHA256 twice and save it in a.txt
file
printf $A | xxd -r -p | sha256sum -b | xxd -r -p | sha256sum -b | xxd -r -p > a.txt
Now I can sign it with my private key
FIRMA=`openssl pkeyutl -inkey chiave_priv_1.pem -sign -in a.txt -pkeyopt digest:sha256 | xxd -p -c 256`
append to FIRMA
the byte 01 (SIGHASH_ALL) and prepend the length and OP_0 for OP_CHECKMULTISIG's bug.
00483045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f01
The redeem script length is 210 char hex, 69 in base16.
prepend 4c
(OP_PUSHDATA1).
4c69512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AE
My whole scriptSig is:
00483045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f014c69512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AE
The ScriptSig Length is B5
, the my whole transaction is:
02000000012432698bd45d5bdd68c5439de2a98ac70c63f12c5196970b2fba40b9e01e480100000000B500483045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f014c69512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AEffffffff01c07aea29010000001976a914a6cdf0c6e4850e2114cbc96df01f155b8792ed8c88ac00000000
Decoderawtransaction
bitcoin-cli decoderawtransaction 02000000012432698bd45d5bdd68c5439de2a98ac70c63f12c5196970b2fba40b9e01e480100000000B500483045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f014c69512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AEffffffff01c07aea29010000001976a914a6cdf0c6e4850e2114cbc96df01f155b8792ed8c88ac00000000
{
"txid": "e3d1d4fba5ebd8e6042ece0e5ecc40caf7f81b35fd06e17f76dace8565e2f15f",
"hash": "e3d1d4fba5ebd8e6042ece0e5ecc40caf7f81b35fd06e17f76dace8565e2f15f",
"version": 2,
"size": 266,
"vsize": 266,
"weight": 1064,
"locktime": 0,
"vin": [
{
"txid": "01481ee0b940ba2f0b9796512cf1630cc78aa9e29d43c568dd5b5dd48b693224",
"vout": 0,
"scriptSig": {
"asm": "0 3045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f[ALL] 512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51ae",
"hex": "00483045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f014c69512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51ae"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 49.98200000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 a6cdf0c6e4850e2114cbc96df01f155b8792ed8c OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a914a6cdf0c6e4850e2114cbc96df01f155b8792ed8c88ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"mviwAtz3zQj4xzH5mqLhRFrMSHwEcz7rYn"
]
}
}
]
}
Sendrawtransaction:
$ bitcoin-cli sendrawtransaction 02000000012432698bd45d5bdd68c5439de2a98ac70c63f12c5196970b2fba40b9e01e480100000000B500483045022019d6d4efa4c714c3936e87acd69b1c3d791fb5a9c956e611a33c5a0cb007b209022100de2c9447adc07d1a27f0364a41db87cba09b50f68119a807fc5328df6ce1da1f014c69512103e6b11909698c11ff8232c02f4fbac409fcb5ef2cdacaf22a3c496f334d349a462103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c2103f026ba3cff269ae6ba6269b5728829c7879d9d1024fb1ede192cb4088bf86e5c51AEffffffff01c07aea29010000001976a914a6cdf0c6e4850e2114cbc96df01f155b8792ed8c88ac00000000
error code: -26
error message:
mandatory-script-verify-flag-failed (unknown error) (code 16)
My goal is create custom script. I tried even with 2-3 but without lucky.
UPDATED QUESTION AFTER ANDREW'S ANSWER