Capicom envelopeddata.decrypt failing when content > 64k

From: David Pinz (anonymous_at_discussions.microsoft.com)
Date: 03/24/04


Date: Wed, 24 Mar 2004 08:19:05 -0800

Hi group,

I am using C# and interop.Capicom to envelope and
deenvelope data, the enveloped data is in binary format.
All works fine until the enveloped content reaches a size
greater than 65536 bytes, when this happens the decrypt
method fails. This happens for both even and odd count of
bytes (interop issue)

This is the exception I'm getting:
System.Runtime.InteropServices.COMException (0x80093102):
ASN1 unexpected end of data.

   at CAPICOM.EnvelopedDataClass.Decrypt(String
EnvelopedMessage)

I am clueless about this size limit, this behavior is
happenning for both the interop.capicom and a workaround
version of it that I am using (the binary interop
workaround)

Any insigth would be greatly appreciated.

Code:

EnvMessage.Content =
System.Text.Encoding.Unicode.GetString (bytesMsg);
EnvMessage.Recipients.Add(oCert);
EnvMessage.Algorithm.Name =
CAPICOM_ENCRYPTION_ALGORITHM.CAPICOM_ENCRYPTION_ALGORITHM_3
DES;

result = EnvMessage.Encrypt
(CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BINARY);

EnvMessage.Decrypt(result)