Changed the functionality of unregistering a web services application ID so that it no longer revokes the internal API key associated with it. This allows the ID assigned by the developer to be reused at a later time. Although the AppID can be reused, the key that is associated with that ID will change, and all objects previously created using that ID will be orphaned and expunged from storage.
Corrected a problem that could prevent the SocketTools .NET 2.0 and 3.5 assemblies from loading on the 64-bit Windows XP platform.
Relaxed MIME address validation to accept email addresses that included whitespace between angle-brackets within an address string. These addresses can be parsed as long as the remaining components of the address are valid.
Added functions to the Library Edition that enable an application to enumerate the application IDs that have been allocated for the account. See the WebGetFirstApplication and WebGetNextApplication functions.
Updated the function declarations for C# and Visual Basic .NET to use the Unicode versions of functions, and corrected structure members to use UnmanagedType.LPTStr instead of UnmanagedType.LPWStr, which should only be used with COM interfaces.
Updated the function declarations for PowerBASIC to correct several cases where parameters were incorrectly declared as BYVAL instead of BYREF. Padding for certain structure members was added to address specific alignment issues.
Corrected an issue where some web services functions that should return a Boolean result would return a value of -1 if an error occurred. This would result in an operation appearing to succeed when it actually failed.
Relaxed installation requirements to allow for valid email addresses that would otherwise be rejected. It is still required for developers to register their SocketTools license using an individual email address, and not a generic corporate-wide email address.
Minor improvements and updates to the documentation.
A new private cloud storage component which enables applications to store and manage data remotely, without having to use public third-party providers or subscribe to another service. You can store configuration files or other data to the SocketTools storage service and then access that from within your application from any location. The data is stored securely, and all connections to the server use TLS 1.2 and AES 256-bit encryption. Because there are no public endpoints to the data that you store, it’s not possible for another application to access your data using external links. The data you store is associated with your development license and can only be accessed by your software. [.NET Edition] [ActiveX Edition] [Library Edition]
A new geographical IP location component which enables your application to obtain specific information about the physical location of the computer system your software is running on. This component uses the external IP address of the local computer to determine its location and will return general information such as the country, city name and what service provider they are using. It can also return more specific location information such as longitude, latitude and GPS coordinates. [.NET Edition] [ActiveX Edition] [Library Edition]
New general-purpose encryption functionality that enables you to encrypt and decrypt data files or blocks of memory using AES 256-bit encryption and a SHA-256 hashed password to generate the encryption and decryption key. This can be combined with the storage service to encrypt the data that your application stores. There is also the ability to generate encrypted strings which are base64 encoded and safe to store as text. [.NET Edition] [ActiveX Edition] [Library Edition]
Added support for TLS 1.3. When Microsoft makes it generally available for Windows 10 and Windows Server 2019, SocketTools will support the latest version of TLS. Because SocketTools uses Microsoft’s CryptoAPI and Schannel provider, TLS 1.3 support will only work on those versions of Windows which are updated to use this version of the protocol. Currently, TLS 1.2 remains the default version used to establish secure connections. Earlier versions of TLS have been deprecated, but your applications can still use them if you need to connect to legacy servers which have not been updated.
Updated for the latest changes in Windows 10 Build 1903 and Windows Server 2019. Examples have been included for the current release of Visual Studio 2019 and the .NET Framework 4.8. SocketTools 10 continues to provide backwards compatibility for Windows XP SP3 and Windows Server 2003, however certain functionality has been deprecated, particularly in terms of secure connections. Those legacy platforms only support TLS 1.0 and applications running on them will be unable to establish secure connections to most modern services. Secure connections using TLS 1.2 require Windows 7 SP1 or Windows Server 2008 R2 or later.
Improved support for the use of TLS client certificates in combination with TLS 1.2 session renegotiation. Client certificates are typically used to authenticate the session, and this change supports servers which periodically attempt to renegotiate the cryptographic parameters throughout the client session.
Improved internal performance for HTTP and HTTPS connections, particularly when the client is making many repeated requests for relatively small amounts of data.
Added options to make it easier to handle error responses when requesting a resource or submitting data to a web server. When submitting XML or JSON formatted requests, you can request that any error messages be returned to your application on an individual basis, rather than the function or method always returning an error.
Improved general support for Unicode and the use of internationalized domain names. SocketTools will automatically convert domain names which contain Unicode characters to Punycode encoding. Several helper functions were added to the API to assist with conversion to UTF-8 encoding.
Improved support for the NNTP protocol to allow for article IDs that exceed the maximum value of a signed 32-bit integer. Extended functions allow for the use of unsigned 64-bit integers as article numbers.
Added support for generating base64 encoded HMAC message digests using SHA-256, SHA-384 and SHA-512. This can be useful for services which require the use of these digests.
Improved performance for the FTP and HTTP server components working over local intranets using shared folders that are not mapped to drives on the host system.
Numerous updates and corrections to issues reported with SocketTools 9 have been included with SocketTools 10, providing a cumulative update to those issues reported with the previous version.