in lib/src/main/kotlin/org/jetbrains/zip/signer/signer/PublicKeyUtils.kt [25:36]
fun loadOpenSshKey(file: File): PublicKey {
val base64Encoded = file.readText().substringAfter(" ").substringBefore(" ")
val decodedKeyByteBuffer = ByteBuffer.wrap(Base64.getDecoder().decode(base64Encoded))
val algorithmName = String(decodedKeyByteBuffer.getLengthPrefixedArray())
.removePrefix("ssh-")
.uppercase()
return when (algorithmName) {
SupportedPublicKeysAlgorithms.RSA.openSshName -> getSshRsaPublicKey(decodedKeyByteBuffer)
SupportedPublicKeysAlgorithms.DSA.openSshName -> getSshDsaPublicKey(decodedKeyByteBuffer)
else -> throw IllegalArgumentException("Unsupported public key algorithm $algorithmName")
}
}