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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline ekelhaft  
#1 Оставлено : 20 марта 2008 г. 15:16:16(UTC)
ekelhaft

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

Группы: Участники
Зарегистрирован: 27.02.2008(UTC)
Сообщений: 7

Есть следующий код (взято из примеров):
Код:
CRYPT_SIGN_MESSAGE_PARA signPara = { sizeof(signPara) };
    signPara.dwMsgEncodingType = X509_ASN_ENCODING | PKCS_7_ASN_ENCODING;
    signPara.pSigningCert = 0; // 0 for window
    signPara.HashAlgorithm.pszObjId = szOID_CP_GOST_R3411;

    CADES_SIGN_MESSAGE_PARA para = { sizeof(para) };
    para.pSignMessagePara = &signPara;
	para.pCadesSignPara = NULL;


    vector < BYTE > data(10,25);

    const BYTE *pbToBeSigned[] = { &data[0] };
    DWORD cbToBeSigned[] = { (DWORD)data.size() };

    PCRYPT_DATA_BLOB pSignedMessage = 0;
    if(!CadesSignMessage(&para,FALSE,1,pbToBeSigned,cbToBeSigned,
        &pSignedMessage))
    {
        cout  << "CadesSignMessage() failed" <<  std::endl;
		cout  << hex << GetLastError();
		system("pause");
		return 0;
    }

    std::vector < BYTE > message(pSignedMessage->cbData);
    std::copy(pSignedMessage->pbData,
        pSignedMessage->pbData + pSignedMessage->cbData,message.begin());

    if(!CadesFreeBlob(pSignedMessage))
    {
        std::cout << "CadesSignMessage() failed" << std::endl;
		system("pause");
		return 0;
    }


CadesSignMessage не отрабатывает, выдает ошибку C2100121. Насколько понимаю, нужно указать адрес службы штампов времени. То есть, необходимо установить CryptoPro TSP.
В этой связи возникли вопросы:
1. Верны ли вообще мои предположения?
2.Обязательно ли для работы CadesSignMessage наличие клиента CryptoPro TSP?

Отредактировано пользователем 20 марта 2008 г. 15:17:43(UTC)  | Причина: Не указана

Offline Павел Смирнов  
#2 Оставлено : 20 марта 2008 г. 15:39:03(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
1. Да, Вы правильно понимаете, что нужно указать адрес службы штампов времени.
2. КриптоПро TSP Client входит в состав КриптоПро ЭЦП SDK и специально устанавливать его не надо, а вот служба штампов времени Вам понадобится, также как и служба OCSP.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline ekelhaft  
#3 Оставлено : 20 марта 2008 г. 15:54:51(UTC)
ekelhaft

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

Группы: Участники
Зарегистрирован: 27.02.2008(UTC)
Сообщений: 7

Спасибо.
Тогда еще один вопрос: а на машины без SDK, на которых в конечном счете должно работать ПО, использующее cades, придется ставить TSP Client и соответствующую лицензию?
Offline kaper_75  
#4 Оставлено : 24 октября 2018 г. 13:04:32(UTC)
kaper_75

Статус: Участник

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

Сказал(а) «Спасибо»: 2 раз
Добрый день
Недавно начал заниматься ЭЦП и точно такая же проблема. КриптоПро ЭЦП SDK установлен
Адрес службы штампов времени указывается в структуре CADES_SERVICE_CONNECTION_PARA - http://www.cryptopro.ru/tsp/tsp.srf

SERVICE_URL:='http://www.cryptopro.ru/tsp/tsp.srf';
FillMemory(@tspConnectionPara, SizeOf(CADES_SERVICE_CONNECTION_PARA), 0);
tspConnectionPara.wszUri:= @SERVICE_URL;

Формат CADES-T

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