Интеграция OpenSSL 3.0.8, совместимая с FIPS, в iOSIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Интеграция OpenSSL 3.0.8, совместимая с FIPS, в iOS

Сообщение Anonymous »

Я создаю OpenSSL 3.0.8 с FIPS для устройства iOS. Я впервые берусь за такую ​​задачу.
Вот шаги, которые я выполнил на данный момент:
  • Загрузил исходный код OpenSSL 3.0.8 и настроил его для сборки для iOS с включенным FIPS, используя следующий скрипт:

    Код: Выделить всё

    configure_and_build_openssl() {
    ARCH=$1
    TARGET=$2
    SDK_VERSION=$3
    SDK_PATH=$4
    PREFIX=$5
    
    export CROSS_TOP=$(xcode-select --print-path)/Platforms/${TARGET}.platform/Developer
    export CROSS_SDK=${TARGET}${SDK_VERSION}.sdk
    export SDKROOT=${SDK_PATH}
    export BUILD_TOOLS=$(xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain
    export CROSS_COMPILE="${BUILD_TOOLS}/usr/bin/"
    
    export CC="cc -isysroot $SDK_PATH -I$SDK_PATH/usr/include -I$SDK_PATH/usr/include/$(basename $BUILD_TOOLS)"
    export CFLAGS="-isysroot $SDK_PATH -I$SDK_PATH/usr/include -I$SDK_PATH/usr/include/$(basename $BUILD_TOOLS)"
    export LDFLAGS="-isysroot $SDK_PATH"
    
    # Configure and build for the specified architecture
    ./Configure ${ARCH} enable-fips no-async no-shared no-tests enable-ec_nistp_64_gcc_128 --prefix=$PREFIX --openssldir=$PREFIX
    make -j$(sysctl -n hw.ncpu)
    make install
    make clean
    }
    
  • Обновлен файл openssl.cnf, как указано в документации модуля OpenSSL FIPS

    Скопировал libssl.a и libcrypto.a в свой проект и поместил openssl.cnf, fipsmodule.cnf, и fips.dylib в моем проекте.
  • Включен режим FIPS. Я написал следующий код, чтобы включить FIPS и проверить, включен ли он:

    Код: Выделить всё

    BOOL isFIPSModeEnabled() {
    OSSL_PROVIDER \*fips;
    OSSL_PROVIDER \*base;
    
    fips = OSSL_PROVIDER_load(NULL, "fips");
    if (fips == NULL) {
    printf("Failed to load FIPS provider\n");
    ERR_print_errors_fp(stderr);
    }
    
    base = OSSL_PROVIDER_load(NULL, "base");
    if (base == NULL) {
    OSSL_PROVIDER_unload(fips);
    printf("Failed to load base provider\n");
    return false;
    }
    
    if (EVP_default_properties_enable_fips(NULL, 1) == 0) {
    printf("Failed to enable FIPS mode\n");
    OSSL_PROVIDER_unload(base);
    OSSL_PROVIDER_unload(fips);
    return false;
    }
    
    if (EVP_default_properties_is_fips_enabled(NULL) == 1) {
    printf("FIPS mode is enabled\n");
    OSSL_PROVIDER_unload(base);
    OSSL_PROVIDER_unload(fips);
    return true;
    } else {
    printf("FIPS mode is not enabled\n");
    OSSL_PROVIDER_unload(base);
    OSSL_PROVIDER_unload(fips);
    return false;
    }
    }
    
Когда я запускаю этот код, он печатает «Режим FIPS включен». Однако поставщик не загружается, и я получаю следующее сообщение об ошибке:

Код: Выделить всё

Failed to load FIPS provider

C0BEC7F701000000:error:12800067:DSO support routines:dlfcn_load:could not load the shared                                      library:crypto/dso/dso_dlfcn.c:118:
C0BEC7F701000000:error:12800067:DSO support routines:DSO_load:could not load the shared library:crypto/dso/dso_lib.c:152:
C0BEC7F701000000:error:07880025:common libcrypto routines:provider_init:reason(524325):crypto/provider_core.c:912:name=fips
Почему не загружается поставщик FIPS? Какие шаги я могу пропустить или сделать неправильно в этом процессе?

Подробнее здесь: https://stackoverflow.com/questions/786 ... ion-in-ios
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Crypto/FIPS/FIPS.C: 154: OpenSSL Внутренняя ошибка: Fatal FIPS Self -Fail Tosf
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Crypto/FIPS/FIPS.C: 154: OpenSSL Внутренняя ошибка: Fatal FIPS Self -Fail Tosf
    Anonymous » » в форуме Linux
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Интеграция, совместимая с Openssl 3.0.8, в iOS
    Anonymous » » в форуме IOS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • OpenSSL 1.0.2 с FIPS 2.0.16
    Anonymous » » в форуме C++
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • OpenSSL 1.0.2 с FIPS 2.0.16
    Anonymous » » в форуме C++
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»