我正在尝试打印输入到证书验证回调函数的错误[我正在使用 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
字符?谢谢你。