Используют ли GPG и GPGSM одну и ту же базу данных ключей?

Мне нужно экспортировать один из моих ключей 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 ответа

Было бы более полезно описать, почему вы хотите что-то сделать, а не только то, что вы хотите сделать. Я предполагаю, что вы пытаетесь использовать свой ключ 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 используют два отдельных ключа в одном "сертификат", один для подписи и один для шифрования).)

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

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

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

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

Другие вопросы по тегам