
Botan: Crypto and TLS for C++11 - based2
https://botan.randombit.net/
======
IshKebab
Security record:
[https://botan.randombit.net/security.html](https://botan.randombit.net/security.html)

Also worth considering: [https://tls.mbed.org/](https://tls.mbed.org/) I've
used it and it is indeed very easy to use.

------
netheril96
The API of Botan forces you to use `secure_vector<byte>` to store data to be
encrypted or decrypted. That makes it impossible to eliminate unnecessary
copying where possible. A huge design mistake.

~~~
idsout
What unnecessary copying are you referring to? According to the documentation,
`secure_vector` is just a typedef of `std::vector` with a custom allocator
that zeroes memory on destruction.

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.

~~~
leni536
It also tries to "mlock" the memory region on Linux so it doesn't get swapped,
however it falls back to allowing swapping when it fails.

------
shin_lao
To be noted Boost.ASIO offers integrated SSL support, based on OpenSSL (with
the advantages and disadvantages that it brings).

