Ошибка декодирования asn1 структуры

Страницы 1

Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться

#1 2017-04-17 16:25:49

  • miron_valentin
  • Посетитель
  • Неактивен

Работа с отсоединенной подписью

Здравствуйте. Имеется задача по верификации отсоединенной подписи с помощью Рутокен ЭЦП Флеш. Столкнулся с проблемой, что каждый раз при попытке проверить отсоединенную подпись, мне возвращается ошибка «1102:error:0D07207B:asn1 encoding routines:func(114):reason(123)»

Работаю с оболочкой для C# rtpkicoreCSharp.
Метод для верификации подписи имеет следующую сигнатуру:
bool verify(uint deviceId, string cms, string data, StringVector userCerts, StringVector ca, StringVector crl, OptionsMap options)

Вопрос следующий: как получить cms и data, чтобы не возникала ошибка декодирования ASN1 структуры?
Пробовал получать cms и data как base64 строки и указывал при этом в options атрибут «base64» как true. Это не помогло.
Если файлы прочитать как строки и передать их как есть, то так же ошибка. Пробовал различные кодировки.

#2 Ответ от Анатолий Убушаев 2017-04-19 18:21:43

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Здравствуйте, miron_valentin!

Могли бы нам прислать пример использования (какие данные туда уходят)?

#3 Ответ от miron_valentin 2017-04-20 10:48:08

  • miron_valentin
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Код такой:

var core = CryptoCore.getInstance();
var devs = core.enumerateDevices();
var dev = devs[0];
core.login(dev, pass);
string cms = Convert.ToBase64String(File.ReadAllBytes(@"res_31617d0b-ba19-f044-0e05-30a800690e40.zip.sig"));
string data = Convert.ToBase64String(File.ReadAllBytes(@"res_31617d0b-ba19-f044-0e05-30a800690e40.zip"));
var options = new OptionsMap()
{
    {"verifyCertificate", false},
    {"detached", true},
    { "base64", true}
};
var result = core.verify(dev, cms, data, new StringVector(), new StringVector(), new StringVector(), options);

Могу скинуть сами файлы

#4 Ответ от Анатолий Убушаев 2017-04-20 11:23:17 (2017-04-20 11:28:14 отредактировано Анатолий Убушаев)

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

miron_valentin пишет:

Код такой:

var core = CryptoCore.getInstance();
var devs = core.enumerateDevices();
var dev = devs[0];
core.login(dev, pass);
string cms = Convert.ToBase64String(File.ReadAllBytes(@"res_31617d0b-ba19-f044-0e05-30a800690e40.zip.sig"));
string data = Convert.ToBase64String(File.ReadAllBytes(@"res_31617d0b-ba19-f044-0e05-30a800690e40.zip"));
var options = new OptionsMap()
{
    {"verifyCertificate", false},
    {"detached", true},
    { "base64", true}
};
var result = core.verify(dev, cms, data, new StringVector(), new StringVector(), new StringVector(), options);

В base64 надо переводить только data. Cms не надо перекодировать.

#5 Ответ от miron_valentin 2017-04-20 11:34:25

  • miron_valentin
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Анатолий Убушаев пишет:

В base64 надо переводить только data. Cms не надо перекодировать.

Если заменить на

string cms = File.ReadAllText(@"res_31617d0b-ba19-f044-0e05-30a800690e40.zip.sig");

ошибка сохраняется

#6 Ответ от Анатолий Убушаев 2017-04-20 13:19:53

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Как формируется подпись? В cms присутствует сертификат? Если нет, то его надо передавать параметром.

#7 Ответ от miron_valentin 2017-04-20 14:13:29

  • miron_valentin
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Анатолий Убушаев пишет:

Как формируется подпись?

Не знаю, ко мне приходит уже готовая подпись с самим файлом.

Анатолий Убушаев пишет:

В cms присутствует сертификат?

Если смотреть через криптопро АРМ, то сертификат есть:https://forum.rutoken.ru/uploads/transfer/10000/500/10774/thumb/p1be5gvqde14a610d2sr01dgs1vqg1.png

#8 Ответ от Анатолий Убушаев 2017-05-15 11:11:19 (2017-05-15 11:13:06 отредактировано Анатолий Убушаев)

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Извиняемся за столь долгий ответ и спасибо вам за предоставленную информацию.

