Статус: Новичок
Группы: Участники
Зарегистрирован: 08.08.2020(UTC) Сообщений: 9 Откуда: Москва Сказал «Спасибо»: 1 раз
|
Здравствуйте, уважаемые коллеги! У меня вопрос по усовершенствованной подписи pdf. Точнее, по ее созданию на компе с прокси сервером. Я написал на c# приложение для клиента. Это приложение подписывает pdf усовершенствованной подписью, используя CAPICOM. На компе с интернетом работает прекрасно. Но у одного клиента нет. Не может достучаться до заданного tspServerAddress. Вот кстати, код подписывающей функции. Код:
protected byte[] cades_X_Long_Type_1(int intCSize, PdfSignatureAppearance sap, X509Certificate2 certificate, string url)
{
try
{
sapPreClose(intCSize, sap);
Stream rangeStream = sap.GetRangeStream();
MemoryStream contentStream = new MemoryStream();
CopyTo(rangeStream, contentStream);
byte[] content = contentStream.ToArray();
string tspServerAddress = (url != null && url.Trim() != "" ? url.Trim() : @"http://www.cryptopro.ru/tsp/tsp.srf");
CPSigner cps = new CPSigner();
// Импортируем сертификат из X509Certificate2
CAPICOM.Certificate cert = new CAPICOM.Certificate();
cert.Import(Convert.ToBase64String(certificate.Export(X509ContentType.Cert)));
cps.Certificate = cert;
cps.Options = CAPICOM_CERTIFICATE_INCLUDE_OPTION.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN;
cps.TSAAddress = tspServerAddress;
CadesSignedData csd = new CadesSignedData();
// base64
csd.ContentEncoding = CADESCOM_CONTENT_ENCODING_TYPE.CADESCOM_BASE64_TO_BINARY;
csd.Content = Convert.ToBase64String(content);
// Создание подписи CAdES BES
string signature = null;
signature = csd.SignCades(cps, CADESCOM_CADES_TYPE.CADESCOM_CADES_BES,
true, CAdESCOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
// Дополнение подписи CAdES BES до подписи CAdES X Long Type 1
signature = csd.EnhanceCades(CADESCOM_CADES_TYPE.CADESCOM_CADES_X_LONG_TYPE_1,
tspServerAddress, CAdESCOM.CAPICOM_ENCODING_TYPE.CAPICOM_ENCODE_BASE64);
return Convert.FromBase64String(signature);
}
catch (Exception e)
{
ExitCode = ProgramExitCode.cades_X_Long_Type_1;
myWriteLine("Error while cades_X_Long_Type_1 function: " + e.Message);
return null;
}
}
У клиента выбрасывается исключение с текстом "При попытке отправки запроса возникла ошибка HTTP". Он нарыл в документации, что: "Указатель на структуру CADES_PROXY_PARA с параметрами прокси (может быть равным NULL). Данный параметр задаёт настройки прокси для доступа к службам актуальных статусов и к службе штампов времени в процессе создания усовершенствованной подписи. Если указатель равен NULL, то для доступа к службам будут использоваться соответствующие настройки групповых политик клиентов служб (OCSP Client, TSP Client). Если параметры прокси в групповых политиках не настроены, будут использоваться настройки прокси Microsoft Internet Explorer". Спрашивает - можно ли задать в эту структуру NULL? А я не знаю, каким боком привязать эту структуру к моему коду подписи. Пожалуйста, подскажите как здесь быть. Очень жду от Вас помощи и заранее благодарен.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
Здравствуйте. 1. Это не CAPICOM, а CAdESCOM 2. CADES_PROXY_PARA не доступен через COM, структура по-умолчанию не заполнена => решать с доступом групповыми политиками или настройки через IE |
|
1 пользователь поблагодарил Андрей * за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
+ зачем CADESCOM_CADES_BES делаете? Если можно сразу CADESCOM_CADES_X_LONG_TYPE_1... |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 495 раз Поблагодарили: 2035 раз в 1579 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 08.08.2020(UTC) Сообщений: 9 Откуда: Москва Сказал «Спасибо»: 1 раз
|
Ясно! Спасибо большое, Андрей! Поправлю!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close