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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline creograf  
#1 Оставлено : 8 мая 2019 г. 12:34:13(UTC)
creograf

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

Группы: Участники
Зарегистрирован: 11.04.2019(UTC)
Сообщений: 4
Откуда: Челябинск

Сказал(а) «Спасибо»: 1 раз
В посте
https://www.cryptopro.ru....aspx?g=posts&t=1172
есть пример кода, генерации эфемерных ключей на java с использованием библиотеки Advapi.
Что можно использовать для генерации эфемерного ключа под андройд?


Сейчас код генерации сессионных ключей использует keyAgreement из публичного ключа сертификата и приватного ключа.
Проблема в том, что у ключей могут быть разные алгоритмы: ГОСТ 2012 и ГОСТ 2001 года. Когда оба ключа 2001 года, код работает. Когда разные, крашится на keyAgree.doPhase:

private static SecretKey generateKeyAgreement(PrivateKey pk, X509Certificate partnerCert, byte[] sv) throws NoSuchProviderException, NoSuchAlgorithmException, InvalidAlgorithmParameterException, InvalidKeyException {
try {
final IvParameterSpec ivspec = new IvParameterSpec(sv);
//GOST3410DH
final KeyAgreement keyAgree = KeyAgreement.getInstance(pk.getAlgorithm(), JCSP.PROVIDER_NAME);
keyAgree.init(pk, ivspec, null);
keyAgree.doPhase(partnerCert.getPublicKey(), true);

return keyAgree.generateSecret(CIPHER_ALG);

} catch (Exception e){
e.printStackTrace();
return null;
}
}
Offline Евгений Афанасьев  
#2 Оставлено : 15 мая 2019 г. 20:34:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
В составе ACSPClientApp есть примеры для шифрования в адрес получателя (key_agree, key_trans). Для формирования сообщения достаточно сертификата получателя. ГОСТ 2001 и ГОСТ 2012 - разные алгоритмы, выработать ключ согласования на разных алгоритмах нельзя.
Offline creograf  
#3 Оставлено : 17 мая 2019 г. 9:59:28(UTC)
creograf

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

Группы: Участники
Зарегистрирован: 11.04.2019(UTC)
Сообщений: 4
Откуда: Челябинск

Сказал(а) «Спасибо»: 1 раз
как сгенерировать эфемерный ключ с алгоритмом:
CALG_DH_GR3410_12_256_EPHEM или CALG_DH_GR3410_12_512_EPHEM на java?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.