2
0
mirror of https://github.com/boostorg/redis.git synced 2026-02-02 09:02:16 +00:00

Compare commits

...

34 Commits

Author SHA1 Message Date
Marcelo Zimbres
a4d2bb983d Merge branch 'master' into develop 2024-05-01 16:44:39 +02:00
Ruben Perez
30ba3c3eb6 Leftovers cleanup 2024-04-03 16:02:55 +02:00
Ruben Perez
90f3d6cd92 docker-compose without build 2024-04-03 16:02:55 +02:00
Ruben Perez
ef6dea1666 Missing package & env var 2024-04-03 16:02:55 +02:00
Ruben Perez
90b001a54e Correct volume mount 2024-04-03 16:02:55 +02:00
Ruben Perez
ec1ca876eb Incorrect directory for docker-compose 2024-04-03 16:02:55 +02:00
Ruben Perez
1b90346b7c Removed interactive flag 2024-04-03 16:02:55 +02:00
Ruben Perez
8f46d1eaa9 Removed need 2024-04-03 16:02:55 +02:00
Ruben Perez
a4e9a60f34 Removed external service 2024-04-03 16:02:55 +02:00
Ruben Perez
e9b16a3140 Removed sudo 2024-04-03 16:02:55 +02:00
Ruben Perez
ced4f9bd02 Container service 2024-04-03 16:02:55 +02:00
Ruben Perez
43878d68a3 missing sudo 2024-04-03 16:02:55 +02:00
Ruben Perez
29892f2837 Attempt to run without container 2024-04-03 16:02:55 +02:00
Ruben Perez
b71dff6dd0 Missing ports in docker-compose 2024-04-03 16:02:55 +02:00
Ruben Perez
a9204fcc91 Include cleanup 2024-04-03 16:02:55 +02:00
Ruben Perez
1788ebc80b make instead of ninja 2024-04-03 16:02:55 +02:00
Ruben Perez
5656571aa4 Missing packages 2024-04-03 16:02:55 +02:00
Ruben Perez
aa6622ffa2 Missing git 2024-04-03 16:02:55 +02:00
Ruben Perez
f459d5d89b ca-certificates 2024-04-03 16:02:55 +02:00
Ruben Perez
35276b6acb Docker compose with build step 2024-04-03 16:02:55 +02:00
Ruben Perez
122ffb20b2 Permission change 2024-04-03 16:02:55 +02:00
Ruben Perez
1f4b709b21 Missing ca-certificates 2024-04-03 16:02:55 +02:00
Ruben Perez
7d52065a87 Add git 2024-04-03 16:02:55 +02:00
Ruben Perez
f0d92c16a5 Debugging compose 2024-04-03 16:02:55 +02:00
Ruben Perez
1df18258d8 Missing backslashes in ci.yml 2024-04-03 16:02:55 +02:00
Ruben Perez
71c60a5a89 sudo removal 2024-04-03 16:02:55 +02:00
Ruben Perez
098fbd68d2 CI with Docker compose 2024-04-03 16:02:55 +02:00
Ruben Perez
4f2b12adbc Remove debug statement in test_conn_tls 2024-04-03 16:02:55 +02:00
Ruben Perez
e7cec45cb2 Test TLS files 2024-04-03 16:02:55 +02:00
Ruben Perez
b19067cfed get_server_hostname utility function 2024-04-03 16:02:55 +02:00
Ruben Perez
0af1c2e73d Fixed unused variable warning in connection_base 2024-04-03 16:02:55 +02:00
Ruben Perez
da48368d53 Restored TLS tests & rework 2024-04-03 16:02:55 +02:00
Marcelo Zimbres
5c46b62958 Fixes narrowing conversion.
NOTE: I had to disable the TLS tests because I shotdown the server I was
running on my domain occase.de. Once this ticket is merged I will open a
new one to fix that and reenable the tests.
2024-03-20 14:58:06 +01:00
Marcelo Zimbres
6cde6eab44 Some fixes in the article about the costs of async abstractions [skip ci] 2024-03-20 14:58:06 +01:00
10 changed files with 245 additions and 92 deletions

