Browse Source

Test

etomic
jl777 7 years ago
parent
commit
8ec4667f21
  1. 1
      iguana/exchanges/LP_include.h
  2. 37
      iguana/exchanges/LP_network.c

1
iguana/exchanges/LP_include.h

@ -35,6 +35,7 @@ void emscripten_usleep(int32_t x);
//#define LP_STRICTPEERS //#define LP_STRICTPEERS
#define LP_BARTERDEX_VERSION 0 #define LP_BARTERDEX_VERSION 0
#define LP_MAGICBITS 10
#define LP_HTTP_TIMEOUT 3 // 1 is too small due to edge cases of time(NULL) #define LP_HTTP_TIMEOUT 3 // 1 is too small due to edge cases of time(NULL)
#define LP_AUTOTRADE_TIMEOUT 10 #define LP_AUTOTRADE_TIMEOUT 10

37
iguana/exchanges/LP_network.c

@ -158,41 +158,52 @@ void _LP_sendqueueadd(uint32_t crc32,int32_t sock,uint8_t *msg,int32_t msglen,in
//printf("Q.%p: peerind.%d msglen.%d\n",ptr,peerind,msglen); //printf("Q.%p: peerind.%d msglen.%d\n",ptr,peerind,msglen);
} }
uint32_t _LP_magic_check(bits256 hash,bits256 magic)
{
bits256 pubkey,shared;
pubkey = curve25519(magic,curve25519_basepoint9());
shared = curve25519(hash,pubkey);
return(shared.uints[1] & ~(1 << LP_MAGICBITS));
}
bits256 LP_calc_magic(uint8_t *msg,int32_t len) bits256 LP_calc_magic(uint8_t *msg,int32_t len)
{ {
static uint32_t maxn; bits256 magic,hash,pubkey,shared; int32_t n = 0; double millis; static uint32_t maxn,counter; static double sum;
bits256 magic,hash; int32_t n = 0; double millis;
millis = OS_milliseconds(); millis = OS_milliseconds();
vcalc_sha256(0,hash.bytes,msg,len); vcalc_sha256(0,hash.bytes,msg,len);
while ( 1 ) while ( 1 )
{ {
magic = rand256(1); magic = rand256(1);
pubkey = curve25519(magic,curve25519_basepoint9()); if ( _LP_magic_check(hash,magic) == LP_BARTERDEX_VERSION )
shared = curve25519(hash,pubkey);
if ( shared.bytes[1] == LP_BARTERDEX_VERSION )
break; break;
n++; n++;
} }
printf("millis %.3f\n",OS_milliseconds() - millis); sum += (OS_milliseconds() - millis);
if ( n > maxn ) counter++;
if ( n > maxn || (rand() % 100) == 0 )
{ {
printf("LP_calc_magic maxn.%d <- %d\n",maxn,n); if ( n > maxn )
maxn = n; {
printf("LP_calc_magic maxn.%d <- %d\n",maxn,n);
maxn = n;
}
printf("millis %.3f ave %.3f\n",OS_milliseconds() - millis,sum/counter);
} }
return(magic); return(magic);
} }
int32_t LP_magic_check(uint8_t *msg,int32_t recvlen) int32_t LP_magic_check(uint8_t *msg,int32_t recvlen)
{ {
bits256 magic,hash,pubkey,shared; bits256 magic,hash; uint32_t val;
recvlen -= sizeof(bits256); recvlen -= sizeof(bits256);
if ( recvlen > 0 ) if ( recvlen > 0 )
{ {
vcalc_sha256(0,hash.bytes,msg,recvlen); vcalc_sha256(0,hash.bytes,msg,recvlen);
memcpy(magic.bytes,&msg[recvlen],sizeof(magic)); memcpy(magic.bytes,&msg[recvlen],sizeof(magic));
pubkey = curve25519(magic,curve25519_basepoint9()); val = _LP_magic_check(hash,magic);
shared = curve25519(hash,pubkey); printf("magicval = %d\n",val);
printf("shared.[1] = %d\n",shared.bytes[1]); return(val == LP_BARTERDEX_VERSION);
return(shared.bytes[1] == LP_BARTERDEX_VERSION);
} }
return(-1); return(-1);
} }

Loading…
Cancel
Save