Internet ToolKit for 4D

 

Internet ToolKit for 4D



License numbers

ITKv2.5 uses new license numbers.

This version requires ITKv2.5 license numbers and doesn't accept ITKv2 or ITKv1 license numbers. To get your ITKv2.5 license number, please contact one of the ITK distributors.

 

ITK Light and 68K limitations

ITK Light doesn't contain cryptography code nor SSL code.

68K versions (Light and Pro) do not contain SSL code.

 

SSL in ITKv2.5 :

1) Minimal code modification required

See the "What's New" info for more details.

If you're acting as a server, you must call ITK_SSLSetCert to specify the certificate and private key (see below).

2) Certificates are mandatory when acting as an "SSL server"

You MUST have a certificate in order to act as an SSL "server". You don't need to have a certificate to act as an "SSL client".

More details on certificates.

Some more details...

ITK's SSL implementation comes from the OpenSSL library used also by Apache and 4D 6.7. ITK's SSL implementation support 40 and 128bits encryption levels (as well as 168 bits, using TripleDES).

Tests have been done with several browsers:

  • Netscape 2, 3, 4, 4.7
  • Internet Explorer 4, 4.5, 5.0
  • Opera 3.6, 4 (beta)

ITK's SSL implementation is only be supported under Windows and PowerPC, there is no plan to support a 68K version.

 

Change history in beta versions:

2.5.1 Beta 4 Release - 31/Jan/2002
  • ITK_TCPRecv : better 4D multi-process handling (IDLE 4D is called onyl when ITK_TCPRecv loops).
  • ITK_BlobRead/ITK_PictRead : added a test on memory allocation for the read blob or pict in case of large files. ITK could corrupt memory in some cases (large blobs or picts).
  • ITK_TCPUnrcv under Windows when using SSL streams was corrupting SSL decryption. This is fixed.
  • One more fix for JPEG pictures. Some JPEG files contain 2 JPEG data block (one main and one as a preview stored as a comment). ITK_TCPSendPict, ITK_PictSize, ITK_PictSave have been changed to handle this case.

    A second MacOS X "Carbon Preview" version is included for testing purposes only. Some features are still missing in this version (UDP and DNS routines).

2.5.1 Beta 3 Release - 30/Nov/2001 - First version to support Carbon

  • ITK_Bin2Mac could not decode files with a fork larger than 16MB (error code 3 was returned). This is fixed.
  • ITK_RFC2Secs was not converting some 2 digits years correctly. This is fixed.
  • ITK_TCPInfos was not returning ITK's last version number under ITK Light.
  • ITK_TCPSendBlob could not send a one byte blob (or a one byte portion of a blob). This is fixed. Starting and ending offsets are now also checked, if bad, they could cause ITK_TCPSendBlob to hang.
  • ITK_TCPSendPict, ITK_PictSize, ITK_PictSave were having problems with some JPEG pictures, this is fixed.
  • Internal changes for Carbon compatibility in the MacOS version.
  • Some updates in ITKv2.5 Programmer's Guide...

    A MacOS X "Carbon Preview" version is included for testing purposes only. Some features are missing in this version (UDP and DNS routines). It has been tested with 4D 6.7.6a2 under MacOS X v10.1. Please reports bugs directly to support@internet-toolkit.com

2.5.1 Beta 2 Release - 16/Aug/2001 - License Checking Bug

  • License checking bug fix in the Windows version: ITK was not detecting correctly compiled apps under Windows. This was causing compiled apps to switch to the demo mode after the development license expiration date. This is fixed. Be sure to upgrade previous installed version of ITK !
  • SSL client part was not connecting anymore because of change in the last beta version regarding SSL negociation. This is fixed.
  • Some updates in ITKv2.5 Programmer's Guide...

