Pycrypto как установить mac os
Обновлено: 04.07.2024
Я попытался python3 setup.py build и получил очень похожий вывод:
Я попытался поискать в Google, что делать, но ничего полезного не нашел. Как я могу установить PyCrypto?
РЕДАКТИРОВАТЬ: я также пробовал несколько других вещей, таких как pip install pycrypto и sudo pip3 install pycrypto , но они не работали. @ l'L'l помог мне заставить его работать, выполнив несколько странных, сложных вещей, которых у меня никогда не было бы, хотя бы у меня было. Они обобщены в ответе ниже.
2 ответа
Обзор:
Сборка, которую вы пытаетесь выполнить вручную, выглядит так, как будто это может быть неудачно, поскольку она ссылается на OS X 10.6 SDK, которого у вас, скорее всего, нет, и по большей части устарела. Кроме того, SDK теперь хранятся в совершенно ином месте, чем в 10.6 SDK.
Местоположение новых SDK:
Местоположение старых SDK:
Несуществующий / устаревший SDK:
Поскольку создается впечатление, что при попытке построить PyCrypto он ссылается на MacOSX10.6.sdk , необходимо учитывать несколько моментов:
Если мы не будем тщательно проверять исходный код, мы можем не знать точно, где установлены неправильные флаги, но мы можем приложить все усилия, чтобы работать с имеющейся у нас информацией. Из ошибки видно, что в нескольких случаях всплывает имя SDK 10.6:
Здание из источника:
Анализируя это, мы видим, что файл MD2.c PyCrypto пытается быть собран с использованием флага -isysroot /Developer/SDKs/MacOSX10.6.sdk . Возможно, стоит попробовать pip вместо этого:
Установка с помощью pip:
Та же ошибка; мы, вероятно, должны выяснить, существует ли в системе заголовок <string.h> - Давайте создадим приложение для быстрого тестирования C , чтобы выяснить:
Тестирование заголовков C:
Очевидно, что заголовок существует, потому что тест работал нормально. Это говорит нам о том, что проблема, скорее всего, связана непосредственно с 10.6 SDK (который, кажется, не существует в системе).
Симлинкинг (несуществующий) от 10,6 SDK до 10,11 SDK:
Поскольку мы не определили, где на самом деле устанавливается SDK, мы продолжим и попытаемся создать символические ссылки, чтобы любая ссылка на старый 10.6 SDK ссылалась на самый последний SDK (на данный момент 10.11):
Мы можем проверить символическую ссылку, выполнив следующую команду:
Теперь, когда мы успешно создали символическую ссылку, давайте попробуем установить PyCrypto с помощью pip еще раз:
Нет ошибок! Похоже, наша проблема решена! Ну, почти.
Нам все еще нужно выяснить, что отвечает за установку неправильного (10.6) SDK во время сборки. Давайте используем инструмент xcrun , чтобы увидеть, какие значения по умолчанию установлены:
Системный SDK по умолчанию установлен на 10.11, поэтому он должен быть неправильно установлен на 10.6 с помощью Python, PyCrypto или какой-то другой аномалии, которую мы, возможно, не рассмотрели.
ОБНОВИТЬ:
После некоторого исследования было обнаружено, что Python 3 создается с OS X 10.6 SDK. Кроме того, он также устанавливает SDK на 10,6 и устанавливает (устаревший) путь во многих местах Python_Framework . Существует так много ссылок, что я не буду перечислять их все, хотя вот пример:
Я могу только предположить, что разработчики пытались быть как можно более обратно совместимыми, однако, к сожалению, это нарушает прямую совместимость в процессе.
Примечания:
Установка пакетов Python с помощью pip может значительно облегчить жизнь проще во многих отношениях (управление пакетами, обновление, удаление и т. д.). Например, для установки PyCrypto нужно просто выполнить команду:
Если у вас есть несколько Python, вы можете использовать номер версии для установки этого Python соответственно:
У меня возникла проблема, связанная с OSX El Capitan, когда я запускал pip install pycrypto . Я видел RuntimeError: autoconf error . Все, что мне нужно было сделать, это запустить sudo xcodebuild -license и набрать agree после просмотра лицензионного соглашения. После этого я смог использовать pip для установки pycrypto.
В настоящее время я пытаюсь установить pycrypto, и когда я выполняю сборку python setup.py, я получаю следующую ошибку:
Я уже пытался переустановить инструменты командной строки и удалить старые экземпляры Xcode.
Любая помощь будет очень благодарна
ОТВЕТЫ
Ответ 1
Это сработало для меня. (Если вы работаете на Xcode 5.1)
Ответ 2
Это сделало это для меня:
Ответ 3
Затем я закодировал свой каталог сборки и начал с установки pycrypto, и он преуспел.
Ответ 4
Ответ 5
Недавно я заметил, что мне понадобилось brew для установки gmp, чтобы снова установить pycrypto ppupup после обновления OSX 10.9 и Xcode 5. Но потом сборка gmp начала сбой при незаконном перемещении текста. Кажется, известная проблема 12946 заставляет компилятор скомпилировать независимый от позиции код:
cc -bundle - undefined dynamic_lookup -Wl, -F. -Wno-error = unused-command-line-argument-hard-error-in-future -Wno-error = unused-command-line-argument-hard-error-in-future build/temp.macosx-10.9-intel- 2.7/src/_fastmath.o -lgmp -o строить /lib.macosx-10,9-Intel-2,7/Crypto/PublicKey/_fastmath.so
ld: незаконное перемещение текста в '___gmp_binvert_limb_table' в /usr/local/lib/libgmp.a(mp_minv_tab.o) из '___gmpn_divexact_1' в /usr/local/lib/libgmp.a(dive_1.o) для архитектуры x86_64
clang: ошибка: сработала команда компоновщика с кодом выхода 1 (используйте -v, чтобы увидеть Вызов)
ошибка: команда 'cc' не удалась с статусом выхода 1
Как и в ответе radiofrequency, я символизировал общую библиотеку gmp в каталоге system/usr/lib как обходной путь:
Разработчик gmp должен добавить --with-pic.
Боковая точка: количество предупреждений, создающих pycrypto, не обеспечивает комфорта.
Ответ 6
на Эль Капитан Я только что сделал это.
et voila. Теперь я могу сохранять потоки на своем жестком диске.
Ответ 7
Для тех из вас, кто также хочет установить pycrypto, а также пакет криптографии, это команда, которая закончила работать для меня:
env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
Ответ 8
Для установки PyCrypto используйте MacPorts и следующую команду. Я тестировал его на новейшей версии Mac OS X - Yosemite:
Python Version 2.7:
Python Version 3.4:
Ответ 9
Это единственное, что сработало для меня на Mac/El Capitan:
sudo easy_install -U livestreamer
Ответ 10
Установить homebrew (одна строка для установки внизу страницы), затем попробуйте:
Ответ 11
Если я не ошибаюсь, pip и homebrew являются менеджерами пакетов, но homebrew построен на ruby, а pip построен на python.
Эта команда, на которую вы ссылались, нуждается в установке pip, а не homebrew.
«Чистая» установка (в оригинале — vanilla installation) позволяет установить систему без изменения файлов основного раздела, лишь добавляя загрузчик и необходимые драйверы в скрытый раздел диска EFI. При этом раздел с установленной macOS X остается незатронутым.
Это руководство предназначено для настольных ПК. Для ноутбуков, лучше поискать другое (там есть свои тонкости и особенности). Большая часть современного железа на базе процессоров Intel совместима с таким экспериментом.
- EFI — скрытый раздел диска, который используется на компьютерах Mac для хранения прошивки. В Hackintosh используется для размещения загрузчика OC на ПК.
- Clover — это и есть загрузчик, который мы будем использовать. Он указывает на раздел с установленной macOS X в качестве загрузки, а также загружает необходимые драйверs и исправления.
- Config.plist — конфигурационный файл для Clover. Он расскажет системе, какой Maс сконфигурирован (Mac Pro, Mac Mini или iMac), внесет необходимые исправления в ветку ACPI, пропатчит драйверы по необходимости.
- Kexts — производное от слов kernel extensions. По простому говоря, драйверы.
Стираем флешку в дисковой утилите с параметрами:
- Имя: USB.
- Формат: Mac OS Extended (журналируемый).
- Схема разделов: GUID.
Запускаем Terminal и копируем в него команду для создания загрузочной флешки:
sudo "/Applications/Install macOS Mojave.app/Contents/Resources/createinstallmedia" --volume /Volumes/USBВводим пароль, нажимаем «Y» и ждем несколько минут.
После окончания процесса переноса файлов мы получим флешку с которой можно установить macOS X на компьютеры Mac. Чтобы установить macOS X на ПК, нам нужно добавить загрузчик Clover и необходимые драйверы.
Теперь нужно запустить ранее скачанный установщик Clover, ввести пароль и на третьем этапе установки — выбрать «Изменить размещение установки… » и указать на флешку «Install macOS Mojave».
На четвёртом этапе установки «Тип установки» нажать «Настроить» и выбрать пять параметров:
Установить Clover только для UEFI-загрузки.
После установки, на рабочем столе появится подключенный раздел EFI. Его отключать не нужно. Он нам еще пригодится. Нужно проверить, что в папке /Volumes/EFI/clover/drivers/UEFI находятся (как минимум) три драйвера: ApfsDriverLoader, AptioMemoryFix и VBoxHfs. Если это так, все сделано правильно. Если нет, нужно перемотать назад и повторить установку Clover.
Эмулятор SMC
-
, или FakeSMC.kext, — минимально необходимый драйвер для загрузки. Он эмулирует SMC компьютера Mac, говоря операционной системе, что все пучком — это Mac. Без него загрузка невозможна.
Сетевая карта
-
— для большинства сетевых карт Intel. — для сетевых карт Atheros и Killer.
— для сетевых карт Realtek 100-1000Mb.
-
— универсальный драйвер для всех совместимых звуковых карт. Работает только в паре с Lilu.kext и поддерживает большинство существующих аудиокодеков.
-
— решает вопросы поддержки как дискретных графических адаптеров, так и встроенной графики. Работает в паре с Lilu.kext. Начиная с macOS X Mojave, в Apple отказались от поддержки адаптеров Nvidia, но добавили поддержку AMD RX 5XX и 5XXX. Если у вас адаптер Nvidia, то можно попробовать установить более раннюю версию OS. Например, High Sierra.
Wi‑Fi и Bluetooth
- Компьютеры Mac не славятся особым разнообразием комбо-чипов Wi‑Fi и Bluetooth. По большому счету, здесь выбор только из адаптеров Broadcom или Broadcom. Очень рекомендую использовать адаптер BCM94360CS2. Эти чипы используются в MacBook и работают «из коробки». Только нужно озадачится переходником с этого адаптера на разъем M.2.
- В противном случае, можно использовать адаптеры M.2 серии BCM94352Z с AirportBrcmFixup.kext в паре с Lilu.kext —для Wi-FI, BrcmFirmwareData.kext и BrcmPatchRAM2.kext — для Bluetooth.
Теперь нужно скопировать скачанные драйверы в папку /Volumes/EFI/clover/kexts/Other.
FYI. Статья написана в далеком 2019 году, но актуальна и на февраль 2021.
Каждый предприниматель и руководитель ООО пользуется электронной подписью. Помимо КЭП для ЕГАИС и облачных КЭП для сдачи отчетности, выдаваемых банками и бухгалтерскими сервисами, особый интерес представляют универсальные УКЭП на защищенных токенах. Такие сертификаты позволяют только логиниться на гос.порталы и подписывать любые документы, делая их юридически значимыми.
Представленный ниже мануал поможет работать с КЭП под macOS – без изучения форумов КриптоПро и установки виртуальной машины с Windows.
Что нужно для работы с КЭП под macOS:
Устанавливаем и настраиваем КЭП под macOS
Смена PIN-кода контейнера
- Выясняем название контейнера КЭП
- Смена PIN командой из terminal
Подпись файлов в macOS
- Выясняем хэш сертификата КЭП
- Подпись файла командой из terminal
- Установка Apple Automator Script
Проверить подпись на документе
Что нужно для работы с КЭП под macOS:
- КЭП на USB-токене Рутокен Lite или Рутокен ЭЦП
- криптоконтейнер в формате КриптоПро
- со встроенной лицензией на КриптоПро CSP
- открытый сертификат должен храниться в контейнере закрытого ключа
Поддержка eToken и JaCarta в связке с КриптоПро под macOS под вопросом. Носитель Рутокен Lite – оптимальный выбор, стоит недорого, шустро работает и позволяет хранить до 15 ключей.
Криптопровайдеры VipNet, Signal-COM и ЛИССИ в macOS не поддерживаются. Преобразовать контейнеры никак не получится. КриптоПро – оптимальный выбор, стоимость сертификата в себестоимости от 500= руб. Можно выпустить сертификат с встроенной лицензией на КриптоПро CSP, это удобно и выгодно. Если лицензия не зашита, то необходимо купить и активировать полноценную лицензию на КриптоПро CSP.
Обычно открытый сертификат хранится в контейнере закрытого ключа, но это нужно уточнить при выпуске КЭП и попросить сделать как нужно. Если не получается, то импортировать открытый ключ в закрытый контейнер можно самостоятельно средствами КриптоПро CSP под Windows.
Устанавливаем и настраиваем КЭП под macOS
- все загружаемые файлы скачиваются в каталог по-умолчанию:
1. Устанавливаем КриптоПро CSP
Регистрируемся на сайте КриптоПро и со страницы загрузок скачиваем и устанавливаем версию КриптоПро CSP 4.0 R4 для macOS – скачать.
2. Устанавливаем драйверы Рутокен
На сайте написано что это опционально, но лучше поставить. Со страницы загрузок на сайте Рутокен скачиваем и устанавливаем Модуль поддержки Связки Ключей (KeyChain) – скачать.
Далее подключаем usb-токен, запускаем terminal и выполняем команду:
В ответе должно быть:
3. Устанавливаем сертификаты
3.1. Удаляем все старые ГОСТовские сертификаты
Если ранее были попытки запустить КЭП под macOS, то необходимо почистить все ранее установленные сертификаты. Данные команды в terminal удалят только сертификаты КриптоПро и не затронут обычные сертификаты из Keychain в macOS.
В ответе каждой команды должно быть:
3.2. Устанавливаем корневые сертификаты
Корневые сертификаты являются общими для всех КЭП, выданных любым удостоверяющим центром. Скачиваем со страницы загрузок УФО Минкомсвязи:
Устанавливаем командами в terminal:
Каждая команда должна возвращать:
3.3. Скачиваем сертификаты удостоверяющего центра
Далее нужно установить сертификаты удостоверяющего центра, в котором вы выпускали КЭП. Обычно корневые сертификаты каждого УЦ находятся на его сайте в разделе загрузок.
Альтернативно, сертификаты любого УЦ можно скачать с сайта УФО Минкомсвязи. Для этого в форме поиска нужно найти УЦ по названию, перейти на страницу с сертификатами и скачать все действующие сертификаты – то есть те, у которых в поле 'Действует' вторая дата еще не наступила. Скачивать по ссылке из поля 'Отпечаток'.
На примере УЦ Корус-Консалтинг: нужно скачать 4 сертификата со страницы загрузок:
Скачанные сертификаты УЦ устанавливаем командами из terminal:
/Downloads/ идут имена скачанных файлов, для каждого УЦ они будут свои.
Каждая команда должна возвращать:
3.4. Устанавливаем сертификат с Рутокен
Команда в terminal:
Команда должна вернуть:
3.5. Конфигурируем CryptoPro для работы ссертификатами ГОСТ Р 34.10-2012
Команды в terminal:
Команды ничего не возвращают.
4. Устанавливаем специальный браузер Chromium-GOST
Для работы с гос.порталами потребуется специальная сборка браузера сhromium – Chromium-GOST скачать.
Исходный код проекта открыт, ссылка на репозиторий на GitHub приводится на сайте КриптоПро. По опыту, другие браузеры CryptoFox и Яндекс.Браузер для работы с гос.порталами под macOS не годятся.
Скачиваем, устанавливаем копированием или drag&drop в каталог Applications. После установки принудительно закрываем Chromium-Gost командой из terminal и пока не открываем (работаем из Safari):
5. Устанавливаем расширения для браузера
5.1 КриптоПро ЭЦП Browser plug-in
Со страницы загрузок на сайте КриптоПро скачиваем и устанавливаем КриптоПро ЭЦП Browser plug-in версия 2.0 для пользователей – скачать.
5.2. Плагин для Госуслуг
Со страницы загрузок на портале Госуслуг скачиваем и устанавливаем Плагин для работы с порталом государственных услуг (версия для macOS) – скачать.
5.3. Настраиваем плагин для Госуслуг
Скачиваем корректный конфигурационный файл для расширения Госуслуг для поддержки macOS и новых ЭЦП в стандарте ГОСТ2012 – скачать.
Выполняем команды в terminal:
5.4. Активируем расширения
Запускаем браузер Chromium-Gost и в адресной строке набираем:
Включаем оба установленных расширения:
- CryptoPro Extension for CAdES Browser Plug-in
- Расширение для плагина Госуслуг
5.5. Настраиваем расширение КриптоПро ЭЦП Browser plug-in
В адресной строке Chromium-Gost набираем:
На появившейся странице в список доверенных узлов по-очереди добавляем сайты:
Жмем “Сохранить”. Должна появиться зеленая плашка:
6. Проверяем что все работает
6.1. Заходим на тестовую страницу КриптоПро
В адресной строке Chromium-Gost набираем:
Должно выводиться “Плагин загружен”, а в списке ниже присутствовать ваш сертификат.
Выбираем сертификат из списка и жмем “Подписать”. Будет запрошен PIN-код сертификата. В итоге должно отобразиться
6.3. Заходим на Госуслуги
7. Что делать если перестало работать
Переподключаем usb-токен и проверяем что он виден с помощью команды в terminal:
Очищаем кеш браузера за все время, для чего в адресной строке Chromium-Gost набираем:
Переустанавливаем сертификат КЭП с помощью команды в terminal:
Смена PIN-кода контейнера
Пользовательский PIN-код на Рутокен по-умолчанию 12345678, и оставлять его в таком виде никак нельзя. Требования к PIN-коду Рутокен: 16 символов max., может содержать латинские буквы и цифры.
1. Выясняем название контейнера КЭП
На usb-токене и в других хранилищах может храниться несколько сертификатов, и нужно выбрать правильный. При вставленном usb-токене получаем список всех контейнеров в системе командой в terminal:
Команда должна вывести минимум 1 контейнер и вернуть
Нужный нам контейнер имеет вид
Если таких контейнеров выводится несколько – значит значит на токене записано несколько сертификатов, и вы в курсе какой именно вам нужен. Значение XXXXXXXX после слэша нужно скопировать и подставить в команду ниже.
2. Смена PIN командой из terminal
где XXXXXXXX – название контейнера, полученное на шаге 1 (обязательно в кавычках).
Появится диалог КриптоПро с запросом старого PIN-кода для доступа к сертификату, затем еще один диалог для ввода нового PIN-кода. Готово.
Подпись файлов в macOS
В macOS файлы можно подписывать в ПО КриптоАрм (стоимость лицензии 2500= руб.), или несложной командой через terminal – бесплатно.
1. Выясняем хэш сертификата КЭП
На токене и в других хранилищах может быть несколько сертификатов. Нужно однозначно идентифицировать тот, которым будем впредь подписывать документы. Делается один раз.
Токен должен быть вставлен. Получаем список сертификатов в хранилищах командой из terminal:
Команда должна вывести минимум 1 сертификат вида:
У нужного нам сертификата в параметре Container должно быть значение вида SCARD\rutoken. . Если сертификатов с такими значениями несколько, то значит на токене записано несколько сертификатов, и вы в курсе какой именно вам нужен. Значение параметра SHA1 Hash (40 символов) нужно скопировать и подставить в команду ниже.
2. Подпись файла командой из terminal
В terminal переходим в каталог с файлом для подписания и выполняем команду:
где ХХХХ. – хэш сертификата, полученный на шаге 1, а FILE – имя файла для подписания (со всеми расширениями, но без пути).
Команда должна вернуть:
Будет создан файл электронной подписи с расширением *.sgn – это отсоединенная подпись в формате CMS с кодировкой DER.
3. Установка Apple Automator Script
Чтобы каждый раз не работать с терминалом, можно один раз установить Automator Script, с помощью которого подписывать документы можно будет из контекстного меню Finder. Для этого скачиваем архив – скачать.
- Распаковываем архив ‘Sign with CryptoPro.zip’
- Запускаем Automator
- Находим и открываем распакованный файл ‘Sign with CryptoPro.workflow’
- В блоке Run Shell Script меняем текст ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ на значение параметра SHA1 Hash сертификата КЭП, полученное выше.
- Сохраняем скрипт: ⌘Command + S
- Запускаем файл ‘Sign with CryptoPro.workflow’ и подтверждаем установку.
- Идем в System Preferences —> Extensions —> Finder и проверяем, что Sign with CryptoPro quick action отмечено.
- В Finder вызываем контекстное меню любого файла, и в разделе Quick Actions и/или Services выбрать пункт Sign with CryptoPro
- В появившемся диалоге КриптоПро ввести PIN-код пользователя от КЭП
- В текущем каталоге появится файл с расширением *.sgn – отсоединенная подпись в формате CMS с кодировкой DER.
Окно Apple Automator:
System Preferences:
Читайте также: