У меня есть закрытый ключ с паролем в файле .pem; Я хочу использовать его для подписания запросов на удаленный сервер. Я могу загрузить ключ и введите пароль после запроса на него:Как загрузить закрытый ключ с защитой паролем из файла .pem с помощью M2Crypto?
python
>>> import M2Crypto
>>> pk = M2Crypto.RSA.load_key('private.pem')
Enter passphrase:
>>>
Однако, мне это нужно для процесса сервера, который перезапущен каждое утро, и, таким образом, ключевая фраза должна быть передана автоматически каким-то образом. Метод load_key поддерживает аргумент обратного вызова для этой цели, так что я попробовал несколько вариантов:
>>> def gimmepw():
... return 'mysecret'
...
>>> pk = M2Crypto.RSA.load_key('private.pem', gimmepw)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/local/Plone/Python-2.4/.../M2Crypto/RSA.py", line 351, in load_key
return load_key_bio(bio, callback)
File "/usr/local/Plone/Python-2.4/.../M2Crypto/RSA.py", line 372, in load_key_bio
rsa_error()
File "/usr/local/Plone/Python-2.4/.../M2Crypto/RSA.py", line 302, in rsa_error
raise RSAError, m2.err_reason_error_string(m2.err_get_error())
M2Crypto.RSA.RSAError: bad password read
>>>
(заменить "..." по "Библиотека/python2.4/сайт-пакеты")
Что я делаю неправильно?
Спасибо - это сделал трюк :-) – Tobias