Re: Capicom envelopeddata.decrypt failing when content > 64k

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


Date: Wed, 24 Mar 2004 12:30:07 -0800

Hi Mitch,

I am using CAPICOM 2.0.0.3, and the standard
interop.Capicom:
tlbimp
capicom.dll /namespace:CAPICOM /out:Interop.CAPICOM.dll

I don't know why this is happening it works fine for sizes
under 64k.
Did you try de enveloping/deenveloping using .NET? It
comes to my mind that this might be another interop issue,
I'll keep trying to figure this out, if you have any other
suggestion i'll be glad to hear it.

thanks

>-----Original Message-----
>What version of CAPICOM?
>I just tried a vbs and enveloped/denveloped a bin file
with 1,234,111 bytes
>with no problems.
>Maybe an implemention issue in your COM interop?
>
>Cheers,
>- Mitch
>
>"David Pinz" <anonymous@discussions.microsoft.com> wrote
in message
>news:12b0601c411bb$ba86f5e0$a401280a@phx.gbl...
>> 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)
>
>
>.
>


Quantcast