I have just now released TurboPower LockBox 3.6.0. This massive update was contributed by Nick Chevsky. The code repository has been migrated/forked to Google Code.
With 3.5.0 as the baseline, the 3.6.0 version delivers:
- Support for all compilers from Delphi 7 and up.
- Support for Win32, Win64, Android, iOS, and OS X.
- A new include, TPLB3.Common.Inc, is included from all source files and defines conditionals used throughout the code base.
- Renamed uTPLb_D7Compatibility.pas to TPLB3.Compatibility.pas and added code needed by other compilers.
- Replaced legacy and platform-specific types (e.g. AnsiString, UTF8String, DWORD, etc.) with cross-platform types required by the next-generation mobile compilers.
- Implemented TStringHelper for platform-agnostic string manipulation, which resolves differences between 1-based strings in the legacy compilers and 0-based strings in the next-generation compilers.
- Functions that operate on strings now accept an Encoding parameter. I’ve kept this optional for backwards compatibility, but it should be made mandatory at some point in the future.
- Marked the following as deprecated in favor of new encoding-agnostic functions: TCodec.EncryptAnsistring, TCodec.DecryptAnsistring, TCodec.EncryptUtf8string, TCodec.DecryptUtf8string, THash.Hashutf8string, TStreamUtils.Stream_to_utf8string, TStreamUtils.utf8string_to_stream.
- Removed the ComponentPlatformsAttribute declaration from components (all except TOpenSSL), since they now work on all platforms.
- Added non-assembler fallback Pascal code to TRandom for use on mobile platforms.
- TNoncibleDecryptor now supports the OnSetIV event, like its encryptor counterpart
.
Get the source here ….
https://tplockbox.googlecode.com/svn/trunk
Nick has done an excellent job of future proofing the code and engineering support for the mobile targets.