1

如何通过调用 API“BCryptAddContextFunction”和“BCryptRemoveContextFunction”从 Schannel 添加/删除密码套件而不影响其他进程?

例如,如果进程“A”调用这些 API 并更改密码套件,则其他进程(例如“B”或“C”不应影响这意味着“B”或“C”应该能够使用默认密码套件。

我编写了以下代码,这些代码也影响了其他进程。

uint status = ERROR_SUCCESS;

status = BCryptRemoveContextFunction(CRYPT_LOCAL,
                                    "SSL",
                                    NCRYPT_SCHANNEL_INTERFACE,
                                    "TLS_RSA_WITH_RC4_128_SHA");

实际上,我想在使用 TLS 1.2 与服务器通信时为我的客户端应用程序阻止弱密码套件,但问题是我设置的任何内容也会影响其他应用程序。我怎样才能只为我的应用程序阻止弱密码套件而不影响其他人。

注意:我的应用程序是用 C# 编写的,我正在使用 P/Invoke 调用这些 API。

4

0 回答 0