(2022-09-14 06:33:48 отредактировано andrek)

PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

добрый день, тестирую SDK получаю ошибку.
что мне нужно - на строне А токен, на стороне Б gnutls, в итоге Б должен проверить А по токену.

что я делаю:
1. А: создаю RSA ключи на токен, по инструкции в разделах двухфакторной авторизации для Linux
2. А: через API на стороне rutoken достаю pem сертификат, отправляю его на Б
3. Б: в gnutls генерирую rndpass + подписываю успешно полученным сертификатом, готовую crypto посылку возвращаю на А
4. А: пытаюсь расшифровать по инструкции (sdk/pkicore/cpp/samples/CmsDecrypt/CmsDecrypt.cpp)

на envelopedData.decrypt(rutoken::pkicore::cms::EnvelopedData::DecryptParams(pkcs11Cert)) получаю ошибку -
Something wrong happened when processing ASN1 structures

(2022-09-14 10:46:15 отредактировано Евгений Мироненко)

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

Добрый день!

Судя по вашему описанию, на шаге 3 вы получили CMS-сообщение, содержащее данные типа Signed-data Content Type. Функциональность примера CmsDecrypt.cpp (класс rutoken::pkicore::cms::EnvelopedData, в частности), предназначена для обработки CMS-сообщений, содержащих данные типа Enveloped-data Content Type.
CMS-сообщение, содержащее данные типа Signed-data Content Type, обеспечивает  не конфиденциальность данных, а только их аутентичность. Для проверки аутентичности данных при помощи pki-core-cpp воспользуйтесь функциональностью класса rutoken::pkicore::cms::SignedData.

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

andrek, добрый день!

Покажите, пожалуйста, код как вы создаете сертификат из буфера.

Отправьте, пожалуйста, на hotline@rutoken.ru данные которые вы передаете на расшифрование, а также сертификат.

(2022-09-14 13:52:41 отредактировано andrek)

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

выложил тест на
https://github.com/AndreyBarmaley/rutok … ls-example

Павел Анфимов пишет:

Покажите, пожалуйста, код как вы создаете сертификат из буфера.

про сертификат не понял, я сертификат в runtime не создаю, достаю готовый из rutoken.

также проверял отдельно работу через gnutls шифрование через публичный серт и расшифровку через приватный ключ (генерировал отдельно через openssl), данные корректны.

Павел Анфимов пишет:

Отправьте, пожалуйста, на hotline@rutoken.ru данные которые вы передаете на расшифрование, а также сертификат.

отправил

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

andrek,

у вас зашифрованное сообщение не в CMS (PKCS#7) формате.

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

всё понятно, спасибо за ответы!

(2022-09-15 10:34:41 отредактировано andrek)

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

рано порадовался.. вообщем ошибка осталась.
вот такой PKCS7 я генерирую

-----BEGIN PKCS7-----
MIICCQYJKoZIhvcNAQcDoIIB+jCCAfYCAQAxggGyMIIBrgIBADCBlTCBhzELMAkG
A1UEBhMCUlUxDzANBgNVBAgMBlB1YmxpYzEQMA4GA1UEBwwHSXJrdXRzazEMMAoG
A1UECgwDSURDMQswCQYDVQQLDAJJVDERMA8GA1UEAwwIQW5kcmV5QWYxJzAlBgkq
hkiG9w0BCQEWGHB1YmxpYy5pcmt1dHNrQGdtYWlsLmNvbQIJAJDRgHZKlor8MA0G
CSqGSIb3DQEBAQUABIIBAAA5E17FBAhuDf8OdTUxNwHB3rs3XhRbnyRLZrA5JDOc
YKw11/jXNS+oLRoRE1lkMAmsktJbGpcaCEL567U2z8C5o6N7NW7aG2TDojPqW6+q
OpfOIP1T7NbStQP/UiphrtED9OLlPSaa66MRpu68XQjCTG88xYyxBX7ZlU6XQ8Ej
LW6LMsKKWtrXj4vNVm9ZjPpvblQn/TTfwRKuCdP5ViVGe6Sjd21yJ8RWLa+NOnAh
LEeM+Z8yqhSQXaCtnNmprL+1PJ5scczScXJV/J/knuDCazb74YnlgrCxgigi8l2B
sK1CKYlTN5T3bMUiKs1Q+XOVVUseIkbnGrVqhmIi+wMwOwYJKoZIhvcNAQcBMBQG
CCqGSIb3DQMHBAinymHGu35fxoAYmxrB7EZapF4GcpAeXJARknww2AUmU6kT
-----END PKCS7-----
openssl asn1parse -in crypto.p7

парсится нормально, инфа от сертификата заполнена, но каких то полей ASN1 не  хватает?

Re: PKI-Core (С++): ошибка "Something wrong happened when processing ASN1"

так все понятно, PEM формат на DER изменил, и сработало