26 (2017-08-09 13:43:28 отредактировано apirogov)

Re: Работа с API. C# quick start

А вы уверены что проблема именно в этом?
upd: снял галочку Prefer 32 bit и вроде заработало. Просит пароли от рутокена уже)) Так что скорее всего проблема была именно в этом. Установки справочника на 32бит будет достаточно?

upd #2: Установили ещё и 32бит справочник. Взлетела инициализация.

27 (2017-08-16 13:27:27 отредактировано apirogov)

Re: Работа с API. C# quick start

Здравствуйте!

Изучив 4ую версию документа и получив информацию что нужно делать как написано в разделе "ЗАЩИТА ЭЛЕКТРОННЫХ СООБЩЕНИЙ (ПАКЕТОВ ЭС) С ПОМОЩЬЮ КА" получилось следующее:

1 - сам xml сформировали(ED-###);
2 - подписали получив byte[] sign;
3 -

var sigInBase64 = Convert.ToBase64String(sign);
                var xmlSigInBase64 = "<dsig:MACValue xmlns:dsig=\"urn:cbr-ru:dsig:v1.1\">" + sigInBase64 + "</dsig:MACValue>";
                var dataInBase64 = Convert.ToBase64String(data);
                var xmlDataInBase64 = "<sen:Object>" + sigInBase64 + "</sen:Object>";
xmlPackage = "<sen:SigEnvelope xmlns:sen=\"urn:cbr-ru:dsig:v1.1\">"
                    + "<sen:SigContainer>"
                    + xmlSigInBase64
                    + "</sen:SigContainer>"
                    + xmlDataInBase64
                    + " </sen:SigEnvelope>";
                var resultFilePath = Path.Combine(Path.GetDirectoryName(fileName), Path.GetFileNameWithoutExtension(fileName) + "Signed.xml");

Собственно вопрос в том, что верно ли сформировано тело xmlPackage. Всё ли верно "орбернул" в тэги? Или может чего-то не хватает/лишнее ?

Вот что получилось:
<sen:SigEnvelope xmlns:sen="urn:cbr-ru:dsig:v1.1">
    <sen:SigContainer>
        <dsig:MACValue xmlns:dsig="urn:cbr-ru:dsig:v1.1">MIIBYAYJKoблаблаблаRJFD6M=</dsig:MACValue>
    </sen:SigContainer>
    <sen:Object>MIIBYAблаблаблаD6M=</sen:Object>
</sen:SigEnvelope>