Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

10 Страницы«<23456>»
Опции
К последнему сообщению К первому непрочитанному
Offline two_oceans  
#61 Оставлено : 28 декабря 2020 г. 10:58:19(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,302
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 85 раз
Поблагодарили: 304 раз в 286 постах
Цитата:
Помогите разобраться с ошибкой. Пытаюсь подписать запрос для отправки в СМЭВ. При попытке подписать XML в режиме CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE, получаю ошибку "An error was encountered while processing an XML digital signature"
Добрый день.
Странно, что пример по структуре для смэв 2, да и то не хватает AppData. На смэв 3 вообще непохоже ни структурой ни подписью.

Ближе к вопросу - предположу, что как минимум дело в том, что в шаблоне указаны алгоритмы гост-2001, а реальный ключ скорее всего гост-2012, так как гост-2001 запрещен в 2020 году. SignatureMethod должен совпадать с алгоритмом ключа, ну и реальный СМЭВ скорее всего откажется принимать смешанный вариант когда DigestMethod и SignatureMethod разных алгоритмов.
Код:
urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256
urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256
Цитата:
1. Может ли данное расширение работать с ключами, на контейнеры которых установлен пароль?
2. Если нет, подскажите пожалуйста, методы в интерфейсе С, которые могут работать с такими запароленными контейнерами.
3. Как задать свой адрес ocsp-сервиса? Я правильно понимаю, что в таком случае проверка любой подписи, в сертификате которой не указан oscp, пойдет через этот "свой ocsp-сервис"?
4. Может ли так оказаться что после запроса в сторону своего ocsp-сервиса, продолжится проверка по crl спискам из сертификата подписи?
1. Нужно задать пароль до фактического использования ключа. Полагаю, что это возможно в расширении (точнее надо искать в справке). Многое зависит будет ли приложение в серверном режиме без пользователя или тихом режиме или пользователь сможет ввести пароль. Если пользователь может ввести пароль можно вообще не беспокоиться, а вот в серверном или тихом режиме пароль надо или задать в приложении или запомнить средствами криптопровайдера.
2. Насколько помню для этого можно использовать CryptSetProvParam PP_EXCHANGE_PIN (или PP_SIGNATURE_PIN) Там есть градации от криптопровайдера и носителя, некоторые носители поддерживают также смену пинкода этой функцией, но большинство только указывает пароль для следующей операции с ключом.
3. можно задать отдельно при проверке по мере необходимости. В справке говорится про специальные свойства хранилища сертификатов для сертификата УЦ - так можно адресовать конкретный УЦ. И потом уже групповая политика - для всех подписей.
4. полагаю да, если ocsp ответа не будет или сам ответ не удается проверить.

