请考虑以下代码:
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
方法,以便只需传递文件名即可访问?
答案 0 :(得分:0)
如果传递test8.pem不带引号,Python会将其解释为变量的名称,该变量未定义,因此错误。
我不知道你使用的具体库,但我猜你需要传递fileHandle。
答案 1 :(得分:0)
这应该适合你:
fname = 'test8.pem'
fileHandle = open(fname, 'w')
fileHandle.write(data)
fileHandle.close()
pub_key = M2Crypto.RSA.load_pub_key(fname)
答案 2 :(得分:0)
我也有同样的问题。我尝试加载文件处理程序而不是路径,但它没有帮助。
锻炼的事情是使用M2Crypto的X509模块。您可以尝试使用此函数来获取公钥实例:
certificate = M2Crypto.X509.load_cert(cert_path)
pubkey = certificate.get_pubkey()
以下答案中的更多细节: RSACryptoServiceProvider message signature verification with m2crypto