Статус: Новичок
Группы: Участники
Зарегистрирован: 26.11.2024(UTC) Сообщений: 2  Поблагодарили: 3 раз в 1 постах
|
Знаю тема древняя, но у меня получилось успешно собрать pycades под macOS Sequoia 15.6.1 на M1 (arm). На Intel эта инструкция тоже подходит, но пути до Homebrew будут другие. Оставлю здесь инструкцию для потомков, т.к. сам потратил не один час чтобы заставить все работать. Необходимые требования перед сборкой:
- Установлены инструменты командной строки для разработки Xcode:
- Установлен brew
- При помощи brew установлены python, boost, cmake (я использовал Python 3.9, но более свежие версии питона наверняка тоже должны работать):
Код:brew install python@3.9 boost cmake
- Установлен КриптоПро CSP (на момент написания у меня установлена версия 5.0.13000). В результате установки у вас должны быть:
- Приложение CryptoPro_ECP.app (/Applications/CryptoPro_ECP.app)
- Файлы /opt/cprocsp/lib/libcapi20.dylib
- /opt/cprocsp/lib/libcapi10.dylib
- /opt/cprocsp/lib/librdrsup.dylib
- Вы должны знать куда brew установил вам Python. На arm и Intel эти пути отличаются, в моем случае установка была произведена сюда: /opt/homebrew/Cellar/python@3.9/3.9.23/Frameworks/Python.framework/Versions/3.9/
Далее шаги сборки:
- Скачать исходный код pycades:
Код:git clone https://github.com/CryptoPro/pycades.git
cd pycades*
- Редактируем файл CMakeLists.txt (для удобства также прикладываю patch файл
CMakeLists-macOS.patch (3kb) загружен 3 раз(а).. Также можно скачать мой готовый CMakeLists.txt (4kb) загружен 0 раз(а).. В любом случае перепроверяйте пути.
- Выполняем сборку:
Код:mkdir build
cd build
cmake ..
make -j4
- если сборка прошла успешно, то в папке build вы увидите файл pycades.dylib
- так как Python на macOS не понимает dylib-ы, тупо переименовываем его в pycades.so
- Готово! Скомпилированный so-шник можно использовать согласно официальной инструкции тут
Если где то указали не те пути и нужно начать заново - сотрите папку build и начинайте сначала. Как выглядит сборка у меня: Код:
CMake Deprecation Warning at CMakeLists.txt:1 (CMAKE_MINIMUM_REQUIRED):
Compatibility with CMake < 3.10 will be removed from a future version of
CMake.
Update the VERSION argument <min> value. Or, use the <min>...<max> syntax
to tell CMake that the project requires at least <min> but has been updated
to work with policies introduced by <max> or earlier.
-- The CXX compiler identification is AppleClang 17.0.0.17000013
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning (dev) at CMakeLists.txt:41 (FIND_PACKAGE):
Policy CMP0167 is not set: The FindBoost module is removed. Run "cmake
--help-policy CMP0167" for policy details. Use the cmake_policy command to
set the policy and suppress this warning.
This warning is for project developers. Use -Wno-dev to suppress it.
-- Found Boost: /opt/homebrew/lib/cmake/Boost-1.89.0/BoostConfig.cmake (found version "1.89.0")
-- cprocsp-pki-cades: ..
-- Configuring done (2.7s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/t01ik/Developer/epgu-connect/pycades/build
t01ik@MacBook-Pro-X5 build % make -j4
[ 2%] Building CXX object CMakeFiles/pycades.dir/PyCades.cpp.o
[ 8%] Building CXX object CMakeFiles/pycades.dir/PyCadesAbout.cpp.o
[ 8%] Building CXX object CMakeFiles/pycades.dir/errormsg.cpp.o
[ 11%] Building CXX object CMakeFiles/pycades.dir/PyCadesAlgorithm.cpp.o
[ 14%] Building CXX object CMakeFiles/pycades.dir/PyCadesAttribute.cpp.o
[ 17%] Building CXX object CMakeFiles/pycades.dir/PyCadesAttributes.cpp.o
[ 20%] Building CXX object CMakeFiles/pycades.dir/PyCadesBasicConstraints.cpp.o
[ 22%] Building CXX object CMakeFiles/pycades.dir/PyCadesBlobs.cpp.o
[ 25%] Building CXX object CMakeFiles/pycades.dir/PyCadesCertificate.cpp.o
[ 28%] Building CXX object CMakeFiles/pycades.dir/PyCadesCertificates.cpp.o
[ 31%] Building CXX object CMakeFiles/pycades.dir/PyCadesCertificateStatus.cpp.o
[ 34%] Building CXX object CMakeFiles/pycades.dir/PyCadesCRL.cpp.o
[ 37%] Building CXX object CMakeFiles/pycades.dir/PyCadesEncodedData.cpp.o
[ 40%] Building CXX object CMakeFiles/pycades.dir/PyCadesEnvelopedData.cpp.o
[ 42%] Building CXX object CMakeFiles/pycades.dir/PyCadesEKU.cpp.o
[ 45%] Building CXX object CMakeFiles/pycades.dir/PyCadesEKUs.cpp.o
[ 48%] Building CXX object CMakeFiles/pycades.dir/PyCadesExtension.cpp.o
[ 51%] Building CXX object CMakeFiles/pycades.dir/PyCadesExtensions.cpp.o
[ 54%] Building CXX object CMakeFiles/pycades.dir/PyCadesExtendedKeyUsage.cpp.o
[ 57%] Building CXX object CMakeFiles/pycades.dir/PyCadesHashedData.cpp.o
[ 60%] Building CXX object CMakeFiles/pycades.dir/PyCadesKeyUsage.cpp.o
[ 62%] Building CXX object CMakeFiles/pycades.dir/PyCadesOID.cpp.o
[ 65%] Building CXX object CMakeFiles/pycades.dir/PyCadesPrivateKey.cpp.o
[ 68%] Building CXX object CMakeFiles/pycades.dir/PyCadesPublicKey.cpp.o
[ 71%] Building CXX object CMakeFiles/pycades.dir/PyCadesRawSignature.cpp.o
[ 74%] Building CXX object CMakeFiles/pycades.dir/PyCadesRecipients.cpp.o
[ 77%] Building CXX object CMakeFiles/pycades.dir/PyCadesSignatureStatus.cpp.o
[ 80%] Building CXX object CMakeFiles/pycades.dir/PyCadesSignedData.cpp.o
[ 82%] Building CXX object CMakeFiles/pycades.dir/PyCadesSignedXML.cpp.o
[ 85%] Building CXX object CMakeFiles/pycades.dir/PyCadesSigner.cpp.o
[ 88%] Building CXX object CMakeFiles/pycades.dir/PyCadesSigners.cpp.o
[ 91%] Building CXX object CMakeFiles/pycades.dir/PyCadesStore.cpp.o
[ 94%] Building CXX object CMakeFiles/pycades.dir/PyCadesSymmetricAlgorithm.cpp.o
[ 97%] Building CXX object CMakeFiles/pycades.dir/PyCadesVersion.cpp.o
[100%] Linking CXX shared library pycades.dylib
[100%] Built target pycades
В принципе все, останутся вопросы, постараюсь помочь чем смогу :)
|
 3 пользователей поблагодарили T01iK за этот пост.
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,228  Сказал(а) «Спасибо»: 105 раз Поблагодарили: 292 раз в 272 постах
|
Добрый день! спасибо за инструкцию.
попробуйте позапускать пару раз тестовый пример создания и проверки подписи. главное убедиться что нет падений в либе pycades |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 26.11.2024(UTC) Сообщений: 2  Поблагодарили: 3 раз в 1 постах
|
Попробовал - создание подписи работает отлично, а вот проверка - 50/50. Иногда успешно, а иногда крашит питон: Код:
Python(60024,0x1faf2e0c0) malloc: *** error for object 0x600000846120: pointer being freed was not allocated
Python(60024,0x1faf2e0c0) malloc: *** set a breakpoint in malloc_error_break to debug
zsh: abort python3.9 test.py
Код:
zsh: segmentation fault python3.9 test.py
Для моего кейса разработки локально на маке хватает тупо создания подписи, но если кто то доведет до ума и проверку подписи было бы неплохо)
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,228  Сказал(а) «Спасибо»: 105 раз Поблагодарили: 292 раз в 272 постах
|
да спасибо. у меня был аналогичный результат когда я пытался сделать патчи под мак некоторое время назад. поэтому для вливания в основной гитхаб пока речи нет.
спасибо за ваши старания, а мы, по возможности, попробуем устранить падения. |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close