Доступ к файлу в load_pub_key - PullRequest
0 голосов
/ 25 августа 2009

Рассмотрим следующий код:

fileHandle = open ( 'test8.pem','w' )
fileHandle.write (data)
pub_key = M2Crypto.RSA.load_pub_key(open('test8.pem'))

, которая выдает следующую ошибку:

 File "/usr/lib/python2.4/site-packages/M2Crypto/RSA.py", line 343, in load_pub_key
bio = BIO.openfile(file) 
  File "/usr/lib/python2.4/site-packages/M2Crypto/BIO.py", line 186, in openfile
    return File(open(filename, mode))
IOError: [Errno 2] No such file or directory: ''

Как передать файл в метод load_pub_key, чтобы его можно было получить, просто передав имя файла?

Ответы [ 3 ]

0 голосов
/ 25 августа 2009

это должно работать для вас:

fname = 'test8.pem'
fileHandle = open(fname, 'w')
fileHandle.write(data)
fileHandle.close()
pub_key = M2Crypto.RSA.load_pub_key(fname)
0 голосов
/ 16 июля 2013

У меня тоже такая же проблема. Я попытался загрузить обработчик файла вместо пути, но это не помогло.

Дело в том, что для тренировки использовался модуль X509 от M2Crypto. Вы можете попробовать использовать эти функции для получения экземпляра открытого ключа:

certificate = M2Crypto.X509.load_cert(cert_path)
pubkey = certificate.get_pubkey()

Подробнее в следующем ответе: Проверка подписи сообщения RSACryptoServiceProvider с m2crypto

0 голосов
/ 25 августа 2009

Если вы передаете test8.pem без кавычек, Python интерпретирует его как имя переменной, которая не определена, следовательно, ошибка.

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

...