Ressu2 v1.0 random number generator

Kaikki oikeudet pidätetään ©.

Suomessa voi vastaanottaa lahjoituksia, mutta niitä ei voi pyytää. Jos haluat tukea projektia (osallistua palvelinkustannuksiin, tarjota koodausvissyn, lounaan tai tulevaisuudessa maksaa palkkaa), laita muutaman euron lahjoituksesi Danske Bank tilille FI15 8312 0710 7275 83 (SWIFT:DABAFIHH), maksun saaja Jari Kuivaniemi. Kirjoita viestikenttään nimesi tai nimimerkkisi ja asuinpaikkakuntasi. Kiitokset lahjoituksestasi. Suuremman kun 100€ lahjoituksen vastalahjaksi saat ressu2:n käyttöoikeuden vuodeksi (kirjoita viestin loppuun ressu2).

Edellisessä postissa kirjoitin uuden version ressusta, ressu2. Tämä on sen versionkorotus 1.00:n. Tällä hetkellä en tiedä, tuleeko ressu3:sta.

ressu2_round() funktiossa on satunnaisuuden arviointi (randomness muuttuja).

f:n on lisätty ylimääräinen “+ 16”. Sen vaikutusta en osaa todistaa, mutta swapin pidempi hyppy lisää mielestäni satunnaisuutta. Hetkittäin tuntuu että se tekee suuremmissa materiaaleissa vähemmän dieharder FAILED:eja.

Round kieppiin on myös lisätty clock ja useconds. Tämän tuloksena eri kellonaikaan ajettu generaattori tuottaa eri tuloksen. Se oli aiemmassa versiossa tuossa copy-reverse ohjelmassa.

static int randomness = 0;

static void ressu2_round(int size, unsigned char *buffer) // ressu2 JariK 2013
{
  int c, d, byte;
  unsigned char e;
  static int f = 0, prevbyte = -1;
  unsigned long long usec;
  
  for(c = 0; c < 8; c++) { // eight bits per byte
    for(d = 0; d < size; d++) { // rotate + xor
      e = buffer[d];
      e = RESSU_ROTATELEFT8(e, 1);  // rotate byte left 1 bits
      byte = ressu_lowusec();
      buffer[d] = e ^ byte;
      if(prevbyte != byte) {
	prevbyte = byte;
	randomness++;
      }
    }
    for(d = 0; d < size; d++) { // swap
      f = (f + 16 + buffer[d] + 2) % size;
      e = buffer[d];
      buffer[d] = buffer[f];
      buffer[f] = e;
    }
    
    // more randomness from clocks
    usec = clock();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
    usec = ressu_useconds();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
  } // end of for(c = 0; c < 8; c++
}

ressu2_bytes():issä tarvittavien ressu2 kierrosten määrä on uudessa yksinkertainen. Tarvitaan vähintään 5 kierrosta (RESSU2_MINIMUM_ROUNDS), kellojonoa käsiteltävä 20 kiloa (RESSU2_CLOCKS_NEEDED) ja tuloksena saadaan 2048 merkkiä satunnaisuutta (RESSU2_BYTES) satunnaisuutta tarvitaan 2048 bittiä (RESSU2_RANDOMNESS_NEEDED) (?).

#define aDEBUG16A 2

#define RESSU2_BYTES 2048
#define RESSU2_RANDOMNESS_NEEDED 2048
#define RESSU2_CLOCKS_NEEDED 20480 // now 20480
#define RESSU2_MINIMUM_ROUNDS 5

void ressu2_bytes(int size, unsigned char *buffer) // JariK 2013
{
  int c, d, clocksused;
  static int ressu_pos = 0;
  static unsigned char ressu[RESSU2_BYTES];

  for(c = 0; c < size; c++) {
    if(ressu_pos == 0) {
      randomness = 0;
      clocksused = 0;
      //memset(&ressu, 0, sizeof(ressu)); // forget buffer
      for(d = 0; d < RESSU2_MINIMUM_ROUNDS ||
	    randomness < RESSU2_RANDOMNESS_NEEDED ||
	    clocksused < RESSU2_CLOCKS_NEEDED
	    ; d++) {
	ressu2_round(sizeof(ressu), ressu);
	clocksused += (sizeof(ressu) * 8);
      }
#ifdef DEBUG8
      ressu_dump("ressu2g", sizeof(ressu), ressu, 32);      
#endif
    } // end of if(ressu_pos == 0
    buffer[c] ^= ressu[ressu_pos];
    ressu_pos = (ressu_pos + 1) % sizeof(ressu);
  } // end of for(c = 0; c < size; c++
#ifdef DEBUG8
  ressu_dump("ressu2", size, buffer, 32);
#endif
}

Seuraavassa edelliset kokonaan:

#define aDEBUG15 2

static unsigned long long ressu_useconds()
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return((unsigned long long) tv.tv_usec + 1000000ULL * (unsigned long long) tv.tv_sec);
}

static unsigned char ressu_lowusec() /* JariK 2013 */
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return(tv.tv_usec & 0xff);
}

static int randomness = 0;

#define RESSU_ROTATELEFT8(byte, bits) ( ((byte) >> (8 - (bits))) | ((byte) << (bits)) )

static void ressu2_round(int size, unsigned char *buffer) // ressu2 JariK 2013
{
  int c, d, byte;
  unsigned char e;
  static int f = 0, prevbyte = -1;
  unsigned long long usec;
  
  for(c = 0; c < 8; c++) { // eight bits per byte
    for(d = 0; d < size; d++) { // rotate + xor
      e = buffer[d];
      e = RESSU_ROTATELEFT8(e, 1);  // rotate byte left 1 bits
      byte = ressu_lowusec();
      buffer[d] = e ^ byte;
      if(prevbyte != byte) {
	prevbyte = byte;
	randomness++;
      }
    }
    for(d = 0; d < size; d++) { // swap
      f = (f + 16 + buffer[d] + 2) % size;
      e = buffer[d];
      buffer[d] = buffer[f];
      buffer[f] = e;
    }
    
    // more randomness from clocks
    usec = clock();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
    usec = ressu_useconds();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
  } // end of for(c = 0; c < 8; c++
}

#define aDEBUG16A 2

#define RESSU2_BYTES 2048
#define RESSU2_RANDOMNESS_NEEDED 2048
#define RESSU2_CLOCKS_NEEDED 20480 // now 20480
#define RESSU2_MINIMUM_ROUNDS 5

void ressu2_bytes(int size, unsigned char *buffer) // JariK 2013
{
  int c, d, clocksused;
  static int ressu_pos = 0;
  static unsigned char ressu[RESSU2_BYTES];

  for(c = 0; c < size; c++) {
    if(ressu_pos == 0) {
      randomness = 0;
      clocksused = 0;
      //memset(&ressu, 0, sizeof(ressu)); // forget buffer
      for(d = 0; d < RESSU2_MINIMUM_ROUNDS ||
	    randomness < RESSU2_RANDOMNESS_NEEDED ||
	    clocksused < RESSU2_CLOCKS_NEEDED
	    ; d++) {
	ressu2_round(sizeof(ressu), ressu);
	clocksused += (sizeof(ressu) * 8);
      }
#ifdef DEBUG8
      ressu_dump("ressu2g", sizeof(ressu), ressu, 32);      
#endif
    } // end of if(ressu_pos == 0
    buffer[c] ^= ressu[ressu_pos];
    ressu_pos = (ressu_pos + 1) % sizeof(ressu);
  } // end of for(c = 0; c < size; c++
#ifdef DEBUG8
  ressu_dump("ressu2", size, buffer, 32);
#endif
}

Seuraavassa pieni ressu2 ohjelma, jossa on valinnaisena satunnaisgeneraattori(t) joilla satunnaisuusbitit arvotaan. Mukana on urandom, ressu2, pseudoressu2 ja ressu2twist. Valinta tehdään seuraavilla kytkimillä: jos lisäät kytkimen nimen eteen ‘a’:n ko generaattoria ei käytetä.

...
#define USE_URANDOM 2
#define USE_RESSU2 2
#define USE_PSEUDORESSU2 2
#define USE_RESSU2TWIST 2
...

Ensimmäisenä ressu2.c ohjelman ressu2 rutiinit: ne otetaan käännökseen mukaan vain kun tarvitaan ressu2:a, pseudoressu2:sta tai ressu2twist:iä:

#if defined USE_RESSU2 || defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

static unsigned long long my_ressu_useconds()
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return((unsigned long long) tv.tv_usec + 1000000ULL * (unsigned long long) tv.tv_sec);
}

static unsigned char my_ressu_lowusec() /* JariK 2013 */
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return(tv.tv_usec & 0xff);
}

static int randomness = 0;

#define RESSU_ROTATELEFT8(byte, bits) ( ((byte) >> (8 - (bits))) | ((byte) << (bits)) )

static void my_ressu2_round(int size, unsigned char *buffer) // ressu JariK 2013
{
  int c, d, byte;
  unsigned char e;
  static int f = 0, prevbyte = -1;
  unsigned long long usec;
  
  for(c = 0; c < 8; c++) { // eight bits per byte
    for(d = 0; d < size; d++) { // rotate + xor
      e = buffer[d];
      e = RESSU_ROTATELEFT8(e, 1);  // rotate byte left 1 bits
      byte = my_ressu_lowusec();
      buffer[d] = e ^ byte;
      if(prevbyte != byte) {
	prevbyte = byte;
	randomness++;
      }
    }
    for(d = 0; d < size; d++) { // swap
      f = (f + 16 + buffer[d] + 2) % size;
      e = buffer[d];
      buffer[d] = buffer[f];
      buffer[f] = e;
    }
    
    // more randomness from clocks
    usec = clock();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
    usec = my_ressu_useconds();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
  } // end of for(c = 0; c < 8; c++
}

#include "newressu.h"

#define RESSU2_BYTES 2048
#define RESSU2_RANDOMNESS_NEEDED 2048
#define RESSU2_CLOCKS_NEEDED 20480 // now 20480
#define RESSU2_MINIMUM_ROUNDS 5

void my_ressu2_bytes(int size, unsigned char *buffer) // Ressu2 v1.0 JariK 2013
{
  int c, d, clocksused;
  static int ressu_pos = 0, initneeded = 1;
  static unsigned char ressu[RESSU2_BYTES];

  for(c = 0; c < size; c++) {
    if(ressu_pos == 0) {
      if(initneeded) {
	memset(&ressu, 0, sizeof(ressu));
	initneeded = 0;
      }
      randomness = 0;
      clocksused = 0;
      //memset(&ressu, 0, sizeof(ressu));
      for(d = 0; d < RESSU2_MINIMUM_ROUNDS ||
	    randomness < RESSU2_RANDOMNESS_NEEDED ||
	    clocksused < RESSU2_CLOCKS_NEEDED
	    ; d++) {
	my_ressu2_round(sizeof(ressu), ressu);
	clocksused += (sizeof(ressu) * 8);
      }
#ifdef DEBUG8
      my_dump("myressu2g", sizeof(ressu), ressu, 32);      
#endif
    } // end of if(ressu_pos == 0
    buffer[c] ^= ressu[ressu_pos];
    ressu_pos = (ressu_pos + 1) % sizeof(ressu);
  } // end of for(c = 0; c < size; c++
#ifdef DEBUG8
  my_dump("myressu2", size, buffer, 32);
#endif
}

#endif // end of #if defined USE_RESSU2 || defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

pseudoressu2() rutiinit otetaan käännökseen vain pseudoressu2:sta ja ressu2twistiä käännettäessä:

#if defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

unsigned char cvar[16];
int cvarsize = 0;

void inccvar()
{
  int c;

  /* 16 bytes, LSB first */
  for(c = 0; ++cvar[c] == 0 && c < sizeof(cvar) - 1; c++);

  if(cvarsize < c)
    cvarsize = c;

#ifdef DEBUG20
  ressu_dump("cvar", cvarsize + 1, cvar, 32);
#endif
}

#define aCVARRANDOMSTART 2 // off by default

void clearcvar()
{
  int c;

  cvarsize = 0;
  
  for(c = 0; c < sizeof(cvar); c++)
    cvar[c] = 0;

#ifdef CVARRANDOMSTART
  ressu_genbytes(8, (unsigned char *)&cvar);  
#endif
  for(c = 0; c < sizeof(cvar); c++)
    if(cvar[c] != 0)
      cvarsize = c;
}

#include "sha256.h"

#define PSEUDORESSU2_TOPUP_BYTES 32*1024 // bytes between topups
#define PSEUDORESSU2_TOPUP_SIZE 32 // topup size in bytes (32 bytes, 256 bits)
#define aPSEUDORESSU2_TOPUP_TWICE 2 // off by default

unsigned long pseudoressu2_topup_bytes = PSEUDORESSU2_TOPUP_BYTES;

static unsigned char pseudoressu2_key[HashLen]; // 32 bytes, 256 bits

static void my_pseudoressu2_internalbytes(unsigned char *digest)
{
  HashCtx hash;

  HashInit(&hash);
  HashUpdate(&hash, pseudoressu2_key, sizeof(pseudoressu2_key)); // add old randomness to hash
  HashUpdate(&hash, (unsigned char *) &cvar, cvarsize + 1);
  inccvar();
  HashFinal(digest, &hash);
  memset(&hash, 0, sizeof(hash)); // forget hash
}

static void my_pseudoressu2_addrandomness(int size, unsigned char *buffer)
{
  unsigned long long usec;
  HashCtx hash;

  HashInit(&hash);
  HashUpdate(&hash, pseudoressu2_key, sizeof(pseudoressu2_key)); // add old randomness to hash
  HashUpdate(&hash, (unsigned char *) &cvar, cvarsize + 1);
  inccvar();
  usec = my_ressu_useconds(); // add timestamp to hash
  HashUpdate(&hash, (unsigned char *)&usec, sizeof(usec));
  usec = clock(); // add processor time to hash (for randomness)
  HashUpdate(&hash, (unsigned char *)&usec, sizeof(usec));
  HashUpdate(&hash, buffer, size); // add given randomness to hash
  HashFinal(pseudoressu2_key, &hash); // save as new key
  memset(&hash, 0, sizeof(hash)); // forget hash
}

static void my_pseudoressu2_topup()
{
  unsigned char topup[PSEUDORESSU2_TOPUP_SIZE]; // 32 bytes, 256 bits

  memset(&topup, 0, sizeof(topup)); // forget topup
  my_ressu2_bytes(sizeof(topup), topup);
#ifdef DEBUG8
  my_dump("topup", sizeof(topup), topup, 32);
#endif
  my_pseudoressu2_addrandomness(sizeof(topup), topup);

  memset(&topup, 0, sizeof(topup)); // forget topup
}

void my_pseudoressu2_bytes(int size, unsigned char *buffer) // JariK 2022
{
  int c;
  static int pseudoressu_pos = 0, topup_counter = 0, initneeded = 1;
  static unsigned char pseudoressu[HashLen]; // 32 bytes, 256 bits

  for(c = 0; c < size; c++) {
    if(pseudoressu_pos == 0) {
      if(topup_counter == 0) {
	if(initneeded) {
	  my_ressu2_bytes(sizeof(pseudoressu2_key), pseudoressu2_key); // get first key
#ifdef DEBUG8
	  my_dump("first key", sizeof(pseudoressu2_key), pseudoressu2_key, 32);
#endif
	  initneeded = 0;
	} // end of if(initneeded
	
	my_pseudoressu2_topup(); // add randomness to key, first block also
#ifdef PSEUDORESSU2_TOPUP_TWICE
	my_pseudoressu2_topup(); // add randomness to key, first block also
#endif
	topup_counter = pseudoressu2_topup_bytes;
      } // end of if(topup_counter == 0
      
      my_pseudoressu2_internalbytes(pseudoressu); // get random bits using the key
#ifdef DEBUG8
      my_dump("next data", sizeof(pseudoressu), pseudoressu, 32);
#endif
      topup_counter -= sizeof(pseudoressu);
    } // end of if(pseudoressu_pos == 0

    buffer[c] ^= pseudoressu[pseudoressu_pos];
    pseudoressu_pos = (pseudoressu_pos + 1) % sizeof(pseudoressu);
  } // end of for(c = 0; c < size; c++
  
  my_pseudoressu2_internalbytes(pseudoressu2_key); // replace key with new random one
#ifdef DEBUG8
  my_dump("new key", sizeof(pseudoressu2_key), pseudoressu2_key, 32);
#endif
#ifdef DEBUG8
  my_dump("pseudoressu", size, buffer, 32);
#endif
}

#endif // end of #if defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

Seuraavassa ressu2twist:in tarvitsema rutiini:

#ifdef USE_RESSU2TWIST

void my_ressu2twist_bytes(int size, unsigned char *buffer) // JariK 2023, 2025
{
  //urandom_bytes(size, buffer);
  my_ressu2_bytes(size, buffer);
  my_pseudoressu2_bytes(size, buffer);
#ifdef DEBUG8
  my_dump("ressu2twist", size, buffer, 32);
#endif
}

#endif // end of #ifdef USE_RESSU2TWIST

Seuraavassa urandom:in rutiinit:

#ifdef USE_URANDOM

void my_readfile_xor(int size, unsigned char *buffer, unsigned char *filename)
{
  int c, n, filebuffer_pos = 0;
  unsigned char filebuffer[64];
  FILE *fp1;

  if((fp1 = fopen(filename, "rb")) == NULL) {
    fprintf(stderr,"%s: fopen(): cannot open file %s\n",
	    procname, filename);
    exit(1);
  }

  for(c = 0; c < size; c++) {
    if(filebuffer_pos == 0) {
      n = (size - c < sizeof(filebuffer)) ? size - c : sizeof(filebuffer);
      if(fread(filebuffer, 1, n, fp1) < n) {
	fprintf(stderr,"%s: fread(): cannot read file %s\n",
		procname, filename);
	exit(1);
      }
#ifdef DEBUG8
      my_dump("file", n, filebuffer, 32);
#endif
    } // end of if(file_pos == 0
    buffer[c] ^= filebuffer[filebuffer_pos];
    filebuffer_pos = (filebuffer_pos + 1) % sizeof(filebuffer);
  } // end of for(c = 0; c < size; c++

  fclose(fp1);

  memset(filebuffer, 0, sizeof(filebuffer)); // forget file
}

static unsigned char urandomfilename[128] = "/dev/urandom";

void my_urandom_bytes(int size, unsigned char *buffer)
{
  my_readfile_xor(size, buffer, urandomfilename);
#ifdef DEBUG8
  my_dump("urandom", size, buffer, 32);
#endif
}

#endif // end of #ifdef USE_URANDOM

Seuraavana my_random_bytes(), joka kutsuu kaikkia tarvittavia rutiineja:

void my_random_bytes(int size, unsigned char *buffer)
{
#ifdef USE_URANDOM
  my_urandom_bytes(size, buffer);
#endif
  //ressu_round(size, buffer);
  //ressu_genbytes(size, buffer);
  //pseudoressu_bytes(size, buffer);
  //ressutwist_bytes(size, buffer);
  //my_ressu2_round(size, buffer);
#ifdef USE_PSEUDORESSU2
  my_pseudoressu2_bytes(size, buffer);
#endif
#ifdef USE_RESSU2TWIST
  my_ressu2twist_bytes(size, buffer);
#endif
#ifdef USE_RESSU2
  my_ressu2_bytes(size, buffer);
#endif
}

