Jump to content

Angus Robertson

Members
  • Content Count

    1881
  • Joined

  • Last visited

  • Days Won

    33

Everything posted by Angus Robertson

  1. Thanks, that was added recently to SVN and is not yet used due to the warning 'not working yet ' will fix it. Angus
  2. Which specific FTP command causes the floating point error? Are you using a version of ICS from the last year? There have been issues in the distant past calculating the speed of downloads when they take zero seconds, but that is the only calculation that takes place. Angus
  3. Angus Robertson

    Google Chrome is blocking the download of my application — HELP!!!

    As well as protecting the files from Google, it is good to see who is interested in my various components, mostly old since many are now incorporated into ICS. Always nice for open source authors to know people are interested in our components, usually people only email when something does not work, far fewer thank us for our work. People say Delphi is dying, but the number of people looking for (free) components suggests otherwise. Angus
  4. Angus Robertson

    Google Chrome is blocking the download of my application — HELP!!!

    There are various protection alternatives, with varying annoyance levels, important issue is that Google can not scan the files. I support the concept of scanning, but not the blundering way Google does it without any human intervention possible for false positives, although it may have got better since I was targetted. Angus
  5. Angus Robertson

    Google Chrome is blocking the download of my application — HELP!!!

    18 months ago Google decided a zip on my web site contained a nasty and placed the page on it's blacklist used by other browsers as well to stop the page being displayed, not quite the same blocking as you, but probably the same false detection. That page had about 30 zips, OpenSSL binaries, lots of Delphi source and a couple of EXE samples, Google never told me which file. The answer is to stop Google scanning your files so they can not find false nasties. robots.txt might work, but they can ignore that, my solution was to move all the files onto a password protected web page that Google can not access, and that has worked. It's a pain for users to request the password, but over 1,000 Delphi developers have done so already, hopefully not including anyone from Google. Angus
  6. Both those screen shots are raw headers from the server, with no processing by ICS, so you have to believe what the server says. The difference might be caused by the two minute gap between the two requests or responses from different caching servers. Angus
  7. Angus Robertson

    OpenSSL 1.1.1e Windows binaries available

    Updated OpenSSL Windows binaries to 1.1.1g, this fixes a severe security vulnerability (denial of service) checking certificates with TLS/1.3, however the API that does this is not used by ICS so our applications are not effected. https://www.openssl.org/news/secadv/20200421.txt Angus
  8. Angus Robertson

    Attempting to implement DTLS with PSK

    Your would simply add an extra line and condition in InitializeCtx after Meth := f_TLS_method; with Meth := f_DTLS_method; and set the versions later where TLS versions are set. But there are probably other changes needed, our code was never tested with DTLS, it is also asyc (no blocking) in operation whereas most other SSL implementations are blocking. Angus
  9. Angus Robertson

    JSON woes

    I integrated SuperObject into the ICS library two years ago since we support D7 to 10.3 with mostly the same code, I used v1.2 from https://github.com/hgourvest/superobject which is not the latest, later versions added time zone stuff which made it harder to stabilise and duplicated stuff we had already. With a few tweaks and new compiler version checks, it works fine on all those versions of Delphi. https://svn.overbyte.be/svn/ics/trunk/Source/OverbyteIcsSuperObject.pas Angus
  10. Angus Robertson

    Attempting to implement DTLS with PSK

    The point I was making is ICS already has functions to correctly initialise an SSL context which work, but you chose to do it yourself probably based on old OpenSSL code and not reflecting changes made in recent years. When OpenSSL functions fail, there is excellent error tracing available, which might help you narrow down what is failing. I would not worry about ciphers or callbacks until the basics of your application are working, you'll get OpenSSL errors telling you what is wrong. Angus
  11. Angus Robertson

    Attempting to implement DTLS with PSK

    If you are trying to add support for DTLS and PSK to ICS using existing code, I might be able to help, but not to write a totally new SSL implementation using APIs, ignoring all our tested high level code. I have no experience of DTLS or PSK. Angus
  12. Angus Robertson

    ICS FTP with TLS

    libeay32.dll and ssleay.dll were used by obsolete versions of OpenSSL, support ceased for those versions at the end of last year, so they have been removed from the ICS distribution. But we;'ll leave support for the old version in ICS itself for nine more months, until OpenSSL 3.0 is released and supported by ICS, which will be libss1-3_0.dll, etc. None of this relates to the PORT problem you reported. Angus
  13. Angus Robertson

    ICS FTP with TLS

    The only web page kept up to date with downloads is: http://wiki.overbyte.eu/wiki/index.php/ICS_Download Can not diagnose anything from a one line error, but this mostly happens when you are NAT routers with public and local IP addresses. You should be using Passive mode to avoid this if you using TLS then passive mode should be forced, so not sure what you doing without more of the log. Angus
  14. Angus Robertson

    Attempting to implement DTLS with PSK

    Beware when updating OverbyteIcsSSLEAY.pas and OverbyteIcsLIBEAY.pas they change when I'm adding new features to ICS, make sure you use the latest from SVN last week, there are minor changes not in SVN yet. We replicates macros as functions in OverbyteIcsLIBEAY which is where you should add any more you need, look at function f_BIO_get_ssl which calls f_BIO_ctrl, you need to add f_BIO_set_conn_hostname similarly, etc., Use of macros is horrible for those of us not using C++, even Google has turned them all into APIs in BoringSSL. The main problem is when OpenSSL convert macros back into APIs, this is never documented clearly so we keep using our macro function which then usually fails. Angus
  15. Angus Robertson

    ICS FTP with TLS

    You are probably using an old version of ICS, Samples\Delphi\SslInternet\OverbyteIcsXferTst.dpr was added about a year ago. OverbyteIcsFtpMultipartDownload is something totally different, no use to you. Angus
  16. Angus Robertson

    ICS FTP with TLS

    Build the OverbyteIcsXferTst.dpr sample which uses the OverbyteIcsFtpMulti, the sample has a simple menu with the various secure FTP options. Angus
  17. Angus Robertson

    THttpCli - retry request

    Where ever you check the 404 error send the windows message to start another GetAsync request. Or use sync methods when you can do a simple loop and break when it works, Get instead of GetAsync it all depends on how your application designed. Angus
  18. Have you actually tried the OverbyteIcsXferTst.dpr sample I mentioned last week yet? I think you are trying to complicate something that is almost working. Angus
  19. ICS FTP server and client support extra commands based on MLSD: XDMSLD takes an argument -subdirs for recursive directories, while XCMSLD is similar but returns directory listings on the control channel to avoid opening a data connection to download what is often only a few lines of directory listings. These commands make synchronising local and remote directory structures very efficient, which is what the ICS TIcsFtpMulti component does. I did think about writing an RFC back in 2008, but did not really expect any other FTP servers to implement the commands, even then FTP was going out of fashion. Angus
  20. Angus Robertson

    Use TSimpleWebSrv for localhost with certificate

    Using a self signed certificate for localhost is not going to be a very friendly OAuth2 user experience, since the browser will display certificate warnings, and not everyone can work out which buttons to click to display the real page. Does Visma have suggestions for that? To me sounds like someone thought SSL would sound good without actually testing it. Angus
  21. Angus Robertson

    Use TSimpleWebSrv for localhost with certificate

    Look at StartDomSrv in OverbyteIcsSslX509Certs.pas which sets up the simple web server with a newly generated localhost certificate, and CreateAcmeAlpnCert which will create a normal non-ALPN certificate if you leave KeyAuth blank, but that does not matter for your purposes. Which OAuth2 system requires HTTPS for the callback? Seems over the top since only your local browser displays the result. We should probably handle that in the REST component properly. Angus
  22. Most people consider FTP dead now, replaced by HTTP POST/PUT, and never bothered to update their 20 or 25 year servers with more efficient commands introduced since then. MLSD actually has an RFC somewhere, while the data returned by LIST is undocumented, and does not always have a year in the date, it was historically a Unix directory listing, thus only line feeds. FileZilla Server supports MLSD. Angus
  23. When you improve the logging in the server to show errors and events, similarly to the sample you copied code from,. you'll get some debugging information. See SslFtpServer1SslVerifyPeer, SslFtpServer1SslHandshakeDone, And also fix the logging bug that is adding this path, not coming from the clients, HOST C:\TEMP\[127.0.0.1] Angus
  24. I always test the ICS FTP server with the ICS OverbyteIcsXferTst sample, then you just click a single button to perform a complete FTP session, with proper logging. Angus
  25. What it should say is: 02:10:08 > AUTH TLS 02:10:08 < 234 Using authentication type TLS 02:10:08 Check for Old SSL Session 02:10:08 No Old SSL Session Cached 02:10:08 Starting SSL Session 02:10:08 Cache SSL Session: New 02:10:08 ! SSL Connected OK with TLSv1.2, cipher ECDHE-RSA-CHACHA20-POLY1305, key auth RSA, key exchange ECDH, encryption CHACHA20/POLY1305(256), message auth AEAD But that depends on how many other events you are logging, you cam see in the sample where all this comes from (although this log is from a real server). I suspect you are still testing with the OpenSSL client which to be honest is a waste of time, it does not understand the FTP protocol. With TCP, it is rarely obvious which end caused disconnection. Angus
×