К сожалению, мы не поддерживаем данную «оболочку для C# rtpkicoreCSharp».
По данному вопросу можем посоветовать использовать библиотеку PKI-Core, только правда в С++.

#9 Ответ от miron_valentin 2017-05-15 11:17:08

  • miron_valentin
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

Анатолий Убушаев пишет:

К сожалению, мы не поддерживаем данную «оболочку для C# rtpkicoreCSharp».

А разве есть разница между моей библиотекой и вашей? Эта оболочка использует методы библиотеки PKI-Core.

#10 Ответ от Анатолий Убушаев 2017-05-15 14:25:56

  • Анатолий Убушаев
  • Посетитель
  • Неактивен

Re: Работа с отсоединенной подписью

miron_valentin пишет:

Анатолий Убушаев пишет:

К сожалению, мы не поддерживаем данную «оболочку для C# rtpkicoreCSharp».

А разве есть разница между моей библиотекой и вашей? Эта оболочка использует методы библиотеки PKI-Core.

Да всё верно, но библиотека внутри оболочки устарела, с тех пор интерфейс очень сильно изменился.

Страницы 1

Чтобы отправить ответ, нужно авторизоваться или зарегистрироваться

Содержание

  1. Ошибка 0x80093106 и нехватка памяти для ASN1
  2. Ошибка 0x80093106 и нехватка памяти для ASN1
  3. Что означает нехватка памяти для ASN1?
  4. Как исправить ошибку 0x80093106

Ошибка 0x80093106 и нехватка памяти для ASN1

Ошибка 0x80093106 и нехватка памяти для ASN1

Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Пару лет назад я устанавливал Windows 7 одному из своих друзей на его ноутбук. Все работало как часы, но на прошлой неделе мой друг написал мне, что у него на сайте taxcom.ru во время приема пакетов, выскочила ошибка «Не удалось получить размер для расшифрованных данных, причина нехватка памяти для ASN1. Код ошибки 0x80093106″ и попросил помочь в решении данной проблемы. Отказать ему я не мог, поэтому, когда появилось свободное время я приступил к ее устранению.

Есть такая система сдачи отчетности Такском, у пользователя выскочило уведомление:

