Статус: Новичок
Группы: Участники
Зарегистрирован: 01.02.2022(UTC) Сообщений: 6 Сказал(а) «Спасибо»: 5 раз
|
Здравствуйте, интегрируем CryptoPro в Android-приложение возникла проблема при проверке подписи созданной с использованием CAdESSignature, а именно получаем ошибку "Не найден автор исходной подписи". Начали разбираться, но с перебором параметров (в P.S.) получаем либо без сертификата подписанта, либо вставляется не тот сертификат подписанта (вышестоящий УЦ). Код на kotlin
fun sign(signData: String, alias: String, cert: X509Certificate, keyStore: KeyStore):ByteArray { var privateKey = keyStore.getKey(alias, null) as PrivateKey?
val chain: MutableList<X509Certificate> = ArrayList() chain.add(cert)
var cAdESSignature = CAdESSignature(false) cAdESSignature.addSigner(JCSP.PROVIDER_NAME, null, null, privateKey, chain, CAdESType.CAdES_BES, null, false, null, null, null, true)
val signatureStream = ByteArrayOutputStream() cAdESSignature.open(signatureStream) cAdESSignature.update(signData.toByteArray())
cAdESSignature.close() signatureStream.close()
var sign = signatureStream.toByteArray() return sign }
Подписываемый файл и сама отсоединенная подпись в приложенных файлах P.S. CAdESSignature(false) тут изменение параметра не помогает cAdESSignature.addSigner(JCSP.PROVIDER_NAME, null, null, privateKey, chain, CAdESType.CAdES_BES, null, false, null, null, null, true) тут изменение последнего аргумента тоже не помогает data.txt.sig (10kb) загружен 2 раз(а). data.txt (1kb) загружен 2 раз(а).
|