Кошелек Apple PKPASS на молнии. М2Крипто

Я пытаюсь заархивировать Apple Wallet на своем сервере, используя python. Apple предоставляет нам серверную реализацию на Ruby, но у меня есть сервер с Django.

Каждая библиотека, реализованная на python, для этих целей, которую я нашел, использует что-то под названием M2Crypto для расшифровки/шифрования ключей SSL. (Я решил использовать эту реализацию)

Поскольку библиотека подписи проходов зависит от m2Crypto, я сначала попытался установить M2Crypto на Mac, чтобы протестировать подписание проходов локально.

Установка с pip ничего кроме ошибок не дала.

pip install M2Crypto

После долгих ругательств нашел решение как установить M2Crypto здесь . Дело в том, что хотя bash говорит мне, что brew установил M2Crypto, мой код на Python все еще не видит эту проклятую библиотеку M2Crypto, поэтому я даже не могу начать локальное тестирование pass zipper!

Почему мой код на Python не видит эту библиотеку и есть ли универсальный способ ее установить?

Я упаковываю свой проект в образ докера, и мне нужно знать, как установить его как зависимость от образа докера.


person Stan Redoute    schedule 22.11.2017    source источник
comment
Не знаю, как в других библиотеках, но у меня были похожие проблемы, и я решил потратить время на создание своей собственной. Сначала: brew install openssl и brew upgrade openssl Затем попробуйте: github.com/Brandon-T/PyWallet . Это библиотека, которую я сделал с нуля. Он сжимает папку в zip с расширением .pkpass и подписывает ее как PKPass, которую можно распространять на сервере вашего кошелька.   -  person Brandon    schedule 22.11.2017
comment
@Брэндон, это было бы здорово! Но как мне запустить его внутри контейнера Docker? Будет ли достаточно сделать pip install openssl на образе ubuntu? Могу ли я связаться с вами, чтобы задать еще пару вопросов о вашей реализации?   -  person Stan Redoute    schedule 22.11.2017
comment
Я понятия не имею, что такое Docker и как он работает... но мой код просто загружает, сжимает папку в PKPass и подписывает ее, как подписчик Apple. Он загружает libssl.dylib в OSX или libssl.so в Linux. Я запускаю его прямо в Linux Mint, и он отлично работает, но я не уверен, что такое Docker. Нет, вы не можете использовать pip для установки openssl, потому что для подписи библиотеке требуется собственный OpenSSL. Насколько я знаю, pip не включает все функции OpenSSL.   -  person Brandon    schedule 22.11.2017
comment
Разве это не так просто, как добавить RUN apt-get update && apt-get install python-m2crypto в свой Dockerfile? (Предполагая, что вы собираете образ на основе Debian/Ubuntu)   -  person PassKit    schedule 22.11.2017
comment
Привет, это апстрим-мейнтейнер M2Crypto. К сожалению, у меня самого нет компьютера с Mac OS X, поэтому я полностью полагаюсь на помощь волонтеров. Лучшие инструкции по установке, которые я нашел, собраны в INSTALL. Если у кого-то есть что добавить к этому или сделать M2Crypto полностью устанавливаемым piip, я бы хотел получить запрос на слияние или как минимум описание того, что делать.   -  person mcepl    schedule 22.11.2017
comment
@ Брэндон, какой менеджер пакетов вы используете для установки зависимостей в Linux? В Linux нет варева, так что вам нужно apt-get или pip, если на то пошло?   -  person Stan Redoute    schedule 22.11.2017
comment
мой код на питоне до сих пор не видит этот проклятый M2Crypto - что выводит команда $ python -c "import M2Crypto"?   -  person hoefling    schedule 22.11.2017
comment
@hoefling Я уже понял, что python не видит библиотеку, потому что я все время использовал версию 3.6, а m2crypto только для версии 2.7.   -  person Stan Redoute    schedule 22.11.2017
comment
@mcepl спасибо, вчера я просмотрел ваше репо и искал способ связаться с вами. Есть ли шансы, что мы сможем перестроить криптографию для поддержки Python 3? На моей странице стека есть ссылка на мою учетную запись GitHub, свяжитесь со мной.   -  person Stan Redoute    schedule 22.11.2017
comment
Привет @StanRedoute Ты разобрался с этим? хотя, если вы используете докер, проблема не только в том, что это был py3 или py2, вам, возможно, придется установить его на свою докерную ОС с помощью exec, также я согласен, что у py3 есть какая-то проблема с m2crypto, но он устанавливает во всяком случае на нем.   -  person Ezekiel    schedule 02.09.2018
comment
@Ezekiel посмотри первый комментарий в ветке. Оно работает.   -  person Stan Redoute    schedule 02.09.2018
comment
@StanRedoute Спасибо, я просто изменю свой код, чтобы использовать что-то похожее из его кода.   -  person Ezekiel    schedule 03.09.2018