- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在将 TLS 加密添加到服务器端应用程序。我正在使用 Schannel API 添加 TLS。我在使用 CertFindCertificateInStore 时遇到问题。它永远找不到我正在搜索的证书。作为搜索标准,我使用证书的名称。我现在已经在这上面花了很多时间,但不明白为什么它不起作用。任何帮助将不胜感激。我在其中使用的功能如下所示。谢谢,
int ServerCreateCredentials() {
//- get the certificate store
HCERTSTORE myCertStore = NULL;
myCertStore = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
X509_ASN_ENCODING,
NULL,
CERT_SYSTEM_STORE_LOCAL_MACHINE,
L"My");
// check for the failure to find the appropriate store
if (myCertStore == NULL) {
return 1;
}
// find the certificate in the store
m_CertificateContext = CertFindCertificateInStore(
myCertStore,
X509_ASN_ENCODING,
0,
CERT_FIND_SUBJECT_STR_A,
(LPVOID) CertificateName,
NULL);
if (m_CertificateContext == NULL) {
// try unicode
m_CertificateContext = CertFindCertificateInStore(
myCertStore,
X509_ASN_ENCODING,
0,
CERT_FIND_SUBJECT_STR_W,
CertificateName,
NULL);
if (m_CertificateContext == NULL ) {
// free the store
CertCloseStore(myCertStore, CERT_CLOSE_STORE_CHECK_FLAG);
return 2;
}
}
TimeStamp life;
// get the credentials
SCHANNEL_CRED SchannelCredentials;
ZeroMemory(&SchannelCredentials, sizeof(SchannelCredentials));
SchannelCredentials.dwVersion = SCHANNEL_CRED_VERSION;
SchannelCredentials.cCreds = 1; // number of credentials
SchannelCredentials.paCred = &m_CertificateContext; // credentials
SchannelCredentials.hRootStore = myCertStore; // certificate store location
SchannelCredentials.dwMinimumCipherStrength = 80; // minimum encryption allowed
SchannelCredentials.grbitEnabledProtocols = 0; // let the dll decide
SchannelCredentials.dwFlags = SCH_CRED_AUTO_CRED_VALIDATION
| SCH_CRED_NO_SERVERNAME_CHECK
| SCH_CRED_REVOCATION_CHECK_CHAIN;
DWORD Status = SEC_E_OK;
Status = m_securityFunctionTable.AcquireCredentialsHandle(
NULL,
UNISP_NAME,
SECPKG_CRED_INBOUND,
NULL,
&SchannelCredentials,
NULL,
NULL,
&m_credentials,
&life);
// at this point we should be good
// free the store
CertCloseStore(myCertStore, CERT_CLOSE_STORE_CHECK_FLAG);
if (Status != SEC_E_OK) {
return 3;
}
return 0;
最佳答案
我发现我没有搜索正确的参数。您需要根据主题名称进行搜索,然后它才会起作用。
关于c++ - SCHANNEL TLS 服务器端无法 CertFindCertificateInStore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25647995/
是否可以在 TLS 1.0 握手中提取远程计算机发送的证书链? 具有 SECPKG_ATTR_REMOTE_CERT_CONTEXT 值的 API QueryContextAttributes,仅返回
我已经实现(Windows 10.0.17763.0/VS2017/C++)一个客户端/服务器应用程序,它使用 schannel 进行安全通信。现在的要求是仅使用一组密码套件来进行某些客户端和服务器之
我正在尝试使用“Microsoft RSA SChannel Cryptographic Provider”生成数字签名。获取容器句柄后,我使用 CryptGenKey() 生成签名。但这个函数返回F
几天的故障排除、谷歌搜索解决方案和重新阅读有关所需功能的 Microsoft 文档。改变变量,一次又一次地重试。非常感谢您的帮助,我相信不仅仅是我遇到了这个问题。 我正在努力实现联网的客户端和服务器应
我可以轻松地使用“win sockets”实现 HTTP,但我一直在努力使用“SChannel”实现 HTTPS,“至少对我来说”这几乎没有记录。如何为 HTTPS 通信建立安全连接?是否有任何我应该
当我试图从我们的 git 服务器中 pull 数据时,我得到了这个错误: fatal: unable to access 'xxx': OpenSSL SSL_connect: SSL_ERROR_S
在哪里可以找到事件查看器中显示的 Windows Schannel 致命警报代码的定义?例如: 从远程端点收到致命警报。 TLS 协议(protocol)定义的致命警报代码为 40。 已生成致命警报并
我正在尝试在 Windows 下使用 Schannel 创建 DTLS“连接”(我正在最近的 Windows 10 版本下进行测试,因此 Schannel 支持的所有 DTLS 版本都应该可用) 我尝
我正在将 TLS 加密添加到服务器端应用程序。我正在使用 Schannel API 添加 TLS。我在使用 CertFindCertificateInStore 时遇到问题。它永远找不到我正在搜索的证
我想使用 SChannel 或其他一些 Microsoft API 来支持我的 TCP/IP 应用程序的 TLS。理想情况下,我想做的是使用 SChannel 在我的应用程序中创建一种 TLS 隧道,
我必须使用 SSPI 接口(interface)实现 TLS 握手过程。 我的应用程序实现了客户端,正如我从 here 中看到的那样一般流程是: InitializeSecurityContext -
该问题与某些规范 (FIPS) 相关,这些规范要求用于 TLS 的 SChannel 模块在使用前执行自测,以验证它们没有受到损害。 FIPS 就是一个例子。在开源库中有内置的自测功能。SChan
试图访问 git-bash使用规范准备 git repo git ,我得到: $ git pull fatal: Unsupported SSL backend 'schannel'. Support
我正在努力缩小可执行文件的大小,一个很大的节省是用 Windows 标准 SChannel 替换 OpenSSL/Libssh for curl (所有 Windows 机器上的 DLL) 这可以正常
我有一个程序使用 schannel.dll 与远程服务器建立 SSL 连接。但是我想经常断开与服务器的连接并重新连接而无需再次重新协商共享 key 。我知道 SSL 支持这个,但不知道如何使用 SCh
我正在尝试将 SNI 添加到我的客户端程序 (C/C++),该程序使用 Microsoft SDK 的 Schannel API for TLS。 我到处搜索,但找不到任何关于 Schannel 如何
我目前正在使用 SChannel 开发一个基于异步 (IOCP) 的服务器,我的大部分工作都很好,但我遇到了重新协商的问题。具体来说,当对等方 A 向对等方 B 发送重新协商的请求并且对等方 B 以
出于合规性原因(我想在 .Net 中使用 256 位 AES 和临时 key ),我正在尝试重新排序/删除密码套件。但是,使用 WCF TCP 传输安全性,我将对安全性的所有控制都让给了 Window
我想看一个演示如何将 SSPI 与 Schannel 结合使用的 Microsoft 示例。 如我所见here有这样的样本,但我找不到它:( 谁能帮我找到它? 提前致谢! 最佳答案 Windows®
是否可以使用 WinSSL/Schannel 打开 FIPS 模式仅用于运行进程而不是整个机器(通过策略)? 最佳答案 Is it possible to turn on FIPS mode with
我是一名优秀的程序员,十分优秀!