相关疑难解决方法(0)

使用Bouncy Castle签署CSR

我找不到任何描述如何使用BC签署CSR的代码/文档.作为输入,我将CSR作为字节数组,并希望以PEM和/或DER格式获得证书.

我已经走到了这一步

def signCSR(csrData:Array[Byte], ca:CACertificate, caPassword:String) = {
  val csr = new PKCS10CertificationRequestHolder(csrData)
  val spi = csr.getSubjectPublicKeyInfo

  val ks = new java.security.spec.X509EncodedKeySpec(spi.getDEREncoded())
  val kf = java.security.KeyFactory.getInstance("RSA")
  val pk = kf.generatePublic(ks)

  val (caCert, caPriv) = parsePKCS12(ca.pkcs12data, caPassword)

  val fromDate : java.util.Date = new java.util.Date // FixMe
  val toDate = fromDate // FixMe
  val issuer = PrincipalUtil.getIssuerX509Principal(caCert)
  val contentSigner = new JcaContentSignerBuilder("SHA256WithRSAEncryption").setProvider(BC).build(caPriv)
  val serial = BigInt(CertSerialnumber.nextSerialNumber)
  val certgen = new JcaX509v3CertificateBuilder(new X500Name(issuer.getName), serial.bigInteger, fromDate, toDate, csr.getSubject, pk)
Run Code Online (Sandbox Code Playgroud)

我无法确定从证书生成器获取以PEM或DER格式存储它.

还是我一起走错路?

java scala bouncycastle

30
推荐指数
3
解决办法
3万
查看次数

标签 统计

bouncycastle ×1

java ×1

scala ×1