TLS_PSK_WITH_AES_128_GCM_SHA256 C# 中的密码套件

TLS_PSK_WITH_AES_128_GCM_SHA256 ciphersuite in C#

我想在 C# 中使用这个特定的密码套件:TLS_PSK_WITH_AES_128_GCM_SHA256(或者可能 TLS_PSK_WITH_AES_128_CBC_SHA256,但 prefferd 将是第一个),不幸的是 .net 不支持这个。我见过很多关于 PSK 或 .net 的 SslStream class 的问题,但所有问题都已过时,大多数至少已有 3 年历史。

我希望我的嵌入式设备通过 TCP 使用 TLS 与服务器通信,它不是网站,它只是通过此连接发送的任何类型的数据。我也没有直接访问 TCP 套接字和侦听器的权限。

所以我有 3 个问题:

  1. Is this still the case in .net 4.5? (I've looked far and wide and it seems it is).
  2. Is there an easy to use library for C# (preferably free) which supports either of the 2 cipher suites?
  3. Can I create the cipher suite my self and add it to the .net version of TLS?

总结一下:
密码套件 = TLS_PSK_WITH_AES_128_GCM_SHA256
TLS 版本 = 1.2
.net 版本 = 4.5
我正在寻找可以在服务器端执行 TLS

的东西

我找到了赏金城堡的有效实现,它有一个 mockPSKServer 和客户端并支持所需的密码套件。

https://github.com/bcgit/bc-csharp