| ||||
| ||||
Ответьте пожалуйста, почему при создании запросов на обновление, если указывать стандартный набор OID'ов, то запрос уходит. (1.2.643.2.2.34.6, 1.3.6.1.5.5.7.3.2, 1.3.6.1.5.5.7.3.4) При попытке указать любой другой набор (полученный с AdminSoapPort.GetCertTemplates()) возникает ошибка при отправке(получении) запроса SubmitRequest() -- CryptDecodeObjectEx; Номер: -2146881278 Источник: CPICom.CertRequest.1 Описание: CryptDecodeObjectEx Если импортирую запросы на УЦ из файлов, тоже самое: самоподписанный проходит, подписанный нет. В чем может быть дело? | ||||
Ответы: | ||||
| ||||
А на код SOAP вызова можно взглянуть? | ||||
| ||||
можно, но говорю же, что если импортирую запросы на УЦ из файлов, тоже самое: самоподписанный проходит, подписанный нет. ... cert = CryptoPRO.Containers[_iN].GetRenewalCertRequest(OIDS, out container); ... if (!InitSOAP(CryptoPRO.Containers[_iN].Certificate.SubjectCN)) return (false); ... int reqID = 0; try { reqID = int.Parse((string)CRSPSoap.InvokeMethod("SubmitRequest", cert, "")); } catch {... Номер: -2146881278 Источник: CPICom.CertRequest.1 Описание: CryptDecodeObjectEx ... } ... | ||||
| ||||
Ясно. Тогда заодно и давайте какой-нибудь файл подписанного запроса. | ||||
| ||||
Отправил на info@cryptopro.ru | ||||
| ||||
Получили почту. Выяснилось, что Вы подписываете неправильный запрос. Подробности: Были присланы: 1) самоподписанный запрос на сертификат (pkcs10) в кодировке base64 2) тот же pkcs10, но в кодировке der, был подписан и всё это закодировано в base64 Так вот - во втором случае в pkcs10 нет последнего байта (выяснилось простым сравнением исходного pkcs10, перекодированного в der и подписанной части в pkcs7). Поэтому и не удалось раскодировать pkcs10. Кстати, в другом случае (когда использовались стандартные OID-ы) pkcs10 перед подписью был в base64, поэтому всё получилось. | ||||
| ||||
Василий, почту получил. Спасибо, что выяснили в чем проблема. Кстати, куда исчезает последний байт: http://cryptopro.ru/cryptopro/forum/view.asp?q=6002 http://www.codeproject.com/dotnet/CapicomUTF8.asp | ||||
| ||||
А для CAPICOM 2.1.0.2 всё по-прежнему? | ||||
| ||||
Было: ... SignedDataClass oSignedData = new SignedDataClass(); UtilitiesClass Out = new UtilitiesClass(); oSignedData.Content = Out.Base64Decode(sPKCS10);// <<<--Здесь ошибка ... Исправил: ... SignedDataClass oSignedData = new SignedDataClass(); UtilitiesClass Out = new UtilitiesClass(); oSignedData.Content = Out.ByteArrayToBinaryString( System.Text.Encoding.UTF8.GetBytes(sPKCS10)); ... ps. Vasiliy, sorry for late reply | ||||