Как использовать SPOMENSSL SMIME -Sign Чтобы получить дайджестную стоимость в XML?

Причина Xmonad обрабатывает ALT_R + ENTER , как если бы это было mod1 + ENTER , потому что X устанавливает mod1Mask бит в поле состояния события KeyEvent , как показано в выходных данных xev в вопросе. Xmonad не знает, что ALT_R - это нажатая клавиша, потому что X сообщает ему, что ENTER был нажат с state = mod1Mask .

Почему X не соблюдает xmodmap - это отдельный вопрос, задаваемый здесь: Почему X не обрабатывает ALT_L и ALT_R по-разному w / r / t Mod1

1
20.07.2018, 14:26
1 ответ

Ваше сообщение явно является попыткой очистить сообщение S/MIME -подписанное (, также известное как сообщение с отдельной подписью ), см. rfc5751 sec 3.4.3 et pred, хотя на самом деле это неверно. ; первая часть, представляющая собой объект данных, не имеет заголовков MIME.

Некоторое программное обеспечение, включая OpenSSL, может справиться с этим отклонением, но OpenSSL (по-прежнему! )создает отдельные подписи с подтипом x-pkcs7-signatureиз v2 (rfc2311 ), а не pkcs7-signatureиз более новых версий, как в вашем сообщении.

Отсоединенная подпись PKCS7/CMS, используемая в этом типе сообщения S/MIME, имеет несколько необязательных компонентов, которые могут использоваться или нет. Из усеченных данных, которые вы показываете, невозможно определить, какие параметры используются в этом сообщении, и в любом случае вы не указываете, так или иначе вы заботитесь об этих параметрах.

What is the command to generate it ?

С OpenSSLopenssl smime -sign -sha256 -signer $certfile [-inkey $keyfile]без-nodetachсоздает сообщение в этом формате, за исключением того, что я отметил выше, используя более старый подтип с x-. Параметр -inkeyможно опустить, если закрытый ключ включен в тот же файл, что и сертификат. Вы можете опционально:

  • включать или не включать сертификат подписавшего

  • явно включать дополнительный (цепочку )сертификат (с)

  • использовать атрибуты signedAttributes или нет, как описано на справочной странице вашей системы или в Интернете . Вы можете вводить и выводить в именованные файлы или использовать stdin и stdout, которые, в свою очередь, могут быть перенаправлены или переданы оболочкой (или ОС ).

    За исключением очень старых версий OpenSSL (0.9.8 или ниже ), вы также можете использовать openssl cms, который на самом деле является надмножеством openssl smimeи, несмотря на его название, по умолчанию выполняет S /MIME --чтобы получить илиopenssl smimeилиopenssl cmsдля выполнения CMS, вы должны указать -outformдля подписи или шифрования или -informдля проверки или расшифровки!

Команда smime verifyв вашем Q проверяет подпись S/MIME (и по умолчанию применимую цепочку сертификатов, но похоже, что вы используете автономный сертификат, и, следовательно, нет реальной цепочки )и затем отбрасывает его, выводя только подписанные данные, которые в вашем случае представляют собой XML.

Внешний тег<cms>может означать, что эти данные предназначены для представления синтаксиса криптографических сообщений, преемника PKCS7 (rfc5652 et pred ), но эта комбинация данных не соответствует какому-либо сообщению CMS.. Названия предполагают, что он содержит хеш-значение для определенного файла; если у вас есть (предполагаемая )копия этого файла и вы хотите сверить хэш с файлом, OpenSSL не может сделать это автоматически (и даже проверку, выполняемую обычными командами Unix {md5,sha1,etc}sum -cс использованием более простого объявления -текстовый формат hoc ). Чтобы проверить вручную, ваша вторая команда является правильным запуском; чтобы извлечь хэш из XML, вы можете сделать что-то вроде

 $ grep -Po '<digest>\K[^<]*' 

или, если у вас нет grep с PCRE, есть эквиваленты с sed awk perl, почти наверняка охваченные другими вопросами здесь; а затем сравните два хеш-значения с помощью оболочки test "$x" == "$y"или [ "$x" == "$y" ], или bash,ksh,zsh [[, или awk, или perl, или другими методами.

OTOH, если ваша проблема на самом деле в создании тела XML, OpenSSL может обрабатывать только хэш-значение; остальным придется использовать стандартные текстовые инструменты или, возможно, инструменты XML.

4
27.01.2020, 23:18

Теги

Похожие вопросы