Ошибка полученный для функции буфер слишком мал 0x80090028


Offline

rudik_R

 


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

12 апреля 2023 г. 11:34:39(UTC)

rudik_R

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

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

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

При формировании первичного запроса вылетает ошибка: Полученный для функции буфер слишком мал (0х80090028)
но при этом файлы закрытого ключа появляются на флешке. Вопрос в их работоспособности. В росказне сообщили что проблема с КриптоПро
Установлена Windows 11. 1.jpg (51kb) загружен 5 раз(а).


Вверх


Offline

nickm

 


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

12 апреля 2023 г. 12:12:13(UTC)

nickm

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

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

Зарегистрирован: 31.05.2016(UTC)
Сообщений: 1,052

Сказал(а) «Спасибо»: 312 раз
Поблагодарили: 165 раз в 152 постах

А используемая Вами версия СКЗИ какая?

На последней промежуточной версии «5.0.12600», так же воспроизводится?

А на версии раннего доступа «5.0.12750», так же воспроизводится?


Вверх


Offline

rudik_R

 


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

12 апреля 2023 г. 12:30:41(UTC)

rudik_R

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

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

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

Версия -5.0.12600
Не подскажите где найти «5.0.12750»?


Вверх


Offline

Александр Лавник

 


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

12 апреля 2023 г. 12:45:03(UTC)

Александр Лавник

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

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

Зарегистрирован: 30.06.2016(UTC)
Сообщений: 3,311
Мужчина
Российская Федерация

Сказал «Спасибо»: 53 раз
Поблагодарили: 749 раз в 697 постах

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

Версия -5.0.12600
Не подскажите где найти «5.0.12750»?

https://t.me/csp_beta

Техническую поддержку оказываем тут
Наша база знаний


Вверх


Offline

rudik_R

 


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

12 апреля 2023 г. 15:04:47(UTC)

rudik_R

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

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

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

Спасибо проблема решилась с установкой версии 5.0.12741


Вверх

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

Guest

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

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

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

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

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

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

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

  • Remove From My Forums

 locked

Назначение сертификата, ошибка: полученный для функции буфер слишком мал

  • Question

  • Добрый день,

    Для линка приобрели публичный сертификат от РУ-ЦЕНТРА wildcard. Импортировал на lync-egde.

    При попытке назначания вылетает ошибка: Полученный для функции буфер слишком мал.

    > Назначение сертификата

    Set-CSCertificate -Type AccessEdgeExternal,DataEdgeExternal,AudioVideoAuthentication -Thumbprint ED176905A7668144DE0CF03A1562B44C18712EA2 -Confirm:$false -Report «C:UsersadminAppDataLocalTempSet-CSCertificate-[2013_09_09][11_08_24].html»
     ПРЕДУПРЕЖДЕНИЕ: Имя субъекта «*.domain.ru» сертификата не совпадает с полным доменным именем компьютера «lyncsip.domain.ru».
     ПРЕДУПРЕЖДЕНИЕ: Сбой Set-CSCertificate.
     ПРЕДУПРЕЖДЕНИЕ: Сведения о результатах представлены в «C:UsersadminAppDataLocalTempSet-CSCertificate-[2013_09_09][11_08_24].html».
    Ошибка при выполнении команды: Полученный для функции буфер слишком мал.

    При назначение сертификата из локального ЦА, такой ошибки не выдает. Что это значит и что нужно сделать?

    спасибо.

