Browse Source

Test

etomic
jl777 7 years ago
parent
commit
b99e615223
  1. 10
      iguana/exchanges/LP_secp.c

10
iguana/exchanges/LP_secp.c

@ -86,21 +86,25 @@ bits256 bitcoin_pub256(void *ctx,bits256 *privkeyp,uint8_t odd_even)
int32_t bitcoin_sign(void *ctx,char *symbol,uint8_t *sig,bits256 txhash2,bits256 privkey,int32_t recoverflag) int32_t bitcoin_sign(void *ctx,char *symbol,uint8_t *sig,bits256 txhash2,bits256 privkey,int32_t recoverflag)
{ {
int32_t fCompressed = 1; int32_t fCompressed = 1;
secp256k1_ecdsa_signature SIG; secp256k1_ecdsa_recoverable_signature rSIG; bits256 extra_entropy,seed; int32_t recid,retval = -1; size_t siglen = 72; secp256k1_pubkey SECPUB,CHECKPUB; secp256k1_ecdsa_signature SIG; void *funcp; secp256k1_ecdsa_recoverable_signature rSIG; bits256 extra_entropy,seed; uint8_t *entropy; int32_t recid,retval = -1; size_t siglen = 72; secp256k1_pubkey SECPUB,CHECKPUB;
seed = rand256(0); seed = rand256(0);
extra_entropy = rand256(0); extra_entropy = rand256(0);
SECP_ENSURE_CTX SECP_ENSURE_CTX
{ {
funcp = secp256k1_nonce_function_rfc6979;
if ( secp256k1_ec_seckey_verify(ctx,privkey.bytes) == 0 ) if ( secp256k1_ec_seckey_verify(ctx,privkey.bytes) == 0 )
{ {
//printf("bitcoin_sign illegal privkey\n"); //printf("bitcoin_sign illegal privkey\n");
return(-1); return(-1);
} }
if ( strcmp(symbol,"BCH") == 0 )
entropy = 0;
else entropy = extra_entropy.bytes;
if ( secp256k1_context_randomize(ctx,seed.bytes) != 0 ) if ( secp256k1_context_randomize(ctx,seed.bytes) != 0 )
{ {
if ( recoverflag != 0 ) if ( recoverflag != 0 )
{ {
if ( secp256k1_ecdsa_sign_recoverable(ctx,&rSIG,txhash2.bytes,privkey.bytes,secp256k1_nonce_function_rfc6979,extra_entropy.bytes) != 0 ) if ( secp256k1_ecdsa_sign_recoverable(ctx,&rSIG,txhash2.bytes,privkey.bytes,funcp,entropy) != 0 )
{ {
recid = -1; recid = -1;
secp256k1_ecdsa_recoverable_signature_serialize_compact(ctx,sig+1,&recid,&rSIG); secp256k1_ecdsa_recoverable_signature_serialize_compact(ctx,sig+1,&recid,&rSIG);
@ -125,7 +129,7 @@ int32_t bitcoin_sign(void *ctx,char *symbol,uint8_t *sig,bits256 txhash2,bits256
} }
else else
{ {
if ( secp256k1_ecdsa_sign(ctx,&SIG,txhash2.bytes,privkey.bytes,secp256k1_nonce_function_rfc6979,extra_entropy.bytes) != 0 ) if ( secp256k1_ecdsa_sign(ctx,&SIG,txhash2.bytes,privkey.bytes,funcp,entropy) != 0 )
{ {
if ( secp256k1_ecdsa_signature_serialize_der(ctx,sig,&siglen,&SIG) != 0 ) if ( secp256k1_ecdsa_signature_serialize_der(ctx,sig,&siglen,&SIG) != 0 )
retval = (int32_t)siglen; retval = (int32_t)siglen;

Loading…
Cancel
Save