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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline kvach2avl  
#1 Оставлено : 6 сентября 2016 г. 11:22:24(UTC)
kvach2avl

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

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

Добрый день.

Подскажите, как обстоит дело с поддержкой XAdES-BES в КриптоПро CSP 3.9 для С/С++?
Сходу примеров на эту тему не нашёл.
Offline cross  
#2 Оставлено : 9 сентября 2016 г. 18:19:40(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
В данный момент реализация XADES-BES доступна только для Java и КриптоПро JCP. Для C/C++ планируем делать реализацию, но по срокам точно сказать не можем пока. Скорее всего это будет уже в следующем году.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline Максим Коллегин  
#3 Оставлено : 9 сентября 2016 г. 22:19:26(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Добавлю, что это довольно несложно сделать с помощью xmlsec\libxml2\mscrypto.
Знания в базе знаний, поддержка в техподдержке
Offline kvach2avl  
#4 Оставлено : 13 сентября 2016 г. 20:07:59(UTC)
kvach2avl

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

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

Автор: maxdm Перейти к цитате
Добавлю, что это довольно несложно сделать с помощью xmlsec\libxml2\mscrypto.


Да, такое решение уже реализовано. Но там есть свои сложности - целевой софт должен быть кросплатформенным и при портировании xmlsec (в части mscrypto) приходится допиливать. Плюс появляются дополнительные зависимости как при разработке, так и в runtime.
А хочется всё-таки иметь одну зависимость - от КриптоПро
Offline dosik  
#5 Оставлено : 7 декабря 2016 г. 0:51:54(UTC)
dosik

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

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

Сказал(а) «Спасибо»: 2 раз
Автор: maxdm Перейти к цитате
Добавлю, что это довольно несложно сделать с помощью xmlsec\libxml2\mscrypto.


Быть может тогда автор поделиться или Вы подскажите, на сколько это просто. А то вторую неделю уже не просто...Brick wall
xmlSecDSigCtxSign(dsigCtx, signNode) требует, чтобы в поле dsigCtx->signKey был помещен ключ, а вытащить его из хранилища нельзя по определению.

В принципе получил верный дайджест простыми CryptAcquireContext, xmlC14NDocDumpMemory (libxml2), CryptCreateHash, CryptGetHashParam и т.п. но вот подпись что-то не валидная получается.
Уж помогайте d'oh!
Offline Максим Коллегин  
#6 Оставлено : 7 декабря 2016 г. 9:40:54(UTC)
Максим Коллегин

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
Порядок вызовов примерно такой:
Код:
dsigCtx = xmlSecDSigCtxCreate(NULL);
/* по сертификату и ссылке на ключ создаем контекст криптопровайцдера (внутри xmlsec) */
data = xmlSecMSCryptoCertAdopt(pCert, xmlSecKeyDataTypePublic | xmlSecKeyDataTypePrivate);

/* создаем объект key и назначаем key data и x509 data */
key = xmlSecKeyCreate();
xmlSecKeySetValue(key, data);

/* проверяем всё ли сходится и запоминаем сертификат в контекст ключа */
if (xmlSecKeyIsValid(key)) {
xmlSecCryptoAppKeyCertLoadMemory(key, pCert->pbCertEncoded, pCert->cbCertEncoded, xmlSecKeyDataFormatDer);
xmlSecDSigCtxSetSignKey(dsigCtx, key);
key = NULL;
}
/* генерим подпись !!! */
xmlSecDSigCtxSign(dsigCtx, signNode);
Знания в базе знаний, поддержка в техподдержке
thanks 1 пользователь поблагодарил Максим Коллегин за этот пост.
dosik оставлено 07.12.2016(UTC)
Offline dosik  
#7 Оставлено : 7 декабря 2016 г. 12:28:51(UTC)
dosik

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

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

Сказал(а) «Спасибо»: 2 раз
Спасибо. Подобное предлагали вот тут:
https://www.aleksey.com/.../xmlsec/2005/006742.html
но там вопрос решился проще, через xmlSecKeysMngrFindKey.
А xmlSecDSigCtxSetSignKey что за зверь? Просто дублирует с проверкой ссылку по образу и подобию xmlSecKeySetValue, или что-то еще выполняет?

Вроде с заработало.

Отредактировано пользователем 7 декабря 2016 г. 18:48:29(UTC)  | Причина: Не указана

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