1. 03 Jan, 2013 10 commits
  2. 02 Jan, 2013 1 commit
    • Nick Mathewson's avatar
      Split onion.[ch] into onion{,_fast,_tap}.[ch] · f7e590df
      Nick Mathewson authored
      I'm going to want a generic "onionskin" type and set of wrappers, and
      for that, it will be helpful to isolate the different circuit creation
      handshakes.  Now the original handshake is in onion_tap.[ch], the
      CREATE_FAST handshake is in onion_fast.[ch], and onion.[ch] now
      handles the onion queue.
      
      This commit does nothing but move code and adjust header files.
      f7e590df
  3. 06 Dec, 2012 1 commit
    • Nick Mathewson's avatar
      Implement HKDF from RFC5869 · 6921d1fd
      Nick Mathewson authored
      This is a customizable extract-and-expand HMAC-KDF for deriving keys.
      It derives from RFC5869, which derives its rationale from Krawczyk,
      H., "Cryptographic Extraction and Key Derivation: The HKDF Scheme",
      Proceedings of CRYPTO 2010, 2010, <http://eprint.iacr.org/2010/264>.
      
      I'm also renaming the existing KDF, now that Tor has two of them.
      
      This is the key derivation scheme specified in ntor.
      
      There are also unit tests.
      6921d1fd
  4. 08 Nov, 2012 1 commit
    • Nick Mathewson's avatar
      Add and use and unlikely-to-be-eliminated memwipe() · 49dd5ef3
      Nick Mathewson authored
      Apparently some compilers like to eliminate memset() operations on
      data that's about to go out-of-scope.  I've gone with the safest
      possible replacement, which might be a bit slow.  I don't think this
      is critical path in any way that will affect performance, but if it
      is, we can work on that in 0.2.4.
      
      Fixes bug 7352.
      49dd5ef3
  5. 08 Oct, 2012 1 commit
  6. 05 Jun, 2012 1 commit
  7. 04 Jun, 2012 1 commit
    • Nick Mathewson's avatar
      Add about 60 more DOCDOC comments to 0.2.3 · 173b18c7
      Nick Mathewson authored
      Also, try to resolve some doxygen issues.  First, define a magic
      "This is doxygen!" macro so that we take the correct branch in
      various #if/#else/#endifs in order to get the right documentation.
      Second, add in a few grouping @{ and @} entries in order to get some
      variables and fields to get grouped together.
      173b18c7
  8. 18 Jan, 2012 1 commit
    • Nick Mathewson's avatar
      Rename nonconformant identifiers. · 26e789fb
      Nick Mathewson authored
      Fixes bug 4893.
      
      These changes are pure mechanical, and were generated with this
      perl script:
      
        /usr/bin/perl -w -i.bak -p
      
        s/crypto_pk_env_t/crypto_pk_t/g;
        s/crypto_dh_env_t/crypto_dh_t/g;
        s/crypto_cipher_env_t/crypto_cipher_t/g;
        s/crypto_digest_env_t/crypto_digest_t/g;
      
        s/aes_free_cipher/aes_cipher_free/g;
        s/crypto_free_cipher_env/crypto_cipher_free/g;
        s/crypto_free_digest_env/crypto_digest_free/g;
        s/crypto_free_pk_env/crypto_pk_free/g;
      
        s/_crypto_dh_env_get_dh/_crypto_dh_get_dh/g;
        s/_crypto_new_pk_env_rsa/_crypto_new_pk_from_rsa/g;
        s/_crypto_pk_env_get_evp_pkey/_crypto_pk_get_evp_pkey/g;
        s/_crypto_pk_env_get_rsa/_crypto_pk_get_rsa/g;
      
        s/crypto_new_cipher_env/crypto_cipher_new/g;
        s/crypto_new_digest_env/crypto_digest_new/g;
        s/crypto_new_digest256_env/crypto_digest256_new/g;
        s/crypto_new_pk_env/crypto_pk_new/g;
      
        s/crypto_create_crypto_env/crypto_cipher_new/g;
      
        s/connection_create_listener/connection_listener_new/g;
        s/smartlist_create/smartlist_new/g;
        s/transport_create/transport_new/g;
      26e789fb
  9. 11 May, 2011 2 commits
    • Nick Mathewson's avatar
      Hand-conversion and audit phase of memcmp transition · 59f9097d
      Nick Mathewson authored
      Here I looked at the results of the automated conversion and cleaned
      them up as follows:
      
         If there was a tor_memcmp or tor_memeq that was in fact "safe"[*] I
         changed it to a fast_memcmp or fast_memeq.
      
         Otherwise if there was a tor_memcmp that could turn into a
         tor_memneq or tor_memeq, I converted it.
      
      This wants close attention.
      
      [*] I'm erring on the side of caution here, and leaving some things
      as tor_memcmp that could in my opinion use the data-dependent
      fast_memcmp variant.
      59f9097d
    • Nick Mathewson's avatar
      Automated conversion of memcmp to tor_memcmp/tor_mem[n]eq · db7b2a33
      Nick Mathewson authored
      This commit is _exactly_ the result of
      
      perl -i -pe 's/\bmemcmp\(/tor_memcmp\(/g' src/*/*.[ch]
      perl -i -pe 's/\!\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch]
      perl -i -pe 's/0\s*==\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch]
      perl -i -pe 's/0\s*!=\s*tor_memcmp\(/tor_memneq\(/g' src/*/*.[ch]
      git checkout src/common/di_ops.[ch]
      git checkout src/or/test.c
      git checkout src/common/test.h
      db7b2a33
  10. 10 Feb, 2011 1 commit
  11. 25 Jan, 2011 1 commit
  12. 24 Jan, 2011 1 commit
  13. 15 Jan, 2011 1 commit
  14. 03 Jan, 2011 2 commits
  15. 16 Dec, 2010 1 commit
  16. 18 Aug, 2010 1 commit
  17. 27 Jul, 2010 4 commits
  18. 27 Feb, 2010 1 commit
  19. 27 Oct, 2009 1 commit
    • Karsten Loesing's avatar
      Fix bug 1042. · 19ddee55
      Karsten Loesing authored
      If your relay can't keep up with the number of incoming create cells, it
      would log one warning per failure into your logs. Limit warnings to 1 per
      minute.
      19ddee55
  20. 26 Oct, 2009 1 commit
    • Karsten Loesing's avatar
      Reduce log level for someone else sending us weak DH keys. · d2b4b49f
      Karsten Loesing authored
      See task 1114. The most plausible explanation for someone sending us weak
      DH keys is that they experiment with their Tor code or implement a new Tor
      client. Usually, we don't care about such events, especially not on warn
      level. If we really care about someone not following the Tor protocol, we
      can set ProtocolWarnings to 1.
      d2b4b49f
  21. 27 May, 2009 1 commit
  22. 04 May, 2009 1 commit
  23. 02 May, 2009 1 commit
  24. 04 Jan, 2009 1 commit
  25. 30 Dec, 2008 1 commit
  26. 22 Feb, 2008 1 commit