What's New

11/20/2022 A New Section Added to User Manual Dedicated to AES Compatibility

We have recently received multiple support questions regarding compatibility between .NET's implementation of the AES cipher and that of AspEncrypt. In response to these inquiries, we have added a new section to Chapter 10 of the user manual dedicated to AES.

06/22/2020 Service Release Available

The service release incorporates a small but important improvement in the OpenStoreFromPFX method of the CryptoManager object. In previous versions, to use OpenStoreFromPFX, a call to CM.LogonUser was needed to avoid an error. As of the new version, it is no longer necessary. OpenStoreFromPFX is widely used to open a certificate containing a private key from a .pfx (.p12) file for digital signing when AspEncrypt is used stand-alone or in conjunction with AspEmail (to send signed and DKIM-enabled email) and AspPDF (to digitally sign PDF documents).

04/11/2018 Service Release Available

The service release contains an enhancement in the private method VerifySignatureFileParts which is called internally by AspPDF's VerifySignature method. The enhancement allows SHA256-based signatures to be verified. Previous versions only allowed SHA and MD5-based signatures to be verified.

01/05/2018 Version 2.10 Released

The new version incorporates an important bug fix and adds two new properties to the CryptoCert object.

  • When encrypting a file with a size divisible by 160,000, AspEncrypt would throw the error

    More data is available.

    when using an AES key. This bug has now been fixed. Other ciphers are not affected by the bug. 160,000 is the length of an internal buffer used by AspEncrypt.

  • The CryptoCert object now has two new read-only properties: IssuerAltName and SubjectAltName.

06/26/2016 New Manual Chapter on .NET Compatibility Added

In response to our clients' numerous support questions, we have added a new chapter to our user manual dedicated to the cipher key compatibility between AspEncrypt and the Microsoft .NET framework. Both AspEncrypt and .NET use standard ciphers, but mismatching keys may wreak havoc in an otherwise perfectly coded cryptography-based application.

Chapter 10: Microsoft .NET and AspEncrypt Compatibility covers the GenerateKeyFromPassword and ImportRawKey methods and their .NET equivalents in various scenarios, UTF8 vs. Unicode character encoding, and also legacy-related issues, such as using the MD5 hash with 3DES cipher, and 40-bit RC2 keys.

05/25/2015 AspEncrypt 2.9 Released

Version 2.9 contains an enhancement which makes it possible to perform secure client-side signing of server-side data. The data being signed never has to leave the server while the private key performing the signing never has to leave the user's workstation.

The new CryptoMessage.SignHash method generates a PKCS#7 signature based solely on the SHA hash value of the data being signed. The data itself does not need to be present. Also, the CryptoHash.Value property, which used to be read-only, is not read/write.

While these new features can be used to sign any server-side data, they were specifically added to facilitate the client-side signing of PDF files by the AspPDF and AspPDF.NET components.

For more information, see Subsection 9.4.3 - Client-Side Signing of Server-Side Data.

09/19/2012 AspEncrypt 2.7 Released

The new version adds a new property to the CryptoCert object: PublicKeyInfo. This property returns the underlying certificate's public key information in a format compatible with various cryptographic standards such as DomainKeys Identified Mail (DKIM), Privacy Enhanced Mail (PEM), and others.

10/31/2011 Service Release Available

The service pack adds support for the PPKLite digital signature format used in PDF documents. Use this service release with Persits Software AspPDF to create and verify PPKLite signatures in PDF documents.

04/20/2011 Service Release Available

The service pack increases a buffer size to improve performance when encrypting or decrypting large files.

03/25/2011 Service Release Available

  • The release fixes a bug in the CryptoBlob.Base64 property responsible for generating a random last character in the Base64 encoding when the length of the binary data being encoded is not divisible by 3.
  • The release also fixes a bug in the CryptoKey.DeriveFromPassword method introduced in a previous release by mistake.

04/20/2011 AspEncrypt 2.6 Released

