我目前正在研究通过比特币中的OpenCL加速ECDSA签名验证的可能性。
对于这项任务,我首先需要在C中使用bignum实现(因为OpenCL代码是C的子集),以及椭圆曲线数学的实现,也在C中.OpenSSL具有经过良好测试的两种实现这些库,所以我的计划是从OpenSSL的“加密”部分中提取这两个组件,看看我是否可以将生成的C代码调整为与OpenCL兼容的代码(通过用静态分配替换所有动态内存分配,的东西)。
我目前对该主题的了解表明,没有现成的工具可用于实现这一目标。我查看了其他SO问题,其中一个建议编写一个Python脚本,它将提取一个函数及其所有依赖项。要开始使用它,有一个单一的预处理文件包含OpenSSL的加密部分使用的所有源代码将是有用的。有一个简单的方法吗?
当完成此操作时,我将不得不编写一个脚本,该脚本可以从给定名称的源文件中提取函数。我认为脚本应该递归调用它自己在它试图提取的函数中看到的任何新的未知函数,并提取它,在它访问的子函数中递归地重复这个过程。这看起来是一种明智的做法吗?
谢谢:)