Статус: Новичок
Группы: Участники
Зарегистрирован: 24.08.2018(UTC) Сообщений: 3  Откуда: Tambov
|
Добрый день. Пишу программу для обмена с ИС Маркировка. В системе установлена Крипто-Про, лицензионная. Есть ключи. Строка для подписания файла csptest.exe -sfsign -sign -in d:\text.txt -out d:\out.txt -my "ООО Фирма" -detached -base64 -add успешно выполняется. Только требует выбрать ключ т.к. в реестре из несколько. Как реализовать подпись в java? Куда смотреть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Посмотрите примеры создания/проверки подписи в архиве samples-sources.jar дистрибутива jcp, пакет CMS_samples, примеры CMS, CMSSign, CMSVerify, в пакете CAdES - примеры работы с подписью формата CAdES. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 24.08.2018(UTC) Сообщений: 3  Откуда: Tambov
|
Пытаюсь выполнить код. Код:
CAdESUtility.initJCPAlgorithms();
List<X509Certificate> chain = new ArrayList<>();
PrivateKey privateKey = CMStools.loadKey("oootf", "123456".toCharArray());
Certificate cc = CMStools.loadCertificate("oootf");
X509Certificate cert = (X509Certificate) cc;
chain.add(cert);
Store certStore = new JcaCertStore(chain);
CMSSignedDataGenerator generator = new CMSSignedDataGenerator();
ContentSigner contentSigner = new GostContentSignerProvider(
privateKey, JCP.PROVIDER_NAME);
SignerInfoGenerator signerInfoGenerator = new JcaSignerInfoGeneratorBuilder(
new GostDigestCalculatorProvider(privateKey, JCP.PROVIDER_NAME)).build(contentSigner, cert);
generator.addSignerInfoGenerator(signerInfoGenerator);
generator.addCertificates(certStore);
// Создаем совмещенную подпись PKCS7.
CMSProcessable content = new CMSProcessableByteArray(ss.getBytes());
CMSSignedData signedData = generator.generate((CMSTypedData) content, true);
// Сформированная подпись.
byte[] pkcs7 = signedData.getEncoded();
return new String(Base64.getEncoder().encode(pkcs7));
Код выполняется, получаю строку, но сервер не понимает. Это вообще правильный код для строки csptest.exe -sfsign -sign -in d:\text.txt -out d:\out.txt -my "ООО Фирма" -detached -base64 -add или нет? Спасибо.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,005  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Сравните подписи в asn1 декодировщике (https://lapo.it/asn1js/). |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close