Browse Source

test

pull/4/head
jl777 7 years ago
parent
commit
ebeae1ebae
  1. 10
      src/komodo_curve25519.h
  2. 8
      src/komodo_kv.h
  3. 19
      src/wallet/rpcwallet.cpp

10
src/komodo_curve25519.h

@ -959,7 +959,7 @@ uint256 komodo_kvsig(uint8_t *buf,int32_t len,uint256 _privkey)
pubkey = curve25519(privkey,curve25519_basepoint9());
sig = curve25519_shared(privkey,otherpub);
checksig = curve25519_shared(hash,pubkey);
int32_t i; for (i=0; i<len; i++)
/*int32_t i; for (i=0; i<len; i++)
printf("%02x",buf[i]);
printf(" -> ");
for (i=0; i<32; i++)
@ -967,7 +967,7 @@ uint256 komodo_kvsig(uint8_t *buf,int32_t len,uint256 _privkey)
printf(" -> ");
for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&pubkey)[i]);
printf(" pubkey\n");
printf(" pubkey\n");*/
memcpy(&usig,&sig,sizeof(usig));
return(usig);
}
@ -980,7 +980,7 @@ int32_t komodo_kvsigverify(uint8_t *buf,int32_t len,uint256 _pubkey,uint256 sig)
{
vcalc_sha256(0,hash.bytes,buf,len);
checksig = curve25519_shared(hash,pubkey);
int32_t i; for (i=0; i<len; i++)
/*int32_t i; for (i=0; i<len; i++)
printf("%02x",buf[i]);
printf(" -> ");
for (i=0; i<32; i++)
@ -994,10 +994,10 @@ int32_t komodo_kvsigverify(uint8_t *buf,int32_t len,uint256 _pubkey,uint256 sig)
printf(" sig vs");
for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&checksig)[i]);
printf(" checksig\n");
printf(" checksig\n");*/
if ( memcmp(&checksig,&sig,sizeof(sig)) != 0 )
return(-1);
else printf("VALIDATED\n");
//else printf("VALIDATED\n");
}
return(0);
}

8
src/komodo_kv.h

@ -76,10 +76,10 @@ int32_t komodo_kvsearch(uint256 *pubkeyp,int32_t current_height,uint32_t *flagsp
*flagsp = ptr->flags;
int32_t i; for (i=0; i<32; i++)
{
printf("%02x",((uint8_t *)&ptr->pubkey)[31-i]);
//printf("%02x",((uint8_t *)&ptr->pubkey)[31-i]);
((uint8_t *)pubkeyp)[i] = ((uint8_t *)&ptr->pubkey)[31-i];
}
printf(" ptr->pubkey\n");
//printf(" ptr->pubkey\n");
memcpy(pubkeyp,&ptr->pubkey,sizeof(*pubkeyp));
if ( (retval= ptr->valuesize) != 0 )
memcpy(value,ptr->value,retval);
@ -165,12 +165,12 @@ void komodo_kvupdate(uint8_t *opretbuf,int32_t opretlen,uint64_t value)
memcpy(ptr->value,valueptr,valuesize);
}
}
for (i=0; i<32; i++)
/*for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&ptr->pubkey)[i]);
printf(" <- ");
for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&pubkey)[i]);
printf(" new pubkey\n");
printf(" new pubkey\n");*/
memcpy(&ptr->pubkey,&pubkey,sizeof(ptr->pubkey));
ptr->height = height;
ptr->flags = flags;

19
src/wallet/rpcwallet.cpp

@ -512,19 +512,19 @@ Value kvupdate(const Array& params, bool fHelp)
if ( (n= (int32_t)params.size()) >= 3 )
{
flags = atoi(params[2].get_str().c_str());
printf("flags.%d (%s) n.%d\n",flags,params[2].get_str().c_str(),n);
//printf("flags.%d (%s) n.%d\n",flags,params[2].get_str().c_str(),n);
} else flags = 0;
if ( n >= 4 )
privkey = komodo_kvprivkey(&pubkey,(char *)(n >= 4 ? params[3].get_str().c_str() : "password"));
haveprivkey = 1;
flags |= 1;
for (i=0; i<32; i++)
/*for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&privkey)[i]);
printf(" priv, ");
for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&pubkey)[i]);
printf(" pubkey, privkey derived from (%s)\n",(char *)params[3].get_str().c_str());
//printf("flags.%d (%s)\n",flags,params[2].get_str().c_str());
*/
LOCK2(cs_main, pwalletMain->cs_wallet);
if ( (keylen= (int32_t)strlen(params[0].get_str().c_str())) > 0 )
{
@ -539,7 +539,7 @@ Value kvupdate(const Array& params, bool fHelp)
{
if ( (tmpflags & KOMODO_KVPROTECTED) != 0 )
{
if ( refpubkey != pubkey )
if ( memcmp(&refpubkey,&pubkey,sizeof(refpubkey)) != 0 )
{
ret.push_back(Pair("error",(char *)"cant modify write once key without passphrase"));
return ret;
@ -549,13 +549,16 @@ Value kvupdate(const Array& params, bool fHelp)
{
sig = komodo_kvsig(keyvalue,keylen+refvaluesize,privkey);
if ( komodo_kvsigverify(keyvalue,keylen+refvaluesize,refpubkey,sig) < 0 )
{
ret.push_back(Pair("error",(char *)"error verifying sig, passphrase is probably wrong"));
printf("VERIFY ERROR\n");
else printf("verified immediately\n");
return ret;
} // else printf("verified immediately\n");
}
}
for (i=0; i<32; i++)
printf("%02x",((uint8_t *)&sig)[i]);
printf(" sig for keylen.%d + valuesize.%d\n",keylen,refvaluesize);
//for (i=0; i<32; i++)
// printf("%02x",((uint8_t *)&sig)[i]);
//printf(" sig for keylen.%d + valuesize.%d\n",keylen,refvaluesize);
ret.push_back(Pair("coin",(char *)(ASSETCHAINS_SYMBOL[0] == 0 ? "KMD" : ASSETCHAINS_SYMBOL)));
height = chainActive.Tip()->nHeight;
if ( memcmp(&zeroes,&refpubkey,sizeof(refpubkey)) != 0 )

Loading…
Cancel
Save