0

Мы находимся в точке разлома, где нам нужно добавить для клиента возможность подписывать XML-сертификат. Поскольку все программное обеспечение сделано в Delphi, мы хотели бы реализовать это в самом приложении (или через библиотеку dll, если есть что-то там, что можно было бы использовать так легко).Delphi - Sign XML with cerfificate (RSA-SHA256, x509)

Out SW создает XML-код, который необходимо подписать с помощью клиента cerfiticate (используя закрытый ключ).

Основываясь на большом количестве читаемых здесь в Интернете, я могу заключить следующее: Путаница.

Каковы наши варианты? Какие-нибудь хорошие примеры/руководства о том, как этого добиться?

Мы пробовали, проходящие через эту here и this здесь, но ничего путного не вышло ...

Мы используем Delphi 7 и Delphi XE3 (зависит от модуля приложения, но в основном это Безразлично Действительно, для чего мы получаем решение).

Примечание: Извиняюсь заранее за обобщенный вопрос, но я все новое в поле cerfiticates!

Спасибо. Лучший, М.

+0

Вы можете использовать 'capicom' https://msdn.microsoft.com/en-us/library/windows/desktop/aa375732%28v = vs.85% 29.aspx. Capicom объявлен как устаревший, поскольку он реализован только в 32 бит. Но он хорошо работает во всех 32 и 64 битах Windows (от XP до Windows 10). –

+0

@ValMarinov Есть ли у вас какие-либо ссылки на примеры этого использования? Google в основном возвращает информацию об этом устаревании ... –

+1

Я думаю, что Google «пример delphi capicom» покажет много ресурсов. Если нет, я мог бы привести пример, но мне нужно некоторое время. –

ответ

0

Одним из решений может быть использование 3-й библиотеки партии, такие как XML BlackBox: https://www.eldos.com/SecureBlackbox/desc-xml.php

+1

Это довольно дорогое решение: (Но оно также обширно ... –

0

Если вы хотите, чтобы получить более низкий уровень вы могли бы сделать его части себя ссылки на документы:

http://www.w3.org/TR/xmldsig-core/

https://en.wikipedia.org/wiki/XML_Signature

Delphi Inspiration LibXML обертка позволяет выполнять canonicalisation часть. http://www.yunqa.de/delphi/doku.php/products/xml/index

Вы могли бы подписать его с OpenSSL и добавить элемент подписи

+0

Чтобы ответить на исходный вопрос: Определенно не * хочу * получить более низкий уровень, но когда нет другого способа, вы можете/должны/должны попробовать каждый вариант. Это может быть и способ, так что спасибо, хотя я более или менее не знаком с тем, что делает каждая часть, но посмотрим. Надеюсь, я с нетерпением жду решения @ Вала, хотя ... –