my_random_byte() palauttaa yhden satunnaisen merkin. Se lukee gent tauluun lohkollisen satunnaismerkkejä ja palauttaa ne yksittäisinä merkkeinä. Kun lohkon merkit loppuvat generoidaan uusi lohko.

#define GENT_SIZE 128

static unsigned char gent[GENT_SIZE];
static unsigned int gent_pos = 0;

int my_random_byte()
{
  unsigned char ch;
  static int initneeded = 1;

  if(gent_pos == 0) {
    if(initneeded) {
      memset(&gent, 0, sizeof(gent));
      initneeded = 0;
    }
    my_random_bytes(sizeof(gent), gent);
  }
  ch = gent[gent_pos];
  gent_pos = (gent_pos + 1) % sizeof(gent);

  return(ch);
}

random_genlimit() rutiini palauttaa yhden satunnaisen numeron. Parametrina annetaan muuttuja, joka kertoo arvojoukon ylärajan. Parametrin pitää olla yhtä suurempi kuin haluttu arvojoukon yläraja.

unsigned long my_random_genlimit(unsigned long limit)
{
  int c;
  unsigned long word;
  static unsigned long lastlimit = 0, highlimit;
  static int bytes;

  if(lastlimit != limit) { // if limit changes, calculate new highlimit and bytes
    lastlimit = limit;
    if(limit <= 0x100) {
      // highest multiplier of limit that fits to needed bytes
      highlimit = (0x100 / limit) * limit;
      // number of bytes needed
      bytes = 1;
    } else if(limit <= 0x10000) {
      highlimit = (0x10000 / limit) * limit;
      bytes = 2;
    } else if(limit <= 0x1000000) {
      highlimit = (0x1000000 / limit) * limit;
      bytes = 3;
    } else if(limit <= 0x100000000) {
      highlimit = (0x100000000 / limit) * limit;
      bytes = 4;
    } else if(limit <= 0x10000000000) {
      highlimit = (0x10000000000 / limit) * limit;
      bytes = 5;
    } else if(limit <= 0x1000000000000) {
      highlimit = (0x1000000000000 / limit) * limit;
      bytes = 6;
    } else if(limit <= 0x100000000000000) {
      highlimit = (0x100000000000000 / limit) * limit;
      bytes = 7;
    } else { // if(limit <= 0xffffffffffffffff) {
      highlimit = (0xffffffffffffffff / limit) * limit;      
      bytes = 8;
    }
  } // if(lastlimit != limit)

  for(;;) {
    word = 0;
    for(c = 0; c < bytes; c++)
      word = word << 8 | my_random_byte();
    if(word < highlimit)
      break;
  }

  word %= limit;
  
  return(word);
}

Vielä yksinkertainen pääohjelma:

int main(int argc, char *argv[])
{
  int c, d;

  procname = argv[0];

  fprintf(stdout,"Hello world\n");
  for(c = 0; c < 10; c++) {
    fprintf(stdout,"%05d ", c);
    my_output = 1;
    for(d = 0; d < 32; d++)
      fprintf(stdout," %02x", (int) my_random_genlimit(256));
    fprintf(stdout,"\n");
  }
  return(0);
}

Ja ohjelman antama tuloste:

$ ./ressu2
Hello world
00000  f7 20 a4 66 1d 25 2b 78 ac d6 c1 b1 fe 98 37 5a c6 3d e7 32 00 49 51 31 5f b5 33 6c 51 11 b8 35
00001  cd 10 35 5b c4 6a eb 3b cd 0f d3 b9 f7 ce ad ad 18 30 8e e8 d5 d5 11 51 f1 25 99 6b 9a d2 17 81
00002  79 f4 b4 7d 5a b7 0c f1 48 3b 51 1e e5 11 ad 7c dc 41 3f c3 d6 e4 e1 0b a0 fb 51 c4 37 54 cf a7
00003  ee 10 3b 63 85 82 99 21 fc 3c 4d c8 71 99 e4 23 f9 88 a2 75 12 e9 81 84 12 97 d8 30 f0 fd d9 6c
00004  73 0b 2a 87 4e d7 37 ef cf e8 45 46 e1 b1 87 d5 64 12 1a 84 fa fc 9c 4f 0c c1 98 89 07 dd 2c dc
00005  92 78 1f 10 fc 4e e8 ed 72 ed 85 2a fa 6d 4b 8d 46 25 31 1b 8c 3f b3 a1 e1 9a a9 d6 43 20 4d 3a
00006  14 08 c6 85 15 a2 77 bb 74 90 5c 42 78 11 08 fb 04 51 17 4f 97 dd ba f7 10 3f f7 12 f5 66 57 8a
00007  33 ed 98 e7 a2 f7 75 a2 fc b2 bf d4 9b d3 87 5c f6 0b fc ad 66 ab 10 14 3c 59 b6 51 0d 0b 24 74
00008  e5 e4 c4 4a a6 2f a4 c9 6a fb 8e e4 f5 5b 20 dc d4 99 fe a3 2c e2 9f 01 4d c8 9b fe ca 5f 54 55
00009  d9 8d 63 55 ac 19 c4 26 ce 48 92 8c a4 78 b3 4e 55 b7 65 13 c8 a8 ce cb db 6d 85 25 59 78 9a 02
$ 

Seuraavassa ressu2 ohjelman tuloste kun kaikki generaattorit ovat pois päältä:

$ ./ressu2
Hello world
00000  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00001  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00002  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00003  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00004  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00005  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00006  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00007  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00008  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00009  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
$

Seuraavassa DEBUG8 listoja, ensimmäinen pelkällä urandom lähteellä:

Hello world
00000 
file       c9 1e 71 19 6e e0 4d 34 ff 29 c2 b7 a2 9d 9a 41 a0 dc b6 df 09 92 28 35 cc 1b 6a 07 9e 17 c1 28
file       da ad e5 72 63 89 e9 64 ba 49 f0 c1 74 9d f3 bb 61 d5 5d ef f3 02 a4 e0 8b 12 d2 ce 69 ba 93 d5
file       26 98 17 38 aa 0f 9e 02 4f c9 3f 45 df 85 51 0b 54 49 dc 8a 55 98 8e 21 88 19 0e 47 1c 5d 43 0d
file       c3 30 a8 b6 55 1f ea 5b 76 e8 f6 e7 69 06 6a 3c 30 28 bf c9 db 10 c0 0b 59 44 44 f2 5f 20 5a 83
urandom    c9 1e 71 19 6e e0 4d 34 ff 29 c2 b7 a2 9d 9a 41 a0 dc b6 df 09 92 28 35 cc 1b 6a 07 9e 17 c1 28
urandom    da ad e5 72 63 89 e9 64 ba 49 f0 c1 74 9d f3 bb 61 d5 5d ef f3 02 a4 e0 8b 12 d2 ce 69 ba 93 d5
urandom    26 98 17 38 aa 0f 9e 02 4f c9 3f 45 df 85 51 0b 54 49 dc 8a 55 98 8e 21 88 19 0e 47 1c 5d 43 0d
urandom    c3 30 a8 b6 55 1f ea 5b 76 e8 f6 e7 69 06 6a 3c 30 28 bf c9 db 10 c0 0b 59 44 44 f2 5f 20 5a 83
 c9 1e 71 19 6e e0 4d 34 ff 29 c2 b7 a2 9d 9a 41 a0 dc b6 df 09 92 28 35 cc 1b 6a 07 9e 17 c1 28
00001  da ad e5 72 63 89 e9 64 ba 49 f0 c1 74 9d f3 bb 61 d5 5d ef f3 02 a4 e0 8b 12 d2 ce 69 ba 93 d5
00002  26 98 17 38 aa 0f 9e 02 4f c9 3f 45 df 85 51 0b 54 49 dc 8a 55 98 8e 21 88 19 0e 47 1c 5d 43 0d
00003  c3 30 a8 b6 55 1f ea 5b 76 e8 f6 e7 69 06 6a 3c 30 28 bf c9 db 10 c0 0b 59 44 44 f2 5f 20 5a 83
00004 
file       90 6d 74 9d 6e f2 26 ef 4c 5e 74 b6 67 f0 4c 68 a4 af e7 b4 fb c5 81 4e 64 ae 11 de 78 ef 9d e8
file       4d ef 07 c7 92 4a 87 a3 5c d8 db d4 42 1d 41 c6 62 9d 65 32 97 bb 45 6b 1d 88 8b f4 b8 b3 88 57
file       49 54 a3 91 dc 32 26 60 4e 21 f6 de 7d 64 5f 11 36 ee f7 90 88 4f ba d0 c4 92 88 02 8b 1b 62 ca
file       37 4a ad 4c d4 01 16 74 65 04 81 7a 3c 18 8c d6 dc d1 fe 6c 8d c3 3f 61 71 0e c8 f1 f3 ce 54 38
urandom    90 6d 74 9d 6e f2 26 ef 4c 5e 74 b6 67 f0 4c 68 a4 af e7 b4 fb c5 81 4e 64 ae 11 de 78 ef 9d e8
urandom    4d ef 07 c7 92 4a 87 a3 5c d8 db d4 42 1d 41 c6 62 9d 65 32 97 bb 45 6b 1d 88 8b f4 b8 b3 88 57
urandom    49 54 a3 91 dc 32 26 60 4e 21 f6 de 7d 64 5f 11 36 ee f7 90 88 4f ba d0 c4 92 88 02 8b 1b 62 ca
urandom    37 4a ad 4c d4 01 16 74 65 04 81 7a 3c 18 8c d6 dc d1 fe 6c 8d c3 3f 61 71 0e c8 f1 f3 ce 54 38
 90 6d 74 9d 6e f2 26 ef 4c 5e 74 b6 67 f0 4c 68 a4 af e7 b4 fb c5 81 4e 64 ae 11 de 78 ef 9d e8
00005  4d ef 07 c7 92 4a 87 a3 5c d8 db d4 42 1d 41 c6 62 9d 65 32 97 bb 45 6b 1d 88 8b f4 b8 b3 88 57
00006  49 54 a3 91 dc 32 26 60 4e 21 f6 de 7d 64 5f 11 36 ee f7 90 88 4f ba d0 c4 92 88 02 8b 1b 62 ca
00007  37 4a ad 4c d4 01 16 74 65 04 81 7a 3c 18 8c d6 dc d1 fe 6c 8d c3 3f 61 71 0e c8 f1 f3 ce 54 38
00008 
file       3c 8e 96 fb e5 a0 40 49 b1 c3 24 54 b5 ea c9 f4 9a a2 7d e6 74 8d e1 07 68 ad 03 65 09 bc 45 dc
file       0a 92 c4 12 a9 5e 6f 41 f0 04 8a 79 75 7b a6 03 c9 88 1f b8 39 e6 73 d6 49 f0 82 ad dc 44 a7 ac
file       dd 5a 8f 7a be 7b 0f 2c 04 53 70 20 e8 91 4b 32 6d 2a 58 d0 a6 2e 75 ee f0 de b0 d1 71 7f 11 3b
file       6d c4 e4 8b 82 62 c3 94 44 a3 f8 10 ec 45 7e c4 fb 91 1d 09 01 90 9e a9 f8 6a 22 e6 42 0c 75 51
urandom    3c 8e 96 fb e5 a0 40 49 b1 c3 24 54 b5 ea c9 f4 9a a2 7d e6 74 8d e1 07 68 ad 03 65 09 bc 45 dc
urandom    0a 92 c4 12 a9 5e 6f 41 f0 04 8a 79 75 7b a6 03 c9 88 1f b8 39 e6 73 d6 49 f0 82 ad dc 44 a7 ac
urandom    dd 5a 8f 7a be 7b 0f 2c 04 53 70 20 e8 91 4b 32 6d 2a 58 d0 a6 2e 75 ee f0 de b0 d1 71 7f 11 3b
urandom    6d c4 e4 8b 82 62 c3 94 44 a3 f8 10 ec 45 7e c4 fb 91 1d 09 01 90 9e a9 f8 6a 22 e6 42 0c 75 51
 3c 8e 96 fb e5 a0 40 49 b1 c3 24 54 b5 ea c9 f4 9a a2 7d e6 74 8d e1 07 68 ad 03 65 09 bc 45 dc
00009  0a 92 c4 12 a9 5e 6f 41 f0 04 8a 79 75 7b a6 03 c9 88 1f b8 39 e6 73 d6 49 f0 82 ad dc 44 a7 ac

Seuraava DEBUG8 lista on pelkällä ressu2:lla:

