Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Возможно ли написать клиент для НБКИ используя КриптоПро.NET ?
Статус: Участник
Группы: Участники
Зарегистрирован: 18.06.2012(UTC) Сообщений: 14
|
Подскажите информацию по этому поводу, с чего начать, документация ну вообще запутанная.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.06.2012(UTC) Сообщений: 14
|
вопрос меняется совсем на "КАк написать клиент для НБКИ"?
Я скачиваю по HTTPs ответ на мой запрос, это XML подписанный ЭЦП? Как расшифровать, как извлечь нормальные данные?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,764   Сказал «Спасибо»: 579 раз Поблагодарили: 2307 раз в 1807 постах
|
overwriter написал:вопрос меняется совсем на "КАк написать клиент для НБКИ"?
Я скачиваю по HTTPs ответ на мой запрос, это XML подписанный ЭЦП? Как расшифровать, как извлечь нормальные данные? пример ответа от сервера можно увидеть? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.06.2012(UTC) Сообщений: 14
|
Андрей * написал:overwriter написал:вопрос меняется совсем на "КАк написать клиент для НБКИ"?
Я скачиваю по HTTPs ответ на мой запрос, это XML подписанный ЭЦП? Как расшифровать, как извлечь нормальные данные? http://cryptopro.ru/foru...tors/yafEditor/quote.gifпример ответа от сервера можно увидеть? Прошу его вот так: Код:public static string Test(){
string data = @"<?xml version=""1.0"" encoding=""Windows-1251"" ?>
<product>
<prequest>
<req>
<AddressReq>
<street>Горького</street>
<houseNumber>1</houseNumber>
<apartment>38</apartment>
<city>Магадан</city>
<postal>685000</postal>
<addressType>1</addressType>
</AddressReq>
<AddressReq>
<street>Цветочная</street>
<houseNumber>5</houseNumber>
<apartment>143</apartment>
<city>Магадан</city>
<postal>685000</postal>
<addressType>2</addressType>
</AddressReq>
<IdReq>
<idNum>123456</idNum>
<idType>21</idType>
<seriesNumber>1234</seriesNumber>
<issueCountry>г. Магадан</issueCountry>
<issueDate>2006-03-18</issueDate>
<issueAuthority>ОВД Центральное, к/п 255</issueAuthority>
</IdReq>
<InquiryReq>
<inqPurpose>01</inqPurpose>
<inqAmount>10000</inqAmount>
<currencyCode>USD</currencyCode>
</InquiryReq>
<PersonReq>
<name1>Кустов</name1>
<first>Георгий</first>
<paternal>Георгиевич</paternal>
<gender>1</gender>
<birthDt>1946-07-06</birthDt>
<placeOfBirth>Москва</placeOfBirth>
</PersonReq>
<RequestorReq>
<MemberCode>0000TT000000</MemberCode>
<UserID>0000TT000002</UserID>
<Password>password</Password>
</RequestorReq>
<RefReq>
<product>CHST</product>
</RefReq>
<IOType>B2B</IOType>
<OutputFormat>XML</OutputFormat>
<lang>ru</lang>
</req>
</prequest>
</product>";
var client = new WebClient();
client.Headers["Content-Type"] = "text/xml; charset=windows-1251";
client.Encoding = Encoding.GetEncoding(1251);
//var dataBytes = Encoding.GetEncoding(1251).GetBytes(data);
//var res = client.UploadData("http://icrs.demo.nbki.ru/score", dataBytes);
//var str = Encoding.UTF8.GetString(res);
var result = client.UploadString("http://icrs.demo.nbki.ru/score", data);
return result;
}
и получаю вот это. Код:"0Ђ\t*†H†ч\r\a Ђ0Ђ1\f0\n*…\t\00Ђ\t*†H†ч\r\a Ђ$Ђ‚и<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n<nbchScoringReport>\n\n<product>\n<prequest>\n<req>\n<AddressReq>\n<houseNumber>1</houseNumber>\n<street>Горького</street>\n<apartment>38</apartment>\n<city>Магадан</city>\n<postal>685000</postal>\n<addressType>1</addressType>\n</AddressReq>\n<AddressReq>\n<houseNumber>5</houseNumber>\n<street>Цветочная</street>\n<apartment>143</apartment>\n<city>Магадан</city>\n<postal>685000</postal>\n<addressType>2</addressType>\n</AddressReq>\n<IdReq>\n<idNum>123456</idNum>\n<idType>21</idType>\n<seriesNumber>1234</seriesNumber>\n<issueCountry>г. Магадан</issueCountry>\n<issueDate>2006-03-18+04:00</issueDate>\n<issueAuthority>ОВД Центральное, к/п 255</issueAuthority>\n</IdReq>\n<InquiryReq>\n<inqPurpose>01</inqPurpose>\n<inqAmount>10000</inqAmount>\n<currencyCode>USD</currencyCode>\n</InquiryReq>\n<PersonReq>\n<name1>Кустов</name1>\n<first>Георгий</first>\n<paternal>Георгиевич</paternal>\n<gender>1</gender>\n<birthDt>1946-07-06+04:00</birthDt>\n<placeOfBirth>Москва</placeOfBirth>\n</PersonReq>‚…\n<RequestorReq>\n<MemberCode>0000TT000000</MemberCode>\n<UserID>0000TT000002</UserID>\n<Password>password</Password>\n</RequestorReq>\n<RefReq>\n<product>CHST</product>\n</RefReq>\n<IOType>B2B</IOType>\n<OutputFormat>XML</OutputFormat>\n<lang>ru</lang>\n</req>\n</prequest>\n<preply>\n<err>\n<ctErr>\n<Code>32</Code>\n<Text>User Not Found</Text>\n</ctErr>\n</err>\n</preply>\n</product>\n\n\n</nbchScoringReport>\n\0\0\0\0\0\0 Ђ0‚a0‚ \nf`Sv\0\0GW0\b*…0e1 0\t*†H†ч\r\tinfo@cryptopro.ru1\v0\tURU10U\n\nCRYPTO-PRO10UTest Center CRYPTO-PRO0\r110620104825Z\r141004070941Z0Ѓ„1\v0\tURU10\rU\bMoscow10\rU\aMoscow10U\nOJSC NBCH 201110Uicrs.demo.nbki.ru10\t*†H†ч\r\tsupport@nbki.ru0c0*…0\a*…$\0\a*…C\0@С@\t¤@\v¶Y»фэ7‹ЩNHхIХѕѓљ^(…ѓ7Lq^ДR\"1Д‡“яєsl2@=ЭбАў@Є+|2Ј‚~0‚z0Uяр0\t*†H†ч\r\t\f0\n0\b*…0UЧѕmдa\vҐcLtЎ<zK1]ўв0U%\f0\n\b+\a0U#0ЂmЏ^Щ_¬‘”•љ087z*0UUN0L0J H F†Dhttp://www.cryptopro.ru/CertEnroll/Test%20Center%20CRYPTO-PRO(2).crl0Ѓ \b+\aЃ“0Ѓђ03\b+\a0†'http://www.cryptopro.ru/ocspnc/ocsp.srf0Y\b+\a0†Mhttp://www.cryptopro.ru/CertEnroll/pki-site_Test%20Center%20CRYPTO-PRO(2).crt0\b*…A\0¶A№Щь—е‘Ћї+PСd”hOњD9NюЎћYКv”:•›™§є„ьцЩ‘iФ^¦W¶-а!ЇХ6P®†–\0\01‚A0‚=0s0e1 0\t*†H†ч\r\tinfo@cryptopro.ru1\v0\tURU10U\n\nCRYPTO-PRO10UTest Center CRYPTO-PRO\nf`Sv\0\0GW0\n*…\t\0 i0\t*†H†ч\r\t1\v\t*†H†ч\r\a0\t*†H†ч\r\t1\r120618140811Z0/\t*†H†ч\r\t1\" \rXшѕ5KЌ1љdw\\Є6lРп њњ1Љп¤ќ/¶„ё0\n*…\0@VF®ш¶|eг°›!їbhЫ1ЂъСтЌppl!›’.Wt·\"Ѕ_<Ў·AГЪњ)·Ео‰.yЯЙтн%Ё°\0\0\0\0\0\0"
я совсем не понимаю что мне нужно сделать... Это подписано с тестовым ключом каким-то? в документации НБКИ ничего не нашел...
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.06.2012(UTC) Сообщений: 14
|
а еще я пытаюсь проверить файл полученные вот так:
D:\>cryptcp.exe -verify -sd3 bureu.txt
и получаю такой результат...
CryptCP 3.39 (c) "КРИПТО-ПРО", 2002-2012. Утилита командной строки для подписи и шифрования файлов. Не удалось загрузить серийный номер (код: 21000002).
.\sn.cpp:299: 0x20000324
D:\>
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,764   Сказал «Спасибо»: 579 раз Поблагодарили: 2307 раз в 1807 постах
|
Цитата:я совсем не понимаю что мне нужно сделать... Т.е. это предложение придумать, что делать дальше участникам этого форума? А что в ТЗ написано? Цитата: Это подписано с тестовым ключом каким-то? .
Да, это же для тестирования\разработчиков адрес... Цитата: Документация: Для целей тестирование направляйте тестовые запросы на: Host: icrs.demo.nbki.ru
Цитата: в документации НБКИ ничего не нашел..
Не знаю, у меня "гугл" выдал сразу doc файл, где есть описание ... Цитата:ИЗВЛЕЧЕНИЕ ОТВЕТА В ФОРМАТЕ XML
System-to-System Channel на полученный запрос направит двухкомпонентный ответ, содержащий в себе ответ в формате XML и электронную цифровую подпись.
Прежде чем прочесть ответ в формате XML, необходимо извлечь ответ XML из файла. Поле этого возможно проверить электронную цифровую подпись против содержания файла.
Отредактировано пользователем 19 июня 2012 г. 0:25:47(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,764   Сказал «Спасибо»: 579 раз Поблагодарили: 2307 раз в 1807 постах
|
подправил код выше, на такой: public static byte[] Test() { .... var client = new WebClient(); client.Headers["Content-Type"] = "text/xml; charset=windows-1251"; client.Encoding = Encoding.GetEncoding(1251); var dataBytes = Encoding.GetEncoding(1251).GetBytes(data);return client.UploadData("http://icrs.demo.nbki.ru/score", dataBytes); } protected void Page_Load(object sender, EventArgs e) { System.IO.FileStream A1 = new System.IO.FileStream(@"D:\tmp\answer.xml.sig", System.IO.FileMode.Create, System.IO.FileAccess.ReadWrite); Byte[] b1 = Test(); A1.Write (b1, 0, b1.Length); A1.Close(); } Ответ: XML с присоединенной ЭЦП в PKCS7. Подписывается тестовым сертификатом (для icrs.demo.nbki.ru выдан в Test Center CRYPTO-PRO), т.к. этот адрес для тестирования... Отредактировано пользователем 18 июня 2012 г. 23:30:00(UTC)
| Причина: Не указана Вложение(я):  answer_xml.zip (3kb) загружен 16 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,764   Сказал «Спасибо»: 579 раз Поблагодарили: 2307 раз в 1807 постах
|
overwriter написал: Как расшифровать, как извлечь нормальные данные? вкратце: SignedCms cms = new SignedCms(); cms.Decode(Signed_Data); cms.CheckSignature(true); cms.ContentInfo.Content - подписанные данные (исходный xml) Все есть на форуме\документации (SDK: Пример проверки подписанного PKCS#7/CMS сообщения) Отредактировано пользователем 19 июня 2012 г. 0:28:00(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,764   Сказал «Спасибо»: 579 раз Поблагодарили: 2307 раз в 1807 постах
|
overwriter написал:а еще я пытаюсь проверить файл полученные вот так:
D:\>cryptcp.exe -verify -sd3 bureu.txt
и получаю такой результат...
CryptCP 3.39 (c) "КРИПТО-ПРО", 2002-2012. Утилита командной строки для подписи и шифрования файлов. Не удалось загрузить серийный номер (код: 21000002).
.\sn.cpp:299: 0x20000324
D:\> Цитата: C:\Program Files\Crypto Pro\CSP>csptest -sfsign -verify -in c:\answer.xml.sig
Signature was verified OK Total: SYS: 0.109 sec USR: 1.203 sec UTC: 1.817 sec [ErrorCode: 0x00000000]
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 18.06.2012(UTC) Сообщений: 14
|
можно тот документ который вы нашли посмотреть? и по чем искали) спасибо, за подробные ответы.
|
|
|
|
Форум КриптоПро
»
Общие вопросы
»
Общие вопросы
»
Возможно ли написать клиент для НБКИ используя КриптоПро.NET ?
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close