alex1234
-
Content Count
4 -
Joined
-
Last visited
Posts posted by alex1234
-
-
I am trying to use OverbyteIcsSmtpProt.pas v8.68 from ICS 8.70
TSslHtmlSmtpCli classProblem: OnGetData event never called in smtpPlainText mode
Looks like this happens because FMailMsgText.CurrentIdx=0 and FEmailBody.Count=0?
Tried to set MailMessage field and keep OnGetData:=nil - still mail body not sent (headers, from, to, everything else is fine, e-mail is sending but empty body)In HTML mode TSslHtmlSmtpCli sends data (mail body) and calls OnGetData correctly but mail client (at least Thunderbird) shows empty mail body.
While TSslSmtpCli works fine as I see.
Any tips?
-
Thank you.
François said its better to post bug reports here so I posted a copy here.>However, ICS does not use DECRYPT_MESSAGE_FN
Yes, but someone can use this module for its own code (like me :). And sometimes this code may work, sometimes throw errors.
Alex -
There is bug in OverbyteIcsSspi.pas
Incorrect definition of
DECRYPT_MESSAGE_FN = function(phContext: PCtxtHandle; pMessage: PSecBufferDesc; MessageSeqNo: Cardinal; fQOP: DWORD): SECURITY_STATUS;fQOP is not a DWORD, its PULONG - pointer to DWORD.
https://learn.microsoft.com/en-us/windows/win32/secauthn/decryptmessage--negotiate
Such incorrect call may lead to access violation errors or data corruption.
I think it should be defined like
DECRYPT_MESSAGE_FN = function(phContext: PCtxtHandle; pMessage: PSecBufferDesc; MessageSeqNo: Cardinal; var fQOP: DWORD): SECURITY_STATUS;
or
DECRYPT_MESSAGE_FN = function(phContext: PCtxtHandle; pMessage: PSecBufferDesc; MessageSeqNo: Cardinal; fQOP: PULONG): SECURITY_STATUS;
error in OverbyteIcsSspi.pas
in ICS - Internet Component Suite
Posted
I think I found another bug in this module.
type
ULONG_PTR = Longword;
type
_SecHandle = packed record
dwLower : ULONG_PTR;
dwUpper : ULONG_PTR;
end;
This will lead to problems in x64 mode.
Should be
type
ULONG_PTR = NativeUInt;
OR something like
type
{$IF (defined(CPUX64) or defined(CPU64BITS) or defined(CPUARM64))}
ULONG_PTR = UInt64;
{$else}
ULONG_PTR = Longword;
{$endif}
Alex