Статус: Участник
Группы: Участники
Зарегистрирован: 08.02.2017(UTC) Сообщений: 13 Откуда: Новосибирск
|
Добрый день. Пытаюсь понять как правильно получить hmac используя HMAC_GOSTR3411_2012_256. Пришел к такому варианту но сам себе объяснить правильно ли это не могу. Смущают первые две строки так как в примерах JCA KeyGenerator.getInstance("указывается тот же алгоритм что и в Mac.getInstance");
KeyGenerator kg = KeyGenerator.getInstance("GOST28147"); kg.init(CryptParamsSpec.getInstance(CryptParamsSpec.Rosstandart_TC26_Z)); //<-- для ГОСТ 2012 SecretKey sk = kg.generateKey(); Mac mac = Mac.getInstance("HMAC_GOSTR3411_2012_256",JCSP.PROVIDER_NAME); mac.init(sk); byte[] result = mac.doFinal("Hi There".getBytes()); Encoder encoder = new Encoder(); System.out.println("Digest: " + encoder.encode(result) +"\nfor Message: " + "Hi There");
И еще вопрос, возможно ли создать SecretKey свой? Например SecretKey sk = new SecretKey("моя соль"): Видел пример такой SecretKeySpec sk = new SecretKeySpec("key".getBytes("UTF-8"), "HmacSha-256"); Но валится эксепшн.
Спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,910 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 685 раз в 646 постах
|
Здравствуйте. Автор: gysek И еще вопрос, возможно ли создать SecretKey свой?
Нет, нужно использовать иной способ, например, получать его из долговременного ключа. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.02.2017(UTC) Сообщений: 13 Откуда: Новосибирск
|
Есть ли пример hmac по гост 2012 для КриптоПро Browser Plugin ?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,910 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 685 раз в 646 постах
|
Этот вопрос лучше задать в разделе про "КриптоПро Browser Plugin". |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.02.2017(UTC) Сообщений: 13 Откуда: Новосибирск
|
Автор: Евгений Афанасьев Здравствуйте. Автор: gysek И еще вопрос, возможно ли создать SecretKey свой?
Нет, нужно использовать иной способ, например, получать его из долговременного ключа. Прошу помощи. Ни пример из первого поста (SecretKey#getEncoded() == null) ни пример ниже (no such algorithm: GOST28147 for provider JCSP) не работают. Код: KeyPairGenerator keyGen = KeyPairGenerator.getInstance("GOST28147", JCSP.PROVIDER_NAME); KeyPair alicaPair = keyGen.generateKeyPair(); PublicKey alicaPublic = alicaPair.getPublic(); PrivateKey alicaPrivate = alicaPair.getPrivate(); System.out.println("TEST "+Arrays.toString(alicaPublic.getEncoded())); Mac mac2 = Mac.getInstance("HMAC_GOSTR3411_2012_256",JCSP.PROVIDER_NAME); mac2.init(alicaPrivate); byte[] result2 = mac2.doFinal("Hi There".getBytes()); Encoder encoder2 = new Encoder(); System.out.println("Digest: " + encoder2.encode(result2) +"\nfor Message: " + "Hi There");
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,910 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 685 раз в 646 постах
|
Автор: gysek mac2.init(alicaPrivate);
Инициализировать нужно сессионным ключом (SecretKey), не закрытым. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.02.2017(UTC) Сообщений: 13 Откуда: Новосибирск
|
Автор: Евгений Афанасьев Автор: gysek mac2.init(alicaPrivate);
Инициализировать нужно сессионным ключом (SecretKey), не закрытым. У меня есть требование что этот hmac и соль будет храниться долго, то есть за это время может поменяться сертификат. Таким образом, если я все правильно понимаю, то я не смогу выработать сессионый ключ и проверить hmac из базы ?? Если ли вариант который подходит под мое требование ? Спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,910 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 685 раз в 646 постах
|
В следующей версии в ГОСТ HMac в Java CSP будет возможность передать хеш для выработки сессионного ключа (new SecretKeySpec(hash, "GOST28147")). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 08.02.2017(UTC) Сообщений: 13 Откуда: Новосибирск
|
Автор: Евгений Афанасьев В следующей версии в ГОСТ HMac в Java CSP будет возможность передать хеш для выработки сессионного ключа (new SecretKeySpec(hash, "GOST28147")). Примерные сроки выхода следуещей версии когда ?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,910 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 685 раз в 646 постах
|
Скорее всего, на следующей неделе. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close