Статус: Участник
Группы: Участники
Зарегистрирован: 19.06.2024(UTC) Сообщений: 23 Откуда: Moscow
|
Здравствуйте. Пытаемся подписать информацию с помощью класса CAdESSignature с помощью следующего кода: Код:
public static byte[] sign(KeyStore keyStore, String alias, char[] password, byte[] data) throws Exception {
keyStore.load(null, null);
PrivateKey privateKey = (PrivateKey)
keyStore.getKey(alias, password);
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
System.setProperty("com.sun.security.enableAIAcaIssuers", "true");
System.setProperty("ru.CryptoPro.reprov.enableAIAcaIssuers", "true");
Certificate[] certificates = keyStore
.getCertificateChain(alias);
List<X509Certificate> chain =
new ArrayList<X509Certificate>();
for (Certificate cert : certificates) {
chain.add((X509Certificate) cert);
}
CAdESSignature cAdESSignature = new CAdESSignature(true);
cAdESSignature.addSigner(
JCP.PROVIDER_NAME, // signature provider // провайдер подписи
JCP.GOST_DIGEST_2012_256_OID,
JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
privateKey, // signing key // ключ подписанта
chain, // signing certificate chain // цепочка сертификатов подписанта
CAdESType.CAdES_BES,
null,
false,
null,
null,
null, // no CRL files
true // add the signing certificate chain to the signature // добавить цепочку подписанта в подпись
);
ByteArrayOutputStream signatureStream
= new ByteArrayOutputStream();
try {
cAdESSignature.open(signatureStream);
cAdESSignature.update(data);
cAdESSignature.close();
} finally {
signatureStream.close();
}
return signatureStream.toByteArray();
}
При комплияции проекта появляется ошибка: Цитата:java: cannot access org.bouncycastle.asn1.cms.AttributeTable class file for org.bouncycastle.asn1.cms.AttributeTable not found Без обращения к классу CAdESSignature ошибки нет. KeyStore работает корректно, считывает данные с носителя при помощи JCSP. Пытались через мавен подключать разные версии библиотеки org.bouncycastle - результат не меняется, ошибка остается. CAdES.jar импортируем через внутренние библиотеки проекта, также импортированы прочие библиотеки: Skrinshot 27-06-2024 144844.jpg (49kb) загружен 8 раз(а).Подскажите, пожалуйста, как решить данную проблему?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Добрый день. Надо положить в lib/ext bouncycastle версии, как в папке dependencies в дистрибутиве. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.06.2024(UTC) Сообщений: 23 Откуда: Moscow
|
Автор: Евгений Афанасьев Добрый день. Надо положить в lib/ext bouncycastle версии, как в папке dependencies в дистрибутиве. Какую-то определенную версию bouncycastle нужно взять?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,962 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 704 раз в 665 постах
|
Версии, как в папке dependencies в дистрибутиве JCP/JCSP. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.06.2024(UTC) Сообщений: 23 Откуда: Moscow
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.06.2024(UTC) Сообщений: 23 Откуда: Moscow
|
Подскажите, пожалуйста, как исправить эту ошибку: Error occurred during building the certification path for the target: serial: *** subject: *** issuer: *** not before: *** not after: *** signature provider: JCSP validation date: null native implementation: true : unable to find valid certification path to requested target Используем следующий код для подписи: Код:public static byte[] sign(KeyStore keyStore, String alias, char[] password, byte[] data) throws Exception {
keyStore.load(null, null);
PrivateKey privateKey = (PrivateKey)
keyStore.getKey(alias, password);
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
System.setProperty("com.sun.security.enableAIAcaIssuers", "true");
System.setProperty("ru.CryptoPro.reprov.enableAIAcaIssuers", "true");
System.setProperty("ru.CryptoPro.reprov.enableCRLDP", "true");
Certificate[] certificates = keyStore
.getCertificateChain(alias);
List<X509Certificate> chain =
new ArrayList<X509Certificate>();
for (Certificate cert : certificates) {
chain.add((X509Certificate) cert);
}
CAdESSignature cAdESSignature = new CAdESSignature(false);
cAdESSignature.addSigner(
JCSP.PROVIDER_NAME, JCP.GOST_DIGEST_OID,
JCP.GOST_EL_KEY_OID, privateKey, chain, CAdESType.CAdES_BES, null, false
);
ByteArrayOutputStream signatureStream
= new ByteArrayOutputStream();
try {
cAdESSignature.open(signatureStream);
cAdESSignature.update(data);
cAdESSignature.close();
signatureStream.close();
} finally {
signatureStream.close();
}
return signatureStream.toByteArray();
}
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,182 Сказал(а) «Спасибо»: 99 раз Поблагодарили: 271 раз в 252 постах
|
Добрый день!
в случае актуальной версии JCSP необходимо установить корневой либо в cacerts либо в хранилище "Доверенные корневые" через КриптоПро CSP |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.06.2024(UTC) Сообщений: 23 Откуда: Moscow
|
Автор: Санчир Момолдаев Добрый день!
в случае актуальной версии JCSP необходимо установить корневой либо в cacerts либо в хранилище "Доверенные корневые" через КриптоПро CSP keytool -import -trustcacerts -keystore "C:\Program Files\Java\jre1.8.0_121\lib\security\cacerts" -storepass changeit -alias mincif -file c:\mincif.cer правильная команда для добавления? имеет ли значение название элиас?
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,182 Сказал(а) «Спасибо»: 99 раз Поблагодарили: 271 раз в 252 постах
|
почти правильная. Цитата:-trustcacerts -keystore путь дублируют друг друга. алиас в keystore значения не имеет. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close