1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00

Generated code does not include fingerprints of TLS certificates signed by a trusted authority.

Source commit: da6723cea45d70c2c47ac3ac0a3e5ad71fa0b8db
This commit is contained in:
Martin Prikryl
2018-10-09 13:26:15 +00:00
parent 3c42b733a4
commit 18d888f666
6 changed files with 34 additions and 9 deletions

View File

@@ -83,6 +83,7 @@ void __fastcall TS3FileSystem::Open()
TSessionData * Data = FTerminal->SessionData;
FSessionInfo.LoginTime = Now();
FSessionInfo.CertificateVerifiedManually = false;
FLibS3Protocol = (Data->Ftps != ftpsNone) ? S3ProtocolHTTPS : S3ProtocolHTTP;
@@ -215,7 +216,11 @@ bool TS3FileSystem::VerifyCertificate(TNeonCertificateData Data)
Result =
FTerminal->VerifyCertificate(HttpsCertificateStorageKey, SiteKey, Data.Fingerprint, Data.Subject, Data.Failures);
if (!Result)
if (Result)
{
FSessionInfo.CertificateVerifiedManually = true;
}
else
{
UnicodeString Message;
Result = NeonWindowsValidateCertificateWithMessage(Data, Message);
@@ -226,7 +231,11 @@ bool TS3FileSystem::VerifyCertificate(TNeonCertificateData Data)
if (!Result)
{
Result = FTerminal->ConfirmCertificate(FSessionInfo, Data.Failures, HttpsCertificateStorageKey, true);
if (FTerminal->ConfirmCertificate(FSessionInfo, Data.Failures, HttpsCertificateStorageKey, true))
{
Result = true;
FSessionInfo.CertificateVerifiedManually = true;
}
}
if (Result)