Botan 3.3.0
Crypto and TLS for C&
tls_session_manager_sqlite.h
Go to the documentation of this file.
1/*
2* SQLite3 TLS Session Manager
3* (C) 2012 Jack Lloyd
4*
5* Botan is released under the Simplified BSD License (see license.txt)
6*/
7
8#ifndef BOTAN_TLS_SQLITE3_SESSION_MANAGER_H_
9#define BOTAN_TLS_SQLITE3_SESSION_MANAGER_H_
10
11#include <botan/tls_session_manager_sql.h>
12
13namespace Botan {
14
15class RandomNumberGenerator;
16
17namespace TLS {
18
19/**
20* An implementation of Session_Manager that saves values in a SQLite3
21* database file, with the session data encrypted using a passphrase.
22*
23* @warning For clients, the hostnames associated with the saved
24* sessions are stored in the database in plaintext. This may be a
25* serious privacy risk in some situations.
26*/
28 public:
29 /**
30 * @param passphrase used to encrypt the session data
31 * @param rng a random number generator
32 * @param db_filename filename of the SQLite database file.
33 The table names tls_sessions and tls_sessions_metadata
34 will be used
35 * @param max_sessions a hint on the maximum number of sessions
36 * to keep in memory at any one time. (If zero, don't cap)
37 */
38 Session_Manager_SQLite(std::string_view passphrase,
39 const std::shared_ptr<RandomNumberGenerator>& rng,
40 std::string_view db_filename,
41 size_t max_sessions = 1000);
42};
43
44} // namespace TLS
45
46} // namespace Botan
47
48#endif
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
Definition compiler.h:31