私は明らかにここで基本的な何かを見逃しています。私は次のScalaコードを持っています:
package org.carlskii
import java.io._
import java.security.cert.CertificateFactory
import java.security.Security
import org.bouncycastle.jce.provider._
object Main extends App {
Security.addProvider(new BouncyCastleProvider)
val provider = new BouncyCastleProvider
val in = new FileInputStream("cert.cer")
val certificateFactory = CertificateFactory.getInstance("X509", provider)
val certificate = certificateFactory.generateCertificate(file)
println(certificate.getClass)
}
これを生成します:
class org.bouncycastle.jce.provider.X509CertificateObject
だから私は弾力がある城のX509CertificateObject
オブジェクトを持っています。このメソッドを呼び出すとcertificate.getPublicKey
、証明書の公開鍵が正しく返されます。
ただし、呼び出すcertificate.getSerialNumber
と次のエラーがスローされます。
error: value getSerialNumber is not a member of java.security.cert.Certificate
println(certificate.getSerialNumber)
ここで興味深いのは、Scalaがそれをオブジェクトjava.security.cert.Certificate
ではなくorg.bouncycastle.jce.provider.X509CertificateObject
オブジェクトであると考えていることです。なぜそうなのですか?