如何将OpenSSL._util.lib.X509_verify_cert_error_string的值作为python字符串获取

时间:2014-08-30 12:36:55

标签: python pyopenssl

我正在尝试打印输入到证书验证回调函数的错误[我正在使用pyopenssl]:

def verify_cb(context, certificate, errornum, depth, ok):
       if (lib.X509_V_OK == errornum):
           print lib.X509_verify_cert_error_string(errornum)

我认为上面的代码会打印ok。但是它会返回<cdata 'char *' 0x7fff8b400f0f>。在pdb中调试这个我得到以下结果:

(Pdb) lp=lib.X509_verify_cert_error_string(errnum)
(Pdb) type(lp)
<type '_cffi_backend.CData'>
(Pdb) lp[0]
'o'
(Pdb) lp[1]
'k'
(Pdb) lp[2]
'\x00'

有没有人知道如何将这个值作为python字符串获取其他迭代,直到我得到一个\x00字符?谢谢。

1 个答案:

答案 0 :(得分:2)

好的我明白了。以下内容使其起作用:

from OpenSSL._util import ffi
ffi.string(lib.X509_verify_cert_error_string(errornum))