当前位置: 首页 > 知识库问答 >
问题:

如果我有证书,我们如何将PKCS#1转换为PKCS#7?

丁英韶
2023-03-14

我知道PKCS#7=证书+可选原始数据+PKCS#1格式的签名

共有1个答案

成和悌
2023-03-14

你的问题有点把情况简单化了。

关于PKCS#7<->PKCS#1:

是的,PKCS#7签名容器包含SignerInfo对象,这些对象基本上分别包含PKCS#1样式的签名和一些属性。但是这种PKCS#1风格的签名通常不仅仅是对文档数据进行签名,而是对所谓的“签名属性”的结构进行签名。其中一个是文档哈希,其他的可以是签名时间、签名者证书的链接等信息;在许多用例中都需要这些额外的信息。只有最基本构建的SignerInfo结构才会直接对文档数据进行签名。

有关详细信息,请参阅Adobe发布的ISO 32000-1:2008

根据法律要求,您可能还必须考虑ETSI规定的PDF高级电子签名。符合欧盟电子签名的ETSI标准。这些将成为ISO32000-2,又名PDF 2.0的一部分。

那么,您是否仍然确定您的用例允许您心目中的那些非常简单的PKCS#7签名,并且您的PKCS#1源签名是否为正确的文档创建?在这种情况下,通过查看RFC3852可以轻松地构建这些容器。

 类似资料:
  • 我在Windows7上有OpenSSL x64,这是我从Google代码上的OpenSSL-for Windows下载的。我正试图跑: 但我有个错误。 如何使用OpenSSL从PKCS#12存储中提取PEM中的证书?

  • 问题内容: 在Java中需要有关加密例程的帮助。 给定PKCS#7签名,我想针对受信任的存储验证它包含的所有证书。我假设签名中包含的所有证书均以正确的顺序形成有效的证书路径(或链,无论如何),因此 最上面的(#0)是签名证书; 下一个(#1)是中间证书,用于签署#0; 下一个(#2)是另一个中间证书,用于签署#1; 等等。 最后一个证书(#N)由CA签名。 到目前为止,这是我设法破解的: 所以问题

  • 我正在尝试使用阿帕奇火花读取表。 以下是我的实现: 所以在火花壳里 我们在“订单”变量中得到结果。 如何将此结果转换为拼花文件或格式? 更新:我找到这段访问和转换dynamodb数据的代码https://github . com/onzocom/spark-dynamo db/blob/master/src/main/Scala/com/onzo/spark/dynamo db/dynamo db

  • 我的公共在ssh-rsa是: ssh rsa aaaab3nzac1yc2aaaaaadaqabaababaqclaxt5s/wux04oxbt9r59wcl45omau3m0063lfyja7ovqavr7/2kHtLF/LoCQCXSZMny8RTCGDjoXD7G/tGsyHFDHCI//Y1VDLE06AlDzrlu69DQY91 6gkhghgjh3sf6us5hxlihrbsflf8g

  • 为了在OpenSSL中签名证书,我使用函数,向它提供一个请求(作为)、一个签名密钥和一个摘要。 现在我有我的签名密钥存储在HSM中,所以我无法提取它来签名证书。不幸的是,PKCS#11没有提供的等价物。它只有系列函数,这些函数对原始数据进行操作,而不是对证书进行操作。 有人能帮助我使用示例C/C++代码如何使用PKCS#11签署一个用OpenSSL创建的证书吗?

  • 问题内容: 我有一个XML文件 我必须将此XML转换为CSV文件。我听说我们可以使用XSLT进行此类操作。如何在Java中(带有/不带有XSLT)执行此操作? 问题答案: 用伪代码: 这个快速的小循环将在每行的末尾写一个逗号,但是我敢肯定您可以弄清楚如何删除它。 为了实际解析XML,我建议使用JDOM。它具有非常直观的API。