Skip to content
Snippets Groups Projects
  1. Feb 14, 2019
    • Nick Mathewson's avatar
      acbde10f
    • Nick Mathewson's avatar
      Add a benchmark for our several PRNGs. · 490e1870
      Nick Mathewson authored
      490e1870
    • Nick Mathewson's avatar
      Implement a fast aes-ctr prng · f3cbd642
      Nick Mathewson authored
      This module is currently implemented to use the same technique as
      libottery (later used by the bsds' arc4random replacement), using
      AES-CTR-256 as its underlying stream cipher.  It's backtracking-
      resistant immediately after each call, and prediction-resistant
      after a while.
      
      Here's how it works:
      
      We generate psuedorandom bytes using AES-CTR-256.  We generate BUFLEN bytes
      at a time.  When we do this, we keep the first SEED_LEN bytes as the key
      and the IV for our next invocation of AES_CTR, and yield the remaining
      BUFLEN - SEED_LEN bytes to the user as they invoke the PRNG.  As we yield
      bytes to the user, we clear them from the buffer.
      
      Every RESEED_AFTER times we refill the buffer, we mix in an additional
      SEED_LEN bytes from our strong PRNG into the seed.
      
      If the user ever asks for a huge number of bytes at once, we pull SEED_LEN
      bytes from the PRNG and use them with our stream cipher to fill the user's
      request.
      f3cbd642
    • Nick Mathewson's avatar
      Extract RNG tests into a new test module · 3d3578ab
      Nick Mathewson authored
      test_crypto.c is pretty big; it wouldn't hurt to split it up some
      more before I start adding stuff to the PRNG tests.
      3d3578ab
    • Nick Mathewson's avatar
      Extract the common body of our random-int functions into a macro · 622a9a8a
      Nick Mathewson authored
      This is the second part of refactoring the random-int-in-range code.
      622a9a8a
  2. Feb 07, 2019
  3. Feb 05, 2019
  4. Feb 01, 2019
  5. Jan 24, 2019
  6. Jan 23, 2019
  7. Jan 22, 2019
  8. Jan 18, 2019
Loading