Hello world
00000 
myressu2g  cf 85 ab 35 40 7f 33 33 e5 58 97 d9 2c b1 31 89 7e d7 c8 b9 e7 d2 5f d1 e8 68 74 23 b6 1a 4e 8f
myressu2g  20 59 b9 cf 31 f0 8e b3 75 4d 8e e7 94 e3 41 22 74 ca 03 b2 f9 90 fe 5d ac 53 ba a7 e4 3d ba 5c
myressu2g  24 57 b2 90 6f e8 11 7d 7a 51 4e 1b 4e 84 11 fe 22 a4 98 a9 ca b7 32 89 33 c9 c4 7f 02 2b 21 c6
myressu2g  be 54 7f 73 08 ad 51 a0 f3 1f 5f cd 33 4f 78 46 91 d7 a6 6e 86 2f 4d b5 7e 12 83 fd fb 80 5a e2
myressu2g  c4 3e c1 16 42 ec 56 db 7d 01 84 f0 d5 02 d8 c1 35 2f ff 35 90 cf d1 4f a4 ab 01 45 42 e4 d1 71
myressu2g  e0 6c b4 b7 94 68 97 d0 f9 bf 81 8a d6 05 a2 0f ba 6c 69 f5 b7 2a f9 67 7c 7d 19 f6 4c c6 82 b4
myressu2g  4c 76 d7 66 6d 9a fa 85 e8 01 9b 67 1c 87 cb 99 06 bb 97 3c ed 1a 52 d8 96 aa ed 92 52 57 09 09
myressu2g  6c fe cb bc 33 eb 21 13 0b a0 2a d8 90 01 af 28 0a b9 75 96 1e 6e 82 47 b3 67 f8 2a ed e4 86 a2
myressu2g  64 16 e1 89 49 72 e4 62 85 d0 74 15 bc 29 0c 13 95 02 61 3a d7 a0 7e 54 9b e4 3c 0c 29 1c 74 73
myressu2g  b1 9c 92 d6 6b 68 0b c1 99 5b 47 87 0e eb 39 17 c0 ec 7a 5d 06 15 e6 39 74 29 7f 7d 7c 66 b8 23
myressu2g  c4 09 20 e6 14 46 bf 55 c3 0b 71 68 6f e6 9e 4f 8e b4 33 35 9d 59 da 98 f5 b5 1d c2 06 e4 31 f3
myressu2g  51 3f bf 21 b9 73 82 91 2d 93 5d 70 aa ee 48 02 a8 b8 08 58 86 e1 0b c1 a7 ec b3 23 78 c8 cb c5
myressu2g  3b 6d f2 f4 ad b5 34 4a 8a 5e c1 e0 ce 1f fd 4d de 3f e4 26 a7 c7 af a8 fa 29 8d e3 f2 db 74 04
myressu2g  9c e7 8d 84 d6 ab 7a 3a bc a3 77 53 0a 59 fa 73 21 7a e5 46 39 70 c6 fa e8 5b 7d b6 9d a5 b9 b2
myressu2g  a5 f6 ea 72 23 dd 9e d8 36 6c 3e eb 3c da a0 23 fd aa aa 77 89 80 3a 6c 6c cc be f5 a1 a5 51 f8
myressu2g  2f d1 22 48 e9 6f e5 44 ba cd d6 f3 d6 32 c8 61 8a ad 84 33 7f 62 9a 40 1b cc bf 79 c4 b4 6b 23
myressu2g  19 7c 10 27 e1 bc 80 b6 3e c7 74 93 c8 36 bf 45 bf f5 e6 e6 50 35 ad 70 36 da 76 91 bb e8 fc c8
myressu2g  f6 d0 50 27 2b 59 0d f8 80 d7 b6 10 7d 3c 13 07 a6 20 a5 b0 80 9e 78 ec fa 41 0d 6f 8f 49 98 0d
myressu2g  8e 8d 95 89 4e b7 3c 01 f9 ec eb 87 53 d1 c1 92 51 7d 63 2f cd c6 8f 67 4a 8d 74 36 51 be 2a 5b
myressu2g  87 38 54 fe bd e0 e9 a6 c8 89 a8 b6 06 35 a4 86 7f b7 d1 b1 fa be f3 66 a4 92 a6 10 38 5c d4 7c
myressu2g  c0 b6 25 10 08 98 a4 ea fa 69 cc 6d b8 87 32 3d de a0 fe 94 b6 b8 69 0c 5a be fb ec a0 c9 36 cc
myressu2g  34 f9 bf c3 dc ae d4 af 37 89 f7 62 11 6a d9 37 c2 b9 3f 2b cf f0 92 59 d2 c4 29 cc 9f a9 17 84
myressu2g  72 1f d0 23 9d 21 0f 83 65 5f de ed cc cc a0 05 d4 f0 3f 63 37 5c 6f 71 44 e2 52 b2 74 f8 56 1d
myressu2g  17 57 18 07 a7 f4 db 69 7d e1 9c 66 d2 86 a3 81 55 42 fd 64 53 0c 98 ae 68 6e c1 79 a4 e9 41 9e
myressu2g  a0 3c 98 ad 56 f6 96 68 c9 1e c3 9d dc 0b d6 2e 97 8a 76 64 0a 8c 25 4b 34 9a 14 db fe 93 3d d2
myressu2g  d9 41 c9 78 a4 fb a7 51 3c f1 cf 9f bc a0 70 2b 77 d6 02 18 d0 cb 70 00 b6 a9 87 06 81 80 ea e4
myressu2g  94 43 5f 8f 0e af d9 e3 17 46 8d c7 95 7b c9 c8 6d 1c 00 8f 2e b3 32 bb 7b 5b 7c 52 cc 67 c9 ad
myressu2g  5c e3 45 e3 82 73 04 65 9f 63 59 34 fe a1 34 cd 5e df 6c c0 78 e5 c8 94 38 33 b7 cb 98 ea 06 2f
myressu2g  df a4 ac 29 7b 15 f5 28 53 78 d1 43 9a a2 78 e9 98 37 f5 93 b9 55 56 51 ec ae d2 8a 65 f0 98 f2
myressu2g  10 67 33 b0 f1 c4 09 43 79 24 ff 87 a9 44 92 fc af 8a 04 69 a9 a9 3b bc 74 7b 18 e5 de f5 92 f8
myressu2g  91 29 56 e9 ad 96 a6 3c 19 59 d7 da a9 50 cc 34 e4 8d 59 90 13 40 69 06 8f 3d 4a ef 44 c3 d7 b1
myressu2g  5d 41 7c 6d af ca bb 99 a0 39 e3 7b f5 b2 05 0d 0f 04 13 42 3e 8e 20 5d 48 fa 35 0b 3b 39 07 b1
myressu2g  87 ed bd 9e 61 c1 5e 64 0e 58 00 97 38 d6 1e ce c8 3e 32 10 52 5a 16 ae a5 73 da 22 69 a7 8d 0a
myressu2g  12 ff 5b 92 79 cd 7f f9 1e 94 77 5c 9c 8c 4d 96 cb 2b 3a 80 0c f8 1e 2e 4e 50 11 ab 0d bd a4 fb
myressu2g  4d 33 77 1a 56 95 c5 d0 da 30 7c c4 90 1a 0c f9 03 e9 eb dd b5 d9 08 b1 f2 a7 7e b2 84 af 05 09
myressu2g  ca e0 ee 44 c8 27 bc 28 7c e1 2f 13 2d cc 64 3d 65 c8 46 92 6d 65 f7 82 f8 e8 86 a4 93 bd 28 e9
myressu2g  6b 2c a6 09 3c 85 ea 0f db 78 ce 09 ab 1f 61 24 47 45 dd d9 b1 7f 53 35 7b b2 4b cf 3f d8 22 6e
myressu2g  55 79 ff 3f bf 06 bf fe 58 4f 79 1c a0 2c 82 cd a9 af d1 22 7a 18 42 c6 78 d4 73 b6 6f e8 62 44
myressu2g  4a ff d0 87 6d da b1 3e e7 ac ae bb 3d 0e c7 d3 17 e9 4f ff 8e 78 1a 5b f6 d3 3e 42 66 aa b8 6a
myressu2g  58 b9 d7 4b 82 37 d8 59 24 37 fb e8 53 70 8f 82 8c fe 42 21 fa 21 27 2c a9 c7 8c 93 41 4a 2a 47
myressu2g  11 ac d6 de 32 b2 6e c8 97 e8 8b f8 04 72 72 a1 3e 41 d0 63 e8 b3 fb 85 e2 5b 06 74 de 1f 4f 1f
myressu2g  72 44 bf 78 04 65 b7 ac 9b bb 33 0c 86 45 53 d8 5d c8 ee db 53 44 22 35 09 a0 1d c6 04 4b c1 3f
myressu2g  ce 14 5d 65 41 c1 a6 a5 89 08 56 ce 81 10 c7 68 d3 71 8d ec 11 20 30 1b 4d a0 78 1b 59 88 51 59
myressu2g  37 3a 85 04 54 ed 57 04 4d 7e 5e 7f 31 57 33 f5 42 99 38 c8 97 c7 be a0 0e 88 6c 2f bd 0d 8b f7
myressu2g  ac c7 99 5a c3 eb 6d 44 ec 22 42 3d d4 c7 a0 c4 38 88 36 14 bf ff ed 43 01 17 22 00 0a 71 c6 fc
myressu2g  ea 9a 5c 25 8f 57 4f c1 87 b7 eb 04 24 d5 14 3a 52 85 87 45 6a dc 19 52 ec 06 94 4f 91 60 a8 8f
myressu2g  67 ee a8 22 73 9c 16 78 3d b3 fe 5a 1d 07 3c 40 0f 5a 39 a5 b2 05 a3 f1 cf 5f 14 aa e7 93 93 25
myressu2g  d1 fc 7a 51 f5 00 d4 56 e6 63 36 08 eb 9a 5c e3 f7 e6 0d 4f 38 21 1c 9f a9 4b 0e 76 e9 4c 41 8b
myressu2g  67 34 7d 9f 2e 36 4f 91 7d 73 4d 7b ec 5d 9e c5 83 69 89 56 2f d5 7f 75 f6 e2 74 6c 0e 7f bd be
myressu2g  01 95 31 c8 63 ca 04 0d 88 6a 3b 79 b0 b9 c7 59 82 20 b5 05 7e 95 2b 89 0f ca b0 36 a4 0c 71 09
myressu2g  31 b0 3c b6 db de 7e 71 67 59 3c 13 f9 38 22 2d 06 a1 fc 71 59 6b 21 2c 96 e3 1e 6f 07 13 05 fc
myressu2g  a4 68 1d 2a f7 c5 de 90 ea 32 d3 6a c7 2d 27 d1 f0 bc 1b c7 a0 ec 46 2c f2 e0 f6 0f 9a d5 b8 6b
myressu2g  a3 94 ec 32 0d 19 4f a4 c7 2d 3b f2 d8 67 99 f4 99 4c 2e 36 03 ab 79 00 33 aa 7b 29 0d 18 97 4d
myressu2g  fd 21 af 27 83 30 6d df 5e 8d fa e1 d1 ec 8f 9f 2d 21 2d 57 a7 0b 9e 4d 52 96 b3 40 e6 61 d1 d9
myressu2g  c0 24 78 a7 bb 05 d3 8b 44 ee 3a 97 54 52 d5 55 a1 fd 37 f2 fe 3d 59 cc 94 37 a4 53 54 e1 2d 2c
myressu2g  8a 4a 3d 4f 7a de 0b f4 76 1d d8 85 39 15 1b 54 29 55 7f cb fe 03 dd 62 cd ae c4 d9 11 17 4d 73
myressu2g  8d e7 c8 1e 0d f3 f8 32 2b 05 f8 f2 cb f4 40 e6 7e ff 54 f7 f8 9c 71 fd f6 a2 f7 d7 cf 8f 8a c8
myressu2g  63 05 59 5d e0 74 0c f5 d9 a3 99 25 84 dc 72 e5 f1 76 33 d4 0f 45 ab e6 48 94 be 10 b6 21 0e 3a
myressu2g  51 35 04 60 2d 4e 71 14 b4 2c 68 84 f1 d2 67 a0 b6 c8 50 f4 f5 ca c2 93 de 95 df f3 65 2a c3 00
myressu2g  29 10 08 dd 04 a8 9a 18 26 6f 56 6a dc ed fe 45 ec 27 a4 6d df 64 f2 b5 a8 78 8b db 4b 0f 61 9c
myressu2g  66 c5 75 49 d4 62 5e 2b 33 47 e5 8d ac a4 fb a3 5a 52 fb 32 e5 03 6e 78 f9 33 05 8c d8 6c 6a 00
myressu2g  c3 f7 71 13 dd cd 62 19 d4 e1 84 87 44 46 a6 58 bf 96 86 5f e7 8a 5e 3d 05 5f 13 fe e4 6d 3d 4a
myressu2g  c3 14 eb f3 90 6e 7f 54 05 1e 68 23 51 e1 a6 4d ec 7f 4a cb b8 80 47 52 07 f2 10 f6 82 1b 7e 29
myressu2g  dc 15 ab ba 46 94 0c c5 b8 8e af 43 dd bb df ac 47 5a dc c6 cb 19 0d 16 b0 a7 cd d6 ef f9 bc 22
myressu2   cf 85 ab 35 40 7f 33 33 e5 58 97 d9 2c b1 31 89 7e d7 c8 b9 e7 d2 5f d1 e8 68 74 23 b6 1a 4e 8f
myressu2   20 59 b9 cf 31 f0 8e b3 75 4d 8e e7 94 e3 41 22 74 ca 03 b2 f9 90 fe 5d ac 53 ba a7 e4 3d ba 5c
myressu2   24 57 b2 90 6f e8 11 7d 7a 51 4e 1b 4e 84 11 fe 22 a4 98 a9 ca b7 32 89 33 c9 c4 7f 02 2b 21 c6
myressu2   be 54 7f 73 08 ad 51 a0 f3 1f 5f cd 33 4f 78 46 91 d7 a6 6e 86 2f 4d b5 7e 12 83 fd fb 80 5a e2
 cf 85 ab 35 40 7f 33 33 e5 58 97 d9 2c b1 31 89 7e d7 c8 b9 e7 d2 5f d1 e8 68 74 23 b6 1a 4e 8f
00001  20 59 b9 cf 31 f0 8e b3 75 4d 8e e7 94 e3 41 22 74 ca 03 b2 f9 90 fe 5d ac 53 ba a7 e4 3d ba 5c
00002  24 57 b2 90 6f e8 11 7d 7a 51 4e 1b 4e 84 11 fe 22 a4 98 a9 ca b7 32 89 33 c9 c4 7f 02 2b 21 c6
00003  be 54 7f 73 08 ad 51 a0 f3 1f 5f cd 33 4f 78 46 91 d7 a6 6e 86 2f 4d b5 7e 12 83 fd fb 80 5a e2
00004 
myressu2   c4 3e c1 16 42 ec 56 db 7d 01 84 f0 d5 02 d8 c1 35 2f ff 35 90 cf d1 4f a4 ab 01 45 42 e4 d1 71
myressu2   e0 6c b4 b7 94 68 97 d0 f9 bf 81 8a d6 05 a2 0f ba 6c 69 f5 b7 2a f9 67 7c 7d 19 f6 4c c6 82 b4
myressu2   4c 76 d7 66 6d 9a fa 85 e8 01 9b 67 1c 87 cb 99 06 bb 97 3c ed 1a 52 d8 96 aa ed 92 52 57 09 09
myressu2   6c fe cb bc 33 eb 21 13 0b a0 2a d8 90 01 af 28 0a b9 75 96 1e 6e 82 47 b3 67 f8 2a ed e4 86 a2
 c4 3e c1 16 42 ec 56 db 7d 01 84 f0 d5 02 d8 c1 35 2f ff 35 90 cf d1 4f a4 ab 01 45 42 e4 d1 71
00005  e0 6c b4 b7 94 68 97 d0 f9 bf 81 8a d6 05 a2 0f ba 6c 69 f5 b7 2a f9 67 7c 7d 19 f6 4c c6 82 b4
00006  4c 76 d7 66 6d 9a fa 85 e8 01 9b 67 1c 87 cb 99 06 bb 97 3c ed 1a 52 d8 96 aa ed 92 52 57 09 09
00007  6c fe cb bc 33 eb 21 13 0b a0 2a d8 90 01 af 28 0a b9 75 96 1e 6e 82 47 b3 67 f8 2a ed e4 86 a2
00008 
myressu2   64 16 e1 89 49 72 e4 62 85 d0 74 15 bc 29 0c 13 95 02 61 3a d7 a0 7e 54 9b e4 3c 0c 29 1c 74 73
myressu2   b1 9c 92 d6 6b 68 0b c1 99 5b 47 87 0e eb 39 17 c0 ec 7a 5d 06 15 e6 39 74 29 7f 7d 7c 66 b8 23
myressu2   c4 09 20 e6 14 46 bf 55 c3 0b 71 68 6f e6 9e 4f 8e b4 33 35 9d 59 da 98 f5 b5 1d c2 06 e4 31 f3
myressu2   51 3f bf 21 b9 73 82 91 2d 93 5d 70 aa ee 48 02 a8 b8 08 58 86 e1 0b c1 a7 ec b3 23 78 c8 cb c5
 64 16 e1 89 49 72 e4 62 85 d0 74 15 bc 29 0c 13 95 02 61 3a d7 a0 7e 54 9b e4 3c 0c 29 1c 74 73
00009  b1 9c 92 d6 6b 68 0b c1 99 5b 47 87 0e eb 39 17 c0 ec 7a 5d 06 15 e6 39 74 29 7f 7d 7c 66 b8 23

Seuraavassa DEBUG8 lista pelkästä pseudoressu2:sta:

Hello world
00000 
myressu2g  0b a5 d2 39 78 fa 17 58 69 7e a1 05 e6 34 12 e5 81 9a 48 38 23 42 60 c8 c2 a9 26 d6 15 2a f5 6d
myressu2g  5d 08 95 dd 3b 0c ea cc 60 76 0c f7 c3 27 28 b6 0b e1 7e d1 b6 66 f6 93 42 dd 5b 54 f8 9b b3 78
myressu2g  cb 6b c4 9f 0a 08 fd 35 b1 3a fd 94 64 72 e9 f5 e0 ba 13 1b 01 a7 0b bf 45 42 bf fb 38 54 b6 f5
myressu2g  94 ca 95 c1 9d 9d 48 11 44 00 cb 1d b2 b6 6f 04 a0 00 1f 20 7f ab 92 37 3e c2 7b d1 67 32 5b 13
myressu2g  7e 92 00 8e 70 3f ae 2a f2 60 e0 fa 3f f5 00 1f b5 60 74 e0 11 dc ae 55 67 84 b5 68 b4 95 68 4d
myressu2g  8d 85 40 2c d0 b3 16 01 eb 29 5f 22 52 6b 8c 87 33 f4 51 da cd 9d ff de 6f df 1f 96 26 5c db 51
myressu2g  b4 43 14 78 df 3c 4e 69 76 88 11 36 93 44 a7 ed 9a 36 67 0e 6b 95 ea a4 3a 9e 5b 52 b7 34 fe be
myressu2g  ed 43 bd 8b 0f 39 e6 f1 39 47 2c c6 2c 39 c5 00 78 4e 1d 2f 97 e7 7b 62 82 cf e8 2f 10 02 49 13
myressu2g  56 f5 9f 38 b8 db 4c 22 7c e2 6e 72 bd 6b f1 97 d8 35 ba 55 20 c8 72 24 5e 7f 1e 82 54 9d 02 50
myressu2g  0b a1 9c 31 12 62 80 72 64 d5 0f 89 23 53 98 6f d3 a5 c4 15 ff 7a 03 41 81 7f 37 0b 65 05 9b e2
myressu2g  ab 15 81 f6 c9 f7 18 76 66 f7 0a 82 57 c2 47 95 3a 41 01 c6 ea 3f 0e cc 94 a9 e4 14 3a d2 0c fd
myressu2g  a4 e2 d2 fa 4e 27 43 7a 5a 06 3a 2e fc 14 0d 55 2d 4b be ad 8a 26 1f 82 40 46 b8 2e 44 76 e9 c1
myressu2g  be 50 cc 81 5a 30 2b 85 04 92 e1 44 e8 c6 08 e6 28 b9 ce c8 39 2c 50 b7 41 35 dc a5 b0 a3 5f 2d
myressu2g  55 6a bf b3 60 98 05 49 75 75 4f 2b ed 30 91 bb b5 a1 89 28 6a b9 76 a5 b9 c8 1e cc e9 ad 9b 79
myressu2g  53 c9 79 20 fb b4 77 32 b5 15 89 93 40 d2 de 47 88 ae 73 fd be 8b 17 64 a4 1f a2 bd ef 6b 9f 28
myressu2g  f4 27 6e f4 d1 b2 09 95 4f b5 f5 86 76 bf 2f 5b 40 d5 9d e0 cb 07 f2 ca 0c f8 ad 82 95 bf 4f 86
myressu2g  a3 76 f3 4a fd b3 41 59 6d f0 70 ae d7 a6 e5 64 ce b0 f0 9e cf 74 26 45 4d c9 12 16 1e e3 28 f0
myressu2g  86 a1 f8 8b 20 2c 28 0d ad 03 91 fe a7 21 2c af b0 65 d9 ad a1 13 d1 a8 dc b2 36 ab 3b 3a fb a9
myressu2g  03 5f 2c 77 b1 df 59 2b 3a 44 79 be 30 7d af 41 1c 1d 21 e7 7e da c8 36 fd 99 6f 6c 20 1e 84 fa
myressu2g  e9 19 fb 4e d3 dd 2c c8 3b 59 b3 88 40 53 e9 ad d4 bc a8 c0 e3 94 97 bb be 2b 8a d8 95 55 d4 10
myressu2g  3a bb f7 3a 7d b1 f3 9f 18 46 a9 13 7b cb 5c 30 d4 74 19 93 50 ee 84 76 86 51 79 6c ec 48 7d 16
myressu2g  4d 79 12 3c 70 da 6d 42 2b 85 70 e6 93 61 62 1a 4e 39 3e 52 72 82 49 05 6f 7e 4f 01 79 4f f7 04
myressu2g  10 b7 07 cb 28 0e d3 75 a3 50 85 d2 ec df ec 9f 5e 70 a3 88 8e 8f e1 59 1a c5 0d 4b 33 81 9a 59
myressu2g  c4 5b ae ec 92 92 88 40 ac 8a 2e 14 6f 1b 7a a5 dc 6e c8 7a c5 05 3c 69 a1 32 43 6c f6 97 05 77
myressu2g  d6 bd 1c 5d b6 0c d3 6e 88 19 e1 7a 1e c3 38 c5 13 90 7f d1 56 c2 1e 55 c8 f0 a4 ca 50 0c 7e 9d
myressu2g  82 60 ca 9b b4 de a3 7d 69 f5 f2 79 e1 38 f5 1f 77 06 29 5b c1 83 03 ea 05 d9 f5 d4 d3 2a c0 58
myressu2g  62 bb d6 4c b0 f1 1d c9 f8 91 7e e1 13 08 20 71 fe d7 d9 0f cc 90 45 29 34 a1 34 ac ab 47 5e 5e
myressu2g  de 47 86 7a a1 f7 6c 9b 2e 1c e5 88 6d 95 75 3e 44 50 c9 12 4e e9 ea af 59 d2 17 51 e0 67 de 0f
myressu2g  c6 01 9b 24 8a b3 df 85 67 ec 25 07 0e 9d e3 af 61 33 28 ab dc 2e 4b 95 eb 25 25 01 9f d5 ce f3
myressu2g  41 a6 b7 58 c9 4e e1 3a 35 b0 d2 bc e8 e5 3b e9 e7 1f 81 10 07 fe af 06 70 97 54 83 1a ff 53 f0
myressu2g  e2 e4 f6 02 68 c1 d3 f5 00 ba 1a e3 cc 94 9c 5f 7c 5b 4d 06 d4 8f c4 6b 36 fb 15 82 95 94 c7 0c
myressu2g  54 b6 36 0d c1 63 3a 57 0a e9 d6 3c 6d 83 e9 cc 25 78 4b 64 40 e7 0d 06 ac 26 c0 bd a0 c1 98 41
myressu2g  9c 57 db 95 a7 cd e9 3c 9d c9 4e 30 e8 e3 cd 5b 07 a7 48 ba 4f bb 9d b1 e3 ec 51 e1 4e 9c 32 6f
myressu2g  7c b8 15 c1 a9 81 9c a9 a3 9e de 54 c1 b8 a1 81 d5 a5 62 04 12 c5 fe 0d 68 77 1a da a8 7a 4d ae
myressu2g  58 b1 c9 0e 10 ef ce c8 d1 b4 65 f7 07 4d 50 e9 93 8d 13 ef 14 da dc 5f 6a 47 bb 33 02 83 04 05
myressu2g  8a a3 50 79 5f b9 99 cb b6 f0 30 22 77 d8 6f 99 a5 92 bb 3e b4 e3 49 d1 57 3c ef d3 5d bb ec a7
myressu2g  c8 82 04 60 71 4b ce 25 ba 2d 0a 55 7d a1 4b c6 df ba 00 e3 86 1b 64 51 04 d7 b1 c3 17 01 a5 e7
myressu2g  b7 93 8e c7 c8 ad 3a a5 f2 27 ab 52 59 11 25 fc 6e ce 61 fd b4 b1 f5 38 bb 32 0a 3e db d1 9d 3d
myressu2g  85 ce c0 62 6b 0f 61 15 7f c5 14 79 8e c4 ff b8 ff 36 50 f3 e1 24 1a 66 3f 6f db 38 fc 73 4b 8e
myressu2g  33 32 ee c5 f5 7f 29 e3 23 7f f7 fc 88 1f 26 fd e4 66 c5 26 3b 91 2b 93 55 74 fb 8d cb a4 ca 17
myressu2g  36 8d 14 4c 13 3e bc 69 66 52 ca bc f3 86 1b 83 2f 70 d4 c0 b3 cb 84 8f 8f 73 96 5e f2 c9 fe ca
myressu2g  4f 38 02 ff 8a 95 e4 4e cb 00 bb d9 e9 64 82 c2 8f be 0a 29 96 b1 06 d8 f9 98 90 0b 69 3a e4 c2
myressu2g  1e b4 ad 83 5f 89 5d 9c 87 43 bf 88 7e d2 06 30 9f 47 1a bc ad 68 66 9c 96 b3 de f7 ec 7d d1 95
myressu2g  5d 21 5e c5 fb b3 e3 45 49 12 6a 3f 6d 41 c2 7d 72 65 bb 51 8a 52 6a c7 20 85 eb e2 ea bc 9e 35
myressu2g  4d be b5 1c 98 03 8a 40 b9 44 ea 02 b5 9d c2 a4 0a 48 65 dc a2 78 de 24 4b 97 cc 84 21 93 2c e1
myressu2g  41 0e 87 8a 9f ac 98 12 e9 59 b6 a8 85 2a f3 29 9d dc d8 ab f2 60 a6 3e 45 e5 8d 6a 02 f0 53 11
myressu2g  30 60 16 a8 9f e7 42 a7 ea 17 d5 b0 5c d1 dc 8d d2 24 59 85 27 bd d8 3f 41 6e 1a 2d d1 a2 b4 22
myressu2g  25 13 ce f3 47 00 d9 3f f8 76 35 81 1c 7e 50 8d b4 9f 2b d3 7a d6 e1 0d ea 4e 88 85 d9 6c be a2
myressu2g  f9 19 b7 af d3 50 33 6a c1 9a 7d dc e6 83 7c 67 e1 92 19 55 68 59 81 01 6a f5 38 f3 eb bf 6c b9
myressu2g  ed d3 9b 5e 73 bf 9d 28 e1 d6 e5 f6 9f 4d 49 e1 64 43 d7 83 50 58 53 53 0b f3 ae 2f 40 05 f3 1f
myressu2g  b4 d3 27 a5 0b 33 bc a3 d5 a1 6b 5e e7 1a 4e f1 68 a3 24 9f ae 21 a6 a6 3d c4 0b df ba cd c1 e6
myressu2g  db ed 35 23 92 e6 df 0f 78 d4 68 ca f7 45 67 b1 9f 30 56 09 f9 51 3b ba 0f 77 be ce 29 2d 14 d3
myressu2g  cc b4 8a 06 65 5f 5f 65 4e 6f 0b d0 1f bd d6 33 9f c3 e0 92 32 1f f6 19 40 ed 18 2d c3 84 80 8f
myressu2g  8f 86 1e 59 25 73 60 04 14 8b a5 c6 43 72 ed b9 b6 c9 71 ae 8e 2f b5 96 ae 62 a2 52 71 32 d5 f5
myressu2g  f4 81 d7 42 1d 32 b7 1d 5b fa 83 66 62 24 73 b7 0a a8 e6 4b 65 7d 08 69 c4 f1 74 df 68 93 75 9a
myressu2g  3b 68 71 69 6c c1 b7 db fb 36 ef e8 9b 22 38 e6 63 6d b1 8f 5c 47 cd 87 60 e3 a9 c0 f3 b5 f1 d5
myressu2g  91 5f 5c 6b 86 1d 7e 7b ce 00 b8 9c a9 a7 3c 5c fb 39 96 cb 73 4a 08 2b 59 fe 0b 50 50 ab cb 2d
myressu2g  a4 d2 8c ab 4e 70 2c 30 79 86 76 88 bb 9c 47 34 0a a0 45 27 9c 35 b1 38 ac e6 50 5e 88 33 df 6b
myressu2g  1d 7c 39 c4 c1 0c 4d 98 20 fd 0f 01 42 e5 a1 ee b2 07 5e 24 eb 79 83 eb 3e a0 16 9c 99 15 7f 6f
myressu2g  a8 2f a4 82 ce 1c 24 94 1c 31 42 b0 22 f7 d4 c2 62 d5 2f b6 4e ee 1e 39 58 36 ac eb 8c 6a d0 c5
myressu2g  db 10 c3 93 d2 e2 fd 11 3c 92 04 6b 77 df 49 3c e6 3b 60 9c a9 76 c0 8d b6 d9 f5 f7 42 59 0a 5c
myressu2g  c2 fd 27 10 e4 c3 2e 7c 93 5c af 9f 3e 9d b7 39 1c 82 2e 4d 7d d8 d9 47 34 ae e1 05 a4 fa 32 02
myressu2g  65 73 e3 02 3c da ee 4c ea 4f 8f b5 c2 d8 aa 45 01 1d a1 9b c0 e0 27 4f 2a 2a 03 e2 2e 4e 8a b6
myressu2g  8d 0d d7 3d 5c 3d e4 82 5b 2b d8 20 c2 2d 97 d2 e5 7c c1 cb 5c 8c 12 b5 fd bb 76 4d dd 35 a4 85
myressu2   0b a5 d2 39 78 fa 17 58 69 7e a1 05 e6 34 12 e5 81 9a 48 38 23 42 60 c8 c2 a9 26 d6 15 2a f5 6d
first key  0b a5 d2 39 78 fa 17 58 69 7e a1 05 e6 34 12 e5 81 9a 48 38 23 42 60 c8 c2 a9 26 d6 15 2a f5 6d
myressu2   5d 08 95 dd 3b 0c ea cc 60 76 0c f7 c3 27 28 b6 0b e1 7e d1 b6 66 f6 93 42 dd 5b 54 f8 9b b3 78
topup      5d 08 95 dd 3b 0c ea cc 60 76 0c f7 c3 27 28 b6 0b e1 7e d1 b6 66 f6 93 42 dd 5b 54 f8 9b b3 78
next data  b4 b1 b1 c1 a4 40 8e 80 c3 d5 b3 60 d1 9c 16 a9 48 1c 0c 82 4d 39 31 d1 10 45 a5 22 c9 70 b7 3a
next data  68 ec b6 1f 68 e3 92 ec ae c0 b4 5c cf 12 6e 02 66 2c 78 dd 44 bc 00 09 1d e0 2c fa ab 00 e8 6a
next data  77 c4 23 f9 55 90 e4 84 8a 2c 9c 98 97 76 65 cc bf 6e 3b 8e 2b 0f 34 33 41 f5 06 b8 33 0e 28 a0
next data  26 48 6f d6 41 c7 43 a4 96 0d b2 48 4c 6d 92 25 93 db 57 0c 41 ad 84 9c 39 8b 58 dd 51 b8 97 28
new key    49 68 28 fa 3b 0b 18 9c 60 3e 29 41 9c c1 14 7b 2b 80 27 aa c3 62 b1 b0 dc 03 85 52 bb 0f 5a 20
pseudoressu b4 b1 b1 c1 a4 40 8e 80 c3 d5 b3 60 d1 9c 16 a9 48 1c 0c 82 4d 39 31 d1 10 45 a5 22 c9 70 b7 3a
pseudoressu 68 ec b6 1f 68 e3 92 ec ae c0 b4 5c cf 12 6e 02 66 2c 78 dd 44 bc 00 09 1d e0 2c fa ab 00 e8 6a
pseudoressu 77 c4 23 f9 55 90 e4 84 8a 2c 9c 98 97 76 65 cc bf 6e 3b 8e 2b 0f 34 33 41 f5 06 b8 33 0e 28 a0
pseudoressu 26 48 6f d6 41 c7 43 a4 96 0d b2 48 4c 6d 92 25 93 db 57 0c 41 ad 84 9c 39 8b 58 dd 51 b8 97 28
 b4 b1 b1 c1 a4 40 8e 80 c3 d5 b3 60 d1 9c 16 a9 48 1c 0c 82 4d 39 31 d1 10 45 a5 22 c9 70 b7 3a
