When configuring FTPS in BizTalk Server 2010, there is an error "The client and server cannot communicate, because they do not possess a common algorithm"

Problem
Description

==================

When
configuring the new feature FTPS adapter (receive or send) to connect FTP
server in BizTalk Server 2010, there may raise the following error in the event
log on BizTalk Server:

“The client and server cannot communicate, because they do not possess a
common algorithm”

Problem
Analysis

================

We collect dump files forBTSNTSvc.exe when reproducing this issue, and we
have the following information.

The status code 0x80090331 means SEC_E_ALGORITHM_MISMATCH.

In addition, after we look into the source code, from the parameters which
was passed to sspicli!AcquireCredentialsHandleW by the BizTalk xceedftpbiztalk
module, we could see BizTalk FTPS only support TLS v1. So the problem is caused
by that TLS v1 is disabled in the BizTalk Server box.

0:027> p

Time Travel
Position:

FE3840000296.

eax=80090331
ebx=00000000

ecx=01a55038 edx=00000001 esi=5d02a0e8 edi=01a54c88

eip=74b3151e
esp=254cebd4

ebp=254cebd4 iopl=0 nv up ei pl

zr na pe nc

cs=0023 ss=002b

ds=002b es=002b fs=0053

gs=002b

efl=00000246

sspicli!AcquireCredentialsHandleW+0x27:

74b3151e

5d

pop ebp

0:027> !gle

LastErrorValue:
(Win32) 0x1

(1) - Incorrect function.

LastStatusValue:
(NTSTATUS) 0x80090331 - The client and server cannot

communicate, because they do not possess a common algorithm.

0:027> gu

Time Travel
Position:

FE384000006A.

eax=80090331
ebx=00000000

ecx=768d0175 edx=1bf364e0 esi=00000000 edi=00000000

eip=74b253d8
esp=254cea84

ebp=254ceb10 iopl=0 nv up ei pl

nz na pe nc

cs=0023 ss=002b

ds=002b es=002b fs=0053

gs=002b

efl=00000206

sspicli!SspipAcquireCredentialsHandle+0xf9:

74b253d8

8945e0

mov dword ptr [ebp-20h],eax ss:002b:254ceaf0=254ceb10

0:027> k

ChildEBP
RetAddr

254ceb10
74b2dccf sspicli!SspipAcquireCredentialsHandle+0xf9

[d:\w7rtm\minio\security\base\lsa\security\sspiwrap.cxx @ 196]

254ceb68
74b3030b

sspicli!LsaAcquireCredentialsHandleW+0x8e
[d:\w7rtm\minio\security\base\lsa\security\sspicli\lsastubs.cxx

@ 581]

254ceba4
74b3151e

sspicli!AcquireCredentialsHandleCommon+0xce

[d:\w7rtm\minio\security\base\lsa\security\sspicli\newstubs.cxx @ 592]

254cebd4
5d01fc86

sspicli!AcquireCredentialsHandleW+0x27
[d:\w7rtm\minio\security\base\lsa\security\sspicli\newstubs.cxx

@ 463]

254cec54
5d02037d

xceedftpbiztalk!CXwlSslSocketWrapper::GetClientCredentials+0xc9

[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\winsock\xwlsslsocketwrapper.cpp

@ 183]

254cec80
5d0128dd

xceedftpbiztalk!CXwlSslSocketWrapper::SetupTLS+0x51

[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\winsock\xwlsslsocketwrapper.cpp

@ 303]

254ced18
5d0100c5

xceedftpbiztalk!CXceedFtp::ConnectPerformer+0x341
[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\activex\xceedftpperformers.cpp

@ 473]

254ced60
1be164d6

xceedftpbiztalk!CXceedFtp::Connect+0xf3

[d:\bt\9359137\private\source\runtime\msg\adapters\ftp\xceedftp\activex\xceedftpmethods.cpp

@ 332]

254cedcc
1be16309

DomainBoundILStubClass.IL_STUB_CLRtoCOM()+0x86

254cee10
1be13fe5

Microsoft_BizTalk_CoreAdapter!Microsoft.BizTalk.Adapter.FtpAdapter.FtpUtil.Connect(XceedFtpLib.XceedFtp,

System.String, System.String)+0x29

[d:\bt\9359137\private\source\Runtime\Msg\Adapters\Ftp\Runtime\FtpUtil.cs @

201]

254cef18
1be12ec6

Microsoft_BizTalk_CoreAdapter!Microsoft.BizTalk.Adapter.FtpAdapter.FtpReceiverEndpoint.EndpointTask()+0x235

[d:\bt\9359137\private\source\Runtime\Msg\Adapters\Ftp\Runtime\FtpReceiverEndpoint.cs

@ 325]

254cef60
1be129ba

Microsoft_BizTalk_CoreAdapter!Microsoft.BizTalk.Adapter.FtpAdapter.FtpReceiverEndpoint.ControlledEndpointTask()+0x56

[d:\bt\9359137\private\source\Runtime\Msg\Adapters\Ftp\Runtime\FtpReceiverEndpoint.cs

@ 251]

254cef8c
1be12838
Microsoft_BizTalk_BaseAdapter!Microsoft.BizTalk.Adapter.Common.SimpleTask.Start()+0x2a

[d:\bt\9359137\private\source\Runtime\Msg\Adapters\BaseAdapter\SimpleTask.cs @

45]

254cefb8
1be1256d

Microsoft_BizTalk_Scheduler_Runtime!Microsoft.BizTalk.Scheduler.TaskController.StartTask()+0x28

[d:\bt\9359137\private\source\Runtime\Scheduler\Runtime\TaskController.cs @

638]

254cefc4
1be1241e

Microsoft_BizTalk_Scheduler_Runtime!Microsoft.BizTalk.Scheduler.TaskController+StartPendingState.OnThreadAvailable(Microsoft.BizTalk.Scheduler.TaskController)+0x1d

Problem
Resolution

=================

Please check
the following registry key in your BizTalk Server box to see if there is any
TLS v1 registry key been disabled, that means the value is 0. If so, please
change the TLS 1.0 Client registry key value to 1, that enable TLS 1.0 for
client.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS1.0\Client