Я новичок в Android, и я начал работать над существующим проектом, который имеет некоторый алгоритм шифрования,
Ниже приведен существующий код
var secureRandom = SecureRandom()
var masterKey = ByteArray(32)
secureRandom.nextBytes(masterKey)
var keyGen = KeyPairGenerator.getInstance("RSA")
keyGen.initialize(2048)
var keyPair = keyGen.generateKeyPair()
var pubKey = keyPair.public
var subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(ASN1Sequence.getInstance(pubKey.encoded))
var pubKeyEncoded = Base64.encodeToString(subjectPublicKeyInfo.parsePublicKey().encoded, Base64.DEFAULT)
var sb = StringBuilder()
sb.append("-----BEGIN RSA PUBLIC KEY-----\n")
sb.append(pubKeyEncoded)
sb.append("\n-----END RSA PUBLIC KEY-----\n")
val publicKey = sb.toString()
val privateKey = keyPair.private as RSAPrivateKey
val string = StringWriter()
var writer = PemWriter(string)
writer.writeObject(privateKey)//<-----Getting an error like Type Mismatch
writer.close()
Может кто-нибудь помочь мне, как решить эту проблему, я совершенно новый в этой области шифрования, кто-нибудь подскажет, откуда я могу получить более глубокое понимание криптографии,
из кода выше Я только что понял, что мы получаем два ключа, такие как publi c ключ и закрытый ключ для AES
Мы шифруем publi c ключ с помощью кода ниже
var subjectPublicKeyInfo = SubjectPublicKeyInfo.getInstance(ASN1Sequence.getInstance(pubKey.encoded))
var pubKeyEncoded = Base64.encodeToString(subjectPublicKeyInfo.parsePublicKey().encoded, Base64.DEFAULT)
Но я все еще не понимал, что будет использовать SubjectPublicKeyInfo, ASN1Sequence, PemWriter, если кто-нибудь есть знания, тогда, пожалуйста, объясните мне.
Я также получаю ошибку во время компиляции, как Требуется PemObjectGenerator! найдено RSAPrivateKey