有效地将ctypes LP_c_uuubyte转换为python';str';

有效地将ctypes LP_c_uuubyte转换为python';str';,python,ctypes,Python,Ctypes,我的ctypes绑定有问题,ctypes文档让我的头有点痛 我有一个远程网络客户端发送二进制数据,我正在使用的库(Mosquitto,用于MQTT消息代理)提供了一种从网络获取原始二进制数据的ctypes方法。这是一种“LP_c_ubyte”类型。有没有有效的方法将其转换回python的“str”对象 我需要一组常规字节用于M2Crypto的解密函数 pp = ''.join(chr(msg.payload[i]) for i in xrange(msg.payloadlen)) clear_

我的ctypes绑定有问题,ctypes文档让我的头有点痛

我有一个远程网络客户端发送二进制数据,我正在使用的库(Mosquitto,用于MQTT消息代理)提供了一种从网络获取原始二进制数据的ctypes方法。这是一种“LP_c_ubyte”类型。有没有有效的方法将其转换回python的“str”对象

我需要一组常规字节用于M2Crypto的解密函数

pp = ''.join(chr(msg.payload[i]) for i in xrange(msg.payloadlen)) 
clear_text = rsa.private_decrypt(pp, M2Crypto.RSA.pkcs1_padding)
这是可行的,但它很难看

我可以先将客户机更改为base64编码所有内容,然后在这端取消base64,但这似乎也是一种解决方法


有更好的方法吗?

我认为这应该满足您的要求:

import ctypes
pp = ctypes.string_at(msg.payload, msg.payloadlen)