Updating projects to V9.1

From Overbyte
Jump to navigation Jump to search
  1. Several new units have been added to ICS V9.1, mostly now containing classes and functions that were previously in other units. Classes like TSslContext that are often dropped on forms will have one or more of these new units added automatically when the form is opened in the IDE. Units that reference class likeTX509Base or TX509List in events only, such as OnSslHandshakeDone, may need OverbyteIcsSslBase adding manually.
    1. OverbyteIcsDnsHttps.pas
    2. OverbyteIcsHtmlUtils.pas
    3. OverbyteIcsSslBase.pas
    4. OverbyteIcsSslUtils.pas
    5. Ics.Fmx.OverbyteIcsDnsHttps.pas
    6. Ics.Fmx.OverbyteIcsSslBase.pas
    7. Ics.Fmx.OverbyteIcsSslUtils.pas
  2. Following is a list of the main classes and functions now in new or different units, so check here when the compiler complains it can not find a component for your application:
    1. TX509Base from OverbyteIcsWSocket to OverbyteIcsSslBase
    2. TSslBaseComponent from WSocket to OverbyteIcsSslBase
    3. TX509List from WSocket to OverbyteIcsSslBase
    4. TSslContext from OverbyteIcsWSocket to OverbyteIcsSslBase
    5. TOcspHttp from OverbyteIcsSslHttpRest to OverbyteIcsSslUtils
    6. TDnsQueryHttp from OverbyteIcsSslHttpRest to OverbyteIcsDnsHttps
    7. TIcsDomNameCacheHttps from OverbyteIcsSslHttpRest to OverbyteIcsDnsHttps
    8. TextToHtmlText from OverbyteIcsFormDataDecoder to OverbyteIcsHtmlUtils
    9. IcsHtmlValuesToUnicode from OverbyteIcsFormDataDecoder to OverbyteIcsHtmlUtils
    10. IcsFindHtmlCharset from OverbyteIcsCharsetUtils to OverbyteIcsHtmlUtils
    11. IcsFindHtmlCodepage from OverbyteIcsCharsetUtils to OverbyteIcsHtmlUtils
    12. IcsContentCodepage from OverbyteIcsCharsetUtils to OverbyteIcsHtmlUtils
    13. IcsHtmlToStr from OverbyteIcsCharsetUtils to OverbyteIcsHtmlUtils
    14. IcsExtractURLEncodedValue from OverbyteIcsSslHttpRest to OverbyteIcsUrl
    15. GetCookieValue from OverbyteIcsHttpSrv to OverbyteIcsUrl
    16. ExtractURLEncodedParamList from OverbyteIcsHttpSrv to OverbyteIcsUrl
  3. All ICS SSL/TLS projects have a new shared IcsSslRootCAStore component created at application start-up, to avoid different components needing their own CA stores to verify SSL/TLS certificates, and for applications to load those stores. When updating projects using a TSslContext component, setting the new property UseSharedCAStore to True causes the properties CAFile, CALines and CAPath to be ignored, and the new IcsSslRootCAStore component will be used instead, being automatically initialised if not done at program start-up. Don't use UseSharedCAStore for server components. High level ICS components such as TSslHttpRest that have an internal TSslContext component all set UseSharedCAStore and ignore properties like SslRootFile to load a root CA bundle. If a specific bundle is required it may be loaded to IcsSslRootCAStore.
  4. There are several new defines in the OverbyteIcsDefs.inc file to determine how OpenSSL is loaded. If you retain your original .inc file, application behaviour should be unchanged, but the new .inc file in the distribution has new defaults for loading OpenSSL as detailing in the release notes and readme9.txt, please read very carefully. Essentially, OpenSSL will now be linked into applications and loaded at startup by the IcsSslRootCAStore component, so any code to load OpenSSL will be ignored. The global variables GSSLEAY_DLL_IgnoreNew and GSSLEAY_DLL_IgnoreOld are ignored since only different minor versions of OpenSSL 3 are supported.