Ajisai FAQ

· Section 1: Basics

1.1 What is Ajisai?

Ajisai is an SSL/TLS implementation written entirely in C++.

1.2 Why not an OpenSSL wrapper?

While a C++ wrapper to OpenSSL would be nice, I wouldn't do it, because it's fundamentally uninteresting (to me). There are a number of existing C++ wrappers to OpenSSL, most of them are incomplete and unmaintained, and none of them wrap all of OpenSSL; while you might get a wrapper for the basic SSL and certificate operations, as soon as you want to do something interesting, you end up falling back to OpenSSL's interface. With Ajisai, if you want to do something odd, you fall back to Botan, which is a native C++ interface with a similar style to Ajisai (hardly surprising, since one person did both of them).

Ajisai will not suffer from security bugs in OpenSSL, and while no doubt Ajisai will suffer its fair share of holes, the features available in C++ (such as exceptions, destructors, and library-provided string and buffer types) make it significantly easier to write secure code.

1.3 Why is it called Ajisai?

Ajisai is the Japanese name for hydrangea. I name my interesting projects after Japanese flowers, because it reduces the possibility of naming collisions, and makes it really easy to pick names for new projects. I honestly can't remember why I decided Japanese flowers was a good source for names, though.

Additionally, the name gives Ajisai the distinction of being the only SSL/TLS library currently available that does not have SSL or TLS in the name.

· Section 2: Status

2.1 Is Ajisai ready for "real" use?

Currently Ajisai should be considered alpha software. It works, mostly, but it is missing many features, will probably undergo serious API changes, and may have security flaws.

2.2 What's supported?

Currently the basic SSLv3 and TLS 1.0 protocols are supported.

2.3 What's not supported?

SSLv2 is not and never will be supported, though later on support for reading SSLv2 client hellos will be added to support clients which are willing to use SSLv2. Similarly, the weak ciphersuites formerly included in SSL/TLS for reasons of complying with US export laws will not be supported.

Session caching, TLS extensions, TLS 1.1, and DTLS are not supported right now, but are planned for future releases.

· Section 3: Portability

3.1 How portable is Ajisai?

Currently Ajisai is only being tested on Linux/x86 and Linux/amd64. It will probably build on most 'normal' Unix systems that support BSD sockets. Support for Windows, BeOS, and other OSes will be added later on (patches welcome).