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.
​​Broadcom BCM94360CS2 с адаптером на M.2 и удлинителем

Теперь нужно скопировать скачанные драйверы в папку /Volumes/EFI/clover/kexts/Other.



FYI. Статья написана в далеком 2019 году, но актуальна и на февраль 2021.

Каждый предприниматель и руководитель ООО пользуется электронной подписью. Помимо КЭП для ЕГАИС и облачных КЭП для сдачи отчетности, выдаваемых банками и бухгалтерскими сервисами, особый интерес представляют универсальные УКЭП на защищенных токенах. Такие сертификаты позволяют только логиниться на гос.порталы и подписывать любые документы, делая их юридически значимыми.

Представленный ниже мануал поможет работать с КЭП под macOS – без изучения форумов КриптоПро и установки виртуальной машины с Windows.

Что нужно для работы с КЭП под macOS:

Устанавливаем и настраиваем КЭП под macOS

Смена PIN-кода контейнера

  1. Выясняем название контейнера КЭП
  2. Смена PIN командой из terminal

Подпись файлов в macOS

  1. Выясняем хэш сертификата КЭП
  2. Подпись файла командой из terminal
  3. Установка Apple Automator Script

Проверить подпись на документе

Что нужно для работы с КЭП под macOS:

  1. КЭП на USB-токене Рутокен Lite или Рутокен ЭЦП
  2. криптоконтейнер в формате КриптоПро
  3. со встроенной лицензией на КриптоПро CSP
  4. открытый сертификат должен храниться в контейнере закрытого ключа

Поддержка 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. Для этого скачиваем архив – скачать.

  1. Распаковываем архив ‘Sign with CryptoPro.zip’
  2. Запускаем Automator
  3. Находим и открываем распакованный файл ‘Sign with CryptoPro.workflow’
  4. В блоке Run Shell Script меняем текст ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ на значение параметра SHA1 Hash сертификата КЭП, полученное выше.
  5. Сохраняем скрипт: ⌘Command + S
  6. Запускаем файл ‘Sign with CryptoPro.workflow’ и подтверждаем установку.
  7. Идем в System Preferences —> Extensions —> Finder и проверяем, что Sign with CryptoPro quick action отмечено.
  8. В Finder вызываем контекстное меню любого файла, и в разделе Quick Actions и/или Services выбрать пункт Sign with CryptoPro
  9. В появившемся диалоге КриптоПро ввести PIN-код пользователя от КЭП
  10. В текущем каталоге появится файл с расширением *.sgn – отсоединенная подпись в формате CMS с кодировкой DER.


Окно Apple Automator:


System Preferences:

Читайте также: