Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.02.2016(UTC) Сообщений: 60
Сказал(а) «Спасибо»: 18 раз Поблагодарили: 2 раз в 2 постах
|
Собранный подписанный шифрованный контейнер в арме (АРМ 5.4.3.10 CSP 4.0.9944) потребляется у заказчика без проблем. С помощью JCP(jcp-2.0.40502) собираю свой контейнер и он потребляется с ошибкой. Ошибка общая, конкретное место не указывает. Смотрю разницу в структуре контейнеров. EnvelopedData вроде одинаковая, а вот в структуре подписи есть разница. Целевые данные в контейнере одинаковые, сертификат приложен одинаковый , но в signerInfos есть разница. Рабочий:  Полученный через JCP:  Метод формирования: Код:
private fun sign2(data: ByteArray, key: PrivateKey, cert: Certificate): ByteArray {
val certStore: Store = JcaCertStore(setOf(cert))
val generator = CMSSignedDataGenerator()
val contentSigner: ContentSigner = GostContentSignerProvider(
key, JCP.PROVIDER_NAME
)
val signerInfoGenerator: SignerInfoGenerator =
JcaSignerInfoGeneratorBuilder(
GostDigestCalculatorProvider(key, JCP.PROVIDER_NAME)
).build(contentSigner, cert as X509Certificate)
generator.addSignerInfoGenerator(signerInfoGenerator)
generator.addCertificates(certStore)
val content: CMSProcessable = CMSProcessableByteArray(data)
val signedData =
generator.generate(content as CMSTypedData, true)
return signedData.encoded
}
Так же попробовал сделать подпись из примера CMSSignAndEncrypt Получил такую структуру:  Оба метода так или иначе используются успешно в других рабочих модулях. Но вот в конкретном случае есть проблемы. Корректны ли методы ? В чем может быть проблема , и как получить ту же сигнатуру что и в арме ? Отредактировано пользователем 16 октября 2020 г. 13:38:30(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Можете привести текст ошибки после проверки подписи? Если вопрос в OID алгоритма в конце подписи, то попробуйте использовать сборку JCP 2.0.41473 и выше: в JCP алгоритм подписи образован парой digest_algorithmWITHkey_algorithm, в key_algorithm мог быть OID как ключа подписи, так и обмена, такая подпись успешно проверяется CSP. В последних сборках OID, указанный в подписи, стал OID ключа подписи.
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 16.02.2016(UTC) Сообщений: 60
Сказал(а) «Спасибо»: 18 раз Поблагодарили: 2 раз в 2 постах
|
Вообщем проблема была в шифровании. К сожалению заказчик не может предоставить конкретную ошибку. Поэтому все попытки решения были методом подбора вслепую. Подошел пример из EnvelopedData. Но опять же поскольку конкретной ошибки нету, то и весь пост особой пользы не имеет, было бы здорово просто удалить его =)
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close