Answers

  • Короче все понятно, оказалось сертификат РУ-ЦЕНТРА платинум вилдкард только на один физический сервер ((

    • Marked as answer by

      Tuesday, September 24, 2013 1:41 PM

Рекомендуемые сообщения

Ivan Platonov

    • Жалоба
    • Поделиться

Добрый день. Поиск по форуму не работает, проверить наличие аналогичных тем не смог, по этому создаю новую.

Используем в своем ЭДО подписи выданные УЦ ViPNet, в работе используется как vipnet csp отдельно, так и в составе vipnet client. На некоторых компьютерах, при подписании документа появляется ошибка «Полученный для функции буфер слишком мал». При использовании vipnet csp дело решается обновлением до версии 3.2.10, вопрос — как устранить ошибку если csp идет в составе vipnet client?

Ссылка на комментарий
Поделиться на других сайтах

slavanchuk

    • Жалоба
    • Поделиться

Добрый день. Поиск по форуму не работает, проверить наличие аналогичных тем не смог, по этому создаю новую.

Используем в своем ЭДО подписи выданные УЦ ViPNet, в работе используется как vipnet csp отдельно, так и в составе vipnet client. На некоторых компьютерах, при подписании документа появляется ошибка «Полученный для функции буфер слишком мал». При использовании vipnet csp дело решается обновлением до версии 3.2.10, вопрос — как устранить ошибку если csp идет в составе vipnet client?

Вы VipNet CSP ставите вместе с VipNet Client? Какую версию VipNet Client используете?

Ссылка на комментарий
Поделиться на других сайтах

Ivan Platonov

  • Автор
    • Жалоба
    • Поделиться

Может я не правильно описал проблему. Была аналогичная ситуация у пользователя (для подписи использует vipnet csp, идущий отдельным продуктом), дело решилось обновлением с версии 3.2.9 до 3.2.10.

Сейчас же у пользователя стоит vipnet client (3.2.9), следовательно используется csp в составе vipnet client’а. Если проблема решается только обновлением csp до версии 3.2.10, то как быть в ситуации когда на рабочем месте уже установлен vipnet client?

Ссылка на комментарий
Поделиться на других сайтах

slavanchuk

    • Жалоба
    • Поделиться

Может я не правильно описал проблему. Была аналогичная ситуация у пользователя (для подписи использует vipnet csp, идущий отдельным продуктом), дело решилось обновлением с версии 3.2.9 до 3.2.10.

Сейчас же у пользователя стоит vipnet client (3.2.9), следовательно используется csp в составе vipnet client’а. Если проблема решается только обновлением csp до версии 3.2.10, то как быть в ситуации когда на рабочем месте уже установлен vipnet client?

Кстати говоря, можно попробовать поставить VipNet Client и VipNet CSP на один компьютер одновременно. Дело в том, что был опыт работы одновременно с VipNet CryptoService и VipNet Client на одном компьютере (не помню уже мотивов)… Но словом, мы заставили работать более новую версию криптопровайдера на компьютере с VipNet Client. Можно попробовать сделать здесь то же самое.

Ссылка на комментарий
Поделиться на других сайтах

Ivan Platonov

  • Автор
    • Жалоба
    • Поделиться

Кстати говоря, можно попробовать поставить VipNet Client и VipNet CSP на один компьютер одновременно.

Был такой опыт, работает только местами.

Ссылка на комментарий
Поделиться на других сайтах

slavanchuk

    • Жалоба
    • Поделиться

Был такой опыт, работает только местами.

Да, согласен, не с первого раза работает. Но докрутить можно… но муторно. больше подсказать ничего не могу.

Ссылка на комментарий
Поделиться на других сайтах

Пожалуйста, авторизуйтесь, чтобы оставить комментарий

Вы сможете оставлять комментарии после авторизации

Войти

«Буфер, предоставленный функции, был слишком маленьким» криптографическое исключение с подписью сертификата

Я пытаюсь подписать файл сертификатом, хранящимся в хранилище сертификатов. Сертификат хранится в хранилище локального компьютера.

Во время вызова

signedCms.ComputeSignature(cmsSigner, false);

Я получаю следующее CryptographicException: «Буфер, предоставленный функции, был слишком мал»


ОБНОВИТЬ

Пример кода:

using System;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {            
            const string ENC_STR = "this is my message to encrypt цшер ÄÄÄ";
            var oid = new System.Security.Cryptography.Oid("sha256");
            X509Store store = new X509Store("MY", StoreLocation.LocalMachine);
            store.Open(OpenFlags.ReadOnly);
            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;

            X509Certificate2Collection cers = store.Certificates.Find(X509FindType.FindBySubjectName, args[0], false);

            if (cers.Count > 0)
            {
                Console.WriteLine(" {0} certificates are found", cers.Count);

                var cer = cers[0];
                Console.WriteLine("Certificate {0} is found", cer.Subject);
                byte[] dataToSign = Encoding.ASCII.GetBytes(ENC_STR);
                System.Security.Cryptography.Pkcs.ContentInfo contentInfo = new System.Security.Cryptography.Pkcs.ContentInfo(dataToSign);
                System.Security.Cryptography.Pkcs.SignedCms signedCms = new System.Security.Cryptography.Pkcs.SignedCms(contentInfo, true);
                System.Security.Cryptography.Pkcs.CmsSigner cmsSigner = new System.Security.Cryptography.Pkcs.CmsSigner(cer);

                cmsSigner.IncludeOption = X509IncludeOption.None;
                cmsSigner.DigestAlgorithm = oid;

                try
                {
                    signedCms.ComputeSignature(cmsSigner, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                //return the signed message
                byte[] signatureValue = signedCms.Encode();

                Console.WriteLine("Signature is: {0} ", Encoding.ASCII.GetString(signatureValue));
            }
            else
            {
                Console.WriteLine("No certificates found");
            }

            store.Close();
        }
    }
}

Возможно эта информация будет полезна:

  • Сертификат имеет символы «аао» в общем названии и организации
  • Исключение не выдается, если алгоритм хеширования SHA1. Для ша256 (и других) исключение брошено.
  • Если я портирую определенную часть кода на ядро ​​.net или стандарт.net, исключение не выдается.

2019-07-26 13:38

I am trying to sign the file with the certificate stored in the certificate storage. The certificate is stored in the Local Computer storage.

While calling of

signedCms.ComputeSignature(cmsSigner, false);

I get the next CryptographicException: «The buffer supplied to a function was too small»


UPDATE

Code example:

using System;
using System.Security.Cryptography.X509Certificates;
using System.Security.Cryptography;
using System.Text;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {            
            const string ENC_STR = "this is my message to encrypt цшер ÄÄÄ";
            var oid = new System.Security.Cryptography.Oid("sha256");
            X509Store store = new X509Store("MY", StoreLocation.LocalMachine);
            store.Open(OpenFlags.ReadOnly);
            X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;

            X509Certificate2Collection cers = store.Certificates.Find(X509FindType.FindBySubjectName, args[0], false);

            if (cers.Count > 0)
            {
                Console.WriteLine(" {0} certificates are found", cers.Count);

                var cer = cers[0];
                Console.WriteLine("Certificate {0} is found", cer.Subject);
                byte[] dataToSign = Encoding.ASCII.GetBytes(ENC_STR);
                System.Security.Cryptography.Pkcs.ContentInfo contentInfo = new System.Security.Cryptography.Pkcs.ContentInfo(dataToSign);
                System.Security.Cryptography.Pkcs.SignedCms signedCms = new System.Security.Cryptography.Pkcs.SignedCms(contentInfo, true);
                System.Security.Cryptography.Pkcs.CmsSigner cmsSigner = new System.Security.Cryptography.Pkcs.CmsSigner(cer);

                cmsSigner.IncludeOption = X509IncludeOption.None;
                cmsSigner.DigestAlgorithm = oid;

                try
                {
                    signedCms.ComputeSignature(cmsSigner, false);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }

                //return the signed message
                byte[] signatureValue = signedCms.Encode();

                Console.WriteLine("Signature is: {0} ", Encoding.ASCII.GetString(signatureValue));
            }
            else
            {
                Console.WriteLine("No certificates found");
            }

            store.Close();
        }
    }
}

Maybe this information will be helpful:

  • The certificate has «äåö» characters in the Common Name and
    Organisation
  • The exception is not thrown if the hash algorithm is
    SHA1. For sha256 (and other) exception is thrown.
  • If I port the
    specific part of code to the .net core or .net standard the exception
    is not thrown.

Понравилась статья? Поделить с друзьями:
  • Ошибка пользователь с таким сертификатом не найден
  • Ошибка получения цен 1с заказы
  • Ошибка пользователь отсутствует не существует такого пользователя
  • Ошибка получения файла ошибка 10 фсс
  • Ошибка пользователь не определен что делать