TMS Cryptography Pack

Software library that provides various algorithms used to encrypt, sign and hash data

Version History



  • Improved: Installer improvements


  • Fixed: Compiler warning for target attributes in RAD Studio 11


  • Fixed: Issue with package content for older Delphi versions


  • Fixed: Issue with IDE version reporting for RAD Studio 11


  • Fixed: Issue with installer for cross platform support in RAD Studio 11


  • Fixed: Support for Delphi 11 and C Builder 11 added


  • : Fixed: issue in PAdES with Unicode characters in certificate fields
  • : Fixed: issue in CAdES verification for enveloping signature
  • : Fixed: components available on all platforms
  • New: useDeprecatedSalt property in TArgon2KeyDerivation to use deprecated SetStringSalt method


  • Fixed: compilation issue in Android 32 bits


  • : Fixed: issue in PAdES to sign a document with particular format
  • Fixed: issue in date in generation of self-signed certificates


  • : Fixed: Compilation issue on Linux platform
  • Fixed: Issue in TAdes.Destroy


  • : Fixed: SPECK issue with incorrect decrypted string on Windows platform
  • Fixed: compilation issue of RSAObj.pas on OSX platform


  • New : TLSH component an algorithm to compare files based on the similarity of their hashes
  • Fixed : compilation issues on Linux platform
  • : Fixed: memory leak issue in TX509Certificate
  • : Fixed: SPECK issue with incorrect decrypted string


  • : Improved: More explicit error messages when certificate signature algorithm is not supported
  • : Fixed: bugs in certificate parsing in XAdESObj, PAdESObj and CadesObj units
  • Fixed: bug in TConvert.FormatToChar method


  • : Fixed: issue in unicode support in TArgon2KeyDerivation.SetStringSalt method
  • : Fixed: issue in setting public exponent in TRSAEncSign.FromPublicKey method
  • Fixed: issue in TAdES.Destroy method


  • : Fixed: issue in unicode support in RSA
  • : Fixed: issue in base64 decoding
  • New: FromPublicKey method to import RSA public key with PEM format


  • Fixed: Issue in TConvert.FormatToChar method


  • Fixed: Issue in Unicode support in RSA and ECC


  • Fixed: Regression for AES encryption in base64


  • Fixed: Issue on TAESEncryption.Decrypt


  • Fixed: issue in TX509Obj.RSAExtractPrivateKey method


  • New : Import public key from PEM public key in TECCEncSign component
  • : Fixed: Issues in CSR generation and signing


  • : Fixed: Bugs in demos
  • : Fixed: Bug in unicode string support in HKDF
  • New: Unicode support for certificate generation and parsing


  • New : Support for Dephi 10.4 Sydney and C Builder 10.4 Sydney added


  • Fixed : Issue in SHA-3 HMAC raising exception
  • New: TAESEncryption decryption method to return an error code if it fails


  • New : Methods in TRSAEncSign to import keys from string
  • Fixed : Bug in TArgon2KeyDerivation


  • New : Signature algorithm on elliptic curve ed448


  • New : Methods to import keys in TRSAEncSign and TECCEncSign from certificate and private key file or string
  • New : ECryptoPack exception in all TMS Cryptography Pack functions
  • Fixed : Bug in PKCS11Obj


  • New : boolean UseOldGCM for backward compatibility in TAESGCM class
  • Fixed : 32-bit DLL can be used on 64-bit platform (and vice versa) in TPKCS11 class


  • Fixed : Issue with Argon2 GenerateKey function for macOS64


  • New : Support for Android64 in Delphi 10.3.3 Rio


  • Fixed : Issues in ECC and RSA for Android platform


  • Improved : Documentation
  • Fixed : Issues in RSA-PSS
  • Fixed : Issues in PKCS11 class


  • Fixed : Bugs in stream encryption for MacOS 64 bits platform


  • Fixed : Issue with installer for macOSX64 support


  • New : pssSaltLen property to set the length of the salt in RSA PSS
  • New : XAdES CAdES and PAdES signature with token
  • New : PKCS#11 token support (Windows ONLY) with new TPKCS11 component
  • New : OSX64 platform support
  • New : Method to change the signature location in XAdES
  • Fixed : Interoperability for ECC key generation
  • Fixed : Interoperability for AES GCM
  • Fixed : Delete an example in Demo VCL
  • Fixed : Bugs in XML unicode characters parsing
  • Fixed : Bugs in ECDH


  • New : base64 base64url and base32 formats accept strings without = complement
  • New : Multiple signature of PDFs with PAdES
  • Fixed : Bugs in conversion functions
  • Fixed : Bugs in XAdES


  • Fixed : issues in TX509Certificate and TX509CSR handling
  • Fixed : Issues in TX509Certificate and TX509CSR handling


  • New : HKDF algorithm key derivation function based on HMAC
  • Fixed : issues in TX509Certificate and TX509CSR handling
  • Fixed : bug in ECDH
  • : Fixed: bug in ECDH
  • New: HKDF algorithm, key derivation function based on HMAC


  • Fixed : Issue with ECC key generation under Linux


  • Fixed : Issue with RSA key generation


  • : Improved: RSA key generation speed
  • : Fixed: bugs in TX509CSR
  • New: ECDH algorithm for P-256, P-384, P-521 curves in TECCEncSign class


  • : Fixed: bugs in CAdES
  • : Fixed: Compilation of X509Obj.pas on Linux
  • Fixed: Ensure backward compatibility of TEncryptedIniFile with version < 2.5.1 by adding a new constructor


  • : Fixed: Issue in MiscObj.pas


  • Fixed : Removed iOS simulator support


  • New : TX509CSR component to generate and decode Certificate Signing Request
  • New : SignCSR method in TX509Certificate class to sign Certificate Signing Request
  • New : Conditional compilation options are in


  • : Fixed: Issue with RSA decryption output


  • : Fixed: bug in TX509Certificate.LoadCertAndKeyFromPKCS12
  • : New: KeyStr property in TX509Certificate to use the private key in string format


  • : Fixed: bug in PAdES


  • New : Generation of PDF signatures from stream in PAdES
  • : Fixed: bug in FormatToString method on Linux platform


  • : Fixed: bugs in Ed25519 on Linux platform
  • : Fixed: bugs in PAdES


  • : Fixed: bugs in PDF parser for PAdES
  • : New: another RSA key generator with additional outputs for interoperability with other libraries


  • Fixed : Issue with PAdES
  • Fixed : Issue in Unicode conversion


  • Fixed : Issue in TSHA3Hash.HashStream for streams with length > 10000.


  • Fixed : Two issues with use of cryptography functions on Linux


  • Fixed : Issue with using cryptography functions on iOS


  • New : Support for Delphi 10.3 Rio and C Builder 10.3 Rio added


  • Fixed : Issue in PAdES CAdES signature calculation


  • New : TLockFile component to generate an executable able to self-decrypt itself
  • New : Property CrtStr to import directly the certificate string in TX509Certificate class
  • New : Methods to import and export a certificate to a PFX file in TX509Certificate class (using OpenSSL Windows command line)
  • Improved : Minor changes in TX509Certificate for more consistency
  • Fixed : Bug in AdES signatures with ECDSA algorithm


  • Fixed : Issue with GenerateSelfSigned in X509


  • New : PAdES (PDF Advanced Electronic Signatures)
  • New : New: CAdES (CMS Advanced Electronic Signatures)
  • New : Enveloped XAdES (XML Advanced Electronic Signatures)
  • Fixed : Bug fixed in StringToBufferA


  • : Fixed: Issue with overflow in TConvert.FormatToChar function on mobile devices


  • : Fixed: Issues with converting functions


  • : New: Hash algorithm SHA-384
  • : New: Generation of random string in TConvert class
  • : New: Generation of certificates with RSA SHA-384, RSA SHA-512, ECDSA SHA-256, ECDSA SHA-384 and ECDSA SHA-512
  • : New: Generation and verification of XAdES-BES signatures with detached and enveloping format
  • : New: Decoding of certificates with RSA SHA-1, RSA SHA-384, RSA SHA-512, ECDSA SHA-256, ECDSA SHA-384 and ECDSA SHA-512
  • : Fixed: Bugs related to unicode conversion in TConvert methods
  • : New: NIST elliptic curves p-256, p-384 and p-521 for ECDSA


  • Fixed : Output path issue in package for Android target


  • Fixed : bug in RSA padding schemes


  • Fixed : TNotifyEvent initialisation bug fixed.


  • Improved : Faster RSA
  • Fixed : minor bugs in RSA OAEP and PSS
  • : New: progress variables in AES, SPECK, Salsa, SHA2, SHA3, Blake2 and RIPEMD algorithms for file encryption/decryption/hashing
  • : New: X509 certificate generation and parsing (parsing only on mobile platforms)
  • : New: On RAD Studio version 10.2.1 and up, possibility to use the components without Random DLL on Win64 platforms


  • New : With RSA and EdDSA we can sign and verify a signature of a file
  • New : Import of an RSA public key/key pair from an OpenSSL file
  • Fixed : bugs fixed in stream processes for large stream sizes.


  • New : Introduction of TComponent derived classes to have components on the tool palette
  • New : A hash function is used to hash a message before signing in the RSA signature


  • Improved : Optimization of some functions in MiscObj.pas
  • Fixed : Bugs fixed in constructors and destructors


  • New : Destructors in all encryption classes to set to zero the sensitive data
  • New : Conversion functions from TBytes to String and vice-versa
  • Fixed : Overflow fixed in Argon2
  • Fixed : Issue in constructor of TEncryptedIniFile


  • New : PBKDF2 SHA2 256 and SHA3
  • New : HMAC for SHA3
  • Fixed : Bug fixed in PBKDF2 SHA2 512


  • Fixed : Bug fixed in the paths from the .pas files to the .obj files
  • Fixed : Bug fixed in AES and SPECK stream encryption/decryption when using strings containing a zero


  • New : Stream hashing functions for SHA2, SHA3, Blake2b, RIPEMD-160
  • New : Stream encryption/decryption functions for AES, SPECK, Salsa
  • New : SHA3 derived functions: cSHAKE, KMAC and TupleHash
  • New : File encryption/decryption/hashing functions support now Unicode characters into file name.
  • New : File encryption/decryption functions for Salsa
  • New : Class constructor overloads that allow to set all parameters in all classes.
  • Fixed : Bugs fixed in conversion functions


  • New : Raw format in TConvert class
  • New : NaCl property in ECC class to have interoperable functions with NaCl software library
  • New : All crypto functions with buffer input support unicode in this buffer


  • New : TMSEncryptIniFile class added for VCL
  • New : Base32 converter added
  • Improved : More flexibility in CTR mode of AES
  • Fixed : Bugs and memory leaks fixed in AES and TConvert Class


  • New : Section in documentation on how to use the random generators properly
  • New : Base64url encoder and decoder added in TConvert class
  • Fixed : Issue in random generator for Android, iOS and MacOS targets


  • New : Support of iOS (iOS32, iOS64)
  • New : Properties added in AES and SPECK to give choice of IV and padding to user


  • New : Base58 encoder and decoder added in TConvert class
  • Fixed : Issue in TConvert class
  • Fixed : Issue in TAESEncryption


  • New : RIPEMD-160, a hashing function used in Bitcoin
  • New : Demo for C++
  • New : Blake2, a fast hashing function
  • New : Argon2, a key derivation function, winner of the Password Hashing Competition


  • New : 2 new functions in Converter class: to convert an RSA key in OpenSSL format to an RSA key that can be used in TRSAEncSign class and vice versa
  • Improved : Optimization of AES, SPECK, SHA3 and SHA2, especially to the functions dealing with files.
  • Fixed : Issue with Android support


  • Fixed : Issue in VCL demo with older Delphi versions


  • New : Support for OSX target (from Delphi XE7 or newer)


  • New : Support for Win64 (VCL/FMX) and Win32(VCL/FMX)
  • New : Support for Android
  • New : Overloaded AES, SPECK EncryptFile/DecryptFile methods to specify output path
  • New : HMAC-SHA2 method added into SHA2 class
  • New : Converter class to convert from raw format to hexadecimal format or base64 format and vice versa

Buy now

TMS Cryptography Pack

Single developer license

license for 1 developer
€ 35 yearly renewal *
€ 105

order now
add to cart

Site license

unlimited developers in the company
€ 135 yearly renewal *
€ 435

order now
add to cart

CreditCards and PayPal Accepted


    Delphi XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria, C++Builder XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney, 11 Alexandria (Professional/Enterprise/Architect)


  • Licensing FAQ
  • License for commercial use: Single developer license, Site license
  • Ask questions to our engineers related to purchased product via Support Center
  • Free 1 year updates and new releases
  • After 1 year, a discount renewal is offered for a 1 year extension. *
    * offer valid for 30 days after end of license. Discount price is subject to change.

Included In