Error installation failed lsb package may not be installed

добрый день, При установке Крипты происходит ошибка и появляется следующее окно с сообщением: Error: installation failed. LSB package may not be installed. Install LSB package and reinstall...

Offline

Руслан Дзуцев

 


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

3 июня 2020 г. 13:50:17(UTC)

Руслан Дзуцев

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

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

Зарегистрирован: 17.08.2019(UTC)
Сообщений: 49
Откуда: Владикавказ

Сказал(а) «Спасибо»: 4 раз

добрый день, При установке Крипты происходит ошибка и появляется следующее окно с сообщением:

Error: installation failed. LSB package may not be installed. Install LSB package and reinstall CryptoPro CSP.
If it does not help,please read installation documentation or contact the manufacturer:support@cryptopro.ru

хотя установил пакет командой:
sudo yum install lsb


Вверх


Offline

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

 


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

3 июня 2020 г. 14:02:12(UTC)

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

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

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

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

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

Автор: Руслан Дзуцев Перейти к цитате

добрый день, При установке Крипты происходит ошибка и появляется следующее окно с сообщением:

Error: installation failed. LSB package may not be installed. Install LSB package and reinstall CryptoPro CSP.
If it does not help,please read installation documentation or contact the manufacturer:support@cryptopro.ru

хотя установил пакет командой:
sudo yum install lsb

Здравствуйте.

Попробуйте установить базовый набор пакетов КриптоПро CSP запуском скрипта install.sh из состава дистрибутива.

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


Вверх


Offline

Руслан Дзуцев

 


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

3 июня 2020 г. 14:16:51(UTC)

Руслан Дзуцев

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

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

Зарегистрирован: 17.08.2019(UTC)
Сообщений: 49
Откуда: Владикавказ

Сказал(а) «Спасибо»: 4 раз

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

Автор: Руслан Дзуцев Перейти к цитате

добрый день, При установке Крипты происходит ошибка и появляется следующее окно с сообщением:

Error: installation failed. LSB package may not be installed. Install LSB package and reinstall CryptoPro CSP.
If it does not help,please read installation documentation or contact the manufacturer:support@cryptopro.ru

хотя установил пакет командой:
sudo yum install lsb

Здравствуйте.

Попробуйте установить базовый набор пакетов КриптоПро CSP запуском скрипта install.sh из состава дистрибутива.

эт просто в терминале ввести install.sh?


Вверх


Offline

Санчир Момолдаев

 


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

3 июня 2020 г. 14:45:18(UTC)

Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 83 раз
Поблагодарили: 212 раз в 204 постах

Добрый день!
уточните вашу ОС.
install.sh находится в составе дистрибутива linux-*.tar.gz
распакуйте его, перейдите в распакованный каталог. запустите sudo ./install.sh

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


Вверх


Offline

Руслан Дзуцев

 


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

3 июня 2020 г. 15:02:59(UTC)

Руслан Дзуцев

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

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

Зарегистрирован: 17.08.2019(UTC)
Сообщений: 49
Откуда: Владикавказ

Сказал(а) «Спасибо»: 4 раз

Автор: Санчир Момолдаев Перейти к цитате

уточните вашу ОС.

Centos 7(XFCE)


Вверх


Offline

Руслан Дзуцев

 


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

3 июня 2020 г. 15:04:21(UTC)

Руслан Дзуцев

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

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

Зарегистрирован: 17.08.2019(UTC)
Сообщений: 49
Откуда: Владикавказ

Сказал(а) «Спасибо»: 4 раз

Автор: Санчир Момолдаев Перейти к цитате

install.sh находится в составе дистрибутива linux-*.tar.gz

у меня расширение .tgz


Вверх


Offline

Санчир Момолдаев

 


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

3 июня 2020 г. 15:36:09(UTC)

Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 83 раз
Поблагодарили: 212 раз в 204 постах

простите ошибся с расширением.
какой вывод install.sh?

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


Вверх


Offline

Руслан Дзуцев

 


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

3 июня 2020 г. 16:07:39(UTC)

Руслан Дзуцев

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

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

Зарегистрирован: 17.08.2019(UTC)
Сообщений: 49
Откуда: Владикавказ

Сказал(а) «Спасибо»: 4 раз

Автор: Санчир Момолдаев Перейти к цитате

какой вывод install.sh?

Вот:
[ruslan.dzutsev@w0340213 linux-amd64]$ sudo ./install.sh
Uninstalling CSP packages…

Deleting of the device [reader,rndm,media]:
Nick name:bio_tui

The device has been deleted successfully.
предупреждение: /etc/opt/cprocsp/config64.ini сохранен как /etc/opt/cprocsp/config64.ini.rpmsave
CSP packages have been successfully uninstalled
Installing lsb-cprocsp-base-4.0.9963-5.noarch.rpm …
Installing lsb-cprocsp-rdr-64-4.0.9963-5.x86_64.rpm …
Adding new reader:
Nick name: FLASH
Name device: FLASH
Succeeded, code:0x0
Installing lsb-cprocsp-kc1-64-4.0.9963-5.x86_64.rpm …
Installing lsb-cprocsp-capilite-64-4.0.9963-5.x86_64.rpm …
Installing cprocsp-curl-64-4.0.9963-5.x86_64.rpm lsb-cprocsp-ca-certs-4.0.9963-5.noarch.rpm …
CSP packages have been successfully installed

Но когда после запускаю установку крипты все равно тоже сообщение!!!
запускаю установку командой: sudo ./install_gui.sh

Отредактировано пользователем 3 июня 2020 г. 16:08:17(UTC)
 | Причина: Не указана


Вверх


Offline

Санчир Момолдаев

 


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

3 июня 2020 г. 16:19:54(UTC)

Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 83 раз
Поблагодарили: 212 раз в 204 постах

тогда попробуйте так
sudo yum remove lsb
sudo yum install lsb-core-noarch
install_gui.sh

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


Вверх


Offline

Руслан Дзуцев

 


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

4 июня 2020 г. 10:06:10(UTC)

Руслан Дзуцев

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

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

Зарегистрирован: 17.08.2019(UTC)
Сообщений: 49
Откуда: Владикавказ

Сказал(а) «Спасибо»: 4 раз

Автор: Санчир Момолдаев Перейти к цитате

тогда попробуйте так
sudo yum remove lsb
sudo yum install lsb-core-noarch
install_gui.sh

Добрый день, пишет что удалять нечего:

sudo yum remove lsb:

[ruslan.dzutsev@w0340213 ~]$ sudo yum remove lsb
Пароль:
Загружены модули: fastestmirror, langpacks, rhnplugin
This system is receiving updates from RHN Classic or Red Hat Satellite.
Совпадений с lsb не найдено.
Пакетов, отмеченных для удаления, нет.

sudo yum install lsb-core-noarch:

[ruslan.dzutsev@w0340213 ~]$ sudo yum install lsb-core-noarch
Пароль:
Загружены модули: fastestmirror, langpacks, rhnplugin
This system is receiving updates from RHN Classic or Red Hat Satellite.
Loading mirror speeds from cached hostfile
centos7x64 | 1.0 kB 00:00
centos7x64epelnetinstall | 1.3 kB 00:00
centos7x64extras | 871 B 00:00
centos7x64netinstall | 1.0 kB 00:00
centos7x64spacewalkclientnetinstall | 871 B 00:00
googlechromex64 | 871 B 00:00
mzrepos | 871 B 00:00
nuxcentos7 | 871 B 00:00
safib-software | 871 B 00:00
Пакет redhat-lsb-core-4.1-27.el7.centos.1.x86_64 уже установлен, и это последняя версия.
Выполнять нечего


Вверх

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

Guest

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

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

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

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

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

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

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

Для работы нужна электронная подпись. Ключ — USB флешка. Для подписания документов нужна программа КриптоПро CSP 4.0 R3 — она есть в deb и rpm. В АУРЕ нет. Точно нет. Да искал. Нет не нашел.
Суть проблемы — скачал программу, формат linux-ia32_deb.tgz Софт: Наболевшее, установка .deb  .rpm, собственно как я понял архив. Распаковываем, и видим кучу .deb пакетов и файл install.sh Софт: Наболевшее, установка .deb  .rpm

Открываем install.sh и видим, то ли лицензию, то ли предупреждение и, как я понял (честно — не понял) инструкцию на исполнение установки, или как это называется

COMPAT_VERSION=«1.0.0-1»
VERSION=«4.0.*-5»
PACKAGE_NAMES=»»
FROM_REPO=0

# Exit codes.
SUCCESS=0
FAILURE=1
PACKAGES_NOT_AVAILABLE=2

parse_args() {
_enclosure=«kc1»
while! [ -z «$1» ]; do
case «$1» in
«kc1»)
;;
«kc2»)
_enclosure=«kc2»
;;
«—from-repo»)
FROM_REPO=1
;;
«-help»|»—help»)
show_help
exit «${SUCCESS}»
;;
*)
_additional_packages=»$*»
break
;;
esac
shift
done
PACKAGE_NAMES=«lsb-cprocsp-base
lsb-cprocsp-rdr lsb-cprocsp-${_enclosure} lsb-cprocsp-capilite cprocsp-curl
lsb-cprocsp-ca-certs
${_additional_packages}»
}

show_help() {
echo «
usage: ./install.sh [kc1|kc2] [package […]]
kc1: install kc1 packages (by default)
kc2: install kc2 packages
[package […]]: list of additional packages»
}

which_architecture() {
machine_architecture=»$(uname -m)»
case «${machine_architecture}» in
«x86_64»|«amd64»|«ppc64»|«ppc64le»)
bits_postfix=»-64″
;;
*)
bits_postfix=»»
;;
esac
case «${machine_architecture}» in
arm*)
is_arm=1
;;
*)
is_arm=0
;;
esac
}

check_if_debian_system() {
if [ -f /etc/debian_version ] ||
grep Ubuntu /etc/lsb-release > /dev/null 2>&1
then
is_debian_system=1
else
is_debian_system=0
fi
}

check_release_attributes() {
if ls ./lsb-cprocsp-base*.deb > /dev/null 2>&1; then
is_debian_release=1
else
is_debian_release=0
fi
if ls ./lsb-cprocsp-base*.rpm > /dev/null 2>&1; then
is_rpm_release=1
else
is_rpm_release=0
fi
if ls ./lsb-cprocsp-rdr-64* > /dev/null 2>&1; then
is_64_release=1
else
is_64_release=0
fi
}

# Use dpkg or alien on debian systems, otherwise use rpm.
set_inst_cmd() {
if [ «${is_debian_system}» -eq 1 ]; then
if [ «${is_debian_release}» -eq 1 ]; then
inst_cmd=«dpkg -i»
else
inst_cmd=«alien -kci»
fi
else
if [ «${is_rpm_release}» -eq 1 ]; then
inst_cmd=«rpm -i»
else
echo «Error: you are trying to install debian packages on not debian package system»
exit «${FAILURE}»
fi
fi
}

