python中调用c代码,传入NULL的问题

在逆向一个android so的时候,发现一个改良的ecdh算法,在用python调用EC_POINT_point2oct的时候发现最后一个参数是NULL,但是写入0,False,None都报错,最后(注意str是bytes类型):

from OpenSSL import crypto
import struct
import os


class Ecdh():
    
    def __init__(self):
        self.ssl_lib = crypto._lib
        self.ssl_ffi = crypto._ffi
        pass
        
        
    def gen_ecdh_key_ex(self,bo,str1,str2,str3):
    
        str_len = len(str1)+len(str2)+len(str3)
        all_str = str1 + str2 + str3
        
        ecdh2 = self.ssl_lib.EC_KEY_new_by_curve_name(711)
        self.ssl_lib.EC_KEY_generate_key(ecdh2)
        point = self.ssl_lib.EC_KEY_get0_group(ecdh2)
        group = self.ssl_lib.EC_KEY_get0_public_key(ecdh2)
        mylen = self.ssl_lib.EC_POINT_point2oct(point,group,2,all_str,str_len,self.ssl_ffi.NULL)

也可以使用

from cffi import FFI

ffi = FFI()
ffi.NULL表示空
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,633评论 0 13
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,777评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 白云蓝天 清凉河畔 浑浊一片 草垂头 地生烟 芙蓉花绽 柳拂面 车稀人无 路平安 一切安好 勿念 勿念 (每个假期...
    豆蔻蝶仙阅读 816评论 0 0
  • 今早忽然发现 午夜到凌晨的心事 没有夜色浓重 像是那时钟上的针头 始终朝外却绕着你走 今早忽然发现 魂牵梦绕的梦 ...
    就要叫九颗米粒阅读 227评论 0 2