我想做的是拥有自己的例程(采用CPP),该例程可以创建RFC4211中的证书请求消息。
我知道这样做的方法是首先获取ASN模块描述,然后对其进行编译以获取可用于创建所需类型的对象的代码(在本例中为CertReqMessage)。然后我可以使用BER或XER或其他任何方式对它进行编码...
因此,我首先进行设置以收集所有必需的ASN模块,并且该列表包含许多RFCS-RFC4211,RFC5280,RFC5652,RFC5755,也许还有我现在所缺少的另一个RFCS。我从RFC中提取了它们,然后尝试对其进行编译,但无法编译所有文件(我使用此编译器http://lionet.info/asn1c/compiler.html)。“最低级别” RFcs(不从其他级别导入)可以工作,但是当我将其他RFC添加到编译列表时,有时(通常在添加最后一个RFC时),我收到一条消息,指出外部的一两个找不到模块,即使它们作为要编译的文件在args列表中。我还收到有关ASN模块之间的表达式冲突的消息...
我试图将所有模块放到一个文件中,并使用此编译器:http : //asn1-playground.oss.com/,它似乎可以正常工作(带有一些警告),但是我无法使用此在线模块获得代码。
我不确定这是什么问题-这个asn1c编译器(v0.9.27)是否有问题,或者我必须做一些我没有做的步骤?我是否必须手动纠正所有这些冲突以及与进口之间的冲突,或者什么?
还是有一些我可以使用的更好的编译器?
谢谢你的帮助!
如果任何人有兴趣或有相同类型的问题-
我在Java中使用BouncyCastle API(1.49-1.52)找到了一个“解决方案”。该库包含我需要的CMS容器和CRMF的特定实现,并且我能够找到一些(尽管不是很详细)示例应用程序,可以从中构建所需的消息。
如果您在C#中需要此功能,请记住,C#bouncycastle实现的维护不如Java维护,并且API有所不同。有一些工具可让您将库从Java“移植”到C#,因此您拥有最新的版本。
不过,我仍然无法自己完全编译整个架构……只是发现了这种方式。
也许答案可以帮助需要帮助的其他人。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句