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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline serg2030  
#1 Оставлено : 10 апреля 2019 г. 16:29:18(UTC)
serg2030

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

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

Здравствуйте,

Подскажите, как создать максимально просто CMS контейнер. Желательно с использованием Cades.
На входе: данные byte[], alias ключа, пароль ключа.

До этого использовали deprecated класс CMSSignEx, например:

// подпись по алгоритму ГОСТ 2012
return CMSSignEx(data, key, cert, detached,
JCP.GOST_DIGEST_2012_256_OID, JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
JCP.GOST_SIGN_DH_2012_256_NAME, JCP.PROVIDER_NAME);

Нужно также, чтобы oid автоматически извлекались из данных сертификата, так как они заранее неизвестны.

P.s. используем лицензионную версию jcp 2

Отредактировано пользователем 11 апреля 2019 г. 6:44:28(UTC)  | Причина: Не указана

Offline serg2030  
#2 Оставлено : 19 апреля 2019 г. 8:55:27(UTC)
serg2030

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

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

Ответ то какой-нибудь будет? Это же стандартная задача. Или укажите где конкретно в документации есть код для создания CMS на основе Cades. Также будет нелишним код готового Java примера.
Offline Евгений Афанасьев  
#3 Оставлено : 19 апреля 2019 г. 14:49:26(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Посмотрите примеры в пакете CMS_samples или CAdES. Если CMS_samples , то oid'ы можно заранее выбрать самостоятельно (oid'ы алгоритма хеширования и подписи), опираясь на алгоритма ключа сертификата или ключа подписи (key.getAlgorithm()):

Код:

алгоритм ключа - JCP.GOST_EL_DEGREE_NAME или JCP.GOST_EL_DH_NAME (ГОСТ 2001) 
  digest_oid  = JCP.GOST_DIGEST_OID
  key_oid     = JCP.GOST_EL_KEY_OID
  digest_name = JCP.GOST_DIGEST_NAME
  sign_name   = JCP.GOST_EL_SIGN_NAME
  
алгоритм ключа - JCP.GOST_EL_2012_256_NAME или JCP.GOST_DH_2012_256_NAME (ГОСТ 2012 256)
  digest_oid  = JCP.GOST_DIGEST_2012_256_OID
  key_oid     = JCP.GOST_PARAMS_SIG_2012_256_KEY_OID
  digest_name = JCP.GOST_DIGEST_2012_256_NAME
  sign_name   = JCP.GOST_SIGN_2012_256_NAME

алгоритм ключа - JCP.GOST_EL_2012_512_NAME или JCP.GOST_DH_2012_512_NAME (ГОСТ 2012 256)
  digest_oid  = JCP.GOST_DIGEST_2012_512_OID
  key_oid     = JCP.GOST_PARAMS_SIG_2012_512_KEY_OID
  digest_name = JCP.GOST_DIGEST_2012_512_NAME
  sign_name   = JCP.GOST_SIGN_2012_512_NAME

sign_name также формируется по такому принципу: 
sign_name = <digest_oid>with<key_oid> или <digest_name>with<алгоритм ключа>


Об этом есть в руководстве разработчика.

Отредактировано пользователем 19 апреля 2019 г. 14:50:51(UTC)  | Причина: Не указана

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