[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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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
  • Print
  • 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.

Если вы столкнулись с ошибкой декодирования Asn 1, это руководство может вам помочь.

ПК работает медленно?

  • 1. Загрузите ASR Pro с веб-сайта
  • 2. Установите его на свой компьютер.
  • 3. Запустите сканирование, чтобы найти вредоносные программы или вирусы, которые могут скрываться в вашей системе.
  • Улучшите скорость своего компьютера сегодня, загрузив это программное обеспечение — оно решит проблемы с вашим ПК. г.

    Эта ошибка указывает на то, что формат инициатора очень неправильный на основе выбора импортированного сертификата (ЦС, а также сервер / клиент). Архитектура DCM поддерживает типы размещения Base64 и PKCS, которые соответствуют определенному типу форматирования.

    [«Тип»: «МАСТЕР», «Отрасль»: «код»: «LOB08», «метка»: «Когнитивные системы», «Бизнес-единица»: «код»: «BU054», «метка»: «Системы с TPS »,« Продукт »:« код »:« SWG60 »,« метка »:« IBM i »,« Платформа »: [« код »:« PF012 »,« метка »:« IBM i »],« Версия » : «7.2.0», «Бизнес-единица»: «Код»: «BU054», «Этикетка»: «Системы с TPS», «Продукт»: «Код»: «SG15Q», «Этикетка»: «APAR – OS / 400 Общие “,” Компонент “:” “,” Категория ARM “: [],” Платформа в дюймах: [“код”: “PF012”, “метка”: “IBM i”], “Версия”: “V7R1M0 ; V7R2M0 “,” Версия “:” “,” Деловой сектор “:” правило “:” “,” ярлык “:” “]

    OSP-CERT-UNPRED P12 ИМПОРТ ОТСУТСТВУЮЩЕГО ФАЙЛА С ОШИБКОЙ ASN.1

    Asn
    Ошибка декодирования asn 1

    a.1 Произошла ошибка кодирования / декодирования. После того, как этот
    файл был передан в указанное место, убедитесь, что вы используете режим сделки с
    . Например, режим FTP обычно следует использовать для двоичных файлов
    для двоичных файлов и методов ASCII для текстовых файлов. Более новые версии
    некоторые стандарты PKCS определенно не поддерживаются.

    ошибка декодирования asn 4

    ПК работает медленно?

    ASR Pro — идеальное решение для ремонта вашего ПК! Он не только быстро и безопасно диагностирует и устраняет различные проблемы с Windows, но также повышает производительность системы, оптимизирует память, повышает безопасность и точно настраивает ваш компьютер для максимальной надежности. Так зачем ждать? Начните сегодня!

    При импорте партии, связанной с файлами PKCS # 12 с использованием DCM ( Цифровой
    Manager) не подтверждают самый важный запрос на перемещение от следующей цели среди ошибок
    .
    Произошла ошибка кодирования / определения asn.1. После того, как эта
    информация будет передана в указанное хранилище, убедитесь, что вы используете правильный режим
    . Например, функция FTP обычно должна использоваться для двоичных файлов
    для двоичных файлов и в режиме ASCII по отношению к текстовым файлам. Более новые версии
    отдельные стандарты PKCS могут не поддерживаться.

    ошибка понимания кодировки asn 1

    Импорт

    всякий раз, когда сертификаты отправляются через файл PKCS # 12, пользователи могут обрабатывать
    Атрибут с помощью неструктурированного имени, связанного с типом. неверно
    , завершите импорт, чтобы он завершился ошибкой декодирования asn.1.
    по сравнению с tt> Возможно, может потребоваться изменение импорта DCM для проверки типа параметра
    .

    R710 SI55542 5142
    r720 SI55544 5135

    Статус …………… . ………………………….. ЗАКРЫТО
    HIPER ………. … … ……………………… Нет
    Компонент ….. … ……. …… 5770SS1DC
    Неисправный компонент ……………………. RCHMGR
    Сообщение отправлено …. R710
    Дублировать ……………….. ………

    Система, которую я поддерживаю

    IBM отказывается практически от всех гарантий, явных или подразумеваемых, включая, к счастью, без беспокойства, подразумеваемые гарантии, обычно связанные с товаром и физическими упражнениями. для конкретной функции. Выполняя эту статью, вы тем самым предоставляете IBM неограниченную лицензию почти на все связанные патенты и авторские права. Авторские права © 1996,1997,1998, ’99, 2000, 2001, 2005, 2003, 2004, 2005, 2006, 2008, 2008, 2007, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Корпорация IBM. Все бренды и программы, продукты или товарные знаки в этих данных являются этой конкретной собственностью их соответствующих администраторов. Прочтите Условия использования обратных ссылок бренда

    Информация

    Улучшите скорость своего компьютера сегодня, загрузив это программное обеспечение — оно решит проблемы с вашим ПК. г.

    How To Resolve Asn Encoding Decoding Error 1
    So Beheben Sie Den Asn-Codierungs-Decodierungsfehler 1
    Come Risolvere L’errore 1 Di Decodifica Del Lavoro Dello Sviluppatore Asn
    Como Solucionar O Erro 1 De Decodificação De Codificação Asn
    Comment Et Résoudre L’erreur De Décodage D’encodage Asn 1
    Hoe Asn-coderingsdecoderingsfout 1 Te Beheren
    Cómo Resolver La Codificación Asn Averiguando El Error 1
    Jak Rozwiązać Błąd Dekodowania Asn 1
    Hur Man Löser Asn -avkodningsfel 1 För Utvecklararbete 1
    인코딩 디코딩 오류 1로 판별하는 방법

    г.


    Offline

    xvector

     


    #1
    Оставлено
    :

    5 мая 2015 г. 11:03:55(UTC)

    xvector

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

    Группы: Участники

    Зарегистрирован: 24.04.2015(UTC)
    Сообщений: 6
    Российская Федерация
    Откуда: none

    Приветствую!

    Не могу понять почему после кодирования при помощи Asn1BerEncodeBuffer не получается декодировать при помощи Asn1BerDecodeBuffer.
    Использую CryptoPro 2.0.38.

    Пробовал кодировать ContentInfo с EncryptedData, потом передалал на EnvelopedData (с разными OID), как в примере показано.

    В результате вот такой код дает ошибку:

    Код:

    
    ContentInfo contentInfo = ... (ContentInfo с EncryptedData или EnvelopedData)
    
    final Asn1BerEncodeBuffer encodeBuffer = new Asn1BerEncodeBuffer();
    contentInfo.encode(encodeBuffer);
    
    byte[] encoded = encodeBuffer.getMsgCopy();
    
    final Asn1BerDecodeBuffer decodeBuffer = new Asn1BerDecodeBuffer(encoded);
    final ContentInfo ci = new ContentInfo();
    ci.decode(decodeBuffer); // здесь ошибка
    

    Ошибка такая:

    Код:

    
    com.objsys.asn1j.runtime.Asn1TagMatchFailedException: ASN.1 decode error @ offset 0:
    Tag match failed: expected [UNIVERSAL 16], parsed [UNIVERSAL 5]
            at com.objsys.asn1j.runtime.Asn1Type.matchTag(Asn1Type.java:449)
            at com.objsys.asn1j.runtime.Asn1Type.matchTag(Asn1Type.java:466)
            at ru.CryptoPro.JCP.ASN.Gost28147_89_EncryptionSyntax.Gost28147_89_Parameters.decode(Gost28147_89_Parameters.java:55)
            at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.AlgorithmIdentifier.checkTC(AlgorithmIdentifier.java:162)
            at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.AlgorithmIdentifier.decode(AlgorithmIdentifier.java:112)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.EncryptedContentInfo.decode(EncryptedContentInfo.java:113)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.EnvelopedData.decode(EnvelopedData.java:144)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.ContentInfo.checkTC(ContentInfo.java:137)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.ContentInfo.decode(ContentInfo.java:90)
            at com.objsys.asn1j.runtime.Asn1Type.decode(Asn1Type.java:218)
            at com.tcs.crypto.engine.cms.parcer.AbstractContentInfoParser.getEnvelopedContentInfoParser(AbstractContentInfoParser.java:28)
            at com.tcs.crypto.impl.TcsCryptoServiceImpl.decryptDataAndCheckSign(TcsCryptoServiceImpl.java:87)
            at com.tcs.crypto.TcsCryptoServiceTest.perform(TcsCryptoServiceTest.java:34)
            at com.tcs.crypto.TcsCryptoServiceTest.testGost3410_2001(TcsCryptoServiceTest.java:57)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
            at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
            at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
            at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
            at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
            at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
            at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
            at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
            at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
            at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
            at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
            at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
            at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
            at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
            at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
            at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
            at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
            at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
            at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
            at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
    com.objsys.asn1j.runtime.Asn1Exception: table constraint: parameters decode failed
            at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.AlgorithmIdentifier.checkTC(AlgorithmIdentifier.java:166)
            at ru.CryptoPro.JCP.ASN.PKIX1Explicit88.AlgorithmIdentifier.decode(AlgorithmIdentifier.java:112)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.EncryptedContentInfo.decode(EncryptedContentInfo.java:113)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.EnvelopedData.decode(EnvelopedData.java:144)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.ContentInfo.checkTC(ContentInfo.java:137)
            at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.ContentInfo.decode(ContentInfo.java:90)
            at com.objsys.asn1j.runtime.Asn1Type.decode(Asn1Type.java:218)
            at com.tcs.crypto.engine.cms.parcer.AbstractContentInfoParser.getEnvelopedContentInfoParser(AbstractContentInfoParser.java:28)
            at com.tcs.crypto.impl.TcsCryptoServiceImpl.decryptDataAndCheckSign(TcsCryptoServiceImpl.java:87)
            at com.tcs.crypto.TcsCryptoServiceTest.perform(TcsCryptoServiceTest.java:34)
            at com.tcs.crypto.TcsCryptoServiceTest.testGost3410_2001(TcsCryptoServiceTest.java:57)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
            at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
            at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
            at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
            at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
            at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
            at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
            at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
            at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
            at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
            at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
            at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
            at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
            at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
            at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
            at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
            at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
            at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
            at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
            at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68)
    


    Вверх


    Offline

    xvector

     


    #2
    Оставлено
    :

    6 мая 2015 г. 13:47:33(UTC)

    xvector

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

    Группы: Участники

    Зарегистрирован: 24.04.2015(UTC)
    Сообщений: 6
    Российская Федерация
    Откуда: none

    В общем, разобрался с EncryptedData. Проблема была с тем, что в encryptedData.encryptedContentInfo.contentEncryptionAlgorithm создавался без параметров, т.е. передавался new Asn1Null():

    Код:

    
    encryptedData.encryptedContentInfo.contentEncryptionAlgorithm = new ContentEncryptionAlgorithmIdentifier(CmsUtils.oid(CMS.ENCRYPTION_SYNTAX_OID), new Asn1Null());
    

    После вот таких изменений стало работать:

    Код:

    
    final Gost28147_89_Parameters params = new Gost28147_89_Parameters();
    params.iv = new Gost28147_89_IV(iv);
    params.encryptionParamSet = new Gost28147_89_ParamSet(AlgIdSpec.getDefaultCryptParams().getOID().value);
    
    encryptedData.encryptedContentInfo.contentEncryptionAlgorithm = new ContentEncryptionAlgorithmIdentifier(CmsUtils.oid(CMS.ENCRYPTION_SYNTAX_OID), params);
    

    Вообще, очень не хватает подробной документации по таким классам как ContentInfo (в частности метода checkTC(..)), а так же описание работы, раз нет исходников, чтобы можно было поотлаживаться. А то энкодинг проходит, а декодинг — нет; и приходится гадать из-за какого параметра (сообщения в стектрейсе не особо информативны для понимания, что происходит).

    Отредактировано пользователем 6 мая 2015 г. 13:49:38(UTC)
     | Причина: уточнение


    Вверх


    Offline

    Евгений Афанасьев

     


    #3
    Оставлено
    :

    6 мая 2015 г. 14:23:26(UTC)

    Евгений Афанасьев

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

    Группы: Участники

    Зарегистрирован: 06.12.2008(UTC)
    Сообщений: 3,782
    Российская Федерация
    Откуда: Крипто-Про

    Сказал(а) «Спасибо»: 20 раз
    Поблагодарили: 655 раз в 618 постах

    Автор: xvector Перейти к цитате

    Вообще, очень не хватает подробной документации по таким классам как ContentInfo (в частности метода checkTC(..)), а так же описание работы, раз нет исходников, чтобы можно было поотлаживаться. А то энкодинг проходит, а декодинг — нет; и приходится гадать из-за какого параметра (сообщения в стектрейсе не особо информативны для понимания, что происходит).

    Код сгенерирован по asn1 структурам, описанным в RFC. Он генерируется специализированным ПО и не документируется. По названиям большинства структур можно найти описание в тех же RFC документах.

    Тех. поддержка
    База знаний
    Логирование JCP
    Логирование JTLS
    Тест JCP и сбор диаг. информации
    Скачать JCP, JCSP и JTLS
    Скачать Android CSP + SDK


    Вверх

    Пользователи, просматривающие эту тему

    Guest (2)

    Быстрый переход
     

    Вы не можете создавать новые темы в этом форуме.

    Вы не можете отвечать в этом форуме.

    Вы не можете удалять Ваши сообщения в этом форуме.

    Вы не можете редактировать Ваши сообщения в этом форуме.

    Вы не можете создавать опросы в этом форуме.

    Вы не можете голосовать в этом форуме.

    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:

    ./asn1c cdr_spec.asn -java -ber -reader -print -getset -pkgname com.testpkg
    

    The source is generated:

    ASN1C Compiler, Version 6.4.5
    Copyright (c) 1997-2011 Objective Systems, Inc. All Rights Reserved.
    
    Registered to: XXXXXX
    Parsing ASN.1 definitions..
    
    Generating Java source files for module XXX-XXX..
    

    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:

    com.objsys.asn1j.runtime.Asn1MissingRequiredException: ASN.1 decode error @ offset 832:
    SEQUENCE or SET is missing a required element.
    10:11:30.394 [main] ERROR com.testpkg.Test - ASN.1 decode error @ offset 832:
    SEQUENCE or SET is missing a required element.
    

    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?

    Понравилась статья? Поделить с друзьями:
  • Ошибка декодера это
  • Ошибка декодера как исправить
  • Ошибка декларация не прошла контроль
  • Ошибка декларации 000000000002
  • Ошибка деки volvo xc70