fun loadOpenSshKey()

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")
        }
    }