load_pub_key中的文件访问
考虑以下代码:
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
我也遇到了同样的问题。我试着用文件处理器来代替路径,但没有用。
最后解决这个问题的是使用M2Crypto中的X509模块。你可以试试下面这些函数来获取一个公钥实例:
certificate = M2Crypto.X509.load_cert(cert_path)
pubkey = certificate.get_pubkey()
更多细节可以在以下回答中找到: 使用m2crypto进行RSACryptoServiceProvider消息签名验证
0
这个应该对你有用:
fname = 'test8.pem'
fileHandle = open(fname, 'w')
fileHandle.write(data)
fileHandle.close()
pub_key = M2Crypto.RSA.load_pub_key(fname)
0
如果你在代码中直接写test8.pem而不加引号,Python会把它当作一个变量的名字来处理,但这个变量并没有定义,所以就会报错。
我不太清楚你使用的具体库是什么,但我猜你应该传入fileHandle这个东西。