首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CRMF请求到CertificateRequest (PKCS#10)签名

从CRMF请求到CertificateRequest (PKCS#10)签名
EN

Stack Overflow用户
提问于 2012-05-10 03:32:32
回答 1查看 1.7K关注 0票数 0

我编写了一个示例代码,以了解如何获取CRMF (mozilla证书请求),以便将其转换为更类似于PKCS#10的CSR

我得到了ASN1InputStream类型的base64 CRMFRequest。

我将其转换为CertReqMsg类型(Bouncycastle)

当我调试时,我意识到CertReqMsg有公钥,另一个数据,如主题(CN,O,OU,等等)和其他,但更重要的是,它有一个签名和一个AlgoritmIdentifier。

但是该对象没有getter

如何将签名提取为DERBitString...?我需要它作为CertificationRequest对象的参数(它会根据我需要的方式返回CSR )

顺便说一下,CertificationRequest需要一个CertificationRequestInfo对象作为参数。在它内部(CertificationRequestInfo ),它接收属性作为参数。我假设这个属性是这样的:

distributionPoint、unotice、policyOID、subjectAlternativeNameDN

我知道它是以一个

代码语言:javascript
复制
    ASN1Set attributes = null;
    attributes = new DERSet();

但我不知道该怎么填这个参数

代码语言:javascript
复制
     CertificationRequestInfo info = new CertificationRequestInfo(subject, infoPublicKey, attributes);

抱歉,如果有什么问题很明显的话...但是我找不到解决办法..。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2012-05-10 08:58:49

您将无法将CRMF格式转换为PKCS#10 CSR。

由主题的私钥签名的CSR is structured like this

代码语言:javascript
复制
CertificationRequest ::= SEQUENCE {
    certificationRequestInfo CertificationRequestInfo,
    signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
    signature BIT STRING
}

(本质上,它非常类似于自签名X.509证书,没有颁发者和有效期。)

由于当您收到CRMF请求时,您将不会拥有主题的私钥,因此您将无法进行此签名。

如果您正在编写某种CA软件,那么您实际上并不需要这个。处理CRMF请求和CSR请求或多或少是相同的。CA不应该盲目地做CSR想要做的事情,所以它必须以其他方式审查它与公钥和身份关联的属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10522868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档