如何为WP8构建OpenSSL?

时间:2013-06-20 01:36:27

标签: windows-phone-8 windows-runtime openssl runtime winsock

如何为WP8构建OpenSSL?

AFAIK,我们必须将winsock.h替换为winsock2.h,因为WP8仅支持winsock2.h。也许我们必须在WP8(ThreadPool,...)

上替换目标WinRT架构的代码

需要注意的是,我们必须将OpenSSL构建为WP8静态库,以便输出lib可以被WP8运行时组件包装,对吗?

4 个答案:

答案 0 :(得分:3)

您可以在github上使用Microsoft openssl fork,支持windows phone 8.1 / 8.0和Windows Store 8.1,使用Windows随机生成器解决每个平台上的熵,说明位于INSTALL.WINAPP,有一个脚本位于在

MS \ do_vsprojects.bat

您应该能够只使用根位置执行该脚本并打开vsout \ openssl.sln来为不同的Windows平台构建openssl库。

fork位于

https://github.com/microsoft/openssl

在这个问题上,这些变化正在与主要的OpenSSL源代码库集成。

答案 1 :(得分:2)

这是你要做的,转到this link并下载VSbuild,现在将其放入从OpenSSL网站下载的源文件中,文件夹结构应如下所示:

  apps
  bugs
  certs
  .....
  vsbuild

一旦完成,打开解决方案,它应该将其升级到VS12,将设置更改为Windows Phone RT构建,生成DLL,不需要构建* _lib *,因此更改其他项目,大多数更改你需要做的是libeay32,不要编译 openssl 项目,只需忽略它,首先构建 libeay32 ,然后开始对代码,因为我们在WinRT中没有一些函数,你可以#ifdef出来,或创建自己的函数,

注意rand_win.c更改了使用rand_s#ifdef大部分代码的功能,这可能会破坏安全性,您将拥有自己测试一下

祝你好运!

答案 2 :(得分:1)

如果有人想要构建新版 OpenSSL“1.0.1g”来解决 Heartbleed 问题,那么您可以按照之前的步骤进行操作变化:

我将文件夹包含重命名为 - include 并创建一个名为include的新文件夹,VS项目将负责复制信息, - include 如果你愿意,你可以删除它,当我构建项目而没有这个改变那里的编译问题。

注意:我更改的include文件夹是在根目录中找到的文件夹,而不是在 VSbuild

下找到的文件夹

享受

答案 3 :(得分:0)

下载其他平台的Windows Phone 8.1预编译OpenSSL库:

https://www.teskalabs.com/blog/openssl-binary-distribution-for-developers-static-library

免责声明:我运行该网站。