MCEwCQYFKw4DAhoFAAQU3M24VwKG02yUu6jlEH+u6R4N8Ig=
- это кодировка Base64 для структуры ASN.1 в кодировке DER: SEQUENCE
, содержащий вначале AlgorithmIdentifier
(что говорит о том, что это SHA-1, без параметров, поскольку SHA-1 не принимает ни одного),затем OCTET STRING
, который содержит фактическое 20-байтовое значение.В шестнадцатеричном формате это значение: dccdb8570286d36c94bba8e5107faee91e0df088
.
Эта структура ASN.1 является частью стандартного механизма подписи RSA .Вы используете RSA decryption для доступа к этой структуре, которая является нестандартной.На самом деле вам повезло что-либо получить, поскольку RSA-шифрование и RSA-подпись - это два разных алгоритма.Случается, что они оба используют одинаковые пары ключей, и что схемы подписи и шифрования старого стиля (PKCS # 1 v1.5) используют аналогичные методы заполнения (аналогичные, но не идентичные;уже немного удивительно, что реализация RSA на Java не подавляет заполнение сигнатуры при использовании в режиме расшифровки).
В любом случае 6l26iBH7il/yrCQW6eEfv/VqAVo=
- это кодировка Base64 для 20-байтового значения, которое в шестнадцатеричном форматеэто: ea5dba8811fb8a5ff2ac2416e9e11fbff56a015a
.Это то, что вы получаете, хэшируя структуру XML, показанную выше, после удаления всех пробелов между тегами.Удаление всех пробелов не надлежащей канонизации.На самом деле, насколько я знаю, пробелы затрагиваются только между атрибутами внутри тегов, но внешние пробелы должны оставаться неизменными (за исключением нормализации окончания строки [вещь LF / CR + LF]).
TheЗначение, которое использовалось для генерации подписи (dccdb85...
), может быть получено с помощью показанного вами объекта XML и путем удаления начальных пробелов.Чтобы было понятно: вы копируете + вставляете XML в файл, затем удаляете начальные пробелы (от 0 до 3 пробелов) в каждой строке.Вы убедитесь, что все конец строки используют один LF (0x0A байт), и вы удаляете последний LF (тот, что сразу после </ds:SignedInfo>
).Полученный файл должен иметь длину 930 байт, а его хэш SHA-1 является ожидаемым значением dccdb85...
.