Я создал Dockerfile, который может воспроизвести тот же результат. Код Python в конце должен показывать «1» и «OpenSSL 1.0.2t-fips 10 сентября 2019 года», а вместо этого показывать «0» и «OpenSSL 1.0.2t 10 сентября 2019 года» (без -fips обозначение).
Меня поражает то, что когда я вызываю созданную мной версию Openssl CLI, он правильно показывает версию с суффиксом -fips. Поэтому я предполагаю, что где-то ошибся при построении криптографии.
Буду благодарен за любую помощь!
Код: Выделить всё
FROM centos
# Install build dependencies
RUN yum groupinstall -y "Development Tools" && \
yum install -y python-devel libffi-devel
# Install Python dependencies
RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
python get-pip.py && \
pip install virtualenv setuptools wheel pip
# Build Fips object module
RUN curl -O https://www.openssl.org/source/openssl-fips-2.0.16.tar.gz && \
tar xvf openssl-fips-2.0.16.tar.gz && \
cd openssl-fips-2.0.16 && \
./config && \
make && \
make install
# Build OpenSSL
RUN curl -O https://www.openssl.org/source/openssl-1.0.2t.tar.gz && \
tar xvf openssl-1.0.2t.tar.gz && \
cd /openssl-1.0.2t && \
./config fips no-shared -fPIC --prefix=/openssl-1.0.2t/openssl && \
make depend && \
make && \
make install_sw
# Build cryptography
RUN CFLAGS="-I/openssl-1.0.2t/openssl/include" LDFLAGS="-L/openssl-1.0.2t/openssl/lib" pip wheel --no-cache --no-binary :all: cryptography && \
pip install cryptography*.whl
# Test if fips is enabled
RUN python -c "\
from cryptography.hazmat.backends.openssl.backend import backend;\
print backend._lib.FIPS_mode_set(1);\
print ''.join([backend._lib.OPENSSL_VERSION_TEXT[i] for i in range(30)])"
РЕДАКТИРОВАТЬ: Добавив -DOPENSSL_FIPS в сборку шифрования, я смог сделать выходные данные OPENSSL_VERSION_TEXT равными OpenSSL 1.0.2t-fips 10 сен. 20, но вывод FIPS_mode_set(1) по-прежнему равен 0.
РЕДАКТИРОВАТЬ 2: Использование ERR_get_error() показывает следующее:
Код: Выделить всё
>>> print backend._lib.FIPS_mode_set(1)
0
>>> print backend._lib.ERR_get_error()
755413103
Код: Выделить всё
openssl errstr 755413103
error:755413103:lib(85):func(1043):reason(259)
Подробнее здесь: https://stackoverflow.com/questions/582 ... hy-library
Мобильная версия