Криптографическая программа КриптоПро CSP — инструмент генерации ЭП и средство криптозащиты для формирования подписи в веб-формах, документах и отчетах, предназначенных для налоговой и систем банк-клиент. ПО сертифицировано по стандартам ФАПСИ, обеспечивает подлинность подписи и защиту информации.
Программные компоненты представлены в разных версиях, от релиза которых зависят возможности и функции каждой из утилит. Для активации ПО, пользователь приобретает лицензию. Как получить и активировать разрешение и ввести номер лицензии в разных случаях, рассмотрим далее.
Оформим ЭЦП для вашего бизнеса. Поможем установить и настроить в день подачи заявки!
Оставьте заявку и получите консультацию в течение 5 минут.
В случае, если закрытый ключ состоит из шести файлов .key: header.key, masks.key, masks2.key, name.key, primary.key, primary2.key, которые находятся в одной общей папке, перенесите папку с файлами на USB-накопитель (USB-флеш-накопитель, жёсткий диск) для отображения файлов в программе КриптоПро CSP.
Обратите внимание, файлы должны находиться в папке первого уровня (Рис. 1).

Затем проверьте отображение файлов в КриптоПро CSP. Для этого откройте программу, откройте раздел «Сервис» → «Просмотреть сертификаты в контейнере» (Рис. 2).

Далее нажмите кнопку «Обзор». Откроется окно выбора контейнера. При корректном отображении файлов будет строка: Считыватель – Наименование USB-накопителя, Имя контейнера – Наименование папки с файлами (Рис. 3).

