RSA Gemalto шифрование / дешифрование - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь преобразовать необработанный открытый ключ в PublicKey в формате String, используя X509EncodedKeySpec.Я создал это с помощью стороннего поставщика Gemalto.

Когда я сгенерировал открытый ключ, используя стандартную библиотеку Java, я преобразовал закодированную строку в PublicKey. Но когда я создал открытый и использовал библиотеку Gemalto.Я получаю исключение.

1004 * Строка base64PublicKey = "----- НАЧАТЬ RSA PUBLIC KEY ----- MIGJAoGBALWuuAJWAKOKWnMcbr1go52TiYGPB6wT2knLJnY840V3glq2IQ9iLQn8 STAFoNAoahfr / bsqNBGEoG1yT0wsIY1SbIjkD0I / A94jHQxwcTxXWP / mQxKg75t6 I / vJl3fSjcZgHg5JrtA + yeM5uCfHETbICBK4N54lxCzv0JaYgVk1AgMBAAE = ----- END RSAPUBLIC KEY ----- "

Удаление первой и последней строки

base64PublicKey = base64PublicKey.replaceAll (" \ n "," ") .replace (" ----- НАЧАТЬ RSAPUBLIC KEY ----- "," ") .replace (" ----- END RSA PUBLIC KEY ----- "," ");

После того, как в этой строке закодировать открытый ключ, будет выглядетькак:

MIGJAoGBALWuuAJWAKOKWnMcbr1go52TiYGPB6wT2knLJnY840V3glq2IQ9iLQn8STAFoNAoahfr / bsqNBGEoG1yT0wsIY1SbIjkD0I / A94jHQxwcTxXWP / mQxKg75t6I / vJl3fSjcZgHg5JrtA + yeM5uCfHETbICBK4N54lxCzv0JaYgVk1AgMBAAE =

* * 1014 X509EncodedKeySpec KeySpec = новый X509EncodedKeySpec (. Base64.getDecoder () декодирования (base64PublicKey));KeyFactory keyFactory = KeyFactory.getInstance ("RSA") PublicKey publicKey = keyFactory.generatePublic (keySpec);

Я должен иметь возможность получить PublicKey.Но я получаю исключение ниже: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException: ошибка синтаксического анализа, не последовательность в sun.security.rsa.RSAKeyFactory.engineGeneratePublic (RSAKeyFactory.java:205) в java.security.KeyFactory.generatePublic (KeyFactory.java:334)

...