Bug 37922 - control openssl-gost портит openssl.cnf
Summary: control openssl-gost портит openssl.cnf
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: openssl-gost-engine (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: manowar@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-24 17:36 MSK by Slava Aseev
Modified: 2020-11-13 14:11 MSK (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Slava Aseev 2020-01-24 17:36:43 MSK
с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
Comment 1 manowar@altlinux.org 2020-01-24 20:29:59 MSK
Принципиально, я не против переделать скрипт. Но мне нужно какое-то доказательство, что при наличии строчки openssl_conf=секция, параметры, как вы правильно указали, вне всякой секции вообще учитываются OpenSSL. Мне кажется, что openssl_conf=секция говорит OpenSSL, что "конфиг теперь начинается с <секция>, а всё, что выше, нужно отбросить".
Comment 2 Slava Aseev 2020-01-29 12:32:52 MSK
(Ответ для 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 ], хотя были глобальными
Comment 3 Andrey Cherepanov 2020-05-27 20:05:11 MSK
ping
Comment 4 manowar@altlinux.org 2020-05-28 11:51:22 MSK
Хорошо. Я сейчас проверю отладчиком как раз на "oid_section". Если выяснится, что он читается только вне всякой секции, то поправлю контрол.
Comment 5 manowar@altlinux.org 2020-05-29 14:52:19 MSK
Да, действительно, секция [ 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 ]
    # и всё гостовое

Какой вариант больше нравится?
Comment 6 Anton Farygin 2020-05-29 14:56:24 MSK
по мне так оба варианта выглядят рабочими. 

Просто исходя из того, что использование секции default выглядит костылём, я бы предпочёл объявление в конце файла с другим именем.

Но тебе виднее, как мне кажется.
Comment 7 Andrey Cherepanov 2020-05-29 15:32:15 MSK
(Ответ для manowar@altlinux.org на комментарий #5)

Лучше в конец.
Comment 8 manowar@altlinux.org 2020-06-01 20:36:59 MSK
http://git.altlinux.org/tasks/252666/
Comment 9 manowar@altlinux.org 2020-09-25 14:43:41 MSK
(In reply to manowar@altlinux.org from comment #8)
> http://git.altlinux.org/tasks/252666/

Ping? Если новое поведение подходит, то мне нужен approve, чтобы наконец обновить в Сизифе.
Comment 10 Andrey Cherepanov 2020-11-13 12:54:59 MSK
Ping
Comment 11 manowar@altlinux.org 2020-11-13 13:04:45 MSK
$ 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
Comment 12 Repository Robot 2020-11-13 14:11:52 MSK
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).