E1r0nd |
|
Статус: Новичок Группы: Участники
|
Приветствую! ok_sig.txt (35kb) загружен 3 раз(а). error_sig.txt (706kb) загружен 2 раз(а). |
|
|
Санчир Момолдаев |
|
Статус: Сотрудник Группы: Модератор, Участники Сказал(а) «Спасибо»: 86 раз |
Добрый день! причина в том что например crl может быть издан месяц назад и действовать еще два месяца. поэтому в качестве доказательств принимается только ocsp ответ с thisUpdate, при этом nextUpdate в ответе должно отсутствовать. время в штампах должно удовлетворять условию конечно может и можно было бы чтобы использовалься crl, но в таком случае УЦ должен выпускать crl ежесекундно, что нереализуемо Отредактировано пользователем 3 июня 2022 г. 0:25:17(UTC) |
Техническую поддержку оказываем тут |
|
|
|
Новожилова Елена |
|
Статус: Сотрудник Группы: Администраторы, Участники Поблагодарили: 99 раз в 95 постах |
Дополню про CRL. Для того, чтобы CRL подтверждал действительность сертификата на момент подписи, он должен быть выпущен (имеется в виду поле thisUpdate) после момента времени, указанном в штампе времени на подпись. То есть пришлось бы сначала создать подпись, получить на неё штамп времени, подождать выпуска следующего CRL и только тогда закончить создание подписи CAdES-X Long Type 1. Большинство CRL выпускаются раз в сутки. И второй момент, про который не всегда помнят, — CRL имеет гораздо больший размер, чем OCSP-ответ. Здесь в соседней ветке были жалобы на CRL в пару мегабайт, включаемый в каждую подпись. Именно из-за этих двух существенных минусов: (1) подпись можно (в большинстве случаев) закончить только на следующий день и (2) большой размер — и было принято решение для проверки сертификата ключа подписи использовать только OCSP-ответ. Замечу, что для промежуточных CA требования менее строгие, для них допускается использование CRL в доказательствах. |
|
|
Андрей * |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Автор: Новожилова Елена Дополню про CRL. Именно из-за этих двух существенных минусов: (1) подпись можно (в большинстве случаев) закончить только на следующий день и (2) большой размер — и было принято решение для проверки сертификата ключа подписи использовать только OCSP-ответ. Замечу, что для промежуточных CA требования менее строгие, для них допускается использование CRL в доказательствах. Например, сейчас CRL ФНС уже 4.5 мб ( с 114К отозванных сертификатов)… Snimok ehkrana ot 2022-06-03 12-59-43.png (43kb) загружен 4 раз(а). |
Техническую поддержку оказываем тут |
|
|
WWW |
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Содержание
- Либо внутренняя ошибка asn1 либо ошибка дешифровки 0x80093101
- Общие обсуждения
- Либо внутренняя ошибка asn1 либо ошибка дешифровки 0x80093101
- Jrpcexception asn 1 decode error offset 0
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Что означает нехватка памяти для ASN1?
- Как исправить ошибку 0x80093106
Общие обсуждения
Здравствуйте!
В нашей организации мы столкнулись с проблемой не позволяющей отправлять зашифрованные сообщения в MS Outlook 2007.
Есть группа организаций, в каждой из которой осуществляется выпуск сертификатов средствами собственных удостоверяющих центров, входящих в сеть удостоверяющих центров. При отправке зашифрованных писем внутри нашей организации появляется следующее сообщение об ошибке: » Ошибка на нижнем уровне системы безопасности. Встречено неверное значение тега ASN1 «. Как правило ошибка появляется при отправке сообщений получателям имеющим сертификат выданный нашим удостоверяющим центром и внутри организации. При отправке сообщения в другую организацию, соответственно с сертификатом выданным её удостоверяющим центром, сообщение уходит без каких- либо проблем. Если отправлять сообщение внутри организации, но использовать при шифровании сертификат выданный удостоверяющим центром другой организации, письмо уходит нормально. Было предположение, что возможно проблема в сертификатах выпускаемым нашим удостоверяющим центром. Проводили тестовые отправки писем с семи рабочих станций, используя учетные записи семи человек. В тестировании было 5 пользовательских рабочих станций и две тестовые с операционной системой Windows XP Pro и операционной системой Windows 7. Тестовые машины крайне редко использовались для работы пользователей и никогда для шифрованного документооборота средствами MS Outlook. В ходе тестов выяснили следующее:
1. Почти у всех пользователей с тестовой рабочей станции с операционной системой Windows XP Pro сообщения оправились без проблем. Ошибка возникла только у одного пользователя, она также возникает и на его рабочей станции.
2. При смене пользователями рабочих станций на одних местах ошибка возникала, а на других нет. И выявить какую-либо определенную закономерность не удалось. Ошибка возникала у разных пользователей на разных рабочих станциях.
3. При отправке сообщений с тестовой машины с операционной системой Windows 7 снова появлялась данная ошибка, хотя на некоторых других машинах и в том числе тестовой с Windows XP Pro, ошибки не было.
4. На тестовой рабочей станции под управлеинем Windows 7 осуществлялась отправка сообщений от двух пользователей с одинаковыми сертификатами, выдаными одним удостоверяющим центром. От первого пользователя сообщения уходили нормально всем сотрудникам участвовашим в тестировании. От второго пользователя сообщение удалось отправить только первому, во всех других случаях снова возникала ошибка тега ASN1.
Так как на одних рабочих станциях все работало нормально, а на других нет, причем у одних и тех же пользователей, мне кажется дело не в сертификатах. Скорее всего проблема в самих рабочих станциях, их настройках или в конфликте с программным обеспечением установленным на машины. В чем конкретно проблема мы своими силами, к сожалению, выяснить не смогли.
Так на большинстве рабочих мест в нашей организации установлена операционная система Windows 7 и осуществляется плановый переход на эту систему с Windows XP Pro, где она ещё используется, то хотелось бы решить данную проблему применительно к Windows 7, если нет какого-то общего решения.
Outlook настроен на шифрование вполне корректно, т.к. ошибка возникает не постоянно при отправке каждого сообщения. Да и обмен зашифрованной почты с сотрудниками других организаций проходит нормально.
Скажите, пожалуйста, типична ли данная ошибка или нет и корни проблемы стоит искать в конфликте программного обеспечения.
Какие вообще есть идеи и что можно попробовать или почитать, чтобы решить эту проблему.
Спасибо!
Источник
Либо внутренняя ошибка asn1 либо ошибка дешифровки 0x80093101
Программа: КриптоАРМ — Ошибка 1722. Ошибка пакета Windows Installer. Непредвиденное завершение программы, являющейся частью установки. Обратитесь к техническому персоналу или к поставщику пакета. Действие ProcessMsi1, расположение: D:, команда: msiexec.exe /i «C:UsersRbuAppDataLocalTemp7ZipSfx.000TDStandardsetup-Win32.msi» /qb ADDLOCAL=TSPClient,OCSPClient,CAdESModule,CAPICOMModule REBOOT=ReallySuppress
Добрый день! При подписании файла выходит ошибкаСтатус завершения операции: Неудача.
Длительность выполнения операции: 0:00:11.88
Входной файл: C:Обращение на аванс РГС-Медицина.docx
Выходной файл: C:Обращение на аванс РГС-Медицина.docx.sig
Описание ошибки:
Ошибка сохранения сообщения (0x80004005)
Ошибка сохранения сообщения (0x80004005)
Произошла ошибка при создании подписи
Произошла ошибка при определении размера закодированного сообщения
Добрый день! Подскажите пожалуйста в чем причина ? При попытке шифрования уже подписанного файла выходит следующее сообщение :Произошла ошибка при шифровании сообщения
Произошла ошибка при открытии сообщения для кодирования
Внутренняя ошибка (CSP). (0x80090020)
Постоянные проблемы на 2х ПК с КриптоАРМ
1) слетает браузер плагин (просто перестает работать с ошибкой) обновление (cadesplugin) на актуальную версию не исправляет проблему, на ПК1 можно подписывать обычно или с штампов времени, но отправлять за-за плагина нельзя.
2) перестает работать штамп времени на ПК2, переустановка КриптоАРМ 2 не помогает.
Ключи рабочие, КриптоАРМ работают некоторое время после ПОЛНОЙ переустановки ОС (Win10 64)
На ПК2 подписывали без штампа, либо пересылали подписанный на ПК1 файл со штампом времени и отправляли.Вчера на ПК2 во время отправки слетел плагин, и не работает штамп времени.Переустановка КриптоАРМ не помогает.
Также после переустановки КриптоАРМ остаются настройки конфигурации..Хотя пробовали удалять тотальным унисталером
Скриншоты во вложении
Помогите! Уже устали от этих внезапных отказов в работе программы.
Источник
Jrpcexception asn 1 decode error offset 0
Ошибка 0x80093106 и нехватка памяти для ASN1
Ошибка 0x80093106 и нехватка памяти для ASN1
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Пару лет назад я устанавливал Windows 7 одному из своих друзей на его ноутбук. Все работало как часы, но на прошлой неделе мой друг написал мне, что у него на сайте taxcom.ru во время приема пакетов, выскочила ошибка «Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106″ и попросил помочь в решении данной проблемы. Отказать ему я не мог, поэтому, когда появилось свободное время я приступил к ее устранению.
Что означает нехватка памяти для ASN1?
Есть такая система сдачи отчетности Такском, у пользователя выскочило уведомление:
[info]Уведомление о запрете использования сертификатов, выпущенных по ГОСТу 34.10-2001. Ошибка в процессе приема пакетов. В процессе приема документа от регламенту произошла ошибка. Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106[/info]
В итоге Windows 7 используя метод EnvelopedCms.Decode в приложении Microsoft .NET Framework, не может декодировать сообщения размером более 5 мегабайт (МБ). Кроме того, вы получаете сообщение об ошибке, похожее на следующее:
- Необработанное исключение: System.Security.Cryptography.CryptographicException: ASN1 недостаточно памяти.
- в System.Security.Cryptography.Pkcs.EnvelopedCms.OpenToDecode (Byte [] encodedMessage)
- в System.Security.Cryptography.Pkcs.EnvelopedCms.Decode (Byte [] encodedMessage)
Эта проблема возникает из-за того, что размер буфера неправильно увеличивается в функции CryptMsgUpdate, когда метод EnvelopedCms.Decode добавляет декодированный контент в буфер во время процесса декодирования. Таким образом, целочисленное переполнение происходит для большого файла.
Как исправить ошибку 0x80093106
Чтобы у нас возвратилась возможность принимать и обрабатывать письма более пяти мегабайт вам необходимо установить специальное обновление от Microsoft, это как в случае с бесконечным обновлением системы, вам его придется загрузить отдельно. Исправление заменит библиотеку Msasn1.dll. Нужная нам KB Windows6.1-KB2480994-v2-x64 или более новая версия KB2729094, подробнее о нем (https://support.microsoft.com/ru-ru/help/2480994/asn1-out-of-memory-error-when-the-cryptmsgupdate-function-decodes-a-me)
- Скачать KB2480994 можно у меня по ссылке, к сожалению MS данное обновление убрала и заменила, на сколько я понял KB2729094
- Скачать KB2729094 по ссылке (https://support.microsoft.com/ru-ru/help/2729094/an-update-for-the-segoe-ui-symbol-font-in-windows-7-and-in-windows-ser) или у меня из облака одним пакетом (https://cloud.mail.ru/public/Dgmm/KU6ehFgkn)
Производим установку обновлений KB248099. Запускаем его и соглашаемся на установку.
Сам процесс установки обновления KB248099 занимаем менее минуты.
I am using Objective System Inc(http://www.obj-sys.com/products/asn1c/index.php) ASN.1 Compiler and the specification file(cdr_spec.asn) generated Java source code. The CDRS are enecoded based on format BER(Basic Encoding Rule)
Command to generate Java source:
The source is generated:
When I decode the first CDR file, it parses 3 lines only, the CDR file is supposed to contain more than 100 lines, so it is partially decoded.
When I try decoding another CDR file, it is failed when decoding CDR file and gave me such error:
My ASN.1 specification file does not have any syntax error when I use tool checking its syntax.
Can anyone who knows ASN.1 well help me about this?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I’d need some assistance in using the Service Control Engine (SCE) API.
I have developed a simple application that queries the bucket data for a given subscriber (using the getQuotaStatus API). However, despite I believe the source code is correct, I cannot get any reply back from the SCE.
The client-side debugging (in Log4J) confirms that everything is fine, and that the getQuotaStatus() command was issued properly.
I did some debugging by enabling the command «management-agent sce-api logging» on the SCE command line, and I see this log entries:
In particular, I don’t understand the «BAD: input is closed ASN.1 decode error» message.
Is this a known bug? How can I debug more, for example how can I get the text the SCE is trying to decode in ASN.1 notation?
I can post some snippet of my code, which is anyway very simple.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
The following message you pointed is too general and doesn’t
help much unfortunately. For instance, it can happen even when
there was a network connection issue between SCE and API.
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
The method getQuotaStatus works fine for me, so there should
be something difference between us. I’m using 3.7.0.
One thing I can come up with is that you need to configure
the Quota RDR’s in SCABB and RDR-formatter for category 4
as below to get proper values by getQuotaStatus.
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority
Configuring the Quota Manager
If it still doesn’t work after the above changes, please share
the following information for further troubleshooting.
+ SCE and API version
+ OS which runs the API
+ Snippet of your code
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Many thanks for your answer.
I’ve added the line
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority 100
in the configuration. There are no other destinations for category 4.
By the way, I see that this problem is still open on 3.7.0, see «CSCsm19587» in the release notes (
However, I cannot get any answer from the SCE. My details:
- SCE and API version: SCE8000 running version 3.6.5 Build 489. API version is: 3.6.5 Build 300.
- Java version: 1.6.0_26
- OS which runs the API: tried both Windows 7 and Apple OSX 10.6
- Snippet of your code: see below
This is the code of the main class :
This is the code of SceQuotaListener.java :
This is the code of SceResultHandler.java :
Many thanks for your help, this problem got me stuck for ages, it’s driving me mad.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hmm.. the source code you provided works fine for me on
my setup which runs same versions with yours.
I have added some println lines in your code to see the received value
and here is the result.
I’m getting the quota status for subscriber test1
1: 1048576(bucket id:value)
But when no bucket is assigned to the subscriber, then no value is returned.
So I assume you need to complete Quota related configurations including
Quota RDR settings on SCA-BB GUI(which I pointed in the previous reply) and
QM config on SM.
Please refer to the following doc for the detail.
You can check if a bucket.quota is assigned to a subs by:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state
Bucket 1 is used. Status – Not Breached.
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
If no bucket is assigned:
SCE2000#>sh interface LineCard 0 subscriber name test2 bucket-state
Error – Subscriber has no quota profile.
BTW, do you always see the following error?
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
Or the above error is one time event and your problem is that simply
SCE doesn’t reply any info to getQuotaStatus method?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks again for helping me.
I’ve followed the guide you linked (both the 3.6.5 and 3.7.0) line by line. I’ve also upgraded the OS and the API jars to 3.7.0, but the result is the same.
The only difference with my configuration is in this screen:
the guide suggests to configure «Gy», while I am using the second option instead. The difference is not fully clear to me.
I do see a similar output when I query a user with associated quota:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
I always get the error
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
every time I use the getQuotaStatus().
Also, I tried following the instruction in paragraph » Configuring SCE for Quota Management Provisioning » of the guide you linked me (http://www.cisco.com/en/US/partner/docs/cable/serv_exch/serv_control/broadband_app/rel37x/qm_sol/03_configuring.html#wp1053276) but nothing changed.
Any other idea or debugging to suggest?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
You always see the error while I have never seen it in my setup, that’s wired.
I think that’s better to open a TAC case with your SCE support file and the source code.
Last thing I can think of is that there is something issue in your network between your API
and SCE. For example, NAT, firewall, security software on your PC, etc. I’m not sure if these
can cause such error but if you don’t mind please test it again with a direct connection(same network)
between them. Seems the IP of SCE is 123.123.123.2 and the API is 192.168.2.101,
so I believe they are in different network.
If it doesn’t work with this change, I think openning a TAC case is a better option.
I’m sorry that I can’t help you much.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I have already opened a TAC last week, but it’s progressing very slowly and it seems quite hard to debug.
Thanks so much for spending time to help me.
ps: the ip 123.123.123.123 is a placeholder. There is no NAT nor firewall between the SCE and the API client. I tried this already.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I don’t want to bother your TAC case or work in parallel,
but there is something I forgot to suggest.
How many subscriber do you have in your SCE box?
If you have more than one and if this is not a production
environment, can you try clearing all the subscribers once
then import ev_btest32 only and try the test again?
If this is not a production, you can enable the following
rpc debug(at this point I’m not sure if this is helpful.).
debug rpc-adapter debug-mode on
debug rpc-adapter debug-mode off
The debug log generated can be found:
I think you have already tried this, but if you didn’t can
you please try reloading your SCE or try different SCE box?
Of course if this is not a production.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks so much again for your help.
Sadly, this is a production SCE (with tens of thousands subscribers) so I can’t do anything of these. I also have another two SCE1000 and SCE2000 but they are in production too, and their subscribers don’t have associated quota.
My TAC was escalated today, let’s wait and see. It’s becoming quite frustrating.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I see, I’m sorry to hear that
Let’s wait for the response from escalation.
My intention was that something performance factor(num of subs, e.g.) is related to this issue
as in working case I see the following log(indicated in red) just after the same log(indicated in blue)
with yours, while in your case nothing happens about for 5 seconds then generates the error.
2011-10-11 17:32:12 | INFO | CPU #000 | Cleared user log files
2011-10-11 17:32:56 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:03 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 established, client name is mcn.sceGw_1.120.20.1_SCE.J.API.PRPC, session name is rpc-3.
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – registered a quota Listener
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: getQuotaStatus operation was called with parameters: >
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – disconnected
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 closed OK: peer terminated connection: user request.
But I wouldn’t recommend to try anything I suggested in last reply as this is a production.
Источник
Содержание
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Что означает нехватка памяти для ASN1?
- Как исправить ошибку 0x80093106
Ошибка 0x80093106 и нехватка памяти для ASN1
Ошибка 0x80093106 и нехватка памяти для ASN1
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Пару лет назад я устанавливал Windows 7 одному из своих друзей на его ноутбук. Все работало как часы, но на прошлой неделе мой друг написал мне, что у него на сайте taxcom.ru во время приема пакетов, выскочила ошибка «Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106″ и попросил помочь в решении данной проблемы. Отказать ему я не мог, поэтому, когда появилось свободное время я приступил к ее устранению.
Что означает нехватка памяти для ASN1?
Есть такая система сдачи отчетности Такском, у пользователя выскочило уведомление:
[info]Уведомление о запрете использования сертификатов, выпущенных по ГОСТу 34.10-2001. Ошибка в процессе приема пакетов. В процессе приема документа от регламенту произошла ошибка. Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106[/info]
В итоге Windows 7 используя метод EnvelopedCms.Decode в приложении Microsoft .NET Framework, не может декодировать сообщения размером более 5 мегабайт (МБ). Кроме того, вы получаете сообщение об ошибке, похожее на следующее:
- Необработанное исключение: System.Security.Cryptography.CryptographicException: ASN1 недостаточно памяти.
- в System.Security.Cryptography.Pkcs.EnvelopedCms.OpenToDecode (Byte [] encodedMessage)
- в System.Security.Cryptography.Pkcs.EnvelopedCms.Decode (Byte [] encodedMessage)
Эта проблема возникает из-за того, что размер буфера неправильно увеличивается в функции CryptMsgUpdate, когда метод EnvelopedCms.Decode добавляет декодированный контент в буфер во время процесса декодирования. Таким образом, целочисленное переполнение происходит для большого файла.
Как исправить ошибку 0x80093106
Чтобы у нас возвратилась возможность принимать и обрабатывать письма более пяти мегабайт вам необходимо установить специальное обновление от Microsoft, это как в случае с бесконечным обновлением системы, вам его придется загрузить отдельно. Исправление заменит библиотеку Msasn1.dll. Нужная нам KB Windows6.1-KB2480994-v2-x64 или более новая версия KB2729094, подробнее о нем (https://support.microsoft.com/ru-ru/help/2480994/asn1-out-of-memory-error-when-the-cryptmsgupdate-function-decodes-a-me)
- Скачать KB2480994 можно у меня по ссылке, к сожалению MS данное обновление убрала и заменила, на сколько я понял KB2729094
- Скачать KB2729094 по ссылке (https://support.microsoft.com/ru-ru/help/2729094/an-update-for-the-segoe-ui-symbol-font-in-windows-7-and-in-windows-ser) или у меня из облака одним пакетом (https://cloud.mail.ru/public/Dgmm/KU6ehFgkn)
Производим установку обновлений KB248099. Запускаем его и соглашаемся на установку.
Сам процесс установки обновления KB248099 занимаем менее минуты.
I am using Objective System Inc(http://www.obj-sys.com/products/asn1c/index.php) ASN.1 Compiler and the specification file(cdr_spec.asn) generated Java source code. The CDRS are enecoded based on format BER(Basic Encoding Rule)
Command to generate Java source:
The source is generated:
When I decode the first CDR file, it parses 3 lines only, the CDR file is supposed to contain more than 100 lines, so it is partially decoded.
When I try decoding another CDR file, it is failed when decoding CDR file and gave me such error:
My ASN.1 specification file does not have any syntax error when I use tool checking its syntax.
Can anyone who knows ASN.1 well help me about this?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I’d need some assistance in using the Service Control Engine (SCE) API.
I have developed a simple application that queries the bucket data for a given subscriber (using the getQuotaStatus API). However, despite I believe the source code is correct, I cannot get any reply back from the SCE.
The client-side debugging (in Log4J) confirms that everything is fine, and that the getQuotaStatus() command was issued properly.
I did some debugging by enabling the command «management-agent sce-api logging» on the SCE command line, and I see this log entries:
In particular, I don’t understand the «BAD: input is closed ASN.1 decode error» message.
Is this a known bug? How can I debug more, for example how can I get the text the SCE is trying to decode in ASN.1 notation?
I can post some snippet of my code, which is anyway very simple.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
The following message you pointed is too general and doesn’t
help much unfortunately. For instance, it can happen even when
there was a network connection issue between SCE and API.
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
The method getQuotaStatus works fine for me, so there should
be something difference between us. I’m using 3.7.0.
One thing I can come up with is that you need to configure
the Quota RDR’s in SCABB and RDR-formatter for category 4
as below to get proper values by getQuotaStatus.
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority
Configuring the Quota Manager
If it still doesn’t work after the above changes, please share
the following information for further troubleshooting.
+ SCE and API version
+ OS which runs the API
+ Snippet of your code
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Many thanks for your answer.
I’ve added the line
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority 100
in the configuration. There are no other destinations for category 4.
By the way, I see that this problem is still open on 3.7.0, see «CSCsm19587» in the release notes (
However, I cannot get any answer from the SCE. My details:
- SCE and API version: SCE8000 running version 3.6.5 Build 489. API version is: 3.6.5 Build 300.
- Java version: 1.6.0_26
- OS which runs the API: tried both Windows 7 and Apple OSX 10.6
- Snippet of your code: see below
This is the code of the main class :
This is the code of SceQuotaListener.java :
This is the code of SceResultHandler.java :
Many thanks for your help, this problem got me stuck for ages, it’s driving me mad.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hmm.. the source code you provided works fine for me on
my setup which runs same versions with yours.
I have added some println lines in your code to see the received value
and here is the result.
I’m getting the quota status for subscriber test1
1: 1048576(bucket id:value)
But when no bucket is assigned to the subscriber, then no value is returned.
So I assume you need to complete Quota related configurations including
Quota RDR settings on SCA-BB GUI(which I pointed in the previous reply) and
QM config on SM.
Please refer to the following doc for the detail.
You can check if a bucket.quota is assigned to a subs by:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state
Bucket 1 is used. Status – Not Breached.
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
If no bucket is assigned:
SCE2000#>sh interface LineCard 0 subscriber name test2 bucket-state
Error – Subscriber has no quota profile.
BTW, do you always see the following error?
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
Or the above error is one time event and your problem is that simply
SCE doesn’t reply any info to getQuotaStatus method?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks again for helping me.
I’ve followed the guide you linked (both the 3.6.5 and 3.7.0) line by line. I’ve also upgraded the OS and the API jars to 3.7.0, but the result is the same.
The only difference with my configuration is in this screen:
the guide suggests to configure «Gy», while I am using the second option instead. The difference is not fully clear to me.
I do see a similar output when I query a user with associated quota:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
I always get the error
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
every time I use the getQuotaStatus().
Also, I tried following the instruction in paragraph » Configuring SCE for Quota Management Provisioning » of the guide you linked me (http://www.cisco.com/en/US/partner/docs/cable/serv_exch/serv_control/broadband_app/rel37x/qm_sol/03_configuring.html#wp1053276) but nothing changed.
Any other idea or debugging to suggest?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
You always see the error while I have never seen it in my setup, that’s wired.
I think that’s better to open a TAC case with your SCE support file and the source code.
Last thing I can think of is that there is something issue in your network between your API
and SCE. For example, NAT, firewall, security software on your PC, etc. I’m not sure if these
can cause such error but if you don’t mind please test it again with a direct connection(same network)
between them. Seems the IP of SCE is 123.123.123.2 and the API is 192.168.2.101,
so I believe they are in different network.
If it doesn’t work with this change, I think openning a TAC case is a better option.
I’m sorry that I can’t help you much.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I have already opened a TAC last week, but it’s progressing very slowly and it seems quite hard to debug.
Thanks so much for spending time to help me.
ps: the ip 123.123.123.123 is a placeholder. There is no NAT nor firewall between the SCE and the API client. I tried this already.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I don’t want to bother your TAC case or work in parallel,
but there is something I forgot to suggest.
How many subscriber do you have in your SCE box?
If you have more than one and if this is not a production
environment, can you try clearing all the subscribers once
then import ev_btest32 only and try the test again?
If this is not a production, you can enable the following
rpc debug(at this point I’m not sure if this is helpful.).
debug rpc-adapter debug-mode on
debug rpc-adapter debug-mode off
The debug log generated can be found:
I think you have already tried this, but if you didn’t can
you please try reloading your SCE or try different SCE box?
Of course if this is not a production.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks so much again for your help.
Sadly, this is a production SCE (with tens of thousands subscribers) so I can’t do anything of these. I also have another two SCE1000 and SCE2000 but they are in production too, and their subscribers don’t have associated quota.
My TAC was escalated today, let’s wait and see. It’s becoming quite frustrating.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I see, I’m sorry to hear that
Let’s wait for the response from escalation.
My intention was that something performance factor(num of subs, e.g.) is related to this issue
as in working case I see the following log(indicated in red) just after the same log(indicated in blue)
with yours, while in your case nothing happens about for 5 seconds then generates the error.
2011-10-11 17:32:12 | INFO | CPU #000 | Cleared user log files
2011-10-11 17:32:56 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:03 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 established, client name is mcn.sceGw_1.120.20.1_SCE.J.API.PRPC, session name is rpc-3.
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – registered a quota Listener
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: getQuotaStatus operation was called with parameters: >
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – disconnected
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 closed OK: peer terminated connection: user request.
But I wouldn’t recommend to try anything I suggested in last reply as this is a production.
Использование ЭЦП открывает для владельца подписи дополнительные возможности. Но вместе с этим, иногда сопровождается небольшими техническими проблемами, связанными с необходимостью чёткого выполнения действий, связанных с загрузкой сертификатов, авторизацией, установкой необходимого программного обеспечения, а также системных требований к компьютеру.
Важно отметить, что большинство ошибок при работе с ЭЦП можно устранить в домашних условиях, без необходимости привлечения специалистов со стороны.
Содержание
- Какие виды ошибок ЭЦП бывают
- Проблема с подписанием ЭПЦ
- Как проявляется данная ошибка и что сделать, чтобы исправить
- Проблема с сертификатом
- Что делать если не найден сертификат или не верен
- Проблемы при авторизации
Какие виды ошибок ЭЦП бывают
Среди наиболее часто встречающихся ошибок в процессе подписания электронных документов электронной подписью выделяют три ключевых блока:
Проблема с подписанием ЭПЦ. Возникает в момент, когда владелец подписи желает использовать ее при подписании электронного документа.
Проблема с сертификатом. Здесь система информирует пользователя об отсутствии (не действительности), либо использовании незарегистрированного сертификата удостоверяющего центра, необходимого для внешней проверки ЭП.
Проблемы при авторизации. Появляется при проверке пользователя, когда владелец электронной подписи впервые пытается зайти на электронную площадку с подтверждением личности через ЭЦП.
Проблема с подписанием ЭПЦ
Причины, вызывающие подобную ошибку весьма разнообразны. Тут можно выделить такие основные направления:
- Закрытый ключ со съемного носителя (диска, флешки, Токена), не соответствует имеющемуся ключу открытого сертификата. Банальный человеческий фактор выбора не того носителя информации с ЭЦП. Если же «правильный» ключ утерян, придется обращаться в Удостоверяющий центр для перевыпуска.
- Недействительный сертификат. Чтобы устранить подобную ошибку потребуется переустановить открытый сертификат. Важно учитывать требования криптопровайдера (инструкции по необходимым действиям) для установки открытых сертификатов.
- Сертификат подписи определяется как не проверенный. Потребуется выполнить переустановку корневого сертификата, сформировавшего ЭП Удостоверяющего центра.
- Закончился срок действия криптопровайдера. Необходимо получить новый лицензионный ключ, позволяющий работать с программным обеспечением криптопровайдера. Информация запрашивается через УЦ, либо владельца ПО.
- Не виден сертификат на носителе. Помогает простая перезагрузка компьютера для устранения ошибка генерации.
- Алгоритм сертификата ЭЦП не поддерживается. Подобная ошибка может возникать при подписании электронной отчетности в налоговую. Потребуется переустановить КриптоПро CSP и проверить его на совместительство с имеющейся у вас на компьютере операционной системой.
Как проявляется данная ошибка и что сделать, чтобы исправить
Ошибка исполнения функции с информированием о невозможности подписать документ ЭЦП обычно появляется в момент подписания документа.
Система сразу выводит на экран уведомление о непредвиденной ошибке с кратким указанием причины ее возникновения.
Обычно для ее исправления требуются такие действия:
- проверка наличия, срока действия, подлинности сертификатов и выполнение их замены;
- выполнение проверки корректной работы операционной системы компьютера, ее обновление до минимальных допустимых параметров;
- проверка состояния съемного носителя закрытого ключа;
- выявление и устранение ошибок работы криптопровайдера.
Важно. Причина, из-за которой владелец ЭЦП не может нею воспользоваться, может быть комплексной. Поэтому, если не сработал один из предложенных вариантов, проверьте по другим направлениям.
Проблема с сертификатом
Распространенным явлением во время подписания электронных документов ЭЦП является получение уведомления, что системе не удалось получить доступ к сертификатам, пригодным для формирования подписи.
Здесь причины возникновения неисправности могут быть такими:
- Пользователь не установил на свой ПК корневые сертификаты УЦ, осуществлявшего формирование и выдачу ЭЦП. Для устранения – скачать и установить на компьютер такой сертификат, либо прописать доступ к нему.
- Система не видит личных сертификатов владельца ЭЦП. Выдаются одновременно с оформлением ЭП. Их необходимо загрузить на ваш ПК, и подтянуть в криптопровайдер. В дальнейшем можно загрузить через сайт УЦ. Устанавливаются и прописываются на рабочем месте, предназначенном для работы с ЭЦП. С незарегистрированным сертификатом вы не сможете осуществлять подписание электронных документов.
- Информирование о невалидности сертификатов. Обычно такое возможно в случае, когда заканчивается срок действия сертификата, либо их отзывают. Потребуется обращаться в УЦ, выдавший ЭЦП, для уточнения статуса сертификатов подписи. В некоторых случаях помогает обновление сертификатов на компьютере пользователя. Сделать это можно вручную.
Мнение эксперта
Владимир Аникеев
Специалист отдела технической поддержки УЦ
Внимательно читайте природу ошибки, что выдает система. Обычно это ключ к дальнейшему направлению поиска источника проблемы и ее устранению.
Что делать если не найден сертификат или не верен
Когда сертификат отсутствует в списке «Ваши Сертификаты», проблема может оказаться в отсутствии коренного сертификата УЦ.
Для устранения этой проблемы необходимо:
- проверить наличие такого сертификата на вашем ПК по пути: «Пуск» — дальше «Все программы» — после этого плагин «КриптоПро» — а уже там «Сертификаты»;
- дальше находим вкладку «Личное», выбираем «Сертификаты»;
- потребуется открыть не отображенный во вкладке сертификат и просмотреть его «Путь сертификации»;
- тут отображаются все цепочки сертификатов в порядке ранжирования. Важно чтобы напротив какого-то из них не стоял желтый, либо красный значок предупреждения. Если подобное присутствует – нажмите на сам сертификат и ознакомьтесь с ошибкой, что выдаст система;
- в зависимости от причины (обычно это окончание действия сертификата, либо не верифицирован) выполните ее устранение.
Чтобы устранить ошибку и перезагрузить отозванный сертификат потребуется выполнить несколько не сложных действий:
- в окне «Свойства браузера» откройте личный сертификат. Попасть туда можно через «Поиск» меню «Пуск». В открытом окошке ищите вкладку «Содержание», дальше вкладку «Сертификаты»;
- после этого во вкладке «Состав» потребуется выбрать позицию «Точки распространения списков отзывов»;
- в следующем блоке под названием «Имя точки распространения» необходимо выполнить копирование ссылки загрузки файла списка отзывов;
- переходя по указанной ссылке необходимо скачать и установить файл списка отзывов (CRL);
- дальше переходим по подсказкам «Мастера импорта сертификатов».
Следующей распространенной проблемой, когда компьютер не видит сертификат на носителе, является сбой в работе программных продуктов компьютера либо Токена (флешки). Обычно помогает простая перезагрузка ПК. Среди прочих популярных проблем этого направления можно выделить такие:
- На носителе отсутствует драйвер, либо он установлен не корректно. Необходимо скачать последнюю версию драйвера с официального источника и установите его. Можно проверить работоспособность съемного носителя на другом ПК. В этом случае, если другой ПК нормально работает с носителем ЭЦП, переустановите драйверы на первом компьютере.
- Система долго распознает носитель ЭЦП. Тут проблема в операционной системе. Ее потребуется обновить до минимального уровня, требуемого для работы с ЭЦП.
- USB-порт работает не корректно. Попробуйте подсоединить Токен (флешку) через другой порт, либо на другом ПК, чтобы убедиться, что проблема не в носителе. Выполните перезагрузку компьютера.
- Если Токин (флешка) не открывается ни на одном компьютере, значит проблема в носителе. Когда ключ был записан в единственном экземпляре на этот носитель – потребуется обращаться в УЦ для перевыпуска ЭЦП.
Важно. Перед вынесением «окончательного вердикта» касательно работоспособности носителя и сертификата, не поленитесь выполнить их проверку через несколько различных источников.
Проблемы при авторизации
Часто с подобными неприятностями сталкиваются владельцы ЭЦП, пытающиеся пройти регистрацию, либо авторизацию на различных электронных торговых площадках. Пользователю появляется уведомление, что его подпись не авторизирована.
Обычно проблема кроется:
- Отсутствие регистрации. Потребуется попросту зарегистрироваться на избранном вами ресурсе.
- Не зарегистрирован сертификат. Возникает после обновления ключа ЭЦП. Устраняется путем регистрации нового сертификата ключа ЭЦП.
Мнение эксперта
Владимир Аникеев
Специалист отдела технической поддержки УЦ
На различных ресурсах процесс регистрации (авторизации) может существенно отличаться, иметь определенные ограничения, а также блокироваться защитным ПО. Поэтому перед началом процедуры не поленитесь ознакомиться с соответствующей инструкцией и правилами.
В дальнейшем, при работе на самой электронной площадке и попытке подписать электронные документы, могут возникать дополнительные трудности, связанные с такими моментами:
- Необходимости присоединиться к регламенту. Система не даст возможность полноценно работать, если вы не согласитесь с ее условиями.
- Невозможность загрузить файл (файлы). Обычно это ошибка превышения размера информации, что допустима для загрузки. Просто смените формат разрешения файла, чтобы уменьшить его размер.
- Требование использовать определенный браузер (определенную версию браузера). Это системные требования владельца площадки, которые необходимо соблюдать.
- Проблемы со считыванием сертификатов. Потребуется проверить не просрочены ли ваши сертификаты, а также все ли они установлены на ПК.
Что значит er 10002 неопределенная ошибка при проверке ЭЦП, что делать?
Возможно не прошла расшифровка файла ключа. Перезагрузите компьютер. Проверьте, отображается ли съемный носитель ключа ЭЦП, наличие и корректность отображения сертификатов, а также соответствие их (должен быть одинаковый владелец).
Ошибка 52 цифровая подпись
Связана с повреждением, либо отсутствием необходимых драйверов на носителе, либо ПК. Потребуется скачать с официального источника недостающий драйвер и переустановить его.
Почему компьютер не видит ЭЦП?
Несоответствие программного продукта операционной системы и съемного носителя (флешки), либо повреждение флешки. Устраняется путем обновления операционной системы до минимально необходимой версии. В случае обнаружения повреждения флешки – может потребоваться перевыпуск ЭЦП удостоверяющим центром.
Почему КриптоПро не отображает ЭЦП?
Потребуется выполнить определенные настройки вашего браузера и добавить программу в меню веб-обозревателя, а также загрузить недостающие сертификаты ЭЦП.
Где на компьютере искать сертификаты ЭЦП?
Хранение сертификатов в Windows (от 7 версии) осуществляется по адресу: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates
где вместо «ПОЛЬЗОВАТЕЛЬ» должно стоять наименование вашего ПК
rafaelkhasanov |
|
Статус: Участник Группы: Участники
|
Хочу проверить подпись, пришедшую от ЕСИА. Вывод: На винде все ок |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: rafaelkhasanov Хочу проверить подпись, пришедшую от ЕСИА. Вывод: На винде все ок Здравствуйте. Попробуйте доустановить пакет cprocsp-rsa-64-5.0.11455-5.x86_64.rpm из состава дистрибутива КриптоПро CSP 5.0.11455 и повторить проверку. |
Техническую поддержку оказываем тут |
|
|
|
rafaelkhasanov |
|
Статус: Участник Группы: Участники
|
2021-10-20_01-35-13.png (239kb) загружен 7 раз(а). |
|
|
rafaelkhasanov |
|
Статус: Участник Группы: Участники
|
Проверил сейчас через гостовский тестовый сертификат (предварительно изменив настройки в тех кабинете ЕСИА, чтобы изменился алгоритм), все ок, проверяет успешно, а вот SHA256 не хочет. |
|
|
Александр Лавник |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 53 раз |
Автор: rafaelkhasanov Проверил сейчас через гостовский тестовый сертификат (предварительно изменив настройки в тех кабинете ЕСИА, чтобы изменился алгоритм), все ок, проверяет успешно, а вот SHA256 не хочет. Здравствуйте. Если есть возможность, то приложите (или пришлите ссылку через ЛС) файла, с которым возникает ошибка при проверке подписи. |
Техническую поддержку оказываем тут |
|
|
|
rafaelkhasanov |
|
Статус: Участник Группы: Участники
|
RSA_TESIA.zip (2kb) загружен 3 раз(а). |
|
|
Андрей * |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Автор: rafaelkhasanov RSA_TESIA.zip (2kb) загружен 3 раз(а). sha1rsa в сертификате |
Техническую поддержку оказываем тут |
|
|
WWW |
Андрей * |
|
Статус: Сотрудник Группы: Участники Сказал «Спасибо»: 457 раз |
Автор: rafaelkhasanov RSA_TESIA.zip (2kb) загружен 3 раз(а). Snimok ehkrana ot 2022-09-27 11-41-05.png (21kb) загружен 6 раз(а). Не вижу, что это сертификат от ЕСИА… |
Техническую поддержку оказываем тут |
|
|
WWW |
rafaelkhasanov |
|
Статус: Участник Группы: Участники
|
http://esia.gosuslugi.ru/public/esia.zip Из методички ЕСИА, https://digital.gov.ru/ru/documents/6186/, страница 39, п.3 |
|
|
rafaelkhasanov |
|
Статус: Участник Группы: Участники
|
Автор: Андрей * Автор: rafaelkhasanov RSA_TESIA.zip (2kb) загружен 3 раз(а). sha1rsa в сертификате Спасибо, попробуем, почему-то в лк тестовой Есиа алгоритм назван RSA256 Отредактировано пользователем 27 сентября 2022 г. 14:33:41(UTC) |
|
|
Пользователи, просматривающие эту тему |
Guest |
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Содержание
- Либо внутренняя ошибка asn1 либо ошибка дешифровки 0x80093101
- Общие обсуждения
- Либо внутренняя ошибка asn1 либо ошибка дешифровки 0x80093101
- Jrpcexception asn 1 decode error offset 0
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Что означает нехватка памяти для ASN1?
- Как исправить ошибку 0x80093106
Общие обсуждения
Здравствуйте!
В нашей организации мы столкнулись с проблемой не позволяющей отправлять зашифрованные сообщения в MS Outlook 2007.
Есть группа организаций, в каждой из которой осуществляется выпуск сертификатов средствами собственных удостоверяющих центров, входящих в сеть удостоверяющих центров. При отправке зашифрованных писем внутри нашей организации появляется следующее сообщение об ошибке: » Ошибка на нижнем уровне системы безопасности. Встречено неверное значение тега ASN1 «. Как правило ошибка появляется при отправке сообщений получателям имеющим сертификат выданный нашим удостоверяющим центром и внутри организации. При отправке сообщения в другую организацию, соответственно с сертификатом выданным её удостоверяющим центром, сообщение уходит без каких- либо проблем. Если отправлять сообщение внутри организации, но использовать при шифровании сертификат выданный удостоверяющим центром другой организации, письмо уходит нормально. Было предположение, что возможно проблема в сертификатах выпускаемым нашим удостоверяющим центром. Проводили тестовые отправки писем с семи рабочих станций, используя учетные записи семи человек. В тестировании было 5 пользовательских рабочих станций и две тестовые с операционной системой Windows XP Pro и операционной системой Windows 7. Тестовые машины крайне редко использовались для работы пользователей и никогда для шифрованного документооборота средствами MS Outlook. В ходе тестов выяснили следующее:
1. Почти у всех пользователей с тестовой рабочей станции с операционной системой Windows XP Pro сообщения оправились без проблем. Ошибка возникла только у одного пользователя, она также возникает и на его рабочей станции.
2. При смене пользователями рабочих станций на одних местах ошибка возникала, а на других нет. И выявить какую-либо определенную закономерность не удалось. Ошибка возникала у разных пользователей на разных рабочих станциях.
3. При отправке сообщений с тестовой машины с операционной системой Windows 7 снова появлялась данная ошибка, хотя на некоторых других машинах и в том числе тестовой с Windows XP Pro, ошибки не было.
4. На тестовой рабочей станции под управлеинем Windows 7 осуществлялась отправка сообщений от двух пользователей с одинаковыми сертификатами, выдаными одним удостоверяющим центром. От первого пользователя сообщения уходили нормально всем сотрудникам участвовашим в тестировании. От второго пользователя сообщение удалось отправить только первому, во всех других случаях снова возникала ошибка тега ASN1.
Так как на одних рабочих станциях все работало нормально, а на других нет, причем у одних и тех же пользователей, мне кажется дело не в сертификатах. Скорее всего проблема в самих рабочих станциях, их настройках или в конфликте с программным обеспечением установленным на машины. В чем конкретно проблема мы своими силами, к сожалению, выяснить не смогли.
Так на большинстве рабочих мест в нашей организации установлена операционная система Windows 7 и осуществляется плановый переход на эту систему с Windows XP Pro, где она ещё используется, то хотелось бы решить данную проблему применительно к Windows 7, если нет какого-то общего решения.
Outlook настроен на шифрование вполне корректно, т.к. ошибка возникает не постоянно при отправке каждого сообщения. Да и обмен зашифрованной почты с сотрудниками других организаций проходит нормально.
Скажите, пожалуйста, типична ли данная ошибка или нет и корни проблемы стоит искать в конфликте программного обеспечения.
Какие вообще есть идеи и что можно попробовать или почитать, чтобы решить эту проблему.
Спасибо!
Источник
Программа: КриптоАРМ — Ошибка 1722. Ошибка пакета Windows Installer. Непредвиденное завершение программы, являющейся частью установки. Обратитесь к техническому персоналу или к поставщику пакета. Действие ProcessMsi1, расположение: D:, команда: msiexec.exe /i «C:UsersRbuAppDataLocalTemp7ZipSfx.000TDStandardsetup-Win32.msi» /qb ADDLOCAL=TSPClient,OCSPClient,CAdESModule,CAPICOMModule REBOOT=ReallySuppress
Добрый день! При подписании файла выходит ошибкаСтатус завершения операции: Неудача.
Длительность выполнения операции: 0:00:11.88
Входной файл: C:Обращение на аванс РГС-Медицина.docx
Выходной файл: C:Обращение на аванс РГС-Медицина.docx.sig
Описание ошибки:
Ошибка сохранения сообщения (0x80004005)
Ошибка сохранения сообщения (0x80004005)
Произошла ошибка при создании подписи
Произошла ошибка при определении размера закодированного сообщения
Добрый день! Подскажите пожалуйста в чем причина ? При попытке шифрования уже подписанного файла выходит следующее сообщение :Произошла ошибка при шифровании сообщения
Произошла ошибка при открытии сообщения для кодирования
Внутренняя ошибка (CSP). (0x80090020)
Постоянные проблемы на 2х ПК с КриптоАРМ
1) слетает браузер плагин (просто перестает работать с ошибкой) обновление (cadesplugin) на актуальную версию не исправляет проблему, на ПК1 можно подписывать обычно или с штампов времени, но отправлять за-за плагина нельзя.
2) перестает работать штамп времени на ПК2, переустановка КриптоАРМ 2 не помогает.
Ключи рабочие, КриптоАРМ работают некоторое время после ПОЛНОЙ переустановки ОС (Win10 64)
На ПК2 подписывали без штампа, либо пересылали подписанный на ПК1 файл со штампом времени и отправляли.Вчера на ПК2 во время отправки слетел плагин, и не работает штамп времени.Переустановка КриптоАРМ не помогает.
Также после переустановки КриптоАРМ остаются настройки конфигурации..Хотя пробовали удалять тотальным унисталером
Скриншоты во вложении
Помогите! Уже устали от этих внезапных отказов в работе программы.
Источник
Jrpcexception asn 1 decode error offset 0
Ошибка 0x80093106 и нехватка памяти для ASN1
Ошибка 0x80093106 и нехватка памяти для ASN1
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Пару лет назад я устанавливал Windows 7 одному из своих друзей на его ноутбук. Все работало как часы, но на прошлой неделе мой друг написал мне, что у него на сайте taxcom.ru во время приема пакетов, выскочила ошибка «Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106″ и попросил помочь в решении данной проблемы. Отказать ему я не мог, поэтому, когда появилось свободное время я приступил к ее устранению.
Что означает нехватка памяти для ASN1?
Есть такая система сдачи отчетности Такском, у пользователя выскочило уведомление:
[info]Уведомление о запрете использования сертификатов, выпущенных по ГОСТу 34.10-2001. Ошибка в процессе приема пакетов. В процессе приема документа от регламенту произошла ошибка. Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106[/info]
В итоге Windows 7 используя метод EnvelopedCms.Decode в приложении Microsoft .NET Framework, не может декодировать сообщения размером более 5 мегабайт (МБ). Кроме того, вы получаете сообщение об ошибке, похожее на следующее:
- Необработанное исключение: System.Security.Cryptography.CryptographicException: ASN1 недостаточно памяти.
- в System.Security.Cryptography.Pkcs.EnvelopedCms.OpenToDecode (Byte [] encodedMessage)
- в System.Security.Cryptography.Pkcs.EnvelopedCms.Decode (Byte [] encodedMessage)
Эта проблема возникает из-за того, что размер буфера неправильно увеличивается в функции CryptMsgUpdate, когда метод EnvelopedCms.Decode добавляет декодированный контент в буфер во время процесса декодирования. Таким образом, целочисленное переполнение происходит для большого файла.
Как исправить ошибку 0x80093106
Чтобы у нас возвратилась возможность принимать и обрабатывать письма более пяти мегабайт вам необходимо установить специальное обновление от Microsoft, это как в случае с бесконечным обновлением системы, вам его придется загрузить отдельно. Исправление заменит библиотеку Msasn1.dll. Нужная нам KB Windows6.1-KB2480994-v2-x64 или более новая версия KB2729094, подробнее о нем (https://support.microsoft.com/ru-ru/help/2480994/asn1-out-of-memory-error-when-the-cryptmsgupdate-function-decodes-a-me)
- Скачать KB2480994 можно у меня по ссылке, к сожалению MS данное обновление убрала и заменила, на сколько я понял KB2729094
- Скачать KB2729094 по ссылке (https://support.microsoft.com/ru-ru/help/2729094/an-update-for-the-segoe-ui-symbol-font-in-windows-7-and-in-windows-ser) или у меня из облака одним пакетом (https://cloud.mail.ru/public/Dgmm/KU6ehFgkn)
Производим установку обновлений KB248099. Запускаем его и соглашаемся на установку.
Сам процесс установки обновления KB248099 занимаем менее минуты.
I am using Objective System Inc(http://www.obj-sys.com/products/asn1c/index.php) ASN.1 Compiler and the specification file(cdr_spec.asn) generated Java source code. The CDRS are enecoded based on format BER(Basic Encoding Rule)
Command to generate Java source:
The source is generated:
When I decode the first CDR file, it parses 3 lines only, the CDR file is supposed to contain more than 100 lines, so it is partially decoded.
When I try decoding another CDR file, it is failed when decoding CDR file and gave me such error:
My ASN.1 specification file does not have any syntax error when I use tool checking its syntax.
Can anyone who knows ASN.1 well help me about this?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I’d need some assistance in using the Service Control Engine (SCE) API.
I have developed a simple application that queries the bucket data for a given subscriber (using the getQuotaStatus API). However, despite I believe the source code is correct, I cannot get any reply back from the SCE.
The client-side debugging (in Log4J) confirms that everything is fine, and that the getQuotaStatus() command was issued properly.
I did some debugging by enabling the command «management-agent sce-api logging» on the SCE command line, and I see this log entries:
In particular, I don’t understand the «BAD: input is closed ASN.1 decode error» message.
Is this a known bug? How can I debug more, for example how can I get the text the SCE is trying to decode in ASN.1 notation?
I can post some snippet of my code, which is anyway very simple.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
The following message you pointed is too general and doesn’t
help much unfortunately. For instance, it can happen even when
there was a network connection issue between SCE and API.
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
The method getQuotaStatus works fine for me, so there should
be something difference between us. I’m using 3.7.0.
One thing I can come up with is that you need to configure
the Quota RDR’s in SCABB and RDR-formatter for category 4
as below to get proper values by getQuotaStatus.
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority
Configuring the Quota Manager
If it still doesn’t work after the above changes, please share
the following information for further troubleshooting.
+ SCE and API version
+ OS which runs the API
+ Snippet of your code
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Many thanks for your answer.
I’ve added the line
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority 100
in the configuration. There are no other destinations for category 4.
By the way, I see that this problem is still open on 3.7.0, see «CSCsm19587» in the release notes (
However, I cannot get any answer from the SCE. My details:
- SCE and API version: SCE8000 running version 3.6.5 Build 489. API version is: 3.6.5 Build 300.
- Java version: 1.6.0_26
- OS which runs the API: tried both Windows 7 and Apple OSX 10.6
- Snippet of your code: see below
This is the code of the main class :
This is the code of SceQuotaListener.java :
This is the code of SceResultHandler.java :
Many thanks for your help, this problem got me stuck for ages, it’s driving me mad.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hmm.. the source code you provided works fine for me on
my setup which runs same versions with yours.
I have added some println lines in your code to see the received value
and here is the result.
I’m getting the quota status for subscriber test1
1: 1048576(bucket id:value)
But when no bucket is assigned to the subscriber, then no value is returned.
So I assume you need to complete Quota related configurations including
Quota RDR settings on SCA-BB GUI(which I pointed in the previous reply) and
QM config on SM.
Please refer to the following doc for the detail.
You can check if a bucket.quota is assigned to a subs by:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state
Bucket 1 is used. Status – Not Breached.
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
If no bucket is assigned:
SCE2000#>sh interface LineCard 0 subscriber name test2 bucket-state
Error – Subscriber has no quota profile.
BTW, do you always see the following error?
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
Or the above error is one time event and your problem is that simply
SCE doesn’t reply any info to getQuotaStatus method?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks again for helping me.
I’ve followed the guide you linked (both the 3.6.5 and 3.7.0) line by line. I’ve also upgraded the OS and the API jars to 3.7.0, but the result is the same.
The only difference with my configuration is in this screen:
the guide suggests to configure «Gy», while I am using the second option instead. The difference is not fully clear to me.
I do see a similar output when I query a user with associated quota:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
I always get the error
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
every time I use the getQuotaStatus().
Also, I tried following the instruction in paragraph » Configuring SCE for Quota Management Provisioning » of the guide you linked me (http://www.cisco.com/en/US/partner/docs/cable/serv_exch/serv_control/broadband_app/rel37x/qm_sol/03_configuring.html#wp1053276) but nothing changed.
Any other idea or debugging to suggest?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
You always see the error while I have never seen it in my setup, that’s wired.
I think that’s better to open a TAC case with your SCE support file and the source code.
Last thing I can think of is that there is something issue in your network between your API
and SCE. For example, NAT, firewall, security software on your PC, etc. I’m not sure if these
can cause such error but if you don’t mind please test it again with a direct connection(same network)
between them. Seems the IP of SCE is 123.123.123.2 and the API is 192.168.2.101,
so I believe they are in different network.
If it doesn’t work with this change, I think openning a TAC case is a better option.
I’m sorry that I can’t help you much.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I have already opened a TAC last week, but it’s progressing very slowly and it seems quite hard to debug.
Thanks so much for spending time to help me.
ps: the ip 123.123.123.123 is a placeholder. There is no NAT nor firewall between the SCE and the API client. I tried this already.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I don’t want to bother your TAC case or work in parallel,
but there is something I forgot to suggest.
How many subscriber do you have in your SCE box?
If you have more than one and if this is not a production
environment, can you try clearing all the subscribers once
then import ev_btest32 only and try the test again?
If this is not a production, you can enable the following
rpc debug(at this point I’m not sure if this is helpful.).
debug rpc-adapter debug-mode on
debug rpc-adapter debug-mode off
The debug log generated can be found:
I think you have already tried this, but if you didn’t can
you please try reloading your SCE or try different SCE box?
Of course if this is not a production.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks so much again for your help.
Sadly, this is a production SCE (with tens of thousands subscribers) so I can’t do anything of these. I also have another two SCE1000 and SCE2000 but they are in production too, and their subscribers don’t have associated quota.
My TAC was escalated today, let’s wait and see. It’s becoming quite frustrating.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I see, I’m sorry to hear that
Let’s wait for the response from escalation.
My intention was that something performance factor(num of subs, e.g.) is related to this issue
as in working case I see the following log(indicated in red) just after the same log(indicated in blue)
with yours, while in your case nothing happens about for 5 seconds then generates the error.
2011-10-11 17:32:12 | INFO | CPU #000 | Cleared user log files
2011-10-11 17:32:56 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:03 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 established, client name is mcn.sceGw_1.120.20.1_SCE.J.API.PRPC, session name is rpc-3.
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – registered a quota Listener
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: getQuotaStatus operation was called with parameters: >
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – disconnected
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 closed OK: peer terminated connection: user request.
But I wouldn’t recommend to try anything I suggested in last reply as this is a production.
Источник
Содержание
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Ошибка 0x80093106 и нехватка памяти для ASN1
- Что означает нехватка памяти для ASN1?
- Как исправить ошибку 0x80093106
Ошибка 0x80093106 и нехватка памяти для ASN1
Ошибка 0x80093106 и нехватка памяти для ASN1
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Пару лет назад я устанавливал Windows 7 одному из своих друзей на его ноутбук. Все работало как часы, но на прошлой неделе мой друг написал мне, что у него на сайте taxcom.ru во время приема пакетов, выскочила ошибка «Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106″ и попросил помочь в решении данной проблемы. Отказать ему я не мог, поэтому, когда появилось свободное время я приступил к ее устранению.
Что означает нехватка памяти для ASN1?
Есть такая система сдачи отчетности Такском, у пользователя выскочило уведомление:
[info]Уведомление о запрете использования сертификатов, выпущенных по ГОСТу 34.10-2001. Ошибка в процессе приема пакетов. В процессе приема документа от регламенту произошла ошибка. Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106[/info]
В итоге Windows 7 используя метод EnvelopedCms.Decode в приложении Microsoft .NET Framework, не может декодировать сообщения размером более 5 мегабайт (МБ). Кроме того, вы получаете сообщение об ошибке, похожее на следующее:
- Необработанное исключение: System.Security.Cryptography.CryptographicException: ASN1 недостаточно памяти.
- в System.Security.Cryptography.Pkcs.EnvelopedCms.OpenToDecode (Byte [] encodedMessage)
- в System.Security.Cryptography.Pkcs.EnvelopedCms.Decode (Byte [] encodedMessage)
Эта проблема возникает из-за того, что размер буфера неправильно увеличивается в функции CryptMsgUpdate, когда метод EnvelopedCms.Decode добавляет декодированный контент в буфер во время процесса декодирования. Таким образом, целочисленное переполнение происходит для большого файла.
Как исправить ошибку 0x80093106
Чтобы у нас возвратилась возможность принимать и обрабатывать письма более пяти мегабайт вам необходимо установить специальное обновление от Microsoft, это как в случае с бесконечным обновлением системы, вам его придется загрузить отдельно. Исправление заменит библиотеку Msasn1.dll. Нужная нам KB Windows6.1-KB2480994-v2-x64 или более новая версия KB2729094, подробнее о нем (https://support.microsoft.com/ru-ru/help/2480994/asn1-out-of-memory-error-when-the-cryptmsgupdate-function-decodes-a-me)
- Скачать KB2480994 можно у меня по ссылке, к сожалению MS данное обновление убрала и заменила, на сколько я понял KB2729094
- Скачать KB2729094 по ссылке (https://support.microsoft.com/ru-ru/help/2729094/an-update-for-the-segoe-ui-symbol-font-in-windows-7-and-in-windows-ser) или у меня из облака одним пакетом (https://cloud.mail.ru/public/Dgmm/KU6ehFgkn)
Производим установку обновлений KB248099. Запускаем его и соглашаемся на установку.
Сам процесс установки обновления KB248099 занимаем менее минуты.
I am using Objective System Inc(http://www.obj-sys.com/products/asn1c/index.php) ASN.1 Compiler and the specification file(cdr_spec.asn) generated Java source code. The CDRS are enecoded based on format BER(Basic Encoding Rule)
Command to generate Java source:
The source is generated:
When I decode the first CDR file, it parses 3 lines only, the CDR file is supposed to contain more than 100 lines, so it is partially decoded.
When I try decoding another CDR file, it is failed when decoding CDR file and gave me such error:
My ASN.1 specification file does not have any syntax error when I use tool checking its syntax.
Can anyone who knows ASN.1 well help me about this?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I’d need some assistance in using the Service Control Engine (SCE) API.
I have developed a simple application that queries the bucket data for a given subscriber (using the getQuotaStatus API). However, despite I believe the source code is correct, I cannot get any reply back from the SCE.
The client-side debugging (in Log4J) confirms that everything is fine, and that the getQuotaStatus() command was issued properly.
I did some debugging by enabling the command «management-agent sce-api logging» on the SCE command line, and I see this log entries:
In particular, I don’t understand the «BAD: input is closed ASN.1 decode error» message.
Is this a known bug? How can I debug more, for example how can I get the text the SCE is trying to decode in ASN.1 notation?
I can post some snippet of my code, which is anyway very simple.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
The following message you pointed is too general and doesn’t
help much unfortunately. For instance, it can happen even when
there was a network connection issue between SCE and API.
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
The method getQuotaStatus works fine for me, so there should
be something difference between us. I’m using 3.7.0.
One thing I can come up with is that you need to configure
the Quota RDR’s in SCABB and RDR-formatter for category 4
as below to get proper values by getQuotaStatus.
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority
Configuring the Quota Manager
If it still doesn’t work after the above changes, please share
the following information for further troubleshooting.
+ SCE and API version
+ OS which runs the API
+ Snippet of your code
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Many thanks for your answer.
I’ve added the line
RDR-formatter destination 127.0.0.1 port 33001 category number 4 priority 100
in the configuration. There are no other destinations for category 4.
By the way, I see that this problem is still open on 3.7.0, see «CSCsm19587» in the release notes (
However, I cannot get any answer from the SCE. My details:
- SCE and API version: SCE8000 running version 3.6.5 Build 489. API version is: 3.6.5 Build 300.
- Java version: 1.6.0_26
- OS which runs the API: tried both Windows 7 and Apple OSX 10.6
- Snippet of your code: see below
This is the code of the main class :
This is the code of SceQuotaListener.java :
This is the code of SceResultHandler.java :
Many thanks for your help, this problem got me stuck for ages, it’s driving me mad.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Hmm.. the source code you provided works fine for me on
my setup which runs same versions with yours.
I have added some println lines in your code to see the received value
and here is the result.
I’m getting the quota status for subscriber test1
1: 1048576(bucket id:value)
But when no bucket is assigned to the subscriber, then no value is returned.
So I assume you need to complete Quota related configurations including
Quota RDR settings on SCA-BB GUI(which I pointed in the previous reply) and
QM config on SM.
Please refer to the following doc for the detail.
You can check if a bucket.quota is assigned to a subs by:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state
Bucket 1 is used. Status – Not Breached.
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
If no bucket is assigned:
SCE2000#>sh interface LineCard 0 subscriber name test2 bucket-state
Error – Subscriber has no quota profile.
BTW, do you always see the following error?
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
Or the above error is one time event and your problem is that simply
SCE doesn’t reply any info to getQuotaStatus method?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks again for helping me.
I’ve followed the guide you linked (both the 3.6.5 and 3.7.0) line by line. I’ve also upgraded the OS and the API jars to 3.7.0, but the result is the same.
The only difference with my configuration is in this screen:
the guide suggests to configure «Gy», while I am using the second option instead. The difference is not fully clear to me.
I do see a similar output when I query a user with associated quota:
SCE2000#>sh interface LineCard 0 subscriber name test1 bucket-state id 1
Bucket type: Total Volume
Bucket state: OK
Bucket size: 1048576
I always get the error
closed BAD: input is closed ASN.1 decode error @ offset 930: Unexpected end-of-buffer encountered..
every time I use the getQuotaStatus().
Also, I tried following the instruction in paragraph » Configuring SCE for Quota Management Provisioning » of the guide you linked me (http://www.cisco.com/en/US/partner/docs/cable/serv_exch/serv_control/broadband_app/rel37x/qm_sol/03_configuring.html#wp1053276) but nothing changed.
Any other idea or debugging to suggest?
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
You always see the error while I have never seen it in my setup, that’s wired.
I think that’s better to open a TAC case with your SCE support file and the source code.
Last thing I can think of is that there is something issue in your network between your API
and SCE. For example, NAT, firewall, security software on your PC, etc. I’m not sure if these
can cause such error but if you don’t mind please test it again with a direct connection(same network)
between them. Seems the IP of SCE is 123.123.123.2 and the API is 192.168.2.101,
so I believe they are in different network.
If it doesn’t work with this change, I think openning a TAC case is a better option.
I’m sorry that I can’t help you much.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I have already opened a TAC last week, but it’s progressing very slowly and it seems quite hard to debug.
Thanks so much for spending time to help me.
ps: the ip 123.123.123.123 is a placeholder. There is no NAT nor firewall between the SCE and the API client. I tried this already.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I don’t want to bother your TAC case or work in parallel,
but there is something I forgot to suggest.
How many subscriber do you have in your SCE box?
If you have more than one and if this is not a production
environment, can you try clearing all the subscribers once
then import ev_btest32 only and try the test again?
If this is not a production, you can enable the following
rpc debug(at this point I’m not sure if this is helpful.).
debug rpc-adapter debug-mode on
debug rpc-adapter debug-mode off
The debug log generated can be found:
I think you have already tried this, but if you didn’t can
you please try reloading your SCE or try different SCE box?
Of course if this is not a production.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
Thanks so much again for your help.
Sadly, this is a production SCE (with tens of thousands subscribers) so I can’t do anything of these. I also have another two SCE1000 and SCE2000 but they are in production too, and their subscribers don’t have associated quota.
My TAC was escalated today, let’s wait and see. It’s becoming quite frustrating.
» means nesting-related): – Failed at: @displayUserCertifications user_id [in template «custom.author-acclaim-certifications» at line 4, column 9] ——>
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
I see, I’m sorry to hear that
Let’s wait for the response from escalation.
My intention was that something performance factor(num of subs, e.g.) is related to this issue
as in working case I see the following log(indicated in red) just after the same log(indicated in blue)
with yours, while in your case nothing happens about for 5 seconds then generates the error.
2011-10-11 17:32:12 | INFO | CPU #000 | Cleared user log files
2011-10-11 17:32:56 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:03 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 established, client name is mcn.sceGw_1.120.20.1_SCE.J.API.PRPC, session name is rpc-3.
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – connect operation was called, registered listeners: none
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – registered a quota Listener
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: getQuotaStatus operation was called with parameters: >
2011-10-11 17:33:04 | INFO | CPU #000 | EM Agent: quotaStatusIndication operation was called with parameters: >
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: sceGw_1.120.20.1_SCE.J.API.PRPC – disconnected
2011-10-11 17:33:05 | INFO | CPU #000 | EM Agent: PRPC connection to /1.120.20.1 closed OK: peer terminated connection: user request.
But I wouldn’t recommend to try anything I suggested in last reply as this is a production.
Использование ЭЦП открывает для владельца подписи дополнительные возможности. Но вместе с этим, иногда сопровождается небольшими техническими проблемами, связанными с необходимостью чёткого выполнения действий, связанных с загрузкой сертификатов, авторизацией, установкой необходимого программного обеспечения, а также системных требований к компьютеру.
Важно отметить, что большинство ошибок при работе с ЭЦП можно устранить в домашних условиях, без необходимости привлечения специалистов со стороны.
Содержание
- Какие виды ошибок ЭЦП бывают
- Проблема с подписанием ЭПЦ
- Как проявляется данная ошибка и что сделать, чтобы исправить
- Проблема с сертификатом
- Что делать если не найден сертификат или не верен
- Проблемы при авторизации
Какие виды ошибок ЭЦП бывают
Среди наиболее часто встречающихся ошибок в процессе подписания электронных документов электронной подписью выделяют три ключевых блока:
Проблема с подписанием ЭПЦ. Возникает в момент, когда владелец подписи желает использовать ее при подписании электронного документа.
Проблема с сертификатом. Здесь система информирует пользователя об отсутствии (не действительности), либо использовании незарегистрированного сертификата удостоверяющего центра, необходимого для внешней проверки ЭП.
Проблемы при авторизации. Появляется при проверке пользователя, когда владелец электронной подписи впервые пытается зайти на электронную площадку с подтверждением личности через ЭЦП.
Проблема с подписанием ЭПЦ
Причины, вызывающие подобную ошибку весьма разнообразны. Тут можно выделить такие основные направления:
- Закрытый ключ со съемного носителя (диска, флешки, Токена), не соответствует имеющемуся ключу открытого сертификата. Банальный человеческий фактор выбора не того носителя информации с ЭЦП. Если же «правильный» ключ утерян, придется обращаться в Удостоверяющий центр для перевыпуска.
- Недействительный сертификат. Чтобы устранить подобную ошибку потребуется переустановить открытый сертификат. Важно учитывать требования криптопровайдера (инструкции по необходимым действиям) для установки открытых сертификатов.
- Сертификат подписи определяется как не проверенный. Потребуется выполнить переустановку корневого сертификата, сформировавшего ЭП Удостоверяющего центра.
- Закончился срок действия криптопровайдера. Необходимо получить новый лицензионный ключ, позволяющий работать с программным обеспечением криптопровайдера. Информация запрашивается через УЦ, либо владельца ПО.
- Не виден сертификат на носителе. Помогает простая перезагрузка компьютера для устранения ошибка генерации.
- Алгоритм сертификата ЭЦП не поддерживается. Подобная ошибка может возникать при подписании электронной отчетности в налоговую. Потребуется переустановить КриптоПро CSP и проверить его на совместительство с имеющейся у вас на компьютере операционной системой.
Как проявляется данная ошибка и что сделать, чтобы исправить
Ошибка исполнения функции с информированием о невозможности подписать документ ЭЦП обычно появляется в момент подписания документа.
Система сразу выводит на экран уведомление о непредвиденной ошибке с кратким указанием причины ее возникновения.
Обычно для ее исправления требуются такие действия:
- проверка наличия, срока действия, подлинности сертификатов и выполнение их замены;
- выполнение проверки корректной работы операционной системы компьютера, ее обновление до минимальных допустимых параметров;
- проверка состояния съемного носителя закрытого ключа;
- выявление и устранение ошибок работы криптопровайдера.
Важно. Причина, из-за которой владелец ЭЦП не может нею воспользоваться, может быть комплексной. Поэтому, если не сработал один из предложенных вариантов, проверьте по другим направлениям.
Проблема с сертификатом
Распространенным явлением во время подписания электронных документов ЭЦП является получение уведомления, что системе не удалось получить доступ к сертификатам, пригодным для формирования подписи.
Здесь причины возникновения неисправности могут быть такими:
- Пользователь не установил на свой ПК корневые сертификаты УЦ, осуществлявшего формирование и выдачу ЭЦП. Для устранения – скачать и установить на компьютер такой сертификат, либо прописать доступ к нему.
- Система не видит личных сертификатов владельца ЭЦП. Выдаются одновременно с оформлением ЭП. Их необходимо загрузить на ваш ПК, и подтянуть в криптопровайдер. В дальнейшем можно загрузить через сайт УЦ. Устанавливаются и прописываются на рабочем месте, предназначенном для работы с ЭЦП. С незарегистрированным сертификатом вы не сможете осуществлять подписание электронных документов.
- Информирование о невалидности сертификатов. Обычно такое возможно в случае, когда заканчивается срок действия сертификата, либо их отзывают. Потребуется обращаться в УЦ, выдавший ЭЦП, для уточнения статуса сертификатов подписи. В некоторых случаях помогает обновление сертификатов на компьютере пользователя. Сделать это можно вручную.
Мнение эксперта
Владимир Аникеев
Специалист отдела технической поддержки УЦ
Внимательно читайте природу ошибки, что выдает система. Обычно это ключ к дальнейшему направлению поиска источника проблемы и ее устранению.
Что делать если не найден сертификат или не верен
Когда сертификат отсутствует в списке «Ваши Сертификаты», проблема может оказаться в отсутствии коренного сертификата УЦ.
Для устранения этой проблемы необходимо:
- проверить наличие такого сертификата на вашем ПК по пути: «Пуск» — дальше «Все программы» — после этого плагин «КриптоПро» — а уже там «Сертификаты»;
- дальше находим вкладку «Личное», выбираем «Сертификаты»;
- потребуется открыть не отображенный во вкладке сертификат и просмотреть его «Путь сертификации»;
- тут отображаются все цепочки сертификатов в порядке ранжирования. Важно чтобы напротив какого-то из них не стоял желтый, либо красный значок предупреждения. Если подобное присутствует – нажмите на сам сертификат и ознакомьтесь с ошибкой, что выдаст система;
- в зависимости от причины (обычно это окончание действия сертификата, либо не верифицирован) выполните ее устранение.
Чтобы устранить ошибку и перезагрузить отозванный сертификат потребуется выполнить несколько не сложных действий:
- в окне «Свойства браузера» откройте личный сертификат. Попасть туда можно через «Поиск» меню «Пуск». В открытом окошке ищите вкладку «Содержание», дальше вкладку «Сертификаты»;
- после этого во вкладке «Состав» потребуется выбрать позицию «Точки распространения списков отзывов»;
- в следующем блоке под названием «Имя точки распространения» необходимо выполнить копирование ссылки загрузки файла списка отзывов;
- переходя по указанной ссылке необходимо скачать и установить файл списка отзывов (CRL);
- дальше переходим по подсказкам «Мастера импорта сертификатов».
Следующей распространенной проблемой, когда компьютер не видит сертификат на носителе, является сбой в работе программных продуктов компьютера либо Токена (флешки). Обычно помогает простая перезагрузка ПК. Среди прочих популярных проблем этого направления можно выделить такие:
- На носителе отсутствует драйвер, либо он установлен не корректно. Необходимо скачать последнюю версию драйвера с официального источника и установите его. Можно проверить работоспособность съемного носителя на другом ПК. В этом случае, если другой ПК нормально работает с носителем ЭЦП, переустановите драйверы на первом компьютере.
- Система долго распознает носитель ЭЦП. Тут проблема в операционной системе. Ее потребуется обновить до минимального уровня, требуемого для работы с ЭЦП.
- USB-порт работает не корректно. Попробуйте подсоединить Токен (флешку) через другой порт, либо на другом ПК, чтобы убедиться, что проблема не в носителе. Выполните перезагрузку компьютера.
- Если Токин (флешка) не открывается ни на одном компьютере, значит проблема в носителе. Когда ключ был записан в единственном экземпляре на этот носитель – потребуется обращаться в УЦ для перевыпуска ЭЦП.
Важно. Перед вынесением «окончательного вердикта» касательно работоспособности носителя и сертификата, не поленитесь выполнить их проверку через несколько различных источников.
Проблемы при авторизации
Часто с подобными неприятностями сталкиваются владельцы ЭЦП, пытающиеся пройти регистрацию, либо авторизацию на различных электронных торговых площадках. Пользователю появляется уведомление, что его подпись не авторизирована.
Обычно проблема кроется:
- Отсутствие регистрации. Потребуется попросту зарегистрироваться на избранном вами ресурсе.
- Не зарегистрирован сертификат. Возникает после обновления ключа ЭЦП. Устраняется путем регистрации нового сертификата ключа ЭЦП.
Мнение эксперта
Владимир Аникеев
Специалист отдела технической поддержки УЦ
На различных ресурсах процесс регистрации (авторизации) может существенно отличаться, иметь определенные ограничения, а также блокироваться защитным ПО. Поэтому перед началом процедуры не поленитесь ознакомиться с соответствующей инструкцией и правилами.
В дальнейшем, при работе на самой электронной площадке и попытке подписать электронные документы, могут возникать дополнительные трудности, связанные с такими моментами:
- Необходимости присоединиться к регламенту. Система не даст возможность полноценно работать, если вы не согласитесь с ее условиями.
- Невозможность загрузить файл (файлы). Обычно это ошибка превышения размера информации, что допустима для загрузки. Просто смените формат разрешения файла, чтобы уменьшить его размер.
- Требование использовать определенный браузер (определенную версию браузера). Это системные требования владельца площадки, которые необходимо соблюдать.
- Проблемы со считыванием сертификатов. Потребуется проверить не просрочены ли ваши сертификаты, а также все ли они установлены на ПК.
Что значит er 10002 неопределенная ошибка при проверке ЭЦП, что делать?
Возможно не прошла расшифровка файла ключа. Перезагрузите компьютер. Проверьте, отображается ли съемный носитель ключа ЭЦП, наличие и корректность отображения сертификатов, а также соответствие их (должен быть одинаковый владелец).
Ошибка 52 цифровая подпись
Связана с повреждением, либо отсутствием необходимых драйверов на носителе, либо ПК. Потребуется скачать с официального источника недостающий драйвер и переустановить его.
Почему компьютер не видит ЭЦП?
Несоответствие программного продукта операционной системы и съемного носителя (флешки), либо повреждение флешки. Устраняется путем обновления операционной системы до минимально необходимой версии. В случае обнаружения повреждения флешки – может потребоваться перевыпуск ЭЦП удостоверяющим центром.
Почему КриптоПро не отображает ЭЦП?
Потребуется выполнить определенные настройки вашего браузера и добавить программу в меню веб-обозревателя, а также загрузить недостающие сертификаты ЭЦП.
Где на компьютере искать сертификаты ЭЦП?
Хранение сертификатов в Windows (от 7 версии) осуществляется по адресу: C:UsersПОЛЬЗОВАТЕЛЬAppDataRoamingMicrosoftSystemCertificates
где вместо «ПОЛЬЗОВАТЕЛЬ» должно стоять наименование вашего ПК
Содержание
- Введение.
- Базовая последовательность шагов по настройке (обязательные)
- Опциональные настройки:
- Пример настройки КриптоПро SVS
- Вопросы и ответы
- Системные требования
- Features
- Особенности некоторых браузеров по настройке работы плагина
- Теоритическая часть.
- Реализация взаимодействия с КриптоПро CSP на C.
- Загрузка сертификата в хранилище.
- Загрузка файла отозванных сертификатов.
- Постороение цепочки сертификата.
- Прверка подписи.
- Implementation of CryptoPro CSP
- Implementation at the Crypto API 2. 0 Level
- Implementation at the CSP Level
- Using Com Interfaces
- Certificate Enrollment Control
- CAPICOM 2
- Certificate Services
- Using TLS Protocol in Application Software
- Sample Applications of Cryptographic Security Tools
- Certificates
- Integration
- Portability
- Заключение.
Введение.
В одной из поддерживаемых мной систем цифровая подпись сообщений проверялась с помощью КриптоПро CSP и библиотека отвечающая за это функцию периодически падала с ошибкой. Библиотека эта писалась в спешке и не мной, поэтому я решил переделать ее “по-человечески” и оформить в виде python модуля. Ниже я опишу процесс разработки и опишу с какими трудностями я столкнулся.
Dmitriy PRO Оставлено |
Добрый день, коллеги! Необходимо подписать закрытым ключом ЭП Партнера текст запроса в формате CMS/PKCS#7 в DER кодировке. |
Андрей * Оставлено |
Здравствуйте. Установите КриптоПро .NET SDK – там есть примеры. Program Files (x86)Crypto Pro.NET SDKExamples |
Dmitriy PRO Оставлено |
Спасибо, все получилось! В итоге сам КриптоПро .NET не понадобился |
rafaelkhasanov Оставлено |
Хочу проверить подпись, пришедшую от ЕСИА. Вывод: На винде все ок |
Александр Лавник Оставлено |
Автор: rafaelkhasanov Хочу проверить подпись, пришедшую от ЕСИА. Вывод: На винде все ок Здравствуйте. Попробуйте доустановить пакет cprocsp-rsa-64-5.0.11455-5.x86_64.rpm из состава дистрибутива КриптоПро CSP 5.0.11455 и повторить проверку. |
rafaelkhasanov Оставлено |
2021-10-20_01-35-13.png (239kb) загружен 5 раз(а). |
rafaelkhasanov Оставлено |
Проверил сейчас через гостовский тестовый сертификат (предварительно изменив настройки в тех кабинете ЕСИА, чтобы изменился алгоритм), все ок, проверяет успешно, а вот SHA256 не хочет. |
Александр Лавник Оставлено |
Автор: rafaelkhasanov Проверил сейчас через гостовский тестовый сертификат (предварительно изменив настройки в тех кабинете ЕСИА, чтобы изменился алгоритм), все ок, проверяет успешно, а вот SHA256 не хочет. Здравствуйте. Если есть возможность, то приложите (или пришлите ссылку через ЛС) файла, с которым возникает ошибка при проверке подписи. |
vicmosin Оставлено |
Доброго времени суток, Заранее спасибо. |
TolikTipaTut1 Оставлено |
Добрый. Да, проверить можно. |
vicmosin Оставлено |
Автор: TolikTipaTut1 Добрый. Да, проверить можно. Есть какие-то примеры где можно почерпнуть? )) |
TolikTipaTut1 Оставлено |
https://github.com/anato…0using%20BouncyCastle.cs Тут на C#, но на Java переписать, думаю, несложно будет. Важно! В примере, представленном выше, проверяется математическая корректность ЭП. Квалифицированность цепочки, ровно как построение цепочки сертов до корневого, загрузка crl, обработка Ocsp и т.д. в примере нет Отредактировано пользователем 17 февраля 2022 г. 12:32:37(UTC) |
1 пользователь поблагодарил TolikTipaTut1 за этот пост. |
vicmosin Оставлено |
Автор: TolikTipaTut1 https://github.com/anatolkavassermann/BounyCastle-and-OpenSSL-crypto/blob/main/Different%20samples%20using%20BouncyCastle.cs Тут на C#, но на Java переписать, думаю, несложно будет. Важно! В примере, представленном выше, проверяется математическая корректность ЭП. Квалифицированность цепочки, ровно как построение цепочки сертов до корневого, загрузка crl, обработка Ocsp и т.д. в примере нет Спасибо! > Квалифицированность цепочки, ровно как построение цепочки сертов до корневого, загрузка crl, обработка Ocsp и т.д. в примере нет Это я так понимаю уже часть JCP? |
TolikTipaTut1 Оставлено |
Автор: vicmosin Автор: TolikTipaTut1 https://github.com/anatolkavassermann/BounyCastle-and-OpenSSL-crypto/blob/main/Different%20samples%20using%20BouncyCastle.cs Тут на C#, но на Java переписать, думаю, несложно будет. Важно! В примере, представленном выше, проверяется математическая корректность ЭП. Квалифицированность цепочки, ровно как построение цепочки сертов до корневого, загрузка crl, обработка Ocsp и т.д. в примере нет Спасибо! > Квалифицированность цепочки, ровно как построение цепочки сертов до корневого, загрузка crl, обработка Ocsp и т.д. в примере нет Это я так понимаю уже часть JCP? Нет, придётся писать самостоятельно с использованием BouncyCastle |
Санчир Момолдаев Оставлено |
Добрый день! |
TolikTipaTut1 Оставлено |
Автор: Санчир Момолдаев Добрый день! + |
vicmosin Оставлено |
Автор: Санчир Момолдаев Добрый день! Именно. Отредактировано пользователем 17 февраля 2022 г. 13:53:19(UTC) |
Санчир Момолдаев Оставлено |
Автор: vicmosin Автор: Санчир Момолдаев Добрый день! Именно. да |
1 пользователь поблагодарил Санчир Момолдаев за этот пост. |
squadgazzz Оставлено |
Здравствуйте! Подскажите, с помощью JCSP на алгоритмах GOST28147 и GOST3412_2015_K возможно осуществить потоковое шифрование и последующую верификацию больших файлов без загрузки их целиком в оперативную память? Существуют ли готовые примеры? Отредактировано пользователем 10 сентября 2021 г. 9:44:14(UTC) |
Евгений Афанасьев Оставлено |
Здравствуйте. Посмотрите EnvelopedSignature из состава CAdES.jar (описание в javadoc/CAdES-javadoc.jar дистрибутива), примеры в пакете CAdES/enveloped архива samples-sources.jar. В EnvelopedSignature есть потоковое шифрование. |
1 пользователь поблагодарил Евгений Афанасьев за этот пост. |
Алексей Н. Оставлено |
Здравствуйте! Использую JCP jcp-2.0.41940-A, требуется реализовать шифрование с помощью алгоритма GOST3412_2015_M, но его нет в списке доступных Цитата: – JCP – =========== CryptoPro Java Provider =========== Однако в продукте он указан https://www.cryptopro.ru/products/csp/jcp |
КриптоПро JCP – средство криптографической защиты информации, реализующее российские криптографические стандарты, разработанное в соответствии со спецификацией JCA (Java Cryptography Architecture).
Интеграция КриптоПро JCP с архитектурой Java позволяет использовать стандартные процедуры, такие как создание и проверка ЭЦП (в том числе XMLdsig, CAdES, XAdES) , шифрование, генерацию ключей, вычисление кодов аутентификации (Message Authentication Code – MAC) в JavaTM Cryptography Extension (JCE) в соответствии со спецификациями JavaTM Cryptography Extension (JCE) на различных операционных системах и аппаратных платформах.
Реализация КриптоПро JCP совместима с КриптоПро CSP.
Средство криптографической защиты КриптоПро JCP распространяется в двух комплектациях:
- генерация ключей, формирование и проверка ЭЦП, хэширование данных;
- генерация ключей, формирование и проверка ЭЦП, хэширование данных, шифрование.
Назначение:
КриптоПро JCP предназначен для:
- авторизации и обеспечения юридической значимости электронных документов при обмене ими между пользователями, посредством использования процедур формирования и проверки электронной цифровой подписи (ЭЦП) в соответствии с отечественными стандартами ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012;
- обеспечения конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты, в соответствии с ГОСТ 28147-89 и ГОСТ 34.12-2015;
- обеспечение аутентичности, конфиденциальности и имитозащиты соединений TLS;
- контроля целостности, системного и прикладного программного обеспечения для его защиты от несанкционированного изменения или от нарушения правильности функционирования;
- управления ключевыми элементами системы в соответствии с регламентом средств защиты.
Реализуемые алгоритмы:
Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 “Информационная технология. Криптографическая защита информации. Функция хэширования” и ГОСТ Р 34.11 2012 “Информационная технология. Криптографическая защита информации. Функция хэширования”.
Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:
- ГОСТ Р 34.10-2001 “Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи”;
- ГОСТ Р 34.10-2012 “Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи”.
Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147-89 “Системы обработки информации. Защита криптографическая” и ГОСТ 34.12-2015 “Информационная технология. Криптографическая защита информации”.
При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.
При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94/ГОСТ Р 34.11-2012 и ГОСТ 28147-89.
Системные требования:
КриптоПро JCP функционирует в следующем окружении:
- виртуальной машина, удовлетворяющая спецификации Java 7 ™ Virtual Machine;
- требуется Java 7 Runtime Environment версии 7 и выше;
Основные характеристики:
Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2001):
- закрытый ключ – 256 бит;
- открытый ключ – 512 бит при использовании алгоритма ГОСТ Р 34.10-2001;
Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 256 бит):
- закрытый ключ – 256 бит;
- открытый ключ – 512 бит при использовании алгоритма ГОСТ Р 34.10-2012, 256 бит;
Длина ключей электронной цифровой подписи (ГОСТ Р 34.10-2012, 512 бит):
- закрытый ключ – 512 бит;
- открытый ключ – 1024 бит при использовании алгоритма ГОСТ Р 34.10-2012, 512 бит;
Длина ключей, используемых при шифровании:
- закрытый ключ – 256 бит на базе алгоритма ГОСТ Р 34.10-2001;
- закрытый ключ – 256 бит на базе алгоритма ГОСТ Р 34.10-2012, 256 бит;
- закрытый ключ – 512 бит на базе алгоритма ГОСТ Р 34.10-2012, 512 бит;
- открытый ключ – 512 бит на базе алгоритма ГОСТ Р 34.10-2001;
- открытый ключ – 512 бит на базе алгоритма ГОСТ Р 34.10-2012, 256 бит;
- открытый ключ – 1024 бит на базе алгоритма ГОСТ Р 34.10-2012, 512 бит;
- симметричный ключ – 256 бит;
Типы ключевых носителей:
- дискеты 3,5″;
- сменные носители с интерфейсом USB;
- российские интеллектуальные карты (Оскар) с использованием считывателей смарт-карт, поддерживающих интерфейс OpenCard Framework (в том числе протокол PC/SC для Windows): GemPC Twin, Towitoko, Oberthur OCR126 и др.);
- электронные ключи и смарт-карты eToken;
- электронные ключи Rutoken;
- смарт-карты ESMART;
- директория жесткого диска.
Преимущества:
Сравнение версий JCP | JCP | JCP 2.0 |
---|---|---|
ГОСТ Р 34.10-2012 | 512 / 1024 бит | |
ГОСТ Р 34.10-2001 | 512 бит | 512 бит |
ГОСТ Р 34.10-94 | 1024 бит | |
ГОСТ Р 34.11-2012 | 256 / 512 бит | |
ГОСТ Р 34.11-94 | 256 бит | 256 бит |
ГОСТ 28147-89 | 256 бит | 256 бит |
ГОСТ 34.12-2015 | 256 бит | |
Поддержка новых алгоритмов в JTLS | – | + |
Контроль сроков действия ключа | – | + |
Поддержка CAdES/XAdES-подписи | – | + |
- Страница для печати
Сегодняшнюю небольшую запись я решил посветить теме создания электронной цифровой подписи средствами криптопровайдера «КриптоПРО». Речь пойдет о Bat файле, который можно будет использовать для автоматизации подписи электронных документов.
Для того что бы автоматизировать процесс подписывания электронных документов нам понадобится:
1) Крипто-ПРО CSP;
2) USB Ключ (например рутокен), вставленный в USB порт;
3) Блокнот (Notepad.exe);
4) Установленные сертификаты для Вашего ключа;
Камнем преткновения во всей этой истории является файл csptest.exe который находится в директории КриптоПро (по умолчанию C:Program FilesCrypto ProCSPcsptest.exe).
Откроем командную строку и выполним команду:
cd C:Program FilesCrypto ProCSP и csptest
Мы увидим все возможные параметры данного exe файла.
select [global options] from: -help print this help -noerrorwait do not wait for any key on error -notime do not show time elapsed -pause Wait for keyboard input after completion so that you may check memory and other resources usage -reboot Call DestroyCSProvider() of last used CSP at exit Services (cryptsrv*, HSM, etc) not affected -randinit <x> Initialize system rng with srand(x) (default: time) -showrandinit Show system rng initialization value -stack Measure stack usage select [mode] from: -lowenc low level encryption/decryption test -sfenc simplified level message encryption/decryption test -cmslowsign CMS low level message signing test -cmssfsign CMS simplified level message signing/verifying test -lowsign low level message signing test -lowsignc low level message signing test with cycle Use '-lowsign -repeat NN' instead! -sfsign simplified level message signing/verifying test -ipsec ipsec tests -defprov default provider manipulations -testpack Pack of several tests -property certificate obtain/install property for secret key linking -certkey change provider name in certificate secret key link -context provider context tests -absorb absorbs all certs from containers with secret key linking -drvtst proxy-driver test -signtool SDK signtool analog -iis manage IIS -hsm manage HSM-client -rpcc RPC over SSL client -rpcs RPC over SSL server -oid oid info/set/get -passwd set/change password -keycopy copy container -keyset create (open) keyset -tlss start tls server -tlsc start tls client -tls TLS tests -prf PRF tests -hash hash test -makecert certificate issuing test -certprop show certificate properties -rc verify pkcs#10/certificate signature -cmsenclow CMS low level message encryption/decryption test -sfse simplified level message SignedAndEnveloped test -stress stress test for Acquire/ReleaseContext -ep public key export test -enum CSP parameters enumeration -cpenc CP/Crypto level (advapi32) encryption tests -setpp SetProvParam tests -perf Performance tests -speed Speed tests and optimal function mask setting -testcont Install/Uninstall test containers -install CSP installation information, clearing out CSP -version Print CSP version
Для того, что бы увидеть параметры той или иной глобальной опции, достаточно вызвать данный файл с этой опцией, например
csptest -sfsign
выдаст
<commands>: -sign Sign data from input filename -verify Verify signature on data specified by input filename -help Print this help <options>: -in <file> Input filename to be signed or verified -out <file> Output PKCS#7 filename -my <DName> Cert from CURRENT_USER store to process data -MY <DName> Cert from LOCAL_MACHINE store to process data -detached Deal with detached signature -add Add sender certificate to PKCS#7 -signature <file> Detached signature file -alg Hash algorithm: SHA1, MD5, MD2, GOST - default -ask Acquire csp context using my cert (default: none) -base64 Input/output with base64<->DER conversion -addsigtime Add signing time attribute -cades_strict Strict signingCertificateV2 attribute generation -cades_disable Disable signingCertificateV2 attribute generation
Таким образом, чтобы подписать файл через cmd средствами csptest.exe нужно вызвать команду:
csptest -sfsign -sign -in Dogovor.doc -out Dogovor.doc.sig -my ООО МоиПрограммы Иванов Иван Иванович
где:
-my — Указывает владельца ключа;
-in — Указывает какой файл нужно подписывать. Если файл находится не в папке с csptest то нужно указывать полный путь.;
-out — Указывает имя файла подписи;
Проверить подпись можно на сайте Госулсуг по данной ссылке.
Скорей всего. Если сейчас загрузить данный файл на сайте госуслуги, то появится ошибка. Вызвано это тем, что необходима информация об удостоверяющем центре. Так же не будет лишней дата и время подписи документов. Для этого к нашей команде нужно добавить два параметра:
csptest -sfsign -sign -in Dogovor.doc -out Dogovor.doc.sig -my ООО МоиПрограммы Иванов Иван Иванович -addsigtime -add
Если же нам нужна подпись в осоединенном формате, то добавим еще один параметр:
csptest -sfsign -sign -in Dogovor.doc -out Dogovor.doc.sig -my ООО МоиПрограммы Иванов Иван Иванович -addsigtime -add -detached
Примечание:Если подпись документа выполняется с ошибкой
Unable to open file
An error occurred in running the program.
.signtsf.c:321:Cannot open input file.
Error number 0x2 (2).
Не удается найти указанный файл.
при вызове, как в последнем примере, и Вы уверены в правильности путей в параметре -in и -out, попробуйте создать подпись по первому примеру, а после выполнить команду с полным набором параметров!!!
Основную команду для подписи мы получили. Теперь немного упростим процедуру. Сделаем bat файл, при запуске которого будет подписывать файл Secret.txt, находящийся в тойже папке что и bat файл. Откроем блокнот и запишем слудующий код:
chcp 1251 set CurPath=%cd% cd C:Program FilesCrypto ProCSP call csptest -sfsign -sign -in %CurPath%Secret.txt -out %CurPath%Secret.txt.sig -my ООО МоиПрограммы Иванов Иван Иванович -addsigtime -add -detached cd %CurPath%
Нажимаем «Файл» -> «Сохранить как» -> ЗадаемИмя с .bat -> «Сохранить»
Собсвенно и все. Для справки:
chcp 1251 — Задает кодировку для CMD. Необходимо для валидной обработки русских букв в коде;
set CurPath=%cd% — Сохраняет путь текущей директории CMD в переменную CurPath;
cd — Задает текущий путь CMD;
call — Запускает программу;
Данный раздел определяет последовательность действий при разворачивании и настройке
экземпляра Сервиса Проверки Подписи (КриптоПро SVS).
После завершения выполнения действий, описанных в данном разделе, веб-интерфейс Сервиса Проверки
Подписи будет доступен по следующему адресу:
Программный интерфейс Сервиса Проверки Подписи будет доступен по следующему адресу:
Примечание
Базовая последовательность шагов по настройке (обязательные)
1. Создание экземпляра службы.
New-VsInstance -DisplayName SVS -ApplicationName verify -SiteName "Default Web Site"
2. Ввод лицензии.
New-VsLicense [–DisplayName <string>] [–SN <string>] [-CompanyName <string>]
Примечание
При вызове команды без параметров активируется временная лицензия на 3 месяца.
Примечание
Вызов командлета необходим при создании каждого нового экземпляра Сервиса Проверки
Подписи.
3. Установка корневых сертификатов и CRL.
При разворачивании экземпляра Сервиса Проверки Подписи автоматически будут созданы хранилища сертификатов с именами
-TSL и -Ca, где – имя веб-приложения,
указанное в командлете New-VsInstance в параметре -ApplicationName.
4. Настройка привязок веб-сервера IIS.
Disable-VsEndpoint –Name BasicHttps
Подробнее о передаче данных по безопасному соединению:
Опциональные настройки:
<!–
Веб-интерфейс Сервиса Проверки Подписи можно интегрировать в Веб-интерфейс КриптоПро DSS. Для добавления
страниц проверки подписи и сертификата в Веб-интерфейс подписи необходимо задать адрес Сервиса Проверки Подписи через
командлет [Set-DssFeProperties](../../../adminguide/frontend/cmdlets/Set-DssFeProperties.md).
Пример команды:
“`PowerShell
Set-DssFeProperties –VsAddress http://localhost//rest/api
“`
> [!NOTE]
> Если используется Сервис Проверки Подписи версии ниже, чем 2.0.2636, командлет должен выглядеть примерно следующим
> образом:
> “`PowerShell
> Set-DssFeProperties –VsAddress http://localhost//service.svc
> “`
–>
Дополнительно можно выполнить следующие настройки.
Полный список командлетов администрирования КриптоПро SVS
Пример настройки КриптоПро SVS
# Создание экземпляра SVS
New-VsInstance -DisplayName SVS -ApplicationName verify -SiteName "Default Web Site"
# Ввод временной лицензии на 3 месяца
New-VsLicense
# Установка онлайн-режима проверки статуса сертификатов при помощи службы OCSP
Set-VsProperties -RevocationMode Online
# Ограничение набора форматов подписи, доступных для проверки - отключение проверки необработанной подписи ГОСТ Р 34.10-2012
Set-VsSignatureFormat -Format GOST3410 -IsEnabled 0
# Сопоставление расширений файлов с форматами подписи - установка списка расширений для подписи формата CMS
Set-VsSignatureFormat -Format CMS -Extensions sig, p7b, p7s
# Отображение документов в веб-интерфейсе SVS
Add-VsConverterPlugin -FileExtension pdf -Assembly DSS.DocumentConverter.PdfStub.dll
Add-VsConverterPlugin -FileExtension doc -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension dot -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension docm -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension dotm -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension docx -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension dotx -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension FlatOpc -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension FlatOpcMacroEnabled -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension FlatOpcTemplate -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin –FileExtension FlatOpcTemplateMacroEnabled -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension xml -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension odt -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension ott -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension ooxml -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension WordML -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension rtf -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension html -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension xhtml -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension mhtml -Assembly DSS.DocumentConverter.Word.dll
Add-VsConverterPlugin -FileExtension txt -Assembly DSS.DocumentConverter.Word.dll
# Ограничение размера документов в 10 Мбайт
Set-VsEndpointGlobalSettings -MaxMessageSize 10240
# Настройка проверки формата сертификатов
# Регистрация плагина
Add-VsCertificateVerifierPlugin -Assembly SVS.CertificateVerifier.Qualified.dll
# Добавление отпечатков корневых сертификатов Минцифры РФ
Add-VsQualifiedCAThumbprints -Thumbprint 4bc6dc14d97010c41a26e058ad851f81c842415a
Add-VsQualifiedCAThumbprints -Thumbprint aff05c9e2464941e7ec2ab15c91539360b79aa9d
# Настройка шаблона отчета о пакетной проверке подписи
Set-VsProperties -WordFilePath "C:Program FilesCrypto ProDSSVerificationServicesmp_template.docx"
Set-VsProperties -XsltFilePath "C:Program FilesCrypto ProDSSVerificationServicesmp_xslt.xslt"
Restart-VsInstance
Вопросы и ответы
КриптоПро ЭЦП browser plug-in (он же КриптоПро CADESCOM или Кадеском) – плагин, необходимый для создания и проверки электронной подписи на web-страницах с использованием КриптоПро CSP. Используется для работы на торговых площадках и порталах. Дистрибутив доступен на сайте КриптоПро в разделе Продукты / КриптоПро ЭЦП Browser plug-in http://www.cryptopro.ru/products/cades/plugin/get_2_0.
Системные требования
- Установка плагина возможна на следующих операционных системах: Win XP SP3, Win Vista SP2, Win 2003 SP2, Win 2008 SP2, Win 7, Win 2008 R2, Win 8, Win8.1, Win10.
- Работает с браузерами: IE 8 — 11, Opera, Mozilla Firefox, Google Chrome, Yandex Browser
Не работает в браузере EDGE, предустановленном по умолчанию в Windows 10.
- Требуется предустановленная КриптоПро CSP версии не ниже 3.6 R2
Features
- CryptoPro TLS supports the TLS (SSL) protocol of on all platforms.
- CryptoPro CSP can be used with the Oracle E-Business Suite, Oracle Application Server, Java and Apache applications, via the products of the Crypto-Pro company partners.
- Supports windows domain authentication using smart cards (USB tokens) and X.509 certificates.
- The usage of CryptoPro CSP in email applications, as well as in MS Word and Excel products.
- CryptoPro CSP includes a kernel mode driver for all platforms, which allows for the use of cryptographic functions (encryption/decryption, signing , hashing) in kernel mode applications.
- The private keys can be stored in various type of mediums, such as HDD, smart cards etc.
Особенности некоторых браузеров по настройке работы плагина
- в Mozilla Firefox 29 и выше: необходимо включить работу плагина (браузер может не запросить разрешения на включение плагина). Для этого пройти диагностику и выполнить фикс «Включение плагинов в Mozilla Firefox», после чего обязательно перезапустить Firefox. Также это можно сделать вручную: нажать Ctrl+Shift+A, перейти в раздел «Плагины», выбрать CryptoPro CAdES NPAPI Browser Plug-in и перевести его в состояние «Всегда включать» (Always active), после чего обязательно перезапустить Firefox.
- в Google Chrome необходимо зайти по ссылке и установить расширение.
- В Yandex Browser и Opera нужно установить расширение, доступное по этой ссылке
- В Internet Explorer необходимо сделать следующие настройки:
- Добавить адрес сайта, на котором работаете с плагином, в надёжные узлы (Свойства браузера / безопасность / надёжные сайты / сайты / добавить адрес сайта).
- Если работа ведётся в Internet Explorer 11, то попробовать работу в режиме совместимости.
- Проверить, что адрес сайта добавлен в надёжные узлы плагина (большинство сайтов, принимающих сертификаты нашего УЦ, можно добавить автоматически с помощью диагностики https://help.kontur.ru/uc). Чтобы проверить, что сайт добавлен в надежные узлы плагина, нужно перейти в Пуск — Все программы — КРИПТО-ПРО – Настройки КриптоПро ЭЦП Browser plug-in. Откроется окно браузера, в котором нужно будет позволить разблокировать все содержимое страницы/разрешить доступ.
Была ли полезна информация?
Не нашли ответ?
Задайте вопрос специалисту
Спасибо за ответ
Теоритическая часть.
Для того чтобы проверить подпись какого-то конкретного сообщения на необходимо само сообщение с подписью, а также цепочка сертификатов, которые помогут проверить данную подпись. Подробнее об этом можно узнать в здесь.
Все ключи крипто про хранит в своих хранилищах, таких как root, ca, my. Чтобы в них загрузить сертификат в поставке Криптопро CSP идет специальная утилита certmgr. Синтаксих ее работы таков:
certmgr -inst -store <имя хранилища> -file <файл с сертификатом>
Также для корректной цепочки надо загрузить список отозванных сертификатов. Сделать это можно командой:
certmgr -instl -crl -store <имя хранилища> -file <CRL файл>
Побробную информацию по работе этой утилиты можно получить вызвав:
certmgr -help
Для конкретного сертификата также можно проверить цепочку. Делается это командой:
cryptcp -verify -f <файл сертификата> "text" -errchain
Соответственно закрытым ключок соответсвующем проверяемому сертификату и можем подписать сообщение, а с помощью цепочки сертификатов из хранилища, мы сможем ее проверить.
Из всего вышесказанного я подумал, что в библиотеке мне нужны будут следующие функции:
- Загрузка сертификата в хранилище;
- Загрузка файла отозванных сертификатов;
- Постороение цепочки сертификата;
- Проверка подписи.
Реализация взаимодействия с КриптоПро CSP на C.
Так как КриптоПро CSP(CPCSP) является доработкой CryptoApi от Microsoft, то большая часть примеров из официальной документации подходит идля “КриптоПро”. Чем я собствеено говоря и пользовался при написании модуля, так как с примерами у самого КриптоПро не очень все хорошо.
Загрузка сертификата в хранилище.
Для того, чтобы загрузить сертификат в хранилище нужно выполнить следующие шаги:
- Считать сертификат из файла
- Открыть хранилище сертификатов
- Положить в него сертификат
- Закрыть хранилище
Тут меня ждал первый ньюанс, что в CPCSP нет функции для чтения сертификата из файла, поэтому ее нужно будет написать вручную. Она выглядит следующим образом:
typedef struct CERT {
BYTE *content;
DWORD size;
} CERT;
CERT readFile(char *filename)
{
CERT cert = {NULL, 0};
FILE *fCert;
fCert = fopen(filename, "r");
if (fCert)
{
fseek(fCert, 0, SEEK_END);
cert.size = ftell(fCert);
rewind(fCert);
cert.content = (unsigned char *)malloc(cert.size * sizeof(unsigned char));
fread(cert.content, cert.size, 1, fCert);
}
else
{
perror("Error open certificate file");
}
fclose(fCert);
return cert;
}
PCCERT_CONTEXT ReadCertificateFromFile(char *filename)
{
CERT fileCert;
PCCERT_CONTEXT cert = NULL;
fileCert = readFile(filename);
cert = CertCreateCertificateContext(
X509_ASN_ENCODING,
fileCert.content,
fileCert.size
);
if (!(cert))
{
perror("Error create cert");
}
return cert;
}
В коде выше файл считывается специальную структуру CERT, которая содержит размер и содержимое сертификата. Затем на основе этой информации формируется структура PCCERT_CONTEXT, которая в дальнейшем будет загружаться в хранилище CPCSP.
Далее в описании функций будут использоваться следующие коды ошибок:
# define OPERATION_SUCCESS 0
# define OPEN_STORE_ERROR 1
# define ADD_CERT_TO_STORE_ERROR 2
# define CLOSE_STORE_ERROR 3
# define ADD_CRL_TO_STORE_ERROR 4
# define STR_TO_BIN_LEN_ERROR 5
# define STR_TO_BIN_CONTENT_ERROR 6
# define VERIFY_MSG_SIGNATURE 7
# define GET_CERT_CHAIN_ERROR 8
# define READ_CERT_ERROR 9
# define READ_CRL_ERROR 10
Функция загрузки сертификата в хранилище будет выглядеть следующим образом:
int LoadCertificateToSystemStore(char *cert_file_path, char *store_name)
{
HCERTSTORE cpcsp_cert_store = NULL;
PCCERT_CONTEXT cert_context;
cert_context = ReadCertificateFromFile(cert_file_path);
if (!cert_context)
return READ_CERT_ERROR;
cpcsp_cert_store = CertOpenSystemStore(0, store_name);
if (!cpcsp_cert_store)
return OPEN_STORE_ERROR;
if (!CertAddCertificateContextToStore(
cpcsp_cert_store,
cert_context,
CERT_STORE_ADD_REPLACE_EXISTING,
NULL))
return ADD_CERT_TO_STORE_ERROR;
if (!CertCloseStore(cpcsp_cert_store, 0))
return CLOSE_STORE_ERROR;
if (cert_context)
CertFreeCertificateContext(cert_context);
return OPERATION_SUCCESS;
}
В этой функции считывается файл сертификата (функция ReadCertificateFromFile), затем открываем системное хранилище методом CertOpenSystemStore. Если системное хранилище открылось успешно, то с помощью метода CertAddCertificateContextToStore, сертификат загрузается в хранилище. И в заключении хранилище закрывается функцией CertCloseStore.
Нужно отметить что функция CertOpenSystemStore ипользуется только для чтения системных хранилищ (root, ca, my), для остальных надо использовать CertOpenStore.
Загрузка файла отозванных сертификатов.
Функции чтения списка отозванных сертификатов(CRL) и загрузки их в хранилище идентичны функциям работы с сертификатами, за тем исключением, что для их чтения и загрузки используются функции CPCSP c CRL вместо Certificate в названии функции. Например CertAddCertificateContextToStore будет выглядеть как CertAddCRLContextToStore.
Таким образом код для загруки CRL будет таким:
int LoadCRLToSystemStore(char *cert_file_path, char *store_name)
{
HCERTSTORE cpcsp_cert_store = NULL;
PCCRL_CONTEXT crl_context;
crl_context = ReadCRLFromFile(cert_file_path);
if (!crl_context)
return READ_CRL_ERROR;
cpcsp_cert_store = CertOpenSystemStore(0, store_name);
if (!cpcsp_cert_store)
return OPEN_STORE_ERROR;
if (!CertAddCRLContextToStore(
cpcsp_cert_store,
crl_context,
CERT_STORE_ADD_REPLACE_EXISTING,
NULL))
return ADD_CRL_TO_STORE_ERROR;
if (!CertCloseStore(cpcsp_cert_store, 0))
return CLOSE_STORE_ERROR;
if (crl_context)
CertFreeCRLContext(crl_context);
return OPERATION_SUCCESS;
}
Постороение цепочки сертификата.
Код функции проверки цепочки сертификатов выглядит следующим образом
int VerifyCertChain(char *certFilePath)
{
PCCERT_CONTEXT pCertContext;
PCCERT_CHAIN_CONTEXT pChainContext;
CERT_ENHKEY_USAGE EnhkeyUsage;
CERT_USAGE_MATCH CertUsage;
CERT_CHAIN_PARA ChainPara;
/*
инициализация парметров поиска и сопоставления, которые
будут использоваться для построения цепочки сертификатов
*/
EnhkeyUsage.cUsageIdentifier = 0;
EnhkeyUsage.rgpszUsageIdentifier = NULL;
CertUsage.dwType = USAGE_MATCH_TYPE_AND;
CertUsage.Usage = EnhkeyUsage;
ChainPara.cbSize = sizeof(CERT_CHAIN_PARA);
ChainPara.RequestedUsage=CertUsage;
pCertContext = ReadCertificateFromFile(certFilePath);
if (!CertGetCertificateChain(
NULL,
pCertContext,
NULL,
NULL,
&ChainPara,
0,
NULL,
&pChainContext))
{
perror("The chain could not be created");
}
int result = pChainContext->TrustStatus.dwErrorStatus;
if (pChainContext)
{
CertFreeCertificateChain(pChainContext);
}
return result;
}
Помимо настроек цепочки, тут вызывается функция CertGetCertificateChain, которая формирует собственно цепочку сертификатов и записывает ее в структуру PCCERT_CHAIN_CONTEXT. В данной структуре поле TrustStatus отвечает за статус опреации, если цепочка построена корректно, то dwErrorStatus будет 0, иначе будет записан код ошибки.
Прверка подписи.
Для начала я подумал сорфировать самоподписной сертификат для проверки функционирования функции, но оказалось, что CPCSP не поддерживает их, поэтому я создал сертификат в Тестовом УЦ КриптоПро. Я не буду описывать данный процесс, так как к библиотике он имеет посредственное отношение. Только скажу, что файл подписи я генерировал под Windows, потому как это было проще сделать через КриптоПро ЭЦП Browser plug-in.
Также надо отметить, что сертификат ЦС, надо загрузить в хранилище “Доверенные корневые…”. Иначе сгенерированный тестовый сертификат не установиться и плагин для ЭЦП не будет корректно работать. Код функции проверки подписи приведен ниже:
int VerifySignedMessage(char *signature)
{
DWORD blob_size = 0;
/*
определяем размер выходного der блоба
для подписанного сообщения
*/
if (!CryptStringToBinaryA(
signature,
strlen(signature),
CRYPT_STRING_BASE64,
NULL,
&blob_size,
NULL,
NULL))
return STR_TO_BIN_LEN_ERROR;
/*
заполняем блоб подписанного сообщения
*/
BYTE *msg_blob;
msg_blob = (BYTE *)malloc(blob_size);
if (!CryptStringToBinaryA(
signature,
strlen(signature),
CRYPT_STRING_BASE64,
msg_blob,
&blob_size,
NULL,
NULL))
return STR_TO_BIN_CONTENT_ERROR;
/*
выполняем проверку подписи
*/
CRYPT_VERIFY_MESSAGE_PARA verify_params;
verify_params.cbSize = sizeof(CRYPT_VERIFY_MESSAGE_PARA);
verify_params.dwMsgAndCertEncodingType = ENCODING_TYPE;
verify_params.hCryptProv = 0;
verify_params.pfnGetSignerCertificate = NULL;
verify_params.pvGetArg = NULL;
if(!CryptVerifyMessageSignature(
&verify_params,
0,
msg_blob,
blob_size,
NULL,
NULL,
NULL))
return VERIFY_MSG_SIGNATURE;
return OPERATION_SUCCESS;
}
Код снабжен коментариями, которые поясняют за что какой кусок кода отвечает.
Также надо отметить что функция CryptStringToBinaryA вызывается 2 раза, первый для получения размер подписи, а второй, чтобы получить данные раскодированные из base64 данные. Ну и затем подпись соответственно проверяется.
После того, как все функции написаны, то можно приступуть к реализации С обертки для python библиотеки и написанию тестов.
Для начала опишем заголовочный файл, который будет содержать описание вызываемых функций и исключений:
#ifdef __linux__
#include <Python.h>
#elif __APPLE__
#include <Python/Python.h>
#endif
#ifndef LIBSIGNATURE_H_
#define LIBSIGNATURE_H_
/*
Список экспортируемых функций
*/
PyObject * PyLoadCertificate(PyObject *self, PyObject *args);
PyObject * PyLoadCRL(PyObject *self, PyObject *args);
PyObject * PyVerifyCertChain(PyObject *self, PyObject *args);
PyObject * PyVerifySignedMessage(PyObject *self, PyObject *args);
/*
Типы исключений различных ситуаций
*/
extern PyObject *PyOpenStoreError;
extern PyObject *PyAddCertToStoreError;
extern PyObject *PyCloseStoreError;
extern PyObject *PyAddCrlToStoreError;
extern PyObject *PyStrToBinLenError;
extern PyObject *PyStrToBinContentError;
extern PyObject *PyVerifyMsgSignatureError;
extern PyObject *PyGetCertChainError;
extern PyObject *PyReadCertError;
extern PyObject *PyReadCrlError;
#endif
Как видно из этого файла, на каждый код ошибки С функций, будет соответствовать свое исключение. Реализацию самих функций можно посмотреть в файле py_cpcsp.c репозитория.
Код оберки для библиотеки выглядит следующим образом:
#include <stdio.h>
#include "libsignature.h"
// Таблица методов реализуемых расширением
// название, функция, параметры, описание
static PyMethodDef LibsignatueMethods[] = {
{"load_certificate", PyLoadCertificate, METH_VARARGS, NULL},
{"load_crl", PyLoadCRL, METH_VARARGS, NULL},
{"verify_chain_certificate", PyVerifyCertChain, METH_VARARGS, NULL},
{"vefigy_signature", PyVerifySignedMessage, METH_VARARGS, NULL},
{NULL, NULL, 0, NULL}
};
PyObject *PyOpenStoreError;
PyObject *PyAddCertToStoreError;
PyObject *PyCloseStoreError;
PyObject *PyAddCrlToStoreError;
PyObject *PyStrToBinLenError;
PyObject *PyStrToBinContentError;
PyObject *PyVerifyMsgSignatureError;
PyObject *PyGetCertChainError;
PyObject *PyReadCertError;
PyObject *PyReadCrlError;
// Инициализация
PyMODINIT_FUNC initlibsignature(void)
{
PyObject *m;
// Инизиализруем модуль libsignature
m = Py_InitModule("libsignature", LibsignatueMethods);
if (m == NULL)
return;
// Создание исключений при работе с расширением
PyOpenStoreError = PyErr_NewException("libsignature.OpenStoreError",
NULL,
NULL
);
PyAddCertToStoreError = PyErr_NewException(
"libsignature.AddCertToStoreError",
NULL,
NULL
);
PyCloseStoreError = PyErr_NewException(
"libsignature.CloseStoreError",
NULL,
NULL
);
PyAddCrlToStoreError = PyErr_NewException(
"libsignature.AddCRLToStoreError",
NULL,
NULL
);
PyStrToBinLenError = PyErr_NewException(
"libsignature.StrToBinLenError",
NULL,
NULL
);
PyStrToBinContentError = PyErr_NewException(
"libsignature.StrToBinContentError",
NULL,
NULL
);
PyVerifyMsgSignatureError = PyErr_NewException(
"libsignature.VerifySignError",
NULL,
NULL
);
PyGetCertChainError = PyErr_NewException(
"libsignature.ChainCertError",
NULL,
NULL
);
PyReadCertError = PyErr_NewException(
"libsignature.ReadCertError",
NULL,
NULL
);
PyReadCrlError = PyErr_NewException(
"libsignature.ReadCRLError",
NULL,
NULL
);
Py_INCREF(PyOpenStoreError);
Py_INCREF(PyAddCertToStoreError);
Py_INCREF(PyCloseStoreError);
Py_INCREF(PyAddCrlToStoreError);
Py_INCREF(PyStrToBinLenError);
Py_INCREF(PyStrToBinContentError);
Py_INCREF(PyVerifyMsgSignatureError);
Py_INCREF(PyGetCertChainError);
Py_INCREF(PyReadCertError);
Py_INCREF(PyReadCrlError);
PyModule_AddObject(m, "error", PyOpenStoreError);
PyModule_AddObject(m, "error", PyAddCertToStoreError);
PyModule_AddObject(m, "error", PyCloseStoreError);
PyModule_AddObject(m, "error", PyAddCrlToStoreError);
PyModule_AddObject(m, "error", PyStrToBinLenError);
PyModule_AddObject(m, "error", PyStrToBinContentError);
PyModule_AddObject(m, "error", PyVerifyMsgSignatureError);
PyModule_AddObject(m, "error", PyGetCertChainError);
PyModule_AddObject(m, "error", PyReadCertError);
PyModule_AddObject(m, "error", PyReadCrlError);
}
Что делается в этом файле подробно описано здесь.
Для проверки работоспособности питоновской библиотеки, напишем следующий тест:
import libsignature
class TestLibSignature(unittest.TestCase):
"""
Класс для тестирования работы с КриптоПро CSP.
"""
def setUp(self):
"""
Задание путей до тестовых файлов
"""
self._cert_file = os.path.join(current_path, "files/ca.cer")
self._crl_file = os.path.join(current_path, "files/ca.crl")
self._user_cert = os.path.join(current_path, "files/user.cer")
self._sig_file = os.path.join(current_path, "files/test_sign.sig")
self._store = "ROOT"
def test_load_certificate(self):
"""
Проверка загрузки сертификата.
"""
result = libsignature.load_certificate(self._cert_file, self._store)
self.assertIsNone(result)
def test_load_crl(self):
"""
Проверка загрузки списка отозванных серитификатов.
"""
result = libsignature.load_crl(self._crl_file, self._store)
self.assertIsNone(result)
def test_verify_cert_chain(self):
"""
Проверка корректности цепочки сертификатов
"""
result = libsignature.verify_chain_certificate(self._user_cert)
self.assertIsNone(result)
def verify_signature(self):
"""
Проверка подписи сообщения
"""
with open(self._sig_file, "rb") as sigfile:
signature = sigfile.read()
result = libsignature.vefigy_signature(signature)
self.assertIsNone(result)
if __name__ == '__main__':
unittest.main()
Теперь все готово, и можно запусть команду make test для проверки работоспособности.
Implementation of CryptoPro CSP
The hierarchical architecture of the Cryptographic Functions in the Windows Operating System allows for the use of the Russian cryptographic algorithms implemented in CryptoPro CSP at all possible levels.
Implementation at the Crypto API 2. 0 Level
CryptoPro CSP can be used in application software (as can any other cryptoprovider supplied with the Windows operating system) using the Crypto API 2.0 interface, a detailed description of which is provided in the MSDN (Microsoft Developer Network) program documentation. In such cases the method for selecting the algorithm for the application software can be determined by the user’s/sender’s public-key-algorithm identifier which is contained in the X.509 certificate.
Implementation at the Crypto API 2.0 level provides the ability to use a wide range of functions which solve most problems related to the presentation (formats) of various cryptographic communications (signed, encrypted) by means of the presentation of public keys as digital certificates and by means of the storage and retrieval of certificates in various directories including LDAP.
The functions of CryptoPro CSP allow for the full implementation of presentation and exchange of data in compliance with international recommendations and the Public Key Infrastructure.
Implementation at the CSP Level
CryptoPro CSP can be used directly in an application program by loading the module using the Load Library function. With this in mind the package includes a Programmer’s Manual describing the various sets of functions and the test software. With this type of implementation only a limited set of low-level cryptographic functions corresponding to the Microsoft CSP interface are accessible to the software.
Using Com Interfaces
CryptoPro can be used with COM interfaces developed by Microsoft.
- CAPICOM 2.0
- Certificate Services
- Certificate Enrollment Control
Certificate Enrollment Control
The COM interface Certificate Enrollment Control (implemented in the file xenroll.dll) is designed for the use of a limited number of Crypto API 2.0 functions related to key generation, certificate requests and the processing of certificates received from the Certification Authority using the programming languages Visual Basic, C++, Java Script, VBScript and the development environment Delphi.
It is this interface that is used by the various Certification Authorities (Versign, Thawte, ect.) in the producing of user certificates on the Windows platform.
CAPICOM 2
CAPICOM (implemented in the file capicom.dll) offers the COM interface that uses the primary functions of CryptoAPI 2.0 . This component is an extension of the existing COM Certificate Enrollment Control interface (xenroll.dll) which is implemented by the client functions responsible for key generation, certificate requests and interchange with the certification authority.
With the release of this component the use of digital-signature generation and verification functions, functions responsible for the construction and verification of sequences of certificates and functions responsible for interaction with different directories (including the Active Directory) with Visual Basic, C++, JavaScript, VBScript and the development environment Delphi became possible. Using CAPICOM it is possible to implement the operation of the “thin” client within the browser Internet Explorer’s interface.
The component CAPICOM is freeware and is included as part of the Micrsoft Platform SDK Developer’s redistributable toolbox.
More detailed information on the CAPICOM interface is available on the server https://www.cryptopro.ru/products/csp/usage. The distributive for the interface and sample applications are available in the CD in the directory “REDISTRCAPICOM 2.0”
Certificate Services
Certificate Services include several COM interfaces which allow the user to alter the functionality of the Certification Authority built-in to the Windows Server operating system. Using these interfaces it is possible to:
- Process certificate requests from users.
- Alter the composition of X.509 addendums recorded in certificates issued by the authority.
- Determine additional means of publication (storage) of certificates issued by the authority.
Using TLS Protocol in Application Software
Aside from its use in the Internet Explorer interface, the TLS protocol can also be used by application software along with CryptoPro CSP for the authentication and protection of data transmitted according to its own private protocols based on TCP/IP and HTTPS.
For the implementation of the TLS protocol WebClient and WebServer sample implementations are included in the set of samples provided with the platform SDK.
Sample Applications of Cryptographic Security Tools
Test software, including sample invocations of the primary functions of Crypto API 2.0 is provided with CryptoPro CSP. These samples are found in the directory (“SAMPLEScsptest”). A large number of sample applications of Crypto API 2.0, CAPICOM and Certificate Services functions are offered in the Microsoft Docs and in the Platform SDK developer’s toolbox.
A conference on issues surrounding the use of cryptographic functions and public-key certificates is held on the CryptoPro server (https://www.cryptopro.ru/forum2/).
CryptoPro CSP makes possible the use of reliable, certified cryptographic information-security tools as components of the wide range of tools and software of the Microsoft Corporation for the implementation of secure document flow and E-commerce based on the Public-Key infrastructure and in compliance with international recommendations X.509.
- Printer-friendly version
Certificates
CryptoPro CSP has a Federal Security Service certificate of conformance.
Integration
The integration of the CryptoPro CSP with MS Windows operating system allows the use of standard products.
The accordance with the Microsoft CSP interface allows for easy integration into applications by different vendors, which support this interface.
Support for digitally signed XML documents using XMLdsig for Windows (MSXML5, MSXML6) allows for the use of Russian cryptographic algorithms in the Microsoft Office InfoPath – a component system of Microsoft Office.
Portability
For easy and portable integration of cryptographic functions on the Unix platforms, the program interface similar to the Microsoft CryptoAPI 2.0 specifications is provided. This interface allows for the use of the high-level functions to create cryptographic messages (encryption, digital signature), building and verifying the chain of certificates, generating keys and processing the messages and certificates.
Заключение.
Процесс создания библиотеки получился трудоемкий, но на выходе получилась рабочая библиотека, которой можно пользоваться. В репозиотории можете найти пакет для работы из python, но также можно использовать только C-ную часть. Для работы С библиотеки нужно выполнить make build_c.
- Remove From My Forums
-
Question
-
I have just 1 user that is not able to enroll for a certificate. The Failed requests logs shows two different errors:
ASN1 unexpected end of data 0x80093102 (ASN: 258)
ASN1 corrupted data 0x80093103 (ASN: 259)
Any ideas of what the issue could be? Just this one user cannot enroll. Everyone else is working without issue.
All replies
-
-
Edited by
Thursday, January 23, 2014 7:46 AM
-
Edited by
-
Thanks for the reply Amy. I exported the binary request data and indeed it does look corrupted at the end. It seems that the client is submitting a malformed certificate request. I’ll reach out to the user and try to do more troubleshooting at that
end. -
The application logs from the client’s workstation have the following events (italics
used to anonymize the data):- Certificate enrollment for
domainusername is successfully authenticated by policy server - Certificate enrollment for
domainusername successfully load policy from policy server - Certificate enrollment for
domainusername is successfully authenticated by enrollment server - Certificate enrollment for
domainusername failed to enroll for a certificate with request ID N/A from
Certificate Authority name (ASN1 corrupted data. 0x80093103 (ASN: 259)). - Automatic certificate enrollment for
domainusername failed (0x80093103) ASN1 corrupted data.
The first three events show no error in requesting a certificate. The final two are the same errors I can see from the Issuing CA. Nothing new there. I still can’t
find any info regarding that ASN1 error.-
Edited by
MrBIGmog
Friday, February 7, 2014 4:08 PM
- Certificate enrollment for