首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CertificationRequest到X509Certificate

从CertificationRequest到X509Certificate
EN

Stack Overflow用户
提问于 2012-05-23 19:10:27
回答 1查看 329关注 0票数 0

实现org.jscep.server.ScepServlet我需要提供方法doEnroll ( List<X509Certificate> doEnroll(CertificationRequest certificationRequest) )的实现。

如何从提供的CertificationRequest返回X509Certificate?

除了CertificationRequest之外,我还有用于签名的证书

只要有一种从认证请求中获取公钥的方法就足够了,因为我有用于生成证书的其余代码。

到目前为止,我所拥有的:

代码语言:javascript
复制
protected List<X509Certificate> doEnroll(CertificationRequest certificationRequest) throws OperationFailureException, Exception {
    CaCertificate caCertificate = getSelfSignedCertificate();
    X509V3CertificateGenerator certGen = new X509V3CertificateGenerator();
    certGen.setSerialNumber(BigInteger.valueOf(System.currentTimeMillis()));
    certGen.setIssuerDN(caCertificate.getCertificate().getSubjectX500Principal());
    certGen.setNotBefore(notBefore);
    certGen.setNotAfter(notAfter);
    certGen.setSubjectDN(certificationRequest.getCertificationRequestInfo().getSubject());
    certGen.setPublicKey(publicKey); // this is basically what I need

    X509Certificate issuedCert = certGen.generate(caCertificate.getKeypair().getPrivate());

    List<X509Certificate> x509Certificates = new ArrayList<X509Certificate>();
    x509Certificates.add(issuedCert);

    return x509Certificates;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-23 21:11:30

在jscep测试类中找到此方法:

代码语言:javascript
复制
public static PublicKey getPublicKey(CertificationRequest csr) throws IOException {
    SubjectPublicKeyInfo pubKeyInfo = csr.getCertificationRequestInfo().getSubjectPublicKeyInfo();
    RSAKeyParameters keyParams = (RSAKeyParameters) PublicKeyFactory.createKey(pubKeyInfo);
    KeySpec keySpec = new RSAPublicKeySpec(keyParams.getModulus(), keyParams.getExponent());

    try {
        KeyFactory kf = KeyFactory.getInstance("RSA");
        return kf.generatePublic(keySpec);
    } catch (Exception e) {
        throw new IOException(e);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10718737

复制
相关文章

相似问题

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