Отредактировано пользователем 28 декабря 2020 г. 11:08:58(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил two_oceans за этот пост.
bsoft оставлено 14.01.2021(UTC)
Offline Ситдиков Денис  
#62 Оставлено : 28 декабря 2020 г. 12:21:33(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 85
Российская Федерация
Откуда: Москва

Поблагодарили: 20 раз в 18 постах
Цитата:
Цитата:

1. Может ли данное расширение работать с ключами, на контейнеры которых установлен пароль?
2. Если нет, подскажите пожалуйста, методы в интерфейсе С, которые могут работать с такими запароленными контейнерами.
3. Как задать свой адрес ocsp-сервиса? Я правильно понимаю, что в таком случае проверка любой подписи, в сертификате которой не указан oscp, пойдет через этот "свой ocsp-сервис"?
4. Может ли так оказаться что после запроса в сторону своего ocsp-сервиса, продолжится проверка по crl спискам из сертификата подписи?

1. Нужно задать пароль до фактического использования ключа. Полагаю, что это возможно в расширении (точнее надо искать в справке). Многое зависит будет ли приложение в серверном режиме без пользователя или тихом режиме или пользователь сможет ввести пароль. Если пользователь может ввести пароль можно вообще не беспокоиться, а вот в серверном или тихом режиме пароль надо или задать в приложении или запомнить средствами криптопровайдера.
2. Насколько помню для этого можно использовать CryptSetProvParam PP_EXCHANGE_PIN (или PP_SIGNATURE_PIN) Там есть градации от криптопровайдера и носителя, некоторые носители поддерживают также смену пинкода этой функцией, но большинство только указывает пароль для следующей операции с ключом.
3. можно задать отдельно при проверке по мере необходимости. В справке говорится про специальные свойства хранилища сертификатов для сертификата УЦ - так можно адресовать конкретный УЦ. И потом уже групповая политика - для всех подписей.
4. полагаю да, если ocsp ответа не будет или сам ответ не удается проверить.


Добрый день.
1. Да, может. В коде задать пароль можно, используя свойтво Signer.KeyPin.
3. Можно воспользоваться групповыми политиками или задать в свойствах сертификата издателя для данного сертификата. Порядок обхода указан здесь. Если определить статус сертификата через OCSP не удалось, используются CRL.
4. Да.

Отредактировано пользователем 28 декабря 2020 г. 12:27:54(UTC)  | Причина: Не указана

Offline bsoft  
#63 Оставлено : 29 декабря 2020 г. 4:01:48(UTC)
bsoft

Статус: Участник

Группы: Участники
Зарегистрирован: 08.12.2020(UTC)
Сообщений: 17
Российская Федерация

Сказал(а) «Спасибо»: 11 раз
Автор: two_oceans Перейти к цитате
Странно, что пример по структуре для смэв 2, да и то не хватает AppData. На смэв 3 вообще непохоже ни структурой ни подписью.


Это Региональный СМЭВ. Оператор РСМЭВ создал на его базе функционал по централизованной регистрации заявлений на государственные (муниципальные) услуги. Я пишу адаптер для муниципальной информационной системы.

Автор: two_oceans Перейти к цитате
Ближе к вопросу - предположу, что как минимум дело в том, что в шаблоне указаны алгоритмы гост-2001, а реальный ключ скорее всего гост-2012, так как гост-2001 запрещен в 2020 году. SignatureMethod должен совпадать с алгоритмом ключа, ну и реальный СМЭВ скорее всего откажется принимать смешанный вариант когда DigestMethod и SignatureMethod разных алгоритмов.


Спасибо! Помогло.
Offline mstdoc  
#64 Оставлено : 29 декабря 2020 г. 19:36:25(UTC)
mstdoc

Статус: Участник

Группы: Участники
Зарегистрирован: 25.11.2019(UTC)
Сообщений: 28

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Не могу разобраться с отделенной подписью.

Код:

import sys
sys.path.append(r'/usr/local/lib/python3.8/pycades.so')
import pycades


store = pycades.Store()
store.Open(pycades.CADESCOM_CONTAINER_STORE, pycades.CAPICOM_MY_STORE, pycades.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED)
certs = store.Certificates
print(certs.Count)
assert(certs.Count != 0), "Certificates with private key not found"

signer = pycades.Signer()
signer.Certificate = certs.Item(1)

content = "test"
signedData = pycades.SignedData()
signedData.Content = content
signature = signedData.SignCades(signer, pycades.CADESCOM_CADES_BES, True)

print("--Signature--")
print(signature)
print(len(signature))
print("----")

_signedData = pycades.SignedData()
_signedData.Content = content
_signedData.VerifyCades(signature, pycades.CADESCOM_CADES_BES, True)


Получаю подпись.
Размер подписи (base64 c переносами) = 8180 символов.

Далее создаю текстовый файл с содержимым "test" и пытаюсь проверить эту подпись в криптоАРМ.
Получаю отрицательный результат.

Создаю отделенную подпись при помощи расширения pycryptoprosdk.
Проверяю в том же криптоАрме с тем же файлом "test" - получаю положительный вариант.

При этом, если создать присоединенную подпись в pycades, то в криптоАрме она проверяется нормально.


Так же в структуре подписи, созданной в pycades:
Код:

            SEQUENCE (2 elem)
              OBJECT IDENTIFIER 1.2.840.113549.1.9.4 messageDigest (PKCS #9)
              SET (1 elem)
                OCTET STRING (32 byte) 8BE25D8DB2AF0414B08307B23EF01892DE51D0A164605B41BDDE36ADAC5C6413


В структуре подписи, созданной pycryptoprosdk:
Код:

            SEQUENCE (2 elem)
              OBJECT IDENTIFIER 1.2.840.113549.1.9.4 messageDigest (PKCS #9)
              SET (1 elem)
                OCTET STRING (32 byte) 12A50838191B5504F1E5F2FD078714CF6B592B9D29AF99D0B10D8D02881C3857

Если хэшировать файл с содержимым "test" в консольной утилите, на выходе получаем хэш:
Код:

/opt/cprocsp/bin/amd64/cryptcp -hash -dir /tmp -hashAlg 1.2.643.7.1.1.2.2 -hex /tmp/test
12A50838191B5504F1E5F2FD078714CF6B592B9D29AF99D0B10D8D02881C3857


При этом само расширение pycades собственную подпись проверяет успешно.

Отредактировано пользователем 29 декабря 2020 г. 20:16:01(UTC)  | Причина: Не указана

Offline mstdoc  
#65 Оставлено : 29 декабря 2020 г. 20:52:02(UTC)
mstdoc

Статус: Участник

Группы: Участники
Зарегистрирован: 25.11.2019(UTC)
Сообщений: 28

Сказал(а) «Спасибо»: 1 раз
А можно ли, имея на руках подпись, используя данное расширение получить данные сертификата, ключем которого эта подпись создавалась?
Online Санчир Момолдаев  
#66 Оставлено : 29 декабря 2020 г. 21:25:12(UTC)
Санчир Момолдаев

Статус: Сотрудник

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 757
Российская Федерация

Сказал(а) «Спасибо»: 66 раз
Поблагодарили: 158 раз в 154 постах
Добрый день!
обратите внимание на https://docs.cryptopro.r.../plugin/content-encoding
задайте ContentEncoding в CADESCOM_BASE64_TO_BINARY = 0x01
затем данные закодируйте в base64 и подайте в signedData.Content
т.к. content = "test" в STRING_TO_UCS2LE будет иметь совершенно другой вид.
Техническую поддержку оказываем тут
Наша база знаний
Offline mstdoc  
#67 Оставлено : 29 декабря 2020 г. 23:53:33(UTC)
mstdoc

Статус: Участник

Группы: Участники
Зарегистрирован: 25.11.2019(UTC)
Сообщений: 28

Сказал(а) «Спасибо»: 1 раз
Автор: Санчир Момолдаев Перейти к цитате
Добрый день!
обратите внимание на https://docs.cryptopro.r.../plugin/content-encoding
задайте ContentEncoding в CADESCOM_BASE64_TO_BINARY = 0x01
затем данные закодируйте в base64 и подайте в signedData.Content
т.к. content = "test" в STRING_TO_UCS2LE будет иметь совершенно другой вид.


Да, после установки CADESCOM_BASE64_TO_BINARY работает корректно.
Благодарю )
Online Санчир Момолдаев  
#68 Оставлено : 29 декабря 2020 г. 23:59:23(UTC)
Санчир Момолдаев

Статус: Сотрудник

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 757
Российская Федерация

Сказал(а) «Спасибо»: 66 раз
Поблагодарили: 158 раз в 154 постах
Автор: mstdoc Перейти к цитате
А можно ли, имея на руках подпись, используя данное расширение получить данные сертификата, ключем которого эта подпись создавалась?


у проверяемого SignedData получить список Signer и т.д.
Техническую поддержку оказываем тут
Наша база знаний
Offline Clutcher  
#69 Оставлено : 2 января 2021 г. 0:55:26(UTC)
Clutcher

Статус: Новичок

Группы: Участники
Зарегистрирован: 02.01.2021(UTC)
Сообщений: 2

Сказал(а) «Спасибо»: 1 раз
Добрый день, я бы хотел создать сайт на django для учёбы, чтобы там была возможность войти по ЭЦП и организовать подписание документов. Возможно ли реализовать это при помощи данного расширения? Или есть готовые решения?
Online Санчир Момолдаев  
#70 Оставлено : 2 января 2021 г. 2:38:11(UTC)
Санчир Момолдаев

Статус: Сотрудник

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 757
Российская Федерация

Сказал(а) «Спасибо»: 66 раз
Поблагодарили: 158 раз в 154 постах
Автор: Clutcher Перейти к цитате
Добрый день, я бы хотел создать сайт на django для учёбы, чтобы там была возможность войти по ЭЦП и организовать подписание документов. Возможно ли реализовать это при помощи данного расширения? Или есть готовые решения?


Добрый день.
Именно на python примера нет.
Общая мысль: у клиента должна подписываться некоторая уникальная строка которая приходит с сервера. На сервере проверяется подпись и сравниваются подписанные данные.
Front: html + js (cades plugin)
Backend: python + pycades
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
Clutcher оставлено 02.01.2021(UTC)
Offline mstdoc  
#71 Оставлено : 11 января 2021 г. 19:11:22(UTC)
mstdoc

Статус: Участник

Группы: Участники
Зарегистрирован: 25.11.2019(UTC)
Сообщений: 28

Сказал(а) «Спасибо»: 1 раз
Добрый день.

Подскажите пожалуйста такой момент.

При использовании упрощенной функции CadesVerifyDetachedMessage в выходной структуре ppVerificationInfo присутствует поле dwStatus.
В случае возникновения ошибки при проверке подписи, в данное поле попадает более подробный статус ошибки (https://docs.cryptopro.ru/cades/reference/cadesc/cadesc-struct/cades_verification_info)
Код:
CADES_VERIFY_SUCCESS	Успешная проверка подписи.
CADES_VERIFY_INVALID_REFS_AND_VALUES	Отсутствуют или имеют неправильный формат атрибуты со ссылками и значениями доказательств подлинности.
CADES_VERIFY_SIGNER_NOT_FOUND	Сертификат, на ключе которого было подписано сообщение, не найден.
CADES_VERIFY_NO_VALID_SIGNATURE_TIMESTAMP	В сообщении не найден действительный штамп времени на подпись.
CADES_VERIFY_REFS_AND_VALUES_NO_MATCH	Значения ссылок на доказательства подлинности и сами доказательства, вложенные в сообщение, не соответствуют друг другу.
CADES_VERIFY_NO_CHAIN	Не удалось построить цепочку для сертификата, на ключе которого подписано сообщение.
CADES_VERIFY_END_CERT_REVOCATION	Ошибка проверки конечного сертификата на отзыв.
CADES_VERIFY_CHAIN_CERT_REVOCATION	Ошибка проверки сертификата цепочки на отзыв.
CADES_VERIFY_BAD_SIGNATURE	Сообщение содержит неверную подпись.
CADES_VERIFY_NO_VALID_CADES_C_TIMESTAMP	В сообщении не найден действительный штамп времени на доказательства подлинности подписи.
CADES_VERIFY_ECONTENTTYPE_NO_MATCH	Значение подписанного атрибута content-type не совпадает со значением, указанным в поле encapContentInfo.eContentType.



Можно ли подобный статус ошибки получить при использовании signedData.VerifyCades?
Или эти статусы можно получить на основе полученного исключения? Если да, то где посмотреть список всех возможных исключений?

Т.е. вопрос - как получить более человекопонятное описание ошибки, возникшей при проверке подписи?
Offline bsoft  
#72 Оставлено : 12 января 2021 г. 5:10:36(UTC)
bsoft

Статус: Участник

Группы: Участники
Зарегистрирован: 08.12.2020(UTC)
Сообщений: 17
Российская Федерация

Сказал(а) «Спасибо»: 11 раз
Подскажите что делать, чтобы при подписании XML кодировка не менялась.

Вставил XML в signedXML:
Код:
    # Подписываем запрос
    signedXML = pycades.SignedXML()
    signedXML.Content = etree.tostring(request_doc, pretty_print=False, encoding='unicode')
    print(signedXML.Content)

Вывод:
Код:
 ...
        <soapenv:Body wsu:Id="BodyId-F6AC1DDCAC4D4FBF9078EEB332F502C4">
                <v2:newActionRequest>
                        <v2:actionCode>action396</v2:actionCode>
                        <v2:addAppId>4334</v2:addAppId>
                        <v2:addAppIdCode>ogrn</v2:addAppIdCode>
                        <v2:addSocId>10000000456396</v2:addSocId>
                        <v2:addSocIdCode>atk</v2:addSocIdCode>
                        <v2:applicantId>1396</v2:applicantId>
                        <v2:date>2015-03-26T20:30:00</v2:date>
                        <v2:empFio>Смирнов Иван Сергеевич</v2:empFio>
                        <v2:empId>100000396</v2:empId>
                        <v2:empJob>Специалист</v2:empJob>
                        <v2:finished>false</v2:finished>
                        <v2:fromIS>ИС1</v2:fromIS>
                        <v2:innerId>5c0b8438-f979-11e4-9233-080027c60396</v2:innerId>
                        <v2:linkedAction>a506abf4-2432-4182-89c9-661fede25604</v2:linkedAction>
                        <v2:name>Новое событие!</v2:name>
                        <v2:orgName>Ведомство</v2:orgName>
                        <v2:ownerOrg>Ведомство2</v2:ownerOrg>
                        <v2:rguId>500000000456396</v2:rguId>
                        <v2:actionSoap>
                                <v2:path>/actionsoap/2015/05/26/a506abf4-2432-4182-89c9-661fede256604/_actionSoap400.xml</v2:path>
                                <v2:length>24</v2:length>
                                <v2:body>Tuj8Rj4fnj4j4nV44jv4894fNfj39HFh33</v2:body>
                                <v2:name>_actionSoap400.xml</v2:name>
                        </v2:actionSoap>
                        <v2:socId>2000000456396</v2:socId>
                        <v2:status>2</v2:status>
                        <v2:statusDate>2015-03-27T20:30:00</v2:statusDate>
                        <v2:toIS>ИС2</v2:toIS>
                        <v2:type>petition</v2:type>
                        <v2:uniqId>a506abf4-2432-4182-89c9-661fede25400</v2:uniqId>
                </v2:newActionRequest>
        </soapenv:Body>
...

После подписания результат перекодирован:
Код:
signedXML.SignatureType = pycades.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE
    signedXML.SignatureMethod = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256"
    signedXML.DigestMethod = "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256"
    request = signedXML.Sign(signer)
    print(request)

Вывод:
Код:

...
        <soapenv:Body wsu:Id="BodyId-F6AC1DDCAC4D4FBF9078EEB332F502C4">
                <v2:newActionRequest>
                        <v2:actionCode>action396</v2:actionCode>
                        <v2:addAppId>4334</v2:addAppId>
                        <v2:addAppIdCode>ogrn</v2:addAppIdCode>
                        <v2:addSocId>10000000456396</v2:addSocId>
                        <v2:addSocIdCode>atk</v2:addSocIdCode>
                        <v2:applicantId>1396</v2:applicantId>
                        <v2:date>2015-03-26T20:30:00</v2:date>
                        <v2:empFio>&#x421;&#x43C;&#x438;&#x440;&#x43D;&#x43E;&#x432; &#x418;&#x432;&#x430;&#x43D; &#x421;&#x435;&#x440;&#x433;&#x435;&#x435;&#x432;&#x438;&#x447;</v2:empFio>
                        <v2:empId>100000396</v2:empId>
                        <v2:empJob>&#x421;&#x43F;&#x435;&#x446;&#x438;&#x430;&#x43B;&#x438;&#x441;&#x442;</v2:empJob>
                        <v2:finished>false</v2:finished>
                        <v2:fromIS>&#x418;&#x421;1</v2:fromIS>
                        <v2:innerId>5c0b8438-f979-11e4-9233-080027c60396</v2:innerId>
                        <v2:linkedAction>a506abf4-2432-4182-89c9-661fede25604</v2:linkedAction>
                        <v2:name>&#x41D;&#x43E;&#x432;&#x43E;&#x435; &#x441;&#x43E;&#x431;&#x44B;&#x442;&#x438;&#x435;!</v2:name>
                        <v2:orgName>&#x412;&#x435;&#x434;&#x43E;&#x43C;&#x441;&#x442;&#x432;&#x43E;</v2:orgName>
                        <v2:ownerOrg>&#x412;&#x435;&#x434;&#x43E;&#x43C;&#x441;&#x442;&#x432;&#x43E;2</v2:ownerOrg>
                        <v2:rguId>500000000456396</v2:rguId>
                        <v2:actionSoap>
                                <v2:path>/actionsoap/2015/05/26/a506abf4-2432-4182-89c9-661fede256604/_actionSoap400.xml</v2:path>
                                <v2:length>24</v2:length>
                                <v2:body>Tuj8Rj4fnj4j4nV44jv4894fNfj39HFh33</v2:body>
                                <v2:name>_actionSoap400.xml</v2:name>
                        </v2:actionSoap>
                        <v2:socId>2000000456396</v2:socId>
                        <v2:status>2</v2:status>
                        <v2:statusDate>2015-03-27T20:30:00</v2:statusDate>
                        <v2:toIS>&#x418;&#x421;2</v2:toIS>
                        <v2:type>petition</v2:type>
                        <v2:uniqId>a506abf4-2432-4182-89c9-661fede25400</v2:uniqId>
                </v2:newActionRequest>
        </soapenv:Body>
...
Offline Ситдиков Денис  
#73 Оставлено : 12 января 2021 г. 13:15:30(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 85
Российская Федерация
Откуда: Москва

Поблагодарили: 20 раз в 18 постах
Цитата:
Т.е. вопрос - как получить более человекопонятное описание ошибки, возникшей при проверке подписи?


Добрый день!
Если возникает ошибка, то выбрасывается исключение с кодом возврата вида 0x8009100E. Этот код возврата аналогичен кодам ошибок на windows. Их описание можно найти, например, с помощью Microsoft Error Lookup Tool или просто вбить в поиск.

Если этой информации недостаточно и надо узнать, на каком сертификате прерывается построение цепочки, можно задать системную переменную
Код:
export CP_PRINT_CHAIN_DETAIL=1

для вывода дебаговой информации при построении.

Если этого тоже недостаточно, можно включить дебаговые записи для библиотек cades.
Offline Ситдиков Денис  
#74 Оставлено : 12 января 2021 г. 13:36:39(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 85
Российская Федерация
Откуда: Москва

Поблагодарили: 20 раз в 18 постах
Цитата:
Подскажите что делать, чтобы при подписании XML кодировка не менялась.


В самом xml документе кодировка не указана?
Offline mstdoc  
#75 Оставлено : 12 января 2021 г. 16:50:20(UTC)
mstdoc

Статус: Участник

Группы: Участники
Зарегистрирован: 25.11.2019(UTC)
Сообщений: 28

Сказал(а) «Спасибо»: 1 раз
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Т.е. вопрос - как получить более человекопонятное описание ошибки, возникшей при проверке подписи?


Добрый день!
Если возникает ошибка, то выбрасывается исключение с кодом возврата вида 0x8009100E. Этот код возврата аналогичен кодам ошибок на windows. Их описание можно найти, например, с помощью Microsoft Error Lookup Tool или просто вбить в поиск.

Спасибо.
Но хотелось бы видеть весь перечень ошибок ДО момента их возникновения, чтобы встроить обработчик в свое приложение и показывать человеку понятное сообщение.

Автор: Ситдиков Денис Перейти к цитате

Если этой информации недостаточно и надо узнать, на каком сертификате прерывается построение цепочки, можно задать системную переменную
Код:
export CP_PRINT_CHAIN_DETAIL=1

для вывода дебаговой информации при построении.

Если этого тоже недостаточно, можно включить дебаговые записи для библиотек cades.


К сожалению, в докере включить дебажные логи так и не удалось...
Кроме того, задача стоит не в том, чтобы админ мог в логах посмотреть что произошло (хотя это тоже весьма полезная возможность), а чтобы человек прямо в процессе мог понять что пошло не так.
Offline Ситдиков Денис  
#76 Оставлено : 12 января 2021 г. 17:31:26(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 85
Российская Федерация
Откуда: Москва

Поблагодарили: 20 раз в 18 постах
Цитата:
Спасибо.
Но хотелось бы видеть весь перечень ошибок ДО момента их возникновения, чтобы встроить обработчик в свое приложение и показывать человеку понятное сообщение.

Посмотрите файл errormsg.cpp из архива с исходниками, там для части ошибок есть сопоставление кода возврата и описания ошибки.
Более полного и подробного перечня нет.
Offline bsoft  
#77 Оставлено : 13 января 2021 г. 2:01:18(UTC)
bsoft

Статус: Участник

Группы: Участники
Зарегистрирован: 08.12.2020(UTC)
Сообщений: 17
Российская Федерация

Сказал(а) «Спасибо»: 11 раз
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Подскажите что делать, чтобы при подписании XML кодировка не менялась.


В самом xml документе кодировка не указана?


В XML кодировка не указана.

Отредактировано пользователем 13 января 2021 г. 2:03:59(UTC)  | Причина: Не указана

Offline nomhoi  
#78 Оставлено : 13 января 2021 г. 11:57:36(UTC)
nomhoi

Статус: Активный участник

Группы: Участники
Зарегистрирован: 29.10.2020(UTC)
Сообщений: 58
Российская Федерация

Сказал(а) «Спасибо»: 10 раз
Добрый день!

С помощью pycades можно получить отпечаток сертификата из файла сертификата *.cer? Как это можно вообще сделать?

Отредактировано пользователем 13 января 2021 г. 12:05:31(UTC)  | Причина: Не указана

Offline Ситдиков Денис  
#79 Оставлено : 13 января 2021 г. 13:37:45(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 85
Российская Федерация
Откуда: Москва

Поблагодарили: 20 раз в 18 постах
Автор: nomhoi Перейти к цитате
Добрый день!

С помощью pycades можно получить отпечаток сертификата из файла сертификата *.cer? Как это можно вообще сделать?


Добрый день!
Certificate.Import + Certificate.Thumbprint (объект Certificate)
На вход Import подается сертификат в виде строки в base64.
thanks 1 пользователь поблагодарил Ситдиков Денис за этот пост.
nomhoi оставлено 14.01.2021(UTC)
Offline Ситдиков Денис  
#80 Оставлено : 13 января 2021 г. 13:50:49(UTC)
Ситдиков Денис

Статус: Администратор

Группы: Участники
Зарегистрирован: 01.03.2017(UTC)
Сообщений: 85
Российская Федерация
Откуда: Москва

Поблагодарили: 20 раз в 18 постах
Автор: bsoft Перейти к цитате
Автор: Ситдиков Денис Перейти к цитате
Цитата:
Подскажите что делать, чтобы при подписании XML кодировка не менялась.


В самом xml документе кодировка не указана?


В XML кодировка не указана.


Попробуйте явно задать кодировку в файле, как это сделано в примере.
В интерфейсе объекта SignedXML это сделать нельзя.
thanks 1 пользователь поблагодарил Ситдиков Денис за этот пост.
bsoft оставлено 14.01.2021(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
10 Страницы«<23456>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.