# The release variables are used to construct full names of packages.
set_release_variables() {
if [ «${is_debian_system}» -eq 1 ] &&
[ «${is_debian_release}» -eq 1 ]
then
first_delimeter=»_»
noarch=«all»
second_delimeter=»_»
extension=».deb»
else
first_delimeter=»-«
noarch=«noarch»
second_delimeter=».»
extension=».rpm»
fi
case «${machine_architecture}» in
# Enforce to install 64-bit packages on 64-bit system.
«x86_64»|«amd64»)
if [ «${is_debian_system}» -eq 1 ] &&
[ «${is_debian_release}» -eq 1 ]
then
arch=«amd64»
else
arch=«x86_64»
fi
;;
«ppc64»|«ppc64le»)
arch=»${machine_architecture}»
;;
arm*|«mips»)
arch=»${noarch}»
;;
*)
if [ «${is_debian_system}» -eq 1 ] &&
[ «${is_debian_release}» -eq 1 ]
then
arch=«i386»
elif ls ./*.i686.rpm > /dev/null 2>&1; then
arch=«i686»
else
arch=«i486»
fi
;;
esac
}

lsb_warning() {
echo «Warning: lsb-core or lsb-compat package not installed — installing cprocsp-compat-debian.
If you prefer to install system lsb-core or lsb-compat package then
* uninstall CryptoPro CSP
* install lsb-core or lsb-compat manually
* install CryptoPro CSP again
»
}

construct_compat_package() {
if [ -f /etc/cp-release ]; then
if grep Gaia /etc/cp-release > /dev/null 2>&1; then
_distr=«gaia»
else
_distr=«splat»
fi
elif [ -f /etc/altlinux-release ]; then
_distr=«altlinux${bits_postfix}»
elif [ -f /etc/os-rt-release ]; then
_distr=«osrt${bits_postfix}»
elif [ «${is_arm}» -eq 1 ]; then
_distr=«armhf»
elif [ «${is_debian_system}» -eq 1 ]; then
if dpkg -s lsb-core > /dev/null 2>&1 ||
dpkg -s lsb-compat > /dev/null 2>&1
then
compat_package=»»
return
else
lsb_warning
_distr=«debian»
fi
else
compat_package=»»
return
fi
compat_package=«cprocsp-compat-
${_distr}
${first_delimeter}
${COMPAT_VERSION}
${second_delimeter}
${noarch}
${extension}»
}

construct_other_packages() {
other_packages=»»
_absent=»»
for _name in ${PACKAGE_NAMES}; do
_package=»${_name}»
if [ «${is_64_release}» -eq 1 ]; then
_package=»${_package}${bits_postfix}»
fi
_package=»${_package}
${first_delimeter}
${VERSION}
${second_delimeter}
${arch}
${extension}»
# There are several packages which are NOT architecture-specific,
# e.g. lsb-cprocsp-base, lsb-cprocsp-ca-certs and devel-packages.
# If the architecture-specific package is not found, try to install
# the noarch package.
# shellcheck disable=SC2086
if! [ -f ${_package} ]; then
_package=»${_name}
${first_delimeter}
${VERSION}
${second_delimeter}
${noarch}
${extension}»
fi
# Even the noarch package wasn’t found.
# shellcheck disable=SC2086
if! [ -f ${_package} ]; then
_absent=»${_absent} ${_name}»
else
other_packages=»${other_packages} ${_package}»
fi
done
if! [ -z «${_absent}» ]; then
echo «Error: the following packages are not available in the current directory:»
echo «${_absent}» | xargs -n1 echo «*»
exit «${PACKAGES_NOT_AVAILABLE}»
fi
}

construct_list_of_packages() {
packages=»»
construct_compat_package
packages=»${packages} ${compat_package}»
# Other packages are the base packages and additional packages
# specified by command-line arguments.
construct_other_packages
packages=»${packages} ${other_packages}»
# Remove duplicate packages.
packages=»$(
echo «${packages}»
| awk ‘{for(i=1;i<=NF;i++)if(!a[$i]++)print $i}’ | xargs

}

check_fail() {
echo «Error: installation failed. LSB package may not be installed.
Install LSB package and reinstall CryptoPro CSP. If it does not help, please
read installation documentation or contact the manufacturer: support@cryptopro.ru.»
exit «$1»
}

# Install packages one at a time before capilite, then batch install.
install_packages() {
while! [ -z «${packages}» ]; do
_head=»$(echo «${packages}» | awk ‘{print $1}’)»
_tail=»$(echo «${packages}» | awk ‘{for(i=2;i<=NF;i++)print $i}’ | xargs)»
echo «Installing ${_head}…» >&2
# shellcheck disable=SC2086
${inst_cmd} ${_head} >&2 || check_fail «$?»
if echo «${_head}» | grep capilite > /dev/null 2>&1 &&
! [ -z «${_tail}» ]
then
echo «Installing ${_tail}…» >&2
# shellcheck disable=SC2086
${inst_cmd} ${_tail} >&2 || check_fail «$?»
return
fi
packages=»${_tail}»
done
}

construct_list_of_packages_from_repository() {
_tmp_repo=»$(mktemp)»
# Если файл со списком пакетов в репозитории существует и единственный, то скопировать его во временный файл _tmp_repo.
# shellcheck disable=SC2144
if [ -f /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages* ]; then
cp /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages* «${_tmp_repo}»
fi
# Если lz-архив со списком пакетов в репозитории существует и единственный, то разархивировать его во временный файл _tmp_repo.
# shellcheck disable=SC2144
if [ -f /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages*.lz ]; then
lzip -d -c /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages*.lz > «${_tmp_repo}»
fi
packages=»»
_absent=»»
for _name in ${PACKAGE_NAMES}; do
_package=»${_name}${bits_postfix}»
if! grep ‘Package:’ «${_tmp_repo}» | grep «${_package}» > /dev/null 2>&1
then
_package=»${_name}»
fi
if! grep ‘Package:’ «${_tmp_repo}» | grep «${_package}» > /dev/null 2>&1
then
_absent=»${_absent} ${_name}»
else
packages=»${packages} ${_package}»
fi
done
rm -f «${_tmp_repo}»
if! [ -z «${_absent}» ]; then
echo «Error: the following packages are not available in the current repository:»
echo «${_absent}» | xargs -n1 echo «*»
exit «${PACKAGES_NOT_AVAILABLE}»
fi
# Remove duplicate packages.
packages=»$(
echo «${packages}»
| awk ‘{for(i=1;i<=NF;i++)if(!a[$i]++)print $i}’ | xargs

}

main() {
if [ «$(id -u)» -ne 0 ]; then
echo «Error: this script must be run as root»
exit «${FAILURE}»
fi
cd «$(dirname «$0″)» || check_fail «$?»
parse_args «$@»
which_architecture
if [ «${FROM_REPO}» -eq 1 ]; then
construct_list_of_packages_from_repository
sh ./uninstall.sh >&2 || check_fail «$?»
# shellcheck disable=SC2086
apt-get —yes install ${packages} >&2 || check_fail «$?»
echo «CSP packages have been successfully installed from a repository»
exit «${SUCCESS}»
fi
check_if_debian_system
check_release_attributes
set_inst_cmd
set_release_variables
construct_list_of_packages
sh ./uninstall.sh >&2 || check_fail «$?»
install_packages
echo «CSP packages have been successfully installed»
exit «${SUCCESS}»
}

main «$@»

.
И собственно вопрос, как мне из всего этого собрать пакет для установки программы?

При попытке установить пакет lsb выходит сообщение такого рода (см. приложение), причем если попытаться установить lsb-desktop, то он будет просить другую зависимость, как решить эту проблему?

« Последнее редактирование: 13.12.2015 23:18:28 от SGx »


Записан


«Получить сведения» нажимали ?


Записан

Сноси Винду, переходи на Линукс ! :)


Не обновлён идекс.

apt-get updateили

«Получить сведения»


Записан



Записан


В тексте (у меня картинки на телефоне отключены) что выводится при

apt-repo
apt-get update
apt-get install lsb


Записан

Андрей Черепанов (cas@)


apt-repo

rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/ x86_64 classic
rpm [alt] http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/ noarch classic

apt-get update

Получено: 1 http://ftp.altlinux.org x86_64 release [915B]
Получено: 2 http://ftp.altlinux.org noarch release [709B]
Получено 1624B за 0s (7155B/s).                 
Найдено http://ftp.altlinux.org x86_64/classic pkglist
Найдено http://ftp.altlinux.org x86_64/classic release
Найдено http://ftp.altlinux.org noarch/classic pkglist
Найдено http://ftp.altlinux.org noarch/classic release
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено

apt-get install lsb

Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Некоторые пакеты установить невозможно. Это может означать, что Вы
потребовали невозможного, либо пользуетесь нестабильным репозиторием.
Часть необходимых пакетов либо ещё не создана, либо была удалена
из каталога 'Входящие'.

Так как для выполнения Вашего запроса достаточно одной операции, то
скорее всего этот пакет просто невозможно установить. Сообщите, пожалуйста,
об этом как о найденной ошибке в пакете.
Эти сведения могут помочь найти выход из ситуации:

Следующие пакеты имеют неудовлетворенные зависимости:
  lsb: Требует: lsb-desktop (= 4.0)
E: Извините, `битые' пакеты


Записан


А у меня в системе он уже установлен

# apt-get install lsb
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Последняя версия lsb уже установлена.
0 будет обновлено, 0 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено.
но у меня

# apt-repo
rpm [p7] http://mirror.yandex.ru/altlinux/p7/branch/ x86_64 classic
rpm [p7] http://mirror.yandex.ru/altlinux/p7/branch/ x86_64-i586 classic
rpm [p7] http://mirror.yandex.ru/altlinux/p7/branch/ noarch classic
и свежеустановленный x86_64 simply с обновлениями по сегодняшний день.
PS Память жрется по сравнению с i586 просто уйма, раза в два на глаз больше.

« Последнее редактирование: 13.12.2015 21:41:24 от sb »


Записан


У меня Сизиф, при установке Хрома требует этот пакет, но не в какую, а другие пакеты ставит.


Записан


apt-get install lsb-desktop


Записан

Андрей Черепанов (cas@)


apt-get install lsb-desktop

# apt-get install lsb-desktop
Чтение списков пакетов... Завершено
Построение дерева зависимостей... Завершено
Некоторые пакеты установить невозможно. Это может означать, что Вы
потребовали невозможного, либо пользуетесь нестабильным репозиторием.
Часть необходимых пакетов либо ещё не создана, либо была удалена
из каталога 'Входящие'.

Так как для выполнения Вашего запроса достаточно одной операции, то
скорее всего этот пакет просто невозможно установить. Сообщите, пожалуйста,
об этом как о найденной ошибке в пакете.
Эти сведения могут помочь найти выход из ситуации:

Следующие пакеты имеют неудовлетворенные зависимости:
  lsb-desktop: Требует: libQtNetwork.so.4()(64bit)
E: Извините, `битые' пакеты


Записан


Что-то у вас «левое» стоит?


Записан


И что вам мешает установить libqt4-network?


Записан


А у меня в системе он уже установлен

В первых сборках 7.0.x не было, потом добавили вроде бы.


Записан

Сноси Винду, переходи на Линукс ! :)


Проблема решилась таким способом: я обновил libqt4-core, при обновлении удалились пакеты которые мешали установке lsb. После этого пакет установился.


Записан


  • Печать

Страницы: [1]   Вниз

Тема: Не могу установить пакет lsb. [Решено]  (Прочитано 1008 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
batareika_if

Здравствуйте!
Установка драйвера (Эпсон) требует предварительной установки пакета lsb.
Вот что у меня получается:

Буду признателен за подсказку.

« Последнее редактирование: 18 Марта 2020, 11:48:25 от zg_nico »


Онлайн
andytux

Буду признателен за подсказку.

Она у вас перед глазами:

E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.

Пока не почините, не сможете установить ничего. Такое часто случается когда ставят программы из левых репозиториев. Левые, в данном случае, это все, кроме стандартных репозиториев данной версии *бунту.
Как лечить, поищите на форуме. Пишется едва-ли не каждый день. Примерно так:

apt install -f


Оффлайн
batareika_if

Попытки «ремонта» особым успехом не увенчались, а вот переустановка системы решила проблему полностью, принтер заработал.


  • Печать

Страницы: [1]   Вверх

Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Потихоньку назревает вопрос о приобретении УЭК.

Как я понял, для работы с картой на ПК должен стоять плагин для броузера, который на офф-сайте под Убунту собран (deb-пакет) и считывать смарт-карт. Теперь интересуюсь следующими вопросами:
Какой считыватель смарт-карт будет работать под Росой (64-хбитной) (если еще и под Android то вообще была бы сказка)?
Есть ли возможность собрать необходимый для работы плагин в RPM?


Аватара пользователя

akdengi

Сообщения: 1381
Зарегистрирован: 12 сен 2011, 13:44

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

akdengi » 24 дек 2013, 19:14

Зависит от исходников — если их нету, то возможно поможет раздеребанивание deb пакета. Хотя опять же тут проблема в версиях и линковке.


Аватара пользователя

tverskoy

Сообщения: 1145
Зарегистрирован: 12 сен 2011, 13:30
Operating system: Rosa 2016.1 Fresh
Откуда: Тверь

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

tverskoy » 25 дек 2013, 13:55

Если сильно надо, то для установки deb можно использовать alien


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 25 дек 2013, 14:20

CAPICOM бы ещё обойти…
Сбербанк вроде контора солидная, а работать с электронной подписью через windows заставляет… :(
Браузер для работы с торговыми площадками — только Internet Explorer.

Изображение


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 25 дек 2013, 19:24

ans писал(а):CAPICOM бы ещё обойти…
Сбербанк вроде контора солидная, а работать с электронной подписью через windows заставляет… :(
Браузер для работы с торговыми площадками — только Internet Explorer.

Wine, Crossover?

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 25 дек 2013, 20:46

Галахов Роман писал(а):
Wine, Crossover?

Если бы, …
А то сама техподержка ихняя говорит — только из win или виртуалбокс с win

Изображение


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 25 дек 2013, 21:02

ans писал(а):

Галахов Роман писал(а):
Wine, Crossover?

Если бы, …
А то сама техподержка ихняя говорит — только из win или виртуалбокс с win

А сами они пробовали Wine, Crossover?

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 26 дек 2013, 10:29

Галахов Роман писал(а):
А сами они пробовали Wine, Crossover?

Смысла нет. Работает только с IE MS Windows.
CAPICOM — снятый с поддержки элемент управления ActiveX, созданный Microsoft с целью помочь разработчикам приложений в получении доступа к услугам, которые позволяют обеспечить безопасность для приложений на основе криптографических функций http://ru.wikipedia.org/wiki/CAPICOM

Изображение


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 26 дек 2013, 19:37

А если IE в wine/crossover?

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 27 дек 2013, 08:39

akdengi писал(а):Зависит от исходников — если их нету, то возможно поможет раздеребанивание deb пакета. Хотя опять же тут проблема в версиях и линковке.

Это понятно.
Но вещь со временем может стать реально полезной.

tverskoy писал(а):Если сильно надо, то для установки deb можно использовать alien

Поставить deb не проблема.
Проблема с установкой его из репозитория. ;-)

ans писал(а):CAPICOM бы ещё обойти…

Для работы с электронным правительством вроде как и Firefox в Ubuntu подходит.

ans писал(а):Сбербанк вроде контора солидная, а работать с электронной подписью через windows заставляет… :(

Ну коль смогли только реализовать запрос ключа через реестр…

ans писал(а):Браузер для работы с торговыми площадками — только Internet Explorer.

Та же причина, что и со Сбером.


Аватара пользователя

akdengi

Сообщения: 1381
Зарегистрирован: 12 сен 2011, 13:44

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

akdengi » 28 дек 2013, 18:42

В репы мы можем ложить только то, что можно пересобрать. Как тут пересобрать то?


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 30 дек 2013, 12:59

akdengi писал(а):В репы мы можем ложить только то, что можно пересобрать. Как тут пересобрать то?

Хм. Я думал, что и тут так же все как и со стимом…

PS: С Наступающим.


Аватара пользователя

ДроноваЮ

Сообщения: 2636
Зарегистрирован: 01 июн 2011, 13:11
Operating system: Ubuntu/ROSA
Откуда: Москва

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ДроноваЮ » 30 дек 2013, 16:40

Yamah писал(а):Хм. Я думал, что и тут так же все как и со стимом…

Пристала к Саше по этому вопросу, и он сказал, можно по идее сделать прелоад, распаковку и ресборку как в skype, но тут требуется и железка ещё, то есть без считывателя УЭК сделать нереально. :pardon:
С наступающим всех последовательных пользователей РОСЫ! :beer:


PastorDi

Сообщения: 2743
Зарегистрирован: 25 авг 2011, 12:34
Operating system: IBM DOS, OS/2
Откуда: Санкт-Петербург
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

PastorDi » 07 янв 2014, 17:54

Мне кажется нам надо Вот это прикручивать. Судя по описанию он поддерживает CAPICOM. И после получения лицензии можно установить на линукс.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 07 янв 2014, 20:30

PastorDi писал(а):Мне кажется нам надо Вот это прикручивать. Судя по описанию он поддерживает CAPICOM. И после получения лицензии можно установить на линукс.

А если и банки заставят перейти на это, то банк-клиент для Linux станет реальностью — а это значительный сектор бытовой криптозащиты.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 22 янв 2014, 16:23

Кое-что уже проясняется:
1. CSUserPlugin.deb хоть с трудом, но конвертируется в RPM.
2. Но он нифига не работает в 64-хюитной системе. Буду пробовать в 32-хбитной запустить.


Аватара пользователя

akdengi

Сообщения: 1381
Зарегистрирован: 12 сен 2011, 13:44

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

akdengi » 22 янв 2014, 18:20

Скорее всего он 32-битный и надо какие то либы 32-битные доустановить.


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 22 янв 2014, 20:21

На форуме оффсайта читал, что работает только под 32-хбитным файерфоксом.
Попробую на нетбук поставить. Как раз и выясню, что он из 32-хбитных библиотек тянет.

UPD.
В 32-хбитной пакет сконвертировался, установился:

Код: Выделить всё

[root@netbook ~]# alien -v -r CSuserPlugin.deb --script
        dpkg-deb --info 'CSuserPlugin.deb' control 2>/dev/null
        dpkg-deb --info 'CSuserPlugin.deb' control 2>/dev/null
        dpkg-deb --info 'CSuserPlugin.deb' conffiles 2>/dev/null
        dpkg-deb --fsys-tarfile 'CSuserPlugin.deb' | tar tf -
        dpkg-deb --info 'CSuserPlugin.deb' postinst 2>/dev/null
        dpkg-deb --info 'CSuserPlugin.deb' postrm 2>/dev/null
        dpkg-deb --info 'CSuserPlugin.deb' preinst 2>/dev/null
        dpkg-deb --info 'CSuserPlugin.deb' prerm 2>/dev/null
        mkdir csuser-1.0.13.01
        chmod 755 csuser-1.0.13.01
        dpkg-deb -x CSuserPlugin.deb csuser-1.0.13.01
        rpm --showrc
        cd csuser-1.0.13.01; rpmbuild --buildroot='/root/csuser-1.0.13.01' -bb --target i386 'csuser-1.0.13.01-2.spec' 2>&1
Package build failed. Here's the log of the command (cd csuser-1.0.13.01; rpmbuild --buildroot='/root/csuser-1.0.13.01' -bb --target i386 'csuser-1.0.13.01-2.spec'):
Платформы для сборки: i386
Обрабатываются файлы: csuser-1.0.13.01-2.i586
/usr/lib/libjcPKCS11.so.1: Нет такого файла или каталога
Removing dependency on self: R libjcPKCS11.so.1
Provides: libacsccid.so.0 libjcPKCS11.so.1 libjcPKCS11x.so.1 npCSuser.so
Requires: libc.so.6 libc.so.6(GLIBC_2.0) libc.so.6(GLIBC_2.1) libc.so.6(GLIBC_2.1.3) libc.so.6(GLIBC_2.4) libdl.so.2 libdl.so.2(GLIBC_2.0) libdl.so.2(GLIBC_2.1) libgcc_s.so.1 libgcc_s.so.1(GCC_3.0) libgcc_s.so.1(GLIBC_2.0) libm.so.6 libm.so.6(GLIBC_2.0) libpcsclite.so.1 libpthread.so.0 libpthread.so.0(GLIBC_2.0) libpthread.so.0(GLIBC_2.1) libpthread.so.0(GLIBC_2.3.2) libstdc++.so.6 libstdc++.so.6(CXXABI_1.3) libstdc++.so.6(GLIBCXX_3.4) libstdc++.so.6(GLIBCXX_3.4.11) libstdc++.so.6(GLIBCXX_3.4.15) libstdc++.so.6(GLIBCXX_3.4.5) libstdc++.so.6(GLIBCXX_3.4.9)
Проверка на неупакованный(е) файл(ы): /usr/lib/rpm/check-files /root/csuser-1.0.13.01
warning: Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы):
        /csuser-1.0.13.01-2.spec
Записан: ../csuser-1.0.13.01-2.i586.rpm
Executing "/usr/bin/rpmlint -T -f /root/rpmbuild/SOURCES/csuser.rpmlintrc ../csuser-1.0.13.01-2.i586.rpm":
csuser.i586: E: unstripped-binary-or-object (Badness: 50) /usr/lib/mozilla/plugins/npCSuser.so

csuser.i586: E: summary-ended-with-dot (Badness: 50) C User version of plugin for Goverment service portal.

csuser.i586: E: standard-dir-owned-by-package (Badness: 50) /usr/lib

csuser.i586: E: standard-dir-owned-by-package (Badness: 50) /usr

csuser.i586: E: standard-dir-owned-by-package (Badness: 50) /

csuser.i586: E: standard-dir-owned-by-package (Badness: 50) /lib

csuser.i586: E: standard-dir-owned-by-package (Badness: 50) /usr/share

csuser.i586: E: standard-dir-owned-by-package (Badness: 50) /usr/share/doc

csuser.i586: W: spurious-executable-perm /usr/share/doc/libacsccid1/copyright

csuser.i586: W: spurious-executable-perm /usr/share/doc/libacsccid1/changelog.Debian.gz

csuser.i586: W: spurious-executable-perm /usr/share/doc/csuser/copyright

csuser.i586: W: spurious-executable-perm /usr/share/doc/libacsccid1/README.gz

csuser.i586: W: spelling-error Summary(en_US) plugin -> plug in, plug-in, plugging

csuser.i586: W: script-without-shebang /usr/lib/pcsc/drivers/ifd-acsccid.bundle/Contents/Info.plist

csuser.i586: W: script-without-shebang /lib/udev/rules.d/92-libacsccid1.rules

csuser.i586: E: non-standard-group (Badness: 50) Converted/lib

csuser.i586: E: non-standard-executable-perm (Badness: 1) /usr/lib/libjcPKCS11x.so.1.2.6 0775

csuser.i586: E: non-standard-executable-perm (Badness: 1) /usr/lib/libjcPKCS11.so.1.2.6 0775

csuser.i586: W: non-coherent-filename csuser-1.0.13.01-2.i586.rpm csuser-1.0.13.01-2-rosa2012.1.i586.rpm

csuser.i586: W: no-url-tag

csuser.i586: W: no-ldconfig-symlink /usr/lib/libjcPKCS11x.so.1.2.6

csuser.i586: W: no-ldconfig-symlink /usr/lib/libjcPKCS11.so.1.2.6

csuser.i586: W: invalid-license see /usr/share/doc/csuser/copyright

csuser.i586: E: description-line-too-long (Badness: 50) C  This package contains a cross-browser plug-in used by the portal of the Goverment service portal for use with carriers of digital signatures. PC/SC driver for ACS USB CCID smart card readers is included.

csuser.i586: W: dangerous-command-in-%preun rm

csuser.i586: W: dangerous-command-in-%pre rm

csuser.i586: W: dangerous-command-in-%post mv

1 packages and 0 specfiles checked; 12 errors, 15 warnings.
(none): E: badness 502 exceeds threshold 49.
error: Package check "/usr/bin/rpmlint -T -f /root/rpmbuild/SOURCES/csuser.rpmlintrc ../csuser-1.0.13.01-2.i586.rpm" failed.


Ошибки сборки пакетов:
    Обнаружен(ы) установленный(е) (но не упакованный(е)) файл(ы):
        /csuser-1.0.13.01-2.spec
    Package check "/usr/bin/rpmlint -T -f /root/rpmbuild/SOURCES/csuser.rpmlintrc ../csuser-1.0.13.01-2.i586.rpm" failed.
        find csuser-1.0.13.01 -type d -exec chmod 755 {} ;
        rm -rf csuser-1.0.13.01

[root@netbook ~]# urpmi csuser-1.0.13.01-2.i586.rpm
Пакеты glibc-2.15-8-rosa2012.1.i586, libgcc1-4.7.3_2012.10-3.1-rosa2012.1.i586, libpcsclite1-1.8.6-1-rosa2012.1.i586, libstdc++6-4.7.3_2012.10-3.1-rosa2012.1.i586 уже установлен


устанавливается csuser-1.0.13.01-2.i586.rpm
Подготовка...                    #############################################################################
      1/1: csuser 

Но в списках плагинов его так и нет.

Для работы ему похоже еще нужен рутокен

Для работы электронных идентификаторов Рутокен в deb-based системе должны быть установлены: библиотека libccid не ниже 1.3.11, пакеты pcscd и libpcsclite1.

Для работы в RPM-based системе должны быть установлены: пакеты ccid, pcscd и pcsc-lite.

Тут есть инструкция для настройки Firefox-а для работы с CSUserPlugin.
Пока проверить не могу — нет ни карты, ни картридера.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 09 май 2014, 00:45

Pulfer писал(а):
В принципе, локально я пакет собрал, но когда собрался тестировать, то увидел вот что:

Плагин вроде как работает, но «Для использования УЭК необходимо загрузить и установить криптопровайдер КриптоПро УЭК CSP». Версия которого только под Windows!!! Я в шоке. Это получается, что плагин есть под Linux и MacOS, а самого пакета Крипто-про Уэк CSP так и нет под них.

Для УЭК нужна спец-версия на основе 3.6.1, которая есть только под Windows. Версию под Линукс нужно у тех.поддержки выпрашивать, насколько я понял. Так что забил…

http://forum.altlinux.org/index.php/top … #msg224791

Так что не понятно, что с этим делать.

Отписался на форум Криптопро http://www.cryptopro.ru/forum2/default. … #post48599
Написал обращение по форме «Обратная связь» на сайте https://www.roi.ru/
Про версию 3.6.1 пока нашел, только подобное:
https://support.cryptopro.ru/index.php? … u—rutoken
http://www.cryptopro.ru/forum2/default. … #post46117
Но не знаю это именно про УЭК версию или нет.
Пока буду ждать ответов на посланные сообщения (на форум и сайт). Как ответят отпишусь.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 13 май 2014, 20:20

Смог раскачать ситуацию. Мне Ответили

Прикладываю присланный файл.

Pulfer посмотрите, пожалуйста, может это именно то недостающее в цепочке звено, чтобы получать госуслуги и в Linux? Если у вас не хватает времени, думаю можно обратиться за помощью и на Linuxforum/Unixforum. Наверняка захотят и в свои дистрибутивы добавить эту поддержку. Если все заработает нормально, думаю, сможем договориться с Криптопро об умеренных тарифах или вообще бесплатности пользования, за тестирование с нашей стороны.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 15 май 2014, 23:14

Кто нибудь уже имеет карту УЭК и картридер к ней? Нужно проверить работу программы криптопро и плагина для браузера (сайт госуслуги).

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 20 май 2014, 06:30

Галахов Роман писал(а):

PastorDi писал(а):Мне кажется нам надо Вот это прикручивать. Судя по описанию он поддерживает CAPICOM. И после получения лицензии можно установить на линукс.

А если и банки заставят перейти на это, то банк-клиент для Linux станет реальностью — а это значительный сектор бытовой криптозащиты.

Как их заставить, если всё настроено под windows?

Для примера почитать инструкции по настройке электронной торговой площадки Сбербанка (российского сбербанка!!!!):

то только Windows, без вариантов.

Представляете — это всё за деньги, и уже куплено для работы в windows.

Изображение


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 20 май 2014, 19:40

ans писал(а):
то только Windows, без вариантов.

Представляете — это всё за деньги, и уже куплено для работы в windows.

Я сей час мучаю Linux плагин к сайту госуслуг и электронную подпись. Почти доделал. По УЭК — мне дали предварительную версию программы (в моем предыдущем посте), но проверить не могу — карты и картридера пока нет.
Но думаю и тут можно сделать, так что не так страшна проблема.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


antichrist

Сообщения: 80
Зарегистрирован: 22 авг 2012, 11:26
Operating system: Ubuntu 12.04, Роса Desctop 2012

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

antichrist » 21 май 2014, 04:20

Галахов Роман писал(а):

ans писал(а):
то только Windows, без вариантов.

Представляете — это всё за деньги, и уже куплено для работы в windows.

Я сей час мучаю Linux плагин к сайту госуслуг и электронную подпись. Почти доделал. По УЭК — мне дали предварительную версию программы (в моем предыдущем посте), но проверить не могу — карты и картридера пока нет.
Но думаю и тут можно сделать, так что не так страшна проблема.

Ну как успехи? Хотел тоже поковырять все руки не доходят. Интересует работа с сайтом госзакупки и аст-сбербанк. Иногда девушка берет работу на дом, приходится для этого держать винду в виртуалке.


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 21 май 2014, 05:57

Я сейчас жду картридер (карту уже получил).
В городе фиг найдешь.


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 21 май 2014, 06:38

antichrist писал(а): аст-сбербанк

Я пробовал, но windows пока победил без вариантов.

Изображение


antichrist

Сообщения: 80
Зарегистрирован: 22 авг 2012, 11:26
Operating system: Ubuntu 12.04, Роса Desctop 2012

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

antichrist » 21 май 2014, 07:57

ans писал(а):

antichrist писал(а): аст-сбербанк

Я пробовал, но windows пока победил без вариантов.

Печаль =(…


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 21 май 2014, 08:58

antichrist писал(а):
Печаль =(…

остаётся надеяться, что с последними событиями (санкции США) начнут делать сервис и для линукс.
Например, сделать как прагматичные соседи «Китай официально запретил использовать Windows 8 на всех правительственных компьютерах. Информационное агентство Xinhua, один из медиарупоров Китая, сообщило, что этот шаг был предпринят для того, чтобы повысить уровень госбезопасности.» http://apparatmag.com/news/china-bans-windows-8/

И даже есть такое: «Представитель правительства упомянул Россию как одну из стран, в которых уже начался переход на Linux.»
http://it.tut.by/398848
Типа мы образец. :shock:

Последний раз редактировалось ans 21 май 2014, 09:10, всего редактировалось 1 раз.

Изображение


antichrist

Сообщения: 80
Зарегистрирован: 22 авг 2012, 11:26
Operating system: Ubuntu 12.04, Роса Desctop 2012

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

antichrist » 21 май 2014, 09:09

ans писал(а):

antichrist писал(а):
Печаль =(…

остаётся надеяться, что с последними событиями (санкции США) начнут делать сервис и для линукс.
Например, сделать как прагматичные соседи «Китай официально запретил использовать Windows 8 на всех правительственных компьютерах. Информационное агентство Xinhua, один из медиарупоров Китая, сообщило, что этот шаг был предпринят для того, чтобы повысить уровень госбезопасности.» http://apparatmag.com/news/china-bans-windows-8/

И даже есть такое: «Представитель правительства упомянул Россию как одну из стран, в которых уже начался переход на Linux.» :shock:
http://it.tut.by/398848

Как раз все эти дот неты и капикомы тормозят развитие it области в гос. секторе


Аватара пользователя

ans

Сообщения: 2719
Зарегистрирован: 11 сен 2011, 08:42
Operating system: Rosa
Откуда: Ekaterinburg
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

ans » 21 май 2014, 09:14

antichrist писал(а):
Как раз все эти дот неты и капикомы тормозят развитие it области в гос. секторе

Слишком много пилили под Windows, и не думали о последствиях. А MS за это доплачивал(скидки делал).

Изображение


antichrist

Сообщения: 80
Зарегистрирован: 22 авг 2012, 11:26
Operating system: Ubuntu 12.04, Роса Desctop 2012

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

antichrist » 21 май 2014, 09:33

ans писал(а):

antichrist писал(а):
Как раз все эти дот неты и капикомы тормозят развитие it области в гос. секторе

Слишком много пилили под Windows, и не думали о последствиях. А MS за это доплачивал(скидки делал).

Я достаточно поработал в гос. структурах, там даже некоторый софт под вин 7 не работает, не говоря про линукс =). Закупают лицензию 7ки с даунгрейдом до хр.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 21 май 2014, 23:51

antichrist писал(а):
Ну как успехи? Хотел тоже поковырять все руки не доходят. Интересует работа с сайтом госзакупки и аст-сбербанк. Иногда девушка берет работу на дом, приходится для этого держать винду в виртуалке.

По последней переписке с техподдержкой выяснилось, что нужен LSB 3.2, 4.0, а у нас или 2 или 4.1
Плагины Pulfer пересобрал x86_64 http://abf-downloads.rosalinux.ru/impor … n/release/ i586 http://rghost.ru/55151001
Сам пока остановился на этом:
Используемые браузеры ROSA — firefox 28, XP ie8.
1) Зашел на сайт (вход в личный кабинет)
2) Вставил ключ в usb
3) Нажал «По электронной подписи»
Вылезло окно ввода pin кода и тут же идет перенаправление на страницу с плагинами
4) Установил плагин
5) Перезагрузил браузер
6) Зашел на сайт (вход в личный кабинет)
7) Вставил ключ в usb
8) Нажал «По электронной подписи»
9) Нажимаю «войти»
Получаю:

снимок7Б.png

При этом про pin код ничего не выводится, хотя в памятке к ключу указан pin по умолчанию и, что его надо сменить. Получается его надо вводить при каждом входе. А страницы ввода pin — нет. Может по этому и не находит сертификат?

На данный момент жду решения вопроса с LSB.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 22 май 2014, 09:48

В заявлении ALT идет речь о

В результате тестирования было подтверждено, что обновленная версия сертифицированного ФСТЭК дистрибутива Альт Линукс СПТ 6.0 полностью совместима с КриптоПро CSP 3.6 R2, сертифицированным ФСБ.

Который стоит дорого, кто знает может и наши спец. версии совместимы — только вы купили бы их за предложенную цену?
А если читать их форум http://forum.altlinux.org/index.php/top … #msg224791 ?
Я предварительную версию выпросил http://forum.rosalab.ru/posting.php?mod … 10#pr27549
Установка:

Так. Чистая, только, что установленная Rosa Fresh R2 LXDE, обновленная до последних обновлений:
1-я попытка

Код: Выделить всё

[root@r-VirtualBox uec_linux_x86]# ./install_uec.sh
Installing lsb-cprocsp-base-3.9.0-4.noarch.rpm...
error: Failed dependencies:
   lsb >= 3.0 нужен для lsb-cprocsp-base-3.9.0-4.noarch
  Installation failed. LSB package may not be installed.
  Install LSB package and reinstall CryptoPro CSP. If it does not help, please
  read installation documentation or contact the manufacturer: support@cryptopro.ru. 

Установил LSB 4.1 (стояла 2(даже после обновления)
2-я попытка

Код: Выделить всё

    root@r-VirtualBox uec_linux_x86]# sh install_uec.sh
    Installing lsb-cprocsp-base-3.9.0-4.noarch.rpm...
    Installing lsb-cprocsp-rdr...
    Adding new reader:
    Nick name: FLASH
    Name device: FLASH
    Succeeded, code:0x0
    Installing lsb-cprocsp-capilite...
    Installing lsb-cprocsp-kc1...
    Installing lsb-cprocsp-fkc...
    Installing cprocsp-rdr-pcsc...
    Installing cprocsp-rdr-uec...
    Certmgr 1.0 (c) "CryptoPro",  2007-2010.
    program for managing certificates, CRLs and stores

    Install:
    =============================================================================
    1-------
    Issuer            : OGRN=1037700085444, INN=007717107991, STREET="ул. Сущёвский вал, д. 16, стр. 5", E=uecard@cryptopro.ru, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN=УЦ УЭК
    Subject           : OGRN=1037700085444, INN=007717107991, STREET="ул. Сущёвский вал, д. 16, стр. 5", E=uecard@cryptopro.ru, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN=УЦ УЭК
    Serial            : 0x072DD2AE7A6BB7A443F4F06852F404AA
    SHA1 Hash         : 0xfedc83c35fa928a8bdcf73b56eebae8ae19f0bbf
    Not valid before  : 16/11/2012  08:26:11 UTC
    Not valid after   : 16/11/2027  08:35:29 UTC
    PrivateKey Link   : No
    =============================================================================

    [ErrorCode: 0x00000000]
    Certmgr 1.0 (c) "CryptoPro",  2007-2010.
    program for managing certificates, CRLs and stores

    Install:
    =============================================================================
    1-------
    Issuer            : OGRN=1037700085444, INN=007717107991, STREET=ул. Сущёвский вал д. 18, E=uecard@cryptopro.ru, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN=УЦ УЭК
    Subject           : OGRN=1037700085444, INN=007717107991, STREET=ул. Сущёвский вал д. 18, E=uecard@cryptopro.ru, C=RU, S=г. Москва, L=Москва, O="ООО ""КРИПТО-ПРО""", CN=УЦ УЭК
    Serial            : 0x1B3260A7B17EABA543A80449A1D3D77F
    SHA1 Hash         : 0xb9ef4f166257a1a986cbfae17e01e3881dae6279
    Not valid before  : 30/01/2014  14:38:36 UTC
    Not valid after   : 29/01/2029  14:47:54 UTC
    PrivateKey Link   : No
    =============================================================================

    [ErrorCode: 0x00000000] 

Только, что за ошибка [ErrorCode: 0x00000000] — я не знаю. Может картридера не видит?
Задействованные папки: (файлов очень много даю папки)
/ect/init.d/cprocsp
/ect/opt/cprocsp
/ect/profile.d/cprocsp.sh
/opt/cprocsp
/var/opt/cprocsp

Но получить карту пока не могу.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Aesculapius

Сообщения: 279
Зарегистрирован: 28 апр 2013, 07:24
Operating system: ROSA.Desktop.Fresh.2012.x86_64
Откуда: Оттуда/From there

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Aesculapius » 22 май 2014, 10:24

Т.е. Вам нужен LSB 3.2 или 4.0?


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 22 май 2014, 10:26

Aesculapius писал(а):Т.е. Вам нужен LSB 3.2 или 4.0?

Получается да.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Aesculapius

Сообщения: 279
Зарегистрирован: 28 апр 2013, 07:24
Operating system: ROSA.Desktop.Fresh.2012.x86_64
Откуда: Оттуда/From there

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Aesculapius » 22 май 2014, 10:37

Галахов Роман писал(а):

Aesculapius писал(а):Т.е. Вам нужен LSB 3.2 или 4.0?

Получается да.

Может здесь поискать. Ещё здесь. Не знаю, то или не то.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 22 май 2014, 11:00

Aesculapius писал(а):
Может здесь поискать. Ещё здесь. Не знаю, то или не то.

Увы там только testkit а не релиз. Возможно в Марафоне есть, но как от туда достать + зависимости нужна пересборка под Fresh.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Aesculapius

Сообщения: 279
Зарегистрирован: 28 апр 2013, 07:24
Operating system: ROSA.Desktop.Fresh.2012.x86_64
Откуда: Оттуда/From there

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Aesculapius » 22 май 2014, 11:12

Прошу прощения за назойливость. Мне стало интересно про эту УЭК. Я так понял помимо УЭК требуется ещё считыватель смарт-карт и к нему прилагается драйвер, даже под Линукс есть.


Аватара пользователя

Aesculapius

Сообщения: 279
Зарегистрирован: 28 апр 2013, 07:24
Operating system: ROSA.Desktop.Fresh.2012.x86_64
Откуда: Оттуда/From there

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Aesculapius » 22 май 2014, 11:17

Моя последняя попытка Вам помочь. Если ещё вот тут пробежаться.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 22 май 2014, 15:15

Aesculapius писал(а):Моя последняя попытка Вам помочь. Если ещё вот тут пробежаться.

Не я в такую даль не полезу.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 20 янв 2015, 20:54

Ой, блин! Что-то я не могу разобраться с настройкой КриптоПРО для УЭК.
Использовал инструкцию с форума AltLinux. Поставил пакеты, а контейнер не создается.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 21 янв 2015, 07:36

Yamah писал(а):Ой, блин! Что-то я не могу разобраться с настройкой КриптоПРО для УЭК.
Использовал инструкцию с форума AltLinux. Поставил пакеты, а контейнер не создается.

Fresh? Может тоже, что и у меня было:

По последней переписке с техподдержкой выяснилось, что нужен LSB 3.2, 4.0, а у нас или 2 или 4.1

Но я ставил на реальную систему и в дебри других ОС лезть не захотел.
А так как спец. версии сделаны на основе Марафона — в нем не должно быть проблем.

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 21 янв 2015, 16:40

Пока метод «сделать тоже самое в совсем оффтопике» выдал результат, что на карте просто нет контейнера с ЭЦП. Почему и как надо разбираться.


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 02 фев 2015, 13:59

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


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 06 фев 2015, 07:14

Таки добился того, что бы УЖК читалась плагином броузера для работы с КриптоПРО (Спасибо сообществам AltLinux и КриптоПРО). Но подписать им сообщение на тестовой странице не смог.
Хотя с консоли подписать файл смог. (Похоже нужно писать гую для этого.)

А на портале Госуслуг при попытке зайти с УЭК меня отфутболивает с заявлением, что действующих сертификатов у меня не найдено. написал им в ТП.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 06 фев 2015, 18:59

Yamah писал(а):
А на портале Госуслуг при попытке зайти с УЭК меня отфутболивает с заявлением, что действующих сертификатов у меня не найдено. написал им в ТП.

Я тоже остановился на этом (сертификат до мая 2015).
И писал им об этом

Вот, что ответили

Это был май 2014 го. Я так и не смог найти нужные LSB

По последней переписке с техподдержкой выяснилось, что нужен LSB 3.2, 4.0, а у нас или 2 или 4.1

Скорее всего и вас на этом остановят. Думаю, что без решения вопроса по LSB — ошибка не уйдет.
Если сможете запустить ключ на госуслугах, опишите как, мне этот вопрос тоже интересен (каждый раз вводить снилс и пароль нехочется :) ).

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 07 фев 2015, 20:38

Код: Выделить всё

lsb_release -a
LSB Version:    core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:[b]core-4.0-amd64[/b]:[b]core-4.0-noarch[/b]:core-4.1-amd64:core-4.1-noarch:core-5.0-amd64:core-5.0-noarch:cxx-3.1-amd64:cxx-3.1-noarch:cxx-3.2-amd64:cxx-3.2-noarch:graphics-3.1-amd64:graphics-3.1-noarch:graphics-3.2-amd64:graphics-3.2-noarch:lsb-2.0-amd64:lsb-2.0-noarch:lsb-3.0-amd64:lsb-3.0-noarch:lsb-3.1-amd64:lsb-3.1-noarch:lsb-3.2-amd64:lsb-3.2-noarch:[b]lsb-4.0-amd64[/b]:lsb-4.0-noarch:lsb-4.1-amd64:lsb-4.1-noarch:lsb-5.0-amd64:lsb-5.0-noarch
Distributor ID: RosaDesktopFresh
Description:    ROSA Desktop Fresh R5
Release:        2014.1
Codename:       belka

Что им еще нужно?


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 07 фев 2015, 23:37

Yamah писал(а):

Код: Выделить всё

lsb_release -a
LSB Version:    core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:[b]core-4.0-amd64[/b]:[b]core-4.0-noarch[/b]:core-4.1-amd64:core-4.1-noarch:core-5.0-amd64:core-5.0-noarch:cxx-3.1-amd64:cxx-3.1-noarch:cxx-3.2-amd64:cxx-3.2-noarch:graphics-3.1-amd64:graphics-3.1-noarch:graphics-3.2-amd64:graphics-3.2-noarch:lsb-2.0-amd64:lsb-2.0-noarch:lsb-3.0-amd64:lsb-3.0-noarch:lsb-3.1-amd64:lsb-3.1-noarch:lsb-3.2-amd64:lsb-3.2-noarch:[b]lsb-4.0-amd64[/b]:lsb-4.0-noarch:lsb-4.1-amd64:lsb-4.1-noarch:lsb-5.0-amd64:lsb-5.0-noarch
Distributor ID: RosaDesktopFresh
Description:    ROSA Desktop Fresh R5
Release:        2014.1
Codename:       belka

Что им еще нужно?

У меня сейчас также — тогда как проверить не знал. (да и не было в R3 наверное).
Кстати, у вас ключ включен (светодиод горит)? Я включаю,загорается, но сразу выключается + не могу пробросить в VBox, похоже система перестает видеть usb-ключ, хотя по началу видит:

Код: Выделить всё

[21278.441969] usb 2-1.1: new full-speed USB device number 9 using ehci-pci
[21278.529599] usb 2-1.1: New USB device found, idVendor=24dc, idProduct=0101
[21278.529604] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[21278.529605] usb 2-1.1: Product: JaCarta
[21278.529607] usb 2-1.1: Manufacturer: ARDS

У вас так же?

+ поддержка госуслуг отводит на проверку решения вопроса 3 дня (тогда я при поиске LSB просрочил ответ). Может вам повезет :)

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 08 фев 2015, 15:52

Галахов Роман писал(а):
У меня сейчас также — тогда как проверить не знал. (да и не было в R3 наверное).
Кстати, у вас ключ включен (светодиод горит)? Я включаю,загорается, но сразу выключается + не могу пробросить в VBox, похоже система перестает видеть usb-ключ, хотя по началу видит:

Код: Выделить всё

[21278.441969] usb 2-1.1: new full-speed USB device number 9 using ehci-pci
[21278.529599] usb 2-1.1: New USB device found, idVendor=24dc, idProduct=0101
[21278.529604] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[21278.529605] usb 2-1.1: Product: JaCarta
[21278.529607] usb 2-1.1: Manufacturer: ARDS

У вас так же?

+ поддержка госуслуг отводит на проверку решения вопроса 3 дня (тогда я при поиске LSB просрочил ответ). Может вам повезет :)

У меня ридер: ACR38UH1

Код: Выделить всё

[18719.312489] usb 7-1: new full-speed USB device number 3 using ohci-pci
[18719.462476] usb 7-1: New USB device found, idVendor=072f, idProduct=90cc
[18719.462480] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[18719.462482] usb 7-1: Product: CCID USB Reader
[18719.462483] usb 7-1: Manufacturer: ACS

При подключении устройства горит красный светодиод, зеленый мегает раз в 1,5 секунды.
При установки карты ничего не меняется. Зеленый начинает активнее мигать, когда какое-либо ПО читает данные с карты.
Мне удалось подписать ЭЦП-шкой файлы.

В VirtualBox вообще не подбрасывается — картридер виден в хостевой системе, но в VB этого девайса вообще нет.


Аватара пользователя

Галахов Роман

Сообщения: 2332
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Галахов Роман » 08 фев 2015, 19:55

Yamah писал(а):
У меня ридер: ACR38UH1

Код: Выделить всё

[18719.312489] usb 7-1: new full-speed USB device number 3 using ohci-pci
[18719.462476] usb 7-1: New USB device found, idVendor=072f, idProduct=90cc
[18719.462480] usb 7-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[18719.462482] usb 7-1: Product: CCID USB Reader
[18719.462483] usb 7-1: Manufacturer: ACS

При подключении устройства горит красный светодиод, зеленый мегает раз в 1,5 секунды.
При установки карты ничего не меняется. Зеленый начинает активнее мигать, когда какое-либо ПО читает данные с карты.
Мне удалось подписать ЭЦП-шкой файлы.

В VirtualBox вообще не подбрасывается — картридер виден в хостевой системе, но в VB этого девайса вообще нет.

Фото-0014.jpg

Получал в Москве (Сущевский вал), как и большинство.
А вы имеете, как я понял, полноценный ридер для УЭК
Почему то не проверенный в УЭК ( смотрите доп список) http://www.cryptopro.ru/faq/spisok-podd … boty-s-uek

Проверил ключ на 8ке — работает. Причем индикатор горел все время, а в момент чтения мигал.
Попробовал на старом нетбуке с ubuntu (у брата) — плагин установить не смог (много требует обновлять), но одно заметил сразу — светодиод горел все время, пока ключ был вставлен, а не выключался через 1 сек после подключения ключа.
Почему не работает у нас не знаю, но похоже связано с подсистемой USB (прерывается подача питания)
https://linux-hardware.org/?probe=92a6009cc0
Вот он в Dmesg:

Код: Выделить всё

[ 8868.891613] usb 2-1.1: USB disconnect, device number 7
[ 8873.677050] usb 2-1.1: new full-speed USB device number 8 using ehci-pci
[ 8873.764549] usb 2-1.1: New USB device found, idVendor=24dc, idProduct=0101
[ 8873.764555] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8873.764557] usb 2-1.1: Product: JaCarta
[ 8873.764559] usb 2-1.1: Manufacturer: ARDS 

Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))


Аватара пользователя

Yamah

Сообщения: 1373
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: УЭК: ПО и оборудование работающее под управлением Rosa Fresh?

Сообщение

Yamah » 09 фев 2015, 19:12

Полноценный ридер. Проверенный (ссылка есть на сайте УЭК), работающий в Linux,MacOS X,Android.

Получал в Москве (Сущевский вал), как и большинство.

Мне до Москвы далековато (и дороговато) ехать за одной картой. (Скорее всего два раза). :)

Почему не работает у нас не знаю, но похоже связано с подсистемой USB (прерывается подача питания)

Я в любой момент могу запустить программу подписи файла. Она вызывает окошко (разработчики КриптоПРО даже забыли убрать оттуда «Привет Ку» или что типа этого), где я ввожу пароль от ЭЦП-шки. После этого зеленый диод на ридере очень быстро мигает несколько секунд. В итоге рядом с отправленным на подпись файлом появляется его подписанная копия с расширением sign.

Завтра в ТП ГосУслуг направлю экспортнутый публичный сертификат по их просьбе. (Им он нужен в формате DER, и инструкцию для его получения дают исключительно под Windows.)


I have an Epson ET-2600 printer at home. I tried configuring it using CUPS, but the printing is very slow and constantly in a very high quality (which results in a lot of ink being wasted). I tried to download the .deb packages from here, but it requires the lsb package which I cannot retrieve. I currently have Debian 10 installed. I tried to put in my /etc/apt/sources.list the link for Debian Jessie and running sudo apt install lsb, but it did not work.

Any ideas on how I can get a better working open driver or the lsb package to install the official Epson driver?

Thanks in advance.

asked Oct 7, 2019 at 14:29

LuxGiammi's user avatar

2

The package lsb is deprecated , debian recommend to create the deb package through alien (from rpm):

e,g (redhat-lsb):

sudo apt install alien
wget http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/redhat-lsb-4.1-47.el8.x86_64.rpm
sudo alien --to-deb -c redhat-lsb-4.1-47.el8.x86_64.rpm
sudo apt install ./redhat-lsb_4.1-48_amd64.deb

Debian discontinued LSB support in 2015 …

LSB applications are provided in either the RPM package format or in an LSB-compliant self-installing executable. In the case of RPM packages, use the alien(1) tool to convert the rpm to a Debian package and then install normally. Make sure to use the -c option to alien to ensure that package scripts are converted as well.

Debian LSB

answered Oct 7, 2019 at 14:47

GAD3R's user avatar

GAD3RGAD3R

60.9k30 gold badges126 silver badges189 bronze badges

2

LSB or Linux Standard Base support in Debian has been discontinued as of 2015
. They have kept some of the features in the packages lsb-base and lsb-release.

While not especially dangerous, I would recommend that you stick to only using Debian stable repositories and remove the Jessie sources from your /etc/apt/sources.list. After you have done that (and updated apt with apt update), you can install these packages with apt install lsb-base lsb-release.

Now test installing your printer drivers and see if they work.

However, I am not sure if this will provide the necessary LSB feature set that your printer may need. You can also choose to go to the LSB main site and download and install the latest version of LSB manually if necessary.

I will recommend that if you need to support specific hardware not supported by Debian it may be best to change over to a Linux distro that supports your hardware. Your printer currently works using CUPS, however you are complaining that the configuration wastes ink and print jobs takes too long. You should look into or ask about how to get your CUPS configuration to a more desirable state if this solution does not work.

answered Oct 7, 2019 at 14:47

kemotep's user avatar

kemotepkemotep

4,9507 gold badges16 silver badges34 bronze badges

2

My take: I installed an lsb-compat forward port deb package package which provides lsb. I downloaded it from an MX Linux forum: https://forum.mxlinux.org/viewtopic.php?f=104&t=55746&hilit=lsb+compat#p555628

I was able to install the epson-inkjet-printer-scpr and the epson-printer-utility packages obtained from Epson after that. Shame on the printer manufacturers that they make us go through such hoops.

For the record I’m using https://devuan.org/ ceres, so I’m not with Linux Mint. Devuan is a Debian derivative.

answered Sep 15, 2020 at 23:43

Csaba Toth's user avatar

Возникла задача — добавить в нашу МИС интеграцию с сервисом ФСС по обработке электронных больничных — здесь описание.
МИСка наша крутится на сервере с линуксом. Реализовать взаимодействие с сервисом оказалось в итоге не просто.
Опытом своим хочу поделиться

Возникла задача — добавить в нашу МИС интеграцию с сервисом ФСС по обработке электронных больничных — здесь описание.
МИСка наша крутится на сервере с линуксом. Реализовать взаимодействие с сервисом оказалось в итоге не просто.
Опытом своим хочу поделиться

Статья пока незакончена, в процессе….

У меня сервер на CENTOS достаточно старенький конечно — ну что поделать, так исторически сложилось©, работать то надо.

1 шаг. Установка Крипто-Про
Скачиваем и устанавливаем Крипто-Про
У меня лицензия на 4-ю версию, поэтому берем ее — https://www.cryptopro.ru/products/csp/downloads#latest_csp40r4_linux
Выбор пал на КриптоПро CSP 4.0 для Linux (x64, rpm) https://www.cryptopro.ru/sites/default/files/private/csp/40/9963/linux-amd64.tgz
Также нам понадобится КриптоПро ЭЦП SDK 2.0 (нам нужна поддержка ГОСТ-2012 — в более ранних версиях ее нет) https://www.cryptopro.ru/products/cades/downloads
выбор опять же пал на — Linux 64 бита https://www.cryptopro.ru/sites/default/files/products/cades/current_release_2_0/cades_linux_amd64.tar.gz

Также на всякий случай лучше запастись stunnel-msspi https://www.cryptopro.ru/products/other/stunnel-msspi,
нам он понадобился в следующем проекте с МДЛП о котором я расскажу вот здесь (типа ссылка тут будет)
Закидываем скаченные архивы на сервер, распаковываем — там куча rpm-ок

[root@bars srv]# tar -xf linux-amd64.tgz
[root@bars srv]# cd linux-amd64
[root@bars linux-amd64]# ls -la
total 21360
drwxr-xr-x  2 nobody nobody    4096 Nov 23  2018 .
drwxr-xr-x. 4 root   root      4096 Jun  5 11:23 ..
-rw-r--r--  1 nobody nobody    2203 Nov 23  2018 cprocsp-compat-altlinux-64-1.0.0-1.noarch.rpm
-rw-r--r--  1 nobody nobody 3202690 Nov 23  2018 cprocsp-cpopenssl-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   12244 Nov 23  2018 cprocsp-cpopenssl-base-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody  323564 Nov 23  2018 cprocsp-cpopenssl-devel-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody   39404 Nov 23  2018 cprocsp-cpopenssl-gost-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody  417875 Nov 23  2018 cprocsp-curl-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody 2089134 Nov 23  2018 cprocsp-drv-64-4.0.9963-5.src.rpm
-rw-r--r--  1 nobody nobody 2132178 Nov 23  2018 cprocsp-drv-devel-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody   84568 Nov 23  2018 cprocsp-ipsec-devel-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody  170341 Nov 23  2018 cprocsp-ipsec-esp-64-4.0.9963-5.src.rpm
-rw-r--r--  1 nobody nobody   33792 Nov 23  2018 cprocsp-ipsec-genpsk-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   89975 Nov 23  2018 cprocsp-ipsec-ike-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   18558 Nov 23  2018 cprocsp-rdr-emv-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   58823 Nov 23  2018 cprocsp-rdr-esmart-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   30293 Nov 23  2018 cprocsp-rdr-gui-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   49544 Nov 23  2018 cprocsp-rdr-gui-gtk-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   15854 Nov 23  2018 cprocsp-rdr-infocrypt-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   33521 Nov 23  2018 cprocsp-rdr-inpaspot-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody  466398 Nov 23  2018 cprocsp-rdr-jacarta-64-3.6.408.695-4.x86_64.rpm
-rw-r--r--  1 nobody nobody   12460 Nov 23  2018 cprocsp-rdr-mskey-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   12706 Nov 23  2018 cprocsp-rdr-novacard-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   45655 Nov 23  2018 cprocsp-rdr-pcsc-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   13911 Nov 23  2018 cprocsp-rdr-rosan-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   47162 Nov 23  2018 cprocsp-rdr-rutoken-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody  144178 Nov 23  2018 cprocsp-rsa-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody  134583 Nov 23  2018 cprocsp-stunnel-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   49816 Nov 23  2018 cprocsp-xer2print-4.0.9963-5.noarch.rpm
-rwxr-xr-x  1 nobody nobody  301229 Nov 23  2018 cpverify
-rw-r--r--  1 nobody nobody   63820 Nov 23  2018 ifd-rutokens-1.0.1-1.x86_64.rpm
-rwxr-xr-x  1 nobody nobody     211 Nov 23  2018 install.desktop
-rwxr-xr-x  1 nobody nobody   20617 Nov 23  2018 install_gui.sh
-rwxr-xr-x  1 nobody nobody   10548 Nov 23  2018 install.sh
-rwxr-xr-x  1 nobody nobody    6718 Nov 23  2018 integrity.sh
-rw-r--r--  1 nobody nobody      88 Nov 23  2018 linux-amd64.ini
-rw-r--r--  1 nobody nobody  186031 Nov 23  2018 lsb-cprocsp-base-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody   11667 Nov 23  2018 lsb-cprocsp-ca-certs-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody 6755056 Nov 23  2018 lsb-cprocsp-capilite-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody 1197101 Nov 23  2018 lsb-cprocsp-devel-4.0.9963-5.noarch.rpm
-rw-r--r--  1 nobody nobody  720274 Nov 23  2018 lsb-cprocsp-kc1-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody 1015425 Nov 23  2018 lsb-cprocsp-kc2-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody  192800 Nov 23  2018 lsb-cprocsp-pkcs11-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody 1478332 Nov 23  2018 lsb-cprocsp-rdr-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody    8682 Nov 23  2018 lsb-cprocsp-rdr-accord-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   10722 Nov 23  2018 lsb-cprocsp-rdr-ancud-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   13518 Nov 23  2018 lsb-cprocsp-rdr-crypton-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody    8297 Nov 23  2018 lsb-cprocsp-rdr-maxim-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody    8719 Nov 23  2018 lsb-cprocsp-rdr-sobol-64-4.0.9963-5.x86_64.rpm
-rw-r--r--  1 nobody nobody   10814 Nov 23  2018 sobol-1-7.src.rpm
-rwxr-xr-x  1 nobody nobody    3574 Nov 23  2018 uninstall.sh

ну что, шашки наголо и в атаку!

[root@bars linux-amd64]# ./install.sh
Uninstalling CSP packages...
CSP packages have been successfully uninstalled
Installing lsb-cprocsp-base-4.0.9963-5.noarch.rpm ...
error: Failed dependencies:
        lsb-core-noarch >= 3.0 is needed by lsb-cprocsp-base-4.0.9963-5.noarch
Error: installation failed. LSB package may not be installed.
Install LSB package and reinstall CryptoPro CSP. If it does not help, please
read installation documentation or contact the manufacturer: support@cryptopro.ru.

Ха, не так все просто (а кто вообще обещал что будет легко?)
Ну давай, потанцуем

[root@bars linux-amd64]# yum install lsb-core-noarch
... тут куча всякого, в итоге
Installed:
  redhat-lsb-core.x86_64 0:4.0-7.el6.centos

Dependency Installed:
  at.x86_64 0:3.1.10-49.el6                      bc.x86_64 0:1.06.95-1.el6            cvs.x86_64 0:1.11.23-16.el6
  ed.x86_64 0:1.1-3.3.el6                        gettext.x86_64 0:0.17-18.el6         mailx.x86_64 0:12.4-10.el6_10
  patch.x86_64 0:2.6-8.el6_9                     pax.x86_64 0:3.4-10.1.el6            perl-CGI.x86_64 0:3.51-144.el6
  perl-Test-Simple.x86_64 0:0.92-144.el6         time.x86_64 0:1.7-38.el6

Dependency Updated:
  perl.x86_64 4:5.10.1-144.el6                                   perl-CPAN.x86_64 0:1.9402-144.el6
  perl-Digest-SHA.x86_64 1:5.47-144.el6                          perl-ExtUtils-MakeMaker.x86_64 0:6.55-144.el6
  perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-144.el6                perl-Module-Pluggable.x86_64 1:3.90-144.el6
  perl-Pod-Escapes.x86_64 1:1.04-144.el6                         perl-Pod-Simple.x86_64 1:3.13-144.el6
  perl-Test-Harness.x86_64 0:3.17-144.el6                        perl-devel.x86_64 4:5.10.1-144.el6
  perl-libs.x86_64 4:5.10.1-144.el6                              perl-version.x86_64 3:0.77-144.el6

Complete!
[root@bars linux-amd64]#

Ну будем надеятся что ничего не поломается — вон сколько всего понаобновлял… :)
Второй заход…

[root@bars linux-amd64]# ./install.sh
Uninstalling CSP packages...
CSP packages have been successfully uninstalled
Installing lsb-cprocsp-base-4.0.9963-5.noarch.rpm ...
Installing lsb-cprocsp-rdr-64-4.0.9963-5.x86_64.rpm ...

Adding new reader:
Nick name: FLASH
Name device: FLASH
Succeeded, code:0x0
Installing lsb-cprocsp-kc1-64-4.0.9963-5.x86_64.rpm ...
Installing lsb-cprocsp-capilite-64-4.0.9963-5.x86_64.rpm ...
Installing cprocsp-curl-64-4.0.9963-5.x86_64.rpm lsb-cprocsp-ca-certs-4.0.9963-5.noarch.rpm ...

CSP packages have been successfully installed

Основные каталоги в которых понадобится полазить

[root@bars linux-amd64]# ls -la /etc/opt/cprocsp/
total 40
drwxr-xr-x  2 root root  4096 Jun  5 11:33 .
drwxr-xr-x. 3 root root  4096 Jun  5 11:33 ..
-rw-r--r--  1 root root 17703 Jun  5 11:33 config64.ini
-rw-r--r--  1 root root   255 Jun  5 11:33 license.ini
-rw-r--r--  1 root root    33 Nov 22  2018 release
-rwxr-xr-x  1 root root  1206 Nov 22  2018 stunnel.conf
[root@bars linux-amd64]# ls -la /var/opt/cprocsp/
total 32
drwxr-xr-x   8 root root 4096 Jun  5 11:33 .
drwxr-xr-x.  3 root root 4096 Jun  5 11:33 ..
drwxr-xr-x   4 root root 4096 Jun  5 11:33 dsrf
drwxrwxrwt   3 root root 4096 Jun  5 11:33 keys
drwx--x--x  10 root root 4096 Jun  5 11:33 mnt
drwxrwxrwt   2 root root 4096 Jun  5 11:33 tmp
drwxr-xr-x   4 root root 4096 Jun  5 11:33 tmpcerts
drwxrwxrwt   4 root root 4096 Jun  5 11:33 users
[root@bars linux-amd64]# ls -la /opt/cprocsp/
total 24
drwxr-xr-x  6 root root 4096 Jun  5 11:33 .
drwxr-xr-x. 8 root root 4096 Jun  5 11:33 ..
drwxr-xr-x  3 root root 4096 Jun  5 11:33 bin
drwxr-xr-x  4 root root 4096 Jun  5 11:33 lib
drwxr-xr-x  3 root root 4096 Jun  5 11:33 sbin
drwxr-xr-x  4 root root 4096 Jun  5 11:33 share

2 шаг. Устанавливаем SDK

[root@bars srv]# tar -xf cades_linux_amd64.tar.gz
[root@bars srv]# cd cades_linux_amd64
[root@bars cades_linux_amd64]# ls -la
total 31880
drwxr-xr-x  2 meksik games     4096 Sep 19  2019 .
drwxr-xr-x. 5 root   root      4096 Jun  5 11:53 ..
-rw-------  1 meksik games 13744817 Sep 17  2019 cprocsp-pki-2.0.0-amd64-cades.rpm
-rw-------  1 meksik games   307637 Sep 17  2019 cprocsp-pki-2.0.0-amd64-phpcades.rpm
-rw-------  1 meksik games   812649 Sep 17  2019 cprocsp-pki-2.0.0-amd64-plugin.rpm
-rw-------  1 meksik games 13727006 Sep 17  2019 cprocsp-pki-cades_2.0.0-1_amd64.deb
-rw-------  1 meksik games   302540 Sep 17  2019 cprocsp-pki-phpcades_2.0.0-1_amd64.deb
-rw-------  1 meksik games   804876 Sep 17  2019 cprocsp-pki-plugin_2.0.0-1_amd64.deb
-rw-r--r--  1 meksik games      212 Sep 19  2019 ._.DS_Store
-rw-r--r--  1 meksik games     6148 Sep 19  2019 .DS_Store
-rw-------  1 meksik games      212 Aug 13  2019 ._lsb-cprocsp-devel_5.0.11535-4_all.deb
-rw-------  1 meksik games  1442962 Aug 13  2019 lsb-cprocsp-devel_5.0.11535-4_all.deb
-rw-------  1 meksik games      212 Aug 13  2019 ._lsb-cprocsp-devel-5.0.11535-4.noarch.rpm
-rw-------  1 meksik games  1455146 Aug 13  2019 lsb-cprocsp-devel-5.0.11535-4.noarch.rpm
[root@bars cades_linux_amd64]#

нам нужно установить cprocsp-pki-2.0.0-amd64-cades.rpm, cprocsp-pki-2.0.0-amd64-phpcades.rpm и lsb-cprocsp-devel-5.0.11535-4.noarch.rpm

[root@bars cades_linux_amd64]# rpm -i cprocsp-pki-2.0.0-amd64-cades.rpm
License 0A202-U0030-00ECW-RRLMF-UU2WK is set
[ErrorCode: 0x00000000]
License TA200-G0030-00ECW-RRLNE-BTDVV is set
[ReturnCode: 0x00000000]
[root@bars cades_linux_amd64]# rpm -i cprocsp-pki-2.0.0-amd64-phpcades.rpm
[root@bars cades_linux_amd64]#

Если устанавливать rpm-ку от Крипто-Про 4, lsb-cprocsp-devel-4.0.9963-5.noarch.rpm, то она не даст собрать расширение,
надо устанавливать именно ту которая во втором архиве, но она просит зависимость — КриптоПро 5, потому указываем игнорировать зависимость

[root@bars cades_linux_amd64]# rpm -i lsb-cprocsp-devel-5.0.11535-4.noarch.rpm
error: Failed dependencies:
        lsb-cprocsp-base >= 5.0 is needed by lsb-cprocsp-devel-5.0.11535-4.noarch
[root@bars cades_linux_amd64]# rpm -i --nodeps lsb-cprocsp-devel-5.0.11535-4.noarch.rpm

3 шаг Сборка PHP расширения
смотрим какая версия php установлена, и смотрим установлен ли пакет devel чтобы мы могли собрать расширение phpcades

[root@bars cades_linux_amd64]# yum list installed |grep php
cprocsp-pki-phpcades.x86_64                2.0.0-1                   installed
php56w.x86_64                              5.6.40-1.w6               @webtatic
php56w-cli.x86_64                          5.6.40-1.w6               @webtatic
php56w-common.x86_64                       5.6.40-1.w6               @webtatic
php56w-devel.x86_64                        5.6.40-1.w6               @webtatic
php56w-gd.x86_64                           5.6.40-1.w6               @webtatic
php56w-imap.x86_64                         5.6.40-1.w6               @webtatic
php56w-ldap.x86_64                         5.6.40-1.w6               @webtatic
php56w-mbstring.x86_64                     5.6.40-1.w6               @webtatic
php56w-mysql.x86_64                        5.6.38-1.w6               @webtatic
php56w-pdo.x86_64                          5.6.40-1.w6               @webtatic
php56w-pear.noarch                         1:1.10.4-1.w6             @webtatic
php56w-pgsql.x86_64                        5.6.40-1.w6               @webtatic
php56w-process.x86_64                      5.6.40-1.w6               @webtatic
php56w-soap.x86_64                         5.6.40-1.w6               @webtatic
php56w-xml.x86_64                          5.6.40-1.w6               @webtatic

[root@bars cades_linux_amd64]# cd /opt/cprocsp/src/phpcades/

если нет devel — устанавливаем или скачиваем исходники текущей версии php
читаем /opt/cprocsp/src/phpcades/README.txt, приступаем
в файле /opt/cprocsp/src/phpcades/Makefile.unix в первой строке ставим
PHPDIR=/usr/include/php
далее, сказано поставить libboost-dev — надо, значит надо…

[root@bars phpcades]# yum install boost-devel
...
Installed:
  boost-devel.x86_64 0:1.41.0-28.el6

Dependency Installed:
  boost.x86_64 0:1.41.0-28.el6            boost-date-time.x86_64 0:1.41.0-28.el6      boost-filesystem.x86_64 0:1.41.0-28.el6       boost-graph.x86_64 0:1.41.0-28.el6
  boost-iostreams.x86_64 0:1.41.0-28.el6  boost-math.x86_64 0:1.41.0-28.el6           boost-program-options.x86_64 0:1.41.0-28.el6  boost-python.x86_64 0:1.41.0-28.el6
  boost-regex.x86_64 0:1.41.0-28.el6      boost-serialization.x86_64 0:1.41.0-28.el6  boost-signals.x86_64 0:1.41.0-28.el6          boost-system.x86_64 0:1.41.0-28.el6
  boost-test.x86_64 0:1.41.0-28.el6       boost-thread.x86_64 0:1.41.0-28.el6         boost-wave.x86_64 0:1.41.0-28.el6             libicu.x86_64 0:4.2.1-15.el6_10

Complete!
[root@bars phpcades]#
[root@bars phpcades]#
[root@bars phpcades]# eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix
g++  -DLINUX  -DUNIX -DHAVE_LIMITS_H  -D_COMPACT -DHAVE_STDINT_H  -I/opt/cprocsp/include/ -I/opt/cprocsp/include/cpcsp -I/opt/cprocsp/include/pki -I/opt/cprocsp/include/pki/atl -I/opt/cprocsp/include/pk
i/cppcades -I/opt/cprocsp/include/pki/cplib -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/Zend -I/usr/include/php/TSRM  -DSIZEOF_VOID_P=8 -fPIC -DPIC -c -o PHPCadesCPSigners.o PHPCadesCP
Signers.cpp
.....
g++  -shared PHPCadesCPSigners.o PHPCadesCPSigner.o PHPCadesCPExtendedKeyUsage.o PHPCadesCPAttribute.o PHPCadesCPEKU.o PHPCadesCPEKUs.o PHPCadesCPBasicConstraints.o PHPCadesCPSignedData.o PHPCadesCPPubl
icKey.o PHPCadesCPPrivateKey.o PHPCadesCPOID.o PHPCadesCPEncodedData.o PHPCadesCPAttributes.o PHPCadesCPCertificateStatus.o PHPCadesCPEnvelopedData.o PHPCadesCPAlgorithm.o PHPCadesCPRecipients.o PHPCade
sCPKeyUsage.o PHPCadesAbout.o PHPCadesCPCardholderData.o PHPCadesCPCertificates.o PHPCadesCPSignedXML.o PHPCadesCPHashedData.o PHPCadesCPRawSignature.o PHPCadesCPCertificate.o PHPCadesCPStore.o dllmain.
o PHPCadesVersion.o PHPCadesSymmetricAlgorithm.o errormsg.o  -L/opt/cprocsp/lib/amd64 -lcppcades -lcapi10 -lcapi20 -lrdrsup -lcplib  -g -o libphpcades.so
[root@bars phpcades]#

Скопируем его ко всем остальным модулям и включим

[root@bars phpcades]# cp libphpcades.so /usr/lib64/php/modules
[root@bars phpcades]# echo "extension=libphpcades.so" > /etc/php.d/cryptopro.ini

Все. на этом установка расширения для PHP завершена. Но для php версии 7 так легко все не проходит, нужны дополнительные шаги

Download file EncryptFSS.c

#include <stdio.h>
#include <string.h>
#ifdef _WIN32
#   include <windows.h>
#   include <wincrypt.h>
#   include <tchar.h>
#else
#   include <stdlib.h>
#   include <CSP_WinDef.h>
#   include <CSP_WinCrypt.h>
#   include "reader/tchar.h"
#endif
#include <WinCryptEx.h>
 
#include <stdint.h>
 
//#define DEBUG_OUT 1
 
#define BLOCK_LENGTH 8
#define ASN1_LENGTH 172
 
#define ENCRKEY_OFFSET 7
#define ENCRKEY_LEN 32
 
#define MACKEY_OFFSET 41
#define MACKEY_LEN 4
 
#define PUBKEY_OFFSET 98
#define PUBKEY_LEN 64
 
#define SV_OFFSET 164
#define SV_LEN 8
 
static BYTE encoding_table[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
                                'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
                                'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                                'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
                                'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
                                'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
                                'w', 'x', 'y', 'z', '0', '1', '2', '3',
                                '4', '5', '6', '7', '8', '9', '+', '/'};
static BYTE *decoding_table = NULL;
static int mod_table[] = {0, 2, 1};
 
BYTE * base64_encode(const BYTE *data, DWORD input_length, DWORD *output_length);
static void HandleError(char *s);
static void CleanUp(void);
 
static HCRYPTPROV hProv = 0;		    // Дескриптор CSP 
static HCRYPTKEY hKey = 0;		        // Дескриптор закрытого ключа 
static HCRYPTKEY hSessionKey = 0;	    // Дескриптор сессионного ключа
static HCRYPTKEY hAgreeKey = 0;         // Дескриптор ключа согласования
static HCRYPTKEY hEphemeralKey = 0;	    // Дескриптор эфемерного ключа
 
static FILE *fhCert=NULL;		        // Файл, в котором хранится сертификат
static FILE *fhSource=NULL;       		// Исходный файл
static FILE *fhOutput=NULL;       		// Исходный файл
#ifdef DEBUG_OUT
static FILE *fhEncrypt=NULL;		    // Зашифрованный файл
static FILE *fhSession_SV=NULL;         // Файл для хранения сессионного ключа (вектор инициализации)
static FILE *fhSession_EncryptedKey=NULL; // Файл для хранения сессионного ключа (зашифрованный ключ)
static FILE *fhSession_PublicKey=NULL;  // Файл для хранения публичного эфемерного ключа
static FILE *fhSession_MacKey=NULL;	    // Файл для хранения сессионного ключа (имита)
static FILE *fhVector=NULL;		        // Файл для хранения вектора инициализации
static FILE *fhEncryptionParam;         // Файл для хранения неменяемой части блоба
#endif
 
static BYTE *pbKeyBlobSimple = NULL;    // Указатель на сессионный ключевой BLOB 
static BYTE *pbIV = NULL;		        // Вектор инициализации сессионного ключа
static BYTE *pbCipherValue = NULL;      // Указатель шифрованный контент
 
#define MAX_PUBLICKEYBLOB_SIZE 200
 
int main(int argc, char *argv[])
{
    BYTE  pbKeyBlob[MAX_PUBLICKEYBLOB_SIZE];	            // Указатель на ключевой BLOB 
    DWORD dwBlobLen = MAX_PUBLICKEYBLOB_SIZE;	            // Длина ключевого BLOBа
    DWORD dwBlobLenSimple;                                  // Длина сессионного ключевого BLOBа
 
    BYTE  pbSenderPublicKeyBlob[MAX_PUBLICKEYBLOB_SIZE];    // Указатель на ключевой BLOB публичный, отправителя
    DWORD dwSenderPublicBlobLen = MAX_PUBLICKEYBLOB_SIZE; 	// Длина ключевого BLOBа, публичного, отправителя
    DWORD keyParam = CRYPT_MODE_CBC;    
    DWORD paddingMode = ISO10126_PADDING; //cpm_ISO10126 
 
    BYTE * pbBufferB64;
    DWORD dwBufferB64Len;
    DWORD dwCipherValue;
 
    BYTE * pbPubCertData;
    DWORD dwPubCertData;
 
    BYTE * pbContent;                   // указатель на исходное содержимое
    DWORD cbContent = 0;	            // Длина содержимого
    DWORD dwIV = 0;		                // Длина вектора инициализации
    DWORD bufLen = sizeof(pbContent);   // Длина буфера
    ALG_ID ke_alg = CALG_PRO_EXPORT /*CALG_PRO12_EXPORT*/;          // алгоритм ключа согласования
    DWORD cbEncryptionParamSetStandart; // длина неизменяемой части блоба
 
    DWORD cbCert = 4000;                // максимальный размер файла сертификата
    BYTE  pbCert[4000];                 // указатель на сертификат
    PCCERT_CONTEXT pCertContext = NULL;
    HCRYPTKEY hPubKey;
 
    BYTE pbKeyCipherValue[ASN1_LENGTH] = {0x30, 0x81, 0xA9, 0x30, 0x28, 4, 0x20,
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  // offs 7: len 32 = Session Encrypted Key
                                          4, 4, 
                                          0, 0, 0, 0,                                                                                      // offs 41 len 4 = Session Mac Key
                                          0xA0, 0x7D, 
                                          6, 9, 0x2A, 0x85, 3, 7, 1, 2, 5, 1, 1,     // OBJECT IDENTIFIER 1.2.643.7.1.2.5.1.1 tc26CipherZ (TC26 params Z for GOST 28147-89)
                                          0xA0, 0x66, 0x30, 0x1F,
                                          6, 8, 0x2A, 0x85, 3, 7, 1, 1, 1, 1,        // OBJECT IDENTIFIER 1.2.643.7.1.1.1.1 gost2012PublicKey256 (GOST R 34.10-2012 256 bit public key)
                                          0x30, 0x13, 
                                          6, 7, 0x2A, 0x85, 3, 2, 2, 0x24, 0,        // OBJECT IDENTIFIER 1.2.643.2.2.36.0 cryptoProSignXA (CryptoPro ell.curve XA for GOST R 34.10-2001)
                                          6, 8, 0x2A, 0x85, 3, 7, 1, 1, 2, 2, 3,     // OBJECT IDENTIFIER 1.2.643.7.1.1.2.2 gost2012Digest256 (GOST R 34.11-2012 256 bit digest)
                                          0x43, 0, 4, 0x40, 
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
                                          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  // offs 98 = : len 64 = Session Public Key
                                          0x4, 0x8,
                                          0, 0, 0, 0, 0, 0, 0, 0                                                                           // offs 164: len 8 = Session SV
                                          };   // Указатель на структуру ASN1 для ключа
    DWORD dwKeyCipherValue = ASN1_LENGTH;
 
    static BYTE xml_1[] = 
    "<?xml version="1.1" encoding="UTF-8"?>"
    "<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">"
        "<SOAP-ENV:Header/>"
        "<SOAP-ENV:Body>"
            "<EncryptedData xmlns="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element">"
                "<EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:gost28147"/>"
                "<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">"
                    "<EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#">"
                        "<EncryptionMethod Algorithm="urn:ietf:params:xml:ns:cpxmlsec:algorithms:transport-gost2001"/>"
                        "<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">"
                            "<X509Data>"
                                "<X509Certificate>";
    static BYTE xml_2[] =       "</X509Certificate>"
                            "</X509Data>"
                        "</KeyInfo>"
                        "<CipherData>"
                            "<CipherValue>";
    static BYTE xml_3[] =   "</CipherValue>"
                        "</CipherData>"
                    "</EncryptedKey>"
                "</KeyInfo>"
                "<CipherData>"
                    "<CipherValue>";
    static BYTE xml_4[] = 
                    "</CipherValue>"
                "</CipherData>"
            "</EncryptedData>"
        "</SOAP-ENV:Body>"
    "</SOAP-ENV:Envelope>";
 
 
    if(argc < 5)
    {
        printf("Encryption tool for FSS ELN service.nver 0.01, IbZ(c) Studio (tm)  :)n" );
        printf("ntusing: %s <container_name> <certificate_filename> <source_file> <output.xml>nn", argv[0]);
        HandleError( "Not enough input parameters given" );
    } 
 
    // Открытие файла, который будет зашифрован.
    if(!(fhSource = fopen(argv[3], "rb"))) HandleError( "Problem opening the source file n" );
    fseek(fhSource, 0, SEEK_END);
    cbContent = ftell(fhSource);
    rewind(fhSource);
