* On Fri, 22 Jul 2005, Juan Lang wrote:
But the bad thing is that after running small code chunk another calls to CryptEncodeObjectEx() starts generating exceptions here.
the error handling on Win9x wasn't as good as on XP.
Hmm. I don't understand the code, but if I change (+) BYTE tooBig definition, then exceptions are gone, but return codes still differs in the output (|):
+ tooBig[] = { 0x00, 0x84, 0xff, 0xff, 0xff, 0xfc }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 8009310b
+ tooBig[] = { 0x02, 0x84, 0xf0, 0xff, 0xff, 0xfc }; + tooBig[] = { 0x02, 0x84, 0xff, 0x0f, 0xff, 0xfc }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 80093102
+ tooBig[] = { 0x02, 0x04, 0xff, 0xff, 0xff, 0xfc }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 00000000
+ tooBig[] = { 0x02, 0x80, 0xff, 0xff, 0xff, 0xfc }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 80093103
+ tooBig[] = { 0x02, 0x83, 0xff, 0xff, 0xff, 0xfc }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got c0000005
+ tooBig[] = { 0x02, 0x84, 0x0f, 0xff, 0xff, 0xfc }; + tooBig[] = { 0x02, 0x84, 0xff, 0xff, 0xff, 0xfc }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got 80093106
+ tooBig[] = { 0x02, 0x84, 0xff, 0xff, 0xff, 0xfd }; | encode.c:313: Test failed: Expected CRYPT_E_ASN1_LARGE, got c0000005 | (plus further exceptions)
For me it is strange that "{0x02, 0x83, ..." gives same GLE (c0000005) as original tooBig value, but exceptions aren't being catched in debugger. I thought if there may be some sense in tuning tooBig value, then could it be done? If not, then sorry for the noise.