1. 11 Feb, 2016 1 commit
    • Pieter Hintjens's avatar
      Problem: use of libsodium vs. tweetnacl is confused · b49a6041
      Pieter Hintjens authored
      It's unclear which we need and in the source code, conditional code
      treats tweetnacl as a subclass of libsodium, which is inaccurate.
      
      Solution: redesign the configure/cmake API for this:
      
      * tweetnacl is present by default and cannot be enabled
      * libsodium can be enabled using --with-libsodium, which replaces
        the built-in tweetnacl
      * CURVE encryption can be disabled entirely using --enable-curve=no
      
      The macros we define in platform.hpp are:
      
          ZMQ_HAVE_CURVE    1        //  When CURVE is enabled
          HAVE_LIBSODIUM    1        //  When we are using libsodium
          HAVE_TWEETNACL    1        //  When we're using tweetnacl (default)
      
      As of this patch, the default build of libzmq always has CURVE
      security, and always uses tweetnacl.
      b49a6041
  2. 06 Feb, 2016 1 commit
  3. 28 Jan, 2016 1 commit
  4. 02 Jun, 2015 1 commit
  5. 07 May, 2015 1 commit
  6. 30 Jan, 2015 1 commit
  7. 22 Jan, 2015 1 commit
  8. 03 Dec, 2014 3 commits
  9. 07 Nov, 2014 1 commit
  10. 19 Sep, 2014 1 commit
  11. 18 Sep, 2014 1 commit
  12. 12 Aug, 2014 1 commit
  13. 16 Mar, 2014 1 commit
  14. 02 Jan, 2014 1 commit
  15. 30 Sep, 2013 1 commit
  16. 18 Sep, 2013 1 commit
  17. 17 Sep, 2013 4 commits
  18. 16 Sep, 2013 1 commit
  19. 15 Sep, 2013 3 commits
  20. 12 Sep, 2013 1 commit
  21. 09 Sep, 2013 1 commit
    • Pieter Hintjens's avatar
      Added ZMQ_ZAP_DOMAIN socket option · 6725c464
      Pieter Hintjens authored
      * This is passed to the ZAP handler in the 'domain' field
      
      * If not set, or empty, then NULL security does not call the ZAP handler
      
      * This resolves the phantom ZAP request syndrome seen with sockets where
        security was never intended (e.g. in test cases)
      
      * This means if you install a ZAP handler, it will not get any requests
        for new connections until you take some explicit action, which can be
        setting a username/password for PLAIN, a key for CURVE, or the domain
        for NULL.
      6725c464
  22. 06 Sep, 2013 1 commit
  23. 05 Sep, 2013 1 commit
  24. 04 Sep, 2013 1 commit
    • Pieter Hintjens's avatar
      Updated libzmq to match RFC 23, 24, 25, 26 · 28b0a5fa
      Pieter Hintjens authored
      * Command names changed from null terminated to length-specified
      * Command frames use the correct flag (bit 2)
      * test_stream acts as test case for command frames
      * Some code cleanups
      28b0a5fa
  25. 02 Sep, 2013 3 commits
    • Pieter Hintjens's avatar
      Fixed ZAP authentication · fb67e160
      Pieter Hintjens authored
      - if ZAP server returns anything except 200, connection is closed
      - all security tests now pass correctly
      - test_security_curve now does proper client key authentication using test key
      - test_security_plain now does proper password authentication
      fb67e160
    • Pieter Hintjens's avatar
      Fixed 'make check' failures · fba56120
      Pieter Hintjens authored
      - Split off NULL security check from PLAIN
      - Cleaned up test_linger code a little
      - Got all tests to pass, added TODOs for outstanding issues
      - Added ZAP authentication for NULL test case
      - NULL mechanism was not passing server identity - fixed
      - cleaned up test_security_plain and removed option double-checks (made code ugly)
      - lowered timeout on expect_bounce_fail to 150 msec to speed up checks
      - removed all sleeps from test_fork and simplified code (it still passes :-)
      fba56120
    • Pieter Hintjens's avatar
      Whitespace fixes · 01b336f1
      Pieter Hintjens authored
      01b336f1
  26. 31 Aug, 2013 1 commit
    • MinRK's avatar
      test failed CURVE auth · 9d94640e
      MinRK authored
      adds expect_bounce_fail test function
      
      which is like bounce, but fails if messages arrive.
      9d94640e
  27. 20 Aug, 2013 1 commit
    • Jeremy Rossi's avatar
      Add the Socket Identity info to the ZAP Messages · 19ca8a0f
      Jeremy Rossi authored
      This change adds the socket identity infomartion from the socket to the
      zap frames.  In doing this the ZAP is able preform different operations
      based on different sockets.  This is not compaitable with the current ZAP
      RFC, but that can be updated.  As the ZAP rfc is currently draft for I
      did not change the version number.
      
      Tests also modified and passing.
      19ca8a0f
  28. 17 Aug, 2013 2 commits
  29. 18 Jul, 2013 1 commit
  30. 28 Jun, 2013 1 commit
    • Pieter Hintjens's avatar
      Added Z85 support · 70417701
      Pieter Hintjens authored
      The use of binary for CURVE keys is painful; you cannot easily copy
      these in e.g. email, or use them directly in source code. There are
      various encoding possibilities. Base16 and Base64 are not optimal.
      Ascii85 is not safe for source (it generates quotes and escapes).
      
      So, I've designed a new Base85 encoding, Z85, which is safe to use
      in code and elsewhere, and I've modified libzmq to use this where
      it also uses binary keys (in get/setsockopt).
      
      Very simply, if you use a 32-byte value, it's Base256 (binary),
      and if you use a 40-byte value, it's Base85 (Z85).
      
      I've put the Z85 codec into z85_codec.hpp, it's not elegant C++
      but it is minimal and it works. Feel free to rewrap as a real class
      if this annoys you.
      70417701