00001  68 ec b6 1f 68 e3 92 ec ae c0 b4 5c cf 12 6e 02 66 2c 78 dd 44 bc 00 09 1d e0 2c fa ab 00 e8 6a
00002  77 c4 23 f9 55 90 e4 84 8a 2c 9c 98 97 76 65 cc bf 6e 3b 8e 2b 0f 34 33 41 f5 06 b8 33 0e 28 a0
00003  26 48 6f d6 41 c7 43 a4 96 0d b2 48 4c 6d 92 25 93 db 57 0c 41 ad 84 9c 39 8b 58 dd 51 b8 97 28
00004 
next data  73 f2 f0 62 bb 0a 0b c5 a8 78 92 b7 df 1f 4c 72 6d e1 16 9c 18 7e a3 2e 3a a7 d8 46 57 18 e2 8c
next data  97 20 e6 0e 3b 85 9b 5a c3 1a 7e 39 cc fa 6d 4e d5 54 86 81 d3 f9 2a 6b 11 1f aa 4a 04 59 a9 01
next data  b1 9b 30 90 0f 49 0d eb 79 d2 ce 50 fe 6c 1e 49 b8 f7 1d fc df 44 15 35 02 a7 31 9e 9b 09 e5 45
next data  f6 59 57 42 eb 7f cf 86 3b f9 7b 39 67 82 8a 39 36 a6 52 5f 39 2f 20 3f d7 12 54 24 70 0f 70 6f
new key    2c b4 f7 2e 99 22 67 fd ce 6a ba 91 cc 22 e8 8c f4 34 51 95 a0 0b 3a 69 33 98 dc 2b 40 02 2a 9e
pseudoressu 73 f2 f0 62 bb 0a 0b c5 a8 78 92 b7 df 1f 4c 72 6d e1 16 9c 18 7e a3 2e 3a a7 d8 46 57 18 e2 8c
pseudoressu 97 20 e6 0e 3b 85 9b 5a c3 1a 7e 39 cc fa 6d 4e d5 54 86 81 d3 f9 2a 6b 11 1f aa 4a 04 59 a9 01
pseudoressu b1 9b 30 90 0f 49 0d eb 79 d2 ce 50 fe 6c 1e 49 b8 f7 1d fc df 44 15 35 02 a7 31 9e 9b 09 e5 45
pseudoressu f6 59 57 42 eb 7f cf 86 3b f9 7b 39 67 82 8a 39 36 a6 52 5f 39 2f 20 3f d7 12 54 24 70 0f 70 6f
 73 f2 f0 62 bb 0a 0b c5 a8 78 92 b7 df 1f 4c 72 6d e1 16 9c 18 7e a3 2e 3a a7 d8 46 57 18 e2 8c
00005  97 20 e6 0e 3b 85 9b 5a c3 1a 7e 39 cc fa 6d 4e d5 54 86 81 d3 f9 2a 6b 11 1f aa 4a 04 59 a9 01
00006  b1 9b 30 90 0f 49 0d eb 79 d2 ce 50 fe 6c 1e 49 b8 f7 1d fc df 44 15 35 02 a7 31 9e 9b 09 e5 45
00007  f6 59 57 42 eb 7f cf 86 3b f9 7b 39 67 82 8a 39 36 a6 52 5f 39 2f 20 3f d7 12 54 24 70 0f 70 6f
00008 
next data  f1 ad ec b0 d1 7a 19 5c b1 77 db 65 8f 28 a1 96 4d c9 78 92 32 fb d2 b2 c2 94 12 a4 af 08 50 95
next data  14 4d 57 06 a8 02 b4 b6 71 8d 1d f9 e0 ad c8 83 46 d9 99 de 6d b3 79 dc 21 2d e6 22 80 24 23 fb
next data  d3 e3 f1 ec f4 8d 16 61 da 5b 05 a3 42 b7 02 92 6a f0 19 71 1f 1b 2b a2 aa 36 85 3a ff dc 6c e5
next data  79 97 87 35 52 f4 2f 99 e5 f4 71 92 e9 45 29 9e ea 47 e0 ee 1b 5d 48 4c 8f fb a7 56 3d e8 db 35
new key    85 4b e3 e3 63 46 52 d8 5d 15 d2 e2 41 45 fe f0 c8 d3 ed 20 da 61 e4 51 ee 2e 3f 18 90 4e 72 8f
pseudoressu f1 ad ec b0 d1 7a 19 5c b1 77 db 65 8f 28 a1 96 4d c9 78 92 32 fb d2 b2 c2 94 12 a4 af 08 50 95
pseudoressu 14 4d 57 06 a8 02 b4 b6 71 8d 1d f9 e0 ad c8 83 46 d9 99 de 6d b3 79 dc 21 2d e6 22 80 24 23 fb
pseudoressu d3 e3 f1 ec f4 8d 16 61 da 5b 05 a3 42 b7 02 92 6a f0 19 71 1f 1b 2b a2 aa 36 85 3a ff dc 6c e5
pseudoressu 79 97 87 35 52 f4 2f 99 e5 f4 71 92 e9 45 29 9e ea 47 e0 ee 1b 5d 48 4c 8f fb a7 56 3d e8 db 35
 f1 ad ec b0 d1 7a 19 5c b1 77 db 65 8f 28 a1 96 4d c9 78 92 32 fb d2 b2 c2 94 12 a4 af 08 50 95
00009  14 4d 57 06 a8 02 b4 b6 71 8d 1d f9 e0 ad c8 83 46 d9 99 de 6d b3 79 dc 21 2d e6 22 80 24 23 fb

Seuraavassa DEBUG8 lista pelkällä ressu2twistillä

