SPTK Home Page
sptk5
net
CachedSSLContext.h
1
/*
2
╔══════════════════════════════════════════════════════════════════════════════╗
3
║ SIMPLY POWERFUL TOOLKIT (SPTK) ║
4
╟──────────────────────────────────────────────────────────────────────────────╢
5
║ copyright © 1999-2022 Alexey Parshin. All rights reserved. ║
6
║ email alexeyp@gmail.com ║
7
╚══════════════════════════════════════════════════════════════════════════════╝
8
┌──────────────────────────────────────────────────────────────────────────────┐
9
│ This library is free software; you can redistribute it and/or modify it │
10
│ under the terms of the GNU Library General Public License as published by │
11
│ the Free Software Foundation; either version 2 of the License, or (at your │
12
│ option) any later version. │
13
│ │
14
│ This library is distributed in the hope that it will be useful, but │
15
│ WITHOUT ANY WARRANTY; without even the implied warranty of │
16
│ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library │
17
│ General Public License for more details. │
18
│ │
19
│ You should have received a copy of the GNU Library General Public License │
20
│ along with this library; if not, write to the Free Software Foundation, │
21
│ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. │
22
│ │
23
│ Please report all bugs and problems to alexeyp@gmail.com. │
24
└──────────────────────────────────────────────────────────────────────────────┘
25
*/
26
#pragma once
27
28
#include "SSLContext.h"
29
#include <set>
30
#include <sptk5/net/SSLKeys.h>
31
32
namespace
sptk {
33
34
class
CachedSSLContext
35
{
36
using
CachedSSLContextMap = std::map<String, SharedSSLContext>;
37
38
static
SharedMutex m_mutex;
39
static
CachedSSLContextMap m_contexts;
40
51
static
String
makeIdent(
const
String
& keyFileName =
""
,
const
String
& certificateFileName =
""
,
52
const
String
& password =
""
,
53
const
String
& caFileName =
""
,
int
verifyMode = SSL_VERIFY_NONE,
int
verifyDepth = 0,
const
String
& cipherList =
"ALL"
);
54
55
public
:
67
static
SharedSSLContext
get
(
const
SSLKeys
& keys,
const
String
& cipherList);
68
};
69
70
}
// namespace sptk
sptk::CachedSSLContext
Definition:
CachedSSLContext.h:35
sptk::CachedSSLContext::get
static SharedSSLContext get(const SSLKeys &keys, const String &cipherList)
Loads private key and certificate(s)
sptk::SSLKeys
Definition:
SSLKeys.h:38
sptk::String
Definition:
String.h:49
Fri Oct 14 2022 09:58:32: SPTK 5.4.1