All pastes #579465 Raw Edit

Mine

public text v1 · immutable
·published 2007-06-20 17:50 UTC
rendered paste body
INTERVAL: 0x1e
t - rekey_time: 0x1e
drivers/char/random.c:get_random_long(): not rekeying...
entropycache[1]: [0xd961349e]
entropycache[0]: [0xbc19746]
drivers/char/random.c:get_random_long(): t: 0x46796849
drivers/char/random.c:get_random_long(): rekey_time: 0x4679682b
INTERVAL: 0x1e
t - rekey_time: 0x1e
drivers/char/random.c:get_random_long(): not rekeying...
entropycache[1]: [0x4e9a6897]
entropycache[0]: [0x7e07ced8]
drivers/char/random.c:get_random_long(): t: 0x4679684a
drivers/char/random.c:get_random_long(): rekey_time: 0x4679682b
INTERVAL: 0x1e
t - rekey_time: 0x1f
drivers/char/random.c:get_random_long(): rekeying...
entropycache[0]: [[0xaf7eecd0]]
entropycache[1]: [[0xa32692ba]]
entropycache[2]: [[0x45130eee]]
entropycache[3]: [[0xcefdbead]]
entropycache[4]: [[0xb9180ad5]]
entropycache[5]: [[0x2afbaa59]]
entropycache[6]: [[0x7cf25bae]]
entropycache[7]: [[0x6399e41f]]
entropycache[8]: [[0x5d8e35]]
entropycache[9]: [[0xc840cfa]]
entropycache[10]: [[0x2188f89]]
entropycache[11]: [[0xc87a984]]
entropycache[1]: [0x893ca2e5]
entropycache[0]: [0xadc7db32]
drivers/char/random.c:get_random_long(): t: 0x4679684a
drivers/char/random.c:get_random_long(): rekey_time: 0x4679684a
INTERVAL: 0x1e
t - rekey_time: 0x0
drivers/char/random.c:get_random_long(): not rekeying...
entropycache[1]: [0x55d73b24]
entropycache[0]: [0xcb27c38b]
drivers/char/random.c:get_random_long(): t: 0x4679684a
drivers/char/random.c:get_random_long(): rekey_time: 0x4679684a
INTERVAL: 0x1e
t - rekey_time: 0x0
drivers/char/random.c:get_random_long(): not rekeying...
entropycache[1]: [0x23249af7]
entropycache[0]: [0xea50e392]
drivers/char/random.c:get_random_long(): t: 0x4679684a
drivers/char/random.c:get_random_long(): rekey_time: 0x4679684a
INTERVAL: 0x1e
t - rekey_time: 0x0
drivers/char/random.c:get_random_long(): not rekeying...
entropycache[1]: [0x7b79388a]
entropycache[0]: [0xed67b72e]
drivers/char/random.c:get_random_long(): t: 0x4679684a
drivers/char/random.c:get_random_long(): rekey_time: 0x4679684a
INTERVAL: 0x1e
t - rekey_time: 0x0
drivers/char/random.c:get_random_long(): not rekeying...
entropycache[1]: [0xcb8959d9]
entropycache[0]: [0x31c46816]
drivers/char/random.c:get_random_long(): t: 0x4679684a
drivers/char/random.c:get_random_long(): rekey_time: 0x4679684a


unsigned long get_random_long(void)
{
  /* remember the last time we refreshed the cache with random entropy */
  static time_t rekey_time;

  /*
   * the following data in the buffer is unchanged during REKEY_INTERVAL:
   * |----|----|KKKK|KKKK|KKKK|KKKK|KKKK|KKKK|----|----|----|----|
   * ___0____1____2____3____4____5____6____7____8____9___10___11__
   *
   * the following data is updated during the first half_md4_transform call
   * |----|YYYY|----|----|----|----|----|----|ZZZZ|ZZZZ|ZZZZ|ZZZZ|
   * ___0____1____2____3____4____5____6____7____8____9___10___11__
   *
   * the following data is updated during the second half_md4_transform
   * |XXXX|----|----|----|----|----|----|----|ZZZZ|ZZZZ|ZZZZ|ZZZZ|
   * ___0____1____2____3____4____5____6____7____8____9___10___11__
   */
  static __u32 entropycache[12];

  time_t t;

  int i;

  /* get the current time in seconds */
  t = get_seconds();

  printk(KERN_INFO "drivers/char/random.c:get_random_long(): t: 0x%x\n", (unsigned int) t);

  printk(KERN_INFO "drivers/char/random.c:get_random_long(): rekey_time: 0x%x\n", (unsigned int) rekey_time);

  printk(KERN_INFO "INTERVAL: 0x%x\n", 30);

  printk(KERN_INFO "t - rekey_time: 0x%x\n", t - rekey_time);

  /* check for REKEY_INTERVAL */
  if (!rekey_time || (t - rekey_time) > 30) {
    printk(KERN_INFO "drivers/char/random.c:get_random_long(): rekeying...\n");
    rekey_time = t;
    get_random_bytes(entropycache, sizeof(entropycache));

    for (i=0; i < 12; i++) {
      printk(KERN_INFO "entropycache[%d]: [[0x%x]]\n", i, entropycache[i]);
    }
  } else {
    printk(KERN_INFO "drivers/char/random.c:get_random_long(): not rekeying...\n");
  }

  entropycache[1] = half_md4_transform(entropycache+8, entropycache);

  printk(KERN_INFO "entropycache[1]: [0x%x]\n", entropycache[1]);

  entropycache[0] = half_md4_transform(entropycache+8, entropycache);

  printk(KERN_INFO "entropycache[0]: [0x%x]\n", entropycache[0]);

  return *(unsigned long *)entropycache;
}