Hello world
00000 
myressu2g  d9 00 92 c0 9e 61 44 8f 6c 6d fe 70 b6 83 a4 c0 92 0c 3b 51 45 43 4e 53 65 17 72 d6 d2 dd a8 39
myressu2g  71 5d 37 93 87 50 84 d7 7b 5d db 25 20 15 de dc ce f9 23 6c 62 2b 1b 85 b8 92 e2 af 02 b6 30 20
myressu2g  73 5c e5 4c 93 ee fd ed c1 26 81 f1 20 b6 b0 7d 5c 6c 6b 50 89 c0 85 26 43 ed dc 01 ff 88 5d 48
myressu2g  af 11 dc 7a f5 3b 93 61 af 5e 87 35 e6 20 43 ba e1 93 1b 21 8a c6 c3 48 74 ea 43 63 5c 04 c2 74
myressu2g  73 01 25 28 63 f2 5a 3f c8 6a 2b 37 e3 b0 4b 09 85 65 40 82 ad c0 a6 cc f3 b2 fd ab 1f 66 eb 8b
myressu2g  6f 07 75 f0 1f 20 da 15 a7 cc 0b 48 eb fe 44 ec 23 bd 9c 34 bc f8 0b 38 71 c8 75 ab 62 a7 68 5e
myressu2g  ed cc 27 e6 bb 0d a1 b8 31 08 bd f7 31 d0 99 f7 23 72 8d 46 59 3c 44 85 71 2b 10 83 ee 0e 7a c9
myressu2g  f0 0f 8f 1a 0f 7c 34 6d 58 bd be b7 80 56 18 3a 86 27 d6 03 d9 78 78 10 d8 cb d5 db 12 7a 9f 02
myressu2g  ed f3 d3 e6 09 f0 15 70 94 af 76 39 52 55 8c 6e 78 ff 48 83 0a e5 d6 df 9f ac d3 9c 88 25 5b ad
myressu2g  13 bd f9 4d 2e 90 87 c3 31 a6 6a 92 44 6f 11 6c 52 4b c2 ad be 1e e2 47 75 e6 4b 63 52 a9 d3 c3
myressu2g  76 52 bc 5d 17 1c 1f 9d 43 2f 31 55 fd d3 0b e4 48 28 b1 ce d3 78 b8 15 08 c2 6e 18 9c 12 9c b9
myressu2g  7d d9 cb 4f 3c 56 25 a4 42 0c 39 02 cd 31 2f 45 f1 9b 75 db 04 f3 dc 94 4d 7e bb d9 c8 63 87 df
myressu2g  32 26 2a bb 9a f8 80 30 11 a6 1a 34 bd 4d 53 6d 11 0d 5e ba 27 0b da 7d 25 1a 13 fe 35 41 fb 9a
myressu2g  f5 57 ef 8d b4 88 51 f0 8b 8c 37 52 c7 2d ad 13 7a 93 7a 18 ce 69 dd 94 b8 e8 8b fa 44 72 e3 61
myressu2g  53 95 9f fc 0a 08 d7 35 68 a9 69 e9 43 35 c4 94 24 3e 09 81 3f 38 04 07 53 5b 66 95 e9 06 1c cb
myressu2g  9c 5d 2f 7e 42 00 4a b0 f8 cb 40 49 b6 20 46 9c f4 31 29 8c 23 e1 1c 55 90 83 a2 38 9b a0 55 91
myressu2g  ff 5b 88 d5 33 a7 92 e7 11 d6 ee 26 9a 0e be a3 f6 9c 1f 12 9c 85 2f 03 fb e7 8e 9c 07 bc db 35
myressu2g  38 37 21 06 46 49 8f 83 41 54 eb fe 8e bf 15 0a af 61 6a b6 4e c5 9a 9f 38 02 9b f8 4e 94 b5 59
myressu2g  12 79 1f 19 8b b6 83 23 1a ee ff d7 17 b8 c6 7d 04 63 5c 07 1a 8a c8 c7 8b 1c 61 e4 e9 98 f2 0a
myressu2g  89 c7 b8 f0 71 53 5e 92 4e 0b 61 ca 38 b7 d7 2f 69 6f 8a 42 23 34 12 04 45 98 68 d4 10 ab d4 b1
myressu2g  85 ae 40 8d 77 72 f5 4b fb 12 3d 06 fd 84 c7 84 88 97 37 b6 38 e0 82 29 c6 a9 a5 f2 bf 44 a0 92
myressu2g  9f e2 75 08 33 c0 7d 7c 4d ab 6b e3 ac 96 70 5c a4 34 d7 55 47 cd ed c9 d4 b7 92 cd 21 a4 b6 ff
myressu2g  1a e8 55 3b 88 32 3b bc d8 9b c3 1c b8 9f 03 74 d1 2d 7a 37 88 c5 ba e9 80 ef d9 ee 00 29 dd ac
myressu2g  ad 4e 12 49 f2 57 3e 89 8e cb fa 22 c7 41 75 11 da 57 2c 03 78 56 df 30 83 d0 b1 02 d5 48 ad 73
myressu2g  35 c9 d0 2d 85 e5 d8 e9 9a f2 f3 9e 44 32 db ec 55 bc 74 db 19 ca 3e b9 9d 89 35 0b 5a 26 01 5a
myressu2g  38 2f ef 4b 1c 54 bb 0d 8d b3 cf cf 79 e7 5e 1f 38 8a 64 9e bb 0b 92 f8 70 da 2a 75 8f 7f 29 22
myressu2g  10 08 c3 8f 56 ff 7f 69 56 b1 12 10 a4 cc c1 57 6d 44 4d b6 1a 8a 82 4d 1c e8 2f 01 43 ee b5 c2
myressu2g  1f 91 49 cc c7 29 40 be 8b 16 c6 f5 ae 0e 7c 0e 95 75 71 26 cc 4f de b4 4f f5 24 a9 6e 49 68 31
myressu2g  67 43 e9 bb 7d b2 ae 60 d9 eb e9 b2 b9 7c d9 79 ca 10 e5 07 16 2c 1e e5 fc a8 84 34 08 14 dd c2
myressu2g  f8 01 70 8b de 81 10 f3 a9 bb c6 2f 11 68 91 27 90 2e 5e af da fa dd 0d 35 0a 73 f3 c3 46 7c 8e
myressu2g  db 6f a4 2d 21 8f 22 31 6b c9 1e 60 82 c4 c0 64 69 1b d4 e4 5a d4 44 41 d8 a2 f6 63 d1 c6 05 dd
myressu2g  db ea 0d f4 65 bf 17 31 09 00 d8 da bb 6b 30 f4 70 e2 0f 3c bb 4e 52 20 9c e2 a7 2a f1 9d da 6f
myressu2g  b0 fa 93 c1 f2 8a 6f 10 a6 29 de 6b 70 e9 71 84 c0 c7 b7 05 f1 38 05 e9 2a d6 40 de 88 55 9a 23
myressu2g  52 fb 3b de ec 75 75 2a 10 96 3c 29 9e 40 b5 84 d3 5b 65 1e b3 41 1e f6 2f b3 27 9f 2d 83 d7 80
myressu2g  d1 5d 51 ea ef 1a db c5 c2 eb eb 8e 12 f2 4d 82 40 7a 9f 9e 46 e5 02 21 1c 7a 7c 67 ce ea d1 75
myressu2g  9c 8c fe f7 47 ee e8 21 80 d6 c6 4d 87 cd 3d 8e f1 ee 73 ab 0d e7 19 51 09 a2 80 ad 53 e6 53 b8
myressu2g  0f bf c3 65 30 ef f6 ba 7e 99 1a 1a 7a 0f ec f4 6c 67 a7 d3 f1 40 42 2e 5b c3 91 87 e1 73 87 c2
myressu2g  d8 b0 7c 93 43 f8 9a f5 25 1b b5 51 d7 dc 1f ad 1f 27 76 98 81 c1 11 9b 08 ed 49 af 3c 39 ee 32
myressu2g  e3 52 26 69 d7 b7 06 a5 6f 0a b3 e8 30 ca 28 ac 82 c1 4b 8f 70 30 7a da 60 56 ec bd d2 fc 33 55
myressu2g  1e 92 6d 44 7d e8 87 e9 27 b8 fb d7 ff f1 25 d2 04 ca 7b 1e fa 36 05 e6 77 bc 1b 73 a9 f1 43 5c
myressu2g  96 94 0f 63 a1 d9 80 e1 09 5e 94 ca 01 bd 5d 52 5a b7 cc ec 5a 9c 22 0f 45 40 02 ec fb 99 4c 61
myressu2g  01 a9 c4 91 db 7d 2d b7 a0 bc a0 de fe 68 c6 6d e2 9d 06 be 66 76 28 f7 20 77 d6 6e d8 d2 64 36
myressu2g  10 84 cc 22 cc cc 0b ba 9f 2c 21 df fd c3 1f 8d 82 e8 69 6a 7f c0 56 c0 10 1e 9a 5a d2 69 b2 e7
myressu2g  b1 e4 11 a5 a7 b7 d5 04 7d 18 a2 e9 1d a0 aa 73 a3 5f e7 f0 24 5e 49 22 08 e8 07 a4 46 27 55 d1
myressu2g  49 37 9a d1 3e bf 91 17 4b 58 2b c7 25 7d bc 38 e7 c1 b0 3a 55 fd 8c 41 e9 1d e1 c9 6a af 7e c5
myressu2g  26 03 8b cf 5b e1 91 41 76 1e 44 2a 6e ff 83 e7 5c 4e 1d b1 9c 02 17 75 9e 6b d9 d5 0f c0 0d 02
myressu2g  38 3b a2 12 6e 73 67 f0 0f 04 eb c8 a9 c2 f3 17 4f 23 7a 8c 2c 1d 74 0f f8 40 95 fd 57 b4 02 09
myressu2g  5e 48 37 43 b0 1f 3f 8a db 0c 7f 5e 4c 2e e5 b1 e6 b4 9a 03 f3 b5 5a 08 b5 90 14 23 5f d1 bb e5
myressu2g  94 15 ae 6c a5 23 1f 20 90 7b 26 4a 8e 7e 86 f3 5a a5 fe 7b f6 d0 42 ce 59 7a 89 4e 2f 7b c9 79
myressu2g  79 98 d7 0f ca 83 c4 1c e2 0e 74 d8 77 46 38 dc f7 bc 93 60 25 be 89 2b 32 22 4a 49 01 27 2c c2
myressu2g  f4 90 e2 26 01 8f 1a 30 d0 d0 16 26 93 53 9e e9 f2 ec 14 22 93 ec 25 11 87 4d 2d b6 ac 78 35 0a
myressu2g  25 3f 6f 36 c1 2c a9 2d 50 b5 e7 cb 2f da 45 2e 5f 88 2c 78 87 cc fe f4 6b b8 d8 c2 53 52 5a 85
myressu2g  c6 c4 5b 6b f6 ec c3 7f aa b8 86 92 3c 7c 36 22 5e 8a 99 ad 94 26 d5 b6 55 a0 c3 db a2 e5 ba da
myressu2g  24 05 2f 5a 38 06 6b b7 be 6b 6e 09 11 7a c6 b5 e3 92 cc 8c e3 b6 51 64 54 fa ff 10 81 ee ae 9b
myressu2g  e3 83 80 b4 b3 df 99 6d 88 18 77 bb d8 0c e1 c4 2d 95 06 de 4e 02 fb b3 18 68 7c a0 09 42 3c 6d
myressu2g  5d 21 ad bb 84 ac 5c dc 4b 84 9f 1d 1d 7c 7a 9d 8e 8d 4d 60 26 28 85 6e 7e 9e ae a4 97 b7 c2 3d
myressu2g  b0 a5 25 1b d1 cf 59 51 01 bb 5f a4 d3 d1 f5 b0 d6 45 bf e8 eb 4f 46 62 45 ed 71 18 e5 25 e3 6b
myressu2g  1c 63 31 b3 7e ba ca e9 96 2d f5 ab 33 b9 9c 04 42 56 d7 4d 35 db 76 4f 3a da cd 52 d5 54 80 fb
myressu2g  74 67 d9 cf e7 34 a0 e0 ad 1f 91 bc a0 8b 53 c9 c8 cb 63 f9 70 e7 5a b7 56 23 cd 73 68 41 6b 89
myressu2g  97 88 c9 5c 08 eb e1 71 f1 09 9b c5 5a 07 1a 0c 0b 1d e9 56 29 83 a1 f6 a2 9d 40 f2 f7 eb 60 26
myressu2g  15 70 32 af b0 b5 0e 49 37 c9 1d 35 59 0b b7 2a 16 17 c4 bd 4d c3 6f d3 76 18 f6 84 3e 04 73 b8
myressu2g  3f 17 a9 d5 91 7c c2 8c 74 42 2b 18 59 b5 a8 fd 61 f2 d1 98 fb ff ed 76 e6 89 8f 51 a8 2c cb 0a
myressu2g  7a da e3 98 b8 e6 8d ae d4 f4 f6 51 2f 3b a5 46 dc 92 4a df 83 c4 f1 ee 2e 94 78 c4 c5 23 4c 88
myressu2g  17 64 1b 6c 20 5d a6 5b f2 ae 83 cd fc 9d a8 3f d1 17 e6 cb 7b 51 2c 3e 1d 20 31 6a c0 99 93 99
myressu2   d9 00 92 c0 9e 61 44 8f 6c 6d fe 70 b6 83 a4 c0 92 0c 3b 51 45 43 4e 53 65 17 72 d6 d2 dd a8 39
myressu2   71 5d 37 93 87 50 84 d7 7b 5d db 25 20 15 de dc ce f9 23 6c 62 2b 1b 85 b8 92 e2 af 02 b6 30 20
myressu2   73 5c e5 4c 93 ee fd ed c1 26 81 f1 20 b6 b0 7d 5c 6c 6b 50 89 c0 85 26 43 ed dc 01 ff 88 5d 48
myressu2   af 11 dc 7a f5 3b 93 61 af 5e 87 35 e6 20 43 ba e1 93 1b 21 8a c6 c3 48 74 ea 43 63 5c 04 c2 74
myressu2   73 01 25 28 63 f2 5a 3f c8 6a 2b 37 e3 b0 4b 09 85 65 40 82 ad c0 a6 cc f3 b2 fd ab 1f 66 eb 8b
first key  73 01 25 28 63 f2 5a 3f c8 6a 2b 37 e3 b0 4b 09 85 65 40 82 ad c0 a6 cc f3 b2 fd ab 1f 66 eb 8b
myressu2   6f 07 75 f0 1f 20 da 15 a7 cc 0b 48 eb fe 44 ec 23 bd 9c 34 bc f8 0b 38 71 c8 75 ab 62 a7 68 5e
topup      6f 07 75 f0 1f 20 da 15 a7 cc 0b 48 eb fe 44 ec 23 bd 9c 34 bc f8 0b 38 71 c8 75 ab 62 a7 68 5e
next data  5b 6e f9 80 2f da f1 bc d8 39 76 82 c0 54 b8 98 2d 17 ce 46 0d 6d 53 d3 13 43 45 1b 85 7e 49 19
next data  23 fd 83 11 28 bc 0f 18 82 e7 c0 d2 ca e9 ed 50 6e ce bc 17 ef 4c 3e 42 e5 ef 3c ec 75 40 2f b2
next data  bf d1 bb 00 e3 c5 db 6d 67 77 33 86 06 80 68 ef 07 be 16 a1 8b 61 18 a0 96 03 4d 11 d2 ba 53 69
next data  db 45 5a 8c 85 65 82 41 99 84 3e ee 4b d1 6b ba 4b fd bd fa 96 0e 25 07 12 6b 52 eb 2c 5d d0 2b
new key    79 26 55 23 28 37 00 72 94 96 32 92 ea 29 20 27 6d ae 56 07 ab 1a 60 c0 6f 41 a6 01 1e 2d 1d b5
pseudoressu 82 6e 6b 40 b1 bb b5 33 b4 54 88 f2 76 d7 1c 58 bf 1b f5 17 48 2e 1d 80 76 54 37 cd 57 a3 e1 20
pseudoressu 52 a0 b4 82 af ec 8b cf f9 ba 1b f7 ea fc 33 8c a0 37 9f 7b 8d 67 25 c7 5d 7d de 43 77 f6 1f 92
pseudoressu cc 8d 5e 4c 70 2b 26 80 a6 51 b2 77 26 36 d8 92 5b d2 7d f1 02 a1 9d 86 d5 ee 91 10 2d 32 0e 21
pseudoressu 74 54 86 f6 70 5e 11 20 36 da b9 db ad f1 28 00 aa 6e a6 db 1c c8 e6 4f 66 81 11 88 70 59 12 5f
ressu2twist 82 6e 6b 40 b1 bb b5 33 b4 54 88 f2 76 d7 1c 58 bf 1b f5 17 48 2e 1d 80 76 54 37 cd 57 a3 e1 20
ressu2twist 52 a0 b4 82 af ec 8b cf f9 ba 1b f7 ea fc 33 8c a0 37 9f 7b 8d 67 25 c7 5d 7d de 43 77 f6 1f 92
ressu2twist cc 8d 5e 4c 70 2b 26 80 a6 51 b2 77 26 36 d8 92 5b d2 7d f1 02 a1 9d 86 d5 ee 91 10 2d 32 0e 21
ressu2twist 74 54 86 f6 70 5e 11 20 36 da b9 db ad f1 28 00 aa 6e a6 db 1c c8 e6 4f 66 81 11 88 70 59 12 5f
 82 6e 6b 40 b1 bb b5 33 b4 54 88 f2 76 d7 1c 58 bf 1b f5 17 48 2e 1d 80 76 54 37 cd 57 a3 e1 20
00001  52 a0 b4 82 af ec 8b cf f9 ba 1b f7 ea fc 33 8c a0 37 9f 7b 8d 67 25 c7 5d 7d de 43 77 f6 1f 92
00002  cc 8d 5e 4c 70 2b 26 80 a6 51 b2 77 26 36 d8 92 5b d2 7d f1 02 a1 9d 86 d5 ee 91 10 2d 32 0e 21
00003  74 54 86 f6 70 5e 11 20 36 da b9 db ad f1 28 00 aa 6e a6 db 1c c8 e6 4f 66 81 11 88 70 59 12 5f
00004 
myressu2   ed cc 27 e6 bb 0d a1 b8 31 08 bd f7 31 d0 99 f7 23 72 8d 46 59 3c 44 85 71 2b 10 83 ee 0e 7a c9
myressu2   f0 0f 8f 1a 0f 7c 34 6d 58 bd be b7 80 56 18 3a 86 27 d6 03 d9 78 78 10 d8 cb d5 db 12 7a 9f 02
myressu2   ed f3 d3 e6 09 f0 15 70 94 af 76 39 52 55 8c 6e 78 ff 48 83 0a e5 d6 df 9f ac d3 9c 88 25 5b ad
myressu2   13 bd f9 4d 2e 90 87 c3 31 a6 6a 92 44 6f 11 6c 52 4b c2 ad be 1e e2 47 75 e6 4b 63 52 a9 d3 c3
next data  3d ce f1 66 23 51 4b f3 9d 58 32 7c 6f b1 30 e4 6e 09 6d 04 e5 f8 6d 51 ee 3e a8 4d d0 30 da fd
next data  10 29 d7 8c cb c8 f9 d9 2e 88 65 56 cf 6c 20 f9 55 ed a4 c0 54 cb 62 6e 0b fd fb 83 15 b4 84 92
next data  c9 c1 5c ac 7c cd ff a7 ea 46 c8 d1 32 28 41 23 4e ee 1d c4 4e b3 c4 9b 5b fe 03 ea fa 7c 55 42
next data  96 ae ac 85 f8 ec d0 69 d8 3f eb c6 94 03 3e cb db 32 d9 8b 3f 36 c5 8a 1d a4 ca e5 30 12 09 08
new key    c2 29 04 a5 a6 be 82 03 89 d2 03 20 82 df 87 e5 22 58 5a 0a 0a 9d b8 ee f1 7c 98 db 81 61 3f d2
pseudoressu d0 02 d6 80 98 5c ea 4b ac 50 8f 8b 5e 61 a9 13 4d 7b e0 42 bc c4 29 d4 9f 15 b8 ce 3e 3e a0 34
pseudoressu e0 26 58 96 c4 b4 cd b4 76 35 db e1 4f 3a 38 c3 d3 ca 72 c3 8d b3 1a 7e d3 36 2e 58 07 ce 1b 90
pseudoressu 24 32 8f 4a 75 3d ea d7 7e e9 be e8 60 7d cd 4d 36 11 55 47 44 56 12 44 c4 52 d0 76 72 59 0e ef
pseudoressu 85 13 55 c8 d6 7c 57 aa e9 99 81 54 d0 6c 2f a7 89 79 1b 26 81 28 27 cd 68 42 81 86 62 bb da cb
ressu2twist d0 02 d6 80 98 5c ea 4b ac 50 8f 8b 5e 61 a9 13 4d 7b e0 42 bc c4 29 d4 9f 15 b8 ce 3e 3e a0 34
ressu2twist e0 26 58 96 c4 b4 cd b4 76 35 db e1 4f 3a 38 c3 d3 ca 72 c3 8d b3 1a 7e d3 36 2e 58 07 ce 1b 90
ressu2twist 24 32 8f 4a 75 3d ea d7 7e e9 be e8 60 7d cd 4d 36 11 55 47 44 56 12 44 c4 52 d0 76 72 59 0e ef
ressu2twist 85 13 55 c8 d6 7c 57 aa e9 99 81 54 d0 6c 2f a7 89 79 1b 26 81 28 27 cd 68 42 81 86 62 bb da cb
 d0 02 d6 80 98 5c ea 4b ac 50 8f 8b 5e 61 a9 13 4d 7b e0 42 bc c4 29 d4 9f 15 b8 ce 3e 3e a0 34
00005  e0 26 58 96 c4 b4 cd b4 76 35 db e1 4f 3a 38 c3 d3 ca 72 c3 8d b3 1a 7e d3 36 2e 58 07 ce 1b 90
00006  24 32 8f 4a 75 3d ea d7 7e e9 be e8 60 7d cd 4d 36 11 55 47 44 56 12 44 c4 52 d0 76 72 59 0e ef
00007  85 13 55 c8 d6 7c 57 aa e9 99 81 54 d0 6c 2f a7 89 79 1b 26 81 28 27 cd 68 42 81 86 62 bb da cb
00008 
myressu2   76 52 bc 5d 17 1c 1f 9d 43 2f 31 55 fd d3 0b e4 48 28 b1 ce d3 78 b8 15 08 c2 6e 18 9c 12 9c b9
myressu2   7d d9 cb 4f 3c 56 25 a4 42 0c 39 02 cd 31 2f 45 f1 9b 75 db 04 f3 dc 94 4d 7e bb d9 c8 63 87 df
myressu2   32 26 2a bb 9a f8 80 30 11 a6 1a 34 bd 4d 53 6d 11 0d 5e ba 27 0b da 7d 25 1a 13 fe 35 41 fb 9a
myressu2   f5 57 ef 8d b4 88 51 f0 8b 8c 37 52 c7 2d ad 13 7a 93 7a 18 ce 69 dd 94 b8 e8 8b fa 44 72 e3 61
next data  45 77 d3 22 fc 9d 03 c5 fe 0b 32 52 f2 ef 5b fa d5 b5 7e c2 9b 7e 8c 35 0d 27 da e8 f4 05 83 5f
next data  89 fd 63 ca ef c5 ce 80 84 a8 5e df 6a 70 c6 73 1a 24 50 af d6 1f 1e a3 24 5e 42 36 41 da bc 8d
next data  19 ef 9d 85 86 f1 10 9b 58 42 f9 c3 6b 1b 64 af 7e 1c e9 3c fa 5d 17 9e 49 4c 3f 75 91 a0 0c 18
next data  74 33 98 f7 ce 74 bd be 76 c1 1d df 05 5b 85 f8 23 6c 22 6b 3b f0 1a 3a 4b f9 8b d6 fd f8 b1 e1
new key    a4 23 97 dd 13 d8 34 aa cb 83 8d 34 d0 c3 ed 13 c8 12 8a 2d e3 7a 55 8e 43 7e e7 25 e2 8d f7 82
pseudoressu 33 25 6f 7f eb 81 1c 58 bd 24 03 07 0f 3c 50 1e 9d 9d cf 0c 48 06 34 20 05 e5 b4 f0 68 17 1f e6
pseudoressu f4 24 a8 85 d3 93 eb 24 c6 a4 67 dd a7 41 e9 36 eb bf 25 74 d2 ec c2 37 69 20 f9 ef 89 b9 3b 52
pseudoressu 2b c9 b7 3e 1c 09 90 ab 49 e4 e3 f7 d6 56 37 c2 6f 11 b7 86 dd 56 cd e3 6c 56 2c 8b a4 e1 f7 82
pseudoressu 81 64 77 7a 7a fc ec 4e fd 4d 2a 8d c2 76 28 eb 59 ff 58 73 f5 99 c7 ae f3 11 00 2c b9 8a 52 80
ressu2twist 33 25 6f 7f eb 81 1c 58 bd 24 03 07 0f 3c 50 1e 9d 9d cf 0c 48 06 34 20 05 e5 b4 f0 68 17 1f e6
ressu2twist f4 24 a8 85 d3 93 eb 24 c6 a4 67 dd a7 41 e9 36 eb bf 25 74 d2 ec c2 37 69 20 f9 ef 89 b9 3b 52
ressu2twist 2b c9 b7 3e 1c 09 90 ab 49 e4 e3 f7 d6 56 37 c2 6f 11 b7 86 dd 56 cd e3 6c 56 2c 8b a4 e1 f7 82
ressu2twist 81 64 77 7a 7a fc ec 4e fd 4d 2a 8d c2 76 28 eb 59 ff 58 73 f5 99 c7 ae f3 11 00 2c b9 8a 52 80
 33 25 6f 7f eb 81 1c 58 bd 24 03 07 0f 3c 50 1e 9d 9d cf 0c 48 06 34 20 05 e5 b4 f0 68 17 1f e6
