blob: 51811f4f70c143db49a70d4e83a0f610a4667b72 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/vespalib/net/crypto_engine.h>
#include <vespa/vespalib/net/tls/tls_crypto_engine.h>
#include <vespa/vespalib/net/tls/maybe_tls_crypto_engine.h>
#include <vespa/vespalib/test/make_tls_options_for_testing.h>
vespalib::CryptoEngine::SP my_crypto_engine() {
const char *env_str = getenv("CRYPTOENGINE");
if (!env_str) {
fprintf(stderr, "crypto engine: null\n");
return std::make_shared<vespalib::NullCryptoEngine>();
}
std::string engine(env_str);
if (engine == "xor") {
fprintf(stderr, "crypto engine: xor\n");
return std::make_shared<vespalib::XorCryptoEngine>();
} else if (engine == "tls") {
fprintf(stderr, "crypto engine: tls\n");
return std::make_shared<vespalib::TlsCryptoEngine>(vespalib::test::make_tls_options_for_testing());
} else if (engine == "tls_maybe_yes") {
fprintf(stderr, "crypto engine: tls client, mixed server\n");
auto tls = std::make_shared<vespalib::TlsCryptoEngine>(vespalib::test::make_tls_options_for_testing());
return std::make_shared<vespalib::MaybeTlsCryptoEngine>(std::move(tls), true);
} else if (engine == "tls_maybe_no") {
fprintf(stderr, "crypto engine: null client, mixed server\n");
auto tls = std::make_shared<vespalib::TlsCryptoEngine>(vespalib::test::make_tls_options_for_testing());
return std::make_shared<vespalib::MaybeTlsCryptoEngine>(std::move(tls), false);
}
TEST_FATAL(("invalid crypto engine: " + engine).c_str());
abort();
}
|