#ifdef DEBUG_OUT
    printf( "01. The file '%s' was opened, length = %d bytesn", argv[3],cbContent );
#endif
    pbContent = (BYTE *)malloc(cbContent);
    if(!pbContent) HandleError("Out of memory. n");
 
    if(!(fhOutput = fopen(argv[4], "wb"))) HandleError( "Problem opening the file output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe file '%s' was openedn", argv[4] );
    // Открытие файла, в который будет производится запись блока зашифрованного файла.
    if(!(fhEncrypt = fopen("encrypt.bin", "wb"))) HandleError( "Problem opening the file 'encrypt.bin'n" );
    printf( "tThe file 'encrypt.bin' was openedn" );
 
    // Открытие файла, в который производится запись синхропосылки.
    if(!(fhSession_SV = fopen("session_SV.bin", "wb"))) HandleError( "Problem opening the file 'session_SV.bin'n" );
    printf( "tThe file 'session_SV.bin' was openedn" );
 
    // Открытие файла, в который производится запись сессионного ключа.
    if(!(fhSession_EncryptedKey = fopen("session_EncryptedKey.bin", "wb"))) HandleError( "Problem opening the file 'session_EncryptedKey.bin'n" );
    printf( "tThe file 'session_EncryptedKey.bin' was openedn" );
 
    if(!(fhSession_PublicKey = fopen("session_PublicKey.bin", "wb"))) HandleError( "Problem opening the file 'session_PublicKey.bin'n" );
    printf( "tThe file 'session_PublicKey.bin' was openedn" );
 
    // Открытие файла, в который производится запись MAC сессионного ключа.
    if(!(fhSession_MacKey = fopen("session_MacKey.bin", "wb"))) HandleError( "Problem opening the file 'session_MacKey.bin'n" );
    printf( "tThe file 'session_MacKey.bin' was openedn" );
 
    // Открытие файла, в который производится запись вектора инициализации.
    if(!(fhVector = fopen("vector.bin", "wb"))) HandleError( "Problem opening the file 'vector.bin'n" );
    printf( "tThe file 'vector.bin' was openedn" );
 
    // Открытие файла, в который производится запись вектора инициализации.
    if (!(fhEncryptionParam = fopen("EncryptionParam.bin", "wb"))) HandleError("Problem opening the file 'EncryptionParam.bin'n");
    printf( "tThe file 'EncryptionParam.bin' was openedn");