View File

@@ -29,7 +29,7 @@ jobs:
CMAKE_BUILD_PARALLEL_LEVEL: 4
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup Boost
run: python3 tools/ci.py setup-boost --source-dir=$(pwd)
@@ -106,7 +106,7 @@ jobs:
OPENSSL_ROOT: "C:\\Program Files\\OpenSSL"
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup user-config.jam
run: cp tools/user-config.jam "${HOMEDRIVE}${HOMEPATH}/"
@@ -134,7 +134,6 @@ jobs:
- toolset: gcc-11
install: g++-11
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '17'
build-type: 'Debug'
ldflags: ''
@@ -142,7 +141,6 @@ jobs:
- toolset: gcc-11
install: g++-11
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '20'
build-type: 'Release'
ldflags: ''
@@ -150,7 +148,6 @@ jobs:
- toolset: clang-11
install: clang-11
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '17'
build-type: 'Debug'
ldflags: ''
@@ -158,7 +155,6 @@ jobs:
- toolset: clang-11
install: clang-11
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '20'
build-type: 'Debug'
ldflags: ''
@@ -166,7 +162,6 @@ jobs:
- toolset: clang-13
install: clang-13
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '17'
build-type: 'Release'
ldflags: ''
@@ -174,7 +169,6 @@ jobs:
- toolset: clang-13
install: clang-13
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '20'
build-type: 'Release'
ldflags: ''
@@ -182,7 +176,6 @@ jobs:
- toolset: clang-14
install: 'clang-14 libc++-14-dev libc++abi-14-dev'
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '17'
build-type: 'Debug'
cxxflags: '-stdlib=libc++'
@@ -191,83 +184,83 @@ jobs:
- toolset: clang-14
install: 'clang-14 libc++-14-dev libc++abi-14-dev'
os: ubuntu-latest
container: ubuntu:22.04
cxxstd: '20'
build-type: 'Release'
cxxflags: '-stdlib=libc++'
ldflags: '-lc++'
runs-on: ${{ matrix.os }}
container: ${{matrix.container}}
env:
CXXFLAGS: ${{matrix.cxxflags}} -Wall -Wextra
LDFLAGS: ${{matrix.ldflags}}
CMAKE_BUILD_PARALLEL_LEVEL: 4
BOOST_REDIS_TEST_SERVER: redis
services:
redis:
image: redis
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup container environment
if: matrix.container
uses: actions/checkout@v4
- name: Set up the required containers
run: |
apt-get update
apt-get -y install sudo python3 git g++ libssl-dev protobuf-compiler redis-server
docker compose -f tools/docker-compose.yml up -d --wait || (docker compose logs; exit 1)
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get -y install cmake protobuf-compiler redis-server python3 ${{ matrix.install }}
docker exec builder apt-get update
docker exec builder apt-get -y --no-install-recommends install \
git \
g++ \
libssl-dev \
make \
ca-certificates \
cmake \
protobuf-compiler \
python3 \
${{ matrix.install }}
- name: Setup Boost
run: ./tools/ci.py setup-boost --source-dir=$(pwd)
run: docker exec builder /boost-redis/tools/ci.py setup-boost --source-dir=/boost-redis
- name: Build a Boost distribution using B2
run: |
./tools/ci.py build-b2-distro \
docker exec builder /boost-redis/tools/ci.py build-b2-distro \
--toolset ${{ matrix.toolset }}
- name: Build a Boost distribution using CMake
run: |
./tools/ci.py build-cmake-distro \
docker exec builder /boost-redis/tools/ci.py build-cmake-distro \
--build-type ${{ matrix.build-type }} \
--cxxstd ${{ matrix.cxxstd }} \
--toolset ${{ matrix.toolset }}
- name: Build the project tests
run: |
./tools/ci.py build-cmake-standalone-tests \
docker exec builder /boost-redis/tools/ci.py build-cmake-standalone-tests \
--build-type ${{ matrix.build-type }} \
--cxxstd ${{ matrix.cxxstd }} \
--toolset ${{ matrix.toolset }}
- name: Run the project tests
run: |
./tools/ci.py run-cmake-standalone-tests \
docker exec builder /boost-redis/tools/ci.py run-cmake-standalone-tests \
--build-type ${{ matrix.build-type }}
- name: Run add_subdirectory tests
run: |
./tools/ci.py run-cmake-add-subdirectory-tests \
docker exec builder /boost-redis/tools/ci.py run-cmake-add-subdirectory-tests \
--build-type ${{ matrix.build-type }} \
--cxxstd ${{ matrix.cxxstd }} \
--toolset ${{ matrix.toolset }}
- name: Run find_package tests with the built cmake distribution
run: |
./tools/ci.py run-cmake-find-package-tests \
docker exec builder /boost-redis/tools/ci.py run-cmake-find-package-tests \
--build-type ${{ matrix.build-type }} \
--cxxstd ${{ matrix.cxxstd }} \
--toolset ${{ matrix.toolset }}
- name: Run find_package tests with the built b2 distribution
run: |
./tools/ci.py run-cmake-b2-find-package-tests \
docker exec builder /boost-redis/tools/ci.py run-cmake-b2-find-package-tests \
--build-type ${{ matrix.build-type }} \
--cxxstd ${{ matrix.cxxstd }} \
--toolset ${{ matrix.toolset }}
@@ -296,7 +289,7 @@ jobs:
container: ${{matrix.container}}
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup container environment
if: matrix.container

