2012-06-27 97 views

回答

7

BouncyCastleCrypto,因为它是一个疯狂的名字,我非常确定拥有所有这些功能。几乎所有的RFC标准都已实施。当我几年前使用它时,它的记录很差,但单元测试非常彻底,以至于您可以搜索某些关键词(如“509”)并查找运行框架部分的单元测试你需要。

我真的发现我必须详细阅读一些RFC标准才能理解如何使用该框架。他们确实没有付出任何努力,像“cert.Sign(key)”那样简单。相反,它非常细化,你必须创建6个对象,并确切知道如何将它们放在一起才能完成某件事情。然而,如果你知道如何使用这种力量,这会给你完全的灵活性和力量。我个人使用它来加载X.509证书,执行各种密钥生成任务,数字签名/验证,自签名等,但我早已忘记了所有这些,除了一个自信,没有多少帮助可以做到。

+0

伟大的答案....但我会争辩说,开发人员应始终明白他们正在使用(即RFC标准),以便正确实施它。此外,良好的文档总是可以在以后完成,良好的代码和良好的单元测试很难得到正确的结果,文档可以在以后处理。 –

+0

@Ramhoud我同意,但我的观点是,RFC标准不仅仅是理解如何正确应用这些技术,还包括诸如数据如何包装到消息中以及所有各种ID和基础设施等细节。其他API更简单。 BouncyCastle作为一种低级API,要求您熟悉大多数其他API抽象出来的许多事情。尽管如此,我并没有敲开BouncyCastle,因为我确信他们的目的是揭示所有这些低级细节,并且他们做得很好,这给了你更多的灵活性。 – AaronLS

3

我也会推荐Bouncy Castle图书馆用于生产目的。但是,如果您希望使用更轻松的学习曲线来减少某些内容,则可以使用Windows自己的证书创建工具makecert.exe。您可以使用Process.Start从C#运行它,提供正确的命令行参数。