Добрый день
Возникла такая же проблема, как и у создателя данной темы.
Отправляем зашифрованное сообщение в НБКИ, в ответ приходит, что не могут расшифровать.
Поскольку проблематично все время отправлять на боевой сервер данные сообщения, решили проверить криптоАРМ, но файлы, которые мы шифруем алгоритмом из примеров, криптоАРМ не может расшифровать так же.
Для шифрования и дешифрования нашим кодом использовали пример jcp 2.0.39014 из samples-sources\CMS_samples\PKCS7EnvEphTransport.java практически полный копи-паст.
При расшифровании нашим кодом все отрабатывает корректно. И наш зашифрованный файл и файл зашифрованный АРМом расшифровываются правильно.
Долго рылся в примерах, пришел к выводу, что в методе wrap нужно вместо этого
// Генерация эфемерной пары.
KeyPairGenerator kgp = KeyPairGenerator.getInstance(
JCP.GOST_EL_DH_EPH_NAME,
CRYPT_PROVIDER_NAME
);
передавать алгоритм соответствующий ключу recipientKey
т.е. вот так
final String keyAlgName = recipientKey.getAlgorithm();
String keyPairAlgName;
if (keyAlgName.equalsIgnoreCase(KEY_ALG_NAME_2012_256) ||
keyAlgName.equalsIgnoreCase(KEY_EL_ALG_NAME_2012_256)) {
keyPairAlgName = JCP.GOST_EPH_DH_2012_256_NAME;
} else if (keyAlgName.equalsIgnoreCase(KEY_ALG_NAME_2012_512) ||
keyAlgName.equalsIgnoreCase(KEY_EL_ALG_NAME_2012_512)) {
keyPairAlgName = JCP.GOST_EPH_DH_2012_512_NAME;
} else {
keyPairAlgName = JCP.GOST_EL_DH_EPH_NAME;
}
// Генерация эфемерной пары.
KeyPairGenerator kgp = KeyPairGenerator.getInstance(keyPairAlgName);
Правильно ли это?
Тем не менее, это не помогло, расшифровка криптоАРМом так же дает ошибку.
![](/forum2/Themes/soclean/icon_file.gif)
Error.jpg
(67kb) загружен 7 раз(а).Шифровали криптоАРМом так:
![](/forum2/Themes/soclean/icon_file.gif)
Encode1.jpg
(69kb) загружен 4 раз(а).![](/forum2/Themes/soclean/icon_file.gif)
Encode2.jpg
(53kb) загружен 3 раз(а).Мне нужно понять, в чем разница между шифрованием, представленным в примере, и АРМом? Т.к. очевидно, что разница есть.
Версия используемого jcp 2.0.39014
Как корректно зашифровать на сертифкате ГОСТ 2012? На 2001-м госте работает, на 2012-ом нет.