Статус: Новичок
Группы: Участники
Зарегистрирован: 07.07.2022(UTC) Сообщений: 2 Откуда: Уфа
|
Добрый день! Хотим перейти на новый ГОСТ по шифрованию взамен устаревшего. Используем JCP для шифрования SOAP запросов. Ранее использовали такой код Код:
// Создание случайного сессионного ключа.
KeyGenerator kg = KeyGenerator.getInstance("GOST28147");
if (cert.getPublicKey().getAlgorithm().equals(JCP.GOST_EL_2012_256_NAME)
|| cert.getPublicKey().getAlgorithm().equals(JCP.GOST_EL_2012_512_NAME)) {
kg.init(CryptParamsSpec.getInstance(CryptParamsSpec.Rosstandart_TC26_Z)); // для ГОСТ 2012
}
SecretKey sessionKey = kg.generateKey();
/**
* создание шифратора для зашифрования ключа. Константа URI_GOST_TRANSPORT определена в файле
* ru.CryptoPro.JCPxml.Consts public static final String URI_GOST_TRANSPORT =
* "urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001";
**/
XMLCipher keyCipher = XMLCipher.getInstance(Consts.URI_GOST_TRANSPORT);
keyCipher.init(XMLCipher.WRAP_MODE, cert.getPublicKey());
// зашифрование ключа
EncryptedKey encryptedKey = keyCipher.encryptKey(doc, sessionKey);
encryptedKey.setKeyInfo(certKeyInfo);
/**
* Создаем шифратор в режиме зашифрования. Константа URI_GOST_CIPHER определена в файле
* ru.CryptoPro.JCPxml.Consts public static final String URI_GOST_CIPHER =
* "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147";
**/
XMLCipher xmlCipher = XMLCipher.getInstance(Consts.URI_GOST_CIPHER);
xmlCipher.init(XMLCipher.ENCRYPT_MODE, sessionKey);
// зашифрование документа
/*
* "true" below indicates that we want to encrypt element's content and not the element itself.
* Also, the doFinal method would modify the document by replacing the EncrypteData element for the
* data to be encrypted.
*/
xmlCipher.doFinal(doc, element, false);
Я пытался модифицировать код для работы с новым ГОСТ: Код:
//Генерируем ключ для алгоритма магма
KeyGenerator kg = KeyGenerator.getInstance(JCP.GOST_M_CIPHER_NAME, JCSP.PROVIDER_NAME);
SecretKey sessionKey = kg.generateKey();
//Вот тут не нашел константу для того что бы инициализировать XMLCipher для шифрования сессионного ключа по новому ГОСТу
XMLCipher keyCipher = XMLCipher.getInstance(Consts.URI_GOST_TRANSPORT);
keyCipher.init(XMLCipher.WRAP_MODE, cert.getPublicKey());
EncryptedKey encryptedKey = keyCipher.encryptKey(doc, sessionKey);
encryptedKey.setKeyInfo(certKeyInfo);
//И так же не нашел чем инициализировать XMLCipher для шифрования самого документа по новому ГОСТ
XMLCipher xmlCipher = XMLCipher.getInstance(Consts.URI_GOST_CIPHER);
xmlCipher.init(XMLCipher.ENCRYPT_MODE, sessionKey)
Подскажите если где то описание по работе с новым ГОСТ для шифрования xml и в правильном направлении я двигаюсь?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 29.08.2022(UTC) Сообщений: 2
|
up Добрый день, тоже интересует данный вопрос, подскажите, пожалуйста. Может быть есть пример использования XML Encryption «Магма» или «Кузнечик»
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,963 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Здравствуйте. Пока поддержки алгоритмов шифрования Кузнечик/Магма для XML нет. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 07.07.2022(UTC) Сообщений: 2 Откуда: Уфа
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close