View File

@@ -113,7 +113,7 @@ struct exec_op {
asio::coroutine coro{};
template <class Self>
void operator()(Self& self , system::error_code ec = {}, std::size_t = 0)
void operator()(Self& self , system::error_code = {}, std::size_t = 0)
{
BOOST_ASIO_CORO_REENTER (coro)
{

View File

@@ -29,7 +29,7 @@ run(
conn->async_run(cfg, {l}, run_callback{conn, op, ec});
}
std::string safe_getenv(const char* name, const char* default_value)
static std::string safe_getenv(const char* name, const char* default_value)
{
// MSVC doesn't like getenv
#ifdef BOOST_MSVC
@@ -43,10 +43,15 @@ std::string safe_getenv(const char* name, const char* default_value)
return res ? res : default_value;
}
std::string get_server_hostname()
{
return safe_getenv("BOOST_REDIS_TEST_SERVER", "localhost");
}
boost::redis::config make_test_config()
{
boost::redis::config cfg;
cfg.addr.host = safe_getenv("BOOST_REDIS_TEST_SERVER", "localhost");
cfg.addr.host = get_server_hostname();
return cfg;
}

View File

@@ -16,6 +16,7 @@ auto start(boost::asio::awaitable<void> op) -> int;
#endif // BOOST_ASIO_HAS_CO_AWAIT
boost::redis::config make_test_config();
std::string get_server_hostname();
void
run(

View File

@@ -4,10 +4,11 @@
* accompanying file LICENSE.txt)
*/
#include <boost/asio/ssl/host_name_verification.hpp>
#include <boost/system/error_code.hpp>
#include <boost/redis/connection.hpp>
#define BOOST_TEST_MODULE conn-tls
#include <boost/test/included/unit_test.hpp>
#include <iostream>
#include "common.hpp"
namespace net = boost::asio;
@@ -16,24 +17,49 @@ using connection = boost::redis::connection;
using boost::redis::request;
using boost::redis::response;
using boost::redis::config;
using boost::redis::operation;
using boost::system::error_code;
bool verify_certificate(bool, net::ssl::verify_context&)
{
std::cout << "set_verify_callback" << std::endl;
return true;
}
// CA certificate that signed the test server's certificate.
// This is a self-signed CA created for testing purposes.
// This must match tools/tls/ca.crt contents
static constexpr const char* ca_certificate = R"%(-----BEGIN CERTIFICATE-----
MIIFSzCCAzOgAwIBAgIUNd7VUuGK4+ylzCOrmeckg2+TqX8wDQYJKoZIhvcNAQEL
BQAwNTETMBEGA1UECgwKUmVkaXMgVGVzdDEeMBwGA1UEAwwVQ2VydGlmaWNhdGUg
QXV0aG9yaXR5MB4XDTI0MDMzMTE0MjUyM1oXDTM0MDMyOTE0MjUyM1owNTETMBEG
A1UECgwKUmVkaXMgVGVzdDEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5AMV5V66wt+MM4+oCzH0
xPi++j23p8AOa0o3dxNd4tm5y++gAdKfoxj7oh32ZuYHA5V+sGNEalN/b3GlKXMm
ThdVPSwqOQduny19wrb126ZeQXCfqwgSZQ+rgzaIYpw8/GRRuLDunmsdaR2eiptp
dbv6g6P/aIF6P9mfuekwCC9KBCV6ftqOEnzulNLVw4JjY0rKB9NZqONKVMfWpNyC
zJLCkGmza7BOpybhloZIxGJz033yCjDvIQr9GUWsA5rU9LdUiL+F1W0pWkIel1qo
Evo0EIl3+EOcSSzETI7NPHgnSzNau39ZShV4UBj2lw0DWeNcobeMBQ8ItmqEU6V0
gCEqfUnt10bGIDdmV3D5FKPgvhFvEjQULnblLeLDQ6XDFf+xbGEVjvTzVkLjvyKm
H2D+SKw2O+eDU/0+xhpAf+QsWlm6pmvKWjXI5wK1rh2yssBK2pmY3LuuZCdGrvXb
KX4j/4S9qMr43Hmyoyz0gE5I5rplqot8TvT9O/JsgQYd9fYSvdB+HbqAlJzpBZFl
xbVBXxl0AlDFwQtNMX5ylEQPvYVDKA1M+DTqRTgQKctTfccwvovY3YMV7m5YoODZ
ya2YSBRfQim6VsC+QPYs7p2dk1larIoMMaTaU02oMY+qT2d/eyhWKBv5W9LuowTQ
bWa3ZhWN8lXriPgJOQnZ6iUCAwEAAaNTMFEwHQYDVR0OBBYEFCpEPlClLrgu1zFN
Fmas5G4ybNRJMB8GA1UdIwQYMBaAFCpEPlClLrgu1zFNFmas5G4ybNRJMA8GA1Ud
EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAFLl1NZHp0NT5Av4GKmsJFeI
cJOgcIygjR4SBGDAxyPqVpZk0x1q64gJsfOe1ARyI4olQPqO08FZMeB+VBYuqR3S
fEVQZz2FT5U7IVAEZwWHOcWkrrVpEZC6PZktYJ7Yqju6+ic93inoPrHhGNZ5XA/Y
GSfwriWkyWm2SOk35ChFH67MbPWmve8CRAXRmrOCByXwXF87wdqVYZUvH9xDe6WU
snFWXVHr2NA7Re8ZIGp7yJOwwW+CZagepNCPUDwnI0fWOahtOTzonIjq8bfgTZPx
2e7lBuAr9tVMpoeyUytVOlNJDojZAtKOpfMwhAG8ydhk+78aK07VVbnSYVhv7ctU
kkkldqP/S3lBlWo44oOxenwLc9vDQNh64py7eQTD7Qv+TjqAG0ljHIDbVqlkQsgR
pQsu7keG9O1xASSTLZVZN2/alNewpqE/eFRfPM3mtUiTiIZvSxiQnWQMbKofAZH5
HwhVli4RKWRWPqpof4GFNkB8XwfBE+gdlFuWtyg0oRyV3sJ6Zn7E+lUpbQX4CFx3
97vekaFNBchNYMcP3TZ9LwxTx1xOWZ5HHrHyzASG3uz2rqwAsEmdRbmK03KfEQyQ
YpNY718btZ1D6lLino9VMgzaPhUs79bHC64O4ncl7hRclK9qa3KLQdCG1cbIR7G0
2XVYrfsnPHX0CsPDIy7L
-----END CERTIFICATE-----)%";
config make_tls_config()
static config make_tls_config()
{
config cfg;
cfg.use_ssl = true;
cfg.username = "aedis";
cfg.password = "aedis";
cfg.addr.host = "db.occase.de";
cfg.addr.host = get_server_hostname();
cfg.addr.port = "6380";
//cfg.health_check_interval = std::chrono::seconds{0};
return cfg;
}
@@ -49,11 +75,13 @@ BOOST_AUTO_TEST_CASE(ping_internal_ssl_context)
net::io_context ioc;
connection conn{ioc};
conn.next_layer().set_verify_mode(net::ssl::verify_peer);
conn.next_layer().set_verify_callback(verify_certificate);
conn.async_exec(req, resp, [&](auto ec, auto) {
BOOST_TEST(!ec);
// The custom server uses a certificate signed by a CA
// that is not trusted by default - skip verification.
conn.next_layer().set_verify_mode(net::ssl::verify_none);
conn.async_exec(req, resp, [&](error_code ec, auto) {
BOOST_TEST(ec == std::error_code());
conn.cancel();
});
@@ -76,12 +104,17 @@ BOOST_AUTO_TEST_CASE(ping_custom_ssl_context)
net::io_context ioc;
net::ssl::context ctx{boost::asio::ssl::context::tls_client};
// Configure the SSL context to trust the CA that signed the server's certificate.
// The test certificate uses "redis" as its common name, regardless of the actual server's hostname
ctx.add_certificate_authority(net::const_buffer(ca_certificate, std::strlen(ca_certificate)));
ctx.set_verify_mode(net::ssl::verify_peer);
ctx.set_verify_callback(net::ssl::host_name_verification("redis"));
connection conn{ioc, std::move(ctx)};
conn.next_layer().set_verify_mode(net::ssl::verify_peer);
conn.next_layer().set_verify_callback(verify_certificate);
conn.async_exec(req, resp, [&](auto ec, auto) {
BOOST_TEST(!ec);
BOOST_TEST(ec == std::error_code());
conn.cancel();
});
@@ -91,38 +124,3 @@ BOOST_AUTO_TEST_CASE(ping_custom_ssl_context)
BOOST_CHECK_EQUAL(in, std::get<0>(resp).value());
}
BOOST_AUTO_TEST_CASE(acl_does_not_allow_select)
{
auto cfg = make_tls_config();
cfg.database_index = 22;
cfg.reconnect_wait_interval = std::chrono::seconds::zero();
std::string const in = "Kabuf";
request req;
req.push("PING", in);
response<std::string> resp;
net::io_context ioc;
connection conn{ioc};
conn.next_layer().set_verify_mode(net::ssl::verify_peer);
conn.next_layer().set_verify_callback(verify_certificate);
conn.async_exec(req, resp, [&](auto, auto) {
// TODO: We should not need this cancel here because
// reconnect was disabled.
conn.cancel();
});
error_code ec2;
conn.async_run(cfg, {}, [&](auto ec) {
ec2 = ec;
});
ioc.run();
BOOST_TEST(!!ec2);
}

24
tools/docker-compose.yml Normal file
View File

@@ -0,0 +1,24 @@
services:
redis:
image: "redis:alpine"
command: [
"redis-server",
"--tls-port", "6380",
"--tls-cert-file", "/tls/server.crt",
"--tls-key-file", "/tls/server-key.key",
"--tls-ca-cert-file", "/tls/ca.crt",
"--tls-auth-clients", "no",
]
volumes:
- ./tls:/tls
ports:
- 6379:6379
- 6380:6380
builder:
image: ubuntu:22.04
container_name: builder
tty: true
environment:
- BOOST_REDIS_TEST_SERVER=redis
volumes:
- ../:/boost-redis

31
tools/tls/ca.crt Executable file
View File

@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFSzCCAzOgAwIBAgIUNd7VUuGK4+ylzCOrmeckg2+TqX8wDQYJKoZIhvcNAQEL
BQAwNTETMBEGA1UECgwKUmVkaXMgVGVzdDEeMBwGA1UEAwwVQ2VydGlmaWNhdGUg
QXV0aG9yaXR5MB4XDTI0MDMzMTE0MjUyM1oXDTM0MDMyOTE0MjUyM1owNTETMBEG
A1UECgwKUmVkaXMgVGVzdDEeMBwGA1UEAwwVQ2VydGlmaWNhdGUgQXV0aG9yaXR5
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5AMV5V66wt+MM4+oCzH0
xPi++j23p8AOa0o3dxNd4tm5y++gAdKfoxj7oh32ZuYHA5V+sGNEalN/b3GlKXMm
ThdVPSwqOQduny19wrb126ZeQXCfqwgSZQ+rgzaIYpw8/GRRuLDunmsdaR2eiptp
dbv6g6P/aIF6P9mfuekwCC9KBCV6ftqOEnzulNLVw4JjY0rKB9NZqONKVMfWpNyC
zJLCkGmza7BOpybhloZIxGJz033yCjDvIQr9GUWsA5rU9LdUiL+F1W0pWkIel1qo
Evo0EIl3+EOcSSzETI7NPHgnSzNau39ZShV4UBj2lw0DWeNcobeMBQ8ItmqEU6V0
gCEqfUnt10bGIDdmV3D5FKPgvhFvEjQULnblLeLDQ6XDFf+xbGEVjvTzVkLjvyKm
H2D+SKw2O+eDU/0+xhpAf+QsWlm6pmvKWjXI5wK1rh2yssBK2pmY3LuuZCdGrvXb
KX4j/4S9qMr43Hmyoyz0gE5I5rplqot8TvT9O/JsgQYd9fYSvdB+HbqAlJzpBZFl
xbVBXxl0AlDFwQtNMX5ylEQPvYVDKA1M+DTqRTgQKctTfccwvovY3YMV7m5YoODZ
ya2YSBRfQim6VsC+QPYs7p2dk1larIoMMaTaU02oMY+qT2d/eyhWKBv5W9LuowTQ
bWa3ZhWN8lXriPgJOQnZ6iUCAwEAAaNTMFEwHQYDVR0OBBYEFCpEPlClLrgu1zFN
Fmas5G4ybNRJMB8GA1UdIwQYMBaAFCpEPlClLrgu1zFNFmas5G4ybNRJMA8GA1Ud
EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBAFLl1NZHp0NT5Av4GKmsJFeI
cJOgcIygjR4SBGDAxyPqVpZk0x1q64gJsfOe1ARyI4olQPqO08FZMeB+VBYuqR3S
fEVQZz2FT5U7IVAEZwWHOcWkrrVpEZC6PZktYJ7Yqju6+ic93inoPrHhGNZ5XA/Y
GSfwriWkyWm2SOk35ChFH67MbPWmve8CRAXRmrOCByXwXF87wdqVYZUvH9xDe6WU
snFWXVHr2NA7Re8ZIGp7yJOwwW+CZagepNCPUDwnI0fWOahtOTzonIjq8bfgTZPx
2e7lBuAr9tVMpoeyUytVOlNJDojZAtKOpfMwhAG8ydhk+78aK07VVbnSYVhv7ctU
kkkldqP/S3lBlWo44oOxenwLc9vDQNh64py7eQTD7Qv+TjqAG0ljHIDbVqlkQsgR
pQsu7keG9O1xASSTLZVZN2/alNewpqE/eFRfPM3mtUiTiIZvSxiQnWQMbKofAZH5
HwhVli4RKWRWPqpof4GFNkB8XwfBE+gdlFuWtyg0oRyV3sJ6Zn7E+lUpbQX4CFx3
97vekaFNBchNYMcP3TZ9LwxTx1xOWZ5HHrHyzASG3uz2rqwAsEmdRbmK03KfEQyQ
YpNY718btZ1D6lLino9VMgzaPhUs79bHC64O4ncl7hRclK9qa3KLQdCG1cbIR7G0
2XVYrfsnPHX0CsPDIy7L
-----END CERTIFICATE-----

51
tools/tls/ca.key Executable file
View File

@@ -0,0 +1,51 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

27
tools/tls/server-key.key Executable file
View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAxDwCrIWM9cqHpT/2MKnQ2DsdChUOkKkwsw8HA/eSrLm+LqGl
IFcj19j9PP68O5Nd1N4W1SFHz2HiaZarTtqCBo+laaXaxoAjOA7BiPP6Rce8t+gb
mJ4EvjwEn+vIg6eyM8fFRyoqUSIh5ybJ7Cq7Un0lUDqhbt7VrvBWZQcyh6z9F1Z1
NXiexKdYH/ewpGrA2FeM9lv3zVUiJKO0mM2t86u/TPw9zsgc3sQAwd1I+dZv+jbA
qfjzrfNIk0htRKgMKTuIOwZlFW+WLhqx9dDfMrAD30vSv0jXyPa1tYo46hBIwefr
0PcLpw3HNwgrizDOShhS9V2pTtO9gVM+Xxwn/wIDAQABAoIBAA50zU2gWQ4SaYPG
/n//Qp9rW2xOuM/3ZtsKFF46cte+p0AQMHX9dWqFVcKUkZFh/ducsNnqpbulXmSg
8OXSOxn4oxrxWPien/mVPLS2JI3XdROnScEogvjwuvZ9DDyGsh4WbXYcqRlpBk5d
ESsQytP83C7Y4uOkDuHgWrz+lr5f4tbwxEvSI4AQ0ucksV/BNupwGaz0VTOqWTuN
cZSRILcDnkldFXprX//QFUxGYh3sLQpigja9v2ES72yEuS3VDaZvc/2CQL51vYn/
wfnKSUPSiX1p/wtwJXwTUzFIKYsfi/b3TqWCt+ajqSY4hUqHn/xf+m27sTV2thbC
w3Hh8yECgYEA+4bvSk8uRFy1Yg+G36sSKp/tBAmrGE3vFfhePTC7XFsUQstQE9pP
1IZJY+SxKfj8snben6MtSjNu0ntte55Jnhq0M2UsmsEzR0rN43P1u8iJAUe1vp4t
vptJCUDDj+8WppzzyzbRESoFYfJ5o9JMu0h12Sx/U1bgnp75NhRi2y0CgYEAx7lb
wT6a/FSgkisvrOTY+bY9xsz7aqH+fz2FdZpoJlIofbofmwdNGU2oXdo4S71ITB4y
xLLOuyUhz2okBu+iwJbZEmX1CALe/GV1UYAlNcFVmggGQM44G0mh1chgR6qIbCOB
7yPwPkmERVqGtV+MxPR8ku7u73b/3sDLmVTUm1sCgYB46RR+lDGZizdmPDCJtKK2
+snk9wDYXh5gYVRr9dEbRG0o7rM/1+IoN6Vv7696jcZrw9igxMAwuyi65bprglvB
NPUK/8fBXL5ZtwviGww1iODTTLWBPGihB+TEHe3kcvpgfXJ0bZVyutB7lSQELEPW
g66jB1DtrwWrOqBx7rrWwQKBgQCMqdqanoovfzbb23inb0H1lUmrE0FbV55TZTPy
oP4LRz/nVMffuuOtF4mmGAQgK76YhYhCCqEZI0zNtTaMgAgDVfqqP460xrjf0GEx
Nmx+kJzGcDJfQB458cD+PTK6JrwQVW20zH3ukH6NDfXkFdih+oMmRQuZMhmBfA2o
/xsCEwKBgQDTbsTzHrBSvQtxEB8QYFnEBeRcvNHrtvVrWGJnYPbmvAAxJgzC83tr
u8ST6sPUTe7rpdxQUzwxThkkbovsPqC+40wwclOMltZSyVwNlREYUl8iQUZKX0ZM
0sdNP0Z/UMCDa08yz18qbMtehQrIS2o6lwzIgM/NS2IlkmN7Hbx5Mw==
-----END RSA PRIVATE KEY-----

23
tools/tls/server.crt Executable file
View File

@@ -0,0 +1,23 @@
-----BEGIN CERTIFICATE-----
MIID3DCCAcQCFENgZw0c9P89NpIf0+jFhIYpQzi3MA0GCSqGSIb3DQEBCwUAMDUx
EzARBgNVBAoMClJlZGlzIFRlc3QxHjAcBgNVBAMMFUNlcnRpZmljYXRlIEF1dGhv
cml0eTAeFw0yNDAzMzExNDI1MzlaFw0yNDA0MzAxNDI1MzlaMCAxDjAMBgNVBAoM
BXJlZGlzMQ4wDAYDVQQDDAVyZWRpczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
AQoCggEBAMQ8AqyFjPXKh6U/9jCp0Ng7HQoVDpCpMLMPBwP3kqy5vi6hpSBXI9fY
/Tz+vDuTXdTeFtUhR89h4mmWq07aggaPpWml2saAIzgOwYjz+kXHvLfoG5ieBL48
BJ/ryIOnsjPHxUcqKlEiIecmyewqu1J9JVA6oW7e1a7wVmUHMoes/RdWdTV4nsSn
WB/3sKRqwNhXjPZb981VIiSjtJjNrfOrv0z8Pc7IHN7EAMHdSPnWb/o2wKn4863z
SJNIbUSoDCk7iDsGZRVvli4asfXQ3zKwA99L0r9I18j2tbWKOOoQSMHn69D3C6cN
xzcIK4swzkoYUvVdqU7TvYFTPl8cJ/8CAwEAATANBgkqhkiG9w0BAQsFAAOCAgEA
le50e2bw+Vc0kN9PUs13p/2JAEy1LlS1ehyBx+O1kFnkQRk6YMNOFDcrL9+65pWq
La1Me+OozgUuBErhbI7eElFwb5CJ1Jzm2UGmV7+9AcC0eU4qdY0tR/gOpPtaKVly
+Sqq44P2lZSBssjr1KLuk/pEGd4Q//G8EB31TumLRTL+fbzSqQ+m/5mukMdCSUpd
lxeCzr1n0p9/29eZ2+qX7moQUvZ9nsHwtKyxMsuDSJTiHysC5TfGWrbstpFULM7M
bqKZiA+WLtDCvh8xa49+AeDbbZSQahEVm09I9ww3XBFCQNTfgmnscMvscpgR5xqj
A3AceHjhO7T8oAdNF8UoHprIpLl7tw/RZwqYeLq1IabwUN+t+Patt4HZIRgWeiKc
IlzPICI8n3OhHBRTl0GhPL6G85Z56WhI6wxbTm9HmVRYK1RFbPpIxQ7Mi+BQG5wC
oXwAAQeDyF0au9zByTU6bjYqXMGgaBRVzSh1VaQ675yqT3+CJFAMPqkGdTmgwOBy
Ge7T697+gMR37/xPqY7TnDucJ2x33dVmIVkwpNapZjM+TThFYihV0Dl9wxCr/Kuz
MTIXvzC6bEEu24FsAWttt9vPV+yrIpidLZ0AKo6zYO6azU2Uui9whDps6Rzi1g6f
WVot3B9KCQTPtc80ayJiQQEnR1n13wlfInaD8cxqoic=
-----END CERTIFICATE-----