#endif
 
 
    // Получение дескриптора контейнера отправителя, находящегося в рамках провайдера. 
    // if(CryptAcquireContext( &hProv, _TEXT("HDIMAGE\\2019rnik.000\026C"), NULL, PROV_GOST_2012_256, 0)) 
    if(!CryptAcquireContext( &hProv, argv[1], NULL, PROV_GOST_2012_256, 0)) HandleError("Error during CryptAcquireContext.");
#ifdef DEBUG_OUT
    printf("02. The key container "%s" has been acquired. n", argv[1]);
#endif
    // Загрузка PUBLICKEYBLOB из сертификата, открытие файла, в котором содержится открытый ключ получателя.
    if((fhCert = fopen(argv[2], "rb")))
    {
#ifdef DEBUG_OUT
	    printf( "tThe file '%s' was openedn",  argv[2]);
#endif
	    cbCert = (DWORD)fread(pbCert, 1, cbCert, fhCert);
        if(!cbCert) HandleError( "Failed to read certificaten" );
#ifdef DEBUG_OUT
        printf( "tCertificate was read from the '%s'n", argv[2] );
#endif
        pCertContext = CertCreateCertificateContext ( X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, pbCert, cbCert);
        if (!pCertContext) HandleError( "CertCreateCertificateContext" );
 
   	    // Импортируем открытый ключ
        if (!CryptImportPublicKeyInfoEx( hProv, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, &(pCertContext->pCertInfo->SubjectPublicKeyInfo), 0, 0, NULL, &hPubKey)) 
        {
            CertFreeCertificateContext(pCertContext);
            HandleError( "CryptImportPublicKeyInfoEx" );
        }
#ifdef DEBUG_OUT
        printf("tPublic key imported from cert filen");
#endif
        CertFreeCertificateContext(pCertContext);
 
        // экспорт открытого ключа получателя в BLOB
        if (!CryptExportKey( hPubKey, 0, PUBLICKEYBLOB, 0, pbKeyBlob, &dwBlobLen)) HandleError( "CryptExportKey" );
#ifdef DEBUG_OUT
        printf("tPublic key exported to blobn");
#endif
    }
 
