http://bugs.winehq.org/show_bug.cgi?id=23317
Summary: SEC_E_INTERNAL_ERROR (0x80090304) returned by InitializeSecurityContextW Product: Wine Version: 1.2-rc4 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: secur32 AssignedTo: wine-bugs@winehq.org ReportedBy: mterrisse@free.fr
Hello,
I am working on a product called EdT (http://www.index-education.com/fr/telecharger-edt.php). Sorry the product is available in French and Italian but not in English. The product contains an internal mailer that can use TLS when sending e-mails to a SMTP server. For testing we used smtp.gmail.com. This works fine on Windows but fails on Wine (Wine 1.2-rc 4, Ubuntu 9.10).
Here is the TLS handshake after the command STARTTLS was sent :
81 bytes
<< 1388 bytes
65536 bytes
<< 273 bytes
182 bytes
<< 7 bytes -> InitializeSecurityContextW returns SEC_E_INTERNAL_ERROR (0x80090304)
With WINEDEBUG I can have more information:
0009:Call secur32.InitializeSecurityContextW(015b5448,015b5450,00000000,0000801c,00000000,00000000,0031e104,00000000,00000000,0031e110,0031e160,0031e154) ret=0050d193 GNUTLS ERROR: A record packet with illegal version was received. 0009:Ret secur32.InitializeSecurityContextW() retval=80090304 ret=0050d193
Note that the TLS handshake is not the same on Windows and Wine, here is what happens on Windows
113 bytes
<< 1400 bytes << 267 bytes
182 bytes
<< 43 bytes
There is not the big 65536 bytes buffer to send. And 65536 is exactlty the size of the buffer passed to InitializeSecurityContextW, as if cbBuffer of the destination SecBuffer was not updated (we don't use ISC_REQ_ALLOCATE_MEMORY but allocate the buffer before invoking InitializeSecurityContextW).
This bug looks similar to http://bugs.winehq.org/show_bug.cgi?id=16200 but I am not sure it is the same problem.
I hope this helps. Regards,
Michel