18.04.2017

Настройка использования программы КриптоПро версии 4.0 в ОС семейства Linux

При использовании 1С:Библиотеки стандартных подсистем в операционных системах семейства Linux может возникать ошибка при настройке функций для работы с криптографией. Данная ошибка связана с новой версией КиптоПро 4.0.

Использование новой версии криптографического провайдера приводит к ошибке "Не установлена на компьютере. Ошибка при получении контекста модуля криптографии."

Для решения проблемы можно добавить в КС1- и КС2- провайдеры имя программы в виде "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider".

Чтобы добавить в КС1-провайдер имя программы в  ожидаемом виде, следует выполнить:

Копировать в буфер обмена
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add string 'Image Path' /opt/cprocsp/lib/ia32/libcsp.so
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add string 'Function Table Name' CPCSP_GetFunctionTable
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add long Type 75

cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add string 'Image Path' /opt/cprocsp/lib/ia32/libcsp.so
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add string 'Function Table Name' CPCSP_GetFunctionTable
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add long Type 80

cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add string 'Image Path' /opt/cprocsp/lib/ia32/libcsp.so
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add string 'Function Table Name' CPCSP_GetFunctionTable
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add long Type 81

Чтобы добавить в КС2-провайдер имя программы в виде "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" следует выполнить:

Копировать в буфер обмена
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add string 'Image Path' /opt/cprocsp/lib/ia32/libcspr.so
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add string 'Function Table Name' CPSRV_GetFunctionTable
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add long Type 75
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider' -add string Channel .cryptsrv

cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add string 'Image Path' /opt/cprocsp/lib/ia32/libcspr.so
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add string 'Function Table Name' CPSRV_GetFunctionTable
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add long Type 80
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider' -add string Channel .cryptsrv

cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add string 'Image Path' /opt/cprocsp/lib/ia32/libcspr.so
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add string 'Function Table Name' CPSRV_GetFunctionTable
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add long Type 81
cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong Cryptographic Service Provider' -add string Channel .cryptsrv

Команды cpconfig следует запускать для каждой архитектуры, для которой требуется использовать имя. Например:

Копировать в буфер обмена
/opt/cprocsp/sbin/ia32/cpconfig

/opt/cprocsp/sbin/amd64/cpconfig

При использовании двух провайдеров (kc1 и kc2) имя "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider" будет использовано только для одного из них.

Последний установленный пакет КриптоПро 4.0 будет использовать имя "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider".