Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Добрый день! Подписываем изображение, используем созданный контейнер, на выходе получаем подписанный файл, судя по массиву байт. При проверке подписи на десктопной версии "Инструменты КриптоПро", получаем ответ: "Подпись не найдена". Пример написан на Kotlin. photo_2024-12-19_18-05-02.jpg (44kb) загружен 4 раз(а). proudrso.000.zip (2kb) загружен 1 раз(а).Код:
fun signDataTest(file: File): ByteArray? {
val fileData = Files.readAllBytes(file.toPath())
val password = "123"
val alias = "proud_sosow"
val keyStore = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME)
keyStore.load(null, null)
// Формируем цепочку для подписи
val chain: MutableList<X509Certificate> = mutableListOf()
for (certificate in keyStore.getCertificateChain(alias)) {
Log.i("@@@@","Certificate is ${certificate}")
chain.add(certificate as X509Certificate)
}
val cAdESSignature = CAdESSignature()
val signatureStream = ByteArrayOutputStream()
cAdESSignature.open(signatureStream)
cAdESSignature.update(fileData)
cAdESSignature.close()
signatureStream.close()
return signatureStream.toByteArray()
}
Отредактировано пользователем 19 декабря 2024 г. 12:39:02(UTC)
| Причина: Не указана
|
1 пользователь поблагодарил Виктор 75 за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,976 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 708 раз в 669 постах
|
Здравствуйте. Надо в подпись добавить сам сертификат подписи. Это делается с помощью CAdESSignature#setCertificateStore, он принимает список X509CertificateHolder. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Здравствуйте!
Подскажите, пожалуйста, так? cAdESSignature.addSigner(JCSP.PROVIDER_NAME, null, null, privateKey, chain, CAdESType.CAdES_BES, null, false, null, null, null, true)
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Автор: Евгений Афанасьев Здравствуйте. Надо в подпись добавить сам сертификат подписи. Это делается с помощью CAdESSignature#setCertificateStore, он принимает список X509CertificateHolder. Внесли изменения по вашей рекомендации, но столкнулись с ошибкой. Код:
fun signDataTest(file: File): ByteArray? {
System.setProperty("com.sun.security.enableCRLDP", "true")
System.setProperty("com.ibm.security.enableCRLDP", "true")
val fileData = Files.readAllBytes(file.toPath())
val password = "123"
val alias = "proud_sosow"
val keyStore = KeyStore.getInstance(JCSP.HD_STORE_NAME, JCSP.PROVIDER_NAME)
keyStore.load(null, null)
val certificate = keyStore.getCertificate(alias) as X509Certificate
val privateKey = keyStore.getKey(alias, password.toCharArray()) as PrivateKey
val chain: MutableList<X509Certificate> = mutableListOf()
for (certificate in keyStore.getCertificateChain(alias)) {
Log.i("@@@@","Certificate is ${certificate}")
chain.add(certificate as X509Certificate)
}
val cAdESSignature = CAdESSignature(false)
cAdESSignature.certificateStore = CollectionStore(chain)
val signatureStream = ByteArrayOutputStream()
cAdESSignature.open(signatureStream)
cAdESSignature.update(fileData)
cAdESSignature.close()
signatureStream.close()
return signatureStream.toByteArray()
}
test.log (5kb) загружен 3 раз(а). photo_2024-12-19_19-31-29.jpg (42kb) загружен 10 раз(а).
|
1 пользователь поблагодарил Виктор 75 за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,976 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 708 раз в 669 постах
|
Автор: Евгений Афанасьев Здравствуйте. Надо в подпись добавить сам сертификат подписи. Это делается с помощью CAdESSignature#setCertificateStore, он принимает список X509CertificateHolder. В cAdESSignature.certificateStore попадает X509CertificateHolder или X509Certificate? Отредактировано пользователем 19 декабря 2024 г. 15:52:45(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.12.2024(UTC) Сообщений: 2 Откуда: Чита Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев Здравствуйте. Надо в подпись добавить сам сертификат подписи. Это делается с помощью CAdESSignature#setCertificateStore, он принимает список X509CertificateHolder. Столкнулся с подобной проблемой, но это не решило проблему, не могли бы Вы подсказать, как правильно реализовать данный функционал?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Автор: Евгений Афанасьев Автор: Евгений Афанасьев Здравствуйте. Надо в подпись добавить сам сертификат подписи. Это делается с помощью CAdESSignature#setCertificateStore, он принимает список X509CertificateHolder. В cAdESSignature.certificateStore попадает X509CertificateHolder или X509Certificate? Мы получаем X509CertificateHolder 2024-12-19_21-58-57.jpg (57kb) загружен 8 раз(а).
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,976 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 708 раз в 669 постах
|
Приведите тогда стек ошибки, лог. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,976 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 708 раз в 669 постах
|
И где в вашем примере addSigner. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Автор: Евгений Афанасьев Приведите тогда стек ошибки, лог. В логах ошибки нет, дополнительно прикрепляю результат подписания test1.log (46kb) загружен 1 раз(а). IMG_20241112_175648.jpg.sig (918kb) загружен 1 раз(а).
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close