ICS V8.65 has been released at: http://wiki.overbyte.eu/wiki/index.php/ICS_Download
ICS is a free internet component library for Delphi 7, 2006 to 2010, XE
to XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio and 10.4 Sydney,
and C++ Builder 2006 to XE3, 10.2 Tokyo, 10.3 Rio and 10.4 Sydney. ICS
supports VCL and FMX, Win32, Win64 and MacOS 32-bit targets.
The distribution zip includes the latest OpenSSL 1.1.1i win32, with
other versions of OpenSSL being available from the download page.
Major Changes in ICS V8.65 include:
1 - The ReadMe8.txt file has a new 'Getting Started with ICS' section
listing the types of projects ICS may be used for, and suggesting the
correct components to use, and their related sample applications for
testing. This is recommended reading for anyone doing new ICS
development since it discusses all the new high level components like
TSslHttpRest added in the last few years which can reduce development
effort considerably. It may also be viewed at: http://wiki.overbyte.eu/wiki/index.php/ICS_Getting_Started
2 - Added new TIcsRestEmail component that provides basic support for
Google and Microsoft Outlook email REST APIs including OAuth2 login and
refresh to get an access token for SMTP and POP3 XOAuth2 and 0AuthBearer
authentication. TIcsRestEmail has methods to send and read email, to
list IDs in a mailbox, read headers and message bodies by ID, send
emails and delete emails.
3 - The SMPT, POP3 and MailQueue samples all now support XOAuth2 and
0AuthBearer authentication using the TIcsRestEmail component. The low
level component call an event to get the authentication access token,
which is provided by IcsRestEmail, together with a refresh token which
is saved instead of a password.
4 - To access email using REST APIs or OAuth2/SMTP/POP3 an 'application
account' needs to be created though the Google or Microsoft provider
console.
5 - Added a new TIcsTwitter component and sample, requires a developer
account from Twitter. Includes login to Twitter, send tweet, search
tweets and get specific tweets, all responses are Json which the
application needs to untangle.
6 - Improved TRestParams allowing them to save more Delphi types
correctly without conversion to strings, and to save parameters in new
formats.
7 - There are various OAuth2 improvements to make it easier to
implement. Added several TOAuthUri records designed to set-up common
OAuth2 account settings for providers like Google, Twitter, Microsoft
and Sipgate, by using the LoadAuthUri method.
8 - TSimpleWebSrv continues to get less simple, it has aWebSrvIP2
property for a second address so it can listen on IPv4 and IPv6 at the
same time, with and without SSL if necessary. Setting WebSrvIP to
localhost sets both 127.0.0.1 and [::1] so the browser OAuth2 redirect
can choose IPv4 or IPv6.
9 - Made some improvements to SuperObject, used for Json creation and
parsing. When parsing Json there are new functions that return a
sensible error message about parse errors and the location. There is a
new object type DateTime or DT which reads or writes TDateTime to avoid
the application needing to do the ISO string conversion. Json can now be
parsed to a depth of 64 levels.
10 - Rewrote and improved the way ICS reads SSL/TLS certificates and
bundles, simplifying code that has got partly duplicated over the years
as new methods were added, and improving error handling so the infamous
stack error should no longer appear, instead more useful messages. All
certificate files are now written with the UTF8 character set for the
added comments that may include non-ASCII characters.
11 - All the ICS root bundles are now created cleanly by an
application, rather than mostly manually by copy and editing, to reduce
errors. This fixed four corrupted root certificates in the older
bundles, see http://wiki.overbyte.eu/wiki/index.php/FAQ_SSL/TLS_Certificate_Authority_Root_Stores
12 - Previously the Jose unit offered functions primarily for client
JWS/JWT REST applications, it now includes extra functions for REST
servers to check and verify the JWS/JWT sent by clients. The Jose
sample application has new tests for JWS/JWT, and to parse and display
Json.
13 - Added a new Multi Host FTP Server sample using IcsHosts. Really
designed to be a Windows service application. It supports multiple SSL
hosts with multiple listeners, can order it's own SSL certificates and
will create self signed certificates for any missing, and will email
status information and errors to an administrator.
14 - Fixed a long term external SSL session cache issue in some
components and samples that meant if an SSL handshake fails due to a bad
certificate or chain, it is necessary to remove the SSL session from
cache so an immediate retry does not succeed by skipping the certificate
checks. This is only a short term issue, because the cache is usually
cleared after a few minutes. This will effect any client applications
using the external SSL session cache including HTTPS.
15 - Increased the TCP send and receive buffer size to 64K in all
components and samples, and generally don't allow it to be set lower.
Unfortunately the default buffer size never kept up with faster internet
speeds which meant some components transferred data slowly.
16 - Made some improvements ordering SSL/TLS certificates. Made Windows
Server DNS updating using WMI more robust so wild card Acme orders work
reliably.
17 - Made some internal changes loading OpenSSL, to avoid the two DLLs
being loaded from different directories and to give better exceptions if
they are missing.
More detailed release notes are at: http://wiki.overbyte.eu/wiki/index.php/ICS_V8.65
To get help, use the forum: https://en.delphipraxis.net/forum/37-ics-internet-component-suite/