// begin hack
    // генерация эфемерной ключевой пары
    if(!CryptGenKey(hProv, /* CALG_DH_EL_EPHEM */ CALG_DH_GR3410_12_256_EPHEM, CRYPT_EXPORTABLE, &hEphemeralKey)) HandleError("Error during CryptGenKey Ephemeral key.");
#ifdef DEBUG_OUT
    printf("03. The Ephemeral key has been acquired. n");
#endif
    // экспорт открытого ключа отправителя в BLOB
    if(!CryptExportKey(hEphemeralKey, 0, PUBLICKEYBLOB, 0, pbSenderPublicKeyBlob, &dwSenderPublicBlobLen)) HandleError("Error during CryptExportKey of Sender's public key.");
#ifdef DEBUG_OUT
    printf("04. The Sender public key has been acquired. size of Blob = %d bytesn", dwSenderPublicBlobLen);
#endif
    // получаем значение открытого ключа отправителя из PUBLICKEYBLOB
    memcpy(&pbKeyCipherValue[PUBKEY_OFFSET], &pbSenderPublicKeyBlob[dwSenderPublicBlobLen-PUBKEY_LEN], PUBKEY_LEN);
#ifdef DEBUG_OUT
    if(!fwrite( pbSenderPublicKeyBlob, 1, dwSenderPublicBlobLen, fhSession_PublicKey)) HandleError( "The session key can not be written to the 'session_PublicKey.bin'n" );
    printf("tThe session key was written to the 'session_PublicKey.bin'n" );
