Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Автор: Евгений Афанасьев И где в вашем примере addSigner. В нашем примере addSigner не используется. Можем предоставить наш тестовый проект. Код:
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 alias = "proud_sosow"
val pass = "123"
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, pass.toCharArray()) as PrivateKey
val chain: MutableList<X509Certificate> = mutableListOf()
var holderList : MutableList<X509CertificateHolder> = ArrayList<X509CertificateHolder>()
for (certificate in keyStore.getCertificateChain(alias)) {
Log.i("@@@@","Certificate is $certificate")
chain.add(certificate as X509Certificate)
}
for (cert in chain) {
holderList.add(X509CertificateHolder(cert.encoded))
Log.i("@@@@" , X509CertificateHolder(cert.encoded).encoded.toString())
}
val cAdESSignature = CAdESSignature()
val signatureStream = ByteArrayOutputStream()
cAdESSignature.open(signatureStream)
cAdESSignature.certificateStore = CollectionStore(holderList)
cAdESSignature.update(fileData)
cAdESSignature.close()
signatureStream.close()
return signatureStream.toByteArray()
}
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.12.2024(UTC) Сообщений: 2 Откуда: Чита Сказал(а) «Спасибо»: 2 раз
|
Автор: Виктор 75 Автор: Евгений Афанасьев Приведите тогда стек ошибки, лог. В логах ошибки нет, дополнительно прикрепляю результат подписания test1.log (46kb) загружен 1 раз(а). IMG_20241112_175648.jpg.sig (918kb) загружен 1 раз(а). Я взял то же код и попробовал подписать, в итоге получилось получить ошибку: test.log (7kb) загружен 4 раз(а)., с кодом: Код:
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 alias = "proud_sosow"
val pass = "123"
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, pass.toCharArray()) as PrivateKey
val chain: MutableList<X509Certificate> = mutableListOf()
var holderList : MutableList<X509CertificateHolder> = ArrayList<X509CertificateHolder>()
for (certificate in keyStore.getCertificateChain(alias)) {
Log.i("@@@@","Certificate is $certificate")
chain.add(certificate as X509Certificate)
}
for (cert in chain) {
holderList.add(X509CertificateHolder(cert.encoded))
Log.i("@@@@" , X509CertificateHolder(cert.encoded).encoded.toString())
}
val cAdESSignature = CAdESSignature()
val signatureStream = ByteArrayOutputStream()
cAdESSignature.open(signatureStream)
cAdESSignature.certificateStore = CollectionStore(holderList)
cAdESSignature.update(fileData)
//cAdESSignature.addSigner(JCSP.PROVIDER_NAME, null, null, privateKey, chain, CAdESType.CAdES_BES, "http://testca.cryptopro.ru/tsp/", false)
cAdESSignature.addSigner(JCSP.PROVIDER_NAME, null, null, privateKey, chain, CAdESType.CAdES_BES, null, false, null, null, null, true)
cAdESSignature.close()
signatureStream.close()
return signatureStream.toByteArray()
}
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,976 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 708 раз в 669 постах
|
|
|
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,976 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 708 раз в 669 постах
|
Автор: Виктор 75 В нашем примере addSigner не используется. Можем предоставить наш тестовый проект.
Зачем тогда подпись? В доработанном примере: Root certificate: serial 5e087637, subject C=RU, CN=proud_sosow, issuer C=RU, CN=proud_sosow, not before Wed Dec 18 21:22:08 GMT+08:00 2024, not after Thu Dec 18 21:22:08 GMT+08:00 2025 is untrusted Корневой сертификат не установлен в cacerts внутри приложения. Посмотрите пример InstallCAdESTestTrustCertExample. |
|
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 02.12.2024(UTC) Сообщений: 8 Сказал(а) «Спасибо»: 3 раз Поблагодарили: 2 раз в 2 постах
|
Добавили установку корневых сертификатов, получилось подписать и проверить. Большое спасибо за вашу работу!
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close