Может загрузить открытый ключ в Java, используя X509EncodedKeySpec, но не может проанализировать его с помощью openssl. - PullRequest
0 голосов
/ 11 мая 2018

У меня есть пара секретных / открытых ключей, которая была сгенерирована кем-то другим и передана мне.В настоящее время пара используется в активном развертывании.Оба ключа хранятся в файлах с расширением .der.Закрытый ключ, который я могу проверить и правильно проанализировать:

openssl pkcs8 -inform DER -nocrypt -in private_key.der

Открытый, однако не работает с:

Ошибка расшифровки ключа 139834801850032: ошибка: 0D0680A8: процедуры кодирования asn1: ASN1_CHECK_TLEN: неправильный тег: tasn_dec.c: 1338: 139834801850032: ошибка: 0D06C03A: ошибка кодирования asn1: ASN1_ND: 139834801850032: ошибка: 0D08303A: подпрограммы кодирования asn1: ASN1_TEMPLATE_NOEXP_D2I: вложенная ошибка asn1: tasn_dec.c: 772: поле = версия, тип = PKCS8_PRIV_KEY_INFO

и используется открытым ключом java.загружается следующим образом:

     byte[] publicKeyArray - <the public key bytes straight from file>
     X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyArray);
     KeyFactory factory = KeyFactory.getInstance("RSA");

     java.security.PublicKey publicKey = factory.generatePublic(spec);

Документация класса для X509EncodedKeySpec гласит:

<code> * This class represents the ASN.1 encoding of a public key,
 * encoded according to the ASN.1 type {@code SubjectPublicKeyInfo}.
 * The {@code SubjectPublicKeyInfo} syntax is defined in the X.509
 * standard as follows:
 *
 * <pre>
 * SubjectPublicKeyInfo ::= SEQUENCE {
 *   algorithm AlgorithmIdentifier,
 *   subjectPublicKey BIT STRING }
 * 

и:

   * Creates a new X509EncodedKeySpec with the given encoded key.
     *
     * @param encodedKey the key, which is assumed to be
     * encoded according to the X.509 standard. The contents of the
     * array are copied to protect against subsequent modification.
     * @exception NullPointerException if {@code encodedKey}
     * is null.
     */

Я пробовалэкспериментировал с различными командами openssl, включая asn1parse, но не повезло.Как я могу использовать / извлечь открытый ключ из моего файла, используя что-то кроме java X509EncodedKeySpec?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...