#endif
    // Получение дескриптора закрытого ключа отправителя. нам нужно для получения сертификата который вставим в запрос
    if(!CryptGetUserKey(	hProv, AT_KEYEXCHANGE, &hKey)) HandleError("Error during CryptGetUserKey private key.");
#ifdef DEBUG_OUT
    printf("05. The private key has been acquired. n");
#endif
    // определяем размер блока памяти для получения нашего сертификата который мы пошлем в ФСС
    if(!CryptGetKeyParam(hKey, KP_CERTIFICATE, NULL, &dwPubCertData, 0)) HandleError("Error during CryptGetKeyParam for determinating size of certificate.");
#ifdef DEBUG_OUT
    printf("06. The size for Public Certificate has been acquired. n");
#endif
    pbPubCertData = (BYTE*)malloc(dwPubCertData);
    if(!pbPubCertData) HandleError("Out of memory. n");
 
    // получачем сам сертификата который мы пошлем в ФСС в подготовленную область памяти
    if(!CryptGetKeyParam(hKey, KP_CERTIFICATE, pbPubCertData, &dwPubCertData, 0)) HandleError("Error during CryptGetKeyParam when get certificate");
#ifdef DEBUG_OUT
    printf("07. The our Certificate has been acquired. n");
#endif
    // Получение ключа согласования импортом открытого ключа получателя на эфемерном ключе,  ----не на закрытом ключе отправителя.
    if(!CryptImportKey(hProv, pbKeyBlob, dwBlobLen, hEphemeralKey, 0, &hAgreeKey)) HandleError("Error during CryptImportKey public key.");
#ifdef DEBUG_OUT
    printf("08. get AgreeKey by importing the responder public key. n");
#endif
    // Установление ----PRO12_EXPORT (на саомм деле нет, PRO_EXPORT) алгоритма ключа согласования
    if(!CryptSetKeyParam( hAgreeKey, KP_ALGID, (LPBYTE)&ke_alg,  0)) HandleError("Error during CryptSetKeyParam agree key.");
    //printf("22. PRO12_EXPORT agree key algorithm has been set. n");
#ifdef DEBUG_OUT
    printf("09. PRO_EXPORT agree key algorithm has been set. n");
#endif
    // Генерация случайного сессионного ключа.
    if(!CryptGenKey( hProv, CALG_G28147, CRYPT_EXPORTABLE, &hSessionKey)) HandleError("ERROR -- CryptGenKey failed for random session key.");
#ifdef DEBUG_OUT
    printf("10. Original session key is created. n");
#endif
    //--------------------------------------------------------------------
    // Зашифрование сессионного ключа.
    //--------------------------------------------------------------------
 
    // экспорт сессионного ключа в BLOB
 
    // Определение размера BLOBа сессионного ключа и распределение памяти.
    if(!CryptExportKey( hSessionKey, hAgreeKey, SIMPLEBLOB, 0, NULL, &dwBlobLenSimple)) HandleError("Error computing BLOB length.");
#ifdef DEBUG_OUT
    printf("11. Size of the BLOB for the sender session key determined. n");
#endif
    pbKeyBlobSimple = (BYTE*)malloc(dwBlobLenSimple);
    if(!pbKeyBlobSimple) HandleError("Out of memory. n");
 
    // Зашифрование сессионного ключа на ключе Agree. экспорт сессионного ключа на ключе согласования
    if(!CryptExportKey( hSessionKey, hAgreeKey, SIMPLEBLOB, 0, pbKeyBlobSimple, &dwBlobLenSimple)) HandleError("Error during CryptExportKey.");
#ifdef DEBUG_OUT
   	printf("12. Contents have been written to the BLOB. n");
#endif       
    memcpy(&pbKeyCipherValue[SV_OFFSET], ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bSV, SV_LEN);
    memcpy(&pbKeyCipherValue[ENCRKEY_OFFSET], ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptedKey, ENCRKEY_LEN);
    memcpy(&pbKeyCipherValue[MACKEY_OFFSET], ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bMacKey, MACKEY_LEN);
 
    // режим шифрования CBC
    if(!CryptSetKeyParam(hSessionKey, KP_MODE, (LPBYTE)&keyParam, 0)) HandleError("Error during CryptSetKeyParam cipher mode.");
#ifdef DEBUG_OUT
    printf("tSet crypt param CRYPT_MODE_CBC. n");
#endif
    // режим паддинга
    if(!CryptSetKeyParam(hSessionKey, KP_PADDING, (LPBYTE)&paddingMode, 0)) HandleError("Error during CryptSetKeyParam padding mode.");
#ifdef DEBUG_OUT
    printf("tSet crypt param ISO10126_PADDING. n");
#endif    
//end hacking
 
    // Определение размера вектора инициализации сессионного ключа. 
    if(!CryptGetKeyParam( hSessionKey, KP_IV, NULL, &dwIV, 0)) HandleError("Error computing IV length.");
#ifdef DEBUG_OUT
    printf("13. Size of the IV for the session key determined. n");
#endif
    pbIV = (BYTE*)malloc(dwIV);
    if (!pbIV) HandleError("Out of memory. n");
 
    // Получение вектора инициализации сессионного ключа.
    if(!CryptGetKeyParam( hSessionKey, KP_IV, pbIV, &dwIV, 0)) HandleError("Error during CryptGetKeyParam.");
#ifdef DEBUG_OUT
    printf( "14. CryptGetKeyParam succeeded. n");
 
    //--------------------------------------------------------------------
    // Запись вектора инициализации в файл.
    if(!fwrite( pbIV, 1,	dwIV, fhVector)) HandleError( "The IV can not be written to the 'vector.bin'n" );
    printf( "tThe IV was written to the 'vector.bin'n" );
 
    //--------------------------------------------------------------------
    // Запись сессионного вектора в файл.
    if(!fwrite( ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bSV, 1, SEANCE_VECTOR_LEN, fhSession_SV)) HandleError( "The session vector can not be written to the 'session_SV.bin'n" );
    printf( "tThe session vector was written to the 'session_SV.bin'n" );
 
    //--------------------------------------------------------------------
    // Запись сессионного зашифрованного ключа в файл.
    if(!fwrite( ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptedKey, 1, G28147_KEYLEN, fhSession_EncryptedKey)) HandleError( "The session key can not be written to the 'session_EncryptedKey.bin'n" );
    printf( "tThe session key was written to the 'session_EncryptedKey.bin'n" );
 
    //--------------------------------------------------------------------
    // Запись сессионного MAC ключа в файл.
    if(!fwrite( ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bMacKey, 1, EXPORT_IMIT_SIZE, fhSession_MacKey)) HandleError( "The session key can not be written to the 'session_MacKey.bin'n" );
    printf( "tThe session key was written to the 'session_MacKey.bin'n" );
