mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +01:00
111 lines
4.4 KiB
C++
111 lines
4.4 KiB
C++
#include "asio/boost_simulation.hpp"
|
|
|
|
void SetOptionsNoOldTls(boost::asio::ssl::context& ctx)
|
|
{
|
|
ctx.set_options(boost::asio::ssl::context::no_tlsv1);
|
|
ctx.set_options(boost::asio::ssl::context::no_tlsv1_1);
|
|
}
|
|
|
|
void TestProperConfiguration_inter_CorrectUsage01()
|
|
{
|
|
boost::asio::ssl::context ctx(boost::asio::ssl::context::tls_client); // GOOD
|
|
SetOptionsNoOldTls(ctx);
|
|
}
|
|
|
|
void TestProperConfiguration_inter_CorrectUsage02()
|
|
{
|
|
boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23); // GOOD
|
|
ctx.set_options(boost::asio::ssl::context::no_tlsv1 |
|
|
boost::asio::ssl::context::no_tlsv1_1 |
|
|
boost::asio::ssl::context::no_sslv3);
|
|
}
|
|
|
|
void TestProperConfiguration_inter_IncorrectUsage01()
|
|
{
|
|
boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23); // BAD - missing disable SSLv3
|
|
SetOptionsNoOldTls(ctx);
|
|
}
|
|
|
|
void TestProperConfiguration_IncorrectUsage01()
|
|
{
|
|
boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23); // BAD
|
|
}
|
|
|
|
void TestProperConfiguration_IncorrectUsage02()
|
|
{
|
|
boost::asio::ssl::context ctx(boost::asio::ssl::context::tls); // BAD
|
|
}
|
|
|
|
void TestProperConfiguration_IncorrectUsage03()
|
|
{
|
|
boost::asio::ssl::context ctx(boost::asio::ssl::context::tls); // BAD
|
|
SetOptionsNoOldTls(ctx);
|
|
ctx.set_options(boost::asio::ssl::context::no_tlsv1 |
|
|
boost::asio::ssl::context::no_tlsv1_2 ); // BUG - disabling TLS 1.2
|
|
}
|
|
|
|
void TestHardcodedProtocols()
|
|
{
|
|
//////////////////////// Banned Hardcoded algorithms
|
|
boost::asio::ssl::context cxt_sslv2(boost::asio::ssl::context::sslv2); // BUG
|
|
boost::asio::ssl::context cxt_sslv2c(boost::asio::ssl::context::sslv2_client); // BUG
|
|
boost::asio::ssl::context cxt_sslv2s(boost::asio::ssl::context::sslv2_server); // BUG
|
|
|
|
boost::asio::ssl::context cxt_sslv3(boost::asio::ssl::context::sslv3); // BUG
|
|
boost::asio::ssl::context cxt_sslv3c(boost::asio::ssl::context::sslv3_client); // BUG
|
|
boost::asio::ssl::context cxt_sslv3s(boost::asio::ssl::context::sslv3_server); // BUG
|
|
|
|
boost::asio::ssl::context cxt_tlsv1(boost::asio::ssl::context::tlsv1); // BUG
|
|
boost::asio::ssl::context cxt_tlsv1c(boost::asio::ssl::context::tlsv1_client); // BUG
|
|
boost::asio::ssl::context cxt_tlsv1s(boost::asio::ssl::context::tlsv1_server); // BUG
|
|
|
|
boost::asio::ssl::context cxt_tlsv11(boost::asio::ssl::context::tlsv11); // BUG
|
|
boost::asio::ssl::context cxt_tlsv11c(boost::asio::ssl::context::tlsv11_client); // BUG
|
|
boost::asio::ssl::context cxt_tlsv11s(boost::asio::ssl::context::tlsv11_server); // BUG
|
|
|
|
////////////////////// Hardcoded algorithms
|
|
|
|
boost::asio::ssl::context cxt_tlsv12(boost::asio::ssl::context::tlsv12);
|
|
boost::asio::ssl::context cxt_tlsv12c(boost::asio::ssl::context::tlsv12_client);
|
|
boost::asio::ssl::context cxt_tlsv12s(boost::asio::ssl::context::tlsv12_server);
|
|
|
|
boost::asio::ssl::context cxt_tlsv13(boost::asio::ssl::context::tlsv13);
|
|
boost::asio::ssl::context cxt_tlsv13c(boost::asio::ssl::context::tlsv13_client);
|
|
boost::asio::ssl::context cxt_tlsv13s(boost::asio::ssl::context::tlsv13_server);
|
|
}
|
|
|
|
void InterProceduralTest(boost::asio::ssl::context::method m)
|
|
{
|
|
boost::asio::ssl::context cxt1(m); // BUG - Multiple hits (sink)
|
|
}
|
|
|
|
void TestHardcodedProtocols_inter()
|
|
{
|
|
//////////////////////// Banned Hardcoded algorithms
|
|
InterProceduralTest(boost::asio::ssl::context::sslv2); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::sslv2_client); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::sslv2_server); // BUG
|
|
|
|
InterProceduralTest(boost::asio::ssl::context::sslv3); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::sslv3_client); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::sslv3_server); // BUG
|
|
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv1); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv1_client); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv1_server); // BUG
|
|
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv11); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv11_client); // BUG
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv11_server); // BUG
|
|
|
|
////////////////////// Hardcoded algorithms
|
|
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv12);
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv12_client);
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv12_server);
|
|
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv13);
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv13_client);
|
|
InterProceduralTest(boost::asio::ssl::context::tlsv13_server);
|
|
}
|