証明書検証コールバック関数に入力されたエラーを出力しようとしています [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
か? ありがとうございました。