1. 02 Jan, 2013 2 commits
    • Nick Mathewson's avatar
      Refactor strong os-RNG into its own function · 25c05cb7
      Nick Mathewson authored
      Previously, we only used the strong OS entropy source as part of
      seeding OpenSSL's RNG.  But with curve25519, we'll have occasion to
      want to generate some keys using extremely-good entopy, as well as the
      means to do so.  So let's!
      
      This patch refactors the OS-entropy wrapper into its own
      crypto_strongest_rand() function, and makes our new
      curve25519_secret_key_generate function try it as appropriate.
      25c05cb7
    • Nick Mathewson's avatar
      Add a wrapper around, and test and build support for, curve25519. · 89ec5848
      Nick Mathewson authored
      We want to use donna-c64 when we have a GCC with support for
      64x64->uint128_t multiplying.  If not, we want to use libnacl if we
      can, unless it's giving us the unsafe "ref" implementation.  And if
      that isn't going to work, we'd like to use the
      portable-and-safe-but-slow 32-bit "donna" implementation.
      
      We might need more library searching for the correct libnacl,
      especially once the next libnacl release is out -- it's likely to have
      bunches of better curve25519 implementations.
      
      I also define a set of curve25519 wrapper functions, though it really
      shouldn't be necessary.
      
      We should eventually make the -donna*.c files get build with
      -fomit-frame-pointer, since that can make a difference.
      89ec5848