I have some example Java code from a web site. I converted it to Kotlin. When I step through the Kotlin code I get a byte array of 256  bytes. When I attempt to convert this to a string I get the first dozen or so bytes... I am missing something really fundamental
Java code:
StringReader fileReader= new StringReader(keyAsPemString);
PEMReader pemReader= new PEMReader(fileReader);
PublicKey pk= (PublicKey)pemReader.readObject();
Cipher c = Cipher.getInstance ("RSA/ECB/PKCS1Padding");
c.init(Cipher.ENCRYPT_MODE, pk);
ciphertext = c.doFinal(cleartext.getBytes());
return keyAlias+”:”+HexEncode.encode(ciphertext);  
Kotlin code:
  val fileReader =  StringReader(keyAsPemString)
        val pemReader =  PEMReader(fileReader)
        val pk : PublicKey = pemReader.readObject() as PublicKey
        val c : Cipher  = Cipher.getInstance ("RSA/ECB/PKCS1Padding")
        c.init(Cipher.ENCRYPT_MODE, pk)
//        val ciphertext = c.doFinal(cleartext.getBytes())
        val ciphertext = c.doFinal(cleartext.toByteArray() )
        val hex = Hex.encode(ciphertext)
        val result = keyAlias +": ${hex}"
        Log.d( "RR:", "result = ${result}" )
        return result