Далее выполните установку личного сертификата по инструкции:
/ru-ru/support/kb/333#1.
Сборка ключей версии КриптоПро 5.0 найденные на просторах интернета с открытых источников. Подборка сделана для удобства поиска.
При нахождении новых ключей список будет пополнятся.
5050H-E000C-MTCQE-H1TWV-RTNUK — 5.0.12330
4040E-F000P-G1QZB-FP4C0-8LT5X — 5.0.12330
50500-00000-0U000-00BRZ-8ZTCN — 5.0.12330 кс1
4040W-20000-0168K-VQCQR-8XH45 — 5.0
4040A-Q333K-9KAC2-9A6QR-6FCZN — 5.0
50500-00120-0Z178-0055H-AMWN1 — серверный проверялся на 5.0.11998
4040N-B0000-01YNB-TB150-0Y5NK — 5 версия
Для других версий
КриптоПро 5.0
КриптоПро 4.0
КриптоПро 3.9
КриптоПро 2.0
КриптоПро РАЗНЫЕ
- Остерегайтесь мошенников которые продают ключи КриптоПро в телеграмме
- Минуточку внимания
- Сертификат со встроенной лицензией
- Сертификат без встроенной лицензии
- Где купить КриптоПро
- Возможности КриптоПро 4 с ключом серийного номера
- Как скачать КриптоПро бесплатно
- Как установить КриптоПро 4
- Где приобрести КриптоПро 4
- Сборка утилиты конвертирования ключа
- Компиляция OpenSSL библиотеки
- Компиляция privkey
- Формирование файла закрытого ключа private. key
- Пользуемся закрытым ключом private. key для подписывания файла file. txt
- Проверяем подпись
- Файл masks. key
- КриптоПро
- КриптоПро
- Что такое КриптоПро
- Для чего необходимо КриптоПро
- Принцип работы
- Как купить КриптоПро
- ООО “КЕЙ ТРЕЙД”
- Купить
- Вход
- Услуги УЦ
- Услуги СЭП
- Подписка
- Ключ для КриптоПро 4. 0 9944 и варианты лицензий
- Как получить и ввести ключ КриптоПро 4. 0 9944, если программа уже установлена
- 1 способ
- 2 способ
- Наш каталог продукции
- Бессрочный серийный номер КриптоПро 4. 0 9944
- Серийный номер для КриптоПро 4. 0 сборка 9944
- Файл header. key
- Токены для электронной подписи
- Рутокен Lite
- Цена: 1 500₽
- Jacarta LT
- Цена: 1 450₽
- Рутокен ЭЦП 2. 2100
- Цена: 2 100₽
- Читаем закрытый ключ и конвертируем
Остерегайтесь мошенников которые продают ключи КриптоПро в телеграмме
Речь пойдет о файлах primary.key, masks.key и header.key, которые лежат в директории ххххх.000 на флешке. Данные файлы входят в состав криптоконтейнера закрытого ключа электронной подписи криптопровайдера КриптоПро, формат которого нигде не опубликован. Целью данной статьи является чтение контейнера и преобразование закрытого ключа в формат, который может быть прочитан в библиотеке OpenSSL. Долгое время было распространено ошибочное суждение, что достаточно сделать нечто вида (primary_key XOR masks_key) и мы получим закрытый ключ в чистом (raw) виде, однако забегая вперед, можно утверждать, что в КриптоПро было применено более сложное преобразование, в худшем случае состоящее из более чем 2000 (двух тысяч) операций хеширования.
Стоит упомянуть о существовании утилиты P12FromGostCSP которая позволяет конвертировать ключ в формат P12, доступный для работы с OpenSSL, но утилита имеет следующие существенные недостатки:
- Читает контейнер не напрямую, а через криптопровайдер, поэтому там, где кроме OpenSSL ничего нет, не работает.
- Если в свойствах ключа не отмечено, что ключ «экспортируемый», то конвертировать его невозможно.
- В демо версии не формирует файл с ключом, эта возможность присутствует только в платной версии.
Изучаю вопрос работы с ЭЦП, которую теперь можно получить “бесплатно” (принесите только сертифицированный носитель). Однако, из документации получается, что для работы в ЛК ИП в налоговой нужно установить плагин в браузер, который в свою очередь хочет иметь Crypto Pro, которая платная.
Я всё правильно понял?
То есть для работы с бесплатной КЭП ЭЦП от налоговой нужно купить и Носитель, и лицензию КриптоПро?
—-
UPD: Что я выяснил в процессе
- ЭЦП налоговой не работает с VipNet CSP! Просит именно CryptoPro CSP
- CryptoPro CPS имеет 90 дней пробный период. Бессрочная лицензия в октябре 2021 стоит 2700р.
- Вопрос задан
более года назад
- 14041 просмотр
Крипто-про – криптопровайдер.
Для работы эцп обязателен криптопровайдер, но не обязательна Крипто-про. Есть бесплатные криптопровайдеры, но с ними тяжело, криво и сложно работать. Используйте либо триалку Крипто-про, она даётся на полгода. Либо купите бессрочную версию. Она стоит пару тысяч и закрывает вопрос с криптопровайдером навсегда.
P. S. До этого года эцп выдавали только коммерческие уц и просили за это ещё 5 т.р. сверх стоимости носителя и криптопровайдера, продлевать нужно было ежегодно. И никто не гудел. А сейчас вы покупаете за 2 т.р. Крипто-про, за 500 р носитель и можете на него записывать эцп, полученную в налоговой хоть сто лет.
P. P. S. Если надумаете брать Крипто-про, берите именно бессрочную версию. Всё продавцы норовят продать подписку на год, которая всего в 2-3 раза дешевле бессрочной версии.
Пригласить эксперта
Типо того.
Благо есть ломанные версии
Да
Вы конечно не обязаны его покупать, но пользоваться подписью без него не сможете.
Изучаю вопрос работы с ЭЦП, которую теперь можно получить “бесплатно”
А почему бесплатно в кавычках? Ее действительно делают бесплатно.
нужно установить плагин в браузер, который в свою очередь хочет иметь Crypto Pro, которая платная.
Плагину Crypto Pro не нужен, он будет работать и без него прекрасно. Crypto Pro нужен для использования подписи.
То есть для работы с бесплатной КЭП ЭЦП от налоговой нужно купить и Носитель, и лицензию КриптоПро?
Разумеется.
15 сент. 2022, в 14:16
1000 руб./в час
15 сент. 2022, в 13:52
35000 руб./за проект
15 сент. 2022, в 13:41
10000 руб./за проект
Минуточку внимания
Настройка ОС
31 декабря 2017
Просмотров: 20153
обновлено 04.03.2018 добавлена поддержка crypto pro 5.0
Доброго времени суток.
В предыдущих заметках я описал как достать серийный номер (лицензионный ключ) для CryptoPro версии 3.6, 3.9, 4.0 и 5.0
Все это я описывал в данных заметках.
Узнать серийный номер установленной cryptoPro 5.0
Лицензионный ключ Crypto pro 4.0 где сохранен
Узнать серийный номер установленной cryptoPro 3.9
Где находиться ключ crypto pro 3.6
Но немного подумав я решил что не сделать ли программку или скрипт для ускорения и автоматизации данного процесса.
Как говориться ” Хороший админ это Ленивый админ “
Программировать я к сожалению не умею. Но учусь в свободное время.
Поэтому вариант с программкой точно отпадает.
Но я неплохо пишу Bat файлы или как я их называю костыли)).
Теперь представляю вашему вниманию скрипт под названием CryptoPRO KEY 3.6 / 3.9 / 4.0 /5.0
Данный скрипт отображает в своем окне значение параметра ProductID.
Теперь немного о том как им пользоваться.
Первый запуск сразу предлагает выбор от какой версии CryptoPro вы хотите узнать ключ.
Выбор предоставляется в виде списка а сам выбор с помощью цифр 1, 2 и 3.
выбор версии CryptoPro
Жмем нужную для нас цифру и жмем интер сразу появляется в окне указанный ключ.
вопрос экспортировать ли reg файл параметры CryptoPro.
И задает вопрос экспортировать ли reg файл параметры CryptoPro.
Как заставить извлечь только нужную строчку не выходит.
Если есть знатоки то пишите в VK в коментарии или на сайте вопрос-ответ как этот код можно доработать.
Отвечать на вопрос буквами Y (Да) и N (Нет).
Отвечать на вопрос буквами Y (Да) и N (Нет).
Экспортируемый файл находиться на рабочем столе под соответствующими именами.
Далее открываем этот reg файл блокнотом и копируем лицензионный ключ CryptoPro
лицензионный ключ CryptoPro. открытия reg файла
Надеюсь информация полезная и скрипт тоже.
Сегодня уже 4 января 2018 года пол четвертого утра и я все таки собрал программку которая выведет ключ на экран и его можно сохранить.
Эту программку я назвал CryptoPro Key Viewer При нажатии на соответствующую кнопу ключ будет выведен. На экран и его можно свободно скопировать.
CryptoPro Key Viwer v1.0 – CryptoPro Key Viwer
Если это будет интересно людям то я продолжу совершенствовать данную программу.
Скачиваем CryptoPro Key Viewer здесь
ВНИМАНИЕ!!! Запускать от имени администратора. подробно об этом Запустить программу с правами администратора vista/7/8/8.1/10
При какой либо проблеме описывайте версию ОС версию CryptoPro. И ваши действия.
Проблемы не работает без объяснения не обсуждаются так как на них простой ответ все работает(
Из нашей статьи вы узнаете:
Для заверения документов цифровой подписью необходимо наличие криптопровайдера. Он обеспечивает защиту данных от внесения изменений. Для использования криптопровайдера КриптоПро необходимо наличие лицензии, которая может быть встроенной или идти отдельно.
Сертификат со встроенной лицензией
Для работы предварительно надо установить открытый ключ в закрытый. В этом случае не требуется дополнительной покупки лицензии на программное обеспечение, но перед началом использования важно проверить версию вашего ПО. Для этого перейдите по следующему пути: меню «Пуск» — «Панель управления» — «КриптоПро CSP». Далее — во вкладку «Общие» и проконтролируйте, чтобы версия была не ниже 4.0 (если необходимо, то выполните обновление).
Сертификат без встроенной лицензии
Здесь порядок действий несколько длиннее. Для начала надо найти приложение к договору, который вы получили вместе с криптопровайдером. Там должен содержаться уникальный серийный номер (обычно его отправляют по электронной почте или прикрепляют к комплекту установочных файлов). Непосредственно ввод ключа можно выполнить двумя способами.
Способ № 1:
- перейдите по пути: «Пуск» — «Программы» — «КриптоПро» — «КриптоПро PKI»;
- откройте пункт «Управление лицензиями» (для этого сделайте два клика мышкой);
- найдите пункт «КриптоПро CSP» и кликните по нему левой кнопкой;
- выберите в выпавшем меню пункт «Все задачи» — «Ввести серийный номер»;
- укажите полученный ключ.
Способ № 2.
Вариант подходит при покупке прав использования ПО в виде файла с расширением .lic.
Выполните следующие действия:
- перейдите по пути: «Пуск» — «Программы» — «КриптоПро» — «КриптоПро PKI»;
- откройте пункт «Управление лицензиями» (для этого сделайте два клика мышкой);
- выберите пункт «Установить лицензионный файл».
Если всё прошло в штатном режиме, то появится окно с указанием основной информации о пользователе, срока действия продукта. При появлении ошибок проверьте соответствие версии программного обеспечения (должна совпадать с той, для которой предоставлен лицензионный ключ), проконтролируйте правильность ручного ввода ключа.
Где купить КриптоПро
Если вам необходимо приобрести или продлить лицензию на использование «КриптоПро», то обращайтесь к нам в «Астрал-М». Мы являемся официальным партнёром разработчика (информацию о нашей компании, как о партнёре, можно найти на официальном сайте КриптоПро в разделе «Партнёры»). У нас вы сможете приобрести не только электронную подпись, но и криптопровайдер КриптоПро по отличной цене. Для приобретения заполните форму обратной связи на нашем сайте, чтобы наш менеджер связался с вами.
Из нашей статьи вы узнаете:
Электронная подпись превратилась в повседневность и главного помощника в современном бизнесе, который использует в работе ЭДО. Но, чтобы корректно работать с ЭЦП, нужен криптопровайдер. Сегодня распространенной формой криптопровайдера можно назвать КриптоПро 4 с ключом серийного номера, который дает право устанавливать программу на ваши устройства.
Возможности КриптоПро 4 с ключом серийного номера
КриптоПро 4 выполняет все функции предыдущих версий программы, а дополнительно:
- Поддерживает ГОСТ Р 34.10-2012, ГОСТ Р 34.11-2012. Установите КриптоПро 4 с ключом серийного номера, если вам требуется поддержка данного ГОСТа.
- Поддержка двух ключей подписи — на 256 и 512 бит. Такого эффекта в КриптоПро 4 удалось добиться благодаря переработанной алгоритмической части криптоядра.
- Поддержка КриптоПро 4 большинства используемых токенов, в том числе Esmart Token.
- Авторизация с гарантией обеспечения юридической значимости в электронных версиях применяемых документов.
- Гарантия защищенности, имитозащиты и подлинности соединений в новой КриптоПро 4 при условии наличия серийного ключа.
- Защита целостности сведений благодаря применению имитозащиты и кодирования.
Дополнительно новая КриптоПро оборудована модулем самозащиты. Это означает, что вредоносный код или злоумышленник не получат несанкционированного доступа к программе.
Главное — устанавливая новую КриптоПро CSP 4, пользователь гарантированно получает софт с сертификатом Федеральной службы безопасности, который подтверждает высокий уровень защиты.
Как скачать КриптоПро бесплатно
Все ПО доступно на официальном сайте производителя. Скачайте, выполнив простую инструкцию:
- Перейдите на главный сайт производителя. Сделать это можно по ссылке www.cryptopro.ru.
- Кликните на раздел «Продукты», чтобы перейти в него и получить возможность сохранить КриптоПро 4 на свой компьютер.
- Пройдите по ссылке Crypto Pro CSP, чтобы узнать о возможностях, которые предлагаются в данном программном обеспечении. В самом низу страницы находится ссылка «Загрузить СКЗИ», кликните на нее.
- Авторизуйтесь на открывшейся странице либо пройдите простую процедуру регистрации. Понадобится указать адрес электронной почты, имя с фамилией и номер телефона. Чтобы завершить регистрацию аккаунта, поставьте галочку на пункте согласия с регламентом и отправьте введенные данные.
- Скачайте КриптоПро CSP 4 по ссылкам, которые станут доступны сразу после авторизации пользователя. Разработчик предложил КриптоПро 4 в трех редакциях: R3, R4 и R5. В последних присутствуют улучшения, среди которых контроль за сроком действия ключей.
- Кликните на понравившийся вариант программы, согласитесь с регламентом и ожидайте скачивания.
Программа весит не более 6 мегабайт, поэтому сохраняется на локальный компьютер очень быстро.
Хотя любой пользователь может совершенно бесплатно скачать новую версию КриптоПро CSP, пользоваться на таких условиях софтом можно не более 90 дней. Как только озвученный срок истечет, надо будет покупать лицензию и получать серийный номер. В противном случае программа КриптоПро CSP 4 будет недоступна.
Как установить КриптоПро 4
Чтобы установить Crypto Pro на локальный компьютер, необходимо иметь права администратора. Также рекомендуется перед процедурой установки закрыть все работающие окна и приложения. Они вряд ли помешают Crypto Pro нормально установиться, тем более если есть серийный номер, но степень безопасности это все равно повышает.
Для установки выполните следующую процедуру:
- Найдите скачанный установочный файл. По умолчанию он должен находиться в папке «Загрузки», но пользователь вправе сам назначать каталог, в который сохраняется файл.
- Дважды кликните на него, чтобы открыть скачанный файл.
- Прочитайте приветственное окно Crypto Pro CSP, а затем нажмите «Далее».
- Прочитайте лицензионное соглашение. Если условия, предложенные новой Crypto вас устраивают, соглашайтесь с ними.
- Укажите пользовательские данные. К ним относится наименование компании, в которой будет работать Crypto Pro. Чуть ниже введите 25-значный ключ в специальном поле. Если вы устанавливаете бесплатную версию, то ключ еще не куплен. В этом случае оставьте поле пустым.
- Выберите тип установки. Вы можете выбрать стандартную установку Crypto Pro CSP или выборочную. В большинстве случаев выбирайте стандартную. Она оптимизирована для работы на большинстве компьютеров.
- Нажмите «Установить». Программа может дополнительно запросить пользовательское согласие с регламентом. Это нужно для повышения безопасности. Соглашайтесь с регламентом, и начнется процесс инсталляции.
Вне зависимости от того, ввели вы ключ или нет, установка продолжится несколько минут. Но если есть ключ, для регистрации Crypto может понадобиться интернет для обновления информации о текущем соединении.
Где приобрести КриптоПро 4
После истечения бесключевого периода использования Crypto Pro программа предложит оплатить лицензию. Если игнорировать предложение, софтом невозможно будет пользоваться даже после переустановки.
Попытка использования пиратского номера влечет за собой наложение санкций со стороны государства со всеми вытекающими последствиями.
Вместо этого, лучше использовать полностью легальную версию криптопровайдера. Купить программу можно в нашем удостоверяющем центре «Астрал-М». Мы являемся официальным партнером разработчика программного обеспечения КриптоПро, в чем вы можете убедиться на официальном сайте.
Мы предлагаем приобрести по выгодной цене бессрочную версию криптопровайдера, которую можно установить на ваш локальный компьютер. Для оформления покупки заполните форму обратной связи, которая опубликована на нашем сайте.
Полное юридическое наименование: | ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ “КЕЙ ТРЕЙД” |
Руководитель: | ДИРЕКТОР Балабан Елена Васильевна |
ИНН / КПП: | 2308210861 / 230801001 |
Уставной капитал: | 10 тыс.руб. |
Численность персонала: | 7 |
Количество учредителей: | 1 |
Дата регистрации: | 03.06.2014 |
Статус: | Действующее |
Состоит в реестре субъектов малого и среднего предпринимательства: с 01.08.2016 как микропредприятие
Специальные налоговые режимы: упрощенная система налогообложения (УСН)
Основной (по коду ОКВЭД ред.2): 62.09 – Деятельность, связанная с использованием вычислительной техники и информационных технологий, прочая
Найти похожие предприятия – в той же отрасли и регионе (с тем же ОКВЭД и ОКАТО)
Дополнительные виды деятельности по ОКВЭД:
31.01 | Производство мебели для офисов и предприятий торговли |
46.43.2 | Торговля оптовая радио-, теле- и видеоаппаратурой и аппаратурой для цифровых видеодисков (DVD) |
46.43.3 | Торговля оптовая грампластинками, аудио- и видеомагнитными лентами, компакт-дисками (CD) и цифровыми видеодисками (DVD) (кроме носителей без записей) |
46.65 | Торговля оптовая офисной мебелью |
47.41 | Торговля розничная компьютерами, периферийными устройствами к ним и программным обеспечением в специализированных магазинах |
47.63.1 | Торговля розничная музыкальными записями, аудиолентами, компакт-дисками и кассетами в специализированных магазинах |
47.63.2 | Торговля розничная лентами и дисками без записей в специализированных магазинах |
61.10.4 | Деятельность в области документальной электросвязи |
62.01 | Разработка компьютерного программного обеспечения |
62.02 | Деятельность консультативная и работы в области компьютерных технологий |
63.11 | Деятельность по обработке данных, предоставление услуг по размещению информации и связанная с этим деятельность |
63.11.1 | Деятельность по созданию и использованию баз данных и информационных ресурсов |
70.10.1 | Деятельность по управлению финансово-промышленными группами |
70.10.2 | Деятельность по управлению холдинг-компаниями |
70.22 | Консультирование по вопросам коммерческой деятельности и управления |
73.11 | Деятельность рекламных агентств |
73.20 | Исследование конъюнктуры рынка и изучение общественного мнения |
82.30 | Деятельность по организации конференций и выставок |
82.99 | Деятельность по предоставлению прочих вспомогательных услуг для бизнеса, не включенная в другие группировки |
95.11 | Ремонт компьютеров и периферийного компьютерного оборудования |
Регистрация в Пенсионном фонде Российской Федерации:
Регистрационный номер: 033013065855
Дата регистрации: 09.06.2014
Наименование органа ПФР: Управление Пенсионного фонда РФ в Западном административном округе г.Краснодара
ГРН внесения в ЕГРЮЛ записи: 7162375745019
Дата внесения в ЕГРЮЛ записи: 13.11.2016
Регистрация в Фонде социального страхования Российской Федерации:
Регистрационный номер: 230203815923021
Дата регистрации: 16.06.2014
Наименование органа ФСС: Филиал № 2 Государственного учреждения – Краснодарского регионального отделения Фонда социального страхования РФ
ГРН внесения в ЕГРЮЛ записи: 6162375915861
Дата внесения в ЕГРЮЛ записи: 06.10.2016
Сведения о доходах и расходах по данным ФНС от 02.08.2022 по ИНН 2308210861:
Год | Доходы | Расходы | Доходы – Расходы |
2020 | 19 407 000 руб. | 18 141 000 руб. | 1 266 000 руб. |
Сведения об уплаченных суммах налогов и сборов по данным ФНС от 02.08.2022 по ИНН 2308210861:
Год | Наименование | Сумма |
2020 | Страховые взносы на обязательное медицинское страхование работающего населения, зачисляемые в бюджет Федерального фонда обязательного медицинского страхования | 68 600 руб. |
2020 | Страховые и другие взносы на обязательное пенсионное страхование, зачисляемые в Пенсионный фонд Российской Федерации | 136 700 руб. |
2020 | Страховые взносы на обязательное социальное страхование на случай временной нетрудоспособности и в связи с материнством | 0 руб. |
2020 | Налог, взимаемый в связи с применением упрощенной системы налогообложения | 216 000 руб. |
Сообщения на Федресурсе:
Результаты работы за 2021 год (по данным ФНС России):
Финансовые отчеты (бухгалтерские показатели): | |||
Код | Показатель | Значение | |
Ф1.1110 | Нематериальные активы | 0 | тыс.руб. |
Ф1.1120 | Результаты исследований и разработок | 0 | тыс.руб. |
Ф1.1130 | Нематериальные поисковые активы | 0 | тыс.руб. |
Ф1.1140 | Материальные поисковые активы | 0 | тыс.руб. |
Ф1.1150 | Основные средства | 0 | тыс.руб. |
Ф1.1160 | Доходные вложения в материальные ценности | 0 | тыс.руб. |
Ф1.1170 | Финансовые вложения | 0 | тыс.руб. |
Ф1.1180 | Отложенные налоговые активы | 0 | тыс.руб. |
Ф1.1190 | Прочие внеоборотные активы | 0 | тыс.руб. |
Ф1.1100 | Итого по разделу I – Внеоборотные активы | 0 | тыс.руб. |
Ф1.1210 | Запасы | 158 | тыс.руб. |
Ф1.1220 | Налог на добавленную стоимость по приобретенным ценностям | 0 | тыс.руб. |
Ф1.1230 | Дебиторская задолженность | 5005 | тыс.руб. |
Ф1.1240 | Финансовые вложения (за исключением денежных эквивалентов) | 0 | тыс.руб. |
Ф1.1250 | Денежные средства и денежные эквиваленты | 1366 | тыс.руб. |
Ф1.1260 | Прочие оборотные активы | 0 | тыс.руб. |
Ф1.1200 | Итого по разделу II – Оборотные активы | 0 | тыс.руб. |
Ф1.1600 | БАЛАНС (актив) | 6529 | тыс.руб. |
Ф1.1310 | Уставный капитал (складочный капитал, уставный фонд, вклады товарищей) | 0 | тыс.руб. |
Ф1.1320 | Собственные акции, выкупленные у акционеров | 0 | тыс.руб. |
Ф1.1340 | Переоценка внеоборотных активов | 0 | тыс.руб. |
Ф1.1350 | Добавочный капитал (без переоценки) | 0 | тыс.руб. |
Ф1.1360 | Резервный капитал | 0 | тыс.руб. |
Ф1.1370 | Нераспределенная прибыль (непокрытый убыток) | 0 | тыс.руб. |
Ф1.1300 | Итого по разделу III – Капитал и резервы | 5217 | тыс.руб. |
Ф1.1410 | Заемные средства | 0 | тыс.руб. |
Ф1.1420 | Отложенные налоговые обязательства | 0 | тыс.руб. |
Ф1.1430 | Оценочные обязательства | 0 | тыс.руб. |
Ф1.1450 | Прочие обязательства | 0 | тыс.руб. |
Ф1.1400 | Итого по разделу IV – Долгосрочные обязательства | 0 | тыс.руб. |
Ф1.1510 | Заемные средства | 0 | тыс.руб. |
Ф1.1520 | Кредиторская задолженность | 1181 | тыс.руб. |
Ф1.1530 | Доходы будущих периодов | 0 | тыс.руб. |
Ф1.1540 | Оценочные обязательства | 0 | тыс.руб. |
Ф1.1550 | Прочие обязательства | 131 | тыс.руб. |
Ф1.1500 | Итого по разделу V – Краткосрочные обязательства | 0 | тыс.руб. |
Ф1.1700 | БАЛАНС (пассив) | 6529 | тыс.руб. |
Ф2.2110 | Выручка | 16039 | тыс.руб. |
Ф2.2120 | Себестоимость продаж | 14646 | тыс.руб. |
Ф2.2100 | Валовая прибыль (убыток) | 0 | тыс.руб. |
Ф2.2210 | Коммерческие расходы | 0 | тыс.руб. |
Ф2.2220 | Управленческие расходы | 0 | тыс.руб. |
Ф2.2200 | Прибыль (убыток) от продаж | 0 | тыс.руб. |
Ф2.2310 | Доходы от участия в других организациях | 0 | тыс.руб. |
Ф2.2320 | Проценты к получению | 0 | тыс.руб. |
Ф2.2330 | Проценты к уплате | 0 | тыс.руб. |
Ф2.2340 | Прочие доходы | 882 | тыс.руб. |
Ф2.2350 | Прочие расходы | 26 | тыс.руб. |
Ф2.2300 | Прибыль (убыток) до налогообложения | 0 | тыс.руб. |
Ф2.2410 | Текущий налог на прибыль | 179 | тыс.руб. |
Ф2.2421 | в т.ч. постоянные налоговые обязательства (активы) | 0 | тыс.руб. |
Ф2.2430 | Изменение отложенных налоговых обязательств | 0 | тыс.руб. |
Ф2.2450 | Изменение отложенных налоговых активов | 0 | тыс.руб. |
Ф2.2460 | Прочее | 0 | тыс.руб. |
Ф2.2400 | Чистая прибыль (убыток) | 2070 | тыс.руб. |
Ф2.2510 | Результат от переоценки внеобор.активов, не включ.в чистую прибыль(убыток) периода | 0 | тыс.руб. |
Ф2.2520 | Результат от прочих операций, не включаемый в чистую прибыль (убыток) периода | 0 | тыс.руб. |
Ф2.2500 | Совокупный финансовый результат периода | 0 | тыс.руб. |
Ф2.2910 | Разводненная прибыль (убыток) на акцию | 0 | тыс.руб. |
Ф2.2900 | Базовая прибыль (убыток) на акцию | 0 | тыс.руб. |
Посмотреть отчетность за 2014 – 2021 год. |
Данные реестра организаций госзакупок по 44-ФЗ:
Данные реестра организаций госзакупок по 223-ФЗ:
Всего 2 поставок по 223-ФЗ на 10.821 млн.руб.:
67705966318170001180000 от 16.11.2017 на 515100 руб.
Изготовление и поставка сувенирной продукции для нужд АО «Русатом Сервис» в 2017г.
О компании указано: адрес: 350020, РОССИЯ, Краснодарский край, 350020, Краснодарский край, Краснодар г, Красная ул, 155/2,, 350020, Краснодарский край, Краснодар г, Красная ул, 155/2
e-mail: info@key-trade.ru
телефон: +7 (800) 775-96-05
Заказчик: (ИКО: 67705966318772501001)
77706729736170001670000 от 19.07.2017 на 10305562 руб.
Приобретение лицензий на право использования программного обеспечения СКЗИ “КриптоПро CSP версии 4.0.
О компании указано: адрес: 350020, РОССИЯ, Краснодарский край, 350020, Краснодарский край, Краснодар г, Красная ул, 155/2,, 350020, Краснодарский край, Краснодар г, Красная ул, 155/2
e-mail: info@key-trade.ru
телефон: +7 (800) 775-96-05
Заказчик: АО “ГРИНАТОМ” (ИКО: 77706729736770601001)
Организация ‘ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ “КЕЙ ТРЕЙД”‘ зарегистрирована 03 июня 2014 года по адресу 350020, КРАСНОДАРСКИЙ КРАЙ, ГОРОД КРАСНОДАР, УЛИЦА КРАСНАЯ, 155/2, ОФИС 901. Компании был присвоен ОГРН 1142308007412 и выдан ИНН 2308210861. Основным видом деятельности является деятельность, связанная с использованием вычислительной техники и информационных технологий, прочая. Компанию возглавляет БАЛАБАН ЕЛЕНА ВАСИЛЬЕВНА. За 2021 год прибыль компании составила 2070 тыс. руб.
Сборка утилиты конвертирования ключа
Далее сборка исходников описана для Linux версии.
Версию для Windows можно скачать отсюда там же есть сертификаты и закрытый ключ для тестирования, для сборки потребуется бесплатный компилятор Borland C++ 5.5
Компиляция OpenSSL библиотеки
После скачивания и распаковки исходных текстов openssl в целевой директории выполняем команды:
./config
make
Получаем готовую библиотеку libcrypto.a в текущей директории.
Также потребуются заголовочные файлы из директорий engines/ccgost и include.
Компиляция privkey
gcc -o privkey -Iengines/ccgost -Iinclude privkey.c libcrypto.a -pthread -ldl
Формирование файла закрытого ключа private. key
./privkey /mnt/usbflash/lp-9a0fe.000
Тестовый закрытый ключ в криптоконтейнере lp-9a0fe.000, сертификат открытого ключа signer.cer и другие файлы для тестирования можно взять отсюда
Получаем результат работы:
-----BEGIN PRIVATE KEY-----
MEYCAQAwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEEIwIhAKzsrv/l1Uwk
uzph/LQN9mux0Jz0yaW21kOYEFv0Xyut
-----END PRIVATE KEY-----
Cохраняем в private.key
Пользуемся закрытым ключом private. key для подписывания файла file. txt
openssl cms -sign -inkey private.key -in file.txt -CAfile CA.cer -signer signer.cer -engine gost -out test.sign -outform DER -noattr -binary
Проверяем подпись
openssl cms -verify -content file.txt -in test.sign -CAfile CA.cer -signer signer.cer -engine gost -inform DER -noattr -binary
Все работает просто замечательно!
Спасибо за внимание. Это была моя первая статья на хабре.
Файл masks. key
Содержит 32 байта маски ключа в формате Asn1, зашифрованного на ключе хранения pwd_key. Далее 12 байт «затравочной» информации для генерации ключа хранения pwd_key, если криптоконтейнер защищен паролем, то пароль также участвует в генерации ключа хранения.
Далее контрольная сумма (имитозащита) 4 байта. Контрольной информацией для простоты мы пользоваться не будем, общий контроль будет осуществляться путем генерации открытого ключа и сравнения первых 8 байт полученного ключа с соответствующим полем из файла header.key:
КриптоПро
Для соблюдения требований по использованию ЭП
необходимо приобрести
лицензию на право использования СКЗИ «КриптоПро CSP». Для работы лицензии на ПК потребуется
установить ПО «КриптоПро CSP» версии 5.0
“На работе я использую программу 1С и естественно подключили электронную отчетность. Несомненный плюс, то что в базе есть все необходимые отчеты, которые постоянно обновляются в связи с изменениями в законодательстве. После отправки отчета в программе появляется статус отправлен, а как только отчет проверят органы кому он отправлен, нажав на кнопку обменяться вы получаете протокол с положительным или отрицательным результатом проверки.”
Елена Степановна
ООО “Люкс”
“Сотрудничаю с 2017 года , решение вопросов происходит быстро, моя компания всегда вовремя и без замечаний сдавала отчеты в налоговую, ПФР и другие инстанции, но главное – с большим удовольствием мы работаем в вашей программе»
Маргарита Овцева
ООО “Усадьба”
“Огромная благодарность всему коллективу “Калуга-Астрал” за разработку программы и поддержку пользователей. Для меня очень важно , что техподдержка рядом. На любой вопрос – оперативная, профессиональная помощь сотрудников”
Александра Николаева
ООО “Прогресс”
“Хочу поделиться своими впечатлениями о 1С-Отчетность. Если вы работаете в 1С, сдавать отчетность в других программах не вижу смысла. Я сама работаю в 1С:Бухгалтерия, всю настройку мне произвели ребята с тех. поддержки, причем удаленно.
Клавдия Петрова
ИП Макарова Е
“Устанавливается раз плюнуть, даже не пришлось вызывать специалиста, поставили сами за десять минут. Отправка отчетности происходит на раз-два”
Олег
ЗАО “ИНФОРМ”
“Приобреталась для отправки отчетов в контролирующие органы для нашего бухгалтера. Изначально пробовали другие прикладные продукты, но функциональность и сложность в работе не давала желаемых результатов”
Евгений
ООО “Новое решение”
“Конечно в моей работе бывают сбои, куда без них, может и компьютер пошалить. При возникновении проблем, не приходится часами ждать ответ от специалиста техподдержки, он сразу удаленно подключается к компу и все налаживает.”
Екатерина
ИП Филимонова А.
“При правильном заполнении всех документов в программе, отчетность заполняется автоматически. Если что-то не заполнилось, это заставляет задуматься, все ли делаешь верно и последовательно. Проверка отчетов перед выгрузкой позволяет избежать ошибок. При отправке видны все стадии прохождения отчетов.”
Галина Макарова
ООО «Луч»
“Сменился главный бухгалтер в компании, в тот же день отправили заявление на выдачу ЭП на нового сотрудника. Процесс получения новой подписи прошел быстро»
Надежда Нефедова
ООО “Принт”
“Все отправляю сразу из программы. Не надо ничего выгружать в файлы, также через этот сервис заказываю сверки, выписку из ЕГРЮЛ и отвечаю на пояснения для налоговой”
Марина Борисовна
ЗАО “ФОР-Т”
КриптоПро
Что такое КриптоПро
КриптоПро — это программное обеспечение (ПО) для защиты информации при передаче её в сети посредством преобразования данных, к доступу которых требуется ключ для расшифровки. Данное средство криптографической защиты информации (СКЗИ) использует технические, математические, алгоритмические и программные методы шифрования, защиты информации и хранения секретных ключей.
Для чего необходимо КриптоПро
Программное обеспечение КриптоПро незаменимый инструмент для работы с электронной цифровой подписью (ЭЦП). Программа создаёт, шифрует и проверяет ЭЦП при работе с юридически значимым электронным документооборотом (ЮЗЭДО). Гарантирует подлинность, целостность и авторство подписанного документа. Защищает документ от несанкционированных изменений, закладок, модификаций ПО и вирусов. Конфиденциальность данных при этом происходит путём осуществления криптографической защиты (cryptography service provider — CSP).
Последняя версия ПО КриптоПро CSP 5.0 поддерживает зарубежные криптографические алгоритмы, может использовать ключи, хранящиеся на облачном сервисе, может работать с носителями с неизвлекаемыми ключами. Поддерживает популярные ключевые носители Рутокен ЭЦП 2.0, JaCarta-2 ГОСТ и InfoCrypt VPN-Key-TLS. В составе ПО появилось приложение «Инструменты КриптоПро» — в понятном интерфейсе представлены основные функции и дополнительные возможности, что облегчает понимание принципа работы для новых пользователей.
КриптоПро работает на всех популярных операционных системах. Помимо поддержки и совместимости продукции компании между собой, интерфейс КриптоПро CSP возможно интегрировать в приложения.
Принцип работы
ПО КриптоПро может быть установлено как на компьютер пользователя, так и на сервер организации. При подписании документа ПО обращается к ЭЦП. Проверяет её подлинность, подтверждает корректность, создаёт ключ проверки, зашифровывает данные и отправляет документ, сохраняя его конфиденциальность.
Как купить КриптоПро
Чтобы приобрести продукцию и актуальную лицензию КриптоПро, достаточно выполнить несколько шагов:
- обратиться в клиентский отдел нашей компании, заполнив форму обратной связи или по телефону;
- выбрать вместе со специалистом продукт, исходя из ваших потребностей;
- получить счёт;
- получить лицензию КриптоПро на электронную почту после оплаты счёта.
ООО “КЕЙ ТРЕЙД”
- Краснодарский Край
- Удостоверяющий центр
- Выпуск сертификатов ключей электронной подписи (ЭП)
- Электронная отчетность
- Поставка и сопровождение программного обеспечения и СКЗИ
- Оказание консультационно-сопроводительных услуг
- Сопровождение в торговых процедурах
- Банковские гарантии
- Открытие спец. Счета
- Тендерный кредит
Страница для печати
Купить
Вход
Услуги УЦ
Услуги СЭП
Подписка
Ключ для КриптоПро 4. 0 9944 и варианты лицензий
В зависимости от вида лицензии, продавец предоставляет определенный ключ для КриптоПро 4.0 9944 или других версий программы. Стоимость и функции разрешения также зависят от его типа. Виды лицензий:
- По типу операционной системы: разрешения, которые подбирают в зависимости от ОС компьютера покупателя. Например, CSP 4 релиза подходит для 32- и 64-разрядных Windows версии XP, Vista, 7, 8, 8.1 и 10.
- По длительности периода действия: с ограниченным сроком (на год) и бессрочные.
- По применению: серверная — устанавливают на сервер, разрешено применение для неограниченного количества пользователей. Клиентская или автономная — разрешение для одного ПК. Встроенная — реализуется в составе электронной подписи на носителе.
Применять можно на любом ПК, так как самостоятельная установка не нужна, но только в комплекте с ЭП.
За 30 минут настроим ЭЦП для работы под ключ.
Оставьте заявку и получите консультацию в течение 5 минут.
Как получить и ввести ключ КриптоПро 4. 0 9944, если программа уже установлена
При первом скачивании демонстрационного ПО пользователю предоставляют тестовый период — 3 месяца. По его истечении клиенту нужно приобрести лицензию и активировать ее. Скачать демо-версию утилиты можно на сайте разработчика в разделе «Продукты» — «Загрузка файлов».
В списках дистрибутивов нужно выбрать подходящую компоненту для ОС, ознакомиться и принять лицензионное соглашение, запустить процесс установки. На этапе ввода серийного номера заполнить только поля: имя пользователя и название организации.
Далее указать параметры установки, подтвердить действие и завершить процесс.
По истечении пробного периода пользователю придется приобрести ключ КриптоПро 4.0 9944. В случае, когда программа уже установлена, а ключ куплен позднее, активировать разрешение можно, выполнив описанные далее действия.
1 способ
Если номер ключа уже есть, то открыть «Пуск», найти меню «Программы» — «КриптоПро» — «Крипто Про PKI». В диалоговом окне консоли двойным нажатием левой кнопки мыши открыть пункт «Управление лицензиями» в списке найти «КриптоПро CSP», кликнуть левой кнопкой и в выпадающем меню выбрать пункт «Все задачи» — «Ввести серийный номер».
Появится окно, где в соответствующем поле нужно указать ключ.
2 способ
Если пользователю предоставлено разрешение в виде файла формата .lic, то следует открыть по описанному выше пути меню управления лицензиями и выбрать: «Установить лицензионный файл». Система выведет окно, в котором будут указаны данные лицензии. Проверить их или возможности обновления также можно на сайте КриптоПро.
Когда во время ввода ключа появляется сообщение об ошибке, нужно проверить, совпадает ли версия установленного ПО с версией, для которой предоставлен ключ.
Также нужно верифицировать корректность введенных символов, так как в серийном номере могут быть только латинские буквенные значения, за исключением «О», и цифры. Если проблема не решена, нужно обратиться в службу технической поддержки.
Подберем электронную подпись для вашего бизнеса за 5 минут!
Оставьте заявку и получите консультацию.
Оцените, насколько полезна была информация в статье?
Наш каталог продукции
У нас Вы найдете широкий ассортимент товаров в сегментах кассового, торгового, весового, банковского и офисного оборудования.
Посмотреть весь каталог
Бессрочный серийный номер КриптоПро 4. 0 9944
Лицензия КриптоПро 4.0 9944 имеет бессрочный серийный номер — это значит, что разрешение не ограничено периодом действия, и его не нужно обновлять. Пользователю достаточно один раз установить программу и оплатить ключ. Устанавливать утилиту можно только на один компьютер. Она имеет ряд преимуществ по сравнению с предыдущими версиями ПО:
- Установлен диверсификационный алгоритм KDF_TREE_GOSTR3411_2012_256 для симметрического формирования ключей CALG.
- Полностью поддерживает алгоритмы проверки и генерации ЭЦП по ГОСТам Р 34.10-2001, Р 34.10-2012, Р 34.11-94, Р 34.11-2012 и 28147-89.
- Расширен список совместимости с носителями, как Esmart, eToken, Рутокен, JaCarta и т. д.
Описание и списки возможностей опубликованы на сайте разработчика в таблице сравнения версий ПО.
Серийный номер для КриптоПро 4. 0 сборка 9944
Лицензия или серийный номер КриптоПро — это ключ, который пользователь вводит для активации купленной версии программы. То есть пользоваться программной компонентой можно в период действия ключа, аналогично антивирусному ПО, лицензию на которое мы приобретаем на определенный период. По истечении срока действия софт становится неактивным, и, чтобы возобновить подписку, нужно купить новый ключ для активации функций программного модуля.
Рассмотрим, как указать серийный номер для КриптоПро 4.0 9944 при установке платной версии. Чтобы пользоваться сервисами компании, необходима регистрация на портале. Для этого предстоит заполнить онлайн-форму, где следует указать: e-mail, номер телефона, имя и фамилию.
Приобрести утилиту можно на сайте разработчика или у официальных партнеров компании. Нужно заполнить онлайн-заявку и оплатить выставленный счет. Для физических лиц возможна оплата банковскими картами, для юридических и ИП — безналичный расчет.
После оплаты клиент получает доступ к ссылке на портале для установки программы. Организации могут забрать ПО только в офисе компании или оформить доставку. Как программу устанавливают на ПК:
- Запустить Мастер установки.
- Ознакомиться с пунктами договора и принять условия.
- В меню «Сведения о пользователе» указать в соответствующих графах название компании и имя пользователя. В третью графу ввести номер ключа — указан в лицензионном бланке, который предоставит продавец с дистрибутивом программы. Его также могут прислать по почте, после оформления онлайн-покупки ПО.
- Далее ввести параметры для установки программы (выборочная или стандартная).
Подтвердить инсталляцию и нажать «Готово» по завершении процесса.
Обратите внимание, если лицензия ограничена по сроку действия, то отсчет периода ее использования начинается с даты первой инсталляции утилиты.
Мы готовы помочь!
Задайте свой вопрос специалисту в конце статьи. Отвечаем быстро и по существу. К комментариям
Файл header. key
Из этого файла нам потребуется параметры электронной подписи CryptoProParamSet (подчеркнуто красным).
- GostR3410_2001_CryptoPro_A_ParamSet — 1.2.643.2.2.35.1
- GostR3410_2001_CryptoPro_B_ParamSet — 1.2.643.2.2.35.2
- GostR3410_2001_CryptoPro_C_ParamSet — 1.2.643.2.2.35.3
- GostR3410_2001_CryptoPro_XchA_ParamSet — 1.2.643.2.2.36.0
- GostR3410_2001_CryptoPro_XchB_ParamSet — 1.2.643.2.2.36.1
А также первые 8 байт открытого ключа (подчеркнуто) для контроля правильности чтения закрытого.
Токены для электронной подписи
Токены для ЭП от ФНС — это USB-носители для хранения ключей
электронной подписи
Рутокен Lite
Устройства Рутокен Lite —
защищенные носители
закрытых
ключей электронной подписи для электронного документооборота
Хранение секретных ключей или цифровых
идентификаторов. Считывать их при необходимости по предъявлении пользователем
PIN-кода
Цена: 1 500₽
Jacarta LT
JaCarta LT – USB-токен для
безопасного хранения
ключевых контейнеров сертифицированных российских СКЗИ, ключей, профилей и паролей
пользователей, а также лицензионной информации независимых разработчиков ПО
Хранение ключевых контейнеров всех
популярных
программных СКЗИ (КриптоПро CSP, VipNet CSP и др.)
Двухфакторная аутентификация при
использовании программных СКЗИ или JaCarta SecurLogon
Цена: 1 450₽
Рутокен ЭЦП 2. 2100
Рутокен ЭЦП 2.0 — защищенные
носители закрытых ключей электронной подписи для электронного документооборота. Он
обеспечивает двухфакторную аутентификацию в компьютерных системах
Сертификаты ФСТЭК и ФСБ России
Поддержка отечественных криптографических
стандартов: ГОСТ Р 34.10-2012
Безопасное хранение ключей электронной
подписи во встроенной защищенной памяти без возможности их экспорта
Цена: 2 100₽
Читаем закрытый ключ и конвертируем
Файл privkey.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/pem.h>
#include <openssl/cms.h>
#include <openssl/err.h>
#include "gost_lcl.h"
/* Convert little-endian byte array into bignum */
BIGNUM *reverse32bn(char *b, BN_CTX *ctx)
{
BIGNUM *res;
char buf[32];
BUF_reverse(buf, b, 32);
res = BN_bin2bn(buf, 32, BN_CTX_get(ctx));
OPENSSL_cleanse(buf, sizeof(buf));
return res;
}
void xor_material(char *buf36, char *buf5C, char *src)
{
int i;
for(i = 0; i < 32; i++)
{
buf36[i] = src[i] ^ 0x36;
buf5C[i] = src[i] ^ 0x5C;
}
}
int make_pwd_key(char *result_key, char *start12, int start12_len, char *passw)
{
int result;
int i;
char pincode4[1024];
int pin_len;
char current[32];
char material36[32];
char material5C[32];
char hash_result[32];
gost_hash_ctx ctx;
init_gost_hash_ctx(&ctx, &GostR3411_94_CryptoProParamSet);
memset(pincode4, 0, sizeof(pincode4));
pin_len = strlen(passw);
if (pin_len*4 > sizeof(pincode4)) { result = 1; goto err; }
for(i = 0; i < pin_len; i++)
pincode4[i*4] = passw[i];
start_hash(&ctx);
hash_block(&ctx, start12, start12_len);
if (pin_len)
hash_block(&ctx, pincode4, pin_len * 4);
finish_hash(&ctx, hash_result);
memcpy(current, (char*)"DENEFH028.760246785.IUEFHWUIO.EF", 32);
for(i = 0; i < (pin_len?2000:2); i++)
{
xor_material(material36, material5C, current);
start_hash(&ctx);
hash_block(&ctx, material36, 32);
hash_block(&ctx, hash_result, 32);
hash_block(&ctx, material5C, 32);
hash_block(&ctx, hash_result, 32);
finish_hash(&ctx, current);
}
xor_material(material36, material5C, current);
start_hash(&ctx);
hash_block(&ctx, material36, 32);
hash_block(&ctx, start12, start12_len);
hash_block(&ctx, material5C, 32);
if (pin_len)
hash_block(&ctx, pincode4, pin_len * 4);
finish_hash(&ctx, current);
start_hash(&ctx);
hash_block(&ctx, current, 32);
finish_hash(&ctx, result_key);
result = 0; //ok
err:
return result;
}
BIGNUM *decode_primary_key(char *pwd_key, char *primary_key, BN_CTX *bn_ctx)
{
BIGNUM *res;
char buf[32];
gost_ctx ctx;
gost_init(&ctx, gost_cipher_list->sblock);
gost_key(&ctx, pwd_key);
gost_dec(&ctx, primary_key, buf, 4);
res = reverse32bn(buf, bn_ctx);
OPENSSL_cleanse(buf, sizeof(buf));
return res;
}
BIGNUM *remove_mask_and_check_public(char *oid_param_set8, BIGNUM *key_with_mask, BIGNUM *mask, char *public8, BN_CTX *ctx)
{
int result;
EC_KEY *eckey = NULL;
const EC_POINT *pubkey;
const EC_GROUP *group;
BIGNUM *X, *Y, *order, *raw_secret, *mask_inv;
char outbuf[32], public_X[32];
ASN1_OBJECT *obj;
int nid;
order = BN_CTX_get(ctx);
mask_inv = BN_CTX_get(ctx);
raw_secret = BN_CTX_get(ctx);
X = BN_CTX_get(ctx);
Y = BN_CTX_get(ctx);
if (!order || !mask_inv || !raw_secret || !X || !Y) { result = 1; goto err; }
obj = ASN1_OBJECT_create(0, oid_param_set8+1, *oid_param_set8, NULL, NULL);
nid = OBJ_obj2nid(obj);
ASN1_OBJECT_free(obj);
if (!(eckey = EC_KEY_new())) { result = 1; goto err; }
if (!fill_GOST2001_params(eckey, nid)) { result = 1; goto err; }
if (!(group = EC_KEY_get0_group(eckey))) { result = 1; goto err; }
if (!EC_GROUP_get_order(group, order, ctx)) { result = 1; goto err; }
if (!BN_mod_inverse(mask_inv, mask, order, ctx)) { result = 1; goto err; }
if (!BN_mod_mul(raw_secret, key_with_mask, mask_inv, order, ctx)) { result = 1; goto err; }
if (!EC_KEY_set_private_key(eckey, raw_secret)) { result = 1; goto err; }
if (!gost2001_compute_public(eckey)) { result = 1; goto err; }
if (!(pubkey = EC_KEY_get0_public_key(eckey))) { result = 1; goto err; }
if (!EC_POINT_get_affine_coordinates_GFp(group, pubkey, X, Y, ctx)) { result = 1; goto err; }
store_bignum(X, outbuf, sizeof(outbuf));
BUF_reverse(public_X, outbuf, sizeof(outbuf));
if (memcmp(public_X, public8, 8) != 0) { result = 1; goto err; }
result = 0; //ok
err:
if (eckey) EC_KEY_free(eckey);
if (result == 0) return raw_secret;
return NULL;
}
int file_length(char *fname)
{
int len;
FILE *f = fopen(fname, "rb");
if (f == NULL) return -1;
fseek(f, 0, SEEK_END);
len = ftell(f);
fclose(f);
return len;
}
int read_file(char *fname, int start_pos, char *buf, int len)
{
int read_len;
FILE *f = fopen(fname, "rb");
if (f == NULL) return 1;
if (start_pos) fseek(f, start_pos, SEEK_SET);
read_len = fread(buf, 1, len, f);
fclose(f);
if (read_len != len) return 1;
return 0; //ok
}
int get_asn1_len(unsigned char *buf, int *size_hdr)
{
int n, i, res;
int pos = 0;
if ((buf[pos]&0x80) == 0) {
*size_hdr = 1;
return buf[pos];
}
n = buf[pos++]&0x7f;
res = 0;
for(i = 0; i < n; i++) {
res = res*256 + buf[pos++];
}
*size_hdr = n+1;
return res;
}
#define MAX_HEADER 20000
int read_container(char *fpath, int flag2, char *salt12, char *primary_key, char *masks_key, char *public8, char *oid_param_set8)
{
int result;
char primary_path[1024+30];
char masks_path[1024+30];
char header_path[1024+30];
char header_buf[MAX_HEADER];
int header_len;
int i, len, pos, size_hdr;
if (strlen(fpath)>1024) { result = 1; goto err; }
sprintf(header_path, "%s/header.key", fpath);
if (flag2 == 0)
{
sprintf(primary_path, "%s/primary.key", fpath);
sprintf(masks_path, "%s/masks.key", fpath);
}
else
{
sprintf(primary_path, "%s/primary2.key", fpath);
sprintf(masks_path, "%s/masks2.key", fpath);
}
if (read_file(primary_path, 4, primary_key, 32)) { result = 1; goto err; }
if (read_file(masks_path, 4, masks_key, 32)) { result = 1; goto err; }
if (read_file(masks_path, 0x26, salt12, 12)) { result = 1; goto err; }
header_len = file_length(header_path);
if (header_len < 0x42 || header_len > MAX_HEADER) { result = 1; goto err; }
if (read_file(header_path, 0, header_buf, header_len)) { result = 1; goto err; }
//------------- skip certificate ---------------------------
pos = 0;
for(i = 0; i < 2; i++)
{
get_asn1_len(header_buf+pos+1, &size_hdr);
pos += size_hdr+1;
if (pos > header_len-8) { result = 2; goto err; }
}
//------------------ get oid_param_set8 -----------------------
#define PARAM_SET_POS 34
if (memcmp(header_buf+pos+PARAM_SET_POS, "\x6\x7", 2) != 0) { result = 2; goto err; }
memcpy(oid_param_set8, header_buf+pos+PARAM_SET_POS+1, 8);
//------------------ get public8 -----------------------
result = 2; //not found
pos += 52;
for(i = 0; i < 3; i++)
{
len = get_asn1_len(header_buf+pos+1, &size_hdr);
if (len == 8 && memcmp(header_buf+pos, "\x8a\x8", 2) == 0)
{
memcpy(public8,header_buf+pos+2,8);
result = 0; //ok
break;
}
pos += len+size_hdr+1;
if (pos > header_len-8) { result = 2; goto err; }
}
err:
OPENSSL_cleanse(header_buf, sizeof(header_buf));
return result;
}
#define START_OID 0x12
#define START_KEY 0x28
unsigned char asn1_private_key[72] = {
0x30,0x46,2,1,0,0x30,0x1c,6,6,0x2a,0x85,3,2,2,0x13,0x30,0x12,6,7,0x11,
0x11,0x11,0x11,0x11,0x11,0x11,6,7,0x2a,0x85,3,2,2,0x1e,1,4,0x23,2,0x21,0
};
int main(int argc, char **argv)
{
int result;
char *container_path;
char *passw;
char salt12[12];
char primary_key[32];
char masks_key[32];
char public8[8];
char oid_param_set8[8];
BN_CTX *ctx;
BIGNUM *key_with_mask;
BIGNUM *mask;
BIGNUM *raw_key;
char pwd_key[32];
char outbuf[32];
ctx = BN_CTX_new();
if (argc == 2)
{
container_path = argv[1];
passw = "";
}
else
if (argc == 3)
{
container_path = argv[1];
passw = argv[2];
}
else
{
printf("get_private container_path [passw]\n");
result = 1;
goto err;
}
if (read_container(container_path, 0, salt12, primary_key, masks_key, public8, oid_param_set8) != 0 &&
read_container(container_path, 1, salt12, primary_key, masks_key, public8, oid_param_set8) != 0)
{
printf("can not read container from %s\n", container_path);
result = 2;
goto err;
}
make_pwd_key(pwd_key, salt12, 12, passw);
key_with_mask = decode_primary_key(pwd_key, primary_key, ctx);
OPENSSL_cleanse(pwd_key, sizeof(pwd_key));
mask = reverse32bn(masks_key, ctx);
raw_key = remove_mask_and_check_public(oid_param_set8, key_with_mask, mask, public8, ctx);
if (raw_key)
{
BIO *bio;
store_bignum(raw_key, outbuf, sizeof(outbuf));
memcpy(asn1_private_key+START_OID, oid_param_set8, 8);
memcpy(asn1_private_key+START_KEY, outbuf, 32);
//bio = BIO_new_file("private.key", "w");
bio = BIO_new_fp(stdout, BIO_NOCLOSE | BIO_FP_TEXT);
PEM_write_bio(bio, "PRIVATE KEY", "", asn1_private_key, sizeof(asn1_private_key));
BIO_free(bio);
OPENSSL_cleanse(outbuf, sizeof(outbuf));
OPENSSL_cleanse(asn1_private_key, sizeof(asn1_private_key));
result = 0; //ok
}
else
{
printf("Error check public key\n");
result = 3;
}
err:
BN_CTX_free(ctx);
OPENSSL_cleanse(salt12, sizeof(salt12));
OPENSSL_cleanse(primary_key, sizeof(primary_key));
OPENSSL_cleanse(masks_key, sizeof(masks_key));
return result;
}
Небольшой комментарий.
Основную работу выполняют следующие 3 функции:
1. Создаем ключ хранения исходя из 12-ти байтовой «соли» и пароля.
make_pwd_key(pwd_key, salt12, 12, passw);
2. Расшифровываем основной ключ на ключе хранения.
key_with_mask = decode_primary_key(pwd_key, primary_key, ctx);
3. Делим ключ с маской на маску.
raw_key = remove_mask_and_check_public(oid_param_set8, key_with_mask, mask, public8, ctx);
Но так как в библиотеке OpenSLL операция деления по модулю традиционно отсутствует, пользуемся операцией взятия обратного числа и умножением.
if (!BN_mod_inverse(mask_inv, mask, order, ctx)) { result = 1; goto err; }
if (!BN_mod_mul(raw_secret, key_with_mask, mask_inv, order, ctx)) { result = 1; goto err; }