сontrol openssl-gost портит openssl.cnf, если он содержит в начале параметры без секции. Происходит это потому что скрипт вставляет в начало openssl.cnf вот это: openssl_conf = openssl_def [ openssl_def ] engines = engine_section и все параметры в начале файла без секции теперь входят в [ openssl_def ] Проявилось вот так: openssl enc -ciphers Supported ciphers: .................. -rc2-64-cbc -rc2-cbc -rc2-cfb -rc2-ecb -rc2-ofb -rc4 -rc4-40 -seed -seed-cbc -se140158277650240:error:25066067:DSO support routines:dlfcn_load:could not load the shared library:crypto/dso/dso_dlfcn.c:118:filename(libHOME.so): libHOME.so: cannot open shared object file: No such file or directory 140158277650240:error:25070067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:162: 140158277650240:error:0E07506E:configuration file routines:module_load_dso:error loading dso:crypto/conf/conf_mod.c:224:module=HOME, path=HOME 140158277650240:error:0E076071:configuration file routines:module_run:unknown module name:crypto/conf/conf_mod.c:165:module=HOME ed-cfb -seed-ecb -seed-ofb -sm4 -sm4-cbc -sm4-cfb -sm4-ctr -sm4-ecb -sm4-ofb
Принципиально, я не против переделать скрипт. Но мне нужно какое-то доказательство, что при наличии строчки openssl_conf=секция, параметры, как вы правильно указали, вне всякой секции вообще учитываются OpenSSL. Мне кажется, что openssl_conf=секция говорит OpenSSL, что "конфиг теперь начинается с <секция>, а всё, что выше, нужно отбросить".
(Ответ для manowar@altlinux.org на комментарий #1) > Принципиально, я не против переделать скрипт. Но мне нужно какое-то > доказательство, что при наличии строчки openssl_conf=секция, параметры, как > вы правильно указали, вне всякой секции вообще учитываются OpenSSL. Мне > кажется, что openssl_conf=секция говорит OpenSSL, что "конфиг теперь > начинается с <секция>, а всё, что выше, нужно отбросить". Тут как раз таки проблема в том, что параметры, которые были глобальными, после отработки скрипта теперь входят в openssl_conf. Вот начало конфига с пометками, чтоб было понятнее: openssl_conf = openssl_def #### Эти строки были вставлены скриптом [ openssl_def ] engines = engine_section # #### Файл раньше начинался вот здесь # OpenSSL example configuration file. # This is mostly being used for generation of certificate requests. # # Note that you can include other files from the main configuration # file using the .include directive. #.include filename # This definition stops the following lines choking if HOME isn't # defined. HOME = . #### упс, кажется этот был параметр без секции, а теперь входит в [ openssl_def ] # Extra OBJECT IDENTIFIER info: #oid_file = $ENV::HOME/.oid oid_section = new_oids #### и этот тоже # To use this configuration file with the "-extfile" option of the # "openssl x509" utility, name here the section containing the # X.509v3 extensions to use: # extensions = # (Alternatively, use a configuration file that has only # X.509v3 extensions in its main [= default] section.) [ new_oids ] ..................... То есть, параметры HOME и old_section теперь попадают в [ openssl_def ], хотя были глобальными
ping
Хорошо. Я сейчас проверю отладчиком как раз на "oid_section". Если выяснится, что он читается только вне всякой секции, то поправлю контрол.
Да, действительно, секция [ openssl_def ], объявленная в самом начале ломает нормальное чтение конфига. И я нашёл два способа починить это. Самый простой заключается в том, чтобы просто назвать эту первую секцию специальным именем [ default ]. Тогда "глобальные" переменные читаются. В итоге будет: openssl_conf = default [ default ] engines = engines_section ... # и дальше исходный файл, затем ... [ engines_section ] # и всё гостовое Второй способ заключается в том, чтобы назвать секцию, где объявляются engines другим именем (имя default использовать в этом случае нельзя) и поместить эту секцию в середину или же в конец: # OpenSSL example configuration file. # и дальше исходный файл, затем ... openssl_conf = default_modules [ default_modules ] engines = engines_section [ engines_section ] # и всё гостовое Какой вариант больше нравится?
по мне так оба варианта выглядят рабочими. Просто исходя из того, что использование секции default выглядит костылём, я бы предпочёл объявление в конце файла с другим именем. Но тебе виднее, как мне кажется.
(Ответ для manowar@altlinux.org на комментарий #5) Лучше в конец.
http://git.altlinux.org/tasks/252666/
(In reply to manowar@altlinux.org from comment #8) > http://git.altlinux.org/tasks/252666/ Ping? Если новое поведение подходит, то мне нужен approve, чтобы наконец обновить в Сизифе.
Ping
$ ssh girar task show 252666 id=252666 locked=no shared=no fail_early=yes test_only=yes repo=sisyphus owner=manowar state=EPERM try=1 iter=1 age=23w build_time=2020-Jun-01/17:42:03 100:dir=/people/manowar/packages/openssl-gost-engine.git 100:tag_name=v1.1.0.3.0.255.ge3af41d.p1-alt3 100:tag_id=167c32d1e5f49908d58d8fbd7f3786fb7b6d7d84 100:tag_author=Paul Wolneykien <manowar@altlinux.org> 100:fetched=2020-06-01T17:35:22 100:userid=manowar 100:pkgname=openssl-gost-engine $ ssh girar acl sisyphus openssl-gost-engine show openssl-gost-engine glebfm
openssl-gost-engine-1.1.0.3.0.255.ge3af41d.p1-alt3 -> sisyphus: Mon Jun 01 2020 Paul Wolneykien <manowar@altlinux> 1.1.0.3.0.255.ge3af41d.p1-alt3 - Fix for the "openssl-gost' control: Don't override the main section (closes: 37922).