00009  f4 24 a8 85 d3 93 eb 24 c6 a4 67 dd a7 41 e9 36 eb bf 25 74 d2 ec c2 37 69 20 f9 ef 89 b9 3b 52

Vielä DEBUG8 lista kun kaikki generaattorit ovat käytössä:

Hello world
00000 
file       bf 2b be eb 5e 10 18 d4 5f 39 34 62 b8 22 58 16 f7 55 79 43 f7 31 53 38 66 f4 91 34 20 53 6c b1
file       31 cc 47 e1 af 52 26 b7 b0 0c 4b fc 23 e9 ff f2 a7 8c 36 03 1d 04 a9 e3 d4 eb 75 fd 9c 87 e7 64
file       51 af 5a 49 c3 90 e6 94 61 72 aa b0 b5 99 6a 99 6c 52 03 8f e9 1d b7 2b 27 d4 ad 72 b7 2c 85 80
file       4e fc bb e4 8e fa 51 d8 b6 3c 7f bc 54 fe d9 d7 66 ba af 3f 71 88 a5 f3 3f d9 42 33 9b 61 cb f4
urandom    bf 2b be eb 5e 10 18 d4 5f 39 34 62 b8 22 58 16 f7 55 79 43 f7 31 53 38 66 f4 91 34 20 53 6c b1
urandom    31 cc 47 e1 af 52 26 b7 b0 0c 4b fc 23 e9 ff f2 a7 8c 36 03 1d 04 a9 e3 d4 eb 75 fd 9c 87 e7 64
urandom    51 af 5a 49 c3 90 e6 94 61 72 aa b0 b5 99 6a 99 6c 52 03 8f e9 1d b7 2b 27 d4 ad 72 b7 2c 85 80
urandom    4e fc bb e4 8e fa 51 d8 b6 3c 7f bc 54 fe d9 d7 66 ba af 3f 71 88 a5 f3 3f d9 42 33 9b 61 cb f4
myressu2g  39 13 ef 16 ec 1e a9 06 6a de 45 7c c2 bc 58 17 74 2b ab e7 48 2f a5 f5 cd db a1 96 74 a1 ff 83
myressu2g  aa e7 94 e2 39 29 78 c1 2f ee 9f 09 66 64 f9 d7 17 41 b2 01 e5 46 20 ab a9 10 8b cd 9d 23 06 18
myressu2g  2e 53 7e 59 6d f5 5f 96 5d 0e 04 f2 e0 93 d0 f9 94 2b 08 25 4a ef b9 a4 68 94 ff 51 30 70 87 3b
myressu2g  70 32 73 c2 17 86 9b 07 24 28 c1 ff e0 77 a6 31 c8 18 65 1a ed 6c 20 38 4f f0 4a 6c f7 c9 e5 d0
myressu2g  a2 dc fd 1a a8 7c 89 d9 30 dc 81 e5 30 2b d6 c1 76 27 2b 56 52 bf 45 e4 8f e5 8e 5b f8 d4 03 84
myressu2g  90 80 53 43 e4 78 31 2a 6b d1 fc a1 31 5d ea 95 77 03 09 e4 2b 31 5d aa 78 ac 25 c5 70 fb 95 c9
myressu2g  b4 a2 d9 0b 43 7f 4b f6 07 ce e0 a3 7d 26 73 36 c3 cb 6e c9 a9 53 12 d1 1b 4a 22 de 1a 97 99 f3
myressu2g  97 03 3d 7d d1 99 47 f3 66 1d f0 56 1c 0a 1b d0 dc e3 35 01 ab b0 5b 41 b0 1d 73 8e 3d f7 95 36
myressu2g  e6 a2 bd de 16 d9 a0 a6 86 ad 64 b1 3b 80 72 6e 67 00 c0 d9 4d d7 8f 04 d1 2e 66 8e aa 7c 1c ee
myressu2g  d0 ee 61 0a 30 47 cc 43 2f 94 25 af 4a 1c 30 1c f2 9a e2 58 b3 19 7e 27 f2 d9 4b 44 d0 7a b1 91
myressu2g  2b e4 55 ea 9c 39 c3 e6 60 eb 2d 80 a1 52 72 41 c9 f2 78 66 1f 0c fc 98 09 50 75 d9 de cb 70 bc
myressu2g  be 2c 31 0a 11 1e 69 09 34 b4 17 3a 6d 80 1a d3 a0 5c 98 56 e7 5a cb f7 63 79 6a 50 8e 50 d7 45
myressu2g  f2 70 db 4a 92 1c 5c f2 f0 50 b6 ed e8 31 95 6c eb 62 ab 6a 61 12 a4 36 b8 4f d5 64 f5 10 af 7b
myressu2g  66 e6 f0 80 ea b6 e2 43 96 3b 7b 58 32 73 46 21 dc 58 6b 83 87 86 49 78 3d 50 d2 d8 7b 77 a9 55
myressu2g  4b a8 65 f1 fb bb 98 86 b1 a2 93 21 07 98 06 51 76 31 31 a8 f0 52 cd 13 da 10 e6 36 9d 2c 50 db
myressu2g  40 1b 99 61 0a f9 07 1f 54 04 7e c1 be ca c2 01 bc 69 4c 72 c6 c3 a3 3e 3f 1b 7e 2a c5 f8 a9 25
myressu2g  d9 b1 01 43 d9 89 12 dd f0 09 0d 3e 21 75 81 21 10 93 81 15 18 b8 f9 be fc 1d f2 bd dc fd 7c 9f
myressu2g  07 53 c6 dc f7 a9 83 c6 30 ab c9 2b 99 5a 37 33 b1 60 8b 4e dd 0c a2 97 66 dc 91 07 c4 7a 78 d5
myressu2g  cb c3 72 63 f6 ba ac 5e 9f 5e 80 8d 6a d8 ed a7 ce cd f4 cc 9b 66 f5 98 48 eb 8e 70 04 d6 eb 4f
myressu2g  35 c4 50 db a2 43 1a 27 86 a7 f3 5b 6c 90 db 92 7d 3e 69 4e 50 58 9b b2 06 6a a1 6d 8b 42 9f d9
myressu2g  be 71 ab b5 dc c8 5e e0 01 18 93 d8 34 cb 6f ac e0 d2 69 b4 2b 77 7d 3f fe ce e6 d1 61 79 db 3d
myressu2g  ce 45 95 20 12 33 94 9b d7 a4 40 2f 53 77 d7 2f 89 b3 1c 90 8f 61 95 38 26 8a d5 7e 45 64 bf 85
myressu2g  ca b1 d9 29 24 41 d5 c6 d0 7f 4a 9d c3 ef 87 2d 26 fa c9 d7 9e 0a cc e5 8a c7 28 5f e6 3c b9 2c
myressu2g  62 6f 62 ea 84 e6 91 43 2e a5 c0 a3 55 1b 2d 9d 98 cf c1 a1 5a 89 11 57 53 a2 02 c1 92 d4 73 97
myressu2g  79 23 bb db 36 42 d3 d7 ab 31 b5 2e ea f9 a7 b2 91 2b b2 d6 82 a4 d2 3f c0 5f fe 6d 6f 92 b2 1a
myressu2g  a8 d3 68 ef eb fb 37 45 03 2f 00 4d 71 cb cb 76 32 90 e9 b9 54 48 79 58 70 0b 57 ae 15 01 99 55
myressu2g  eb 17 45 0d f3 8d 7d ea 48 18 c0 5b 59 81 ef 20 91 b8 b2 b4 3e 62 af 36 c9 4d 02 2d 05 8b 72 6d
myressu2g  6b 8b c6 b8 02 7c 1a df 35 dc b4 5a 76 f5 b8 8e c7 91 d8 67 f1 41 96 67 28 6c 7a 04 d7 a6 11 c7
myressu2g  84 ef 86 b6 28 3e ea 8f 1a 02 15 28 55 b0 08 e1 48 03 77 b4 83 3b b3 86 df fe 57 e3 54 31 24 cd
myressu2g  fa c8 12 e9 73 11 61 ed 7e 48 1c 6e e8 07 8c 98 e3 61 77 02 6c 96 75 2a 47 0f f9 ce 45 74 f2 ce
myressu2g  19 a1 f5 7e e5 4b ba 05 ce d5 67 6b 7b 09 a9 2e 31 b2 fe 0c e9 b0 68 61 05 85 8f 00 13 f8 d5 33
myressu2g  42 5b dd 17 89 2c 5e 06 c0 27 2b 0d 81 6a 2e 02 a6 10 64 4f b4 f0 45 d4 1b 92 44 65 87 19 3e 9f
myressu2g  70 6d a9 5c df a6 b5 c9 5e 6b 56 5f 8e 9a 75 85 a0 47 23 a8 c6 5c cf 69 57 4a 72 63 c3 ce 01 48
myressu2g  a3 bf 7e 43 eb 61 e9 52 07 45 c3 4b 0d 6a 35 cc fc 80 ad f7 b1 19 62 5e 19 f7 1c 52 05 0a 09 10
myressu2g  15 f5 82 4e 7d 0b 10 82 e6 a1 06 20 06 ff d8 04 43 2d 43 9e c6 70 98 8c b5 ff 04 fa 02 f6 93 a2
myressu2g  93 47 82 db 01 69 36 6a 1c e5 de 0d 21 81 38 6b 47 a5 c6 e6 b9 ba e0 05 12 68 b8 2a f4 92 b7 96
myressu2g  95 7c 6b cd 8e 6e da 2c 9e f4 3b b5 1e 97 ed 95 e6 e9 dd f9 48 43 41 c7 f0 d2 e0 e2 74 72 33 19
myressu2g  1c 60 0e fd 00 46 19 2d e9 1f 61 0e d0 b5 47 18 b1 b6 b0 d1 ca 53 13 b3 42 f9 0c a8 3b 73 3f fc
myressu2g  bf fc c3 bf 5f df 95 6f ad a1 f5 3d b4 9e b4 5a 35 fe 57 36 f7 6c 6c da 83 de 30 53 81 1f a9 d2
myressu2g  c8 5e e6 e4 91 da 6c 56 1b b0 b7 d1 fc 2d e5 93 23 b4 51 6b 67 94 c1 d7 3d a4 33 bb 20 7c ac c8
myressu2g  f0 47 90 94 3f 85 85 16 ef 07 62 f0 31 87 c7 f6 56 61 b1 fe bf 69 35 13 22 20 9f 38 41 6b 33 18
myressu2g  55 a0 02 51 a7 2f 13 ae 86 ed 3a ea 39 e0 cd ee 2c 9d bd 9b 21 30 58 08 cd 12 d4 4f 24 0c c1 fd
myressu2g  a5 1d c3 29 4c 52 19 a8 3b e4 e4 da e4 fc a9 80 5f 74 e5 fe f0 6a 1f 60 9d 24 94 76 e2 f8 22 e7
myressu2g  7b bc 08 fa ba 46 92 1d ca 52 d1 34 04 9e bf 28 94 95 9b 01 d2 1f 8e fe 2c 53 4a ee 8f a2 75 7a
myressu2g  f9 99 b1 6a e8 cf b8 69 a0 04 60 f1 5f 38 30 f0 3c e1 40 b2 00 c0 38 9b 1a c8 bb 53 fd cf f7 b6
myressu2g  eb 3d 9a 90 8a c7 2e 55 b1 b6 f0 82 e2 04 5b ff ee a7 a6 a5 3c 8b 44 d9 f0 de f7 0b 41 74 08 e1
myressu2g  f2 22 30 1d 87 f6 2e 9b 2c 3e c8 13 32 c2 58 97 e3 4b 92 be 27 05 81 7d ab cb d3 6c 40 86 30 4c
myressu2g  af e1 58 20 0c c6 90 57 92 21 43 ab 77 bd 6e b8 a9 5c 12 95 16 45 d8 22 03 78 ed d5 5a 10 00 5d
myressu2g  f9 d3 44 6c 66 24 3e 9f 1f b3 1c 35 1f e0 e1 f8 a9 0e be 2e 73 24 f0 91 d6 52 b5 39 6c 23 c1 bd
myressu2g  bd 87 f8 17 ef a3 4a d0 db 39 aa 58 e9 5d dd 98 f6 e1 6e 1f a3 a4 bf fa 42 4a 77 4b 6a 83 ec 20
myressu2g  a8 ab 4d b7 af f8 82 2f 77 d9 e5 d3 8b e8 61 e8 47 b8 5a 25 b0 a3 01 d6 cb 57 87 3a 7b e2 22 47
myressu2g  6e a1 31 cb 90 e4 c4 98 6a 1d d4 46 8c 5b e3 1d c8 b4 c3 4e 87 45 6f 4d e8 3b fc 34 6f 1b d7 50
myressu2g  42 1d 06 92 59 72 1e 28 fc c2 07 6e 23 9c aa 43 16 d6 52 3a b9 26 a8 7d 31 33 2e ab e2 97 b3 4f
myressu2g  c5 c7 ca e5 99 f7 59 b8 ac 35 75 f7 e4 82 eb 03 b5 a8 5a 15 9d 10 a9 e9 5d c6 aa 49 80 33 f8 8a
myressu2g  e2 30 4c 5f ab 50 4b 48 0f 81 c9 2f 64 03 0c 71 9d 99 09 3d 4a 35 a8 fb 46 a3 f9 7a 91 19 88 33
myressu2g  78 2a cf bd 1b 70 40 c2 b9 a6 79 f5 c6 45 1e 4b a6 e0 40 31 16 97 2a 64 e0 11 45 f6 97 44 e8 c3
myressu2g  38 26 14 24 64 b5 7d 38 97 bd 69 69 cb bd a6 b2 0b e4 82 8e b9 18 63 fc 83 8b ef 09 50 15 90 9a
myressu2g  05 68 2e 98 67 8a 1c 43 fc 84 12 5f ac 65 db ef 73 69 76 2b 14 fc 45 10 83 b8 d2 ff d1 3c 18 39
myressu2g  f8 af 6c 78 d8 27 7e 8e 6f cd d4 06 47 ed de 4c da 2e 4d 4e 14 5e 06 9b 7a 37 b3 c3 63 f1 a7 0e
myressu2g  39 9b 2e cb 67 be 1c bb c2 8d 06 69 fb ba 48 a0 47 42 a5 1d df 45 b0 2f 88 c6 e1 ff e5 2b 2e 29
myressu2g  80 8d 49 f1 0a 27 cc 31 45 f6 b9 71 d2 fe e9 ea cb cf a3 77 af 90 3f 83 15 51 4e d7 57 31 81 d2
myressu2g  c5 4d 8f c1 15 f4 0d a9 84 4b 3e 12 37 09 64 f9 f2 f3 5e 84 c3 48 61 28 23 4e cb f5 dc 61 88 4f
myressu2g  91 f1 94 11 36 8e 03 88 44 37 b4 1b a4 4b e2 13 c9 6b 64 b3 2e f0 c0 63 f9 90 61 9a 29 ae b4 c0
myressu2g  b5 79 c5 a1 07 f6 62 08 c1 f9 b5 4e ac cb 89 74 54 d6 90 51 22 d0 9e ca c7 c6 3a 49 9d 9d 6b 11
myressu2   39 13 ef 16 ec 1e a9 06 6a de 45 7c c2 bc 58 17 74 2b ab e7 48 2f a5 f5 cd db a1 96 74 a1 ff 83
first key  39 13 ef 16 ec 1e a9 06 6a de 45 7c c2 bc 58 17 74 2b ab e7 48 2f a5 f5 cd db a1 96 74 a1 ff 83
myressu2   aa e7 94 e2 39 29 78 c1 2f ee 9f 09 66 64 f9 d7 17 41 b2 01 e5 46 20 ab a9 10 8b cd 9d 23 06 18
topup      aa e7 94 e2 39 29 78 c1 2f ee 9f 09 66 64 f9 d7 17 41 b2 01 e5 46 20 ab a9 10 8b cd 9d 23 06 18
next data  2b 94 54 ba 56 50 9b e9 a1 17 60 29 c9 4a df 6c 21 df 78 a2 af fe 9f e1 7a fe 3a b6 31 b9 a2 59
next data  cd 4f 6e 3e bc 1b e0 a1 af 39 e3 32 26 7d 4c 95 e6 5f 7a 22 34 c6 02 ff 36 8e f7 64 df 4e 40 64
next data  0c 2d 5f cc 98 0a a1 25 d0 d8 23 67 98 84 fa b7 8e b2 67 8e 1b 9b 76 2e 36 fe 2b 39 8a 80 ba 61
next data  1d 61 34 36 0f 47 86 58 65 f7 d9 21 39 e4 79 2a df fa 43 9b 73 d8 ee 4c 7a 09 9b a8 04 c8 8c f1
new key    73 4d 09 a1 df b2 a0 49 85 56 40 50 58 a4 72 c9 79 6c 0d 25 98 ed dd f1 06 7c c9 4e db df 9a 6b
pseudoressu 94 bf ea 51 08 40 83 3d fe 2e 54 4b 71 68 87 7a d6 8a 01 e1 58 cf cc d9 1c 0a ab 82 11 ea ce e8
pseudoressu fc 83 29 df 13 49 c6 16 1f 35 a8 ce 05 94 b3 67 41 d3 4c 21 29 c2 ab 1c e2 65 82 99 43 c9 a7 00
pseudoressu 5d 82 05 85 5b 9a 47 b1 b1 aa 89 d7 2d 1d 90 2e e2 e0 64 01 f2 86 c1 05 11 2a 86 4b 3d ac 3f e1
pseudoressu 53 9d 8f d2 81 bd d7 80 d3 cb a6 9d 6d 1a a0 fd b9 40 ec a4 02 50 4b bf 45 d0 d9 9b 9f a9 47 05
myressu2   ba ec 94 08 65 b5 dc ab a3 20 50 b9 91 fb 57 83 42 a1 09 c4 12 20 75 7d 74 9e 54 d3 21 9a 49 d3
myressu2   8c b1 5a 1d 04 cf 5d 11 3b 1d 69 31 e5 e3 15 56 89 cb 29 3b c4 ae 8b 24 ad 95 c8 f5 b4 00 42 d0
myressu2   ff 5e f8 9f f3 e6 ce 68 81 76 08 32 1d 36 46 ef 94 c7 4f 57 a0 39 84 e1 9e cf 08 10 c5 78 3c 65
myressu2   c3 1d dc 91 65 c5 e6 aa b8 1a 5a 3c 5c 47 4a 68 ce 43 e5 40 29 61 16 15 3d 7c fc 5e ef 52 d2 cc
next data  9a 28 d5 b7 4c c6 d1 57 d9 7a b3 59 71 4b 68 ec bf 22 0d 7a 64 73 78 1f c1 7c 92 59 56 3e ae f4
next data  cd 67 70 d4 b3 db 55 dd 66 c2 d6 27 46 bf de e8 33 43 08 77 d8 d0 d1 4c af 09 10 c9 df 7e bc 6d
next data  c7 23 b1 80 e2 73 13 14 94 b6 6b e1 ce eb 89 5c e5 53 be 53 73 fe 5b 0b 0e cd 8e b5 02 32 08 71
next data  c1 7f 49 3c ba ea e8 b7 3a eb c6 10 8c e1 9a 1d 08 41 26 96 86 d9 a7 c7 6b f2 49 ee 1e 4c e1 79
new key    81 43 8f 20 31 2f 9b 94 db 05 0e c3 3c e1 ff 7a ff 4a 09 55 17 09 9f 2b c1 e0 31 62 ae 23 d1 43
pseudoressu 20 c4 41 bf 29 73 0d fc 7a 5a e3 e0 e0 b0 3f 6f fd 83 04 be 76 53 0d 62 b5 e2 c6 8a 77 a4 e7 27
pseudoressu 41 d6 2a c9 b7 14 08 cc 5d df bf 16 a3 5c cb be ba 88 21 4c 1c 7e 5a 68 02 9c d8 3c 6b 7e fe bd
pseudoressu 38 7d 49 1f 11 95 dd 7c 15 c0 63 d3 d3 dd cf b3 71 94 f1 04 d3 c7 df ea 90 02 86 a5 c7 4a 34 14
pseudoressu 02 62 95 ad df 2f 0e 1d 82 f1 9c 2c d0 a6 d0 75 c6 02 c3 d6 af b8 b1 d2 56 8e b5 b0 f1 1e 33 b5
ressu2twist 20 c4 41 bf 29 73 0d fc 7a 5a e3 e0 e0 b0 3f 6f fd 83 04 be 76 53 0d 62 b5 e2 c6 8a 77 a4 e7 27
ressu2twist 41 d6 2a c9 b7 14 08 cc 5d df bf 16 a3 5c cb be ba 88 21 4c 1c 7e 5a 68 02 9c d8 3c 6b 7e fe bd
ressu2twist 38 7d 49 1f 11 95 dd 7c 15 c0 63 d3 d3 dd cf b3 71 94 f1 04 d3 c7 df ea 90 02 86 a5 c7 4a 34 14
ressu2twist 02 62 95 ad df 2f 0e 1d 82 f1 9c 2c d0 a6 d0 75 c6 02 c3 d6 af b8 b1 d2 56 8e b5 b0 f1 1e 33 b5
myressu2   94 66 98 b4 6a 0c 46 0a 7d 94 03 43 9d 96 4c 59 3e 48 6a 77 df 00 1f b3 ae a8 e4 54 6d 33 7e d4
myressu2   d6 d5 17 b4 66 8d 4f 3f 3b c2 4f 40 bf 56 d0 6e 66 6b 14 4d b7 ce 01 29 b2 81 ab b2 56 89 6b 8b
myressu2   de df f4 c1 07 4c 7d da 93 6d 07 62 e8 5d bd dd 16 94 31 dd 9e 10 50 ee 41 2c e0 2b 6d 36 28 fa
myressu2   d2 8c f4 a7 ef 68 c2 5e ad 65 b9 83 9a ba e0 69 34 98 21 8e 1c a1 cf f5 a4 57 fe f4 21 64 82 24
 94 66 98 b4 6a 0c 46 0a 7d 94 03 43 9d 96 4c 59 3e 48 6a 77 df 00 1f b3 ae a8 e4 54 6d 33 7e d4
