1安装openssl
windows版本的网址 点进去下载以下这个 按照提示安装即可,最后可以在终端使用openssl就可以了
2在vs中使用第三方库
新建一个项目,在源代码中选一个放进去去,比如我选的是Optimized_Implementation中的crypto_kem\newhope512cca 把x86改成x64(之前一直用x86不行,但是现在突然可以了不知道是不是这个原因)。然后点击项目名右键属性,在包含目录和库目录中分别添加你自己的openssl的include和lib的地址。 然后在连接器-输入中添加如图两个附加依赖项。 最后把下载的openssl中bin文件夹的如下两个dll文件放在项目文件中,可能名字不太一样但是差不多太多。
3修改一些小地方
newhope源代码中还有一些小问题 首先在PQCgenKAT_kem中顶部添加 #define _CRT_SECURE_NO_WARNINGS 可以避免fopen报错。
然后在poly.h中修改poly结构体的定义,因为微软有自己的一套东西 __declspec(align(32)) typedef struct { uint16_t coeffs[NEWHOPE_N]; } poly; 接下来是一个诡异的东西了,在verify.c中的verify函数定义了一个无符号整数r但是后面又在前面加了个负号,我姑且先删掉负号叭。
4完成
按道理这样子应该已经完成了,编译之后项目文件夹就会多了两个文件,存放公私钥等信息。 如果还是编译错误很有可能还是第三方库openssl用不了。(到时候再说吧~我尽力了)
|