| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | //---------------------------------------------------------------------------#ifndef NeonIntfH#define NeonIntfH//---------------------------------------------------------------------------#include <ne_uri.h>#include <ne_session.h>#include <SessionData.h>//---------------------------------------------------------------------------#define StrToNeon(S) UTF8String(S).c_str()// Should be used with character pointer only#define StrFromNeon(S) UnicodeString(UTF8String(S))//---------------------------------------------------------------------------struct TNeonCertificateData{  UnicodeString Subject;  UnicodeString Issuer;  TDateTime ValidFrom;  TDateTime ValidUntil;  UnicodeString FingerprintSHA1;  UnicodeString FingerprintSHA256;  AnsiString AsciiCert;  int Failures;};//---------------------------------------------------------------------------void NeonParseUrl(const UnicodeString & Url, ne_uri & uri);bool IsTlsUri(const ne_uri & uri);ne_session * CreateNeonSession(const ne_uri & uri);void InitNeonSession(ne_session * Session, TProxyMethod ProxyMethod, const UnicodeString & ProxyHost,  int ProxyPort, const UnicodeString & ProxyUsername, const UnicodeString & ProxyPassword, TTerminal * Terminal);void DestroyNeonSession(ne_session * Session);UnicodeString GetNeonError(ne_session * Session);void CheckNeonStatus(ne_session * Session, int NeonStatus,  const UnicodeString & HostName, const UnicodeString & CustomError = L"");UnicodeString GetNeonRedirectUrl(ne_session * Session);void CheckRedirectLoop(const UnicodeString & RedirectUrl, TStrings * AttemptedUrls);typedef void (__closure* TNeonTlsInit)(struct ssl_st * Ssl, ne_session * Session);void SetNeonTlsInit(ne_session * Session, TNeonTlsInit OnNeonTlsInit, TTerminal * Terminal);void InitNeonTls(  ne_session * Session, TNeonTlsInit OnNeonTlsInit, ne_ssl_verify_fn VerifyCallback, void * VerifyContext,  TTerminal * Terminal);AnsiString NeonExportCertificate(const ne_ssl_certificate * Certificate);bool NeonWindowsValidateCertificate(int & Failures, const AnsiString & AsciiCert, UnicodeString & Error);bool NeonWindowsValidateCertificateWithMessage(TNeonCertificateData & Data, UnicodeString & Message);UnicodeString NeonCertificateFailuresErrorStr(int Failures, const UnicodeString & HostName);void UpdateNeonDebugMask();void __fastcall RegisterForNeonDebug(TTerminal * Terminal);void __fastcall UnregisterFromNeonDebug(TTerminal * Terminal);void __fastcall NeonInitialize();void __fastcall NeonFinalize();void __fastcall RequireNeon(TTerminal * Terminal);void __fastcall RetrieveNeonCertificateData(  int Failures, const ne_ssl_certificate * Certificate, TNeonCertificateData & Data);UnicodeString __fastcall CertificateVerificationMessage(const TNeonCertificateData & Data);UnicodeString __fastcall CertificateSummary(const TNeonCertificateData & Data, const UnicodeString & HostName);struct TSessionInfo;UnicodeString __fastcall NeonTlsSessionInfo(  ne_session * Session, TSessionInfo & FSessionInfo, UnicodeString & TlsVersionStr);void SetupSsl(ssl_st * Ssl, TTlsVersion MinTlsVersion, TTlsVersion MaxTlsVersion);//---------------------------------------------------------------------------#endif
 |