I have some example Java code from a web site. I c...
# android
r
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