我试图在Verilog中调试一个SHA512实现,但是我在任何地方都找不到一个示例消息调度。我用C++编写了一个简单的Crypto++程序,但是我找不到要调试的变量来查看完整的消息调度,因为它是用汇编程序编写的。
我需要一个示例计划或者帮助识别crypto++计划。
发布于 2014-01-30 13:55:06
在项目代码中包括crypto++,然后打开sha.h文件并添加断点,用debug编译代码,然后当代码在断点处暂停时,您将看到整个SHA512代码,您将能够调试和查看所有变量,包括消息调度。如果在SHA512函数中添加断点并使用调试编译代码,则不会看到汇编代码,相反,您将看到它的C++源代码,并且您将能够添加变量来监视窗口并检查它们的值。
您也可以在调试(步骤)时按F11进入哈希函数,同样,它不会是程序集,您将看到哈希函数的C++代码。然后遵循代码,并查看SHA消息计划。
正如您在SHA中所知道的,在每一轮中,都有一个循环常数k[i]和一个消息调度数组w[i], 0 ≤ i ≤ 63中的条目。因此,打开sha.cpp,您将看到w变量,这就是您需要调试的内容。另外,我必须告诉您,SHA代码和Crypto++的许多部分都是用assembly编写的,所以您正在调试或读取代码并不重要,它是在程序集中编写的。所以你可以取消评论
"// smaller but slower"在sha.cpp中使用C++代码,而不是使用汇编代码,或者只需使用另一个库即可轻松调试。
https://stackoverflow.com/questions/21458041
复制相似问题