00001  d6 d5 17 b4 66 8d 4f 3f 3b c2 4f 40 bf 56 d0 6e 66 6b 14 4d b7 ce 01 29 b2 81 ab b2 56 89 6b 8b
00002  de df f4 c1 07 4c 7d da 93 6d 07 62 e8 5d bd dd 16 94 31 dd 9e 10 50 ee 41 2c e0 2b 6d 36 28 fa
00003  d2 8c f4 a7 ef 68 c2 5e ad 65 b9 83 9a ba e0 69 34 98 21 8e 1c a1 cf f5 a4 57 fe f4 21 64 82 24
00004 
file       93 45 74 ad fb f1 80 01 f8 6f da 4a ba b4 4e cd e2 91 c1 4b 82 76 d9 78 64 6f 61 13 11 5c 64 bc
file       3b a3 36 fd 94 ed 9b fb a0 82 38 07 a5 1c 3d a9 64 8a d4 ad a0 cb b4 b8 9d 6b 00 4a 00 11 3a fd
file       90 b1 5b 28 97 f0 b9 39 d0 37 f4 3d e9 c6 45 e2 53 f0 95 a9 4d 5b 69 3e 47 d5 1f 49 94 64 d8 bd
file       fb 3a 74 49 0d 41 44 a9 3b 55 b6 97 69 cc 30 37 b7 bc 50 5c 9c 26 ee 35 95 14 3e ed 4c 1c ef f4
urandom    93 45 74 ad fb f1 80 01 f8 6f da 4a ba b4 4e cd e2 91 c1 4b 82 76 d9 78 64 6f 61 13 11 5c 64 bc
urandom    3b a3 36 fd 94 ed 9b fb a0 82 38 07 a5 1c 3d a9 64 8a d4 ad a0 cb b4 b8 9d 6b 00 4a 00 11 3a fd
urandom    90 b1 5b 28 97 f0 b9 39 d0 37 f4 3d e9 c6 45 e2 53 f0 95 a9 4d 5b 69 3e 47 d5 1f 49 94 64 d8 bd
urandom    fb 3a 74 49 0d 41 44 a9 3b 55 b6 97 69 cc 30 37 b7 bc 50 5c 9c 26 ee 35 95 14 3e ed 4c 1c ef f4
next data  ba d0 54 1b 5d d6 6f 3e e4 15 98 66 eb 25 ac 36 49 51 a2 06 0a 1f 7c 32 0e bb 96 ac b5 6c b8 c7
next data  52 e9 c7 0e 91 ef a3 33 0c 2c 42 67 95 7f 56 59 ca 84 2a 23 2a e1 2e b7 13 35 02 39 44 6b 77 f9
next data  e1 eb 68 c5 71 a5 af 1a 4c 16 23 8a cb 54 45 a4 d8 76 7c 75 98 76 e6 1e 26 7c e5 1b a2 a5 61 6e
next data  da f3 c1 06 7a 08 a7 63 c3 b6 2f 1f 8f 23 27 4b 5f b5 94 21 b0 fb 62 3e 8f 70 f2 ac d0 fa 6c 48
new key    a1 ee 82 d4 d3 1a c7 ee 6d 59 71 ac 02 30 b5 21 0d 86 2c 1d 0a 34 90 03 08 b4 f0 d2 22 8a 83 81
pseudoressu 29 95 20 b6 a6 27 ef 3f 1c 7a 42 2c 51 91 e2 fb ab c0 63 4d 88 69 a5 4a 6a d4 f7 bf a4 30 dc 7b
pseudoressu 69 4a f1 f3 05 02 38 c8 ac ae 7a 60 30 63 6b f0 ae 0e fe 8e 8a 2a 9a 0f 8e 5e 02 73 44 7a 4d 04
pseudoressu 71 5a 33 ed e6 55 16 23 9c 21 d7 b7 22 92 00 46 8b 86 e9 dc d5 2d 8f 20 61 a9 fa 52 36 c1 b9 d3
pseudoressu 21 c9 b5 4f 77 49 e3 ca f8 e3 99 88 e6 ef 17 7c e8 09 c4 7d 2c dd 8c 0b 1a 64 cc 41 9c e6 83 bc
myressu2   02 71 75 5c 3a 1e 2c d9 7c 91 6f ac f0 c3 90 ba 62 32 1b 2b 97 65 59 d2 63 84 82 66 7a fb ac c7
myressu2   d7 66 c0 f9 14 1c 51 c1 98 1a 6d 5a 5d e3 71 23 0e 52 66 d8 6d 70 51 f8 ed 27 68 23 ca 2a 9a 41
myressu2   83 2a e8 a7 74 49 4a d1 6c 71 61 5a ca a3 95 2a 60 e4 42 b6 b4 3f 2b 16 d9 e6 2f 36 c3 d1 16 a8
myressu2   47 2f 45 cf 9d ff 01 89 6e d8 e2 d0 d4 9c 51 5d 34 51 af fe ab 5b c5 73 27 34 1e 99 e7 91 2a e9
next data  10 22 13 d0 26 90 b4 83 03 ee c6 0d 75 6f 3d b0 37 8f 94 34 b9 3c 4a 44 57 82 9b 4d 18 a9 2f c0
next data  ab 23 3d d3 02 e3 b7 46 21 7c 46 63 f0 62 cb 00 b6 c1 f4 f3 28 9c cb d0 fe d4 c3 16 40 55 06 d7
next data  2a 09 6b c7 b1 3d 03 18 87 c9 f9 0d c9 00 bb 63 d9 ea a0 1b 4c 27 f9 17 c8 e1 4a 56 9b d3 87 83
next data  05 87 65 8a 41 ff 98 f7 83 f1 68 ee 5b 95 ae 40 3c 99 ca bc b1 8b 1e 18 0b 84 42 df f3 c9 21 ca
new key    81 85 bc 05 3a 75 e2 bf 93 01 04 71 eb ac 51 8a 90 5f ee fd 62 b2 cc 49 4b 47 e0 97 7f 3a 37 4a
pseudoressu 12 53 66 8c 1c 8e 98 5a 7f 7f a9 a1 85 ac ad 0a 55 bd 8f 1f 2e 59 13 96 34 06 19 2b 62 52 83 07
pseudoressu 7c 45 fd 2a 16 ff e6 87 b9 66 2b 39 ad 81 ba 23 b8 93 92 2b 45 ec 9a 28 13 f3 ab 35 8a 7f 9c 96
pseudoressu a9 23 83 60 c5 74 49 c9 eb b8 98 57 03 a3 2e 49 b9 0e e2 ad f8 18 d2 01 11 07 65 60 58 02 91 2b
pseudoressu 42 a8 20 45 dc 00 99 7e ed 29 8a 3e 8f 09 ff 1d 08 c8 65 42 1a d0 db 6b 2c b0 5c 46 14 58 0b 23
ressu2twist 12 53 66 8c 1c 8e 98 5a 7f 7f a9 a1 85 ac ad 0a 55 bd 8f 1f 2e 59 13 96 34 06 19 2b 62 52 83 07
ressu2twist 7c 45 fd 2a 16 ff e6 87 b9 66 2b 39 ad 81 ba 23 b8 93 92 2b 45 ec 9a 28 13 f3 ab 35 8a 7f 9c 96
ressu2twist a9 23 83 60 c5 74 49 c9 eb b8 98 57 03 a3 2e 49 b9 0e e2 ad f8 18 d2 01 11 07 65 60 58 02 91 2b
ressu2twist 42 a8 20 45 dc 00 99 7e ed 29 8a 3e 8f 09 ff 1d 08 c8 65 42 1a d0 db 6b 2c b0 5c 46 14 58 0b 23
myressu2   59 fb 03 7d e7 35 00 dc ce dd 3a 80 82 34 ab 5b 23 8c be b7 de 0b de 85 ee 16 ff 1d ff 7e d3 dc
myressu2   3c 5e 64 4b 1c 06 e1 98 ed 62 55 f8 13 4b 78 22 04 fa de 59 83 2f 39 16 2c e8 d5 1f 4f 87 35 b3
myressu2   70 92 82 23 1c fd 5b 14 1b b1 95 69 22 d6 af 68 a9 9d 63 b8 e0 a0 2b bf ed 1a 97 dd 84 ff ed b4
myressu2   45 fb e6 99 2b a9 1a b8 dd 82 43 15 16 53 c8 2e b9 a8 ee 0c c7 dc 79 fc 4a 6c cd 41 d0 22 73 f6
 59 fb 03 7d e7 35 00 dc ce dd 3a 80 82 34 ab 5b 23 8c be b7 de 0b de 85 ee 16 ff 1d ff 7e d3 dc
00005  3c 5e 64 4b 1c 06 e1 98 ed 62 55 f8 13 4b 78 22 04 fa de 59 83 2f 39 16 2c e8 d5 1f 4f 87 35 b3
00006  70 92 82 23 1c fd 5b 14 1b b1 95 69 22 d6 af 68 a9 9d 63 b8 e0 a0 2b bf ed 1a 97 dd 84 ff ed b4
00007  45 fb e6 99 2b a9 1a b8 dd 82 43 15 16 53 c8 2e b9 a8 ee 0c c7 dc 79 fc 4a 6c cd 41 d0 22 73 f6
00008 
file       87 1b 20 12 19 ae f0 32 64 33 05 4e e1 c2 24 ca c5 6a d1 03 41 ee 2a a8 20 f6 b9 6f b3 05 51 3d
file       27 aa 4c 07 eb 79 ce 0c b8 f1 20 ea ac 9d 23 2b 99 b3 83 5d 4e ae ce 7b 2b 27 71 2d fd e1 d8 01
file       44 90 13 ad d4 d6 33 f6 a2 15 b7 01 4f 82 26 c3 35 5f 1b 72 7c a4 ed 99 f6 50 62 37 80 ba 81 85
file       8e db ca 34 f1 05 3a 41 ba f2 f3 06 a5 df 69 17 82 7a 88 6b 01 a3 07 c6 e0 bc f6 d1 ad dd a8 e1
urandom    87 1b 20 12 19 ae f0 32 64 33 05 4e e1 c2 24 ca c5 6a d1 03 41 ee 2a a8 20 f6 b9 6f b3 05 51 3d
urandom    27 aa 4c 07 eb 79 ce 0c b8 f1 20 ea ac 9d 23 2b 99 b3 83 5d 4e ae ce 7b 2b 27 71 2d fd e1 d8 01
urandom    44 90 13 ad d4 d6 33 f6 a2 15 b7 01 4f 82 26 c3 35 5f 1b 72 7c a4 ed 99 f6 50 62 37 80 ba 81 85
urandom    8e db ca 34 f1 05 3a 41 ba f2 f3 06 a5 df 69 17 82 7a 88 6b 01 a3 07 c6 e0 bc f6 d1 ad dd a8 e1
next data  8b aa 4c 86 5d 9b e5 f1 18 b0 85 02 64 49 06 b4 9e b2 a0 62 71 c2 70 08 5c 16 f3 74 63 e9 ac 2f
next data  f5 72 68 b9 5c 73 cc 9d d5 13 d1 95 e2 7d 21 6d 94 cb fe 12 af c1 7c 92 75 67 36 41 6a c4 6f 04
next data  99 c4 8f 8d 27 21 15 7e d4 b6 a1 79 c9 6a b5 36 96 92 0a f4 50 0e 0d 0b 21 1d 37 ae cd 21 6f 54
next data  be 85 2f 99 3f ec 21 95 26 62 22 8e ef 1e 36 b6 1d ea fa a5 8b 18 33 56 cc d9 7f c9 fb 86 24 46
new key    4e bc 63 47 a6 99 a5 32 a0 27 c1 c4 59 5d 6d 47 fd 34 23 6e 14 4c df b0 f6 e0 0c cf f9 04 b5 e3
pseudoressu 0c b1 6c 94 44 35 15 c3 7c 83 80 4c 85 8b 22 7e 5b d8 71 61 30 2c 5a a0 7c e0 4a 1b d0 ec fd 12
pseudoressu d2 d8 24 be b7 0a 02 91 6d e2 f1 7f 4e e0 02 46 0d 78 7d 4f e1 6f b2 e9 5e 40 47 6c 97 25 b7 05
pseudoressu dd 54 9c 20 f3 f7 26 88 76 a3 16 78 86 e8 93 f5 a3 cd 11 86 2c aa e0 92 d7 4d 55 99 4d 9b ee d1
pseudoressu 30 5e e5 ad ce e9 1b d4 9c 90 d1 88 4a c1 5f a1 9f 90 72 ce 8a bb 34 90 2c 65 89 18 56 5b 8c a7
myressu2   c7 72 1e f7 b2 8f b9 9d e3 dd 00 c1 ef 53 cf d9 95 15 85 ad ab 4a af 38 34 0b c4 6b d4 3a 16 5d
myressu2   e7 1c 74 65 15 49 18 b6 eb 45 02 24 22 70 d9 d4 70 46 14 01 b1 37 29 5b 58 2a e6 01 1c 67 28 dc
myressu2   63 25 37 95 2f 3f 78 68 77 bb 85 a0 b2 23 fc 59 43 1f 78 32 07 dd 9d ad 29 83 b3 48 2c e2 35 ec
myressu2   fe 1b 70 8d dc da 8f 4f 4b 34 91 a7 19 b6 88 8e 16 23 6e 5e 05 da a1 a8 0a ef 5c 66 13 3f 33 22
next data  c8 76 7f 1a f9 1d f9 21 fb cf 58 51 00 d4 47 db 48 89 ee 8e 6e 2d 9e e3 5c 66 66 ef d6 98 cb 4b
next data  92 ce 3b b6 e3 22 8e 3f c4 f3 02 39 e3 e1 58 cc cd f6 3a db c3 06 57 48 cb 04 56 44 6d 4c 26 3f
next data  20 6a 7c 3e 07 0b 29 8d 17 78 c5 da 9c c7 e5 9c 64 e8 74 5e 28 e5 55 4b 89 09 8e 03 74 b5 9b 29
next data  21 a8 e4 ac d0 22 e6 f0 66 f8 d0 bd d9 ff b3 b8 48 47 35 99 40 c5 a2 b4 cf af d9 49 41 da 00 c6
new key    66 2d 9e 45 ac 02 bd 93 7a e6 20 3c 54 da 20 b4 e6 1b 82 8c a3 12 c3 be 40 51 b5 a7 1f e1 de 62
pseudoressu 0f 04 61 ed 4b 92 40 bc 18 12 58 90 ef 87 88 02 dd 9c 6b 23 c5 67 31 db 68 6d a2 84 02 a2 dd 16
pseudoressu 75 d2 4f d3 f6 6b 96 89 2f b6 00 1d c1 91 81 18 bd b0 2e da 72 31 7e 13 93 2e b0 45 71 2b 0e e3
pseudoressu 43 4f 4b ab 28 34 51 e5 60 c3 40 7a 2e e4 19 c5 27 f7 0c 6c 2f 38 c8 e6 a0 8a 3d 4b 58 57 ae c5
pseudoressu df b3 94 21 0c f8 69 bf 2d cc 41 1a c0 49 3b 36 5e 64 5b c7 45 1f 03 1c c5 40 85 2f 52 e5 33 e4
ressu2twist 0f 04 61 ed 4b 92 40 bc 18 12 58 90 ef 87 88 02 dd 9c 6b 23 c5 67 31 db 68 6d a2 84 02 a2 dd 16
ressu2twist 75 d2 4f d3 f6 6b 96 89 2f b6 00 1d c1 91 81 18 bd b0 2e da 72 31 7e 13 93 2e b0 45 71 2b 0e e3
ressu2twist 43 4f 4b ab 28 34 51 e5 60 c3 40 7a 2e e4 19 c5 27 f7 0c 6c 2f 38 c8 e6 a0 8a 3d 4b 58 57 ae c5
ressu2twist df b3 94 21 0c f8 69 bf 2d cc 41 1a c0 49 3b 36 5e 64 5b c7 45 1f 03 1c c5 40 85 2f 52 e5 33 e4
myressu2   c5 b5 b8 c4 6f d3 95 7a c8 6d 12 0d 2c 68 0f 2f fb 66 a2 f4 5b 6d fd 3e e2 aa 8a db e4 9e 64 3a
myressu2   17 bd 2d 39 72 8d 07 ca 01 13 c0 be 94 8a ac 85 25 7f ef 7b 28 b8 6f 44 c0 8c b2 84 e3 ff 7d 74
myressu2   3a 6c f0 70 1e 76 82 32 cb f2 f5 54 c4 1d be 77 b6 dc be ba ad 9c 1a d9 60 d5 c3 26 37 c5 1c df
myressu2   77 60 fc ce e7 03 5e fa 2e e3 41 57 b1 82 f0 40 6c f4 b2 7e 11 57 7a 44 b5 4b d2 81 47 e4 aa b1
 c5 b5 b8 c4 6f d3 95 7a c8 6d 12 0d 2c 68 0f 2f fb 66 a2 f4 5b 6d fd 3e e2 aa 8a db e4 9e 64 3a
