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