2.5.1 Beta 1 Release - 18/Jul/2001

  • ITK_BlobGzip could had problems compressing very small blobs.
  • ITK_PictSize, ITK_PictSave & ITK_TCPSendPict under Windows were not extracting JPEG data correctly in some cases.
  • ITK_SSLStrmInfo now returns -3 if the stream is not connected (status # 8)
  • ITK_uu2Text could not decode multiple lines uuencoded data correctly (resuul data was truncated).
  • Under MacOS, when using SSL, ITK_TCPClose could take a very long time to execute and no more SSL connection could be accepted in some circumpstances (like when the browser was IE 5.5 under Win2000).
  • SSL negociation was not handled asynchronously which could cause ITK to halt on calls like ITK_TCPStatus.
  • SSLv2 negociation could fail.
  • Added MD4 digests calculations.
  • Some updates in ITKv2.5 Programmer's Guide...

2.5 Beta 10 Release

  • SSL streams created using ITK_TCPListen could accept connection before a valid certificate was set for them using ITK_SSLSetCert. Now ITK waits for a valid certificate to be attached to a stream before accepting incoming connections on it. This bug has been reported only in the windows version of ITK, but could also happen in the MacOS version.
  • ITK_TCPRelease now returns a error -2 when another process is currently using the stream is some blocking call (like all ITK_TCPRcvXXX routines with timeouts).
  • The Windows version of ITK_MakeCSR now generates CRLF line ended files instead of LF line ends.
  • Some more updates in ITKv2.5 Programmer's Guide draft...

2.5 Beta 9 Release

  • Very important fix on ITK_TCPChRcv routine.
    ITK_TCPChRcv could return 0 on SSL streams even when some data were available (SSL input buffer problem). This could lock completely ITK in some cases as ITK_TCPChRcv is also called internally by all ITK receiving routines.
  • Added new selectors in ITK_TCPStatus to allow to get the number of "raw" bytes transmitted on SSL streams. Selectors for bytesRcvd and bytesSent now return the number on unencrypted data at the SSL level (they were previously returning the number of "raw" bytes transmitted at the TCP level).
  • Optimization on SSL streams: the SSL layer now read data in advance to reduce calls to the TCP layer receiving routine.
  • Licence numbers checking fixed for ITKv2 "timebombed" license numbers. ITK now also allow to pass a "Pro" and an SSL deployment license number (see Programmer's Guide for details).
  • Some more updates in ITKv2.5 Programmer's Guide draft...

2.5 Beta 8 Release

  • Fix on ITK_SSLSetCert routine.
  • Some more updates in ITKv2.5 Programmer's Guide draft...
  • Fix on ITK_EncryptText / ITK_DecryptText routines (there were incorrectly named).
  • Light version in now available. This version does include SSL and cryptography code but weights less than 400KB instead of more then 1MB for the full version of ITK.
  • ITKv2.5 licence numbers implemented.
  • Fix in the ITK_makecsr.cnf which could be modified by Stuffit Expander upon decompression and could cause ITK_MakrCSR not to function properly.

2.5 Beta 7 Release

  • Some updates in ITKv2.5 Programmer's Guide draft...
  • Fixes in SSL code under Windows.
  • Windows certificates (CRLF end of lines) are now usable by the MacOS version (CR only end of line), but not the reverse.
  • Under Windows: All ITK file related routines (ITK_TCPRecvFile, ITK_TCPSendFile, etc) were not converting pathnames to Windows charset, now they do it automatically.
  • 68K support added, but SSL is not available in 68K.

2.5 Beta 6 Release

  • Another bug fix in all "receiving" routines in SSL mode.
  • A bunch of new commands added (see "What's new in ITKv2.5 ?")
  • Added ITKv2.5 Programmer's Guide draft...
  • New version of ITK_MakeCSR that asks if the private key should be password protected or not.

2.5 Seed 5 Release

  • Bug fix in all "receiving" routines in SSL mode. Performances when receiving data in SSL have also been improved.
  • ITK's output buffer is now also available in SSL mode (it wasn't in previous versions).

2.5 Seed 4 Release

  • Change in ITK_SSLSetCert to be compatible with password based (PBE) encrypted private keys.
  • ITK_MakeCSR now use the same configuration file on MacOS and Windows (ITK_MakeCSR.cnf)
  • Added a version for pre v6 versions of 4D

2.5 Seed 3 Release

  • Added ITK_SSLSetCert
  • ITK_MakeCSR now allows to encrypt a private key (using TripleDES)

2.5 Seed 2 Release

  • First version released to beta testers.
 

Last update: 8-Mar-2002 by CQ