Статус: Участник
Группы: Участники
Зарегистрирован: 12.11.2018(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 6 раз
|
Добрый день! Есть ли примеры samples-sources для работы с новыми ГОСТами. Конкретно интересует пример для подписи xml XMLSignDoc.java ("Формирование подписи всего XML-документа для алгоритма ГОСТ Р 34.10-2001". При попытке подписать xml новыми алгоритмами возникает ошибка java.security.InvalidKeyException: Недопустимый тип ключа. Ключ получал в тестовом центре, новые госты он поддерживает. На старых алгоритмах ошибки нет. Спасибо!
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2016(UTC) Сообщений: 126
Сказал(а) «Спасибо»: 8 раз Поблагодарили: 35 раз в 28 постах
|
|
 1 пользователь поблагодарил Aleksandr G* за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.11.2018(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 6 раз
|
Автор: Aleksandr G*  Спасибо, эти параметры менял первым делом, но результата не дало. Мои изменения в файле XMLSignDoc из примеров Код:
public static void main(String[] args) {
try {
//подписываемый xml документ
final String testDoc = "tests.xml";
//подписанный xml документ
final String signDoc = "XmlDSigDocument.xml";
// алгоритм ГОСТ Р 34.10-2001 (для генерирования ключевой пары)
// final String KeyPairAlgorithm = JCP.GOST_EL_DEGREE_NAME;
final String KeyPairAlgorithm = JCP.GOST_EL_2012_256_NAME;
// имя субъекта (оно же издателя) для генерирования самоподписанного сертификата
// final String certName = "CN=Alias, O=CryptoPro, C=RU";
final String certName = "CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, C=RU";
// алгоритм подписи (ГОСТ Р 34.10-2001)
// final String signMethod =
// "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
final String signMethod =
"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256";
// алгоритм хеширования, используемый при подписи (ГОСТ Р 34.11-94)
// final String digestMethod =
// "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
final String digestMethod =
"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256";
/* В первую очередь осуществляет регистрация алгоритма подписи ГОСТ Р 34.10-2001*/
// JCPXMLDSigInit.init();
XmlInit.init();
Logger.getLogger("LOG").info("sign doc begin");
signDoc(KeyPairAlgorithm, JCP.PROVIDER_NAME, JCP.GOST_EL_SIGN_NAME,
JCP.PROVIDER_NAME, certName, signMethod, digestMethod, testDoc, signDoc);
Logger.getLogger("LOG").info("sign doc end\nsign doc verify");
signDocVer(signDoc);
} catch (Exception e) {
e.printStackTrace();
}
}
Может дело в сертификате, в нем публичный ключ 2012 ГОСТа, а алгоритм подписи 2001 
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. В сертификате алгоритм подписи - алгоритм подписи ключом УЦ, издавшим сертификат. Отношения к XML подписи не имеет. |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.11.2018(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 6 раз
|
Автор: Евгений Афанасьев  Здравствуйте. В сертификате алгоритм подписи - алгоритм подписи ключом УЦ, издавшим сертификат. Отношения к XML подписи не имеет. Понял. Т.е. сертификат подходящий для подписи по новым алгоритмам и дело не в нём?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Да, открытый ключ в сертификате на картинке - ГОСТ 2012 (256). На счет примера: если он используется в том виде, что приложен выше, то там алгоритм подписи - JCP.GOST_EL_SIGN_NAME, он передается для подписи запроса и, если у вас версия JCP не новая, может привести к ошибке подписи запроса на сертификат. Нужно либо указать JCP.GOST_SIGN_2012_256_NAME, либо установить версию jcp с сайта, где подобной проверки на соответствие алгоритма подписи и ключа нет. Еще вы можете привести стек ошибки и законченный пример, попробуем его запустить. Отредактировано пользователем 13 ноября 2018 г. 16:54:27(UTC)
| Причина: Не указана |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 12.11.2018(UTC) Сообщений: 23  Сказал(а) «Спасибо»: 6 раз
|
Автор: Евгений Афанасьев  Да, открытый ключ в сертификате на картинке - ГОСТ 2012 (256). На счет примера: если он используется в том виде, что приложен выше, то там алгоритм подписи - JCP.GOST_EL_SIGN_NAME, он передается для подписи запроса и, если у вас версия JCP не новая, может привести к ошибке подписи запроса на сертификат. Нужно либо указать JCP.GOST_SIGN_2012_256_NAME, либо установить версию jcp с сайта, где подобной проверки на соответствие алгоритма подписи и ключа нет. Еще вы можете привести стек ошибки и законченный пример, попробуем его запустить. Большое спасибо, указал алгоритм подписи JCP.GOST_SIGN_2012_256_NAME, помогло!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close