Я использую GAE (python) и должен проверить цифровую подпись с помощью открытого ключа (формат pem)
Я не могу использовать M2Crypto (он не поддерживается в GAE), и ни один из следующих кодов не работает:
pubKey = pem
from Crypto import PublicKey
key = PublicKey.RSA.importKey(pubKey)
Теперь, чтобы этот код работал, у нас должен быть пакет Pycrypto, который уже есть в appengine, но функция 'impotkey ()' выдает ошибку
Также я не могу найти класс RSAImplementation в пакете Pycrypto в GAE
EDIT:
ХОРОШО,
После нескольких часов ошеломления, наконец, понял проблему.
Проблема с версией модуля pycrypto.
Из того, что я вижу, GAE поддерживает Pycrypto версии 2.0.1, которая, похоже, не имеет определенных классов и методов, таких как RSAImplementation и ImportKey ().
Я обновил Pycrypto до 2.4 на своей локальной машине, и там он может выяснить RSAImplementation и importKey ().
Также проверил журнал изменений для Pycrypto https://github.com/dlitz/pycrypto/blob/62247ca754657b6ee8370d8fd62c58b8b881f396/ChangeLog
Похоже, поддержка импорта открытого ключа в формате pem есть только в версии 2.2
Тем не менее основная проблема остается ... Как проверить цифровую подпись с использованием RSA в GAE (поскольку GAE использует Pycrypto версии 2.0.1)