NeonIntf.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //---------------------------------------------------------------------------
  2. #ifndef NeonIntfH
  3. #define NeonIntfH
  4. //---------------------------------------------------------------------------
  5. #define WINSCP
  6. #include <ne_uri.h>
  7. #include <ne_session.h>
  8. #include <SessionData.h>
  9. //---------------------------------------------------------------------------
  10. #define StrToNeon(S) UTF8String(S).c_str()
  11. #define StrFromNeon(S) UnicodeString(UTF8String(S))
  12. //---------------------------------------------------------------------------
  13. struct TNeonCertificateData
  14. {
  15. UnicodeString Subject;
  16. UnicodeString Issuer;
  17. TDateTime ValidFrom;
  18. TDateTime ValidUntil;
  19. UnicodeString Fingerprint;
  20. AnsiString AsciiCert;
  21. int Failures;
  22. };
  23. //---------------------------------------------------------------------------
  24. void NeonParseUrl(const UnicodeString & Url, ne_uri & uri);
  25. bool IsTlsUri(const ne_uri & uri);
  26. ne_session * CreateNeonSession(const ne_uri & uri);
  27. void InitNeonSession(ne_session * Session, TProxyMethod ProxyMethod, const UnicodeString & ProxyHost,
  28. int ProxyPort, const UnicodeString & ProxyUsername, const UnicodeString & ProxyPassword, TTerminal * Terminal);
  29. void DestroyNeonSession(ne_session * Session);
  30. UnicodeString GetNeonError(ne_session * Session);
  31. void CheckNeonStatus(ne_session * Session, int NeonStatus,
  32. const UnicodeString & HostName, const UnicodeString & CustomError = L"");
  33. UnicodeString GetNeonRedirectUrl(ne_session * Session);
  34. void CheckRedirectLoop(const UnicodeString & RedirectUrl, TStrings * AttemptedUrls);
  35. typedef void (__closure* TNeonTlsInit)(struct ssl_st * Ssl, ne_session * Session);
  36. void SetNeonTlsInit(ne_session * Session, TNeonTlsInit OnNeonTlsInit);
  37. AnsiString NeonExportCertificate(const ne_ssl_certificate * Certificate);
  38. bool NeonWindowsValidateCertificate(int & Failures, const AnsiString & AsciiCert, UnicodeString & Error);
  39. bool NeonWindowsValidateCertificateWithMessage(TNeonCertificateData & Data, UnicodeString & Message);
  40. UnicodeString NeonCertificateFailuresErrorStr(int Failures, const UnicodeString & HostName);
  41. void UpdateNeonDebugMask();
  42. void __fastcall RegisterForNeonDebug(TTerminal * Terminal);
  43. void __fastcall UnregisterFromNeonDebug(TTerminal * Terminal);
  44. void __fastcall NeonInitialize();
  45. void __fastcall NeonFinalize();
  46. void __fastcall RequireNeon(TTerminal * Terminal);
  47. void __fastcall RetrieveNeonCertificateData(
  48. int Failures, const ne_ssl_certificate * Certificate, TNeonCertificateData & Data);
  49. UnicodeString __fastcall CertificateVerificationMessage(const TNeonCertificateData & Data);
  50. UnicodeString __fastcall CertificateSummary(const TNeonCertificateData & Data, const UnicodeString & HostName);
  51. struct TSessionInfo;
  52. UnicodeString __fastcall NeonTlsSessionInfo(
  53. ne_session * Session, TSessionInfo & FSessionInfo, UnicodeString & TlsVersionStr);
  54. void SetupSsl(ssl_st * Ssl, TTlsVersion MinTlsVersion, TTlsVersion MaxTlsVersion);
  55. //---------------------------------------------------------------------------
  56. #endif