6

Мне нужно экспортировать один из моих ключей GPG как ключ / сертификат PKCS12. gpg неспособен сделать это, но инструмент gpgsm есть. Однако ввод gpgsm -o <file> --export-secret-key-p12 <key-id> возвращает gpgsm: can't export secret key `<key-id>' . Я тестировал gpgsm --list-keys и он ничего не возвращал.

GPGSM должен работать с GPG? Я заметил, что при первом запуске для него был создан новый файл. Я бы предположил, что это не нужно, если GPG уже запущен и настроен. Обе стороны хотят иметь доступ к одной и той же связке ключей? Если так, как я могу это исправить? Если нет, как я могу экспортировать свой ключ из GPG и импортировать его в GPGSM?

2 ответа2

3

Было бы более полезно описать, почему вы хотите что-то сделать, а не только то, что вы хотите сделать. Я предполагаю, что вы пытаетесь использовать свой ключ PGP с шифрованием или подписью электронной почты S/MIME, что на самом деле невозможно.

Чтобы ответить на этот вопрос, нет, GPG и GPGSM используют разные форматы и протоколы, поэтому в первую очередь они реализованы как отдельные инструменты. GPG - это реализация OpenPGP, а GPGSM работает с X.509 (в основном S/MIME).

Хотя оба используют одни и те же криптографические алгоритмы и теоретически могут использовать один и тот же материал ключа (например, идентичные параметры RSA), на этом сходство заканчивается - вы не можете преобразовать сертификат пользователя OpenPGP напрямую в сертификат X.509, поэтому вы не можете его с пользой экспортировать. в формате PKCS # 12 тоже.

(gpg-agent может использовать ключи OpenPGP для аутентификации SSH, но это только потому, что в формате ключей SSH нет прикрепленных метаданных, поэтому "преобразование" просто извлекает параметры RSA. С другой стороны, сертификаты X.509 имеют такие метаданные, как имя субъекта, которое использует синтаксис, отличный от OpenPGP; наименование эмитента , которое OpenPGP не имеет (основываясь на веб-оф-доверие); и использование ключа (что непросто, так как большинство реализаций OpenPGP используют два отдельных ключа в одном "сертификате", один для подписи и один для шифрования).

0

Не прямой ответ на ваш вопрос, но CACert опубликовал вики-статью, в которой подробно описывается, что вы хотите сделать.

По сути, вы должны сгенерировать запрос на подпись сертификата, используя секретный ключ, который вы экспортировали из своей пары ключей, и получить сертификат, созданный центром сертификации, таким как CACert.

Я просто не могу экспортировать в формат файла p12 в Windows, используя gpgsm, но в Linux это не было проблемой.

Источник: http://wiki.cacert.org/ConvertingPgpKeyToCertificate

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .