Во-первых, у вас есть несколько проблем с терминологией:
- стандарт X509 определяет сертификаты, а RSA и DSA - два алгоритма открытого ключа, которые можно использовать в этих сертификатах;
- сертификаты используются для хранения открытых ключей, а не закрытых ключей.
- PKCS # 12 - это стандарт для контейнера, который может содержать клиентские сертификаты X509 и соответствующие закрытые ключи, а также (необязательно) сертификаты X509 центров сертификации, подписавших клиентский сертификат (ы) X509.
Итак, если вы изучаете файл PKCS # 12 (обычно расширение .p12), то вы уже знаете:
- Он содержит как минимум один клиентский сертификат X509, который содержит открытый ключ; и
- Содержит соответствующие закрытые ключи.
Все, что вы не знаете, это сертификаты и закрытые ключи RSA или DSA. Вы можете проверить это, извлекая сертификаты и затем проверяя их:
openssl pkcs12 -in mycert.p12 -clcerts -nokeys -out mycert.crt
openssl x509 -in mycert.crt -text
Текстовый вывод команды openssl x509
должен содержать раздел Subject Public Key
, в который будут включены поля, позволяющие увидеть, является ли это ключ RSA или DSA (вместе с размером ключа).