• Как заставить работать python c модифицированной OpenSSL (с поддержкой ГОСТ)?

    @SlimHouse Автор вопроса
    Сквозь тернии к звездам
    В итоге, путем проб и ошибок получилось такое решение (оговорюсь, что решение можно сказать "на коленке", если кто-то предложит варианты, чтобы сделать его стабильным, то я буду за).

    1. В конфиге openssl.cnf:
    - в самом начале добавляем
    openssl_conf = openssl_def
    - в конце добавляем
    [openssl_def]
    engines = engine_section
    [engine_section]
    gost = gost_section
    [gost_section]
    engine_id = gost
    default_algorithms = ALL

    Проверяем, что все работает, командами:
    openssl ciphers |tr ":" "\n" |grep GOST
    openssl engine gost -t
    openssl engine


    2. Далее качаем исходники Python для сборки (проверено на версиях 2.7.8 и 2.7.9) и распаковываем, например:
    wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz


    3. В исходниках открываем файлик Modules/_ssl.c и делаем следующее:
    - ищем инклуды:
    #include <openssl/x509.h>
    #include <openssl/err.h>
    #include <openssl/rand.h>

    после них добавляем
    #include <openssl/conf.h>
    - ищем функцию init_ssl. В ней перед строчками
    SSL_library_init();
    SSL_load_error_strings();

    вставляем
    OPENSSL_config(NULL);

    4. Собираем Python и проверяем работу с ГОСТ.
    Ответ написан
    Комментировать