in lib/src/main/kotlin/org/jetbrains/zip/signer/signer/CertificateUtils.kt [59:85]
fun generateDummyCertificate(keyPair: PEMKeyPair): X509Certificate {
val dummyName = X500Name("CN=Dummy Certificate")
val yesterday = Date.from(Instant.now().minus(Duration.ofDays(1)))
val contentSigner = when (val privateKey = PrivateKeyFactory.createKey(keyPair.privateKeyInfo)) {
is RSAPrivateCrtKeyParameters -> BcRSAContentSignerBuilder(
AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption),
AlgorithmIdentifier(NISTObjectIdentifiers.id_sha256)
).build(privateKey)
is DSAPrivateKeyParameters -> BcDSAContentSignerBuilder(
AlgorithmIdentifier(X9ObjectIdentifiers.id_dsa),
AlgorithmIdentifier(NISTObjectIdentifiers.id_sha256)
).build(privateKey)
else -> throw IllegalArgumentException("Unsupported key type: ${privateKey::class.java.simpleName}")
}
return JcaX509CertificateConverter()
.getCertificate(
X509v3CertificateBuilder(
dummyName,
BigInteger.valueOf(System.currentTimeMillis()),
yesterday,
farAwayDate,
dummyName,
keyPair.publicKeyInfo
).build(contentSigner)
)
}