Как преобразовать строку, содержащую открытый ключ в формате PEM `PKCS#1`, в объект PublicKey в приложении Android?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как преобразовать строку, содержащую открытый ключ в формате PEM `PKCS#1`, в объект PublicKey в приложении Android?

Сообщение Anonymous »


Как преобразовать строку, содержащую открытый ключ в формате PEM PKCS#1, в объект PublicKey?

В настоящее время мой код успешно преобразует строку только в формат PKCS#8.
const val PKCS1PublicHeader = "-----НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ RSA -----" const val PKCS1PublicFooter = "-----КОНЕЦ ОТКРЫТОГО КЛЮЧА RSA -----" const val PKCS8PublicHeader = "-----НАЧАТЬ ПУБЛИЧНЫЙ КЛЮЧ -----" const val PKCS8PublicFooter = "-----КОНЕЦ ПУБЛИЧНОГО КЛЮЧА -----" весело String.pemToPublicKey(алгоритм: String): PublicKey? { вернуть попытку { val isRSAPublicKey = this.contains(PKCS1PublicHeader) val очищенныйKeyContent = это .replace("\\r\\n", "") .replace("\\n", "").let { если (isRSAPublicKey) { it.replace(PKCS1PublicHeader, "").replace(PKCS1PublicFooter, "") } еще { it.replace(PKCS8PublicHeader, "").replace(PKCS8PublicFooter, "") } } val keyBytes = Base64.decode(cleanedKeyContent, Base64.NO_WRAP) println("Очищенное содержимое ключа: $cleanedKeyContent") println("Является ли открытый ключ RSA: $isRSAPublicKey") val keySpec: KeySpec = if (isRSAPublicKey) { модуль val = BigInteger(1, keyBytes) показатель экспоненты = BigInteger.valueOf(65537) RSAPublicKeySpec (модуль, показатель степени) } еще { X509EncodedKeySpec(keyBytes) } val keyFactory = KeyFactory.getInstance(алгоритм) val publicKey = keyFactory.generatePublic(keySpec) // как RSAPublicKey println("Сгенерированный открытый ключ: $publicKey") публичный ключ // KeyFactory.getInstance(алгоритм).generatePublic(keySpec) } catch (e: Exception) { Timber.e(e, «Неверный ключ PEM: $this») нулевой } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как преобразовать ключ RSA, закодированный в PKCS#8, в PKCS#1 в Java?
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Невозможно импортировать PublicKey из solana.publickey.
    Anonymous » » в форуме Python
    0 Ответы
    185 Просмотры
    Последнее сообщение Anonymous
  • NordNet API запрашивает открытый ключ (ключ PEM) и сообщает, что предоставляет его, но его нигде нет.
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Поиск шифрования PKCS#8 Кодированный PEM -файл программно
    Anonymous » » в форуме JAVA
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Как я могу добавить cert.pem и key.pem в качестве заголовков для вызова API в файле функций каратэ с помощью Python?
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»