gpt4 book ai didi

c++ - 使用 MS SSPI 实现安全 SLL/TLS 客户端的可编译 C++ 代码

转载 作者:可可西里 更新时间:2023-11-01 18:02:16 30 4
gpt4 key购买 nike

如这里所述 http://www.ddj.com/cpp/184401688

我没有时间从头开始写。

问而不答 https://stackoverflow.com/questions/434961/implementing-ssl

问题是:

我正在寻找一些可编译的工作源代码,它实现了 MS SSPI(如上面的线程中提到的),首选程序而不是 OOP。

我在这里查看了代码项目示例:

http://www.codeproject.com/KB/IP/sslclasses.aspx

但这是 C# OOP。将其转换为 C++ 代码并非易事。

OpenSSL

SChannel 调用遵循 GSS API 标准。当然,还有一些替代方案——例如 OpenSSL。这个包是协议(protocol)的完整和彻底的实现,对于非常熟悉 UNIX 的人来说无疑是最好的选择。该包最初针对 UNIX 社区,并且依赖于 Perl 运行时对其进行编译,因此从未使用过 UNIX 类型系统的 Windows 开发人员需要一些学习曲线。

除此之外,OpenSLL 还做了一些非常不标准的事情

尼古拉,贡献了很多可编译的源代码 (www.coastrd.com)我希望找到愿意做同样事情的人。

最佳答案

此 SSPI SChannel SMTPS 示例应按原样在 Visual Studio 2008 中编译和运行

http://www.coastrd.com/c-schannel-smtp (the original site seems dead; fortunately WaybackMachine has it archived)

SChannel 是 Microsoft 对封装 SSL/TLS 协议(protocol)的 GSS API 的实现。

使用 SChannel 的优势:

  • SSPI 向开发人员屏蔽了血腥细节。
  • 运行最终应用程序不需要额外的设置:
  • SChannel 是操作系统不可或缺的一部分
  • 在 Windows ME/2000/XP/... 平台上,默认安装和配置 SChannel
  • SChannel 调用遵循 GSS API 标准。
  • 您不需要创建/安装任何证书
  • 无需运送和安装第三方 dll(1MB 或更大)

代码应该生成一个如下所示的 session :

----- SSPI 初始化
----- WinSock 初始化
----- 凭证已初始化
----- 连接到服务器
70字节的握手数据已发送
收到974字节的握手数据
发送了182字节的握手数据
收到43字节的握手数据
握手成功
----- 执行客户端握手
----- 服务器凭据已验证

服务器主题:C=US, S=California, L=Mountain View, O=Google Inc, CN=smtp.gmail.com
服务器颁发者:C=ZA, S=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division, CN=Thawte Premium Server CA, E=premium-server@thawte.com

----- 证书链显示
----- 服务器证书已验证
----- 服务器证书上下文已发布

协议(protocol):TLS1
密码:RC4
密码强度:128
哈希:MD5
哈希强度:128
key 交换:RSA
key 交换强度:1024
----- 安全连接信息
收到 64 字节的(加密的)应用程序数据
解密数据:43字节
220 mx.google.com ESMTP 6sm17740567yxg.66

发送7字节明文:
埃赫洛

发送28字节加密数据
收到 169 字节的(加密的)应用程序数据
解密数据:148字节
250-mx.google.com 为您服务,[22.33.111.222]
250-尺寸 35651584
250-8比特MIME
250-AUTH LOGIN PLAIN
250-增强状态代码
250流水线

发送7字节明文:
退出

发送28字节加密数据
收到 69 字节的(加密的)应用程序数据
解密数据:48字节
221 2.0.0关闭连接6sm17740567yxg.66

----- SMTP session 完成
发送关闭通知
发送的23字节握手数据
----- 与服务器断开连接
----- 开始清理
----- 全部完成 -----

关于c++ - 使用 MS SSPI 实现安全 SLL/TLS 客户端的可编译 C++ 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032056/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com