Цифровая подпись в Python без кодировки ASN.1? - PullRequest
0 голосов
/ 28 января 2019

Нам нужно сгенерировать цифровую подпись без кодировок ASN.1 для проверки последующим приложением.Мы можем сделать это с помощью openssl в командной строке:кодировки ASN.1 (то есть, если я не разветвляюсь PyCrypto, чтобы позволить мне удалить их).Библиотека rsa также не допускает этого.Существуют ли какие-либо библиотеки или команды Python, которые я пропустил, которые допускают такую ​​гибкость?

1 Ответ

0 голосов
/ 29 января 2019

Согласно этому ответу , команда OpenSSL, которую вы показываете, создает сигнатуру RSASSA-PKCS1-v1_5, которая по определению всегда содержит закодированную структуру ASN.1 DER: ваше предположение на самом деле неверно.

Однако, для фиксированного алгоритма хеширования приемнику не требуется и не рекомендуется реализовывать полный анализатор DER.Он может просто проверить наличие определенной строки байтов (вместе с некоторыми другими байтами заполнения, и перед проверкой дайджеста в крайнем правом положении). В этом другом ответе показана кодировка DER для самых популярных алгоритмов дайджеста.

Если вы действительно не хотите, чтобы в ваших подписях был ASN.1, вы можете переключиться только на RSASSA-PSS.

...