しばらくの間、oauth2client (p12 または pem 証明書ファイルを使用するサービス アカウント) を使用すると、この厄介な「ctype 'EVP_MD_CTX *' の初期化子は、cdata 'EVP_MD_CTX *' ではなく、同じ型へのポインターである必要があります」というエラーが発生します。 .
これは、WSGI で django プロジェクトを実行しているときに発生します。シェルでそれが起こることはありませんでした。
package versions:
google-api-python-client==1.3.1
pyOpenSSL==0.14
oauth2client==1.3.2
cryptography==0.6.1
Revelant スタックトレース (その時点までは、SignedJwtAssertionCredentials を作成し、http オブジェクトで authorize() を実行しました):
File "gdrive/models.py", line 292, in create_service
return build("drive", "v2", http=http)
File "oauth2client/util.py", line 129, in positional_wrapper
return wrapped(*args, **kwargs)
File "googleapiclient/discovery.py", line 198, in build
resp, content = http.request(requested_url)
File "oauth2client/util.py", line 129, in positional_wrapper
return wrapped(*args, **kwargs)
File "oauth2client/client.py", line 516, in new_request
self._refresh(request_orig)
File "oauth2client/client.py", line 728, in _refresh
self._do_refresh_request(http_request)
File "oauth2client/client.py", line 752, in _do_refresh_request
body = self._generate_refresh_request_body()
File "oauth2client/client.py", line 1275, in _generate_refresh_request_body
assertion = self._generate_assertion()
File "oauth2client/client.py", line 1402, in _generate_assertion
private_key, self.private_key_password), payload)
File "oauth2client/crypt.py", line 312, in make_signed_jwt
signature = signer.sign(signing_input)
File "oauth2client/crypt.py", line 109, in sign
return crypto.sign(self._key, message, 'sha256')
File "OpenSSL/crypto.py", line 2091, in sign
_lib.EVP_SignInit(md_ctx, digest_obj)
そしてそこで例外が発生します。
このエラーが表示される理由について何か考えはありますか?
ありがとう、マーク