:: Visual Foxpro, Foxpro for DOS
УКЭП в XML-файле
tatanat

Сообщений: 15
Дата регистрации: 18.08.2011
Добрый день
У меня задача в XML-файл добавить УКЭП:
SignedInfo с информацией о методе каноникализации, алгоритме хэширования, алгоритме генерации УКЭП и ссылку на подписываемый блок данных
Reference, внутри которого должны быть определены DigestMethod (определяющий алгоритм вычисления хэш суммы) и DigestValue (вычисленное значение хэш суммы от подписываемых данных)
SignatureValue, содержащя рассчитанное значение УКЭП
KeyInfo, содержащая публичный сертификат пользователя в формате X509v3.

Все найденные примеры на C# или Java.
Может кто-нибудь уже делал на FOXPRO? Помогите примером
Ratings: 0 negative/0 positive
Re: УКЭП в XML-файле
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
tatanat
У меня задача в XML-файл добавить УКЭП:

1) Вы считаете, что мы уже знаем структуру ВАШЕГО XML-файла?

2) Видимо, УКЭП - это "Усиленная квалифицированная электронная подпись"? Тут не все знают узкоспециализированные аббревиатуры.

3)
tatanat
Все найденные примеры на C# или Java.
Отлично! Вы уже что-то пробовали сами написать и что-то конкретно у Вас не получилось? Кидайте сюда все - структуру (примеры) Вашего XML, эти примеры и Ваши пробы написать что-то. Если совсем за Вас - то есть у нас такой раздел, там можно обсудить. ;)


------------------
"Veni, vidi, vici!"(с)
Ratings: 3 negative/0 positive
Re: УКЭП в XML-файле
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
tatanat
содержащая публичный сертификат пользователя в формате X509v3

Не про этот речь? habr.com


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: УКЭП в XML-файле
tatanat

Сообщений: 15
Дата регистрации: 18.08.2011
Спасибо, но, скорее всего, буду делать на C# и вызывать из FoxPro
Ratings: 0 negative/1 positive
Re: УКЭП в XML-файле
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Удачи!

P.S. Решите проблему - поделитесь и здесь, пусть код на C#.


------------------
"Veni, vidi, vici!"(с)
Ratings: 2 negative/0 positive
Re: УКЭП в XML-файле
rvc44

