Files
UnrealEngineUWP/Engine/Source/Runtime/Online/SSL/Private/Unix/UnixPlatformSslCertificateManager.cpp
ryan durand 0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00

54 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "UnixPlatformSslCertificateManager.h"
#include "Ssl.h"
#include "SslError.h"
#include "Misc/ConfigCacheIni.h"
#if WITH_SSL
#include <openssl/x509.h>
void FUnixPlatformSslCertificateManager::BuildRootCertificateArray()
{
FSslCertificateManager::BuildRootCertificateArray();
bool bUsePlatformProvidedCertificates = true;
if (GConfig->GetBool(TEXT("SSL"), TEXT("bUsePlatformProvidedCertificates"), bUsePlatformProvidedCertificates, GEngineIni) && !bUsePlatformProvidedCertificates)
{
return;
}
static const TCHAR* KnownBundlePaths[] =
{
TEXT("/etc/pki/tls/certs/ca-bundle.crt"),
TEXT("/etc/ssl/certs/ca-certificates.crt"),
TEXT("/etc/ssl/ca-bundle.pem"),
};
for (const TCHAR* CurrentBundle : KnownBundlePaths)
{
FString FileName(CurrentBundle);
UE_LOG(LogSsl, Log, TEXT("Checking if '%s' exists"), *FileName);
if (FPaths::FileExists(FileName))
{
UE_LOG(LogSsl, Log, TEXT("Loading certificates from %s"), *FileName);
AddPEMFileToRootCertificateArray(FileName);
return;
}
}
if (RootCertificateArray.Num() > 0)
{
UE_LOG(LogSsl, Warning, TEXT("Unable to find a cert bundle in any of known locations. Platform provided certificates will not be used"));
}
else
{
UE_LOG(LogSsl, Warning, TEXT("Unable to find a cert bundle in any of known locations. TLS may not work."));
}
}
#endif