Qfs kerberos lib: initial server side kerberos context setup implementation.
Kerberos lib: rework / fix server side kerberos ticket replay cache initialization / setup.
Qfs kerberos lib: first [incomplete] attempt on kerberos ticket validation.
Qfs kerberos: rework server side kerberos context to [re]initialize authentication context on each call to process / validate AP_REQ.
Qfs kerberos lib: first reasonably complete but untested kerberos 5 service (server) side implementation / kerberos wrapper. The access from multiple concurrent threads to the KrbService class methods needs to be serialized (this is true in general with most kerberos libs implementations anyway). The shared key as well as reply is with KrbService::Reply() method once kerberos authentication handshake completes. The intention is to use the key as pre-shared secret to "bootstrap" TLS-PSK.
Qfs kerberos lib: implement client side part of the kerberos handshake.
Qfs kerberos lib: fix comment.
Qfs kerberos lib: start on unit tests.
Qfs kerberos library: initial unit test implementation. Performance test [service side, of course] still pending. Fix / rework error reporting with the client and service side kerberos state machines to unambiguously let the invoker know that the order of invocations is not correct. Do not let kerberos 5 libs to do dns lookups and attempt to do the reverse DNS server name lookups by using KRB5_NT_UNKNOWN instead of KRB5_NT_HST. Fix client and server context setup by creating and maintaining server principal separately. Add printing in hex shared session keys. Validate that server and client session keys match. This is the first time kerbersos wrappers passed unit test on the single node.
Qfs kerberos lib: add missing include to compile on centos 6.
Qfs kerberos lib: fix error message.
Qfs kerberos lib: add replay unit test; add request / response loop test to check for memory leaks; minor code cleanup.
Qfs kerberos lib: fix memory leaks in KrbClient::Request().
Qfs kerberos lib: continue to run unit test in the loop even if the test returns an error in order to detect memory leaks; make error reporting more robust by returning generic kerberos error in the case if the library returns an empty string or null.
Qfs kerberos lib: fix memory leak in service and client error reporting.
Qfs kerberos lib: add basic cpu profiling.
Qfs kerberos lib: add flag to disable service replay cache. Replay cache performance is rather dismal, and since the kerberos handshake only intended to be used to bootstrap the TLS-PSK, then the replay cache isn't really required, and will be turned off by default.
QFS kerberos lib: extract and return client's principal as string, allow to specify principle conversion/extraction flags. Move client's side session key extraction to from reply to request, to allow to bootstrap TLS-PSK earlier and send TLS client hello along with kerberos AP_REQ. Though TLS doesn't really need the key until client key exchange, that comes after server reply. Change invalid invocations error codes to EINVAL, to not confuse them with the kerberos error codes. Update unit tests accordingly.
QFS kerberos lib: use krb5_free_unparsed_name() instead of krb5_free_string() to make the code compile with older kerberos 5 releases.
Qfs kerberos lib: fix memory leak by adding missing krb5_free_authenticator() invocation.