• 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
test_capabilities.cpp 2.22 KB