Botan: Crypto and TLS for C++11
botan.randombit.net
botan.randombit.net
Also worth considering: https://tls.mbed.org/ I've used it and it is indeed very easy to use.
Also, in C++11, `std::vector` contains the member function `data()` which returns a pointer to the underlying data. The data is mutable through this pointer.
Given the desire for the use of secure memory (hardly unique to the library), the usual overhead involved with network PKI (even if you use a hardware accelerator and rdma-type networking, left alone the CPU), and the common practice with networking code in general to copy data in to buffers (particularly with asynchronous IO code), I'd hardly call this a huge design mistake.