[Mono-dev] Mono.Security: Error when loading a CRL in ASN1

Jonathon Rossi jono at jonorossi.com
Thu Oct 15 21:40:15 EDT 2009


Hi,

I am trying to load a CRL with the Mono.Security library (tried with the
2.4.2.3 Windows binaries, and with the trunk) like this:
X509Crl crl = X509Crl.CreateFromFile(@"C:\ca.crl");

And I get a CryptographicException: Input data cannot be coded as a valid
CRL.

I have looking into the source code and this is occurring inside
ASN1.DecodeTLV. At this point the code is trying to do a block copy of 104
bytes, where the asn1 array only has 103 left (pos+length), and it throws an
ArgumentException: "Offset and length were out of bounds for the array or
count is greater than the number of elements from index to the end of the
source collection."

Mono.Security.dll!Mono.Security.ASN1.DecodeTLV(byte[] asn1 = {byte[69237]},
ref int pos = 69134, out byte tag = 104, out int length = 104, out byte[]
content = {byte[104]}) Line 279 + 0x33 bytes
Mono.Security.dll!Mono.Security.ASN1.Decode(byte[] asn1 = {byte[69237]}, ref
int anPos = 69134, int anLength = 69237) Line 249 + 0x36 bytes
Mono.Security.dll!Mono.Security.ASN1.ASN1(byte[] data = {byte[69237]}) Line
90 + 0x26 bytes
Mono.Security.dll!Mono.Security.X509.X509Crl.Parse(byte[] crl =
{byte[69237]}) Line 139 + 0x33 bytes
Mono.Security.dll!Mono.Security.X509.X509Crl.X509Crl(byte[] crl =
{byte[69237]}) Line 131 + 0x13 bytes
Mono.Security.dll!Mono.Security.X509.X509Crl.CreateFromFile(string filename
= "C:\\ca.crl") Line 421 + 0x20 bytes
ConsoleApplication2.exe!ConsoleApplication2.Program.Main(string[] args =
{string[0]}) Line 14 + 0x12 bytes

The CRL is 68KB, and verifies using certutil.

I cannot provide the CRL, however any pointers on what could be causing this
would be really helpful.

Thanks
-- 
Jono
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20091016/9194c5a4/attachment.html 


More information about the Mono-devel-list mailing list