Сообщений: 2211
Откуда: Тамбов
Дата регистрации: 06.12.2005
Всё прекрасно подписывается на чистом VFP, C# не нужен!
Однако, следует иметь ввиду, что для VFP нет готовых библиотек для выполнения двух обязательных преобразований XML перед его подписанием. Без этих преобразований подпись XML попросту будет невалидной и не пройдёт ни одну проверку. Первое преобразование называется "каноникализация" (приведение XML к каноническому виду). Второе преобразование - "трансформация СМЭВ" (актуально только для СМЭВ 3.xx, но никак не для СМЭВ 2). У обоих преобразований есть четкие шаги и правила их выполнения. Первое преобразование описано в соответствующем RFC (наизусть не помню номер). Разбираться с тем, по каким правилам выполняется второе - лучше по методическим рекомендациям СМЭВ последней версии, размещенным на ресурсе smev3.gosuslugi.ru. Поэтому у вас есть два варианта: 1) изучить алгоритмы и разработать самому библиотеки каноникализации и трансформации; 2) сразу формировать каноникализированный и трансформированный документ вместо исходного. Для чего опять же придется изучить правила осуществления этих двух преобразований, которые не вижу смысла здесь полностью воспроизводить, т.к. они достаточно хорошо описаны и легко гуглятся в интернете. Имейте ввиду, что при подписании XML двумя подписями (ЭП-ОВ и ЭП-СП в терминах СМЭВ), второй вариант может не прокатить от слова совсем и вам хочешь или нет, всё равно придётся писать свою библиотеку. Простого решения по щелчку пальцев на эту тему для VFP не существует, но это не значит, что это невозможно сделать! Если кто-то очень не любит делать "закат солнца вручную", то альтернатива для вас одна - полностью переходить на java или C#, где все необходимые трансформации XML уже реализованы в виде набора готовых библиотек и с их разработкой вам заморачиваться не придётся. О всех плюсах и минусах таких подходов я говорить здесь не буду. У каждого свой путь. В VFP есть свои прелести в виде простоты, удобства и лаконичности языка, чего, на мой взгляд, так не хватает java. В java вам даже не надо знать, как устроены внутри и как работают эти обе трансформации. Просто вызывайте их последовательно и XML будет подготовлен. Но именно принцип работы "черный ящик" лично мне больше всего не нравится, т.к. я всегда люблю докопаться до сути происходящего и иметь четкое представление "как это работает и функционирует". В правила конаникализации, в частности, входит упорядочивание сначала всех неймспейсов (префиксов пространств имён), а потом всех атрибутов тегов по алфавиту для каждого узла (элемента) XML. В правила трансформации СМЭВ 3, в частности, входит принудительное переименовывание всех неймспейсов в документе в порядке их появления: ns1, ns2,...,nsN. Никаких префиксов пространств имён вида tns, smev и т.д. в трансформированном документе не допускается. Но это далеко не все правила. Есть ещё много других. С их поным перечнем можно ознакомиться в документации! На мой взгляд, СМЭВ весьма коварен, поскольку серьёзно запутывает начинающих разработчиков, которые хотят разобраться со всеми правилами его работы. Коварство заключается в том, что и на java и на C# подписывается не исходный, а подготовленный без непосредственного участия разработчика трансформированный документ, который нигде не сохраняется, а подпись вставляется в нетрансформированный документ с исходными префиксами вида tns и т.д., т.е. фактически подпись в документе принадлежит совсем не тому документу, в который она вставлена. А чтобы эту подпись потом проверить, тому кто будет её проверять придётся перед проверкой полностью выполнить ту же самую цепочку преобразований (трансформаций) исходного документа, которая производилась перед его подписанием по общеизветным правилам двух трансформаций. Вся эта кухня спрятана от глаз окружающих как в java, так и в C#, но не в VFP, где для реализации detached (присоединённой) подписи по формату XMLDSig, вам придётся начинать с изучения правил двух трансформаций, чтобы реализовать или обеспечить эти трансформации в своём приложении без использования каких-либо готовых сторонних библиотек. Зато разобравшись однажды с правилами и алгоритмами трансформаций и реализовав их на VFP, вы без труда потом сможете перенести то же самое на Phyton или в любую другую среду программирования. Готовых библиотек каноникализации для VFP я не встречал. Свои разработки, встроенные в ядро системы для СМЭВ 2 и 3.xx я писал еще летом 2012 года. Работают они по описанным выше правилам успешно и по сей день. 8 лет полёт нормальный!
Ratings: 0 negative/3 positive
Re: УКЭП в XML-файле
of63
Автор

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Роман! У нас, програмеров куча [ненужной?] работы. ты в этом (СМЭВ, вредный, нежизненный, элемент "цифровизации") разобрался, разбираешшься (у нас железака какая-то это делает, ты - в этом пытаешся сделать с нуля), плюсую за разбор, за попытку.

> вы без труда потом сможете перенести то же самое на Phyton или в любую другую среду программирования. Готовых библиотек каноникализации для VFP я не встречал. Свои разработки, встроенные в ядро системы для СМЭВ 2 и 3.xx я писал еще летом 2012 года.

Ты молодец. Как тебя еще поддержать, в трудовом порыве? ) Ну, я Олег, я тоже трудоголик )



Исправлено 1 раз(а). Последнее : of63, 01.04.20 22:36
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 27 alex; OlegA  (Гостей: 25)

© 2000-2024 Fox Club 
Яндекс.Метрика