Bonjour
Je pense être à deux doigts de résoudre mon problème mais j'y suis pas encore et comme il est assez pointu (en tout cas pour moi) je comprendrais peut-être mieux une explication venant d'un francophone
Ce que je veux c'est signer une transaction
Je sais signer un message, je connais la syntaxe d'une transaction, ce qu'il me manque c'est le message à signer
Je sais que c'est un Hash, donc un sha256^2
Je sais que l'argument de ce Hash est la transaction modifiée, en fonction de SIGHASH
Voici la partie non sûre :
Si j'utilise SIGHASH_ALL, le message est la transaction où :
tous les scriptSig(non encore connu encore puisque justement je les veux) sont supprimés
à l'emplacement du scriptSig à la position n, je mets le scriptPubKey de l'input correspondant (une fois signé, j'obtiendrais alors le scriptSig pour l'input n)
j'ajoute à la fin 01000000 car j'utilise SIGHASH_ALL
De plus, suite à une
réponse de Mike sur le forum dev, j'ai lu la fonction SignatureHash qui initialise le message comme ceci : "CDataStream ss(SER_GETHASH);"
Sachant que SER_GETHASH = 4, il faudrait donc que je rajoute au début de ma transaction modifiée 0400000000000000, soit 4 en int64
Donc finalement, j'arrive à ça (j'ai pris une vraie tx pour pouvoir comparer :
http://blockexplorer.com/rawtx/a467d767729385c191d3e463ceb8a436a1c0dda9d362955909c64196db86e573 ) :
04000000 or 0400000000000000 or nothing
01000000 #version
01 #1 input
177a1f8fdfe69a2ad022f056bf45ef8162c7c8a1672919b885308b3b16162307 #inverted hash of the tx
00000000 #index
#old scriptpubkey instead of scriptsig
__________________________________________________________
19 #length of scriptPubKey
76 #OP_DUP
a9 #OP_HASH160
14 #length of hash
5f10ada9157add69864482ef8c99ef8787943f04 # NOT inverted hash160 of my pubkey
88 #OP_VERIFY
ac #OP_CHECKSIG
__________________________________________________________
ffffffff #sequence
01 #1 output
80841e0000000000 #value
19 #length of scriptPubKey
76 #OP_DUP
a9 #OP_HASH160
14 #length of hash
5c3f294acb5059a968c4a35700b5432a7397002b # NOT inverted hash160 of pubkey to which I send money
88 #OP_VERIFY
ac #OP_CHECKSIG
00000000 #locktime
01000000 #hashtype = SIGHASH_ALL
Je sais qu'il y a des développeurs dans le coin, si vous êtes occupés postez même un mini message si ça prendrait trop de temps, j'approfondirai de mon côté