java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: ошибка: 0c0000b9: процедуры кодирования ASN.1: OPENSSL_internal: WRONG_TAG - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу конвертировать строку в RSAPublicKey в Android.Я пытался с приведенным ниже кодом, но это дает исключение.Я хочу использовать этот ключ для извлечения модуля и показателя степени из ключа.

  String PUBLIC_KEY = "BgIAAACkAABSU0ExAAQAAAEAAQBJGj09Gbyl7BS/8MytvjBUUfaktW984VHHW4lSI9y2OwaeOq4qqSD6IOHU9HL/QtwZ+wELq28eAOQSnr11hifMf6zWjIsCBHOEpLNJjL3wxjl7dUBEGMJOeZj2rmcf8v7lP/rpAtO/G8wKXhAIKLIFxcChkXwQKbQbHQ/FtX2bwg==";


  byte[] keyBytes = DatatypeConverter.parseBase64Binary(PUBLIC_KEY);
  X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
  KeyFactory keyFactory = KeyFactory.getInstance("RSA");
  PublicKey pubKey = keyFactory.generatePublic(keySpec);

Исключение

java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0c0000b9:ASN.1 encoding routines:OPENSSL_internal:WRONG_TAG
at com.android.org.conscrypt.OpenSSLKey.getPublicKey(OpenSSLKey.java:295)
at com.android.org.conscrypt.OpenSSLRSAKeyFactory.engineGeneratePublic(OpenSSLRSAKeyFactory.java:47)
at java.security.KeyFactory.generatePublic(KeyFactory.java:357)

Caused by: java.lang.RuntimeException: error:0c0000b9:ASN.1 encoding routines:OPENSSL_internal:WRONG_TAG
at com.android.org.conscrypt.NativeCrypto.d2i_PUBKEY(Native Method)
at com.android.org.conscrypt.OpenSSLKey.getPublicKey(OpenSSLKey.java:293)
... 20 more

java.lang.RuntimeException: error:03000070:bignum routines:OPENSSL_internal:NO_INVERSE
at com.android.org.conscrypt.NativeCrypto.RSA_public_encrypt(Native Method)
at com.android.org.conscrypt.OpenSSLCipherRSA.engineDoFinal(OpenSSLCipherRSA.java:268)
at javax.crypto.Cipher.doFinal(Cipher.java:2056)
...