#endif
 
    //--------------------------------------------------------------------
    // Запись неизменяемой части блоба в файл.
    if (((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptionParamSet[0] != 0x30) HandleError("The EncryptionParam can not be written to the 'EncryptionParam.bin' - first byte is not 0x30n");
    cbEncryptionParamSetStandart = (DWORD)((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptionParamSet[1] + sizeof((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptionParamSet[0] + sizeof((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptionParamSet[1];
#ifdef DEBUG_OUT
    if (!fwrite(((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptionParamSet, 1, cbEncryptionParamSetStandart, fhEncryptionParam)) HandleError("The EncryptionParam can not be written to the 'EncryptionParam.bin'n");
    printf("tThe EncryptionParam was written to the 'EncryptionParam.bin'n");
 
    //--------------------------------------------------------------------
    // Чтение  файла, и шифрование прочитанного блока и запись его в файл "encrypt.bin". Это будет 
    // 'SOAP-ENV:Envelope -> SOAP-ENV:Body -> EncryptedData ->  CipherData -> CipherValue
    //--------------------------------------------------------------------
    printf( "15. Begin Encryption:n");
#endif
    // сначала копируем вектор инициализации
    dwCipherValue = dwIV;
    pbCipherValue = (BYTE*)malloc(dwIV);
    if (!pbCipherValue) HandleError("Out of memory. n");
    memcpy(pbCipherValue,pbIV,dwIV);
 
    bufLen = cbContent;
    if( (DWORD)fread(pbContent, 1, cbContent, fhSource) != cbContent ) HandleError( "Problem reading the source xml file n" );
 
    // сначала определяем необходимый размер блока памяти
    if(!CryptEncrypt(hSessionKey, 0, TRUE, 0, NULL, &bufLen, 0)) HandleError("get memory size for Encryption failed.");
#ifdef DEBUG_OUT
    printf( "tget memory size %d bytes for encryption success....n", bufLen);
#endif    		
    pbContent = (BYTE*)realloc(pbContent, bufLen);
    if (!pbContent) HandleError("Out of memory. n");
 
    if(!CryptEncrypt(hSessionKey, 0, TRUE, 0, pbContent, &cbContent, bufLen)) HandleError("Encryption failed.");
 
    pbCipherValue = (BYTE*)realloc(pbCipherValue, dwCipherValue+cbContent);
    if (!pbCipherValue) HandleError("Out of memory. n");
 
    memcpy(&pbCipherValue[dwCipherValue], pbContent, cbContent);
    dwCipherValue += cbContent;
#ifdef DEBUG_OUT
    if(!fwrite( pbContent, 1, cbContent, fhEncrypt)) HandleError( "The encrypted content can not be written n" );
    printf( "tencrypted %d bytes, to %d bytes....n" , cbContent, bufLen);
#endif
    // -------------------------------------------------------
    //  начинаем запись результирующего зашифрованного XML
    // -------------------------------------------------------
    if(!fwrite(xml_1, 1,sizeof(xml_1)-1, fhOutput)) HandleError( "The 1st part of xml can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "-------- writing result file xml ----------ntThe 1st part of xml was written to the '%s'n", argv[4] );
#endif
 
    pbBufferB64 = base64_encode(pbPubCertData, dwPubCertData, &dwBufferB64Len);
    if(!fwrite( pbBufferB64, 1, dwBufferB64Len, fhOutput)) HandleError( "The encrypted data can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe encrypted data was written to the '%s'n", argv[4] );
#endif
 
    if(!fwrite(xml_2, 1,sizeof(xml_2)-1, fhOutput))HandleError( "The 2nd part of xml can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe 2nd part of xml was written to the '%s'n", argv[4] );
#endif
 
    pbBufferB64 = base64_encode(pbKeyCipherValue, ASN1_LENGTH, &dwBufferB64Len);
    if(!fwrite( pbBufferB64, 1, dwBufferB64Len, fhOutput)) HandleError( "The session structure can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe session structure was written to the '%s'n", argv[4] );
#endif
 
    if(!fwrite(xml_3, 1,sizeof(xml_3)-1, fhOutput)) HandleError( "The 3rd part of xml can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe 3rd part of xml was written to the '%s'n", argv[4] );
#endif
 
    pbBufferB64 = base64_encode(pbCipherValue, dwCipherValue, &dwBufferB64Len);
    if(!fwrite( pbBufferB64, 1, dwBufferB64Len, fhOutput)) HandleError( "The encrypted data can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe encrypted data was written to the '%s'n", argv[4] );
#endif
 
    if(!fwrite(xml_4, 1,sizeof(xml_4)-1, fhOutput)) HandleError( "The 4th part of xml can not be written to the output xml filen" );
#ifdef DEBUG_OUT
    printf( "tThe 4th part of xml was written to the '%s'n---- writing result file xml complete ------n", argv[4] );
#endif
 
    CleanUp();
 
#ifdef DEBUG_OUT
    printf("nThe program ran to completion without error. n");
#endif
    return 0;
}
 
 
void CleanUp(void)
{
    if(fhSource) fclose (fhSource);
    if(fhOutput) fclose (fhOutput);
    if(fhCert) fclose (fhCert);
#ifdef DEBUG_OUT
    if(fhEncrypt) fclose (fhEncrypt);
    if(fhSession_SV) fclose (fhSession_SV);
    if(fhSession_EncryptedKey) fclose (fhSession_EncryptedKey);
    if(fhSession_PublicKey) fclose (fhSession_PublicKey);
    if(fhSession_MacKey) fclose (fhSession_MacKey);
    if(fhVector) fclose (fhVector);
    if(fhEncryptionParam) fclose(fhEncryptionParam);
#endif
    if(hKey) CryptDestroyKey(hKey);
    if(hEphemeralKey) CryptDestroyKey(hEphemeralKey);
    if(hSessionKey) CryptDestroyKey(hSessionKey);
    if(hAgreeKey) CryptDestroyKey(hAgreeKey);
    if(hProv) CryptReleaseContext(hProv, 0);
    if(pbKeyBlobSimple)	free(pbKeyBlobSimple);
    if(pbIV) free(pbIV);
}
 
BYTE * base64_encode(const BYTE *data, DWORD input_length, DWORD *output_length)
{
    WORD i, j;
    DWORD octet_a, octet_b, octet_c, triple;
 
    *output_length = 4 * ((input_length + 2) / 3);
 
    BYTE * encoded_data = malloc(*output_length);
    if (encoded_data == NULL) return NULL;
 
    for (i = 0, j = 0; i < input_length;)
    {
        octet_a = i < input_length ? (BYTE)data[i++] : 0;
        octet_b = i < input_length ? (BYTE)data[i++] : 0;
        octet_c = i < input_length ? (BYTE)data[i++] : 0;
        triple = (octet_a << 0x10) + (octet_b << 0x08) + octet_c;
        encoded_data[j++] = encoding_table[(triple >> 3 * 6) & 0x3F];
        encoded_data[j++] = encoding_table[(triple >> 2 * 6) & 0x3F];
        encoded_data[j++] = encoding_table[(triple >> 1 * 6) & 0x3F];
        encoded_data[j++] = encoding_table[(triple >> 0 * 6) & 0x3F];
    }
    for (i = 0; i < mod_table[input_length % 3]; i++) encoded_data[*output_length - 1 - i] = '=';
    return encoded_data;
}
 
 
void HandleError(char *s)
{
    DWORD err = GetLastError();
    printf("Error number     : 0x%xn", err);
    printf("Error description: %sn", s);
    CleanUp();
    if(!err) err = 1;
    exit(err);
}
 

Download file DecryptFSS.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#ifdef _WIN32
#   include <windows.h>
#   include <wincrypt.h>
#   include <tchar.h>
#else
#   include <stdlib.h>
#   include <CSP_WinDef.h>
#   include <CSP_WinCrypt.h>
#   include "reader/tchar.h"
#endif
#include <WinCryptEx.h>
 
//#define DEBUG_OUT 1
 
#define BLOCK_LENGTH 4096
 
#define ENCRKEY_OFFSET 7
#define ENCRKEY_LEN 32
 
#define MACKEY_OFFSET 41
#define MACKEY_LEN 4
 
#define PUBKEY_OFFSET 98
#define PUBKEY_LEN 64
 
#define SV_OFFSET 164
#define SV_LEN 8
 
#define IV_LEN 8
#define ENCPARAMSET_LEN 13
 
static BYTE encoding_table[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
                                'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
                                'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
                                'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
                                'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
                                'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
                                'w', 'x', 'y', 'z', '0', '1', '2', '3',
                                '4', '5', '6', '7', '8', '9', '+', '/'};
static BYTE *decoding_table = NULL;
static int mod_table[] = {0, 2, 1};
 
void build_decoding_table();
BYTE *base64_decode(const BYTE *data, DWORD input_length, DWORD *output_length);
static void CleanUp(void);
static void HandleError(char *s);
 
static HCRYPTPROV hProv = 0;		            // Дескриптор CSP
static HCRYPTKEY hKey = 0;		                // Дескриптор закрытого ключа 
static HCRYPTKEY hPubKey = 0;		            // Дескриптор открытого ключа ФСС
static HCRYPTKEY hSessionKey = 0;	            // Дескриптор сессионного ключа
static HCRYPTKEY hAgreeKey = 0;                 // Дескриптор ключа согласования
 
static FILE *fhEncrypt=NULL;		            // Зашифрованный файл
static FILE *fhOutput=NULL; 		            // Расшифрованный файл
#ifdef DEBUG_OUT
static FILE *fhCertB64=NULL;    	            // Сертификат ФСС из xml в base64
static FILE *fhCert=NULL;    		            // Сертификат ФСС из xml бинарный
static FILE *fhEncodingParametersB64;           // Параметры шифрования из xml в base64
static FILE *fhEncodingParameters;              // Параметры шифрования из xml в бинарном виде
static FILE *fhEncodedContentB64;               // Содержимое из xml в base64
static FILE *fhEncodedContent;                  // Содержимое из xml которое надо расшифровать в бинарном виде с вектором инициализации
static FILE *fhMacKey;                      
static FILE *fhKeyBlobSimple;
static FILE *fhKeyBlob;
static FILE *fhContent;                         // чистое содержимое которое надо расшифровать без вектора инициализации
#endif
 
char SearchStr1[] = "<ds:X509Data><ds:X509Certificate>";
char SearchStr2[] = "</ds:X509Certificate></ds:X509Data></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>";
char SearchStr3[] = "</xenc:CipherValue></xenc:CipherData></xenc:EncryptedKey></ds:KeyInfo><xenc:CipherData><xenc:CipherValue>";
char SearchStr4[] = "</xenc:CipherValue></xenc:CipherData></xenc:EncryptedData>";
 
#define MAX_PUBLICKEYBLOB_SIZE 200
 
int main(int argc, char *argv[])
{
    BYTE * pbEncrypt;	                        // Указатель на содержимое зашифрованного файла
    DWORD cbEncrypt = 0;	                    // Длина содержимого
 
    BYTE * pbClrContent;                        // Указатель на содержимое зашифрованного файла, после очистки от спецсимволов и пробелов
    DWORD cbClrContent = 0;                     // Длина содержимого после очистики
 
    BYTE * pbContent;	                        
    DWORD cbContent = 0;	                    
 
    BYTE * pbCert;	                            // Указатель на сертификат ФСС
    DWORD cbCert = 0;	                        // длина блока памяти
 
    BYTE  pbKeyBlob[MAX_PUBLICKEYBLOB_SIZE];	// Указатель на ключевой BLOB 
    DWORD dwBlobLen = MAX_PUBLICKEYBLOB_SIZE;	// Длина ключевого BLOBа
 
    BYTE pPublicKeyBlob[PUBKEY_LEN];
    DWORD cbPublicKeyBlob;
 
    BYTE *pbKeyBlobSimple = NULL;               // Указатель на сессионный ключевой BLOB 
    DWORD cbBlobLenSimple;                  	// Длина сессионного ключевого BLOBа
 
    BYTE pbIV[IV_LEN];		                    // Вектор инициализации сессионного ключа
    DWORD dwIV = IV_LEN;	                    // Длина вектора инициализации
 
    DWORD keyParam = CRYPT_MODE_CBC;    
    DWORD paddingMode = ISO10126_PADDING; //cpm_ISO10126 
 
    ALG_ID ke_alg = CALG_PRO_EXPORT /*CALG_PRO12_EXPORT*/;          // алгоритм ключа согласования
    CRYPT_SIMPLEBLOB_HEADER tSimpleBlobHeaderStandart;
                                                //неменяемая часть блоба
    BYTE pbEncryptionParamSetStandart[ENCPARAMSET_LEN] = {0x30, 0x0B, 6, 9, 0x2A, 0x85, 3, 7, 1, 2, 5, 1, 1 };    // OBJECT IDENTIFIER 1.2.643.7.1.2.5.1.1 tc26CipherZ (TC26 params Z for GOST 28147-89)
 
    DWORD cbEncryptionParamSetStandart = ENCPARAMSET_LEN;                //длина неменяемой части блоба
    PCCERT_CONTEXT pCertContext = NULL;
 
    DWORD dwBytesRead;
    DWORD i, pos_Cert1, pos_Cert2, pos_EncP1, pos_EncP2, pos_Enc1, pos_Enc2;
 
    BYTE * pbBufferB64;
    DWORD cbBufferB64;
 
    tSimpleBlobHeaderStandart.BlobHeader.aiKeyAlg = CALG_G28147; 
    tSimpleBlobHeaderStandart.BlobHeader.bType = SIMPLEBLOB;
    tSimpleBlobHeaderStandart.BlobHeader.bVersion = BLOB_VERSION;
    tSimpleBlobHeaderStandart.BlobHeader.reserved = 0;
    tSimpleBlobHeaderStandart.EncryptKeyAlgId = CALG_G28147;
    tSimpleBlobHeaderStandart.Magic = G28147_MAGIC;    
 
    if(argc < 4)
    {
        printf("Decryption tool for FSS ELN service.nver 0.01, IbZ(c) Studio (tm)  :)n" );
        printf("ntusing: %s <container_name> <encrypted_xml> <output.xml>nn", argv[0]);
        HandleError( "Not enough input parameters given" );
    } 
 
    // Открытие файла, в котором хранится зашифрованный ответ FSS.
    if(!(fhEncrypt = fopen(argv[2], "r+b" ))) HandleError( "Problem opening the file with encrypted xmln" );
#ifdef DEBUG_OUT
    printf( "01. The file '%s' was openedn", argv[2] );
#endif
 
    fseek(fhEncrypt, 0, SEEK_END);
    cbEncrypt = sizeof(char)*ftell(fhEncrypt);
    rewind(fhEncrypt);
    // Выделяем память для чтения файла целиком и читаем его в эту область
    pbEncrypt = (BYTE*)malloc(cbEncrypt);
    if (pbEncrypt == NULL) HandleError("Out of memory. n");
    dwBytesRead = (DWORD)fread(pbEncrypt, 1, cbEncrypt, fhEncrypt);
 
    if (dwBytesRead != cbEncrypt) HandleError("The Encrypted file can not be reading from the 'EncryptionParam.bin'n");
#ifdef DEBUG_OUT
    printf( "02. The file '%s' was readed, size = %d butesn", argv[2], dwBytesRead );
#endif
 
    // Убираем разрывы строк, пробелы и другие спецсимволы - поля же файле е закодированы в base64, чтобы потом легчо было пропарсить
    pbClrContent = (BYTE*)malloc(cbEncrypt);
    if (pbClrContent == NULL) HandleError("Out of memory. n");
    for(i=0; i<strlen(pbEncrypt); i++)
    {
//     if( ! ( (pbEncrypt[i] = 13) or (pbEncrypt[i] = 10) or (pbEncrypt[i] = 32) pbEncrypt[i] = 9) )
       if((pbEncrypt[i] >32)&&(pbEncrypt[i]<127)) pbClrContent[cbClrContent++] = pbEncrypt[i];
    }
#ifdef DEBUG_OUT
    printf( "tClear size = %d bytesn", cbClrContent );
#endif
 
    // Находим позиции сертификата FSS
    pbContent = (char *)strstr(pbClrContent, SearchStr1);
    if ( pbContent == NULL) HandleError("Not found Encoding parameters structuren");
    pos_Cert1 = pbContent-pbClrContent+1+strlen(SearchStr1);
 
    pbContent = (char *)strstr(pbClrContent, SearchStr2);
    if ( pbContent == NULL) HandleError("Not found End of Certificaten");
    pos_Cert2 = pbContent-pbClrContent+1;
#ifdef DEBUG_OUT
    printf ("03. Found Certificate at positions  %d - %dn",pos_Cert1, pos_Cert2);
#endif
 
    // Копируем сертификат в pbCert
    pbCert = base64_decode(&pbClrContent[pos_Cert1-1], pos_Cert2-pos_Cert1, &cbCert);
 
 
#ifdef DEBUG_OUT
    // Для отладки пишем  сертификат в файл.
    if(!(fhCertB64 = fopen("certificate.txt", "w+b" ))) HandleError( "Problem opening the file 'certificate.txt'n" );
    printf( "tThe file 'certificate.txt' was openedn" );
    if(!fwrite( &pbClrContent[pos_Cert1-1], 1, pos_Cert2-pos_Cert1, fhCertB64)) HandleError( "The  content can not be written to the 'certificate.txt'n" );
    printf( "tThe  content was written to the 'certificate.txt'n" );
 
    if(!(fhCert = fopen("certificate.bin", "w+b" ))) HandleError( "Problem opening the file 'certificate.bin'n" );
    printf( "tThe file 'certificate.bin' was openedn" );
    if(!fwrite( pbCert, 1, cbCert, fhCert)) HandleError( "The  content can not be written to the 'certificate.bin'n" );
    printf( "tThe  content was written to the 'certificate.bin'n" );
#endif
 
    // Находим позиции параметров шифрования
    pbContent = (char *)strstr(pbClrContent, SearchStr2);
    if ( pbContent == NULL) HandleError("Not found Encoding parametersn");
    pos_EncP1 = pbContent-pbClrContent+1+strlen(SearchStr2);
 
    pbContent = (char *)strstr(pbClrContent, SearchStr3);
    if ( pbContent == NULL) HandleError("Not found End of Encoding parameters structuren");
    pos_EncP2 = pbContent-pbClrContent+1;
 
#ifdef DEBUG_OUT
    printf ("04. Found Encoding parameters at positions %d - %dn",pos_EncP1, pos_EncP2);
#endif
    pbBufferB64 = base64_decode(&pbClrContent[pos_EncP1-1], pos_EncP2-pos_EncP1, &cbBufferB64);
 
    //-----------------------------------------------
    // Готовим блоб структуру
    //-----------------------------------------------
    cbBlobLenSimple = cbEncryptionParamSetStandart + sizeof(CRYPT_SIMPLEBLOB_HEADER) + SEANCE_VECTOR_LEN + G28147_KEYLEN + EXPORT_IMIT_SIZE;
    pbKeyBlobSimple = malloc(cbBlobLenSimple);
    if(!pbKeyBlobSimple) HandleError("Out of memory. n");
 
    //копируем неменяемый хедер в блобе
    memcpy(&((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->tSimpleBlobHeader, &tSimpleBlobHeaderStandart, sizeof(CRYPT_SIMPLEBLOB_HEADER));
 
    //копируем неменяемую ASN структуру
    memcpy(&((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptionParamSet, pbEncryptionParamSetStandart, cbEncryptionParamSetStandart); 
 
    // копируем session_SV
    memcpy(&((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bSV, &pbBufferB64[SV_OFFSET], SEANCE_VECTOR_LEN);
 
    // копируем session_EncryptedKey
    memcpy(&((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bEncryptedKey, &pbBufferB64[ENCRKEY_OFFSET], G28147_KEYLEN);
 
    // копируем session_MacKey
    memcpy(&((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bMacKey, &pbBufferB64[MACKEY_OFFSET], EXPORT_IMIT_SIZE);
 
#ifdef DEBUG_OUT
    if(!(fhMacKey = fopen("bMacKey.txt", "w+b" ))) HandleError( "Problem opening the file 'bMacKey.txt'n" );
    printf( "tThe file 'bMacKey.txt' was openedn" );
    if(!fwrite( ((CRYPT_SIMPLEBLOB*)pbKeyBlobSimple)->bMacKey, 1, EXPORT_IMIT_SIZE, fhMacKey)) HandleError( "The  content can not be written to the 'bMacKey.txt'n" );
    printf( "tThe content was written to the 'bMacKey.txt'n");
 
    printf( "tt%d bytes of tSimpleBlobHeader n"
            "tt%d bytes of bEncryptionParamSetn"
            "tt%d bytes of bSVn"
            "tt%d bytes of bEncryptedKeyn"
            "tt%d bytes of bMacKeyn"
            "tt%d bytes of total copiedn",  sizeof(CRYPT_SIMPLEBLOB_HEADER),cbEncryptionParamSetStandart,SEANCE_VECTOR_LEN,G28147_KEYLEN,EXPORT_IMIT_SIZE, cbBlobLenSimple );
 
    if(!(fhKeyBlobSimple = fopen("pbKeyBlobSimple.txt", "w+b" ))) HandleError( "Problem opening the file 'pbKeyBlobSimple.txt'n" );
    printf( "tThe file 'pbKeyBlobSimple.txt' was openedn" );
    if(!fwrite( pbKeyBlobSimple, 1, cbBlobLenSimple, fhKeyBlobSimple)) HandleError( "The  content can not be written to the 'pbKeyBlobSimple.txt'n" );
    printf( "tThe content was written to the 'pbKeyBlobSimple.txt'n" );
#endif
 
    memcpy(&pPublicKeyBlob, &pbBufferB64[PUBKEY_OFFSET], PUBKEY_LEN);
 
#ifdef DEBUG_OUT
    // для отладки пишем в файл.
    if(!(fhKeyBlob = fopen("pbKeyBlob.txt", "w+b" ))) HandleError( "Problem opening the file 'pbKeyBlob.txt'n" );
    printf( "tThe file 'pbKeyBlob.txt' was openedn" );
    if(!fwrite( pPublicKeyBlob, 1, PUBKEY_LEN, fhKeyBlob)) HandleError( "The  content can not be written to the 'pbKeyBlob.txt'n" );
    printf( "tThe content was written to the 'pbKeyBlob.txt'n");
 
    if(!(fhEncodingParametersB64 = fopen("encoding_parameters.txt", "w+b" ))) HandleError( "Problem opening the file 'encoding_parameters.txt'n" );
    printf( "tThe file 'encoding_parameters.txt' was openedn" );
    if(!fwrite( &pbClrContent[pos_EncP1-1], 1, pos_EncP2-pos_EncP1, fhEncodingParametersB64)) HandleError( "The  content can not be written to the 'encoding_parameters.txt'n" );
    printf( "tThe content was written to the 'encoding_parameters.txt'n" );
 
    if(!(fhEncodingParameters = fopen("encoding_parameters.bin", "w+b" ))) HandleError( "Problem opening the file 'encoding_parameters.bin'n" );
    printf( "tThe file 'encoding_parameters.bin' was openedn" );
    if(!fwrite( pbBufferB64, 1, cbBufferB64, fhEncodingParameters)) HandleError( "The  content can not be written to the 'encoding_parameters.bin'n" );
    printf( "tThe content was written to the 'encoding_parameters.bin'n" );
#endif
 
    // Находим основное зашифрованое содержимое
    pbContent = (char *)strstr(pbClrContent, SearchStr3);
    if ( pbContent == NULL ) HandleError("Not found Encoded contentn");
    pos_Enc1 = pbContent-pbClrContent+1+strlen(SearchStr3);
 
    pbContent = (char *)strstr(pbClrContent, SearchStr4);
    if ( pbContent == NULL ) HandleError("Not found End of encoded contentn");
    pos_Enc2 = pbContent-pbClrContent+1;
#ifdef DEBUG_OUT
    printf ("05. Found Encoded content at positions %d - %dn",pos_Enc1, pos_Enc2);
#endif
 
    // В pbBufferB64 - первые 8 байт будут вектор инициализации, затем само зашифрованное содержимое
    pbBufferB64 = base64_decode(&pbClrContent[pos_Enc1-1], pos_Enc2-pos_Enc1, &cbBufferB64);
 
#ifdef DEBUG_OUT
    // для отладки пишем в файл.
    if(!(fhEncodedContentB64 = fopen("encoded_content.txt", "w+b" ))) HandleError( "Problem opening the file 'encoded_content.txt'n" );
    printf( "tThe file 'encoded_content.txt' was openedn" );
    if(!fwrite( &pbClrContent[pos_Enc1-1], 1, pos_Enc2-pos_Enc1, fhEncodedContentB64)) HandleError( "The  content can not be written to the 'encoded_content.txt'n" );
    printf( "tThe content was written to the 'encoded_content.txt'n" );
 
    if(!(fhEncodedContent = fopen("encoded_content.bin", "w+b" ))) HandleError( "Problem opening the file 'encoded_content.bin'n" );
    printf( "tThe file 'encoded_content.bin' was openedn" );
    if(!fwrite( pbBufferB64, 1, cbBufferB64, fhEncodedContent)) HandleError( "The  content can not be written to the 'encoded_content.bin'n" );
    printf( "tThe content was written to the 'encoded_content.bin'n" );
#endif
 
    // Чтение  вектора инициализации из файла.
    memcpy(pbIV, pbBufferB64, dwIV); 
    pbContent = &pbBufferB64[dwIV];
    cbContent = cbBufferB64-dwIV;
 
    // ------------------------------------------------------------------
    // Закончили чтение файла и подготовку структур - начинаем дешифровку
    // ------------------------------------------------------------------
 
    if(!CryptAcquireContext( &hProv, argv[1], NULL, PROV_GOST_2012_256, 0)) HandleError("Error during CryptAcquireContext.");
#ifdef DEBUG_OUT
    printf("06. The key container "%s" has been acquired. n", argv[1]);
#endif
 
    // Загрузка PUBLICKEYBLOB из сертификата, открытие файла, в котором содержится открытый ключ получателя.
    pCertContext = CertCreateCertificateContext ( X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, pbCert, cbCert);
    if (!pCertContext) HandleError( "CertCreateCertificateContext" );
#ifdef DEBUG_OUT
    printf("07. Certificate context createdn");
#endif
 
	// Импортируем открытый ключ
    if (!CryptImportPublicKeyInfoEx( hProv, X509_ASN_ENCODING | PKCS_7_ASN_ENCODING, &(pCertContext->pCertInfo->SubjectPublicKeyInfo), 0, 0, NULL, &hPubKey)) HandleError( "CryptImportPublicKeyInfoEx" );
#ifdef DEBUG_OUT
    printf("08. Public key imported from cert filen");
#endif
 
    // экспорт открытого ключа получателя в BLOB
    if (!CryptExportKey( hPubKey, 0, PUBLICKEYBLOB, 0, pbKeyBlob, &dwBlobLen)) HandleError( "CryptExportKey" );
#ifdef DEBUG_OUT
    printf("09. Public key exported to blobn");
#endif
 
    memcpy(&pbKeyBlob[dwBlobLen-PUBKEY_LEN], pPublicKeyBlob, PUBKEY_LEN);
 
    // получение закрытого ключа
    if(!CryptGetUserKey( hProv, AT_KEYEXCHANGE, &hKey))  HandleError("Error during CryptGetUserKey private key.");
#ifdef DEBUG_OUT
   	printf("10. The private key has been acquired. n");
#endif
 
    //получение ключа согласования импортом открытого ключа отправителя на закрытом ключе
	if(!CryptImportKey(hProv, pbKeyBlob, dwBlobLen, hKey, 0, &hAgreeKey)) HandleError("Error during CryptImportKey public key.");
#ifdef DEBUG_OUT
    printf("11. The sender public key has been imported. n");
#endif
 
    // установление PRO_EXPORT  алгоритма ключа согласования ---не PRO12_EXPORT !
    if(!CryptSetKeyParam( hAgreeKey, KP_ALGID, (LPBYTE)&ke_alg, 0)) HandleError("Error during CryptSetKeyParam agree key.");
#ifdef DEBUG_OUT
    printf("12. PRO_EXPORT agree key algorithm has been set. n");
#endif
 
    // Получение сессионного ключа импортом зашифрованного сессионного ключа  на ключе согласования Agree.
    if(!CryptImportKey( hProv, pbKeyBlobSimple, cbBlobLenSimple, hAgreeKey, 0, &hSessionKey)) HandleError("Error during CryptImportKey session key.");
#ifdef DEBUG_OUT
    printf("13. The session key has been imported. n");
#endif
 
    // Установка вектора инициализации - без него первые 8 байт расшифруются неправильно.
    if(!CryptSetKeyParam( hSessionKey, KP_IV, pbIV, 0))	HandleError("Error during CryptSetKeyParam.");
#ifdef DEBUG_OUT
    printf("14. CryptSetKeyParam setting IV succeeded. n");
#endif
 
    // установка режима шифрования CBC
    if(!CryptSetKeyParam( hSessionKey, KP_MODE, (LPBYTE)&keyParam, 0))	HandleError("Error during CryptSetKeyParam.");
#ifdef DEBUG_OUT
    printf("15. CryptSetKeyParam setting CBC mode succeeded. n");
#endif
 
    // установка режима паддинга
    if(!CryptSetKeyParam( hSessionKey, KP_PADDING, (LPBYTE)&paddingMode, 0)) HandleError("Error during CryptSetKeyParam.");
#ifdef DEBUG_OUT
    printf("16. CryptSetKeyParam setting ISO10126 padding succeeded. n");
#endif
 
 
#ifdef DEBUG_OUT
    if(!(fhContent = fopen("content.bin", "w+b" ))) HandleError( "Problem opening the file 'content.bin'n" );
    printf( "tThe file 'content.bin' was openedn" );
    if(!fwrite( pbContent, 1, cbContent, fhContent)) HandleError( "The  content can not be written to the 'content.bin'n" );
    printf( "tThe content was written to the 'content.bin', size = %dn", cbContent );
#endif
 
    // Дешифрование зашифрованного базового SOAP-запроса, после которого в
    // decryptedData будет содержать дешифрованные данные,
    // а decryptedDataLen - длину расшифрованных данных
 
    if(!CryptDecrypt( hSessionKey, 0, TRUE, 0, pbContent, &cbContent)) HandleError("Decryption failed.");
#ifdef DEBUG_OUT
    printf("17. Decryption succeeded. n");
#endif
 
    // Запись расшифрованного блока в файл.
    if(!(fhOutput = fopen(argv[3], "w+b" ))) HandleError( "Problem opening the file for encoded xmln" );
#ifdef DEBUG_OUT
    printf( "tThe file '%s' was openedn", argv[3] );
#endif
    if(!fwrite( pbContent, 1, cbContent, fhOutput)) HandleError( "The decrypted content can not be written 'n" );
#ifdef DEBUG_OUT
    printf( "18. The decrypted content was written to the '%s'n", argv[3] );
#endif
 
    CleanUp();
 
#ifdef DEBUG_OUT
    printf("The program ran to completion without error. n");
#endif
 
    return 0;
}
 
 
 
void CleanUp(void)
{
    if(fhEncrypt) fclose (fhEncrypt);
    if(fhOutput) fclose (fhOutput);
#ifdef DEBUG_OUT
    if(fhCert) fclose (fhCert);
    if(fhCertB64) fclose (fhCertB64);
    if(fhMacKey) fclose (fhMacKey);
    if(fhKeyBlobSimple) fclose (fhKeyBlobSimple);
    if(fhKeyBlob) fclose (fhKeyBlob);
    if(fhEncodingParametersB64) fclose (fhEncodingParametersB64);
    if(fhEncodingParameters) fclose (fhEncodingParameters);
    if(fhEncodedContentB64) fclose (fhEncodedContentB64);
    if(fhEncodedContent) fclose (fhEncodedContent);
    if(fhContent) fclose (fhContent);
#endif
    if(hKey) CryptDestroyKey(hKey);                 // Уничтожение дескриптора закрытого ключа.
    if(hSessionKey) CryptDestroyKey(hSessionKey);   // Уничтожение дескриптора сессионного ключа.
    if(hAgreeKey) CryptDestroyKey(hAgreeKey);       // Уничтожение дескриптора ключа согласования.
    if(hProv) CryptReleaseContext(hProv, 0);        // Освобождение дескриптора провайдера.
}
 
BYTE *base64_decode(const BYTE *data, DWORD input_length, DWORD *output_length)
{
    int i, j;
    DWORD sextet_a, sextet_b, sextet_c, sextet_d, triple;
 
    if (decoding_table == NULL) build_decoding_table();
 
    if (input_length % 4 != 0) return NULL;
 
    *output_length = input_length / 4 * 3;
    if (data[input_length - 1] == '=') (*output_length)--;
    if (data[input_length - 2] == '=') (*output_length)--;
 
    BYTE *decoded_data = malloc(*output_length);
    if (decoded_data == NULL) return NULL;
 
    for (i = 0, j = 0; i < input_length;) {
 
        sextet_a = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
        sextet_b = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
        sextet_c = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
        sextet_d = data[i] == '=' ? 0 & i++ : decoding_table[data[i++]];
 
        triple = (sextet_a << 3 * 6)
                + (sextet_b << 2 * 6)
                + (sextet_c << 1 * 6)
                + (sextet_d << 0 * 6);
 
        if (j < *output_length) decoded_data[j++] = (triple >> 2 * 8) & 0xFF;
        if (j < *output_length) decoded_data[j++] = (triple >> 1 * 8) & 0xFF;
        if (j < *output_length) decoded_data[j++] = (triple >> 0 * 8) & 0xFF;
    }
    return decoded_data;
}
 
void build_decoding_table()
{
    int i;
    decoding_table = malloc(256);
    for (i = 0; i < 64; i++) decoding_table[(BYTE) encoding_table[i]] = i;
}
 
//--------------------------------------------------------------------
//  В этом примере используется функция HandleError, функция обработки
//  простых ошибок, для печати сообщения и выхода из программы. 
//  В большинстве приложений эта функция заменяется другой функцией, 
//  которая выводит более полное сообщение об ошибке.
 
void HandleError(char *s)
{
    DWORD err = GetLastError();
    printf("Error number     : 0x%xn", err);
    printf("Error description: %sn", s);
    CleanUp();
    if(!err) err = 1;
    exit(err);
}
 
 
 
 
 
 

#!/bin/sh # Copyright(C) 2005-2017 # # Этот файл содержит информацию, являющуюся # собственностью компании Крипто-Про. # # Любая часть этого файла не может быть скопирована, # исправлена, переведена на другие языки, # локализована или модифицирована любым способом, # откомпилирована, передана по сети с или на # любую компьютерную систему без предварительного # заключения соглашения с компанией Крипто-Про. # # This is proprietary information of # Crypto-Pro company. # # Any part of this file can not be copied, # corrected, translated into other languages, # localized or modified by any means, # compiled, transferred over a network from or to # any computer system without preliminary # agreement with Crypto-Pro company # IMPORTANT NOTE # echo’s to stdout are redirected to gui-notifications, # so don’t change output stream if not necessary. COMPAT_VERSION=«1.0.0-1« VERSION=«5.0.*-5« PACKAGE_NAMES=«« FROM_REPO=0 # Exit codes. SUCCESS=0 FAILURE=1 PACKAGES_NOT_AVAILABLE=2 parse_args() { _enclosure=«kc1« while ! [ -z «$1« ] ; do case «$1« in «kc1«) ;; «kc2«) _enclosure=«kc2« ;; «—from-repo«) FROM_REPO=1 ;; «-help«|«—help«) show_help exit «${SUCCESS}« ;; *) _additional_packages=«$*« break ;; esac shift done PACKAGE_NAMES=«lsb-cprocsp-base lsb-cprocsp-rdr lsb-cprocsp-${_enclosure} lsb-cprocsp-capilite cprocsp-curl lsb-cprocsp-ca-certs ${_additional_packages}« } show_help() { echo « usage: ./install.sh [kc1|kc2] [package […]] kc1: install kc1 packages (by default) kc2: install kc2 packages [package […]]: list of additional packages« } which_architecture() { machine_architecture=«$(uname -m)« case «${machine_architecture}« in «x86_64«|«amd64«|«ppc64«|«ppc64le«|«e2k«) bits_postfix=«-64« ;; *) bits_postfix=«« ;; esac case «${machine_architecture}« in arm*) is_arm=1 ;; *) is_arm=0 ;; esac } check_if_debian_system() { if [ -f /etc/debian_version ] || [ -f /etc/mcst_version ] || grep Ubuntu /etc/lsb-release > /dev/null 2>&1 then is_debian_system=1 else is_debian_system=0 fi } check_release_attributes() { if ls ./lsb-cprocsp-base*.deb > /dev/null 2>&1 ; then is_debian_release=1 else is_debian_release=0 fi if ls ./lsb-cprocsp-base*.rpm > /dev/null 2>&1 ; then is_rpm_release=1 else is_rpm_release=0 fi if ls ./lsb-cprocsp-rdr-64* > /dev/null 2>&1 ; then is_64_release=1 else is_64_release=0 fi } # Use dpkg or alien on debian systems, otherwise use rpm. set_inst_cmd() { if [ «${is_debian_system}« -eq 1 ] ; then if [ «${is_debian_release}« -eq 1 ] ; then inst_cmd=«dpkg -i« else inst_cmd=«alien -kci« fi else if [ «${is_rpm_release}« -eq 1 ] ; then inst_cmd=«rpm -i« else echo «Error: you are trying to install debian packages on not debian package system« exit «${FAILURE}« fi fi } # The release variables are used to construct full names of packages. set_release_variables() { if [ «${is_debian_system}« -eq 1 ] && [ «${is_debian_release}« -eq 1 ] then first_delimeter=«_« noarch=«all« second_delimeter=«_« extension=«.deb« else first_delimeter=«« noarch=«noarch« second_delimeter=«.« extension=«.rpm« fi case «${machine_architecture}« in # Enforce to install 64-bit packages on 64-bit system. «x86_64«|«amd64«) if [ «${is_debian_system}« -eq 1 ] && [ «${is_debian_release}« -eq 1 ] then arch=«amd64« else arch=«x86_64« fi ;; «ppc64«|«ppc64le«) arch=«${machine_architecture}« ;; arm*|«mips«) arch=«${noarch}« ;; «e2k«) arch=«e2k-4c« ;; *) if [ «${is_debian_system}« -eq 1 ] && [ «${is_debian_release}« -eq 1 ] then arch=«i386« elif ls ./*.i686.rpm > /dev/null 2>&1 ; then arch=«i686« else arch=«i486« fi ;; esac } lsb_warning() { echo «Warning: lsb-core or lsb-compat package not installed — installing cprocsp-compat-debian. If you prefer to install system lsb-core or lsb-compat package then * uninstall CryptoPro CSP * install lsb-core or lsb-compat manually * install CryptoPro CSP again « } construct_compat_package() { compat_package= # Return if lsb package is installed. if [ «${is_debian_system}« -eq 1 ] ; then if dpkg -s lsb-core >/dev/null 2>&1 || dpkg -s lsb-compat >/dev/null 2>&1 then return fi elif rpm -q lsb-core >/dev/null 2>&1 ; then return fi if [ «${is_arm}« -eq 1 ] ; then _distr=armhf elif [ -f /etc/mcst_version ] ; then _distr=mcst elif [ -f /etc/cp-release ] ; then if grep Gaia /etc/cp-release >/dev/null 2>&1 ; then _distr=gaia else _distr=splat fi elif [ -f /etc/altlinux-release ] ; then _distr=«altlinux${bits_postfix}« elif [ -f /etc/os-rt-release ] ; then _distr=«osrt${bits_postfix}« elif [ «${is_debian_system}« -eq 1 ] ; then lsb_warning _distr=debian else return fi compat_package=«cprocsp-compat- ${_distr} ${first_delimeter} ${COMPAT_VERSION} ${second_delimeter} ${noarch} ${extension}« } construct_other_packages() { other_packages=«« _absent=«« for _name in ${PACKAGE_NAMES} ; do _package=«${_name}« if [ «${is_64_release}« -eq 1 ] ; then _package=«${_package}${bits_postfix}« fi _package=«${_package} ${first_delimeter} ${VERSION} ${second_delimeter} ${arch} ${extension}« # There are several packages which are NOT architecture-specific, # e.g. lsb-cprocsp-base, lsb-cprocsp-ca-certs and devel-packages. # If the architecture-specific package is not found, try to install # the noarch package. # shellcheck disable=SC2086 if ! [ -f ${_package} ] ; then _package=«${_name} ${first_delimeter} ${VERSION} ${second_delimeter} ${noarch} ${extension}« fi # Even the noarch package wasn’t found. # shellcheck disable=SC2086 if ! [ -f ${_package} ] ; then _absent=«${_absent} ${_name}« else other_packages=«${other_packages} ${_package}« fi done if ! [ -z «${_absent}« ] ; then echo «Error: the following packages are not available in the current directory:« echo «${_absent}« | xargs -n1 echo «*« exit «${PACKAGES_NOT_AVAILABLE}« fi } construct_list_of_packages() { packages=«« construct_compat_package packages=«${packages} ${compat_package}« # Other packages are the base packages and additional packages # specified by command-line arguments. construct_other_packages packages=«${packages} ${other_packages}« # Remove duplicate packages. packages=«$( echo «${packages}« | awk {for(i=1;i<=NF;i++)if(!a[$i]++)print $i} | xargs )« } check_fail() { echo «Error: installation failed. LSB package may not be installed. Install LSB package and reinstall CryptoPro CSP. If it does not help, please read installation documentation or contact the manufacturer: support@cryptopro.ru.« exit «$1« } # Install packages one at a time before capilite, then batch install. install_packages() { while ! [ -z «${packages}« ] ; do _head=«$(echo «${packages}« | awk {print $1})« _tail=«$(echo «${packages}« | awk {for(i=2;i<=NF;i++)print $i} | xargs)« eval «echo ‘Installing’ ${_head} ‘…’« >&2 eval «${inst_cmd} ${_head}« >&2 || check_fail «$?« if echo «${_head}« | grep capilite > /dev/null 2>&1 && ! [ -z «${_tail}« ] then eval «echo ‘Installing’ ${_tail} ‘…’« >&2 eval «${inst_cmd} ${_tail}« >&2 || check_fail «$?« return fi packages=«${_tail}« done } construct_list_of_packages_from_repository() { _tmp_repo=«$(mktemp)« # Если файл со списком пакетов в репозитории существует и единственный, то скопировать его во временный файл _tmp_repo. # shellcheck disable=SC2144 if [ -f /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages* ] ; then cp /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages* «${_tmp_repo}« fi # Если lz-архив со списком пакетов в репозитории существует и единственный, то разархивировать его во временный файл _tmp_repo. # shellcheck disable=SC2144 if [ -f /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages*.lz ] ; then lzip -d -c /var/lib/apt/lists/cryptopro.ru_debrepo_dists_*-unstable_main_binary-*_Packages*.lz > «${_tmp_repo}« fi packages=«« _absent=«« for _name in ${PACKAGE_NAMES} ; do _package=«${_name}${bits_postfix}« if ! grep Package: «${_tmp_repo}« | grep «${_package}« > /dev/null 2>&1 then _package=«${_name}« fi if ! grep Package: «${_tmp_repo}« | grep «${_package}« > /dev/null 2>&1 then _absent=«${_absent} ${_name}« else packages=«${packages} ${_package}« fi done rm -f «${_tmp_repo}« if ! [ -z «${_absent}« ] ; then echo «Error: the following packages are not available in the current repository:« echo «${_absent}« | xargs -n1 echo «*« exit «${PACKAGES_NOT_AVAILABLE}« fi # Remove duplicate packages. packages=«$( echo «${packages}« | awk {for(i=1;i<=NF;i++)if(!a[$i]++)print $i} | xargs )« } main() { if [ «$(id -u)« -ne 0 ] ; then echo «Error: this script must be run as root« exit «${FAILURE}« fi cd «$(dirname «$0«)« || check_fail «$?« parse_args «$@« which_architecture if [ «${FROM_REPO}« -eq 1 ] ; then construct_list_of_packages_from_repository sh ./uninstall.sh >&2 || check_fail «$?« eval «apt-get —yes install ${packages}« >&2 || check_fail «$?« echo «CSP packages have been successfully installed from a repository« exit «${SUCCESS}« fi check_if_debian_system check_release_attributes set_inst_cmd set_release_variables construct_list_of_packages sh ./uninstall.sh >&2 || check_fail «$?« install_packages echo «CSP packages have been successfully installed« exit «${SUCCESS}« } main «$@«

Понравилась статья? Поделить с друзьями:
  • Error install failed no matching abis
  • Error install directory is missing
  • Error install app pls install local application bitrix24
  • Error inserting template into database
  • Error inserting data into table microsoft sql server import wizard