This reverts commit 78c7c72.
"Both the privacy and the authenticity properties of OCB degrade as per s^2 / 2^128, where s is the total number of blocks that the adversary acquires.... In order to ensure that s^2 / 2^128 remains small, a given key should be used to encrypt at most 2^48 blocks (2^55 bits or 4 petabytes)" -- http://tools.ietf.org/html/draft-krovetz-ocb-03 We deem it unlikely that a legitimate user will send 4 PB through a Mosh session. If it happens, we simply kill the session. The server and client use the same key, so we actually need to die after 2^47 blocks. Closes #77.
struct winsize contains fields other than ws_col and ws_row. To avoid passing uninitialized data to TIOCSWINSZ, initialize it first using TIOCGWINSZ. Found by Valgrind. (closes #85 github issue)
…humb-2. (closes #86 github issue) (approved by Ted Krovetz, author of OCB reference implementation)
…test for -lpoll if necessary
The default is to detect the presence of the library, as before. Suggested by Michael Weber (github: xmw). Closes #88.
…iltin_ctz (closes #84)
On Android we lack libutil, and we configure with --disable-server.
When cross-compiling for Android, configure (erroneously?) decides we don't have a GNU-compatible malloc, and tries to #define malloc rpl_malloc We don't define rpl_malloc, and it's not clear it would work with the <cstdlib> C++ header, anyway. See http://nerdland.net/unstumping-the-internet/malloc-has-not-been-declared/ If we aren't using malloc(0), it should be safe to use malloc without the check.
SSE is x86-specific, but we use this function on all archs.