00009  17 bd 2d 39 72 8d 07 ca 01 13 c0 be 94 8a ac 85 25 7f ef 7b 28 b8 6f 44 c0 8c b2 84 e3 ff 7d 74

Dieharder lista yhdestä ressu2 kierroksesta: muutamia WEAK:keja ja suurempien tiedostojen FAILED yleensä 0:

'input' = "ressu2_round+16", 'filesize' = "500m", 'filename' = "newressusample4002.rnd", 'weak' = "8", 'failed' = "1"
'input' = "ressu2_round+16", 'filesize' = "600m", 'filename' = "newressusample4003.rnd", 'weak' = "5", 'failed' = "2"
'input' = "ressu2_round+16", 'filesize' = "700m", 'filename' = "newressusample4004.rnd", 'weak' = "8", 'failed' = "2"
'input' = "ressu2_round+16", 'filesize' = "800m", 'filename' = "newressusample4005.rnd", 'weak' = "3", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "900m", 'filename' = "newressusample4006.rnd", 'weak' = "9", 'failed' = "1"
'input' = "ressu2_round+16", 'filesize' = "1g", 'filename' = "newressusample4007.rnd", 'weak' = "2", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g100m", 'filename' = "newressusample4008.rnd", 'weak' = "1", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g200m", 'filename' = "newressusample4009.rnd", 'weak' = "9", 'failed' = "1"
'input' = "ressu2_round+16", 'filesize' = "1g300m", 'filename' = "newressusample4010.rnd", 'weak' = "2", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g400m", 'filename' = "newressusample4011.rnd", 'weak' = "7", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g500m", 'filename' = "newressusample4012.rnd", 'weak' = "5", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g600m", 'filename' = "newressusample4013.rnd", 'weak' = "6", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g700m", 'filename' = "newressusample4014.rnd", 'weak' = "6", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g800m", 'filename' = "newressusample4015.rnd", 'weak' = "7", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "1g900m", 'filename' = "newressusample4016.rnd", 'weak' = "4", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "2g", 'filename' = "newressusample4017.rnd", 'weak' = "4", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "3g", 'filename' = "newressusample4018.rnd", 'weak' = "2", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "4g", 'filename' = "newressusample4019.rnd", 'weak' = "1", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "5g", 'filename' = "newressusample4020.rnd", 'weak' = "0", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "6g", 'filename' = "newressusample4021.rnd", 'weak' = "4", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "7g", 'filename' = "newressusample4022.rnd", 'weak' = "4", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "8g", 'filename' = "newressusample4023.rnd", 'weak' = "2", 'failed' = "0"
'input' = "ressu2_round+16", 'filesize' = "9g", 'filename' = "newressusample4024.rnd", 'weak' = "3", 'failed' = "0"

Seuraavassa ressu2 ohjelma kokonaan:

#include <stdio.h>
#include <stdlib.h>
#include <memory.h>

#include <sys/time.h>
#include <time.h>

unsigned char *procname;
static unsigned char *programname = "Ressu2 version 0.01 ©";
static unsigned char *copyright = "Copyright (c) 2013-2026 Jari Kuivaniemi (moijari.com), Helsinki, Finland. Kaikki oikeudet pidätetään!";

int my_output = 0;

void my_dump(unsigned char *header, int len, unsigned char *buf, int linelen)
{
  int c;

  if(my_output) {
    fprintf(stdout,"\n");
    my_output = 0;
  }
  for(c = 0; c < len; c++) {
    if(c % linelen == 0) {
      if(c > 0)
	fprintf(stdout,"\n");
      fprintf(stdout,"%-10s", header);
    }
    fprintf(stdout," %02x", buf[c]);
  }
  fprintf(stdout,"\n");
  fflush(stdout);
}

#define aDEBUG8 2

#define USE_URANDOM 2
#define USE_RESSU2 2
#define USE_PSEUDORESSU2 2
#define USE_RESSU2TWIST 2

#if defined USE_RESSU2 || defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

static unsigned long long my_ressu_useconds()
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return((unsigned long long) tv.tv_usec + 1000000ULL * (unsigned long long) tv.tv_sec);
}

static unsigned char my_ressu_lowusec() /* JariK 2013 */
{
  struct timeval tv;
  gettimeofday(&tv, NULL);
  return(tv.tv_usec & 0xff);
}

static int randomness = 0;

#define RESSU_ROTATELEFT8(byte, bits) ( ((byte) >> (8 - (bits))) | ((byte) << (bits)) )

static void my_ressu2_round(int size, unsigned char *buffer) // ressu JariK 2013, 2025
{
  int c, d, byte;
  unsigned char e;
  static int f = 0, prevbyte = -1;
  unsigned long long usec;
  
  for(c = 0; c < 8; c++) { // eight bits per byte
    for(d = 0; d < size; d++) { // rotate + xor
      e = buffer[d];
      e = RESSU_ROTATELEFT8(e, 1);  // rotate byte left 1 bits
      byte = my_ressu_lowusec();
      buffer[d] = e ^ byte;
      if(prevbyte != byte) {
	prevbyte = byte;
	randomness++;
      }
    }
    for(d = 0; d < size; d++) { // swap
      f = (f + 16 + buffer[d] + 2) % size;
      e = buffer[d];
      buffer[d] = buffer[f];
      buffer[f] = e;
    }
    
    // more randomness from clocks
    usec = clock();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
    usec = my_ressu_useconds();
    while(usec > 0) {
      f = (f + usec) % size;
      usec /= size;
    }
  } // end of for(c = 0; c < 8; c++
}

#include "newressu.h"

#define RESSU2_BYTES 2048
#define RESSU2_RANDOMNESS_NEEDED 2048
#define RESSU2_CLOCKS_NEEDED 20480 // now 20480
#define RESSU2_MINIMUM_ROUNDS 5

void my_ressu2_bytes(int size, unsigned char *buffer) // Ressu2 v1.0 JariK 2013, 2025
{
  int c, d, clocksused;
  static int ressu_pos = 0, initneeded = 1;
  static unsigned char ressu[RESSU2_BYTES];

  for(c = 0; c < size; c++) {
    if(ressu_pos == 0) {
      if(initneeded) {
	memset(&ressu, 0, sizeof(ressu));
	initneeded = 0;
      }
      randomness = 0;
      clocksused = 0;
      //memset(&ressu, 0, sizeof(ressu));
      for(d = 0; d < RESSU2_MINIMUM_ROUNDS ||
	    randomness < RESSU2_RANDOMNESS_NEEDED ||
	    clocksused < RESSU2_CLOCKS_NEEDED
	    ; d++) {
	my_ressu2_round(sizeof(ressu), ressu);
	clocksused += (sizeof(ressu) * 8);
      }
#ifdef DEBUG8
      my_dump("myressu2g", sizeof(ressu), ressu, 32);      
#endif
    } // end of if(ressu_pos == 0
    buffer[c] ^= ressu[ressu_pos];
    ressu_pos = (ressu_pos + 1) % sizeof(ressu);
  } // end of for(c = 0; c < size; c++
#ifdef DEBUG8
  my_dump("myressu2", size, buffer, 32);
#endif
}

#endif // end of #if defined USE_RESSU2 || defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

#if defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

unsigned char cvar[16];
int cvarsize = 0;

void inccvar()
{
  int c;

  /* 16 bytes, LSB first */
  for(c = 0; ++cvar[c] == 0 && c < sizeof(cvar) - 1; c++);

  if(cvarsize < c)
    cvarsize = c;

#ifdef DEBUG20
  ressu_dump("cvar", cvarsize + 1, cvar, 32);
#endif
}

#define aCVARRANDOMSTART 2 // off by default

void clearcvar()
{
  int c;

  cvarsize = 0;
  
  for(c = 0; c < sizeof(cvar); c++)
    cvar[c] = 0;

#ifdef CVARRANDOMSTART
  ressu_genbytes(8, (unsigned char *)&cvar);  
#endif
  for(c = 0; c < sizeof(cvar); c++)
    if(cvar[c] != 0)
      cvarsize = c;
}

#include "sha256.h"

#define PSEUDORESSU2_TOPUP_BYTES 32*1024 // bytes between topups
#define PSEUDORESSU2_TOPUP_SIZE 32 // topup size in bytes (32 bytes, 256 bits)
#define aPSEUDORESSU2_TOPUP_TWICE 2 // off by default

unsigned long pseudoressu2_topup_bytes = PSEUDORESSU2_TOPUP_BYTES;

static unsigned char pseudoressu2_key[HashLen]; // 32 bytes, 256 bits

static void my_pseudoressu2_internalbytes(unsigned char *digest)
{
  HashCtx hash;

  HashInit(&hash);
  HashUpdate(&hash, pseudoressu2_key, sizeof(pseudoressu2_key)); // add old randomness to hash
  HashUpdate(&hash, (unsigned char *) &cvar, cvarsize + 1);
  inccvar();
  HashFinal(digest, &hash);
  memset(&hash, 0, sizeof(hash)); // forget hash
}

static void my_pseudoressu2_addrandomness(int size, unsigned char *buffer)
{
  unsigned long long usec;
  HashCtx hash;

  HashInit(&hash);
  HashUpdate(&hash, pseudoressu2_key, sizeof(pseudoressu2_key)); // add old randomness to hash
  HashUpdate(&hash, (unsigned char *) &cvar, cvarsize + 1);
  inccvar();
  usec = my_ressu_useconds(); // add timestamp to hash
  HashUpdate(&hash, (unsigned char *)&usec, sizeof(usec));
  usec = clock(); // add processor time to hash (for randomness)
  HashUpdate(&hash, (unsigned char *)&usec, sizeof(usec));
  HashUpdate(&hash, buffer, size); // add given randomness to hash
  HashFinal(pseudoressu2_key, &hash); // save as new key
  memset(&hash, 0, sizeof(hash)); // forget hash
}

static void my_pseudoressu2_topup()
{
  unsigned char topup[PSEUDORESSU2_TOPUP_SIZE]; // 32 bytes, 256 bits

  memset(&topup, 0, sizeof(topup)); // forget topup
  my_ressu2_bytes(sizeof(topup), topup);
#ifdef DEBUG8
  my_dump("topup", sizeof(topup), topup, 32);
#endif
  my_pseudoressu2_addrandomness(sizeof(topup), topup);

  memset(&topup, 0, sizeof(topup)); // forget topup
}

void my_pseudoressu2_bytes(int size, unsigned char *buffer) // JariK 2022, 2025
{
  int c;
  static int pseudoressu_pos = 0, topup_counter = 0, initneeded = 1;
  static unsigned char pseudoressu[HashLen]; // 32 bytes, 256 bits

  for(c = 0; c < size; c++) {
    if(pseudoressu_pos == 0) {
      if(topup_counter == 0) {
	if(initneeded) {
	  my_ressu2_bytes(sizeof(pseudoressu2_key), pseudoressu2_key); // get first key
#ifdef DEBUG8
	  my_dump("first key", sizeof(pseudoressu2_key), pseudoressu2_key, 32);
#endif
	  initneeded = 0;
	} // end of if(initneeded
	
	my_pseudoressu2_topup(); // add randomness to key, first block also
#ifdef PSEUDORESSU2_TOPUP_TWICE
	my_pseudoressu2_topup(); // add randomness to key, first block also
#endif
	topup_counter = pseudoressu2_topup_bytes;
      } // end of if(topup_counter == 0
      
      my_pseudoressu2_internalbytes(pseudoressu); // get random bits using the key
#ifdef DEBUG8
      my_dump("next data", sizeof(pseudoressu), pseudoressu, 32);
#endif
      topup_counter -= sizeof(pseudoressu);
    } // end of if(pseudoressu_pos == 0

    buffer[c] ^= pseudoressu[pseudoressu_pos];
    pseudoressu_pos = (pseudoressu_pos + 1) % sizeof(pseudoressu);
  } // end of for(c = 0; c < size; c++
  
  my_pseudoressu2_internalbytes(pseudoressu2_key); // replace key with new random one
#ifdef DEBUG8
  my_dump("new key", sizeof(pseudoressu2_key), pseudoressu2_key, 32);
#endif
#ifdef DEBUG8
  my_dump("pseudoressu", size, buffer, 32);
#endif
}

#endif // end of #if defined USE_PSEUDORESSU2 || defined USE_RESSU2TWIST

#ifdef USE_RESSU2TWIST

void my_ressu2twist_bytes(int size, unsigned char *buffer) // JariK 2023, 2025
{
  //urandom_bytes(size, buffer);
  my_ressu2_bytes(size, buffer);
  my_pseudoressu2_bytes(size, buffer);
#ifdef DEBUG8
  my_dump("ressu2twist", size, buffer, 32);
#endif
}

#endif // end of #ifdef USE_RESSU2TWIST

#ifdef USE_URANDOM

void my_readfile_xor(int size, unsigned char *buffer, unsigned char *filename)
{
  int c, n, filebuffer_pos = 0;
  unsigned char filebuffer[64];
  FILE *fp1;

  if((fp1 = fopen(filename, "rb")) == NULL) {
    fprintf(stderr,"%s: fopen(): cannot open file %s\n",
	    procname, filename);
    exit(1);
  }

  for(c = 0; c < size; c++) {
    if(filebuffer_pos == 0) {
      n = (size - c < sizeof(filebuffer)) ? size - c : sizeof(filebuffer);
      if(fread(filebuffer, 1, n, fp1) < n) {
	fprintf(stderr,"%s: fread(): cannot read file %s\n",
		procname, filename);
	exit(1);
      }
#ifdef DEBUG8
      my_dump("file", n, filebuffer, 32);
#endif
    } // end of if(file_pos == 0
    buffer[c] ^= filebuffer[filebuffer_pos];
    filebuffer_pos = (filebuffer_pos + 1) % sizeof(filebuffer);
  } // end of for(c = 0; c < size; c++

  fclose(fp1);

  memset(filebuffer, 0, sizeof(filebuffer)); // forget file
}

static unsigned char urandomfilename[128] = "/dev/urandom";

void my_urandom_bytes(int size, unsigned char *buffer)
{
  my_readfile_xor(size, buffer, urandomfilename);
#ifdef DEBUG8
  my_dump("urandom", size, buffer, 32);
#endif
}

#endif // end of #ifdef USE_URANDOM

void my_random_bytes(int size, unsigned char *buffer)
{
#ifdef USE_URANDOM
  my_urandom_bytes(size, buffer);
#endif
  //ressu_round(size, buffer);
  //ressu_genbytes(size, buffer);
  //pseudoressu_bytes(size, buffer);
  //ressutwist_bytes(size, buffer);
  //my_ressu2_round(size, buffer);
#ifdef USE_PSEUDORESSU2
  my_pseudoressu2_bytes(size, buffer);
#endif
#ifdef USE_RESSU2TWIST
  my_ressu2twist_bytes(size, buffer);
#endif
#ifdef USE_RESSU2
  my_ressu2_bytes(size, buffer);
#endif
}

#define GENT_SIZE 128

static unsigned char gent[GENT_SIZE];
static unsigned int gent_pos = 0;

int my_random_byte()
{
  unsigned char ch;
  static int initneeded = 1;

  if(gent_pos == 0) {
    if(initneeded) {
      memset(&gent, 0, sizeof(gent));
      initneeded = 0;
    }
    my_random_bytes(sizeof(gent), gent);
  }
  ch = gent[gent_pos];
  gent_pos = (gent_pos + 1) % sizeof(gent);

  return(ch);
}

unsigned long my_random_genlimit(unsigned long limit)
{
  int c;
  unsigned long word;
  static unsigned long lastlimit = 0, highlimit;
  static int bytes;

  if(lastlimit != limit) { // if limit changes, calculate new highlimit and bytes
    lastlimit = limit;
    if(limit <= 0x100) {
      // highest multiplier of limit that fits to needed bytes
      highlimit = (0x100 / limit) * limit;
      // number of bytes needed
      bytes = 1;
    } else if(limit <= 0x10000) {
      highlimit = (0x10000 / limit) * limit;
      bytes = 2;
    } else if(limit <= 0x1000000) {
      highlimit = (0x1000000 / limit) * limit;
      bytes = 3;
    } else if(limit <= 0x100000000) {
      highlimit = (0x100000000 / limit) * limit;
      bytes = 4;
    } else if(limit <= 0x10000000000) {
      highlimit = (0x10000000000 / limit) * limit;
      bytes = 5;
    } else if(limit <= 0x1000000000000) {
      highlimit = (0x1000000000000 / limit) * limit;
      bytes = 6;
    } else if(limit <= 0x100000000000000) {
      highlimit = (0x100000000000000 / limit) * limit;
      bytes = 7;
    } else { // if(limit <= 0xffffffffffffffff) {
      highlimit = (0xffffffffffffffff / limit) * limit;      
      bytes = 8;
    }
  } // if(lastlimit != limit)

  for(;;) {
    word = 0;
    for(c = 0; c < bytes; c++)
      word = word << 8 | my_random_byte();
    if(word < highlimit)
      break;
  }

  word %= limit;
  
  return(word);
}

int main(int argc, char *argv[])
{
  int c, d;

  procname = argv[0];

  fprintf(stdout,"Hello world\n");
  for(c = 0; c < 10; c++) {
    fprintf(stdout,"%05d ", c);
    my_output = 1;
    for(d = 0; d < 32; d++)
      fprintf(stdout," %02x", (int) my_random_genlimit(256));
    fprintf(stdout,"\n");
  }
  return(0);
}
Published
Categorized as muuta

Leave a comment