Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline oleg.bragin  
#1 Оставлено : 13 ноября 2015 г. 1:30:48(UTC)
oleg.bragin

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.11.2015(UTC)
Сообщений: 8
Российская Федерация
Откуда: СПб

Всем привет!
Реализую интеграцию с сервисом Equifax.
В документации по подключению содержится следующее: сформировать файл запроса в приведенных ниже форматах, после чего подписать закрытым ключом Партнера этот запрос в формате CMS/PKCS#7 в DER кодировке.
В документации к КРИПТО ПРО .NET SDK, в примерах, есть SingleSigner пример, который, судя, по комментариям должен делать то, что надо. Однако на деле все гораздо хуже, полученный файл (поток) не читается Equifax.

Что стало ясно после долгих исследований просторов инета и терпения техподдержки: есть эталонный файл, он прикреплен к сообщению. Этот файл подписан так как надо, таким его ожидают в Equifax.
Структура файла следующая:
{signature}
<XML content>
{signature}

Прошу помочь правильно определить какой именно пример может подойти в моем случае, плюс любые модификации.

Заранее спасибо за помощь!

primer zaprosa ko.xml.sgn (1kb) загружен 13 раз(а).

Offline Андрей Писарев  
#2 Оставлено : 13 ноября 2015 г. 7:42:32(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,175
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2394 раз в 1883 постах
Добрый день.

Похоже на cms с данными, но без включения сертификата (в эталоне использован сертификат с серийным номером: 694D5B510000000006A8).

А делали как?
Пример файла, который "не читается" в Equifax?
Техническую поддержку оказываем тут
Наша база знаний
Offline oleg.bragin  
#3 Оставлено : 13 ноября 2015 г. 10:57:59(UTC)
oleg.bragin

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.11.2015(UTC)
Сообщений: 8
Российская Федерация
Откуда: СПб

Вот код, который подписывает.

Код, который читает XML в поток:

Код:
using (var contentStream = new MemoryStream())
{
    var namespaces = new XmlSerializerNamespaces();
    namespaces.Add("", "");

    var serializer = new XmlSerializer(requestEntity.GetType(), string.Empty);
    var settings = new XmlWriterSettings
    {
        Encoding = Encoding.GetEncoding(1251),
        NamespaceHandling = NamespaceHandling.OmitDuplicates,
        Indent = true
    };

    using (var xmlTextWriter = XmlWriter.Create(contentStream, settings))
    {
        serializer.Serialize(xmlTextWriter, requestEntity, namespaces);
    }

    // Rewind the Stream.
    contentStream.Seek(0, SeekOrigin.Begin);

    return SecurityHelper.SignRequestContent(contentStream, personalCertificateSerialNumber);
}


Код который подписывает:

Код:
// Sign the stream and save it to another stream.
private static Stream SignRequestContent(MemoryStream streamToSign, X509Certificate2 personalCertificate)
{
    var contentInfo = new ContentInfo(streamToSign.ToArray());
    var signedCms = new SignedCms(contentInfo);
    var cmsSigner = new CmsSigner(personalCertificate);
    signedCms.ComputeSignature(cmsSigner);
    return new MemoryStream(signedCms.Encode());
}


Сам контент XML может не соответствовать тому, что в эталонном файле, главное - это понять как подписывать.

primer zaprosa ko.xml (1kb) загружен 8 раз(а).
Offline Андрей Писарев  
#4 Оставлено : 13 ноября 2015 г. 11:02:51(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,175
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2394 раз в 1883 постах
Так что требуется в итоге?

Чтобы подпись была с сертификатом подписи или без?

Свойство CmsSigner.IncludeOption
Цитата:

None - Цепочка сертификатов не включается.
Техническую поддержку оказываем тут
Наша база знаний
Offline oleg.bragin  
#5 Оставлено : 13 ноября 2015 г. 11:07:41(UTC)
oleg.bragin

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.11.2015(UTC)
Сообщений: 8
Российская Федерация
Откуда: СПб

Предыдущая тема уже потеряла актуальность, так как файл на выходе получается совсем не тот.
В итоге требуется получить эталонный файл по структуре.
Offline Андрей Писарев  
#6 Оставлено : 13 ноября 2015 г. 11:09:47(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,175
Мужчина
Российская Федерация

Сказал «Спасибо»: 618 раз
Поблагодарили: 2394 раз в 1883 постах
Автор: oleg.bragin Перейти к цитате
Предыдущая тема уже потеряла актуальность, так как файл на выходе получается совсем не тот.
В итоге требуется получить эталонный файл по структуре.



CmsSigner.IncludeOption - None - пробовали?

А ссылку можно на документацию к Equifax?
Здесь или в ЛС.


Техническую поддержку оказываем тут
Наша база знаний
Offline oleg.bragin  
#7 Оставлено : 14 ноября 2015 г. 12:18:15(UTC)
oleg.bragin

Статус: Новичок

Группы: Участники
Зарегистрирован: 12.11.2015(UTC)
Сообщений: 8
Российская Федерация
Откуда: СПб

Всем большое спасибо!

Тип подписи все же CMS, напутал с кодировкой файла запроса. Надо было читать его в windows-1251.

Отредактировано пользователем 14 ноября 2015 г. 12:19:44(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.