使用Mono或Bouncy Castle c#实现TLS

使用Mono或Bouncy Castle c#实现TLS,c#,mono,cryptography,bouncycastle,ssl,C#,Mono,Cryptography,Bouncycastle,Ssl,Mono可以用作常规的开源加密库吗?例如,仅使用Mono.security.tls 我问这个问题是因为我正在将tls添加到一个以前由另一个从一开始就不使用Mono的人编写的程序中 或者最好使用Bouncy Castle?Mono.Security.dll中的所有代码都可以在Mono之外使用,例如在Microsoft.NET上。事实上,这是本次大会的主要目标 它包含的许多代码已经存在(或被重用)以构建Mono的基类库(例如mscorlib.dll中的X509Certificate支持,System

Mono可以用作常规的开源加密库吗?例如,仅使用Mono.security.tls

我问这个问题是因为我正在将tls添加到一个以前由另一个从一开始就不使用Mono的人编写的程序中


或者最好使用Bouncy Castle?

Mono.Security.dll中的所有代码都可以在Mono之外使用,例如在Microsoft.NET上。事实上,这是本次大会的主要目标

它包含的许多代码已经存在(或被重用)以构建Mono的基类库(例如mscorlib.dll中的
X509Certificate
支持,System.dll中的SSL/TLS支持)或Mono附带的.NET相关工具(例如
makecert
signcode
sn


因此,如果不向大会公开,那将是一种耻辱。当然,您仍然可以使用所需的源文件并将其添加到应用程序中(它是MIT.X11许可的)。

Mono.Security.dll中的所有代码都可以在Mono之外使用,例如在Microsoft.NET上。事实上,这是本次大会的主要目标

它包含的许多代码已经存在(或被重用)以构建Mono的基类库(例如mscorlib.dll中的
X509Certificate
支持,System.dll中的SSL/TLS支持)或Mono附带的.NET相关工具(例如
makecert
signcode
sn


因此,如果不向大会公开,那将是一种耻辱。当然,您仍然可以使用所需的源文件并将其添加到应用程序中(它是MIT.X11许可的)。

有点过时,但可能对您有所帮助。有点过时,但可能会对您有所帮助。因为我正在为应用程序实现TLS。因为Bouncy Castle是一个致力于加密的图书馆,所以使用它会更好吗?虽然Mono是一个大型项目,由许多其他部分组成。这在我看来并不重要。但您应该使用.NET BCL已经提供的内容,例如
SslStream
(因为2.0同时提供客户端和服务器端支持),以避免向应用程序添加任何非必需的依赖项。当然,如果您需要它没有提供的特定内容,那么这将限制您的选择…使用.Net BCL,我担心它是否健壮,因为代码不向公众开放,无法测试安全问题,这是开源库的一个优点。我的担心是正确的吗?这是一个值得关注的问题,但只有当您愿意跟踪所有依赖项的每个bug和新版本(针对安全问题)时,这才有效。即使如此,MS.NET JIT/BCL上也可能存在其他安全问题(假设您没有在任何地方使用/tracking Mono),比TLS上的任何问题都更糟糕。如果您使用MS.NET,那么您已经放弃了will review My strategy的一部分,并且仍然依赖于您的用户在.NET更新可用时获得通知。因为我正在为应用程序实施TLS。因为Bouncy Castle是一个致力于加密的图书馆,所以使用它会更好吗?虽然Mono是一个大型项目,由许多其他部分组成。这在我看来并不重要。但您应该使用.NET BCL已经提供的内容,例如
SslStream
(因为2.0同时提供客户端和服务器端支持),以避免向应用程序添加任何非必需的依赖项。当然,如果您需要它没有提供的特定内容,那么这将限制您的选择…使用.Net BCL,我担心它是否健壮,因为代码不向公众开放,无法测试安全问题,这是开源库的一个优点。我的担心是正确的吗?这是一个值得关注的问题,但只有当您愿意跟踪所有依赖项的每个bug和新版本(针对安全问题)时,这才有效。即使如此,MS.NET JIT/BCL上也可能存在其他安全问题(假设您没有在任何地方使用/tracking Mono),比TLS上的任何问题都更糟糕。如果你使用MS.NET,那么你已经放弃了部分的“自我检讨”策略,仍然依赖于你的用户在.NET更新可用时得到通知。