0

考虑以下代码:

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方法,以便只需传递文件名即可访问它?

4

3 回答 3

0

这应该适合你:

fname = 'test8.pem'
fileHandle = open(fname, 'w')
fileHandle.write(data)
fileHandle.close()
pub_key = M2Crypto.RSA.load_pub_key(fname)
于 2009-08-25T10:44:31.367 回答
0

我也有同样的问题。我尝试加载文件处理程序而不是路径,但没有帮助。

锻炼的东西是使用 M2Crypto 的 X509 模块。您可以尝试使用此函数来获取公钥实例:

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

以下答案中的更多详细信息: RSACryptoServiceProvider message signature verification with m2crypto

于 2013-07-16T08:58:05.947 回答
0

如果您通过不带引号的 test8.pem,Python 会将其解释为未定义的变量的名称,因此会出现错误。

我不知道您正在使用的特定库,但我猜您需要传递 fileHandle 。

于 2009-08-25T10:04:18.607 回答