Version 2.6 offers the following new features:
  • Support for the Hash-based Message Authentication Code (HMAC) function has been added via the new CryptoContext method ComputeHmac. For more information, see the section 3.5 Hash-based Message Authentication Code (HMAC).
  • The CryptoContext methods EncryptText and EncryptBinary have been enhanced to allow public-key encryption. The older versions of these methods could only perform symmetric encryption. For more information, see the section 9.5 Public-key Encryption without Certificates.
  • Public keys in PEM format can now be imported into the CryptoKey object via the new CryptoContext method ImportPublicKey. For more information, see the section 9.5.2 Importing Public Keys in PEM Format.
  • A new method Append and new property Length have been added to the CryptoBlob object.

11/03/2010 Service Release Available

The release fixes a bug in the CryptoKey.RawBits property responsible for improperly and prematurely releasing the current context handle and causing run-time errors.

11/03/2010 AspEncrypt 2.5 Released

The new version offers the following features:
  • New CryptoCert methods ExportToBlob and ExportToBlobPKCS7 have been added which are the memory equivalents of ExportToFile and ExportToFilePKCS7 and export the certificate to a memory blob as opposed to disk.
  • The method OpenContext now allows you to specify the public-key length via the first parameter, as follows:

    Set Context = CM.OpenContext("mycontainer##2048", True )

    The previous versions could only create public keys with the default length (usually 1024 bits.)

  • Some minor changes to the object model have been made that will require your C# code to be modified slightly (VB script code should not require any modifications).

    In all methods requiring a Boolean argument, such as OpenContext, OpenStore, and others, the BOOL data type was replaced with VARIANT_BOOL. As a result, C# code such as

    ICryptoStore objStore = objCM.OpenStore("MY", 1 );

    will have to be replaced with

    ICryptoStore objStore = objCM.OpenStore("MY", true );

    Also the default Item method of the CryptoCerts and CryptoName objects has been replaced with a parameterized property with the same name. As a result, C# code such as

    ICryptoCert objCert = objStore.Certificates(1);

    will have to be replaced with

    ICryptoCert objCert = objStore.Certificates[1];

10/27/2010 New AspEncrypt Manual Released

Why New User Manual?

AspEncrypt is one of Persits Software’s oldest products, and while this component’s functionality is still in great demand, its original user manual, the Cryptographic Tasks, has been showing signs of old age.

The Tasks were written back in 1999 and focused mainly on classic ASP and Windows 2000. Microsoft .NET and modern operating systems like Windows 2008 and Windows 7 have rendered much of that information obsolete. Also, we felt that a reorganization of the material from "tasks" to chapters was needed for consistency with the documentation written for our other products, and to make the user manual more structured and easier to grasp.

In the new User Manual, the information is laid out in a more organized manner, with the material divided into numbered chapters, sections and subsections. The coverage of the product’s features progresses from the simple to the complex. For every ASP/VBScript code sample, there is a .NET/C# equivalent. Some obsolete features are no longer covered at all while others are given less attention, resulting in a leaner, meaner manual: 9 new chapters vs. 14 old "tasks."

The old Tasks will remain online but will no longer be updated or linked to from the main pages.

09/08/2009 AspEncrypt 2.4 Released

  • CryptoManager.RegKey property added. This property enables you to specify your registration key right in the script instead of the system registry.
  • CryptoBlob.Ansi property added. This property enables you to initialize binary data using an ASCII string. This is useful because external DES and Triple-DES keys are often specified in the form of ASCII strings.
  • CryptoBlob.Reverse method added. This method allows you to reverse the bytes in a binary blob in one simple step. This may be useful when an external key needs to be utilized.
  • A bug in CryptoHash.AddText method fixed which caused this method to crash on very long text strings.
  • CryptoHash.AddTextWide method added. This method allows you to calculate the hash function of Unicode strings.
  • CryptoManager.ImportStoreFromBlob method added. This method performs the same function as CryptoManager.ImportStoreFromFile but reads the certificate store from a binary blob as opposed to disk.
  • CryptoManager.ImportCertFromBlob enhanced to read Base64-encoded certificates. In previos versions, only CryptoManager.ImportCertFromFile method recognized the Base64 encoding.

08/17/2007 64-bit Version of AspEncrypt Released

Our cryptographic component is now available as a native X64 library.

07/19/2007 AspEncrypt Patch Released

The service release fixes memory overflow issues in CryptoKey.EncryptText and CryptoBlob.Hex.