Я создаю следующий python скрипт
этот python скрипт прочитает файл /lpp/airflow/.sec/rmq_pass
в var - pass_hash
и расшифрует это до decrypted_pass
more security_test.py
import sys
import os
import base64
from cryptography.fernet import Fernet
key_file = "/lpp/airflow/.sec/key"
rmq_pass_file = "/lpp/airflow/.sec/rmq_pass"
key = open(key_file, 'r')
f = Fernet(key.read())
pass_hash = open(rmq_pass_file, 'r')
#decrypting the password from "pass_file" file using the key from the "key_file".
decrypted_pass = f.decrypt(pass_hash.read())
ConnStr = "amqp://airflow:" + decrypted_pass + "@localhost:5672//"
, когда я запускаю скрипт, он потерпел неудачу на /usr/lib64/python2.7/site-packages/cryptography/fernet.py или любом другом под /usr/lib64/python2.7/site-packages/cryptography
мы пытаемся переустановить пакет криптографии, но это не помогло
и идея, что это может быть?
python security_test.py
Traceback (most recent call last):
File "security_test.py", line 14, in <module>
decrypted_pass = f.decrypt(pass_hash.read())
File "/usr/lib64/python2.7/site-packages/cryptography/fernet.py", line 75, in decrypt
return self._decrypt_data(data, timestamp, ttl)
File "/usr/lib64/python2.7/site-packages/cryptography/fernet.py", line 117, in _decrypt_data
self._verify_signature(data)
File "/usr/lib64/python2.7/site-packages/cryptography/fernet.py", line 101, in _verify_signature
h = HMAC(self._signing_key, hashes.SHA256(), backend=self._backend)
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/primitives/hmac.py", line 31, in __init__
self._ctx = self._backend.create_hmac_ctx(key, self.algorithm)
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 207, in create_hmac_ctx
return _HMACContext(self, key, algorithm)
File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/backends/openssl/hmac.py", line 34, in __init__
key_ptr = self._backend._ffi.from_buffer(key)
TypeError: from_buffer() cannot return the address of the raw string within a str or unicode or bytearray object
ВАЖНОЕ ПРИМЕЧАНИЕ - на другая машина этот сценарий работает нормально
как лучше всего решить эту проблему? удалить все модули и установить их заново? или переустановив python?