Правильная ссылка на эту статью: |
WMSignerFX
WMSigner для платформы .Net (библиотека WebMoney.Cryptography)¶
Данная статья предназначена для разработчиков, использующих интерфейсы WebMoney Transfer в Microsoft .Net/.Net Core приложениях. В статье описано как использовать с библиотеку WebMoney.Cryptography (кодовое имя библиотеки WMSignerFX).
Библиотека WebMoney.Cryptography используется для получения цифровой подписи сообщения закрытым ключом WM Keeper WinPro. Она реализована на управляемом (managed) языке (язык разработки C#) и не требует специальных прав для своей работы.
Текущая версия библиотеки 4.0.0.
Получение цифровой подписи сообщения с помощью библиотеки WebMoney.Cryptography¶
Пример получения подписи сообщения на языке C#:
using WebMoney.Cryptography using System; namespace WebMoney.Examination { public class Program { static void Main(string[] args) { // xml-представление ключа WebMoney Keeper WinPro, полученное с помощью утилиты KeyExtractor string xmlKey = "<RSAKeyValue><Modulus>ccqACxNjlkI</Modulus><D>FW1RaQMqeIn8otCeHgD</D></RSAKeyValue>"; Signer signer = new Signer(); signer.Initialize(xmlKey); string signature = signer.Sign("message"); // подпись строки Console.WriteLine(signature); } } }
Для запуска этого кода, необходимо добавить в проект ссылку на библиотеку WebMoney.Cryptography или подключить ее с помощью менеджера пакетов NuGet:
Install-Package WebMoney.Cryptography
При инициализации объекта класса Signer, используется представление ключа в XML-формате: <RSAKeyValue><Modulus>{0}</Modulus><D>{1}</D></RSAKeyValue>, где {0} и {1} — значение модуля и приватной экспоненты в формате Base64. Порядок байт little-endian.
Возможные исключения при инициализации объекта класса Signer:¶
- ArgumentNullException.
- ArgumentOutOfRangeException (пустая строка).
- XmlException — строка не в XML-формате.
- FormatException — узел Modulus или D не содержат строку в Base64 формате.
- CryptographicException — неверный формат XML-документа (см. выше) или длина ключа меньше 528 бит или modulus является четным числом.
Возможные исключения при подписи строки (вызов метода Sign):¶
- ArgumentNullException.
- ArgumentException — строка содержит недопустимые символы ('\r' — недопустимый символ).
- InvalidOperationException — объект класса Signer не инициализирован. Перед использованием объект класса Signer нужно инициализировать, вызвав любой из двух методов Initialize (см. описание выше).
Пример получения подписи сообщения на языке VBScript и JScript (для использования в гаджетах Windows Vista и Windows 7):¶
VBScript¶
Dim signer Dim signature Set signer = CreateObject("WebMoney.Cryptography.Signer") signer.Initialize("<RSAKeyValue><Modulus>ccqACxNjlkI</Modulus><D>FW1RaQMqeIn8otCeHgD</D></RSAKeyValue>") signature = signer.Sign("test") Call MsgBox(signature)
JScript¶
var signer = WScript.CreateObject("WebMoney.Cryptography.Signer"); signer.Initialize("<RSAKeyValue><Modulus>ccqACxNjlkI</Modulus><D>FW1RaQMqeIn8otCeHgD</D></RSAKeyValue>"); var signature = signer.Sign("test"); WScript.Echo(signature);
Для запуска этого кода, необходимо зарегистрировать WebMoney.Cryptography как COM-компонент:
RegAsm.exe .\..\PUBLIC\v3.2-bin\WebMoney.Cryptography.dll \tlb gacutil.exe /if .\..\PUBLIC\v3.2-bin\WebMoney.Cryptography.dll gacutil.exe /if .\..\PUBLIC\v3.2-bin\BusinessTools.Cryptography.dll
Утилиты RegAsm и gacutil следует поместить в рабочую папку.
Получение XML-представления ключа WM Keeper WinPro¶
Получить представление ключа WM Keeper WinPro можно с помощью программы Key Extractor.
Обратите внимание! Начиная с версии библиотеки 3.1. формат представления ключа WM Keeper изменился. Старый формат более не поддерживается.
Рекомендации по использованию библиотеки.¶
Xml-представление ключа WMKeeper рекомендуется хранить в конфигурационном файле приложения в зашифрованном виде. Подробнее о шифровании разделов конфигурационного файла вы можете узнать в библиотеке MSDN
Использование библиотеки WebMoney.Cryptography в операционных системах GNU/Linux.¶
Проект Mono позволяет использовать библиотеку WebMoney.Cryptography и программу Key Extractor практически на любой операционной системе семейства Unix. Ни библиотека, ни программа не требуют какой-либо доработки для этого. Дополнительную информацию смотрите в статье Key Extractor.
Список изменений¶
Версия 4.0 от 9 декабря 2021¶
- Добавлена поддержка .Net Core (.Net Standard 2.0).
Версия 3.3.1¶
- Добавлена возможность подключения с помощью менеджера пакетов NuGet.
- Объединена библиотека BusinessTools.Cryptography и WebMoney.Cryptography.
- Исправлена ошибка "Invalid Key Length", возникавшая при расшифровке некоторых ключей.
Поддержка участников¶
Техническая поддержка осуществляется по e-mail: support@wmsigner.com
Ссылки на ресурсы¶
Старые версии¶
- Исходный код (все в одном пакете) v3.2
- Сборка для Windows (поддержка COM) и Linux (для Mono) v3.2
- Сборка для Windows CE v3.2
Зеркала на CodePlex, Google Code и SourceForge содержат старые версии и не обновляются.
Все исполняемые файлы и библиотеки подписаны цифровой подписью. Безопасность файлов без валидной цифровой подписи не гарантируется.