【问题标题】:What is the difference between TlsSignerCredentials and TlsAgreementCredentials in Bouncy CastleBouncy Castle 中的 TlsSignerCredentials 和 TlsAgreementCredentials 有什么区别
【发布时间】:2013-09-25 18:03:44
【问题描述】:
我正在使用 Bouncy Castle 到 TLS 连接,并将客户端证书发送到服务器。但我不知道我应该使用哪个接口作为 TlsCredentials,这应该是:
TlsSignerCredentials 或 TlsAgreementCredentials 以及如何实现。
例如什么是正确的实现
byte[] GenerateCertificateSignature(byte[] md5andsha1);
在 TlsSignerCredentials 以及何时我应该使用它而不是 TlsAgreementCredentials
您能给我一个示例实现或提供任何线索吗?
提前致谢!
阿图尔
【问题讨论】:
标签:
c#
security
ssl
bouncycastle
x509
【解决方案1】:
您可能需要 TlsSignerCredentials,当密钥交换涉及客户端签名时使用它(基本上除了 DH、ECDH 之外的所有签名)。有一个可用的默认实现 DefaultTlsSignerCredentials,您可以将其提供给您的证书和相应的私钥。它可以识别 DSA、ECDSA 和 RSA 凭据。
TlsAgreementCredentials 同样具有 DefaultTlsAgreementCredentials 实现,但协议凭据仅用于 DH/ECDH 密钥交换,很少使用。