Пара ключей RSA, созданная с использованием поставщика SunRsaSign
, состоит из внутреннего представления, в основном состоящего из значений BigInteger
.RSA - это алгоритм, который использует целочисленный алгоритм в конце концов.Внутренне это вряд ли будет закодировано в ASN.1, поскольку алгоритм не может быть выполнен с использованием двоичного кода.Вы можете использовать свой отладчик для просмотра внутренних полей, но обратите внимание, что внутренняя структура деталь реализации , и на нее не следует полагаться.
Для преобразования открытого ключа в ASN.1вам просто нужно вызвать serverPublicKey.getEncoded()
, и вы получите структуру SubjectPublicKeyInfo, которая является структурой данных ASN.1, определенной для сертификатов X.509, закодированной с использованием схемы двоичного кодирования BER (DER - это подмножество BER, обычно кодировкаDER совместим).Он состоит из последовательности, содержащей OID - указывающий тип ключа RSA - и открытый ключ, закодированный в PKCS # 1.Вы можете найти детали в здесь , здесь и, конечно, структуре RSAPublicKey в здесь .
Вы также можете позвонить serverPrivateKey.getEncoded()
, чтобы получитьнезащищенная внутренняя структура PKCS # 8.Тем не менее, это очень сомнительно, если вы должны это сделать.Вы не должны распространять незащищенные закрытые ключи.Если вам нужно сохранить его, используйте вместо этого хорошо защищенное хранилище ключей PKCS # 12.